Hallo zusammen,
ich habe 3-4 Pumpen im Haus, welche ich über den Stromverbrauch überwachen möchte.
Da die Pumpen natürlich auch zeitgleich laufen können, arbeite ich mit 2 timern und Routinen.
Items
Rule
Im Grundsatz funktioniert dies, jedoch wird bei jedem Durchlauf die Erstnachricht gesendet "pushNotification("Note", "Entwässerungspumpe zieht Strom")", obwohl dann ja nicht mehr der previous.state 0 sein kann? Wenn die entsprechende Pumpe abschaltet, kommt auch die korrekte Meldung.
Seht ihr meinen Denkfehler??
Viele Grüße,
Jörg
ich habe 3-4 Pumpen im Haus, welche ich über den Stromverbrauch überwachen möchte.
- Hauswasserwerk für Gartenbewässerung und Toilettenspülung
- Entwässerung vor dem Kellerfenster (dort steigt seit 3 Jahren aussen das Wasser zu hoch)
- Hebeanlage Hauptpumpe
- Hebeanlage Backup Pumpe (kommt aber noch)

Da die Pumpen natürlich auch zeitgleich laufen können, arbeite ich mit 2 timern und Routinen.
Items
Code:
Switch Steckd_KG_Links_Pumpe "Hauswasserwerk" (KG_Hausanschluss) {channel="knx:device:bridge:ABB_0_0_10:ch8"} Number Wasserwerk_Strom "Hauswasserwerk Stromverbrauch [%f Wh]" (Strom, Electricity_Chart) {channel="knx:device:bridge:ABB_0_0_10:ch8A"} Switch Steckd_Pumpe "Entwässerungspumpe" {channel="knx:device:bridge:ABB_0_0_15:ch1"} Number Drainage_Power "Entwässerungspumpe Stromverbrauch [%f Wh]" (Strom, Electricity_Chart) {channel="knx:device:bridge:ABB_0_0_15:ch1A"}
Code:
var Timer t_waterscurity = null //Timer, zur Überwachung des Hauswasserwerks var Timer t_drainagescurity = null //Timer, zur Überwachung der Entwässerungspumpe rule WaterSecurity when Item Wasserwerk_Strom changed or Item Drainage_Power changed then if (Wasserwerk_Strom.previousState.state == (0) && Wasserwerk_Strom.state > 0 && GhostMode.state == CLOSED && myIrrigationSwitchVis.state == ON) { pushNotification("Note", "Hauswasserwerk zieht Strom") if (t_waterscurity === null) { t_waterscurity = createTimer(now.plusSeconds(10))[| if (Wasserwerk_Strom.state > 0) { pushNotification("ALARM: " + now, "Hauswasserwerk zieht immer noch Strom: " + Wasserwerk_Strom.state.toString + " mA") t_waterscurity.reschedule(now.plusSeconds(10)) } else { pushNotification("Entwarnung: " + now, "Hauswasserwerk bei " + Wasserwerk_Strom.state.toString + " mA") t_waterscurity.cancel t_waterscurity = null return; } ] } } else if (Drainage_Power.previousState.state == (0) && Drainage_Power.state > 0) { pushNotification("Note", "Entwässerungspumpe zieht Strom") if (t_drainagescurity === null) { t_drainagescurity = createTimer(now.plusSeconds(10))[| if (Drainage_Power.state > 0) { pushNotification("ALARM: " + now, "Entwässerungspumpe zieht immer noch Strom: " + Drainage_Power.state.toString + " mA") t_drainagescurity.reschedule(now.plusSeconds(10)) } else { pushNotification("Entwarnung: " + now, "Entwässerungspumpe bei " + Drainage_Power.state.toString + " mA") t_drainagescurity.cancel t_drainagescurity = null return; } ] } } end
Seht ihr meinen Denkfehler??
Viele Grüße,
Jörg
Kommentar