NEWS
Wie Blockly besser organisieren, schreibt mir Protokoll voll
-
@wotan2005
Äääähmmm
Davon war bisher nicht die Rede und wäre incl. der unnötigen Schaltvorgänge und debug Ausgaben dann wohl auch immer so gewesen.
Und nur um das zumüllen des logs ging es bisher!Den Rest, mit dem du jetzt kommst, hab ich deshalb nicht geprüft
-
@wotan2005 Das ist ein klassischer Fall von
Das Problem nicht sauber beschrieben, deswegen keine saubere Lösung bekommen.
Und nochmal die Frage - du kannst PHP (zumindest schriebst du so was da) :
@wotan2005 sagte in Wie Blockly besser organisieren, schreibt mir Protokoll voll:
In PHP würde ich mir einfach eine Variable declarieren und auf diese Prüfen, aber das mit einem Datenpunktschreiben funktioniert irgendwie nicht ganz so, wie ich mir das gedacht habe.
Also warum krebst du mit Blockly rum ?
Nutz doch einfach JS - schau Dir die ioBroker relevanten Funktionsaufrufe an (hier), und programmier es so wie du es auch in PHP tun würdest ? Die Syntax unterschiede zwischen JS und PHP sind begrenzt. Wichtig sind nur die ioBroker aufrufe, die hab ich oben verlinkt.
A.
Nachtrag: Ja, du musst da etwas lesen . Aber damit kannst du dann die Logik wie du sie in PHP umsetzen würdest direkt nutzen.
A -
Großes Sorry für die Verwirrung dafür.
Deshalb ja auch nun die ausführliche Erklärungen, wieso ich oben schrieb:@wotan2005 sagte in Wie Blockly besser organisieren, schreibt mir Protokoll voll:
Ich habe mehrere Blockly's die sehr ähnlich sind und auch die selben Schalter benötigen. Gibt es da noch eine andere Lösungen?
Damit man das vielleicht im Detail auch besser versteht, und mir dabei helfen kann, an den richtigen Schrauben zudrehen.
-
@wotan2005 Das ist ganz was anderes, da steht nichts von konkurrierenden Aufgaben!
Deswegen immer alles zeigen!!!
und keine NacherzählungenAber das Thema hatten wir ja alles schon in anderen Threads bei dir
https://forum.iobroker.net/topic/51555/hinweise-für-gute-forenbeiträge/1
-
@wotan2005 sagte in Wie Blockly besser organisieren, schreibt mir Protokoll voll:
Damit man das vielleicht im Detail auch besser versteht, und mir dabei helfen kann, an den richtigen Schrauben zudrehen.
Kleines Geheimnis am Rande - hier lesen einige der Entwickler mit. JS Funktionen werden da durchaus auch analysiert - wenn sie nicht ellenlang sind. Du wirst also für JS etwa so viel Hilfe bekommen wie für Blockly.
Blockly ist schön für den schnellen einstieg - aber komplex wenn es um aufwändigere Lösungen geht.
A.
-
Aber dafür muss man JS auch schreiben und verstehen können, nicht umsonst benutze ich Blockly.
-
@wotan2005 sagte in Wie Blockly besser organisieren, schreibt mir Protokoll voll:
Aber dafür muss man JS auch schreiben und verstehen können
Na soooo weit ist das ja nicht von PHP entfernt.
Es gibt zwar einige "Eigenarten" (Promises etc.), aber die Syntax ist ziemlich ähnlich.Ich nutze Blockly nur noch zu Testzwecken.
Alles was produktiv läuft, habe ich auf JS umgestellt. Da hat man etwas mehr Kontrolle, was z.B. den Scope von Variablen angeht. Auch Konstanten sind z.B. in Blockly nicht möglich.
Und insgesamt wird der Code dann etwas kompakter und letztlich besser lesbar.Wenn Du in PHP ziemlich "sattelfest" bist, würde ich mich @Asgothian anschließen und JS empfehlen.
Wenn nicht, dann bleib' bei Blockly. -
@wotan2005 sagte: komme ich mir mit der Bewässerung ins Gehege
Um das zu vermeiden, steuere in den Zeitplänen und dem Trigger nur die Ventile und schalte die Pumpe abhängig von der Ventilöffnung.
-
@paul53
Laut der Dummie Anleitung von Blockly, soll man doch keine zwei Trigger ineinander verschachteln, wo setzte ich bei deinem Beispiel jetzt die Einschaltzeit auf 6:00Uhr früh an.
Und die Laufzeit pro Ventil von 15min an. -
@wotan2005 sagte: wo setzte ich bei deinem Beispiel jetzt die Einschaltzeit auf 6:00Uhr früh an.
-
Und das alles in einem Blockly?
-
@wotan2005 sagte: Und das alles in einem Blockly?
Weshalb nicht? Ist doch noch übersichtlich. Der Überlauf-Trigger kann auch noch mit rein.
-
Uuuuiiiiiiii
@paul53
Nur Frage zum Verständnis, deine Switch1-3 sind die echten Switche der Ventile.das [setze "pumpe" auf] ist eine Variable?!?!
-
@wotan2005 sagte: deine Switch1-3 sind die echten Switche der Ventile.
Ja, das sind die Ventil-Datenpunkte ("Schalter" vom Shelly).
@wotan2005 sagte in Wie Blockly besser organisieren, schreibt mir Protokoll voll:
das [setze "pumpe" auf] ist eine Variable?!?!
Ja.
-
@paul53
Das Blockly wird dann aber trotzdem immer ausgeführt oder nur zu den Zeitplänen?Dein [fals mache "Variable (pumpe) nicht gleich "Wert" von Objekt-ID "Pumpe"] -> ist der Status vom Shelly Switch der Pumpe?
-
@wotan2005 sagte: ist der Status vom Shelly Switch der Pumpe?
Ja, "Wert vom Objekt Pumpe" ist der Status des Pumpen-Shelly ("Schalter"), also der Ist-Zustand der Pumpe. Die Variable pumpe enthält den Sollzustand.
-
@paul53
Das Blockly wird dann aber trotzdem immer ausgeführt oder nur zu den Zeitplänen? -
@wotan2005 sagte: Das Blockly wird dann aber trotzdem immer ausgeführt oder nur zu den Zeitplänen?
Das Blockly wird immer ausgeführt. Es enthält 5 Trigger: 3 Zeitpläne und zwei Trigger auf Wertänderung. Das Setzen der Variable ventil01 außerhalb der Trigger wird nur einmal bei Skriptstart ausgeführt.
Ich habe den Überlauftrigger noch um eine Uhrzeitprüfung ergänzt:
-
@wotan2005 sagte in Wie Blockly besser organisieren, schreibt mir Protokoll voll:
Das Blockly wird dann aber trotzdem immer ausgeführt oder nur zu den Zeitplänen?
Ein Script in ioB - egal ob JS oder Blockly (was ja unter der Haub auch nur JS generiert) wird grundsätzlich 1x gestartet und "läuft" dann bis zum Sanktnimmerleinstag.
Das Ganze ist Ereignisgesteuert. Beim Start werden Ereignisse (Trigger) und Zeitpläne "registriert".
Tritt nun ein Ereignis ein oder ist der Zeitpunkt des Zeitplans gekommen, wird der dort hinterlegte Code ausgeführt. Ansonsten "schläft" das Script und wartet. -