NEWS
Programmablauf in Blockly sequenziell oder parallel?
-
Internet war kurz weg, jetzt ist alles was ich zuvor geschrieben habe weg.
Konvertiert, habe ich nur für alle Fälle, falls die Werte nicht als Zahl kommen. Kann man eigentlich weg lassen. Variable wollte ich nicht nutzen, da dann diese nur im Skript intern verwendbar ist und der Wert von Zwischenergebnis (mit meinen Kenntnissen) nicht sichtbar ist.
Habe jetzt zwei Skripte zusammengefügt und den doppelten Trigger gelöscht. Die Berechnung möchte ich dennoch nicht nach aktuellem Zählerwert starten, sondern nach Zählerstand. Das ist deutlich seltener als der aktuelle Verbrauch.
Melde mich wieder wenn Internet sich stabilisiert hat.
-
@axmlm sagte in Programmablauf in Blockly sequenziell oder parallel?:
der Wert von Zwischenergebnis (mit meinen Kenntnissen) nicht sichtbar ist
Oder etwas ausführlicher:Für sowas Datenpunkte zu verbraten ist ineffizient.
Es sei denn, man braucht die an anderer Stelle wirklich mal. -
oh je, jetzt sind 2 Posts doppelt und einer unvollständig.
-
So, jetzt mit dem Screenshot:
Konvertiert, habe ich nur für alle Fälle, falls die Werte nicht als Zahl kommen. Kann man eigentlich weg lassen. Variable wollte ich nicht nutzen, da dann diese nur im Skript intern verwendbar ist und der Wert von Zwischenergebnis (mit meinen Kenntnissen) nicht sichtbar ist.
Habe jetzt zwei Skripte zusammengefügt und den doppelten Trigger gelöscht. Die Berechnung möchte ich dennoch nicht nach aktuellem Zählerwert starten, sondern nach Zählerstand. Das ist deutlich seltener als der aktuelle Verbrauch.
auch habe ich Zählerauswertung und PV-Berechnungen in einen Skript reinkopiert. Deshalb der Mix aus "steuere" und "aktualisiere". Steuere hat bei der Zählerauswerrtung nicht funktioniert.
-
@axmlm sagte in Programmablauf in Blockly sequenziell oder parallel?:
Deshalb der Mix aus "steuere" und "aktualisiere". Steuere hat bei der Berechnung nicht funktioniert.
Das ergibt keinen Sinn und kann nicht sein. Du weißt schon wie ioBroker arbeitet und was es mit dem „bestätigt“-Flag auf sich hat?
-
@haus-automatisierung said in Programmablauf in Blockly sequenziell oder parallel?:
@axmlm sagte in Programmablauf in Blockly sequenziell oder parallel?:
Deshalb der Mix aus "steuere" und "aktualisiere". Steuere hat bei der Berechnung nicht funktioniert.
Das ergibt keinen Sinn und kann nicht sein. Du weißt schon wie ioBroker arbeitet und was es mit dem „bestätigt“-Flag auf sich hat?
Das weiß ich tatsächlich nicht. Fakt ist, das Steuere nicht funktioniert hat, und aktualisiere schon. Bin natürlich bei der Recherche auf "Flags" und "betätigt" gestoßen, habe es aber nicht verstanden.
EDIT: habe mein Post oben aktualisiert Steuere hat bei Auswertung des Zählers nicht funktioniert.
-
@axmlm aktualisieren schreibt den Wert (in eigene Datenpunkte) bestätigt.
Damit ist alles fertig.steuere schreibt den Wert unbestätigt.
Das sagt dem Adapter der das Gerät steuert, dass es was zu tun gibt.
Wenn der mit der Steuerung fertig ist, setzt er drn Flag auf bestätigt.
Damit ist alles fertig -
@axmlm sagte in Programmablauf in Blockly sequenziell oder parallel?:
Fakt ist, das Steuere nicht funktioniert hat, und aktualisiere schon.
Fakt ist, dass beide Trigger auf "egal" stehen und somit die Logik in jedem Fall ausgeführt wird.
Ist das nicht so, bitte ich um eine genaue Fehlerbeschreibung mit einem reproduzierbaren Beispiel, damit das gelöst werden kann.
-
@homoran said in Programmablauf in Blockly sequenziell oder parallel?:
@axmlm aktualisieren schreibt den Wert (in eigene Datenpunkte) bestätigt.
Damit ist alles fertig.steuere schreibt den Wert unbestätigt.
Das sagt dem Adapter der das Gerät steuert, dass es was zu tun gibt.
Wenn der mit der Steuerung fertig ist, setzt er drn Flag auf bestätigt.
Damit ist alles fertigDanke für die Erklärung, diese habe ich schon bei der Erstellung von meinem Skript so gelesen und nicht verstanden. Habe sie jetzt langsam gelesen, aber sorry verstanden habe ich es immer noch nicht. Bzw. den Sinn dieser Unterscheidung.
Bin aus der Mechaniker Ecke. Wenn Schraube fest ist, ist sie fest. Ich brauche keine Rückmeldung von der Schraube dass der Drehmomentschlüssel geklickt hat. Mir reicht, dass der Drehmomentschlüssel klickt. In der Programmierung ist es etwas anders, dort ist man viel detaillierter in den Schritten und prüft vieles nach.
-
@axmlm said in Programmablauf in Blockly sequenziell oder parallel?:
@haus-automatisierung said in Programmablauf in Blockly sequenziell oder parallel?:
@axmlm sagte in Programmablauf in Blockly sequenziell oder parallel?:
Deshalb der Mix aus "steuere" und "aktualisiere". Steuere hat bei der Berechnung nicht funktioniert.
Das ergibt keinen Sinn und kann nicht sein. Du weißt schon wie ioBroker arbeitet und was es mit dem „bestätigt“-Flag auf sich hat?
Das weiß ich tatsächlich nicht. Fakt ist, das Steuere nicht funktioniert hat, und aktualisiere schon. Bin natürlich bei der Recherche auf "Flags" und "betätigt" gestoßen, habe es aber nicht verstanden.
EDIT: habe mein Post oben aktualisiert Steuere hat bei Auswertung des Zählers nicht funktioniert.
alles gut, Logik wird ausgeführt. wie gesagt, mir laufen die berechnete Werte auseinander, aber ich weiß noch nicht warum. Mein erster Verdacht war, dass die Berechnung der Werte nach zufallsreihenfolge erfolgt. Wir haben jetzt geklärt, dass die Abarbeitung der Sequenzen innerhalb eines Triggers sequentiell erfolgt. Skript ist jetzt zusammengeführt und optimiert.
Als nächstes muss ich herausfinden, ob der Fehler im Skript, oder in der Berechnung liegt, oder ich einen Gedankenfehler habe.
-
Ich verstehe nicht, warum meine Berechnung die historische Werte ins negative verschiebt.
der Richtige Wert ist 113€ das ist der Totale input an Geld über die gesamte laufzeit der Anlage.
aber der Adapter schreibt bei Jahreswert und bei Monatswert 99€ und Start bei -13€. Die -13€ gehen weiter nach unten. Vor 3 Tagen standen da -5€ und das verstehe ich nicht.
-
Hier ist das Problem sichtbar
Total ist kleiner als MOnat
-
@axmlm sagte in Programmablauf in Blockly sequenziell oder parallel?:
Wenn Schraube fest ist, ist sie fest. Ich brauche keine Rückmeldung von der Schraube dass der Drehmomentschlüssel geklickt hat.
wenn aber nur dein Kollege einen Drehmomentschlüssel hat, kannst du nur unkritische Schrauben festzurren.
und du entscheidest selber alles ist fertig (ack=true)Bei kritischen Befestigungen rufst du den Kollegen (ack=false)
Der nimmt den Drehmomentschlüssel bis es klickt
Dann sagt er: alles ist fertig (ack=true) -
@axmlm sagte:läuft aber irgendwie nicht rund.
Kann es auch nicht, da Werte, die man in Datenpunkte schreibt, nicht gleich wieder eingelesen werden können, denn steuere / aktualisiere werden asynchron ausgeführt, sind also zum Zeitpunkt des Einlesens noch nicht fertig. Deshalb verwendet man Variablen.