NEWS
Blockly: Mehrere Trigger, einzeln stehende Bestandteile?
-
Hi zusammen,
ich bin neu mit Blockly unterwegs und experimentiere derzeit etwas rum. Dabei bin ich auf ein paar Fragen gestoßen, vermutlich weil ich noch etwas stark in der "CCU Logik" denke mit der es mir nicht immer möglich war alles in einem Programm zu bauen und ich so für das gleiche Thema mehrere Programme gebaut habe.
Kann ich in einem Programm mehrere Trigger nutzen und diese als Einzelbausteine irgendwo platzieren oder muss das "Script" immer in einem Stück sein? (also ist das im Screenshot okay oder müsste ich das alles untereinander klemmen?)
In der CCU sollte relativ oft geprüft werden, ob etwas schon "aus" ist um es nicht "unnötig noch mal aus" zu schalten. Muss ich das in der Kombination iobroker > CCU auch? Oder kann ich das weglassen? Ich finde diese ganzen "OR-OR-OR" Verschachtelungen etwas aufwändig.
Würde mein Beispielprogram im Screenshot so laufen oder würde ich damit in Probleme laufen?
Ich wollte auf zwei Trigger reagieren um Lampen ein/ auszuschalten.
- es wird Astro-Nacht und ich bin zu Hause
- ich komme nach Hause und es ist Astro Nacht
- Lampen aus um 22:45 - aber nur wenn sie per Programm eingeschaltet worden sind
Das konnte ich nicht in einem Trigger bauen, also habe ich mir über Variablen geholfen auf die ich dann im nächsten Trigger reagiere.
Muss ich die Variablen dann wieder nullen / auf false setzen oder verwirft er bei einem erneuten Triggern die Variablen? Zweites würde mir vermutlich die "ProgEin" Variable killen.
Kann ich den Zeitplan da einfach so stehen lassen oder wäre das ein eigenständiges Programm?
Ich bin noch nicht soooo firm in Blockly mit dem Debugger zu arbeiten und bin auf ein paar merkwürdige Situationen gestoßen. Daher hier die Rückfrage ob ich völlig auf dem Holzweg bin, oder man das so machen kann (Ja, die Logiken sind sicher nicht die schönstes).
Grüße
Manuel
-
@gutgut30 sagte in Blockly: Mehrere Trigger, einzeln stehende Bestandteile?:
Kann ich in einem Programm mehrere Trigger nutzen und diese als Einzelbausteine irgendwo platzieren
Ja - ist manchmal sogar besser.
@gutgut30 sagte in Blockly: Mehrere Trigger, einzeln stehende Bestandteile?:
In der CCU sollte relativ oft geprüft werden, ob etwas schon "aus" ist um es nicht "unnötig noch mal aus" zu schalten. Muss ich das in der Kombination iobroker > CCU auch? Oder kann ich das weglassen?
Das hat mit CCU-Logik weniger zu tun, als mit dem Dutycycle.
Der gilt natürlich weiterhin, also ist aus dieser Sicht jeder unnötiger Funkbefehl auch bei ioBroker zu vermeiden.@gutgut30 sagte in Blockly: Mehrere Trigger, einzeln stehende Bestandteile?:
Würde mein Beispielprogram im Screenshot so laufen oder würde ich damit in Probleme laufen?
ich habe auch mal so ein Blockly gebastelt und bin auf die Nase gefallen.
Wenn es sich bei deinen Trigger anwesend u.ä reinweg um Variablen handelt klappt das nicht , da ein Trigger (der oben rechts) nicht auf Variable sonden nur auf Objekte funktioniert.
Da müsstest du dann einen anderen Trigger nehmen, der anschließend in einem Falls die Variablen abfragt.
Oder statt der Variabelen, analog zu CCU Systemvariablen, in Datenpunkte schreibst, auf deren Änderung wieder getriggert werden kann.@gutgut30 sagte in Blockly: Mehrere Trigger, einzeln stehende Bestandteile?:
Kann ich den Zeitplan da einfach so stehen lassen
kannst du aber nimm besser den einfachen CRON-Baustein
-
@gutgut30
Das, was Du rechts oben mit einem nicht funktionierenden Trigger machen möchtest, macht man mit einer Funktion, die aus den Triggern aufgerufen wird. Prinzip: -
Ich denke damit kann ich was anfangen und werde mich gleich mal dran versuchen.
...und nun habe ich auch endlich die coole Kommentarfunktion im Bereich System gefunden die mir hier schon öfter positiv aufgefallen ist top.
Vielen Dank für eure schnelle Hilfe!
Grüße
-
@gutgut30 sagte:
Muss ich die Variablen dann wieder nullen / auf false setzen
Ja.
Übrigens bedeutet "Astro Nacht" Sonnenhöhe < -18 ° und wird je nach Wohnort im Sommer nicht erreicht. Trigger besser auf Sonnenuntergang.
-
@paul53 Funktioniert perfekt - ganz vielen Dank!