Aktion bei Sonnenuntergang mit Astro Binding (OH3)

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
aolbernd
Beiträge: 35
Registriert: 7. Jan 2021 21:04
Answers: 0

Aktion bei Sonnenuntergang mit Astro Binding (OH3)

Beitrag von aolbernd »

Ich wollte meine Aussen-Weihnachtsdeko bei Sonnenuntergang einschalten lassen und nach 5 Stunden wieder ausschalten lassen. Hierfür nutze ich das Astro Binding (Channel Sonnenuntergang Ende).
Mein Rule (Einschalten) hat folgenden Inhalt

Code: Alles auswählen

configuration: {}
triggers:
  - id: "1"
    configuration:
      command: START
      itemName: LokaleSonnendaten_Daylight_Start
    type: core.ItemCommandTrigger
conditions: []
actions:
  - inputs: {}
    id: "2"
    configuration:
      command: ON
      itemName: Weihnachtsdeko
    type: core.ItemCommandAction
Wo liegt hier mein Fehler? Offensichtlich habe ich den Trigger falsch konfiguriert. Ich stehe aber etwas auf dem Schlauch.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Benutzeravatar
udo1toni
Beiträge: 15265
Registriert: 11. Apr 2018 18:05
Answers: 245
Wohnort: Darmstadt

Re: Aktion bei Sonnenuntergang mit Astro Binding (OH3)

Beitrag von udo1toni »

Du machst das komplett verkehrt :)

Punkt 1: astro stellt zwei verschiedene Arten Channel zur Verfügung. Typ 1 enthält Informationen, z.B. die Uhrzeit des Sonnenuntergangs. Das ist aber einfach nur eine Information, in diesem Fall bestehend aus einem Datum und Uhrzeit. Du kannst diese Information sichtbar machen, indem Du den Channel mit einem Item verknüpfst. Du kannst NICHT mit diesem Item eine Rule triggern.
Typ 2 ist der Range Event Typ. Dieser Typ enthält keine Information (in dem Sinne, dass man sie als Zustand auslesen könnte). Stattdessen stellt dieser Channel ausschließlich die Trigger-Funktionalität bereit. Diesen Channeltyp kannst Du nicht mit einem Item verknüpfen.
Punkt 2: es gibt kein command START. (Doch, gibt es schon, da reden wir aber von einem Player Item, welches man verwendet, um Mediaplayer zu steuern...)

Deine Rule muss also auf ein Channel Event triggern. Als Text heißt das dann Channel "astro:sun:local:set#event" triggered START und bedeutet, dass im Channel set#event des Things sun:local das Event START aufgetreten ist. START bedeutet, das ist der Beginn des Ereignisses. Da die Sonne zweidimensional betrachtet ein Kreis mit einem beträchtlichen Durchmesser ist, und der Sonnenuntergang als Passage der 0° Höhenlinie definiert ist, ist klar, dass es einen Zeitpunkt gibt, zu dem die Sonne beginnt, die Höhenlinie zu berühren, und einen Zeitpunkt, an dem sie aufhört, die Höhenlinie zu berühren. Je nach Höhenlinie und Jahreszeit schwankt die Zeit zwischen den beiden Ereignissen um einige Minuten. Die anderen Ereignisse sind bürgerliche Dämmerung (-6°), nautische Dämmerung (-12°) und astronomische Dämmerung (-18°). Wenn sich die Sonne von oben nach unten bewegt, ist es set bzw. dusk (also Untergang), wenn sie von unten nach oben kommt, handelt es sich um rise bzw. dawn (also Aufgang).

Nach 5 Stunden abschalten wird in diesem Zusammenhang aber schwer. Mach Dir das Leben leichter und schalte zu einer festen Uhrzeit aus, z.B. um 23 Uhr.
Für die Morgenstunden gilt ähnliches, nur in umgekehrter Richtung.

Wenn Du es komplett automatisch haben willst, kannst Du noch ein Item definieren, welches Du über eine Rule zu Beginn der Adventszeit einschaltest und an deren Ende (regional unterschiedlich... z.B. 6. Januar (Heilige drei Könige) oder 2. Februar (Mariä Lichtmess)) wieder aus. Dann kannst Du in den Schaltregeln das but only if setzen und hier den Zustand des "Advents-Items" berücksichtigen. Funktioniert hier schon seit vielen Jahren...
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

webuehn
Beiträge: 6
Registriert: 27. Nov 2021 19:41
Answers: 0

Re: Aktion bei Sonnenuntergang mit Astro Binding (OH3)

Beitrag von webuehn »

Ich habe mir auch gerade so eine Rule für die Außenbeleuchtung erstellt. Bei Sonnenuntergang (nautisch) an und um 23.00 aus. Das sieht dann ungefähr so aus:

1 triggers:
2 - id: "1"
3 configuration:
4 thingUID: astro:sun:local
5 event: ""
6 channelUID: astro:sun:local:nauticDusk#event
7 type: core.ChannelEventTrigger
8 conditions: []
9 actions:
10 - inputs: {}
11 id: "2"
12 configuration:
13 itemName: TestShellyshelly_Betrieb
14 command: ON
15 type: core.ItemCommandAction

