Rule arbeitet nicht

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
soulid
Beiträge: 73
Registriert: 24. Feb 2020 20:32
Answers: 0

Rule arbeitet nicht

Beitrag von soulid »

Moin,
ich habe mal wieder was. Ich habe mittlerweile (Danke an das Udo und peter-pan!) mein Openhabian 2.5 ans laufen bekommen. Leider läuft ein Rule nicht. Ich möchte mit dem Rule das die Beleuchtung im Garten mit dem Astro binding ein bzw ausgeschaltet wird. Der Log zeigt zumindest mal keine Fehlermeldung

Hier ist meine Konfig..

Ob da jemand mal einen Blick drüber werfen kann?



Things

Code: Alles auswählen

astro:sun:home [ geolocation="51.2041968,6.6879511,100", interval=60 ] {
Channels:
        Type start : rise#start [
            offset=-60
        ]
        Type end : rise#end [
            offset=60
        ]
        Type start : set#start [
            offset=-270
        ]
        Type end : set#end [
            offset=90
        ]
}



items

Code: Alles auswählen

DateTime         Sunrise_Time_start     "Sunrise start [%1$tH:%1$tM]"                   { channel="astro:sun:home:rise#start" }
DateTime         Sunrise_Time_end       "Sunrise end [%1$tH:%1$tM]"                   { channel="astro:sun:home:rise#end" }
DateTime         Sunset_Time_start      "Sunset start [%1$tH:%1$tM]"                    { channel="astro:sun:home:set#start" }
DateTime         Sunset_Time_end        "Sunset end [%1$tH:%1$tM]"                    { channel="astro:sun:home:set#end" }
Rule

Code: Alles auswählen

rule "Gartenlicht morgens an"
when
    Channel 'astro:sun:home:rise#start' triggered START
then
sendCommand(Gartenlicht, ON)
sendCommand(SteckdoseVorgarten, ON)
end

rule "Gartenlicht morgens aus"
when
    Channel 'astro:sun:home:rise#end' triggered START
then
sendCommand(Gartenlicht, OFF)
sendCommand(SteckdoseVorgarten, OFF)
end

rule "Gartenlicht abends an"
when
    Channel 'astro:sun:home:set#start' triggered START
then
sendCommand(Gartenlicht, ON)
sendCommand(SteckdoseVorgarten, ON)
end

rule "Gartenlicht abends aus"
when
    Channel 'astro:sun:home:set#end' triggered START
then
sendCommand(Gartenlicht, OFF)
sendCommand(SteckdoseVorgarten, OFF)
end

Darkwin101
Beiträge: 424
Registriert: 6. Mär 2019 11:19
Answers: 14

Re: Rule arbeitet nicht

Beitrag von Darkwin101 »

Channel 'astro:sun:home:rise#start' triggered START
Channel 'astro:sun:home:rise#event' triggered START

Der Auslöser ist das Event und das Triggered START ist der Channel

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

Re: Rule arbeitet nicht

Beitrag von udo1toni »

Du kannst nur auf Channel events triggern lassen, nicht auf Status. Die Status rise#start, rise#end bzw. set#start und set#end enthalten Datum und Uhrzeit des Ereignisses, während rise#event und set#event als Trigger für Rules fungieren.

Und Achtung! es handelt sich hier um insgesamt 6 Channel, also jeweils zwei Status Channel für rise/set (nämlich start und end) sowie jeweils einen Trigger Channel für rise/set (event). Das heißt, wenn Du Offset und/oder Earliest/Latest konfigurieren willst, musst Du das für die Events getrennt machen.

Weiterhin, zur Begriffserklärung:
rise#start ist der Zeitpunkt, zu dem die Sonne beginnt, den Horizont zu berühren (wenn man am Meer wohnt, sieht man also den ersten direkten Sonnenstrahl).
rise#end ist der Zeitpunkt, zu dem sich die Sonne vom Horizont löst (das heißt, in diesem Moment ist die Sonne vollständig über dem Horizont angekommen).
Für set#start und set#end gilt das Gleiche (natürlich in umgekehrter Reihenfolge).

Beim event Channel gilt das entsprechend: rise#event triggert START, wenn der erste Sonnenstrahl zu sehen ist und triggert END, sobald sich die Sonne vom Horizont löst.

Diese Zeitpunkte gibt es entsprechend auch für die bürgerliche (-6°), nautische (-12°) und astronomische (-18°) Dämmerung. Start -> Sonne berührt die gedachte Linie, End -> Sonne löst sich von der gedachten Linie.

Der Zeitraum zwischen Start und End ist abhängig vom Winkel, in dem die Sonne aufgeht, er ist also orts- und jahreszeitenabhängig und bewegt sich im Bereich von einigen Minuten (das ist die Duration, welche ebenfalls als Channel zur Verfügung steht).
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

soulid
Beiträge: 73
Registriert: 24. Feb 2020 20:32
Answers: 0

Re: Rule arbeitet nicht

Beitrag von soulid »

Hallo udo1toni,
mal wieder eine tolle Erklärung.

Ist der rise#event und set#event dann ein "Type rangeEvent"?

Also so?

Code: Alles auswählen

astro:sun:home [ geolocation="51.2041968,6.6879511,100", interval=10 ] {
Channels:
        Type start : rise#start [
            offset=-80]
        Type end : rise#end [
            offset=60]
        Type start : set#start [
            offset=-130]
        Type end : set#end [
            offset=90]
                Type rangeEvent : rise#event []
        Type rangeEvent : set#event []
}

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

Re: Rule arbeitet nicht

Beitrag von udo1toni »

Ja, Du musst die Channel allerdings nur dann anlegen, wenn Du per *.things Datei Offset und/oder Ober/Untergrenzen definieren willst. Astro erzeugt immer alle Channel, auch ohne explizite Konfiguration.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Antworten