OH3 - Leidiges Thema - Licht an/aus bei Sonnenauf-/untergang

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Engelsen
Beiträge: 37
Registriert: 18. Nov 2019 09:38
Answers: 1

OH3 - Leidiges Thema - Licht an/aus bei Sonnenauf-/untergang

Beitrag von Engelsen »

MOin zusammen,

ich habe bisher mithilfe ddes Forums eine Regel gehabt, die abends bei "CivilDusk" ein Item (NightState) auf ON für Nacht gesetzt hat und das Licht einschaltete und morgens bei CivilDawn das Nacht-Item auf OFF setzt.

Diese sah in OH 2.x so aus:

Code: Alles auswählen

rule "Switch NightState auf ON bei Sonnenuntergang"
when
    Channel "astro:sun:home:civilDusk#event" triggered START
then
	NightState.postUpdate(ON)
    logInfo("NightState updated", "--> NightState set to " + NightState.state)
end

rule "Switch NightState und LateNightState auf OFF bei Sonnenaufgang"
when
    Channel "astro:sun:home:rise#event" triggered START
then
	NightState.postUpdate(OFF)
    LateNightState.postUpdate(OFF)
    logInfo("NightState Update", "--> NightState auf OFF")
    logInfo("LateNightState Update", "--> LateNightState auf OFF")
end
Jetzt portiere ich grade alles zu OH3 und habe dabei einmal alles neu aufgesetzt.
Leider zieht die Regel nun nicht mehr: Diese sieht im GUI so aus:
sonnenuntergang.png
sonnenuntergang2.png
Anscheinend wird der Trigger nicht ausgeführt und dadurch das Item nicht auf ON bzw. OFF gesetzt.

Kann mir einer sagen, was ich falsch mache? Stehe grade aufm Schlauch.

Danke.
von Engelsen » 25. Feb 2021 18:26
Danke für die Info.
Ich kann auch einen Erfolg melden und weiß wohl auch woran es liegt.

Ich hatte den vswitch "Abend* schon auf ON gestellt. Daher hat er nicht ausgelöst und die Regel hat nicht gegriffen.

Grade eben war er auf Off, wechselte auf ON und das Licht ging an :)

Also alles tutti.

Danke fürs "Mittesten" 😅
Gehe zur vollständigen Antwort
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Benutzeravatar
peter-pan
Beiträge: 2774
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: OH3 - Leidiges Thema - Licht an/aus bei Sonnenauf-/untergang

Beitrag von peter-pan »

So wie ich das sehe, sieht das gut aus. Ich hab versucht mal deine Rule nachzubauen, mit dem einzigen Unterschied, dass ich "sendCommand" statt "posUpdate" verwendet habe. Ich nehme an, dass deine beiden Schalter "Dummies" ohne Channel sind.

Das Ergebnis meines Versuchs kann ich dir leider erst sagen, wenn meine Schreibtischlampe "an" geht :lol: . Was mir aber noch aufgefallen ist, bzw. ich nicht gefunden habe, ist ein logInfo in die Rule einzutragen :?:

Hast du schon mal versucht, deine Regel einfach in den Rules Ordner von OH3 zu kopieren. Das sollte eigentlich auch gehen.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.6 openhabian

Engelsen
Beiträge: 37
Registriert: 18. Nov 2019 09:38
Answers: 1

Re: OH3 - Leidiges Thema - Licht an/aus bei Sonnenauf-/untergang

Beitrag von Engelsen »

Hi peter-pan,

danke für das Feedback.

Hatte vorher schon sendCommand drin. Brachte leider nicht die Lösung.
Ja, die Items sind nur vSwitches und nur dafür da Rules zu triggern ;)
LogInfo konnte ich bisher auch nicht finden ...

Die Rule in den Ordner zu kopieren wäre auch meine letzte Lösung, wollte aber gerne alles über die GUI bauen, da ich dann frei in der Wahl des Endgerätes bin ;)

Ich bin gespannt, was bei dir heute abend dann rauskommt :) ...

Leider sehe ich im events.log auch keinen Hinweis darauf, dass CivilDusk getriggert wird ... :(

Benutzeravatar
peter-pan
Beiträge: 2774
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: OH3 - Leidiges Thema - Licht an/aus bei Sonnenauf-/untergang

Beitrag von peter-pan »

...bin auch gespannt. :D
Ich lass mal sicherheitshalber diese DSL-Rule noch mitlaufen.

Code: Alles auswählen

//===============================================================================
rule "Civil Dusk Start"
    when
        Channel 'astro:sun:local:civilDusk#event' triggered START
    then
        logInfo("astro-rules" + '_07', " Civil Dusk START")
        //EG_gEG_Kind2_Licht.sendCommand(ON)
       
end
//===============================================================================
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.6 openhabian

Benutzeravatar
peter-pan
Beiträge: 2774
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: OH3 - Leidiges Thema - Licht an/aus bei Sonnenauf-/untergang

Beitrag von peter-pan »

Ich kann Erfolg melden. Beide Rules haben geliefert:
Die DSL-Rule hat das logInfo ausgegeben:

Code: Alles auswählen

2021-02-25 17:58:00.012 [INFO ] [hab.core.model.script.astro-rules_07] -  Civil Dusk START
und die OH3-Rule hat die Schreibtisch-Leuchte angeschaltet. Der YAML-Code dafür sieht bei mir so aus.

Code: Alles auswählen

triggers:
  - id: "1"
    configuration:
      thingUID: astro:sun:local
      event: START
      channelUID: astro:sun:local:civilDusk#event
    type: core.ChannelEventTrigger
conditions: []
actions:
  - inputs: {}
    id: "2"
    configuration:
      itemName: Sonoff_Basic_03
      command: ON
    type: core.ItemCommandAction
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.6 openhabian

Engelsen
Beiträge: 37
Registriert: 18. Nov 2019 09:38
Answers: 1

Re: OH3 - Leidiges Thema - Licht an/aus bei Sonnenauf-/untergang

Beitrag von Engelsen »

Danke für die Info.
Ich kann auch einen Erfolg melden und weiß wohl auch woran es liegt.

Ich hatte den vswitch "Abend* schon auf ON gestellt. Daher hat er nicht ausgelöst und die Regel hat nicht gegriffen.

Grade eben war er auf Off, wechselte auf ON und das Licht ging an :)

