rule CheckItemTrigger
when
Member of gPump changed
then
logInfo("WaterTest", triggeringItem.name)
logInfo("WaterTest", triggeringItem.state.toString)
if (triggeringItem.state > 0 && previousState == 0) {
logInfo("WaterTest", "Die Pumpe {} ist angelaufen.", triggeringItem.name)
} else if (triggeringItem.state > 0 && previousState > 0) {
logInfo("WaterTest", "Die Pumpe {} zieht derzeit {} mA.", triggeringItem.name, triggeringItem.state)
} else if (triggeringItem.state == 0 && previousStatenotep > 0) {
logInfo("WaterTest", "Die Pumpe {} hat abgeschaltet.", triggeringItem.name)
}
end
[/CODE]
Dieser läuft soweit, aber es scheint noch ein Fehler mit previousState zu geben
Seltsamerweise wird erst die zweite Abfrage als wahr erkannt, obwohl doch previousState 0.0 sein müsste (so wie am Schluß)
Die erste Vermutung war 0 === 0.0 aber, im Anschluß (also nach der nächsten Änderung) funktioniert das ja, obwohl ich dort previousState schon bei 18.94 erwartet hätte.
Schließlich ist 18,94 ja direkt beim ersten Durchlauf der aktuelle Status.
when
Member of gPump changed
then
logInfo("WaterTest", triggeringItem.name)
logInfo("WaterTest", triggeringItem.state.toString)
if (triggeringItem.state > 0 && previousState == 0) {
logInfo("WaterTest", "Die Pumpe {} ist angelaufen.", triggeringItem.name)
} else if (triggeringItem.state > 0 && previousState > 0) {
logInfo("WaterTest", "Die Pumpe {} zieht derzeit {} mA.", triggeringItem.name, triggeringItem.state)
} else if (triggeringItem.state == 0 && previousStatenotep > 0) {
logInfo("WaterTest", "Die Pumpe {} hat abgeschaltet.", triggeringItem.name)
}
end
[/CODE]
Dieser läuft soweit, aber es scheint noch ein Fehler mit previousState zu geben

Code:
2020-01-18 10:32:08.766 [INFO ] [pse.smarthome.model.script.WaterTest] - PumpWater_Power 2020-01-18 10:32:08.782 [INFO ] [pse.smarthome.model.script.WaterTest] - 18.94 2020-01-18 10:32:08.797 [INFO ] [pse.smarthome.model.script.WaterTest] - Die Pumpe PumpWater_Power zieht derzeit 18.94 mA. 2020-01-18 10:32:08.829 [INFO ] [pse.smarthome.model.script.WaterTest] - PumpWater_Power 2020-01-18 10:32:08.829 [INFO ] [pse.smarthome.model.script.WaterTest] - 18.94 2020-01-18 10:32:08.829 [INFO ] [pse.smarthome.model.script.WaterTest] - Die Pumpe PumpWater_Power ist angelaufen. 2020-01-18 10:32:19.049 [INFO ] [pse.smarthome.model.script.WaterTest] - PumpWater_Power 2020-01-18 10:32:19.081 [INFO ] [pse.smarthome.model.script.WaterTest] - 18.68 2020-01-18 10:32:19.096 [INFO ] [pse.smarthome.model.script.WaterTest] - Die Pumpe PumpWater_Power zieht derzeit 18.68 mA. 2020-01-18 10:32:38.800 [INFO ] [pse.smarthome.model.script.WaterTest] - PumpWater_Power 2020-01-18 10:32:38.832 [INFO ] [pse.smarthome.model.script.WaterTest] - 0.56 2020-01-18 10:32:38.847 [INFO ] [pse.smarthome.model.script.WaterTest] - Die Pumpe PumpWater_Power zieht derzeit 0.56 mA. 2020-01-18 10:32:49.146 [INFO ] [pse.smarthome.model.script.WaterTest] - PumpWater_Power 2020-01-18 10:32:49.162 [INFO ] [pse.smarthome.model.script.WaterTest] - 0.0 2020-01-18 10:32:49.177 [INFO ] [pse.smarthome.model.script.WaterTest] - Die Pumpe PumpWater_Power hat abgeschaltet.
Die erste Vermutung war 0 === 0.0 aber, im Anschluß (also nach der nächsten Änderung) funktioniert das ja, obwohl ich dort previousState schon bei 18.94 erwartet hätte.
Schließlich ist 18,94 ja direkt beim ersten Durchlauf der aktuelle Status.
Kommentar