[SOLVED] Bei Luminanz Wert xx Switch ON und um yy Uhr OFF

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Boris099
Beiträge: 383
Registriert: 19. Feb 2020 20:51
Answers: 3
Wohnort: Saarbrücken

Re: [SOLVED] Bei Luminanz Wert xx Switch ON und um yy Uhr OFF

Beitrag von Boris099 »

Ah okay, das versuche ich
Raspberry 4, Rev.1.2b, 4GB, Openhab 2.5.12 (OH3 kommt im Winter dran:-))

Boris099
Beiträge: 383
Registriert: 19. Feb 2020 20:51
Answers: 3
Wohnort: Saarbrücken

Re: [SOLVED] Bei Luminanz Wert xx Switch ON und um yy Uhr OFF

Beitrag von Boris099 »

Also habe ich gemacht, aber nicht perfekt, da diese ZWAVE Dinger halt evtl. erst ne halbe Stunde später eine Luminance Änderung melden.
Alternativ habe ich versucht im When-Teil den Item.state abzufragen also

when
Item zwave_device_6c898019_node5_sensor_luminance.state <=4

aber das frisst er nicht, sowas geht wohl nicht im When-Teil?
Raspberry 4, Rev.1.2b, 4GB, Openhab 2.5.12 (OH3 kommt im Winter dran:-))

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

Re: [SOLVED] Bei Luminanz Wert xx Switch ON und um yy Uhr OFF

Beitrag von udo1toni »

So ist es. der when-Teil ist ein Trigger, Du kannst auf changed triggern oder auf received update, aber nicht auf Status.
Zeig mal bitte Deine Rule, so wie sie jetzt ist.
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

Boris099
Beiträge: 383
Registriert: 19. Feb 2020 20:51
Answers: 3
Wohnort: Saarbrücken

Re: [SOLVED] Bei Luminanz Wert xx Switch ON und um yy Uhr OFF

Beitrag von Boris099 »

So sieht das momentan aus

Code: Alles auswählen

rule "ZPIR_Kueche_Luminance changed"
when
      Item zwave_device_6c898019_node5_sensor_luminance changed
then
      if(now.getHourOfDay >= 15) {
        if(newState <= 3) {  // && previousState > 3) {
            if(zwave_device_6c898019_node10_switch_binary.state != ON) zwave_device_6c898019_node10_switch_binary.sendCommand(ON)
            if(Lampe_KuecheVitrine.state != ON) Lampe_KuecheVitrine.sendCommand(ON)
        }
      }
end
Raspberry 4, Rev.1.2b, 4GB, Openhab 2.5.12 (OH3 kommt im Winter dran:-))

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

Re: [SOLVED] Bei Luminanz Wert xx Switch ON und um yy Uhr OFF

Beitrag von udo1toni »

Ah, ich glaube, ich verstehe, was Dein Problem ist... Die Helligkeit hat sich nicht verändert, aber die Uhrzeit-grenze wurde überschritten.

da musst Du einen zusätzlichen Trigger einbauen, der aber nicht an die Helligkeit gekoppelt ist, sondern an die Uhrzeit. So:

Code: Alles auswählen

rule "ZPIR_Kueche_Luminance changed"
when
      Item zwave_device_6c898019_node5_sensor_luminance changed or
      Time cron "0 0 15 * * ?"                                           // täglich um 15:00:00 Uhr
then
    if(now.getHourOfDay >= 15 && newState <= 3) {
        if(zwave_device_6c898019_node10_switch_binary.state != ON)
            zwave_device_6c898019_node10_switch_binary.sendCommand(ON)
        if(Lampe_KuecheVitrine.state != ON)
            Lampe_KuecheVitrine.sendCommand(ON)
    }
end
Die Rule triggert also bei Helligkeitsänderung UND um 15 Uhr. Ist es schon vor 15 Uhr dunkel genug, so triggert die Rule um 15 Uhr, die erste Bedingung ist erfüllt, die zweite Bedingung ist erfüllt -> es wird geschaltet. Ist es um 15 Uhr nicht dunkel genug, triggert die Rule um 15 Uhr aber es passiert bis zur Helligkeitsänderung nichts.
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

Boris099
Beiträge: 383
Registriert: 19. Feb 2020 20:51
Answers: 3
Wohnort: Saarbrücken

Re: [SOLVED] Bei Luminanz Wert xx Switch ON und um yy Uhr OFF

Beitrag von Boris099 »

Wenn alles so einfach wäre wie du das mit der Logik erfasst.... Also echt great!!!

... aber was kann ich denn dafür daß es schon so früh dunkel wird, sonst hätten wir das Problem doch gar nicht, oder? Sonne, Sommer und kein Corona mehr
Raspberry 4, Rev.1.2b, 4GB, Openhab 2.5.12 (OH3 kommt im Winter dran:-))

