NEWS
[Vorlage] Bestimmung der Laufzeit der Waschmaschine etc.
-
Hallo Leute,
es gibt ja bereits einige Scripte und Youtube-Videos, womit man die Dauer der Wasch-/Trocknungszeit einer Wasch- oder Spülmaschine, bzw. eines Trockners bestimmen und sich dann eine Benachrichtigung schicken lassen kann. Damit man nicht immer zu früh oder zu spät (wenn schon wieder alles verknittert ist) in den Keller rennen muss.
Alle von mir gefundenen Scripte messen wohl den Strombedarf der Gerate und bei längerem 0 ist der Waschvorgang vorbei.Bei mir funktionierte das nicht, weil meine Waschmaschine und auch mein Trockner mittendrin immer wieder eine Eigendynamik entwickeln: ich weiß nicht, was die Teile da machen, aber untertags steigt ab und zu mal der Strombedarf an, ohne dass gewaschen wird.
Es ist quasi immer ein Ruhestrom vorhanden, von 15 mA (Waschmaschine) und 20 mA (Trockner), der sich mehrmals am Tag einfach so erhöht.
Auch wen das Teil von meiner Frau morgens für eine spätere Waschzeit nur kurz programmiert wird, steigt der Strombedarf kurz an und die anderen Scripte würden loslegenZu meiner Ausstattung muss ich noch einiges sagen: jedes Gerät ist an einer "intelligenten" Steckdose angeschlossen. Über den KNX-Bus können hiermit die Stromaufnahme (in mA), der Gesamtverbrauch (in kWh) und die Betriebsstunden (in h) gemessen werden. Diese Werte werden nur bei Änderung von mind. 20% auf den Bus gesendet, so dass hier nicht permanent Werte reinkommen.
Nach einigem Rumprobieren bin ich nun zu folgender Lösung gekommen, die bei mir in dieser Konstellation soweit funktioniert. Ich habe noch nicht alle Wasch-Trocknungsprogramme durch, aber die wichtigen funktionieren.
Ich weiß zwar nicht, ob das so der Weisheit letzter Schluss ist, aber ein anderer Weg ist mir nicht eingefallen. Vielleicht geht das auch viel einfacher?!?!?Da ich nun nicht direkt auf den aktuellen Stromwert gehen und bestimmen kann, dass bei einer Unterschreitung von 15 mA der Waschvorgang vorbei ist, habe ich mir in Blockly eine Liste angelegt, in die ich permanent bei Wertänderung die Stromaufnahmewerte und die Zeit (in Minuten von Mitternacht) mitschreibe. Diese Liste hat bei mir derzeit maximal 20 Einträge. Werden es mehr, fliegt der erste wieder raus, so dass es immer 20 Stück bleiben.
Steigt der Stromwert über 250 mA, dann heißt das, dass die Waschmaschine wirklich anfängt zu waschen. Der Ruhestrom ist immer unter 200 mA.
Ich setze dann einen Schalter "Waschmaschine läuft" auf True und schreibe ab dann - unabhängig von den Werten bei Wertänderung - alle 2 Minuten den aktuellen Stromwert in die Liste, so dass immer genug aktuelle Werte zum Vergleichen vorhanden sind.
Alle 5 Minuten summiere ich die dann auf und teile durch 20 (Anzahl Listeneinträge). Bleibt dieser Mittelwert über 100, dann läuft das Teil noch. Fällt er unter 100 ab, dann ist die Wascherei vorbei und der Schalter "Waschmaschine läuft" geht auf False. Ich erhalte dann eine Meldung per Pushover.Das Script hänge ich mit rein. Jeder kann es weiter verwenden, wenn es hilft. Ich habe es meiner Meinung nach ganz gut dokumentiert und parametrisiert.
Für das Debuggen - also Ausgabe von Variablenwerten im Log - habe ich einen Debugging-Schalter eingebaut. Die Länge der Liste und die Schwellwerte sind ebenfalls parametrisiert.
Wenn sich einer frägt warum ich auch die Uhrzeit in die Liste mit aufnehme und diese aber derzeit nicht verwende: habe ich mal mitgemacht, ggf. brauche ich das später noch. Außerdem ist das Parsen der Werte nicht ganz so einfach.
Die Listenwerte sehe so aus: 15-502,15-501,15-500 etc. Der erste Wert ist die Stromaufnahme, dann das Trennzeichen "-", danach die Zeit in Minuten von Mitternacht. Wenn es mal notwendig wird, werde ich auch noch die Zeiten zwischen den Werten prüfen, um hier besser die Aktualität der Werte bestimmen zu können.
Ich arbeite auch mit einer Funktion, da ich diesen Code-Teil im Script 4-mal aufrufen muss. Falls einer bisher keine Funktion verwendet hat, bitte anschauen, das bring mehr Übersichtlichkeit und kürzeren Code.Normalerweise erzeugt das Script nicht viel Last, erst nach dem Start des Waschvorgangs wird hier mehr geprüft. Somit sollte untertags die meiste Zeit, wenn der Ruhestrom immer gleich ist, nicht viel passieren.
Ein Tipp noch: vor dem Importieren des Scripts müsst ihr den Pushover Adapter installieren, sonst gibt es eine Fehlermeldung beim Import.
Hier noch ein paar Screenshots:
Stromwerte in KNX:
Wenn man sich die Werte so ansieht, dann merkt man schnell, warum hier die Bestimmung des Wasch-Endes so schwierig ist.
Debuggingwerte im ioBroker Log:
Hier lass ich mir immer die aktuellen Listenwerte und den Durchschnittswert anzeigen. Hier wurde noch alle 2 Minuten der Durchschnitt berechnet.
So, ich hoffe, es kann jemand verwenden und wenn es auch nur dazu gut ist sich etwas Code herauszuholen. Hier der Code:
WaMa_Laufzeitbestimmung.txtDas Script (in Bildern):
Bei Fragen bitte melden.
Natürlich bin ich kein perfekter Blockly-Programmierer, wenn also jemand einen eleganteren Weg für das Ganze hat oder zur Optimierung des Codes beitragen kann, dann bitte zögert nicht......LG, Cornel
-
ja, ein eleganterer Weg wäre zum Beispiel der #device-reminder adapter der exakt dafür über ein halbes jahr lang entwickelt wurde. Aber es muss ja ständig das Rad neu erfunden werden
dafür muss aber der Verbrauch zwingend in kWh umgerechnet sein...