NEWS
Frage zu Laufzeiten bei Variablen
-
Hallo zusammen!
Bevor ich meine Frage stelle, eine kurze Vorstellung:
Ich komme über "photovoltaikforum.com" zu IoBroker, da ich ioBroker zur besseren Darstellung meiner Werte (momentan Erezugung, Verbrauch usw) nutzen möchte. Homematic könnte aber später auch ein Thema für mich werden.
Meine Hardware:
Ein Raspi 2B ließt die Smarthome-Zähler von EFR aus und stellt alle 15s die momentane Erzeugung und Verbrauch bzw. Einspeisung mit Hilfe von 7-Segment-Anzeigen dar. Ferner steuer ich drei 433MHz-Schaltsteckdosen verbrauchsabhängig. Alles in Python programmiert.
Auf dem Raspi 3 lief bisher eine entsprechende Grafik (mit Python erstellt) zu den o.g. Werten. (der 2B hat über UDP die Werte) übertragen).
Inzwischen habe ich iobroker auf den Raspi3 zum Laufen gebracht und schon die ersten Kurven in "Flot" hinbekommen.
Hier viel mir aber etwas auf, und daher meine Frage zu Javascript.
Ich lese die Daten (Programmabschnitt unten) aus den Zählern aus, und möchte mit "fValue" noch weitere Auswertungen machen. Beim Schreiben in "Log" stellte ich fest, dass immer "fValue" um eine Zeitspanne zuspät geschrieben wird.
Oder anders: es wird erst "fValue" ausgegeben und dann erst die aktuellen Werte von den neueingelesenen Daten, obwohl nach Script "fValue" erst danach geschrieben werden sollte.
Was mache ich falsche, wo liegt mein Problem?
Danke jetzt schon!
3521_iobroker-skript_171202_1.txt -
Bitte Skripte in Code tags posten, nicht als Dateianhang.
Zu Deiner Frage: Funktionen mit Callback-Funktion werden nur angeschubst, das Skript wird mt den folgenden Befehlen fortgesetzt und nach Erledigung wird die Callback-Funktion ausgeführt.
request2(url2, function (err, state, body) { ... // Diese Kommandos werden ausgeführt, wenn request fertig ist, d.h. das Ergebnis in body bereitsteht log(fValue); // Loggen des aktuellen Wertes }); log(fValue); // Loggen des vorherigen Wertes, da vor Callback-Funktion ausgeführt
-
Danke paul53,
leider konnte ich in den letzten Tagen nicht weitermachen. Entschuldige daher die späte Meldung.