NEWS
SysVariablen CCU aktualisieren per Blockly
-
Hallo zusammen,
ich logge meinen Gaszähler mit einem D1 Mini / Magnetschalter.
Nun habe ich einige Systemvariablen, die ich in meiner CCU angelegt habe und möchte diese, nachdem sich die Werte und die Sourceanalytix Werte entsprechend geändert haben, die Werte in die entsprechenden Systemvariablen der CCU schreiben. Das mache ich, damit ich sie einfach in einer anderen Visualisierung (NEO) einbauen kann...Das Ergebnis des Blocklys ist, dass diese Werte im letzten Trigger immer erst beim darauf folgenen Ändern des Zählers aktualisiert wurden = sie sind immer "eins" hinterher. Soll heissen: Zähler Gas zählt eins hoch, Der Verbrauch des Tages in m³ auch, aber Verbrauch in Liter und in Öl, Tagesverbrauch in E, Wochenverbrauch gehen erst um 1 hoch in der nächsten Runde wenn der Gaszähler eins weiter gezählt hat. Hoffe ich drücke mich verständlich aus...
Wenn ich dann die Werte aus dem Trigger rausziehe, das Skript neu starte, dann werden die Werte sofort aktualisiert - klar.
Fragen:
Warum funktioniert das nicht ?Hier das Blockly:

-
Hallo zusammen,
ich logge meinen Gaszähler mit einem D1 Mini / Magnetschalter.
Nun habe ich einige Systemvariablen, die ich in meiner CCU angelegt habe und möchte diese, nachdem sich die Werte und die Sourceanalytix Werte entsprechend geändert haben, die Werte in die entsprechenden Systemvariablen der CCU schreiben. Das mache ich, damit ich sie einfach in einer anderen Visualisierung (NEO) einbauen kann...Das Ergebnis des Blocklys ist, dass diese Werte im letzten Trigger immer erst beim darauf folgenen Ändern des Zählers aktualisiert wurden = sie sind immer "eins" hinterher. Soll heissen: Zähler Gas zählt eins hoch, Der Verbrauch des Tages in m³ auch, aber Verbrauch in Liter und in Öl, Tagesverbrauch in E, Wochenverbrauch gehen erst um 1 hoch in der nächsten Runde wenn der Gaszähler eins weiter gezählt hat. Hoffe ich drücke mich verständlich aus...
Wenn ich dann die Werte aus dem Trigger rausziehe, das Skript neu starte, dann werden die Werte sofort aktualisiert - klar.
Fragen:
Warum funktioniert das nicht ?Hier das Blockly:

@lemonbiter
Was außerhalb des Triggers ist, wird nur 1x beim Starten des Scripts durchlaufen.
Wenn Du diese Befehle nicht mit in den ersten Trigger packen möchtest - vermutlich wegen Übersichtlichkeit: Warum dafür kein eigenes Blockly? -
@lemonbiter
Was außerhalb des Triggers ist, wird nur 1x beim Starten des Scripts durchlaufen.
Wenn Du diese Befehle nicht mit in den ersten Trigger packen möchtest - vermutlich wegen Übersichtlichkeit: Warum dafür kein eigenes Blockly?@codierknecht
War ein wenig spät heute nacht... logisch... die Werte werde so nur "manuell" korrigiert...
ich habe den Fall mal aktualisiert... Die Kernfarge ist jedoch:
Warum werden die Werte erst eine Runde später aktualisiert... -
@codierknecht
War ein wenig spät heute nacht... logisch... die Werte werde so nur "manuell" korrigiert...
ich habe den Fall mal aktualisiert... Die Kernfarge ist jedoch:
Warum werden die Werte erst eine Runde später aktualisiert...@lemonbiter Ich tippe mal, dass es an dem Asynchronen schreiben liegt. Der "Wert m³ ist noch nicht in deinem DP geschriebne wenn du ihn in der nächsten Zeile liest.
Schreib diesen Wert in eine Variable, arbeit e mit der Variable und am Ende schreibst du die Variable in dein DP -
@lemonbiter Ich tippe mal, dass es an dem Asynchronen schreiben liegt. Der "Wert m³ ist noch nicht in deinem DP geschriebne wenn du ihn in der nächsten Zeile liest.
Schreib diesen Wert in eine Variable, arbeit e mit der Variable und am Ende schreibst du die Variable in dein DP@nordischerjung
Mein lieber herzlichen Dank. Wie genau würdest Du das machen? Hast Du für sowas ein Blockly? Wie sieht das aus? Ich bin trotz der Jahre mit ioB immer noch bei vielem sehr unsicher...
DANKELEM
-
@nordischerjung
Mein lieber herzlichen Dank. Wie genau würdest Du das machen? Hast Du für sowas ein Blockly? Wie sieht das aus? Ich bin trotz der Jahre mit ioB immer noch bei vielem sehr unsicher...
DANKELEM
@lemonbiter auf die Schnelle vielleicht so

-
@lemonbiter auf die Schnelle vielleicht so

@nordischerjung
Klasse, das ist eine erste gute Idee. Beim genaueren Überdenken fällt mir jedoch auf: Wenn es tatsächlich daran liegt, dass der Wert noch nicht geschieben ist, ich aber den Trigger doch auf den Tagesverbrauch in Sourceanalytix setzte, dann müssten doch die anderen Werte auch da sein. Oder ich setze eine Pause. Also wenn der Trigger (Gaszähler) sich verändert hat, warte 2 Sekunden und dann steuere die Werte...Wie kann ich eine Pause einbauen? Könnte das gehen, also eine Pause nach dem Trigger vor dem steuern?
so?

-
@nordischerjung
Klasse, das ist eine erste gute Idee. Beim genaueren Überdenken fällt mir jedoch auf: Wenn es tatsächlich daran liegt, dass der Wert noch nicht geschieben ist, ich aber den Trigger doch auf den Tagesverbrauch in Sourceanalytix setzte, dann müssten doch die anderen Werte auch da sein. Oder ich setze eine Pause. Also wenn der Trigger (Gaszähler) sich verändert hat, warte 2 Sekunden und dann steuere die Werte...Wie kann ich eine Pause einbauen? Könnte das gehen, also eine Pause nach dem Trigger vor dem steuern?
so?

@lemonbiter sagte in SysVariablen CCU aktualisieren per Blockly:
dann müssten doch die anderen Werte auch da sein
Das weiß ich gar nicht. Aber ich denke das es komplett aktualisiert wird. Musst mal auf den Zeitstempel vom DP gucken
-
@nordischerjung
Klasse, das ist eine erste gute Idee. Beim genaueren Überdenken fällt mir jedoch auf: Wenn es tatsächlich daran liegt, dass der Wert noch nicht geschieben ist, ich aber den Trigger doch auf den Tagesverbrauch in Sourceanalytix setzte, dann müssten doch die anderen Werte auch da sein. Oder ich setze eine Pause. Also wenn der Trigger (Gaszähler) sich verändert hat, warte 2 Sekunden und dann steuere die Werte...Wie kann ich eine Pause einbauen? Könnte das gehen, also eine Pause nach dem Trigger vor dem steuern?
so?

@lemonbiter Ich habe gerade mal geguckt, die anderen Werte (Day, Week, etc werden alle um 0 Uhr geschrieben. Somit brauchst du da keine Pause
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden