NEWS
User Data setzt blockly beim start auf 0.
-
Hier mein Script.
Sicher gibt es für mein Vorhaben eine bessere Lösung, im Prinzip funktioniert sie aber.
Der Script soll mir einfach einen Summenzähler der PV-Module generieren.
Der Script funktioniert auch. Nur wenn ich eine Änderung vornehme oder den Scrip neu starte beginnt das ganze wieder bei 0. Wo ist da mein Denkfehler?Danke
Armin
-
@galosche
Beim Neustart eines Scriptes verlieren alle Variablen ihren Inhalt.
Um den persistent zu kriegen, benötigst Du einen (oder mehrere) eigene(n) Datenpunkt(e). -
@codierknecht
Der PV_KW_D ist ein Datenpunkt.
Habe jetzt im Modbus Protokol SolarEnergyToday und Total gefunden, somit brauche ich es nicht mehr, aber interessieren würde es mich schon.
-
@galosche
AberZeit_1
undzeit_2
sind beim Start des Scriptes0
. (Warum werden die eigentlich unterschiedlich geschrieben?).
Damit werden die beiden "Falls" Blöcke nicht ausgeführt undPV_KW_D
wird mit0
beschrieben. -
@codierknecht
Richtig. Aber am Anfang setze ich summe_d auf PV_KW_D.
Für zeit_1 und Zeit_2 gibt es keinen Grund -
@galosche sagte: Für zeit_1 und Zeit_2 gibt es keinen Grund
Doch, da damit eine Differenz gebildet wird. Der Vergleich "
Zeit_x
!= 0" liefert true, wenn die Variable undefined ist. Prüfe die Variable ohne den Vergleich.
Besser: Lass die Prüfung weg und initialisiere die Variablen außerhalb des Triggers mit "Letzte Änderung" der Datenpunkte. -
@paul53 sagte in User Data setzt blockly beim start auf 0.:
wenn die Variable undefined ist
Hatte ich schon mal erwähnt, dass ich untypisierte Sprachen (gelinde ausgedrückt) "grenzwertig" finde
-
@codierknecht sagte: Hatte ich schon mal erwähnt, dass
Ja, hast Du mehrmals.
-
@paul53 sagte in User Data setzt blockly beim start auf 0.:
wenn die Variable undefined ist
Ich hätte zumindest erwartet, dass es kracht wenn man "undefined" von einem Zeitstempel abziehen möchte.
Offensichtlich nicht ... es kommt lediglich zu einem "NaN".
Ich verzweifle nochmal an dem Konzept -
@codierknecht sagte in User Data setzt blockly beim start auf 0.:
es kommt lediglich zu einem "NaN".
hätte @galosche das mit einem debug-Baustein anzeigen lassen, wäre es sofort klar gewesen
-
@codierknecht
Ich bin noch am lernen, Debug Baustein kenne ich noch nicht.
Habe es aber jetzt verstanden.
Das ganze sieht jetzt so aus, brauche auch die summe_d nicht mehr und schreibe direkt auf PV_KW_D.
-
@galosche sagte in User Data setzt blockly beim start auf 0.:
, brauche auch die summe_d nicht mehr und schreibe direkt auf PV_KW_D.
wenn du den Wert relativ schnell wiederverwenden willst, solltest du bei Variablen bleiben.
Das Schreiben dauerteine Weile, so dass du beim "sofortigen" Wiedereinlesen des Wertes aus drm Datenpunkt, noch den alten Wert bekommen wirst. -
@galosche
Danke vergessen ! -
-
@paul53
Bin ja mal gespannt wie die Werte vom Modbus und vom gerechneten Morgen übereinstimmen.