Pumpenmonitoring - Triggering Item unzuverlässig
Verfasst: 10. Jan 2022 09:00
Hallo zusammen,
seit einigen Wochen zeigt unser Pumpenmonitoring ein seltsames Verhalten
Nach einem Neustart von openHAB scheint es zunächst zu laufen, und dann fängt irgendwann der Hokus-Pokus an: Und zwar läuft die Entwässerungspumpe an, es erscheint aber keine Meldung zur Abschaltung. Beim nächsten Start der Pumpe scheint es dann, das erst die Meldung zur Abschaltung (dann natürlich mit einer viel zu langen Laufzeit) und bei der Abschaltung die Meldung die eigentlich beim einschalten erfolgen sollte. Ich suche schon wie Bolle seit einigen Tagen aber scheine derzeit betriebsblind zu sein und hoffe ihr seht dort etwas.
Wie in den Rules zu sehen, logge ich bereits einiges, was mir leider auch noch nicht geholfen hat hinter das Problem zu kommen.
Dort sieht man auch, das es manchmal läuft, manchmal (mittlerweile schon fast meistens) dann aber auch nicht.
Dies war bereits vor dem Update auf 3.2.0 der Fall, aber nicht so häufig. Damals vermutete ich einen Zusammenhang mit dem laufen einer anderen Pumpe, obwohl ich schon unterschiedliche Timer nutze.
Logeinsträge
Auch wenn nur ein Teil der Rule betroffen zu sein scheint (für die Enwässerungspumpe) poste ich einmal die komplette Rule
Items
Rules
seit einigen Wochen zeigt unser Pumpenmonitoring ein seltsames Verhalten

