NEWS
Blockly Trockner Überwachung "Problem"
-
Unabhängig davon würde ich mir auch mal Gedanken machen, ob der Trockner defekt ist. Denn wenn er bis vor 2 Wochen mit dem identischen Trocknerprogramm keine Pausen eingelegt hat, ist was nicht in Ordnung.
-
@1topf sagte in Blockly Trockner Überwachung "Problem":
Unabhängig davon würde ich mir auch mal Gedanken machen, ob der Trockner defekt ist. Denn wenn er bis vor 2 Wochen mit dem identischen Trocknerprogramm keine Pausen eingelegt hat, ist was nicht in Ordnung.
Ich würde ja eher darauf tippen, dass es wärmer geworden ist und der Trockner deshalb zwischendurch die Heizung abschaltet um nicht zu überhitzen.
-
-
https://forum.iobroker.net/assets/uploads/files/1653565515897-bild_2022-05-26_134514947.png
https://forum.iobroker.net/topic/55146/blockly-trockner-überwachung-problem/3Kann mir jemand dieses Bild/Skript erklären?
Ich verstehe es leider nicht ganz.Falls das Objekt Leistung verändert wird:
Falls der Wert > 200 ist, dann mache "stop fertig"
Somit ist doch das Skript im Knitterschutz wenn die Trommel stehen bleibt, sofort erfüllt?Ich komme doch dann gar nicht in den "sonst falls" Fall rein?
-
@wusa sagte in Blockly Trockner Überwachung "Problem":
Falls das Objekt Leistung verändert wird:
Falls der Wert > 200 ist, dann mache "stop fertig"
Somit ist doch das Skript im Knitterschutz wenn die Trommel stehen bleibt, sofort erfüllt?Ich komme doch dann gar nicht in den "sonst falls" Fall rein?
Im "sonst falls" wird der vorherige Wert abgefragt. Diese Abfrage bedeutet: Wenn Wert das erste Mal kleiner oder gleich 200 ist. Nur dann soll der Timer gestartet werden. Wenn dann innerhalb von fünf Minuten der Wert wieder über 200 steigt, war es wohl nur die ausgeschaltete Heizung mitten im Betrieb. Erst wenn es mindestens fünf Minuten lang unter 200 bleibt, kommt man an die Stelle "Meldung fertig".
-
Ich stehe momentan auch vor dem Problem, dass ich gerne meinen Trocker überwachen würde.
Allerdings sieht meine Trockner Kurve etwas anders aus:
Hier mal eine detailierter Screenshot.
Angegeben ist hier ~135 Watt.
Im Knitterschutz sind aber immer wieder mal Ausschläge dabei, die genauso hoch oder höher sind.Die Logik, die hier am Anfang von dem Thread angewendet wird, dass es eine bestimmt Zeit unter einem Wert liegen muss, kann ich leider in meinem Fall nicht anwenden.
Kann man irgendwie einen Zähler machen, wenn innerhalb einer bestimmten Zeit der Wert unter 5 Watt fällt dann sollte er fertig sein?
17:32:58 > 5W
17:33:31 > 5W
17:34:04 > 5WOder kann man das irgendwie anders angehen? Es sind dazwischen auch immer wieder mal kurz Phasen, in denen die Watt zahlt sinkt auf ~5 Watt.
Aber meist nur 2-3xEigentlich könnte man sagen, wenn der Wert innerhalb von 5 Minuten 5x bei unter 5 Watt liegt, sollte er fertig sein?
-
@wusa sagte: Trockner Kurve
Soweit ich erkennen kann, sind die zwischenzeitlichen Pausen (< 200 W) unter 15 Minuten lang. Also sollte das Prinzip mit einer Verzögerung von 15 Minuten funktionieren.
-
@paul53
Ja soweit ich sehe, liegen die Zwischenpausen bei < 200W für ~12 Minuten.
Dann könnte es klappen.Da hatte ich vorher vermutlich irgendwie anders gedacht.
Ich teste das Skript. Danke!
Edit: @paul53
Irgendwie lässt mich der Gedanke nicht los, dass man das anders auch angehen könnte.
Mein Knitterschutz läuft ungefähr 30 Min lang. Davon sind immer wieder in ungefähr 30 Sekunden abständen die Werte unter 5 Watt.
Wäre es nicht irgendwie besser, das anders abzufangen?Wenn Wert für 5 Min min. 10x unter 5 Watt liegt, dann ist der Trockner fertig.
Dann würde der Knitterschutz vielleicht auch nicht immer die kompletten 30 Min nachlaufen.
Hier mal eine Detailansicht auf einen Teil vom Kitterschutz. Ausschnitt ist genau 5 Minuten lang.
-
@wusa Würde nicht schon eine Prüfung auf min. 15 Sekunden unter 5W reichen? Dann würde es schon bei der ersten Pause anschlagen.
Alternativ, um etwas sicherer zu sein: 30 Sekunden unter 5W in einem Zeitraum von 60 Sekunden. -
@zarello
Habe es gerade mit dem "Zwischenpausen" geprüft, Da sollte eigentlich klappen.
Aber beim Knitterschutz habe ich nicht immer 15 Sekunden. Es kann auch mal sein, dass innerhalb der 15 Sekunden 9 Watt im Knitterschutz dabei sind. Dann geht der Strom wieder kurz auf 140 Watt und fällt wieder ab.
Da glaube ich klappt es nicht.Oder wie hast du es dir vorgestellt?
-
@wusa sagte: in ungefähr 30 Sekunden abständen die Werte unter 5 Watt.
Ich würde das jeweils erstmalige Unterschreiten einer Schwelle von 50 W verwenden und dieses Ereignis zählen.
Dann sollte die Meldung nach ca. 2,5 Minuten erfolgen.
-
@wusa Ich habe natürlich anhand des Diagramms schätzen müssen.
Die Zeit von unter 5W würde ich rechnen als Zeitpunkt, zu dem der Wert das erste Mal unter 5W fällt bis zum Zeitpunkt, bei dem der Wert danach das erste Mal wieder über 5W ist.
Evtl. kann man die entsprechend benötigte Dauer ja auch noch ein wenig reduzieren. Es muss ja nur deutlich über den Pausen während des Waschvorgangs liegen.Möchte man etwas mehr Sicherheit haben, kann man natürlich gucken, ob innerhalb von einer Minute (oder 90 Sekunden) zwei solche Phasen hintereinander auftauchen.
Ein weiterer Weg wäre übrigens numerisch das bestimmte Integral der letzten Minute zu berechnen. Damit solltest Du einen ziemlich eindeutigen Kennwert bekommen, anhand dessen Du die beiden Zustände eindeutig unterscheiden kannst.
Edit: Die Version von @paul53 sieht auch sehr gut aus. Es werden die Spitzen gezählt, wobei fünf Spitzen zusammen kommen müssen und keine Spitze länger als 90 Sekunden dauern darf (wobei die 90 Sekunden wirklich sehr großzügig gerechnet sind).
-
@zarello sagte: keine Spitze länger als 90 Sekunden dauern darf
Wenn 90 s lang die Leistung über 50 W bleibt, wird der Zähler zurück gesetzt, also auch zwischen den Spitzen innerhalb der 12-Minuten-Pausen.
-
Ich versuche gerade wieder mal das Blockly zu verstehen.
Kann es sein, dass die < und > zeichen nicht durchgehend stimmen?
Oder ich verstehe es falsch.
Falls Wert kleiner (<) 50
falls vorheriger Wert größer oder gleich 50
Kann das stimmen? Wenn der Wert größer als 50 ist, dass dann der cnt erhöht wird. Ich vermute nicht?
Rest verstehe ich.Sonst falls, wenn vorheriger Wert kleiner (< ) 50
Ausführen Timeout in 90 Sekunden
Läuft das nicht in eine Endlosschleife? Wenn der Wert keiner 50 ist, dann setze dem Timer auf 90 Sekunden.
Wenn der nächste Wert wieder kleiner 50 ist, dann wieder Timer auf 90 Sekunden?Irgendwie tue ich mich gerade hart das zu verstehen.
Und woher weißt das Skript was der vorherige Wert war? Wird bei jeder Veränderung der gerade aktuelle Wert in die Variable vorheriger Wert geschrieben?
-
@wusa sagte: Kann es sein, dass die < und > zeichen nicht durchgehend stimmen?
Nein, die stimmen.
@wusa sagte in Blockly Trockner Überwachung "Problem":
Falls Wert kleiner (<) 50
falls vorheriger Wert größer oder gleich 50
Kann das stimmen?Ja. Wenn der Wert 50 erstmalig (vorheriger Wert >= 50) unterschritten wird, soll gezählt werden.
@wusa sagte in Blockly Trockner Überwachung "Problem":
Sonst falls, wenn vorheriger Wert kleiner (< ) 50
Ausführen Timeout in 90 Sekunden
Läuft das nicht in eine Endlosschleife?sonst falls vorheriger Wert < 50
ist gleich bedeutend mit
Wert >= 50 UND vorheriger Wert < 50
und bedeutet erstmaliges Überschreiten von 50, damit nur ein Timer gestartet wird.
@wusa sagte in Blockly Trockner Überwachung "Problem":
woher weißt das Skript was der vorherige Wert war?
Das liefert der Trigger:
-
Ok ich glaube (bin mir aber noch nicht sicher), dass ich es verstanden habe.
Der Timeout wird aber nur bei vorheriger Wert verwendet und es muss innerhalb der 90 Sekunden nochmal ein vorheriger Wert< 50 kommen?
Wenn innerhalb der 90 Sekunden kein vorheriger Wert mit kleiner 50 kommt dann greift die obere Schleife wieder und Stoppt den Timeout. Ansonsten, wenn vorheriger Wert nach (oder innerhalb) der 90 Sekunden wieder kommt, dann wird der Zähler auf 0 gesetzt? -
@wusa sagte: Der Timeout wird aber nur bei vorheriger Wert verwendet und es muss innerhalb der 90 Sekunden nochmal ein vorheriger Wert< 50 kommen?
Nein, der Timeout wird nur ausgelöst, wenn der Wert >= 50 ist (sonst) UND der vorherige Wert < 50 ist. Wird der Wert wieder < 50 wird der Timeout gestoppt, wodurch sicher gestellt wird, dass immer nur ein Timeout aktiv ist.
-
Ok ich glaube ich hab es verstanden, bzw. ich versuche es jetzt mal und wenn nochmal fragen sind, dann melde ich mich nochmal.
Danke