Twilight: Unterschied zwischen den Versionen

Aus FHEMWiki
K (Bezeichnung der Dämmerungs-/Helligkeitswerte korrigiert)
K (Definition aktualisiert und state hinzugefügt)
 
(12 dazwischenliegende Versionen von 6 Benutzern werden nicht angezeigt)
Zeile 3: Zeile 3:
|ModType=h
|ModType=h
<!-- |ModCategory=?? -->
<!-- |ModCategory=?? -->
<!-- |ModCmdRef=[http://forum.fhem.de/index.php/topic,19922.0.html siehe Forum] -->
<!-- |ModCmdRef={{Link2Forum|Topic=19922|LinkText=siehe Forum}} -->
|ModTechName=59_Twilight.pm
|ModTechName=59_Twilight.pm
|ModForumArea=Unterstuetzende Dienste
|ModForumArea=Unterstützende Dienste/Wettermodule
|ModOwner=dietmar63 / [http://forum.fhem.de/index.php?action=profile;u=405 Dietmar63]
|ModOwner=Beta-User ({{Link2FU|9229|Forum}}/[[Benutzer Diskussion:Beta-User|Wiki]])
}}
}}


[[Twilight]] ist ein Hilfsmodul, das für eine über Koordinaten spezifizierte Position diverse Dämmerungszustände, Zeiten und die Helligkeit berechnet und als Readings bereitstellt. Darüber hinaus werden auch, sofern spezifiziert, über die Yahoo Wetter-ID Wetterinformationen bereitgestellt bzw. in die Berechnungen mit einbezogen.
[[Twilight]] ist ein Hilfsmodul, das für eine über Koordinaten spezifizierte Position diverse Dämmerungszustände, Zeiten und die Helligkeit berechnet und als Readings bereitstellt.  
<!-- Darüber hinaus werden auch, sofern spezifiziert, über die Yahoo Wetter-ID Wetterinformationen bereitgestellt bzw. in die Berechnungen mit einbezogen.
-->


== Voraussetzungen ==
== Voraussetzungen ==
Keine.
Keine.
<br clear="all">
{{Randnotiz|RNTyp=r|RNText='''End of Live der Yahoo Weather API'''
Da die Yahoo Weather API zum 03.01.2019 abgeschaltet wurde, kann '''Twilight''' aktuell keine Wetterdaten beziehen!
Das Modul wird gerade (09/2020) an diese geänderten Bedingungen angepasst, die Diskussion über diese Anpassungen findet {{Link2Forum|Topic=114061|LinkText=in diesem Forenthread}} statt.}}


== Anwendung ==
== Anwendung ==
=== Define ===
=== Define ===
:<code>define <name> Twilight <latitude> <longitude> [<indoor_horizon> [<Weather_Position>]]</code>
:<code>define <name> Twilight [<latitude> <longitude> [<indoor_horizon> [<weatherDevice[:Reading]>]]]</code>
Die Bedeutung der Parameter:
Die Bedeutung der Parameter:
;latitude / longitude
;latitude / longitude
:Geokoordinaten, für die die Werte berechnet werden sollen
:Geokoordinaten, für die die Werte berechnet werden sollen. Falls diese nicht angegeben sind, werden die Werte aus ''global'' verwendet. Falls auch dort keine Angaben zu finden sind, wird wie in ''global'' als Position Frankfurt/Main verwendet. {{Randnotiz|RNTyp=y|RNText=Hinweis: der Rückgriff auf die Geodaten aus ''global'' ist das Verhalten seit 09/2020, seitdem hat Twilight auch keine Auswirkungen auf die dortigen Angaben!}}
;indoor_horizon
;indoor_horizon
:Virtueller Horizont
:Der Parameter '''indoor_horizon''' bestimmt einen virtuellen Horizont, der für die Berechnung der Dämmerung innerhalb von Räumen genutzt werden kann. Minimalwert ist -6 (ergibt gleichen Wert wie Zivile Dämmerung). Bei 0 fallen indoor- und realer Dämmerungswert zusammen. Werte größer 0 ergeben frühere Werte für den Abend bzw. spätere für den Morgen.
;Weather_Position
;<nowiki>weatherDevice:Reading</nowiki>
:Yahoo Wetter-ID für den gewünschten Standort; der eingegebene Wert wird als "internal value" '''WEATHER''' gespeichert.
:Der Parameter '''weatherDevice:Reading''' kann genutzt werden, um über ein anderes Device an den Bedeckungsgrad für die Berechnung von '''twilight_weather''' bereitzustellen. Das Reading sollte sich im Intervall zwischen 0 und 100 bewegen, z.B. das Reading '''c_clouds''' in einem '''openweathermap''' device, bei dem 0 heiteren und 100 bedeckten Himmel bedeuten.  


