NEWS
Wert regelmäßig in neue Variable loggen
-
Hallo. Ich möchte gerne meinen Zählerstand, bzw einen Verbrauchswert (es gibt bereits errechnet den Tages-, Monats- und Jahrenverbrauch) nachts um 0Uhr loggen, damit ich mir über längere Zeiträume den Verlauf angucken kann. Ich dachte an jeden Sonntag 23:59Uhr oder am letzten Tag des Monats 23:59Uhr. Dann kann ich ein schönes Diagramm in Excel erstellen. Jedoch scheitere ich an der Scripterstellung. Über blockly ist es anscheinend nicht möglich eine Variable zu erstellen. Ich dachte es geht so:
Cron --> Erstelle Variable mit Namen "Jahr"."Monat" --> setze Wert auf Zählerstand
Hat jemand eine Idee wie ich das umsetzen kann?
Gruß Jaschkopf
-
@Jaschkopf Alternativ wäre eine History-Instanz und ein Diagramm bspw. mit Flot.
-
@maloross Damit habe ich mich auch schon beschäftigt, aber ich habe noch nicht heraus gefunden wie ich mit history nur zu einem bestimmten Zeitpunkt die Werte loggen kann.
-
@Jaschkopf aus dem Bauch heraus: "nur Änderungen" deaktivieren und im Feld darunter 86400 sec eintragen. Nach meinem Verständnis - habs aber selber noch nicht getestet - erfolgt alle 24 Stunden eine Speicherung.
-
@maloross aber ich kann nicht definieren zu welcher Uhrzeit. Wenn die Werte dann mittags um 13Uhr geloggt werden hab ich nichts gewonnen.
-
@Jaschkopf sagte:
Erstelle Variable mit Namen "Jahr"."Monat"
Dazu benötigt man eine Javascript-Funktion
mit folgendem Inhalt:createState(id, init, {type:'number', unit:'kWh', read:true, write:false, role:'value'});
-
@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?