Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste


C - Programmierung am Raspberry  Schaltpläne und Bauteilbeschreibungen  Adapterkabel  Mechanik  EDV-Literatur deutsch 



    FIAN Österreich     Marktplatz Natur    
    Bäckerei Freitag

openhab_bind_astro

Astro Binding

Letztes Update 2021/04/26 00:09

Die Astro-Bindung wird zur Berechnung verwendet von:

  • vielen DateTime- und Positionswerten für Sonne und Mond.
  • Strahlungswerte (direkt, diffus und insgesamt) der Sonne während des Tages

Unterstützte Dinge

Diese Bindung unterstützt zwei Dinge: Sonne und Mond

Entdeckungen

  • Wenn ein Systemstandort festgelegt ist, werden für diesen Standort automatisch „Local Sun“ und „Local Moon“ erkannt.
  • Wenn der Systemspeicherort geändert wird, aktualisiert die Hintergrunderkennung die Konfiguration von „Local Sun“ und „Local Moon“ automatisch.

Bindungskonfiguration

Keine verbindliche Konfiguration erforderlich.

Thing Konfiguration

Alle Things erfordern den Parameter geolocation (als <latitude>,<longitude>[,<altitude in m>]), für den die Berechnung durchgeführt wird. Das Höhensegment (altitude) ist optional und schärft die Ergebnisse der Strahlungsgruppe. Optional kann ein Aktualisierungsintervall (in Sekunden) definiert werden, um auch Positionsdaten wie Azimut und Höhe zu berechnen.

Die Jahreszeitberechnung kann von einer äquinoktischen1) Berechnung auf eine meteorologische Berechnung umgestellt werden (beginnend am ersten Tag des jeweiligen Monats). Dies erfolgt, indem useMeteorologicalSeason im erweiterten Sonnenuntergang auf true gesetzt wird.

Kanäle

  • thing sun
    • group rise, set, noon, night, morningNight, astroDawn, nauticDawn, civilDawn, astroDusk, nauticDusk, civilDusk, eveningNight, daylight
      • channel
        • start, end (DateTime)
        • duration (Number:Time)
    • group position
      • channel
        • azimuth, elevation (Number:Angle)
        • shadeLength (Number)
    • group radiation
      • channel
        • direct, diffuse, total (Number:Intensity)
    • group zodiac
      • channel
        • start, end (DateTime)
        • sign (String), values: ARIES, TAURUS, GEMINI, CANCER, LEO, VIRGO, LIBRA, SCORPIO, SAGITTARIUS, CAPRICORN, AQUARIUS, PISCES
    • group season
      • channel
        • spring, summer, autumn, winter (DateTime)
        • name,nextName (String), values SPRING, SUMMER, AUTUMN, WINTER
        • timeLeft (Number:Time)
    • group eclipse
      • channel
        • total, partial, ring (DateTime)
        • totalElevation, partialElevation, ringElevation (Number:Angle)
    • group phase
      • channel
        • name (String), values: SUN_RISE, ASTRO_DAWN, NAUTIC_DAWN, CIVIL_DAWN, CIVIL_DUSK, NAUTIC_DUSK, ASTRO_DUSK, SUN_SET, DAYLIGHT, NIGHT
  • thing moon
    • group rise, set
      • channel
        • start, end (DateTime)
    • group phase
      • channel
        • firstQuarter, thirdQuarter, full, new (DateTime)
        • age (Number:Time)
        • ageDegree (Number:Angle)
        • agePercent, illumination (Number:Dimensionless)
        • name (String), values: NEW, WAXING_CRESCENT, FIRST_QUARTER, WAXING_GIBBOUS, FULL, WANING_GIBBOUS, THIRD_QUARTER, WANING_CRESCENT
    • group eclipse
      • channel
        • total, partial (DateTime)
        • totalElevation, partialElevation (Number:Angle)
    • group distance
      • channel
        • date (DateTime)
        • distance (Number:Length)
    • group perigee
      • channel
        • date (DateTime),
        • distance (Number:Length)
    • group apogee
      • channel
        • date (DateTime)
        • distance (Number:Length)
    • group zodiac
      • channel
        • sign (String), values: ARIES, TAURUS, GEMINI, CANCER, LEO, VIRGO, LIBRA, SCORPIO, SAGITTARIUS, CAPRICORN, AQUARIUS, PISCES
    • group position
      • channel
        • azimuth, elevation (Number:Angle)

Trigger Kanäle

  • thing sun
    • group rise, set, noon, night, morningNight, astroDawn, nauticDawn, civilDawn, astroDusk, nauticDusk, civilDusk, eveningNight, daylight
      • event START, END
    • group eclipse
      • event: TOTAL, PARTIAL, RING
  • thing moon
    • group rise
      • event START
    • group set
      • event END
    • group phase
      • event: FIRST_QUARTER, THIRD_QUARTER, FULL, NEW
    • group eclipse
      • event: TOTAL, PARTIAL
    • group perigee
      • event: PERIGEE
    • group apogee
      • event: APOGEE

Channel Konfiguration

Offsets: Für jede Ereignisgruppe können Sie optional einen offset in Minuten konfigurieren. Der offset muss in den Kanaleigenschaften für das entsprechende Objekt konfiguriert werden.

Der minimal zulässige Versatz (offset) beträgt -1440 und der maximal zulässige Versatz beträgt 1440.

Früheste/Neueste: Für jeden Triggerkanal und start, end Tageszeitwert können Sie optional die früheste und späteste Uhrzeit des Tages konfigurieren.

z.B.: sun#set earliest=18:00, latest=20:00

Der Sonnenuntergang ist 17:40 Uhr, aber frühestens 18:00 Uhr, sodass der Wert für Ereignis (event) / Datum / Uhrzeit auf 18:00 Uhr verschoben wird.