=== Attribute ===
=== Attribute ===
Zeile 53: Zeile 61:
:;6
:;6
::"normales" Tageslicht
::"normales" Tageslicht
'''state'''
:entspricht der aktuellen virtuellen "Tages-Phase"
:(0 = nach Mitternacht, 1 = nach sr_astro, ...12 = nach ss_astro)
{| class="wikitable"
|+
!state
!entspricht
!
|-
|0
|'''sr_astro'''
|Zeit des astronomitschen Sonnenaufgangs
|-
|1
|'''sr_naut'''
|Zeit des nautischen Sonnenaufgangs
|-
|2
|'''sr_civil'''
|Zeit des zivilen/bürgerlichen Sonnenaufgangs
|-
|3
|'''sr'''
|Zeit des Sonnenaufgangs
|-
|4
|'''sr_indoor'''
|Zeit des "indoor" Sonnenaufgangs
|-
|6
|'''sr_weather'''
|"Zeit" des wetterabhängigen Sonnenaufgangs
|-
|7
|'''ss_weather'''
|"Zeit" des wetterabhängigen Sonnenuntergangs
|-
|8
|'''ss_indoor'''
|Zeit des "indoor" Sonnenuntergangs
|-
|9
|'''ss'''
|Zeit des Sonnenuntergangs
|-
|10
|'''ss_civil'''
|Zeit des zivilen/bürgerlichen Sonnenuntergangs
|-
|11
|'''ss_nautic'''
|Zeit des nautischen Sonnenuntergangs
|-
|12
|'''ss_astro'''
|Zeit des astro. Sonnenuntergangs
|}
:
;azimuth
;azimuth
:Azimut; Horizontalwinkel des Sonnenstands (0&deg;=Süden, 90%´&deg;=Westen, usw.)
:Azimut; Horizontalwinkel des Sonnenstands (0&deg;=Norden, 180&deg;=Süden, usw.)
;elevation
;elevation
:Höhe des Sonnenstands
:Höhe des Sonnenstands
Zeile 74: Zeile 140:
=== Ausführliches Beispiel ===
=== Ausführliches Beispiel ===
[[Twilight Anwendungsbeispiel]] mit detaillierten Erläuterungen
[[Twilight Anwendungsbeispiel]] mit detaillierten Erläuterungen
== Links ==
* ...


[[Kategorie:Code Snippets]]
[[Kategorie:Code Snippets]]

Aktuelle Version vom 16. November 2022, 13:09 Uhr

Twilight
Zweck / Funktion
Virtuelles Gerät zur Berechnung der Dämmerungszustände für eine gegebene Position
Allgemein
Typ Hilfsmodul
Details
Dokumentation EN / DE
Support (Forum) Unterstützende Dienste/Wettermodule
Modulname 59_Twilight.pm
Ersteller Beta-User (Forum /Wiki)
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref!


Twilight ist ein Hilfsmodul, das für eine über Koordinaten spezifizierte Position diverse Dämmerungszustände, Zeiten und die Helligkeit berechnet und als Readings bereitstellt.

Voraussetzungen

Keine.

X mark.svgEnd of Live der Yahoo Weather API

Da die Yahoo Weather API zum 03.01.2019 abgeschaltet wurde, kann Twilight aktuell keine Wetterdaten beziehen!

Das Modul wird gerade (09/2020) an diese geänderten Bedingungen angepasst, die Diskussion über diese Anpassungen findet in diesem Forenthread statt.


Anwendung

Define

define <name> Twilight [<latitude> <longitude> [<indoor_horizon> [<weatherDevice[:Reading]>]]]

Die Bedeutung der Parameter:

latitude / longitude
Geokoordinaten, für die die Werte berechnet werden sollen. Falls diese nicht angegeben sind, werden die Werte aus global verwendet. Falls auch dort keine Angaben zu finden sind, wird wie in global als Position Frankfurt/Main verwendet.
Emblem-question-yellow.svgHinweis: der Rückgriff auf die Geodaten aus global ist das Verhalten seit 09/2020, seitdem hat Twilight auch keine Auswirkungen auf die dortigen Angaben!
indoor_horizon
Der Parameter indoor_horizon bestimmt einen virtuellen Horizont, der für die Berechnung der Dämmerung innerhalb von Räumen genutzt werden kann. Minimalwert ist -6 (ergibt gleichen Wert wie Zivile Dämmerung). Bei 0 fallen indoor- und realer Dämmerungswert zusammen. Werte größer 0 ergeben frühere Werte für den Abend bzw. spätere für den Morgen.
weatherDevice:Reading
Der Parameter weatherDevice:Reading kann genutzt werden, um über ein anderes Device an den Bedeckungsgrad für die Berechnung von twilight_weather bereitzustellen. Das Reading sollte sich im Intervall zwischen 0 und 100 bewegen, z.B. das Reading c_clouds in einem openweathermap device, bei dem 0 heiteren und 100 bedeckten Himmel bedeuten.

