NEWS
Wiedermal die fertigmeldung für die Waschmaschine
-
@duffy sagte: eine Stunde nach dem Start
Versuche es mal so:
-
-
Hallo Paul53,
wir haben jetzt einige male gewaschen und es hat geklappt.
Die Werte, Watt und Zeit, mussten noch etwas optimiert werden aber jetzt schaltet die Maschien nach dem waschen ab und wartet nicht erst noch bis der Knitterschutz fertig ist.Jetzt ist mir heute noch aufgefallen das ich
setze gestartet auf falsch
im Blockly übersehen habe.
Wie gesagt es hat ja trotzdem funktioniert. War das jetzt Glück oder Zufall?Wie auch immer ich kann das Blockly, made by paul53, nur jedem empfehlen der auch vom Knitterschutz geärgert wird
Danke noch mal für deine Mühe.
Gruß Duffy
-
@duffy sagte: es hat ja trotzdem funktioniert.
Ja, aber nur einmal nach Skriptstart.
-
Danke für den Hinweis, ist jetzt aber korrigiert.
-
@paul53 sagte in Wiedermal die fertigmeldung für die Waschmaschine:
EDIT: Ab Javascript-Version 7.0.5 funktioniert es so nicht mehr, da die Variable fertig bei Ablauf der Verzögerung automatisch auf null gesetzt wird.
Alternative für "nicht Verzögerung fertig": "vorheriger Wert > 18".Hallo paul53,
vielen Dank für den Hinweis. Aktuell habe ich Javascript 7.1.6 und habe noch keine Änderung feststellen können, Die Waschmaschine hat bis gestern punktgenau abgaschaltet.
Wenn du jedoch schon darauf hinweist würde ich es natürlich gerne auch richtig machen.
Mein aktuelles Skript schaut so aus, da hattest du ja freundlicherweise noch einige Verbesserungen einfließen lassen.
Ich habe jetzt einmal versucht deinen Vorschlag umzusetzen und würde dich bitten dir den Screenshot einmal anzusehen ob das nun so passt wie du es meintest.
VG Duffy
-
@duffy sagte: ob das nun so passt
Passt.
Dass es bei dir trotz der Änderung funktioniert, liegt daran, dass die WM komplett abgeschaltet wird. -
Danke für die Rückmeldung und noch einen schönen ersten Advent.
-
Darf ich mal fragen, wie ihr die Leistung eurer Waschmaschinen (und anderer Hausgeräte) erfasst?
Hintergrund meiner Frage ist, dass ich das mit der Homematic IP Schaltmess-Steckdose (HMIP-PSM-2) machen wollte. Aber ich habe das Gefühl, dass die für diese Aufgabe zu träge sind, bzw. übermitteln die Änderungen nicht regelmäßig genug.
Vielleicht hab ich sie aber auch nur falsch eingestellt?!?
-
Ich Messe den Verbrauch der Waschmaschine mit einer Gosund Steckdose die alle 10 Sek Daten liefert.
Gruß Duffy
Edit: Gosund mit Tasmota über den sonoff Adapter.
-
Hallo Paul53,
ich freue mich ja das die Blocklys so schön funktionieren.
Aber was ich immer noch nicht verstanden habe ist das mit den Timeouts, ich würde es aber gerne verstehen.Könntest du mir bitte erklären was in dem rot umrandeten Bereich passiert?
Ich hatte auch schon zum Thema Timeouts gegoogelt, auch nachvollziehbare Beispiele gefunden aber so etwas habe ich nicht gefunden.
VG Duffy
-
@duffy
Ich springe da mal ein ...Es passiert folgendes:
Wenn die WM mehr als 21 W verbrät, wird ein evtl. laufender timeout gestoppt. Könne ja sein, dass die Maschine beim Wechsel der Programme mal kurz weniger als 21 W braucht.Verbraucht sie <= 21 W, wird zunächst geschaut, ob vielleicht schon ein timeout läuft, denn es muss ja kein weiterer gestartet werden. Du willst die Meldung ja nur 1x erhalten.
Läuft kein timeout, wird einer gestartet, der nach 50 Sekunden eine Meldung ausgibt.Soweit verständlich?
-
@duffy sagte: was in dem rot umrandeten Bereich passiert?
Das hat @Codierknecht gut erklärt. Nur leider funktioniert es seit JS-Version 7.0.5 so nicht mehr, da nun Blockly bei Ablauf der Verzögerung die Timer-Variable
fertig
automatisch auf null setzt. Bei schwankender Leistung <= 21 wird der Timeout erneut gestartet. -
@paul53 sagte in Wiedermal die fertigmeldung für die Waschmaschine:
Bei schwankender Leistung <= 21 wird der Timeout erneut gestartet
Dann müsste man das selbst über eine Statusvariable verwalten.
-
@codierknecht sagte: über eine Statusvariable verwalten.
Es genügt, "nicht Verzögerung timeout" durch "vorheriger Wert > Grenzwert" zu ersetzen.
-
@paul53 sagte in Wiedermal die fertigmeldung für die Waschmaschine:
@duffy sagte: was in dem rot umrandeten Bereich passiert?
Das hat @Codierknecht gut erklärt. Nur leider funktioniert es seit JS-Version 7.0.5 so nicht mehr, da nun Blockly bei Ablauf der Verzögerung die Timer-Variable fertig automatisch auf null setzt. Bei schwankender Leistung <= 21 wird der Timeout erneut gestartet.Ja das hattest du geschrieben, das habe ich bei dem aktiven Blockly auch geändert und es läuft. Mir ging es bei dem Screenshot eher um das grundsätzliche beim Timeout.
@Codierknecht Danke für deine Mühe, leider ist der Groschen noch nicht gefallen, vermutlich bin ich zu doof, werde es mir aber morgen noch einmal in Ruhe ansehen. Also sagen wir so, ich verstehe die Erklärung bekomme sie aber nicht mit den Blocklybausteinen zusammen.
VG Duffy
Edit: das ist das aktive Blockly nur hätte ich es da ja noch weniger verstanden.
-
@duffy sagte: leider ist der Groschen noch nicht gefallen
Vielleicht, wenn ich die Aussage von @Codierknecht ergänze?
@codierknecht sagte: Wenn die WM mehr als 21 W verbrät, wird ein evtl. laufender timeout gestoppt
... und die Timer-Variable auf null gesetzt. -
@Duffy
Vielleicht muss man zum Verständnis auch noch etwas weiter ausholen.Wenn man so einen
timeout
startet, tritt man ja nicht einfach etwas los, was dann nach Ablauf der Zeitspanne irgendwelche Dinge tut.
timeout
kann man auch abfragen - wie jede andere Variable auch.Damit kann man dann sowohl einen laufenden
timeout
abbrechen
aber auch abfragen, obtimeout
gerade läuft (existiert) oder nicht.
Aber wie @paul53 schon schreibt: Wenn das mit JS > 7.0.5 nicht mehr funktioniert, muss man auf anderem Wege herausfinden, ob der Wert (Power) gerade von > 21 auf < 21 gewechselt hat.
Wenn er bei der letzten Änderung bereits unter 21 war, wurde ja dertimeout
bereits angeschubst.Vielleicht wäre mein Vorschlag mit der Statusvariablen einfacher?
Man setzt bei < 21 mit dem Start destimeout
eine VariabletimerLaeuft
auftrue
.
Wenn beim Auslösen des Triggers der Wert erneut < 21 und diese Variabletrue
ist, wurde dertimeout
bereits gestartet und man muss ihn nicht erneut anschubsen.
Wechselt der Wert vor Ablauf auf > 21, stoppt man dentimeout
und setzt die Variable wieder auffalse
.
Ist etwas umständlicher als @paul53's Vorschlag, aber evtl. einfacher zu verstehen. -
@paul53
heisst das, das im schlimmsten Fall hunderte Timer getriggert werden? -
Guten Morgen codierknecht.
Danke für deine Mühe und die Erklärung. Ja in der Tat ich habe mir das etwas einfacher vorgestellt ich dachte ich trete etwas los und irgendwann passiert was.
Aber nun ist mir das schon klarer geworden.Dein Vorschlag mit der Statusvariablen hört sich interessant an und ich würde es gerne einmal testen nur denke ich, es scheitert bei mir wieder an der Umsetzung.
Könntest du mir bitte einmal die Blocklyblöcke zusammenfügen die ich benötige? Dann könnte ich es einmal probieren.Zweifelsohne funktionieren @paul53's Vorschäge immer super aber um die richtig zu verstehen fehlen mir glaub die Grundlagen ;-(
Euch beiden auf jeden Fall vieeelen Dank und einen schönen 2. Advent.
VG Duffy