NEWS
[solved]Mehrfache Telegram Nachrichten
-
Hi,
ich habe diverse Blocklies nach dem gleichen Muster:
Diese Blocklies funktionieren einige Tage ohne Probleme und dann kommt der Zeitpunkt, an dem statt einer Meldung zig Meldungen in kurzer Zeit kommen. Es scheint als ob dann die Booleans nicht mehr sauber ausgewertet werden.
Die Wartezyklen habe ich schon eingebaut, weil anscheinend ohne der PI4 zu langsam ist um das Setzen und gleich wieder Auslesen sauber hinzubekommen, in den Meldungen stand dann immer genau der falsche Wert.
In gut der Hälfte der Fälle, wenn das "Spammen" anfängt, ist die JavaScript-Instanz rot statt grün, aber eben nicht immer.
Der WAF leidet extrem unter diesem Verhalten mich nervt es aber auch. In der Regel muss ich mich kurzfristig aufschalten und den PI booten, damit wieder Ruhe ist. Wenn es erst einmal angefangen hat, werden alle Meldungen zig Mal gesendet.Eisige Grüße aus dem Sauerland
Marc -
Muss auf aktualisiert getriggert werden?
Würde auch geändert gehen ?
Triggerst du auf wahr oder falsch musste geändert nehmen.Edit: ich sehe gerade , dass der Power Datenpunkt ja die W-Zahl beinhaltet.
Ich schätze fast, dass Du zu bestimmten Zeiten den Datenpunkt aktualisieren lässt und dann immer ne Nachricht bekommst.
Bei meinen Tasmota Dosen habe ich ne 30sek Period eingestellt.
Wäre das auch bei dir so, müsstest du alle 30sek ne Nachricht bekommen, richtig?
Im Grunde müsste unser Blocky Experte @paul53 mal drüberschauen. -
@haselchen Nein, ich bekomme nicht bei jedem "Update" eine Nachricht , ich habe 15sek bzw. 30sek Intervalle in den Tasmotas eingestellt. Die nervigen Nachrichten kommen in 1-2 Sekunden... bis zu 50 Stück
Ob aktualisiert oder geändert ist für den Zweck quasi egal wenn z.B. der Trockner läuft, da ist so gut wie immer ein anderer Watt Wert, das habe ich aus meinen Anfängen mehr für mich fürs "Debug" beibehalten damit ich auf jeden Fall alle 15 bzw. 30sek was sehe selbst wenn der Trockner nicht laufen sollte, das kann ich in allen "Blöcken" ohne Probleme ändern. Aber zum Verständnis, warum muss ich geändert nehmen?
Das merkwürdige ist ja, das es Tage lang genau wie gewollt funktioniert.
EINE Meldung wenn die Waschmaschine oder der Trockner angeht und EINE wenn sie fertig sind. Selbst der Knitterschutz vom Trockner und der Waschmaschine (periodisches Anlaufen mit geringer Wattzahl) wird normaler Weise nicht gemeldet, das sollen ja genau die wahr/falsch regeln. -
Ich war davon ausgegangen, dass der Datenpunkt wahr oder falsch liefert.
Deswegen mein "Edit" hinterher.Im Forum gibt es doch ein funktionierende Waschmaschinen/Trockner Skripte.
Danach schonmal gesucht? -
@haselchen Ah, ok.
Die Idee für das Blockly ist mit den Augen aus dem Forum geklaut
-
Wenn es irgendwann funktioniert, schreibe ich bei dir ab
-
@skeeveklah sagte: Es scheint als ob dann die Booleans nicht mehr sauber ausgewertet werden.
Man nimmt zum Sperren keine Datenpunkte, sondern Variablen. Dann werden die kurzen Verzögerungen auch nicht benötigt.
-
@paul53 Ok, dann werde ich an der Stelle mal umbauen, danke für den Hinweis!
-
@skeeveklah
Prinzip, das mit unterschiedlichen Verzögerungszeiten für "fertig" bei jedem Trockner / jeder Waschmaschine funktionieren sollte: -
@paul53 @haselchen
So, ich habe die Skripte nach paul53 auf Variablen umgestellt und das Ganze jetzt einige Tage laufen lassen.
Keine Probleme mehr!!
Herzlichen Dank! -
@paul53
Danke ich werde es mal testen -
@paul53
Hallo, ich habe das mal nachgebaut
Welche Object ID muss denn da eingetragen werden?
Warum ist falls mache in falls mache eingepackt?
Sorry, bin noch Anfänger. -
@gonzokalle sagte: Welche Object ID muss denn da eingetragen werden?
Lösche oder deaktiviere die beiden Blöcke "aktualisiere", wenn kein Datenpunkt für "Waschmaschine fertig" vorgesehen ist.
-
@gonzokalle sagte in [solved]Mehrfache Telegram Nachrichten:
Welche Object ID muss denn da eingetragen werden?
Soweit das zu erkennen ist dient der da angesprochene Datenpunkt dazu eine Anzeige zu steuern ob die Waschmaschine läuft oder nicht. (Datenpunkt Wahr: Waschmaschine ist "frei", Datenpunkt Falsch: Waschmaschine läuft.)
Warum ist falls mache in falls mache eingepackt?
Das hat etwas mit Logik zu tun.
Natürlich kann man versuchen alles in eine grosse Bedingung zu zwängen, es ist aber oft hilfreich die Verschiedenen Bedingungen getrennt voneinander zu behandeln.
In diesem Fall sorgt das äussere
falls Wert < 100
dafür zu erkennen ob die Waschmaschine läuft oder nicht, während das innerefalls nicht gestartet
dazu dient dafür zu sorgen das die Telegramm Meldung nur einmal kommt. Dazu kommt noch das der Timeout unabhängig von der inneren Bedingung immer angehalten wird.A.
-
Danke auch beiden.
Auch gut, dann kann ich mit der Objekt ID die Waschmaschine in der Vis anzeigen lassen. Hatte ich sowieso mal vor gehabt.
Es war auch mein Problem, dass die Meldung Waschmaschine läuft andauernd kam. Jetzt nur zu Start.
-
@paul53 said in [solved]Mehrfache Telegram Nachrichten:
@skeeveklah
Prinzip, das mit unterschiedlichen Verzögerungszeiten für "fertig" bei jedem Trockner / jeder Waschmaschine funktionieren sollte:Ich hatte dein Blockly damals für meine Waschmaschine nachgebaut und es hat auch die ganze Zeit super funktioniert. Allerdings bekomme ich plötzlich (sobald die Waschmaschine fertig ist) alle 5 Minuten die "Waschmaschine ist FERTIG" Meldung.
Hier mal ein Screenshot von meinem Nachbau. Hast du vllt eine Idee wo das Problem liegt?
LG
-
@breiti sagte: Idee wo das Problem liegt?
Das Problem besteht seit Version 7.0.5 des Javascript-Adapters darin, dass der Timeout-Block geändert wurde, so dass nach Ablauf der Verzögerungszeit die Timer-Variable auf null gesetzt wird und deshalb die Sperre nicht mehr funktioniert. Siehe hier
Ersetze "nicht timeout" durch "vorheriger Wert > 15".
-
@paul53 sagte: Ersetze "nicht timeout" durch "vorheriger Wert > 15"
erstmal vielen Dank für deine Hilfe!
Ich habe das Blockly jetzt folgendermaßen abgeändert:
Jetzt habe ich die Waschmaschine eingeschaltet und habe bis jetzt noch keine Startmeldung bekommen.
LG
-
@breiti sagte: Blockly jetzt folgendermaßen abgeändert:
Wert
undvorheriger Wert
dürfen keine selbst erstellten Variablen sein, sondern aus "Trigger". -
Ups, da waren die Finger schneller als das Hirn!
Nun funktioniert wieder alles. Vielen Dank für deine Hilfe!!