NEWS
Blockly-Skript - Telegram messages doppelt
-
@segway sagte in Blockly-Skript - Telegram messages doppelt:
Hallo,
habe ein Skript am Laufen, welches mir Meldungen per Telegram schickt, aber die Meldungen kommen immer doppelt und dreifach obwohl das eigentlich nicht sein sollte - siehe Skript. Hatte ich mir aus einem anderen thread kopiert. leider funktioniert das nicht und ich weiss nicht wie ich das beheben kann.
Hier das Blockly:Was ist denn Wert? Der ist ja nicht definiert?
Außerdem braucht man den Adressaten beim telegram nicht, wenn man an alle senden will...
Das typische Problem ist, dass Occupancy vermutlich mehrfach hintereinander den Status ändert und somit das Skript mehrfach getriggert wird.
-
Der Wert wird doch auf wahr / falsch abgefragt (true/false).
Unter Objekte in IoB gibt es IMMER nur EIN Wert nie mehrere. Somit gehe ich davon aus, dass der melder auch ur EINMAL meldet.
Ich habe Adressaten in Telegram mit reingenommen, da ich ggf. nicht alle Empfänger haben möchte !
-
@segway
Das mit Wert ist Ok, da JoergH die Funktion wohl überhaupt nicht kennt.
"=wahr" ist wie immer überflüssig und das was JoergH zum Prellen des BWM gesagt hat, könnte ich mir so auch vorstellen. Pack die FALLS deshalb in ein Timeout von 1S und davor den üblichen stop timeout um mehrfache Timeouts zu verhindern.
Das "sonst falls" kannst aber auch einfach durch "sonst" ersetzen.Funktioniert das nicht, müssen wir weiter suchen.
@JoergH
"Wert" aus den Trigger Blöcken bezieht sich immer auf das Objekt im Trigger, somit auch definiert -
denke mal JoergH meint sicher den "virtuellen Schalter" den er auf true/false setzt (unter der Telegramnachricht) diesen aber nicht abfragt jedenfalls wird er nicht mit "Wert" abgefragt
mit dem "virtuellen Schalter" wollte er sicherlich die doppelten Nachrichten abschalten
-
@xbit
Ja, so wie das jetzt drin ist, hat das keine Funktion, würde aber erst mal mit dem Timeout anfangen, da das so am einfachsten ist, wenn der BWM doch prellt. -
das würde ich auch probieren mit dem Timeout, die Variable ist überflüssig, da du ja nur auf Änderungen triggerst.
-
@jan1 sagte in Blockly-Skript - Telegram messages doppelt:
@segway
Das mit Wert ist Ok, da JoergH die Funktion wohl überhaupt nicht kennt.Nein, stimmt. Das kenne ich nicht. Heisst das, ich definiere eine Variable namens "Wert" und die enthält dann immer automatisch den Wert des Objektes?
-
@joergh sagte: Heisst das, ich definiere eine Variable namens "Wert" und die enthält dann immer automatisch den Wert des Objektes?
Nein, unter "Trigger":
-
Ah! Ok, danke! Wieder was gelernt...
-
@cinimod sagte in Blockly-Skript - Telegram messages doppelt:
das würde ich auch probieren mit dem Timeout, die Variable ist überflüssig, da du ja nur auf Änderungen triggerst.
Habs mal umgebaut. Wieder einiges gelernt und hoffentlich richtig gemacht ?
-
@segway berichte mal ob es so klappt
-
@cinimod sagte in Blockly-Skript - Telegram messages doppelt:
@segway berichte mal ob es so klappt
Gerade in die Kälte gegangen und schwups --> klappt
-
-
@cinimod sagte in Blockly-Skript - Telegram messages doppelt:
das würde ich auch probieren mit dem Timeout, die Variable ist überflüssig, da du ja nur auf Änderungen triggerst.
Eigentlich macht man das um die FALLS und nicht in die FALLS (so hatte ich es auch geschrieben), alternativ die Methode wie es Paul vorschlägt, da eleganter.
-
@jan1 sagte in Blockly-Skript - Telegram messages doppelt:
Eigentlich macht man das um die FALLS und nicht in die FALLS (so hatte ich es auch geschrieben), alternativ die Methode wie es Paul vorschlägt, da eleganter.
Ich habe die Falls Bedingung doch genauso gemacht und dann MACHE und SONST. Verstehe ich grad nicht.
@paul53 sagte in Blockly-Skript - Telegram messages doppelt:
@segway sagte: klappt
Dann sollte es auch so klappen (schont Ressourcen):
Okay werde ich noch ändern. Danke.
-
@segway sagte in Blockly-Skript - Telegram messages doppelt:
@jan1 sagte in Blockly-Skript - Telegram messages doppelt:
Eigentlich macht man das um die FALLS und nicht in die FALLS (so hatte ich es auch geschrieben), alternativ die Methode wie es Paul vorschlägt, da eleganter.
Ich habe die Falls Bedingung doch genauso gemacht und dann MACHE und SONST. Verstehe ich grad nicht.
Ich glaube Jan meinte das so:
-
@segway
hier mal ein Beispiel für "um die FALLS"
In der FALLS funktioniert auch, nur wird dann eben die FALLS schon ausgewertet und wenn Du dann noch ne SONST drin hasz muss das dann auch doppelt gemacht werden
-
-
@segway
Es ist beides richtig, wobei um die FALLS eben für das Blockly ein kleinen Vorteil hat. Beides ist möglich, wobei ich in der Regel das drum rum bevorzuge -
@jan1 sagte in Blockly-Skript - Telegram messages doppelt:
@segway
Es ist beides richtig, wobei um die FALLS eben für das Blockly ein kleinen Vorteil hat. Beides ist möglich, wobei ich in der Regel das drum rum bevorzugeNice ! Verstanden Danke
Ich hab noch ein anderes Skript, welches auch doppelte Meldungen macht.....ich werde das auch mal umbauen und dann mal berichten.....vielleicht schaff ich das ja mal alleine.