Also alles tutti.

Danke fürs "Mittesten" 😅

Rainer
Beiträge: 114
Registriert: 28. Nov 2017 21:33
Answers: 0

Re: OH3 - Leidiges Thema - Licht an/aus bei Sonnenauf-/untergang

Beitrag von Rainer »

Moin,

bin auch gerade beim Umstieg auf OH3. Leider funktioniert meine alte Rule nicht. Vorher ging das Licht bei Sonnenuntergang an, bei Sonnenaufgang aus und durch

Code: Alles auswählen

if ((CurrentHour >=6 && CurrentHour <23) && Sun_Elevation.state <=0) Sonoff_CH1.sendCommand(ON)
leuchtete sie nicht zwischen 23 und 6 Uhr. Wie muss ich das jetzt lösen? So ganz verstanden habe ich das nämlich nicht. Wie ich das sehe wird bei eurem Beispiel in der GUI zwar das Licht eingeschaltet, aber ich bräuchte noch eine 2 Rule um es wieder auszuschalten. Und dann noch eine Dritte um die Lampe zwischen 23 und 6 aus zu schalten?

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

Re: OH3 - Leidiges Thema - Licht an/aus bei Sonnenauf-/untergang

Beitrag von udo1toni »

Was soll denn bitte CurrentHour sein? So etwas gab auch in openHAB2 nicht. Evtl. ist das eine Variable, die Du vorher in der Rule setzt?
Sun_Elevation ist vermutlich mit dem passenden Channel des Astro Bindings verlinkt. Dieser Channel liefert aber Number:Angle als Wert, das ist ein UoM Channel, der dann gewöhnlich auch mit einem UoM Item verlinkt wird. Entsprechend wird der Ausdruck Sun_Elevation.state <=0 entweder immer oder nie true liefern (weil der Ausdruck halt verkehrt ist...)
In openHAB2 wurde für die Zeit noch JodaTime verwendet, inzwischen ist in Java aber JavaTime integriert, welches leicht anders verwendet wird. statt now() musst Du ZonedDateTime.now() angeben, statt getHourOfDay muss es getHour heißen. Deine Bedingung sollte nun also so aussehen:

Code: Alles auswählen

val CurrentHour = ZonedDateTime.now.getHour
if ((CurrentHour >=6 && CurrentHour <23) && (Sun_Elevation.state as Number).floatValue <=0)
    Sonoff_CH1.sendCommand(ON)
Die erste Zeile definiert die Konstante CurrentHour über JavaTime, das (... as Number).floatValue wandelt die Angabe x° in x um, schneidet also die Einheit ab.
openHAB4.3.6 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

Rainer
Beiträge: 114
Registriert: 28. Nov 2017 21:33
Answers: 0

Re: OH3 - Leidiges Thema - Licht an/aus bei Sonnenauf-/untergang

Beitrag von Rainer »

Hallo Udo,

vielen Dank für deine Hilfe. Die Rule funktioniert. Manchmal sieht man den Wald vor Bäumen nicht denn ich habe die ganze Zeit den Channel 'astro:sun:home' angesprochen so wie überall beschrieben. Ausserdem sollte man nicht vergessen haben den Channel Höhenwinkel als Item hinzuzufügen. Kleine Fehler - große Wirkung. :)

Code: Alles auswählen

rule "AutoBeleuchtung-ON"
    when
        Channel 'astro:sun:local:daylight#event' triggered END
    then
        val CurrentHour = ZonedDateTime.now.getHour
            if ((CurrentHour >=6 && CurrentHour <24) && (Sun_Elevation.state as Number).floatValue <=0) TreppenhausEGShelly25_Betrieb2.sendCommand(ON)
end
rule "AutoBeleuchtung-OFF"
    when
        Channel 'astro:sun:local:daylight#event' triggered START
    then TreppenhausEGShelly25_Betrieb2.sendCommand(OFF)
end

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

Re: OH3 - Leidiges Thema - Licht an/aus bei Sonnenauf-/untergang

Beitrag von udo1toni »

Nur so als Hinweis... getHour liefert eine Integer Zahl zwischen 0 und 23. Wenn Du also auf < 24 testest, kannst Du die Bedingung auch ebenso gut weg lassen, da sie immer erfüllt ist.
openHAB4.3.6 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

Antworten