NEWS
Verstehe mein eigenes funktionierendes Blockly-Skript nicht!
-
Hallo,
Ich habe hier ein Blockly-Skript erstellt.
Ziel war es die Aussenbeleuchtung, mittels HomematicIP Schlüsselfernbedienung, zu schalten.
Die Schaltung sollte aber nicht nur manuell (per Tastendruck) sondern auch Zeitlich begrenzt sein.Da die Schlüsselfernbedienung ja nur "true" sendet musste ich da was bauen.
So erstellte ich einen "counter" der jeden Tastendruck zählt.Drücke ich einmal wird das Licht geschaltet der Countdown von zB. 180 Sekunden läuft los.
Brauche ich die 180 Sekunden nicht drücke ich ein zweites Mal die Taste an der Fernbedienung.
Der Countdown wird gestoppt und das Licht geht aus.Das Skript läuft einwandfrei (Ja, ich freue mich weil dass für mich ein Erfolg ist. Newbie halt).
Nun kommt der Teil den ich nicht verstehe ....
Ich drücke die Taste an der Fernbedienung einmal.
Somit hat die Variable "counter" den Wert 1Die erste Bedingung ist erfüllt das Script läuft.
Jetzt drücke ich die Taste an der Fernbedienung erneut.
Nun hat die Variable "counter" den Wert 2Wenn ich dass richtig verstanden habe wird ja dass Skript, durch den zweiten Tastendruck, erneut getriggert.
Wieso läuft dass Skript wieder an obwohl der Wert "counter" = 2 ist.
Die "Startbedingung" ist doch gar nicht mehr erfüllt!Ich hoffe man versteht mich was ich meine
-
@jm3west sagte: Wieso läuft dass Skript wieder an obwohl der Wert "counter" = 2 ist.
Das Skript läuft nicht wieder an, sondern das Intervall läuft weiter, weil es erst beim nächsten Countdown gestoppt wird.
-
... wenn ich den zweiten Tastendruck wird der Countdown doch gestoppt.
habe doch die Bedingung countdown = 180 oder counter > 1Habe es mit debug getestet
-
@jm3west sagte: wenn ich den zweiten Tastendruck wird der Countdown doch gestoppt.
Und was funktioniert nicht?
-
Alles ist gut !
Ich als - naja, sagen wir mit Spass an der Freud' Programmierer - habe nicht verstanden wieso das Skript läuft.
Da ich dachte das Skript - Wenn es getriggert wird - fängt immer wieder von oben nach unten an durchzulaufen.Für mein Verständnis war das "unmöglich" da sich der Wert der Variable, wegen des zweiten Tastendruk, count auf 2 geändert hat.
Wiederrum für mein Verständnis lautet die Bedingung if count == 1 then .....
Somit könnte der innere Teil des Skriptes schon nicht mehr verarbeitet werden