NEWS
[Anfänger] Blockly Timeout
-
Moin moin,
ich habe mein erstes Blockly-Skript geschrieben. Es werden zwei Pings auf Handys überwacht. Danach sollen die Sicherheitskameras umgeschaltet werden. Das funktionierte auch soweit ganz gut. Allerdings hatte ich heute Nacht das Problem, dass meine Fritzbox auf dem 5Ghz-WLAN eine "RADAR"-Abfrage gemacht und deswegen einen Kanalwechsel durchgeführt hat (so stehts im Protokoll der Fritz.box). Daraufhin hatte ich kurzfristig kein WLAN, sodass die Kameras in den Überwachen-Modus umgesprungen sind. Das sollte so nicht sein - deswegen habe ich mir gedacht, dass ich einen Timeout einbaue, damit er prüft, ob es nicht doch nur ein kurzfristiger WLAN-Ausfall ist. Allerdings funktioniert nun der Code nicht mehr ... was mache ich falsch?
Danke und Gruß
-
-
zeigen
Protokoll:
Erklärung dazu:
Ja ich war auch irritiert - war mir so nicht bewusst. Weiß auch nicht, wer hier wichtiges aufm 5GHz WLAN-Netz unterwegs ist
Kannst du mir dein Script vielleicht in Worten erklären, wo der Unterschied zu meinem ist und wieso du das so baust? Ich lerne noch
Wieso stoppst du den Timeout obwohl gar keiner läuft?
Dein Timeout startet ja nachdem gecheckt wurde, ob beide Handys noch im WLAN sind ... aber genau da soll ja in meinem Verständnis zunächst gewartet werden. -
@easytj sagte in [Anfänger] Blockly Timeout:
Wieso stoppst du den Timeout obwohl gar keiner läuft?
Es wird der Timeout gestoppt falls er läuft.
@easytj sagte in [Anfänger] Blockly Timeout:
nachdem gecheckt wurde, ob beide Handys noch im WLAN sind
ah, sorry...
-
sieht mir identisch aus
... falsches Bild ausgewählt oder ich bin blind
-
@easytj siehe die NICHT-Blöcke
-
OK - ich bin blind
Wieso baust du den Code andersherum auf? Was bewirkt das? Und wieso ist der Timeout nach der State-Prüfung?
Kannst du mir das kurz erklären, damit ich das verstehe? -
@easytj sagte in [Anfänger] Blockly Timeout:
wieso ist der Timeout nach der State-Prüfung
na weil es sonst nicht funktioniert. Erst wenn beide States auf false stehen soll ja der Timeout starten.
Vorher macht das ja wenig Sinn.
Sobald sich nur ein Status auf true ändert wird der Timeout gestoppt - unabhängig ob der Timeout läuft oder nicht.Falls ein Status auf true wechselt wird der "sonst" Block ausgeführt.
Das nennt man eine Logikmaschine
-
Vielleicht habe ich einen Denkfehler aber folgendes möchte ich umsetzen:
Sobald sich ein Status der Handys ändert, soll er 30 Sekunden warten und dann prüfen, ob immer noch beide Handys auf false stehen. Erst dann soll das Makro laufen und Status 0 schalten. Falls zwischenzeitlich doch wieder eine Verbindung hergestellt werden konnte, soll er im Status 1 bleiben.
Wenn du mir sagst, dass dein Skript exakt das macht, versuche ich es mal damit und versuche es auch, es genau zu verstehen...
-
@easytj sagte in [Anfänger] Blockly Timeout:
versuche ich es mal damit und versuche es auch
@easytj sagte in [Anfänger] Blockly Timeout:
Erst dann soll das Makro laufen und Status 0 schalten. Falls zwischenzeitlich doch wieder eine Verbindung hergestellt werden konnte, soll er im Status 1 bleiben.
na mach doch einfach - weil genau DAS macht das Skript durch den STOP des Timeouts wenn sich einer der 2 Trigger ändert.
Mehr helfen kann ich jetzt leider nicht.
-
Du hast mir sehr geholfen DANKE! Aber leider auch für Verwirrung meinerseits gesorgt, aber das soll nicht dein Problem sein :).
Ich bewege mich erst seit kurzem in der Welt von iobroker und Blockly -
So hats leider gerade nicht funktioniert... der hat umgehend beide Modi hin- und hergeschaltet
-
Nimm bei dir mal bitte „= falsch“ raus oder vorne das nicht. Und teste dann nochmal.
-
@easytj sagte in [Anfänger] Blockly Timeout:
So hats leider gerade nicht funktioniert
Ist ja klar warum.... jetzt importier mal den folgenden Code und passe NUR die Datenpunkte an
-
-
@easytj zeig nochmal Dein Blockly bitte
-
sorry, jetzt erst gesehen ... so siehts aus und funktioniert auch