(solved) Poolpumpe nach x Minuten ausschalten
Verfasst: 23. Jul 2024 10:51
Hallo liebe Community.
Bin dabei eine Rule für die Poolfilterung zu erstellen. Der Fillter läuft bei PV Überschuss und besitzt einen Wartungsmodus. Die Taktung beträgt stumpf 5 Minuten, um die Geräte mit häufigen Schaltungen nicht zu strapazieren.
Hier der geistige Erguss:
Nicht schön, aber funktioniert. 
Nun läuft die Pumpe bei sonnigen Wetter lange, zu lange. Würde das gerne mit einer Laufzeiterfassung limitieren. Hier im Forum gibt es paar Ideen eines Counters oder Timer, nur bekommes hier nicht wirklich zum laufen.
Hier die test.rules mit mir 20 Sekunden:
Hier die test.items:
Und die Fehlermeldungen im Log:
Tja, ist "postUpdate" in der aktuellen OH Version nicht mehr verfügbar? Weiss jemand Rat oder hat einen Tip?
Gruß, Mike
Bin dabei eine Rule für die Poolfilterung zu erstellen. Der Fillter läuft bei PV Überschuss und besitzt einen Wartungsmodus. Die Taktung beträgt stumpf 5 Minuten, um die Geräte mit häufigen Schaltungen nicht zu strapazieren.
Hier der geistige Erguss:
Code: Alles auswählen
rule "Wartung Poolfilter"
when
Item pumpswitch received update
then
if (pumpswitch.state.toString == "ON") {
logInfo("Pool", "Wartung")
Shelly03_switch.sendCommand(OFF)
}
if (pumpswitch.state.toString == "OFF") {
logInfo("Pool", "Betriebsbereit")
}
end
rule "Pool Pump start"
when
Time cron "0 0/5 9-18 * * ?"
then
if (pumpswitch.state.toString == "ON")
return;
if (House_PowerOut.state >= 1200 && Shelly03_switch.state == OFF) {
logInfo("Pool", "Pool an")
Shelly03_switch.sendCommand(ON)
}
if (House_PowerOut.state <= 100 && Shelly03_switch.state == ON) {
logInfo("Pool", "Pool aus")
Shelly03_switch.sendCommand(OFF)
}
end

Nun läuft die Pumpe bei sonnigen Wetter lange, zu lange. Würde das gerne mit einer Laufzeiterfassung limitieren. Hier im Forum gibt es paar Ideen eines Counters oder Timer, nur bekommes hier nicht wirklich zum laufen.
Hier die test.rules mit mir 20 Sekunden:
Code: Alles auswählen
rule "Reset Laufzeit"
when
Time cron " 20 0 0 1/1 * ? * "
then
Counter = 0
end
rule "Laufzeit"
when
Time cron " 0/20 * * * * ?"
then
if (Counter.state instanceof Number && Shelly03_switch.state == ON) {
Counter.postUpdate((Counter.state as Number)+20)
logInfo("Filter Laufzeit", "counter {} Sekunden", Counter.state)
}
end
Code: Alles auswählen
Number Counter "Counter" <status>
Code: Alles auswählen
[ERROR] [internal.handler.ScriptActionHandler] - Script execution of rule with UID 'test-2' failed: 'postUpdate' is not a member of 'java.lang.Integer'; line 19, column 5, length 48 in test
Gruß, Mike