Guten Tag,
Ich hatte in dem Thread ja schon angedeutet, dass ich noch weitere Folgefragen habe.
https://knx-user-forum.de/forum/supp...ota-decodieren
Da es aber doch ein anderes Thema ist, habe ich für einen eigenen Thread entschieden. Zum Problem:
Gehen wir davon aus, dass es ein Item mit Datenbank ist, Typ float. Dieses Item beinhaltet den aktuellen Zählerstand, z.B. gemeldet alle 5 Min für einen Stromzähler. Wenn das System mal ausfällt, fehlen Werte, aber "absolut" stimmen die Werte.
Was ich jetzt berechnen möchte ist, der Verbrauch z.B. pro Stunde. Das Problem sollte ja mehrere haben, daher der Versuch das abzugleichen. Gemacht habe ich das wie folgt:
Ich erstelle also für die Verbäuche pro Irgendwas getrennte Items statt zu versuchen, das "für die Darstellung" Live zu bestimmen. Ich erhoffe mir damit, sinnvoller Daten zu speichern. Für einen Jahresrückblick würde man eher die pro Monat Ansicht (grober) abspeichern statt die 5 Min Intervalle. Die dann vielleicht nur einem Monat. Oder ist das Unsinn?
Das ganze klappt, solange in der Verbrauchsliste keine falschen Werte stehen, etwa 0 nach reboot. Das könnte ich jetzt abfangen, macht die Items aber komplizierter. Hab Ihr noch Hinweise, wie man das schöner / konzepttreuer machen könnte, dann würde ich in fie Richtung weiterarbeiten.
Edit: Noch ein Nachteil: Wenn zur vollen Stunde das System Offline ist, wird der Wert nicht besetzt, und ich kann ihn auch nicht nachträglich ergänzen, obwohl die Daten ja bekannt wären.
Wie macht Ihr das?
Ich hatte in dem Thread ja schon angedeutet, dass ich noch weitere Folgefragen habe.
https://knx-user-forum.de/forum/supp...ota-decodieren
Da es aber doch ein anderes Thema ist, habe ich für einen eigenen Thread entschieden. Zum Problem:
Gehen wir davon aus, dass es ein Item mit Datenbank ist, Typ float. Dieses Item beinhaltet den aktuellen Zählerstand, z.B. gemeldet alle 5 Min für einen Stromzähler. Wenn das System mal ausfällt, fehlen Werte, aber "absolut" stimmen die Werte.
Was ich jetzt berechnen möchte ist, der Verbrauch z.B. pro Stunde. Das Problem sollte ja mehrere haben, daher der Versuch das abzugleichen. Gemacht habe ich das wie folgt:
Code:
YieldTotal: type: num database: yes visu_acl: rw erzeugungStunde: type: num database: yes database_maxage: 7 visu_acl: rw crontab: 0 * * * = 1 eval: (sh.mqtt.strom.YieldTotal.db('max', '1h')) - (sh.mqtt.strom.YieldTotal.db('min', '1h')) erzeugungTag: type: num database: yes database_maxage: 60 visu_acl: rw crontab: 0 0 * * = 1 eval: (sh.mqtt.strom.YieldTotal.db('max', '1d')) - (sh.mqtt.strom.YieldTotal.db('min', '1d')) erzeugungMonat: type: num database: yes database_maxage: 1000 visu_acl: rw crontab: 0 0 1 * = 1 eval: (sh.mqtt.strom.YieldTotal.db('max', '1m')) - (sh.mqtt.strom.YieldTotal.db('min', '1m'))
Das ganze klappt, solange in der Verbrauchsliste keine falschen Werte stehen, etwa 0 nach reboot. Das könnte ich jetzt abfangen, macht die Items aber komplizierter. Hab Ihr noch Hinweise, wie man das schöner / konzepttreuer machen könnte, dann würde ich in fie Richtung weiterarbeiten.
Edit: Noch ein Nachteil: Wenn zur vollen Stunde das System Offline ist, wird der Wert nicht besetzt, und ich kann ihn auch nicht nachträglich ergänzen, obwohl die Daten ja bekannt wären.
Wie macht Ihr das?
Kommentar