Boris099
Beiträge: 383
Registriert: 19. Feb 2020 20:51
Answers: 3
Wohnort: Saarbrücken

Re: [SOLVED] Bei Luminanz Wert xx Switch ON und um yy Uhr OFF

Beitrag von Boris099 »

Also noch was Kleines:-)

Diese "doo..." ZWave PIRs tun einfach nicht so wie sie sollen, das liegt wohl einfach daran, dass ich die billigsten gekauft hatte...
Also die Luminance Werte dieser Dinger fallen Nachts, wenn länger auf "0" einfach "weg". Das heißt es wird kein Luminanz Wert angezeigt.
Vielleicht eine Energiesparfunktion - es lässt sich in der Config aber nicht beeinflussen. In HabMin steht dann "-"
Sobald der Luminanzwert wieder nennenswert steigt wachen die wieder auf, aber im Log seh ich z.B.

Code: Alles auswählen

2020-12-04 07:50:15.036 [vent.ItemStateChangedEvent] - zwave_device_6c898019_node2_sensor_luminance changed from NULL to 2
Kann ich diese "NULL" auch abfragen, und im rule verwenden?
Raspberry 4, Rev.1.2b, 4GB, Openhab 2.5.12 (OH3 kommt im Winter dran:-))

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

Re: [SOLVED] Bei Luminanz Wert xx Switch ON und um yy Uhr OFF

Beitrag von udo1toni »

Ja, das ist kein Problem. Du kannst z.B. auf instanceof Number testen. Das bedeutet: der angegebene Wert ist vom Typ Number Bei NULL ist diese Aussage falsch, bei einem Zahlenwert ist die Aussage wahr. Für Deine Rule sähe das dann so aus:

Code: Alles auswählen

rule "ZPIR_Kueche_Luminance changed"
when
      Item zwave_device_6c898019_node5_sensor_luminance changed or
      Time cron "0 0 15 * * ?"                                           // täglich um 15:00:00 Uhr
then
    val nState = if(newState instanceof Number) newState else 0          // falls ein ungültiger Wert geliefert wird, wird 0 genommen
    if(now.getHourOfDay >= 15 && nState <= 3) {
        if(zwave_device_6c898019_node10_switch_binary.state != ON)
            zwave_device_6c898019_node10_switch_binary.sendCommand(ON)
        if(Lampe_KuecheVitrine.state != ON)
            Lampe_KuecheVitrine.sendCommand(ON)
    }
end
Alternativ, falls der Code einen Fehler schmeißt:

Code: Alles auswählen

rule "ZPIR_Kueche_Luminance changed"
when
      Item zwave_device_6c898019_node5_sensor_luminance changed or
      Time cron "0 0 15 * * ?"                                           // täglich um 15:00:00 Uhr
then
    var nState = 0 
    if(newState instanceof Number) nState = newState                     // falls ein ungültiger Wert geliefert wird, wird 0 genommen
    if(now.getHourOfDay >= 15 && nState <= 3) {
        if(zwave_device_6c898019_node10_switch_binary.state != ON)
            zwave_device_6c898019_node10_switch_binary.sendCommand(ON)
        if(Lampe_KuecheVitrine.state != ON)
            Lampe_KuecheVitrine.sendCommand(ON)
    }
end
der Unterschied zwischen beiden Varianten: Bei der ersten variante reicht eine lokale Konstante, die über den ternären Operator mit dem Alternativwert gefüllt wird, bei der zweiten Variante muss es eine lokale Variable sein.
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

Boris099
Beiträge: 383
Registriert: 19. Feb 2020 20:51
Answers: 3
Wohnort: Saarbrücken

Re: [SOLVED] Bei Luminanz Wert xx Switch ON und um yy Uhr OFF

Beitrag von Boris099 »

Oh Mann:-} Vielen Dank
Ich gebe Feedback
Raspberry 4, Rev.1.2b, 4GB, Openhab 2.5.12 (OH3 kommt im Winter dran:-))

Boris099
Beiträge: 383
Registriert: 19. Feb 2020 20:51
Answers: 3
Wohnort: Saarbrücken

Re: [SOLVED] Bei Luminanz Wert xx Switch ON und um yy Uhr OFF

Beitrag von Boris099 »

Also ich habe das erste Beispiel eingestellt, hat er direkt genommen, keine Warnung oder Fehler!
Jetzt muss ich bis morgen früh abwarten, bis der Sensor nochmal diesen "Blank" Wert angenommen hat.

EIne Frage drängt sich mir auf, wieso weiß das rule zu welchem device "newstate" gehört,
einfach weil nur ein device im when-Teil angesprochen ist?
Raspberry 4, Rev.1.2b, 4GB, Openhab 2.5.12 (OH3 kommt im Winter dran:-))

Antworten