openHAB
gexle hat geschrieben: ↑25. Nov 2023 11:20
Ok schade und zur anderen Frage?

openHAB speichert gewöhnlich alle Items über eine Persistence. Default ist das rrd4j, welches nicht mit Strings umgehen kann. Früher wurde ON/OFF mal auf 1/0 umgesetzt, soweit ich weiß, geht das aber nicht mehr (schau, ob Analyze ein Chart anzeigt, welches die Schaltzeitpunkte anzeigt)
Im Zweifel müsstest Du also vermutlich eine andere Datenbank einrichten, welche von openHAB für die Persistence verwendet werden kann. Typisch: InfluxDB, weil man die Daten sehr bequem in Grafana verwenden kann, um sehr leistungsfähige Charts zu erstellen. MariaDB geht genauso, ist aber eine Schwergewicht, extra nur für openHAB ist das wohl eher Overkill (genau wie PostGre, von dem ich außerdem keine Ahnung habe) Am ehestens ist vermutlich SQLite "angemessen", im Sinne von schlank und schnell, aber auch das musst Du manuell einrichten, sprich, Du musst wissen, wie das geht.
InfluxDB ist die einzige externe Datenbank, die direkt über
openhabian-config nachinstalliert werden kann.
Allerdings: selbst mit der Datenbank hast Du keine Information über die Einschaltdauer, stattdessen liefert die Persistence dann Daten um ein Chart zu zeichnen, in dem Du die Zustände ON und OFF geschrieben über die Zeit widergespiegelt bekommst.
Auf Umwegen kann man dennoch an diese Information kommen, mein Ansatz dazu wäre, ein Number Item parallel zum Switch Item an den switch Channel zu koppeln (mit Mapping ON=1, OFF=0). Dieses Item wird also den Zustand als 1 oder 0 anzeigen und (default) in rrd4j minütlich gesichert. Und da der Wert minütlich vorliegt, kann man recht einfach über den gewünschten Zeitraum eine Summe bilden und hat damit die Einschaltdauer in Minuten.
rrd4j gewichtet die Einträge zeitlich, das sollte auch bei der Summe funktionieren. Falls hier aber unsinnige Werte heraus kommen, kannst Du uach den Durchschnittswert für den Zeitraum errechnen lassen und dann mit der Anzahl der Minuten multiplizieren, also z.B. Durchschnitt Einschaltdauer in den letzten 12 Stunden 0.05 -> 0.05 * 12 * 60 = 36 Minuten. Der Durchschnitt ist definitiv gewichtet, das heißt, wenn Du in einem Zeitraum mehr als einen Messwert pro Minute hast, werden diese Messwerte über den Abstand zwischen den Messwerten gewichtet, z.B. innerhalb einer Minute alle 10 Sekunden ein Wechsel zwischen 0 und 1 ergibt dann für die Minute 0.5 und nicht 3