Wie in den Rules zu sehen, logge ich bereits einiges, was mir leider auch noch nicht geholfen hat hinter das Problem zu kommen.
Dort sieht man auch, das es manchmal läuft, manchmal (mittlerweile schon fast meistens) dann aber auch nicht.
Dies war bereits vor dem Update auf 3.2.0 der Fall, aber nicht so häufig. Damals vermutete ich einen Zusammenhang mit dem laufen einer anderen Pumpe, obwohl ich schon unterschiedliche Timer nutze.
Logeinsträge
Code: Alles auswählen
10.01.2022 05:28 INFO org.openhab.core.model.script.Water - Entwässerungspumpe ist angelaufen.
10.01.2022 05:28 INFO org.openhab.core.model.script.Water - Note: Entwässerungspumpe lief 1998 Sekunden
10.01.2022 05:28 INFO org.openhab.core.model.script.Water - Entwässerungspumpe zieht derzeit 12.72 mA.
10.01.2022 05:28 INFO org.openhab.core.model.script.Water - Entwässerungspumpe zieht derzeit 12.620000000000001 mA.
10.01.2022 05:29 INFO org.openhab.core.model.script.Water - Entwässerungspumpe hat abgeschaltet.
10.01.2022 05:29 INFO org.openhab.core.model.script.Water -1641788942
10.01.2022 05:29 INFO org.openhab.core.model.script.Water - Note: Alarmtimer für Entwässerungspumpe gestartet
10.01.2022 06:39 INFO org.openhab.core.model.script.Water - Entwässerungspumpe ist angelaufen.
10.01.2022 06:39 INFO org.openhab.core.model.script.Water -1641793173
10.01.2022 06:39 INFO org.openhab.core.model.script.Water - Note: Alarmtimer für Entwässerungspumpe gestartet
10.01.2022 06:39 INFO org.openhab.core.model.script.Water - Entwässerungspumpe zieht derzeit 13.07 mA.
10.01.2022 06:39 INFO org.openhab.core.model.script.Water - Entwässerungspumpe zieht derzeit 12.700000000000001 mA.
10.01.2022 06:39 INFO org.openhab.core.model.script.Water - Entwässerungspumpe zieht derzeit 12.43 mA.
10.01.2022 06:39 INFO org.openhab.core.model.script.Water - Entwässerungspumpe hat abgeschaltet.
10.01.2022 06:39 INFO org.openhab.core.model.script.Water - Note: Entwässerungspumpe lief 13 Sekunden
10.01.2022 06:57 INFO org.openhab.core.model.script.Water - Entwässerungspumpe ist angelaufen.
10.01.2022 06:57 INFO org.openhab.core.model.script.Water -1641794264
10.01.2022 06:57 INFO org.openhab.core.model.script.Water - Note: Alarmtimer für Entwässerungspumpe gestartet
10.01.2022 06:57 INFO org.openhab.core.model.script.Water - Entwässerungspumpe zieht derzeit 12.88 mA.
10.01.2022 06:57 INFO org.openhab.core.model.script.Water - Entwässerungspumpe zieht derzeit 12.56 mA.
10.01.2022 06:57 INFO org.openhab.core.model.script.Water - Entwässerungspumpe hat abgeschaltet.
10.01.2022 06:57 INFO org.openhab.core.model.script.Water - Note: Entwässerungspumpe lief 13 Sekunden
10.01.2022 07:16 INFO org.openhab.core.model.script.Water - Entwässerungspumpe ist angelaufen.
10.01.2022 07:16 INFO org.openhab.core.model.script.Water - Note: Entwässerungspumpe lief 1099 Sekunden
10.01.2022 07:16 INFO org.openhab.core.model.script.Water - Entwässerungspumpe zieht derzeit 12.8 mA.
10.01.2022 07:16 INFO org.openhab.core.model.script.Water - Entwässerungspumpe zieht derzeit 12.64 mA.
10.01.2022 07:16 INFO org.openhab.core.model.script.Water - Entwässerungspumpe zieht derzeit 2.49 mA.
10.01.2022 07:16 INFO org.openhab.core.model.script.Water - Entwässerungspumpe hat abgeschaltet.
10.01.2022 07:16 INFO org.openhab.core.model.script.Water -1641795378
10.01.2022 07:16 INFO org.openhab.core.model.script.Water - Note: Alarmtimer für Entwässerungspumpe gestartet
10.01.2022 07:34 INFO org.openhab.core.model.script.Water - Entwässerungspumpe ist angelaufen.
10.01.2022 07:34 INFO org.openhab.core.model.script.Water -1641796474
10.01.2022 07:34 INFO org.openhab.core.model.script.Water - Note: Alarmtimer für Entwässerungspumpe gestartet
10.01.2022 07:34 INFO org.openhab.core.model.script.Water - Entwässerungspumpe zieht derzeit 13.34 mA.
10.01.2022 07:34 INFO org.openhab.core.model.script.Water - Entwässerungspumpe zieht derzeit 13.05 mA.
10.01.2022 07:34 INFO org.openhab.core.model.script.Water - Entwässerungspumpe zieht derzeit 12.64 mA.
10.01.2022 07:34 INFO org.openhab.core.model.script.Water - Entwässerungspumpe zieht derzeit 12.59 mA.
10.01.2022 07:34 INFO org.openhab.core.model.script.Water - Entwässerungspumpe hat abgeschaltet.
10.01.2022 07:53 INFO org.openhab.core.model.script.Water - Entwässerungspumpe ist angelaufen.
10.01.2022 07:53 INFO org.openhab.core.model.script.Water - Note: Entwässerungspumpe lief 1136 Sekunden
10.01.2022 07:53 INFO org.openhab.core.model.script.Water - Entwässerungspumpe zieht derzeit 13.13 mA.
10.01.2022 07:53 INFO org.openhab.core.model.script.Water - Entwässerungspumpe zieht derzeit 12.700000000000001 mA.
10.01.2022 07:53 INFO org.openhab.core.model.script.Water - Entwässerungspumpe zieht derzeit 12.59 mA.
10.01.2022 07:53 INFO org.openhab.core.model.script.Water - Entwässerungspumpe hat abgeschaltet.
10.01.2022 07:53 INFO org.openhab.core.model.script.Water -1641797623
10.01.2022 07:53 INFO org.openhab.core.model.script.Water - Note: Alarmtimer für Entwässerungspumpe gestartet
10.01.2022 08:12 INFO org.openhab.core.model.script.Water - Entwässerungspumpe ist angelaufen.
10.01.2022 08:12 INFO org.openhab.core.model.script.Water -1641798754
10.01.2022 08:12 INFO org.openhab.core.model.script.Water - Note: Alarmtimer für Entwässerungspumpe gestartet
10.01.2022 08:12 INFO org.openhab.core.model.script.Water - Entwässerungspumpe zieht derzeit 13.07 mA.
10.01.2022 08:12 INFO org.openhab.core.model.script.Water - Entwässerungspumpe zieht derzeit 12.72 mA.
10.01.2022 08:12 INFO org.openhab.core.model.script.Water - Entwässerungspumpe zieht derzeit 12.620000000000001 mA.
10.01.2022 08:12 INFO org.openhab.core.model.script.Water - Entwässerungspumpe zieht derzeit 2.19 mA.
10.01.2022 08:12 INFO org.openhab.core.model.script.Water - Entwässerungspumpe hat abgeschaltet.
Items
Code: Alles auswählen
Group:Number:SUM gPump "Pumpen"
Group gPumpOn
// virtuelle Schalter
Switch PumpFeedingWater_vSwitch "Hauswasserwerk" (gPumpOn)
Switch PumpWasteWater_vSwitch "Schmutzwasserpumpe" (gPumpOn)
Switch PumpDrainage_vSwitch "Entwässerungspumpe" (gPumpOn)
Number PumpWasteWater_Power "Schmutzwasser [%.2f W]" (gPump, Pump_Power_Chart, ePumpWasteWater) ["Measurement", "Power"] {channel="knx:"}
Number PumpFeedingWater_Power "Hauswasserwerk [%.2f W]" (gPump, Pump_Power_Chart, ePumpFeedingWater) ["Measurement", "Power"] {channel="knx:"}
Number PumpDrainage_Power "Entwässerungspumpe [%.2f W]" (gPump, Pump_Power_Chart, ePumpDrainage) ["Measurement", "Power"] {channel="knx:"}
Code: Alles auswählen
var long Drainage_Starttime
var Number Drainage_Length
var Timer t_watchdogdrainage = null //Timer zur Überwachung der Entwässerungspumpe
var Timer t_watchdogfeeding = null //Timer zur Überwachung des Hauswasserwerks
rule PumpMonitor //(Erkennung der Pumpe)
when
Member of gPump changed
then
val myPump = gPumpOn.members.filter[ i|i.name.contains(triggeringItem.name.split("_").get(0))].head
if (triggeringItem.state > 0 && previousState == 0 && myPump.state != ON) {
myPump.postUpdate(ON)
logInfo("Water", "{} ist angelaufen.", triggeringItem.label)
} else if (triggeringItem.state > 0 && previousState > 0) {
logInfo("Water", "{} zieht derzeit {} mA.", triggeringItem.label, triggeringItem.state)
} else if (triggeringItem.state == 0 && previousState > 0 && myPump.state != OFF) {
myPump.postUpdate(OFF)
logInfo("Water", "{} hat abgeschaltet.", triggeringItem.label)
}
end
rule PumpAction //(Aktion und Meldung)
when
Member of gPumpOn received update
then
val actions = getActions("pushover", "pushover:pushover-account:account")
/* Entwässerungspumpe EIN */
if (triggeringItem.state == (ON) && triggeringItem.name.split("_").get(0) == PumpDrainage_Power.name.split("_").get(0)) {
if (t_watchdogdrainage === null) {
Drainage_Starttime = new DateTimeType().zonedDateTime.toInstant.toEpochMilli / 1000
logInfo("Water", Drainage_Starttime.toString)
logInfo("Water", "Note: Alarmtimer für {} gestartet", PumpDrainage_vSwitch.label)
actions.sendMessageToDevice("iPhone", PumpDrainage_vSwitch.label + " ist angelaufen.", "Notification")
t_watchdogdrainage = createTimer(now.plusSeconds(45))[ |
if (PumpDrainage_vSwitch.state == ON) {
Drainage_Length = (new DateTimeType().zonedDateTime.toInstant.toEpochMilli / 1000) - Drainage_Starttime
actions.sendMessageToDevice("iPhone", PumpDrainage_vSwitch.label + " läuft seit " + Drainage_Length.toString + " Sekunden!", "Alert: " + OffsetDateTime.now().toString)
if (Parents.state == ON) {
if (SleepMode.state == 1) {
Steckd_OG_Schlafz_Schrank.sendCommand(ON)
Lampe_OG_Flur_Deko.sendCommand(ON)
} else if (Night.state == ON && SleepMode.state == 0) {
Lampe_EG_Deko_Wand.sendCommand(ON)
}
t_watchdogdrainage.reschedule(now.plusSeconds(30))
} else {
t_watchdogdrainage.reschedule(now.plusSeconds(30))
}
} else if (PumpDrainage_vSwitch.state == (OFF)) {
t_watchdogdrainage.cancel
t_watchdogdrainage = null
return;
}
]
}
/* Entwässerungspumpe AUS (zur Überwachung) */
} else if (triggeringItem.state == (OFF) && triggeringItem.name.split("_").get(0) == PumpDrainage_Power.name.split("_").get(0)) {
Drainage_Length = (new DateTimeType().zonedDateTime.toInstant.toEpochMilli / 1000) - Drainage_Starttime
actions.sendMessageToDevice("iPhone", PumpDrainage_vSwitch.label + " hat nach " + Drainage_Length.toString + " Sekunden abgeschaltet.", "Notification")
logInfo("Water", "Note: {} lief {} Sekunden", PumpDrainage_vSwitch.label, Drainage_Length.toString)
t_watchdogdrainage.cancel
t_watchdogdrainage = null
return;
/* Hauswasserwerk EIN */
//raus weil Gardena Binding noch nicht aktiv } else if (triggeringItem.state == (ON) && triggeringItem.name.split("_").get(0) == PumpFeedingWater_Power.name.split("_").get(0) && myIrrigationSwitchVis.state == ON) {
} else if (triggeringItem.state == (ON) && triggeringItem.name.split("_").get(0) == PumpFeedingWater_Power.name.split("_").get(0)) {
logInfo("Water", "{} ist angelaufen", PumpFeedingWater_vSwitch.label)
if (t_watchdogfeeding === null) {
logInfo("Water", "Note: Alarmtimer für {} gestartet", PumpFeedingWater_vSwitch.label)
t_watchdogfeeding = createTimer(now.plusSeconds(10))[ |
if (PumpFeedingWater_vSwitch.state == (ON) && Parents.state == ON) {
logInfo("Water", "Note: Lampe_EG_Deko_Wand.sendCommand(ON)")
} else if (PumpFeedingWater_vSwitch.state == (ON) && Parents.state == OFF) {
actions.sendMessageToDevice("iPhone", PumpFeedingWater_vSwitch.label + " läuft seit 10 Sekunden!", "Alert")
t_watchdogfeeding.reschedule(now.plusSeconds(10))
logInfo("Water", "Note: Pumpe läuft 10 Sec.")
} else if (PumpFeedingWater_vSwitch.state == (OFF)) {
t_watchdogfeeding.cancel
t_watchdogfeeding = null
logInfo("Water", "Timer beendet")
return;
}
]
}
/* Schmutzwasserpumpe EIN */
} else if (triggeringItem.state == (ON) && (triggeringItem.name.split("_").get(0) == PumpWasteWater_Power.name.split("_").get(0)) && Washer_Power.state > 0) {
return;
} else if (triggeringItem.state == (ON) && (triggeringItem.name.split("_").get(0) == PumpWasteWater_Power.name.split("_").get(0))) {
actions.sendMessageToDevice("iPhone", "Warum läuft die " + PumpWasteWater_vSwitch.label + "?", "Alert")
return;
}
end