Attribute

Readings

Eine Auswahl der Readings, die das angelegte Twilight-Objekt enthält:

sr*
verschiedene Werte für den Sonnenaufgang ("sunrise"): astronomisch, bürgerlich, nautisch, ...
ss*
verschiedene Werte für den Sonnenuntergang ("sunset"): astronomisch, bürgerlich, nautisch, ...
nextEvent
Name des Ereignisses, das als nächstes eintreten wird (z. B. "ss_weather")
nextEventTime
Zeitpunkt, zu dem das (unter nextEvent benannte) nächste Ereignis eintreten wird
light
ein errechneter Helligkeitswert mit den folgenden möglichen Werten (zwischen 0 und 6):
0
Völlige Dunkelheit; relativer Sonnenstand zum Horizont: -18°
1
astronomische Dämmerung; relativer Sonnenstand zum Horizont: zwischen -12° und -18°
2
nautische Dämmerung; relativer Sonnenstand zum Horizont: zwischen -6° und -12°
3
bürgerliche Dämmerung; relativer Sonnenstand zum Horizont: zwischen 0° und -6°
4
"indoor"-Dämmerung; Sonnenstand zwischen indoor_horizon (sofern der Wert ungleich Null ist) und 0°
5
"Wetter"-Dämmerung; Sonnenstand zwischen indoor_horizon und einem virtuellen Wetter-Horizont (abhängig von der Angabe einer Weather_position)
6
"normales" Tageslicht

state

entspricht der aktuellen virtuellen "Tages-Phase"
(0 = nach Mitternacht, 1 = nach sr_astro, ...12 = nach ss_astro)
state entspricht
0 sr_astro Zeit des astronomitschen Sonnenaufgangs
1 sr_naut Zeit des nautischen Sonnenaufgangs
2 sr_civil Zeit des zivilen/bürgerlichen Sonnenaufgangs
3 sr Zeit des Sonnenaufgangs
4 sr_indoor Zeit des "indoor" Sonnenaufgangs
6 sr_weather "Zeit" des wetterabhängigen Sonnenaufgangs
7 ss_weather "Zeit" des wetterabhängigen Sonnenuntergangs
8 ss_indoor Zeit des "indoor" Sonnenuntergangs
9 ss Zeit des Sonnenuntergangs
10 ss_civil Zeit des zivilen/bürgerlichen Sonnenuntergangs
11 ss_nautic Zeit des nautischen Sonnenuntergangs
12 ss_astro Zeit des astro. Sonnenuntergangs
azimuth
Azimut; Horizontalwinkel des Sonnenstands (0°=Norden, 180°=Süden, usw.)
elevation
Höhe des Sonnenstands
twilight
Dämmerungswert, errechnet aus der Höhe des Sonnenstands. Der Wert geht von 0% bis 100% bei einem Sonnenstand zwischen -12° und 6° (also während der Dämmerungsphase).

Funktionen

twilight($twilight, $reading, $min, $max)

Funktion im Modul, um bei der Dämmerungsberechnung Minimal-/Maximalwerte ("frühestens/spätestens") spezifizieren und das Ergebnis beispielsweise in einem at weiterverarbeiten zu können.

Anwendungsbeispiel(e)

Kurzes Beispiel

Anwendung der Funktion twilight zur Zeitsteuerung:

define morgens at *{twilight("myTL","sr_indoor","7:30","9:00")} set Rollo on

Dieses at wird morgens zum Zeitpunkt sr_indoor des Twilight Objekts myTL - aber frühestens um 7:30 und spätestens um 9:00 Uhr - dem Gerät Rollo einen on-Befehl schicken. Das Objekt myTL muss natürlich vorher mit (beispielsweise)

define myTL Twilight 44.444444 8.888888 ...

definiert worden sein.

Ausführliches Beispiel

Twilight Anwendungsbeispiel mit detaillierten Erläuterungen