oder

Der Sonnenuntergang ist 22:10 Uhr, der letzte ist jedoch auf 20:00 Uhr eingestellt, sodass der Wert für Ereignis (event) / Datum / Uhrzeit um 20:00 Uhr verschoben wird.

Vollständiges Beispiel

Things:

astro:sun:home  [ geolocation="52.5200066,13.4049540,100", interval=60 ]
astro:moon:home [ geolocation="52.5200066,13.4049540", interval=60 ]

oder optional mit einem Ereignisversatz (event offset)

astro:sun:home [ geolocation="52.5200066,13.4049540,100", interval=60 ] {
    Channels:
        Type rangeEvent : rise#event [
            offset=-30
        ]
}
astro:moon:home [ geolocation="52.5200066,13.4049540", interval=60 ]

oder ein Datum/Uhrzeit-Offset

astro:sun:home [ geolocation="52.5200066,13.4049540,100", interval=60 ] {
    Channels:
        Type start : rise#start [
            offset=5
        ]
        Type end : rise#end [
            offset=5
        ]
}

oder ein Offset und spätestens

astro:sun:home [ geolocation="52.5200066,13.4049540,100", interval=60 ] {
    Channels:
        Type rangeEvent : rise#event [
            offset=-10,
            latest="08:00"
        ]
}

Items:

DateTime         Sunrise_Time       "Sunrise [%1$tH:%1$tM]"                   { channel="astro:sun:home:rise#start" }
DateTime         Sunset_Time        "Sunset [%1$tH:%1$tM]"                    { channel="astro:sun:home:set#start" }
Number:Angle     Azimuth            "Azimuth"                                 { channel="astro:sun:home:position#azimuth" }
Number:Angle     Elevation          "Elevation"                               { channel="astro:sun:home:position#elevation" }
String           MoonPhase          "MoonPhase"                               { channel="astro:moon:home:phase#name" }
Number:Length    MoonDistance       "MoonDistance [%.1f %unit%]"              { channel="astro:moon:home:distance#distance" }
Number:Intensity Total_Radiation    "Radiation [%.2f %unit%]"                 { channel="astro:sun:home:radiation#total" }
Number:Intensity Diffuse_Radiation  "Diffuse Radiation [%.2f %unit%]"         { channel="astro:sun:home:radiation#diffuse" }

Events:

rule "example trigger rule"
when
    Channel 'astro:sun:home:rise#event' triggered START
then
    ...
end

Regelaktionen (Rule Actions)

Diese Bindung unterstützt mehrere Aktionen. In klassischen Regeln wird auf diese zugegriffen, wie im folgenden Beispiel gezeigt:

SunActions-Variable in Skripten abrufen:

val sunActions = getActions("astro","astro:sun:local")
 if(null === sunActions) {
        logInfo("actions", "sunActions not found, check thing ID")
        return
 } else {
        // do something with sunActions
 }

getEventTime(phaseName, date, moment)

Ruft Datum und Uhrzeit (ZonedDateTime) des angeforderten Phasennamens ab. Die Methode gilt nur für den Sun thing type.

phaseName (String), values: SUN_RISE, ASTRO_DAWN, NAUTIC_DAWN, CIVIL_DAWN, CIVIL_DUSK, NAUTIC_DUSK, ASTRO_DUSK, SUN_SET, DAYLIGHT, NIGHT. Verpflichtend. date (ZonedDateTime), Es wird nur der Datumsteil dieses Parameters berücksichtigt - standardmäßig now(), wenn null. moment (String), values: START, END - standardmäßig START wenn null.

Beispiel:

val sunEvent = "SUN_SET"
val today = ZonedDateTime.now;
val sunEventTime = sunActions.getEventTime(sunEvent,today,"START")
logInfo("AstroActions","{} will happen at : {}", sunEvent, sunEventTime.toString)

getElevation(timeStamp)

Ruft die Höhe (QuantityType) der Sonne zum gewünschten Zeitpunkt ab. Die Methode gilt für Sonne und Mond.

  • timeStamp (ZonedDateTime) - Standardeinstellung ist now(), wenn null.

getAzimuth(timeStamp)

Ruft den Azimut (QuantityType) der Sonne zum gewünschten Zeitpunkt ab. Die Methode gilt für Sonne und Mond.

  • timeStamp (ZonedDateTime) - defaulted to now() if null.

Beispiel:

val azimuth = sunActions.getAzimuth(sunEventTime)
val elevation = sunActions.getElevation(sunEventTime)
logInfo("AstroActions", "{} will be positioned at elevation {} - azimuth {}",sunEvent, elevation.toString,azimuth.toString)

Tips

Machen Sie sich keine Sorgen, wenn zum Beispiel die „Astro-Morgendämmerung“ an Ihrem Standort nicht definiert ist. Der Grund könnte sein, dass Sie in einem nördlichen Land leben und es Sommer ist, so dass die Sonne morgens nicht 18 Grad unter dem Horizont steht. Einzelheiten finden Sie in diesem Wikipedia-Artikel. Das „Civil Dawn“ Ereignis ist oft die bessere Wahl.


Original auf openHAB.org


 

Die Übersetzung steht unter der EPLv2 Lizenz.

1)
Ein Äquinoktium (equinox) ist der Zeitpunkt, zu dem die Ebene des Erdäquators durch das geometrische Zentrum der Sonnenscheibe verläuft. Dies geschieht zweimal jährlich, etwa am 20. März und am 23. September. Mit anderen Worten, es ist der Moment, in dem sich das Zentrum der sichtbaren Sonne direkt über dem Äquator befindet.
openhab_bind_astro.txt · Zuletzt geändert: 2021/04/26 00:14 von administrator