Unterstützung zur Erstellung einer Rule

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

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

Re: Unterstützung zur Erstellung einer Rule

Beitrag von udo1toni »

Du willst nur, dass ich erröte... :oops: ;)
openHAB5.0.0 stable in einem Debian-Container (bookworm) (Proxmox 9.0.3, LXC)

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

Re: Unterstützung zur Erstellung einer Rule

Beitrag von peter-pan »

Nee, nee. Ich spreche ein wahres Wort nur gelassen aus. Ehre wem Ehre gebührt :D ;)
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH5.0.0 openhabian

Benutzeravatar
PeterA
Beiträge: 1106
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: Unterstützung zur Erstellung einer Rule

Beitrag von PeterA »

Ich merke, hier gibt es auch einen Lehrauftrag :-)
- OpenHab 2.4
#PWRUP

ollis112
Beiträge: 109
Registriert: 18. Aug 2018 11:36
Answers: 0
Wohnort: Alsbach-Hähnlein

Re: Unterstützung zur Erstellung einer Rule

Beitrag von ollis112 »

Wo er recht hat..... :)
Openhab3.3.0, openhabian auf Ubuntu, Gigabyte Brix, Z-Wave, Zigbee, Enocean

Benutzeravatar
PeterA
Beiträge: 1106
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: Unterstützung zur Erstellung einer Rule

Beitrag von PeterA »

Hallo nochmal zusammen :)

Hab noch mal eine Frage zu meiner Rule (etwas aktualisiert):

Code: Alles auswählen

when
    Item Aussenluft changed // WAC350 Sensor
then
   if(Lueftung_min_max_Temp.state != ON) return;  // wenn Schalter aus(nicht an) , keine Aktionen
    
   if(!(Aussenluft.state instanceof Number)) {
        logWarn("Aussenluft manuell","Aussenluft.state not a Number: {}",Aussenluft.state)  // numerisch ?
        return;
   }
   if (Aussenluft.state >= AussenGrenzMax_Set.state && FanStandby_switch.state != 0) {
       FanStandby_Switch.sendCommand(0)
       logInfo("Aussenluft manuell","LuefterStufe ist jetzt: {} Aussenluft beträgt {}",LuefterStufe.state,Aussenluft.state )
       
   }
   else if (AussenTemp.state <= AussenGrenzMin_Set.state && FanStandby_Switch.state != 1) { // LaCrosse Sensor
       FanStandby_Switch.sendCommand(1)
       logInfo("Aussenluft manuell","LuefterStufe ist jetzt: {} AussenTemp beträgt {}",LuefterStufe.state,AussenTemp.state)
       
   }
end
Könnte man die Rule so abändern das die "when" Bedinung der Switch "Lueftung_min_max_Temp" ist und nicht der Change der "Aussenluft" ?
Also quasi umgekehrt ?
- OpenHab 2.4
#PWRUP

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

Re: Unterstützung zur Erstellung einer Rule

Beitrag von peter-pan »

Hallo Peter,
klar das kannst du :roll: . Aber das Ergebnis wird dich wahrscheinlich nicht befriedigen. So wie ich das sehe, wird dann deine Regel genau einmal durchlaufen, nämlich dann, wenn du den Schalter anmachst. (wenn du nur changed machst, dann auch bei aus). Es fehlt dann der eigentliche Trigger für die Prüfung der Werte.

Gruss - Peter
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH5.0.0 openhabian

Benutzeravatar
PeterA
Beiträge: 1106
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: Unterstützung zur Erstellung einer Rule

Beitrag von PeterA »

Und wieder eine Frage zu meiner Rule:

Code: Alles auswählen

rule "Aussenluft manuell"
when
    Item AussenTemp changed // LaCrosse Sensor
then
   if(Lueftung_min_max_Temp.state != ON) return;  // wenn Schalter aus(nicht an) , keine Aktionen
   
   if(!(AussenTemp.state instanceof Number)) {
        logWarn("Lüftung manuell","AussenTemp.state not a Number: {}",AussenTemp.state)  // numerisch ?
        return;
   }
   if (AussenTemp.state >= AussenGrenzMax_Set.state && FanStandby_Switch.state != 0) {
       FanStandby_Switch.sendCommand(ON)
       logInfo("Lüftung manuell","LuefterStufe ist jetzt: {} AussenTemp beträgt {}",LuefterStufe.state,AussenTemp.state )
       
   }
   else if (AussenTemp.state <= AussenGrenzMin_Set.state && FanStandby_Switch.state != 1) { // LaCrosse Sensor
       FanStandby_Switch.sendCommand(OFF)
       logInfo("Lüftung manuell","LuefterStufe ist jetzt: {} AussenTemp beträgt {}",LuefterStufe.state,AussenTemp.state)
       
   }
end
Diese wird ja "aktiviert" über einen Softschalter:

Code: Alles auswählen

2019-02-28 13:49:00.375 [ome.event.ItemCommandEvent] - Item 'Lueftung_min_max_Temp' received command ON

2019-02-28 13:49:00.381 [vent.ItemStateChangedEvent] - Lueftung_min_max_Temp changed from OFF to ON
Und dann sollte die Rule bei einem Change von "AussenTemp" ablaufen.
hier kommt der Change:

Code: Alles auswählen

2019-02-28 13:49:44.750 [vent.ItemStateChangedEvent] - AussenTemp changed from 18.9 °C to 19.0 °C
Achso der Setpoint "AussenGrenzMAX" ist 19° also müsste ja die Rule ablaufen.
Es passiert aber nichts... :?:

EDIT:
Oder kann das daran liegen das der Setpoint so aussieht ?:

Code: Alles auswählen

2019-02-28 14:22:20.522 [ome.event.ItemCommandEvent] - Item 'AussenGrenzMax_Set' received command 18

2019-02-28 14:22:20.540 [vent.ItemStateChangedEvent] - AussenGrenzMax_Set changed from 17.5 to 18
Dh. die Rule wartet auf einen Wert ohne Komma ?

EDIT2:

Jupp so war es, ich musste die beiden Grenzwert Items in der PaperUI noch auf "Temperature" stellen.

Code: Alles auswählen

2019-02-28 14:42:45.665 [vent.ItemStateChangedEvent] - AussenTemp changed from 18.8 °C to 18.7 °C

2019-02-28 14:42:45.687 [ome.event.ItemCommandEvent] - Item 'FanStandby_Switch' received command ON
2019-02-28 14:42:45.694 [nt.ItemStatePredictedEvent] - FanStandby_Switch predicted to become ON
2019-02-28 14:42:45.693 [INFO ] [arthome.model.script.Lüftung manuell] - LuefterStufe ist jetzt: 1 AussenTemp beträgt 18.7 °C
2019-02-28 14:42:45.704 [vent.ItemStateChangedEvent] - FanStandby_Switch changed from OFF to ON
2019-02-28 14:42:55.099 [vent.ItemStateChangedEvent] - LuefterStufe changed from 1 to 0
2019-02-28 14:43:03.287 [vent.ItemStateChangedEvent] - Abluft changed from 19.5 to 19.6
2019-02-28 14:43:08.527 [vent.ItemStateChangedEvent] - Abluft changed from 19.6 to 19.5
2019-02-28 14:43:08.633 [vent.ItemStateChangedEvent] - Luefter1 changed from 35 to 0
2019-02-28 14:43:08.648 [vent.ItemStateChangedEvent] - Luefter2 changed from 35 to 0
Passt!

Mal sehen ob die Lüfter bei erreichen der GrenzMin wieder anlaufen....
- OpenHab 2.4
#PWRUP

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

Re: Unterstützung zur Erstellung einer Rule

Beitrag von peter-pan »

Hallo Peter,

hab's nicht so genau angeschaut, aber du hast folgenden Code-Snipped:

Code: Alles auswählen

 if (AussenTemp.state >= AussenGrenzMax_Set.state && FanStandby_Switch.state != 0) {
       FanStandby_Switch.sendCommand(ON)
       logInfo("Lüftung manuell","LuefterStufe ist jetzt: {} AussenTemp beträgt {}",LuefterStufe.state,AussenTemp.state 
Muss das nicht

Code: Alles auswählen

 if (AussenTemp.state >= AussenGrenzMax_Set.state && FanStandby_Switch.state != 0) {
       FanStandby_Switch.sendCommand(0)
       logInfo("Lüftung manuell","LuefterStufe ist jetzt: {} AussenTemp beträgt {}",LuefterStufe.state,AussenTemp.state 
heissen? Also FanStandby_Switch.sendCommand(0)

Probier's mal
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH5.0.0 openhabian

Benutzeravatar
PeterA
Beiträge: 1106
Registriert: 8. Feb 2019 12:12
Answers: 13

Re: Unterstützung zur Erstellung einer Rule

Beitrag von PeterA »

peter-pan hat geschrieben: 28. Feb 2019 14:48 Hallo Peter,

hab's nicht so genau angeschaut, aber du hast folgenden Code-Snipped:

Code: Alles auswählen

 if (AussenTemp.state >= AussenGrenzMax_Set.state && FanStandby_Switch.state != 0) {
       FanStandby_Switch.sendCommand(ON)
       logInfo("Lüftung manuell","LuefterStufe ist jetzt: {} AussenTemp beträgt {}",LuefterStufe.state,AussenTemp.state 
Muss das nicht

Code: Alles auswählen

 if (AussenTemp.state >= AussenGrenzMax_Set.state && FanStandby_Switch.state != 0) {
       FanStandby_Switch.sendCommand(0)
       logInfo("Lüftung manuell","LuefterStufe ist jetzt: {} AussenTemp beträgt {}",LuefterStufe.state,AussenTemp.state 
heissen? Also FanStandby_Switch.sendCommand(0)

Probier's mal
Ne... das ist etwas verwirrend, aber wenn Standby ON ist... geht die Anlage in Standby :) und Umgekehrt.
- OpenHab 2.4
#PWRUP

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

Re: Unterstützung zur Erstellung einer Rule

Beitrag von peter-pan »

Okeeeey :?: Aber du frägst doch auf FanStandby_Switch.state != 0 ab.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH5.0.0 openhabian

Antworten