1 triggers:
2 - id: "1"
3 configuration:
4 cronExpression: 0 0 23 * * ? *
5 type: timer.GenericCronTrigger
6 conditions: []
7 actions:
8 - inputs: {}
9 id: "2"
10 configuration:
11 itemName: TestShellyshelly_Betrieb
12 command: OFF
13 type: core.ItemCommandAction
LG Wolfgang B.

aolbernd
Beiträge: 35
Registriert: 7. Jan 2021 21:04
Answers: 0

Re: Aktion bei Sonnenuntergang mit Astro Binding (OH3)

Beitrag von aolbernd »

Dank Euer Anleitung/Ausführungen funktioniert es jetzt :-) (wieder etwas dazugelernt)
Ich war davon ausgegangen, dass der Zeitpunkt des Ereignisses relevat ist und habe diesen in den Rules verwendet.
Hierzu gleich noch eine Frage: Es wird ja das Ereignis getriggert, also wenn es eintritt.
Jetzt ist die Abenddämmerung zum Beispiel mit einem Beginn (heute) um 17:23 Uhr angegeben, Dauer 41 Minuten. Tritt das Ereignis nur einmalig auf, (17:23 Uhr) oder kann ich diesen Ereignis im gesamten Zeitraum der 41 Minuten verwenden? Zum Beispiel als Bedingung für das Schalten eines Lichts: Wenn Schalter aktiviert, schalte Licht ein, Bedingung: Abenddämmerung, also der Zeitraum zwischen 17:23 und 18:04 Uhr?

Benutzeravatar
udo1toni
Beiträge: 15265
Registriert: 11. Apr 2018 18:05
Answers: 245
Wohnort: Darmstadt

Re: Aktion bei Sonnenuntergang mit Astro Binding (OH3)

Beitrag von udo1toni »

Ein Ereignis ist ein exakter Zeitpunkt. Die Dauer bezieht sich in diesem Fall auf den zeitlichen Abstand zwischen zwei Ereignissen (START und END).
Eine Bedingung kann sich nur auf einen Zustand beziehen, niemals auf ein Ereignis.
Das ist der oben von mir beschriebene Unterschied...
Du kannst prüfen, ob der aktuelle Zeitpunkt nach dem Zeitpunkt astro:sun:local:set#start und vor dem Zeitpunkt astro:sun:local:set#end liegt. Dabei müssen diese beiden Channel natürlich mit Items verknüpft sein und Du musst in der Rule diese Items verwenden.
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

aolbernd
Beiträge: 35
Registriert: 7. Jan 2021 21:04
Answers: 0

Re: Aktion bei Sonnenuntergang mit Astro Binding (OH3)

Beitrag von aolbernd »

Um es einfach zu halten, könnte ich also einen Point (Switch) erstellen, der bei Anbruch der Dämmerung per Rule auf ON schaltet und nach Ende der Dämmerungsphase auf OFF schaltet und diesen Point als Bedingung benutzen? Oder ist das zu kompliziert gedacht?

Benutzeravatar
Snatsch
Beiträge: 455
Registriert: 9. Jan 2021 22:55
Answers: 0

Re: Aktion bei Sonnenuntergang mit Astro Binding (OH3)

Beitrag von Snatsch »

aolbernd hat geschrieben: 28. Dez 2021 21:43 Um es einfach zu halten, könnte ich also einen Point (Switch) erstellen, der bei Anbruch der Dämmerung per Rule auf ON schaltet und nach Ende der Dämmerungsphase auf OFF schaltet und diesen Point als Bedingung benutzen? Oder ist das zu kompliziert gedacht?
genau :) so würde ich es auch machen
openhab4.3.1 auf Pi 5 8GB im Docker Portainer&Frontail /Grafana&InfluxDB und mosquitto auf Pi 3 in Docker Portainer/Pi 3 mit Docker zur Datensicherung / Pi 4 4GB Portainer & Deconz

int5749
Beiträge: 1173
Registriert: 4. Nov 2019 22:08
Answers: 9

Re: Aktion bei Sonnenuntergang mit Astro Binding (OH3)

Beitrag von int5749 »

aolbernd hat geschrieben: 28. Dez 2021 21:43 Um es einfach zu halten, könnte ich also einen Point (Switch) erstellen, der bei Anbruch der Dämmerung per Rule auf ON schaltet und nach Ende der Dämmerungsphase auf OFF schaltet und diesen Point als Bedingung benutzen? Oder ist das zu kompliziert gedacht?
Wenn Du doch "nur" auf das Ende-Event triggern möchtest, müsste es doch mit

Code: Alles auswählen

rule Sunset_Event
when
	Channel 'astro:sun:local:set#event' triggered END
then
	logInfo("Astro", "Sun Set Ende")
end

funktionieren? Oder habe ich noch einen Denkfehler??

Update: Ahh, lese jetzt ein paar Posts vorher, das es um eine Zeitspanne ging :)


Viele Grüße
openHAB 4.1.0 Release mit openHABian in einem Debian Bookworm (LXC) unter Proxmox 8.1.3

Antworten