NEWS
Wert regelmäßig in neue Variable loggen
-
@Jaschkopf wenn du das etwa um die Uhrzeit abspeicherst, wo der Wert erfasst werden soll, dann erfolgt 24 Stunden später die nächste. Und da die Sommerzeit eh bald abgeschafft wird....
War halt nur bisi Brainstorming -
Servus. Habe es jetzt so gelöst:
Täglich im 00:01 wird der aktuelle Zählerstand in eine Variable "Tagesanfang" geschoben.
Täglich um 23:59 wird dann "Tagesanfang" Minus " "Aktueller Zählerstand" gerechnet und in "Tagesende" geschoben" (Gerundet auf 3 Nachkommastellen)
Die Variable "Tagesende" logge ich dann mit History und kann mir das dann in Flot als Balkengrafik anzeigen.
Gruß Jaschkopf
-
So in der Art mache ich es auch:
Die Werte aktualisiere ich laufend:
Leider habe ich keine konsistenten Bezeichnungen für Tag/Monat/Jahr, da das Skript über die Zeit gewachsen ist.
Hier die Datendarstellung:
rechts das Balkendiagramm der letzten Tage
Links die Gauges mit aktuellen Werten, darüber die Anzeigen für Total - Monat - Tag (von oben nach unten - Jahr habe ich gestern erst fertiggestellt) -
@Homoran deine Visu gefällt mir gut. Hab ich auch noch auf der ToDo Liste. Was für einen Wechselrichter hast du, bzw wie bekommst du die Daten der PV Anlage in den ioBroker?
Gruß Jaschkopf
-
@Jaschkopf sagte in Wert regelmäßig in neue Variable loggen:
Was für einen Wechselrichter hast du, bzw wie bekommst du die Daten der PV Anlage in den ioBroker?
Das ist ein Kostal piko 5.5.
Dazu hatte mal jemand ein Script geschrieben. -
Servus. Mir ist jetzt noch ein Fehler aufgefallen wo ich nochmal eure Hilfe brauche. Über einen Cron Trigger um 23:59 soll er mir die Werte in eine Variable schreiben, wenn ich aber das Objekt prüfe wann der Wert das letzte mal geschrieben wurde passiert es immer um 0:59. Kann mir das jemand erklären?
Die Uhrzeit im ioBroker stimmt. Über raspi-config habe ich auch die richtige Zeitzone eingestellt. Wenn ich in der Konsole "date" eingebe gibt er mir die lokale Zeit korrekt und eine universal Zeit mit -1h aus. Kann das damit zusammen hängen?
Gruß Jaschkopf
-
@Jaschkopf sagte in Wert regelmäßig in neue Variable loggen:
gibt er mir die lokale Zeit korrekt und eine universal Zeit mit -1h aus.
richtig; die lokale Zeit ist (im Winter) eine Stunde niedriger als die UTC
Wenn date die richtige Zeit ausgibt sollte es daran eigentlich nicht liegen
-
Habe gerade nochmal das Datum am Pi geprüft:
pi@raspberrypi:~ $ date Do 30. Jan 16:48:51 CET 2020
Also das passt. Trotzdem wird der Wert erst um 0:59 geschrieben. Hier nochmal mein Skript:
-
@Jaschkopf sagte:
wird der Wert erst um 0:59 geschrieben.
Wird so die richtige Zeit im Log ausgegeben ?
-
@paul53 sagte in Wert regelmäßig in neue Variable loggen:
@Jaschkopf sagte:
wird der Wert erst um 0:59 geschrieben.
Wird so die richtige Zeit im Log ausgegeben ?
Habe das gerade ausprobiert und es wird tatsächlich die Uhrzeit mit -1h ausgegeben, also gerade eben 16:26Uhr.
Aber im Info Tab wird die Uhrzeit korrekt angezeigt.
Gruß Jaschkopf
-
Hier mal ein Ausschnitt aus meinem Log. Kann mir das jemand erklären?
-
@Jaschkopf was hast du als timeserver eingetragen (wenn überhaupt)
Synchronisiert der vielleicht mit einem Gerät im Netz, das die Zeit verliert?
-
@Homoran einen Zeitserver hab ich nicht explizit eingetragen. Sonst hat das der Pi immer von alleine gemacht. Wüsste nicht von welchem Gerät er sich die Zeit holen sollte. Wenn ich in der Konsole "date" eingebe passt die Systemzeit vom Pi ja auch. Scheint so als würden nur manche Instanzen mit einer falschen Uhrzeit arbeiten
-
@Jaschkopf sagte in Wert regelmäßig in neue Variable loggen:
Wenn ich in der Konsole "date" eingebe passt die Systemzeit vom Pi ja auch.
Auch vor/nach 18:00 (19:00) wenn das log auf einmal die Zeit ändert?
-
Es sind ja nur bestimmte Instanzen die mit der falschen Uhrzeit loggen. Die systemzeit vom pi ändert sich dabei nicht bzw ich wüsste nicht wie ich das prüfen sollte.
-
@Jaschkopf sagte in Wert regelmäßig in neue Variable loggen:
Es sind ja nur bestimmte Instanzen die mit der falschen Uhrzeit loggen.
ok - das ist mir jetzt neu.
@Jaschkopf sagte in Wert regelmäßig in neue Variable loggen:
Die systemzeit vom pi ändert sich dabei nicht
Dein Ausschnitt aus dem log lässt mich an dieser Aussage zweifeln.
Es wäre schon sehr seltsam, wenn genau eine Stunde kein Event passiert, und der folgende dann wieder im normalen Rhythmus auftritt.@Jaschkopf sagte in Wert regelmäßig in neue Variable loggen:
ich wüsste nicht wie ich das prüfen sollte.
Ich auch nicht - das wäre wieder eine "Aufgabe" für @paul53
-
@Jaschkopf sagte in Wert regelmäßig in neue Variable loggen:
ich wüsste nicht wie ich das prüfen sollte.
Wenn sich die Systemzeit wirklich ändern sollte, dann wird das folgende Script ein Log erzeugen, andernfalls nicht:
var last = Date.now(); schedule('* * * * *', function() { if(Math.abs(Date.now() - last) > 65000) log('Abweichung > 1 Minute ' + formatDate(new Date(), 'hh:mm:ss'), 'warn'); last = Date.now(); });
-
Das Skript werde ich nachher mal noch erstellen und scharf schalten.
Kann es sein das iobroker die Uhrzeit aus meiner homematic CCU bzw pimatic bezieht? Da hab ich Die Zeit noch nicht geprüft.
-
@paul53 Habe das Skript jetzt fast 24h laufen. Die Uhrzeit im Log springt immer noch lustig um 1 Stunde hin und her, aber das Skript hat nichts ins Log eingetragen...
-
@Jaschkopf sagte:
das Skript hat nichts ins Log eingetragen...
Dann ändert sich die Uhrzeit für die Javascript-Instanz nicht.