Seite 2 von 3

Re: Unterstützung zur Erstellung einer Rule

Verfasst: 18. Feb 2019 21:07
von udo1toni
Du willst nur, dass ich erröte... :oops: ;)

Re: Unterstützung zur Erstellung einer Rule

Verfasst: 19. Feb 2019 12:42
von peter-pan
Nee, nee. Ich spreche ein wahres Wort nur gelassen aus. Ehre wem Ehre gebührt :D ;)

Re: Unterstützung zur Erstellung einer Rule

Verfasst: 19. Feb 2019 12:44
von PeterA
Ich merke, hier gibt es auch einen Lehrauftrag :-)

Re: Unterstützung zur Erstellung einer Rule

Verfasst: 19. Feb 2019 13:53
von ollis112
Wo er recht hat..... :)

Re: Unterstützung zur Erstellung einer Rule

Verfasst: 27. Feb 2019 07:24
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 ?

Re: Unterstützung zur Erstellung einer Rule

Verfasst: 27. Feb 2019 09:19
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

Re: Unterstützung zur Erstellung einer Rule

Verfasst: 28. Feb 2019 14:14
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....

Re: Unterstützung zur Erstellung einer Rule

Verfasst: 28. Feb 2019 14:48
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

Re: Unterstützung zur Erstellung einer Rule

Verfasst: 28. Feb 2019 14:54
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.

Re: Unterstützung zur Erstellung einer Rule

Verfasst: 28. Feb 2019 17:18
von peter-pan
Okeeeey :?: Aber du frägst doch auf FanStandby_Switch.state != 0 ab.