Anzeige von Stromzählerwerten

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Optimus#1978#
Beiträge: 25
Registriert: 6. Feb 2024 14:29
Answers: 0

Re: Anzeige von Stromzählerwerten

Beitrag von Optimus#1978# »

Nachfolgend der Code aus Visual Studio Code. Es gab keine Fehlermeldung, aber auch keine Ausführungsanzeige.

Code: Alles auswählen

                          _   _     _     ____   _
  ___   ___   ___   ___  | | | |   / \   | __ ) (_)  ____   ___  
 / _ \ / _ \ / _ \ / _ \ | |_| |  / _ \  |  _ \ | | / _  \ / _ \ 
| (_) | (_) |  __/| | | ||  _  | / ___ \ | |_) )| || (_) || | | |
 \___/|  __/ \___/|_| |_||_| |_|/_/   \_\|____/ |_| \__|_||_| | |
      |_|                  openHAB 4.1.1 - Release Build

Looking for a place to get started? Check out 'sudo openhabian-config' and the
documentation at https://www.openhab.org/docs/installation/openhabian.html
The openHAB dashboard can be reached at http://cmatic:8080
To interact with openHAB on the command line, execute: 'openhab-cli --help'

openhabian@cmatic:~ $ sudo /usr/bin/systemctl restart openhab.service
[sudo] password for openhabian: 

To interact with openHAB on the command line, execute: 'openhab-cli --help'

Hat ein Restart stattgefunden? In OpenHAB kann ich keine Veränderungen feststellen.

Code: Alles auswählen

smartmeter:meter:hausanschluss       [port="/dev/ttyUSB0", baudrate="9600", refresh=30]

Bridge mqtt:broker:mosquitto "MQTT Bridge" [host="127.0.0.1", secure=false] {
    Thing topic Multisensor1 {
        Channels:
            Type number : Temperature1 [ stateTopic="cmatic_F3A67E/tele/SENSOR", transformationPattern="JSONPATH:$.DS18B20-1.Temperature"]
            Type number : Temperature2 [ stateTopic="cmatic_F3A67E/tele/SENSOR", transformationPattern="JSONPATH:$.DS18B20-2.Temperature"]
    }
}

Benutzeravatar
udo1toni
Beiträge: 13986
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Anzeige von Stromzählerwerten

Beitrag von udo1toni »

Ob ein Restart stattgefunden hat, kannst du z.B. im Log von openHAB sehen.
Die things-Datei wird niemals geändert, openHAB liest diese Dateien, aber schreibt niemals. Da aber keine Channel konfiguriert sind, müssen die Channel per autoDiscovery angelegt worden sein, deshalb sollte ein hinzugekommener Channel auch gefunden werden.

Wenn da snicht der Fall ist, müsste man versuchen, den Channel manuell hinzuzufügen, die Frage ist aber, was dann mit den automatisch gefundenen Channels passiert.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Optimus#1978#
Beiträge: 25
Registriert: 6. Feb 2024 14:29
Answers: 0

Re: Anzeige von Stromzählerwerten

Beitrag von Optimus#1978# »

In den letzten Wochen musste ich einige andere Dinge erledigen. Jetzt will ich mich wieder um die Anzeige und Speicherung der Stromzählerwerte meines Zweirichtungsstromzählers kümmern.

Bislang kann ich über OpenHAB nur die kumulierten Zählerstände für den Strombezug (= 1.8.0) und die Stromeinspeisung (= 2.8.0) abrufen. Diese Werte stimmen mit den Werten überein, die ich direkt am Stromzähler ablesen kann.

Ich würde diese täglichen Zählerwerte gerne archivieren/speichern, so dass diese Werte später für zurückliegende Stichtage nachträglich abgerufen werden können.

Nach meinem bisherigen Verständnis muss hierzu in OpenHAB eine sog. Persistence-Komponente konfiguriert werden. Doch wie funktioniert das genau?

Viele Grüße Optimus

Benutzeravatar
udo1toni
Beiträge: 13986
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Anzeige von Stromzählerwerten

Beitrag von udo1toni »

Genau. Wenn Du openHAB4 verwendest, musst Du in den Addons eine passende Persistence auswählen, z.B. rrd4j. Weiterhin musst Du konfigurieren, welche Items wie persistiert werden sollen, dazu klickst Du in den Einstellungen in der rechten Spalte den Persistence Service an. Anschließend klickst Du auf die blaue Überschrift und kommst in den Bereich, in dem Du Items zu Strategies zuordnen kannst.
Die Werte werden in rrd4j eine gewisse Zeit aufgehoben und dann überschrieben. Dabei gibt es verschiedene "Fächer", in denen die Daten aufgehoben werden. Die Fächer speichern jeweils eine bestimmte Anzahl Werte über einen bestimmten Zeitraum, z.B. 480 Werte über die letzte Stunde, 600 Werte über die letzten 12 Stunden, 800 Werte über den letzten Monat und 1200 Werte über das letzte Jahr. Wenn ein Wert "zu alt" wird, wird er gelöscht. Es stehen also für die kurze Vergangenheit sehr viele Messwerte zur Verfügung, je weiter die Messwerte in die Vergangenheit reichen, desto größer wird der Abstand zwischen den Messwerten.
Vorteil: es wird eine genau bekannte Menge an Speicher für ein Item benötigt, diese Menge ist fix, Somit wird das System auch nicht langsamer, nur weil mehr Zeit in der Persistence abgespeichert wird.
Nachteil: Die Messwerte werden (zeitlich) ungenauer, je weiter sie in der Vergangenheit liegen. Außerdem müssen die Messwerte mindestens einmal pro Minute erfasst werden, weshalb für rrd4j zwingend als Strategy everyMinute ausgewählt sein muss.
mapdb ist Für Deinen Zwecke ungeeignet, es speichert lediglich den letzten Status ab, das ist super, um einem Item beim Start des Systems den letztbekannten Status zuzuweisen, sonst aber nicht weiter sinnvoll.
Weitere Persistence Services benötigen externe Software, welche den eigentlichen Speicher zur Verfügung stellt, z.B. jdbc (eine SQL-Datenbank nach Wahl) oder InfluxDB (eine auf Zeitserien optimierte Datenbank).
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Optimus#1978#
Beiträge: 25
Registriert: 6. Feb 2024 14:29
Answers: 0

Re: Anzeige von Stromzählerwerten

Beitrag von Optimus#1978# »

Ich habe den Eintrag "RRDJ4 Persistence" ausgewählt.

Nach Anklicken der blauen Überschrift "Persistence configuration" erscheinen bei mir im Abschnitt "Configuration" die Einträge "Energy*,Power*,EnergyDay*,Temperatur*" sowie "Betriebseinst". Und im Abschnitt "Strategies" werden die Optionen "everyMinute", "everyHour" und "EveryDay" angezeigt.

Soweit ersichtlich, kann ich auf dieser Seite keine Änderungen vornehmen. Wie kann ich als Strategie "everyMinute" auswählen?

Benutzeravatar
udo1toni
Beiträge: 13986
Registriert: 11. Apr 2018 18:05
Answers: 222
Wohnort: Darmstadt

Re: Anzeige von Stromzählerwerten

Beitrag von udo1toni »

Du musst im Bereich Configuration die Strategies zuweisen, gewöhnlich sollte als Strategy everyMinute, everyChange gesetzt werden. Alternativ kann man auch everyMinute, everyUpdate nutzen. Die Reihenfolge ist irrelevant, es ginge also auch everyChange, everyMinute

everyChange: jedes Mal, wenn sich der Status des Items ändert.
everyUpdate: jedes Mal, wenn das Item einen Wert zugewiesen bekommt, unabhängig davon, ob dies zu einer Änderung des Status führt.

Außerdem gibt es noch restoreOnStartup, was dazu führt, dass openHAB beim Starten des Systems den letztbekannten Status ausliest und ins Item schreibt. Damit bekommt man also direkt ab Systemstart einen gültigen Status (das ist aber nicht bei allen Items sinnvoll, deshalb immer vorsichtig nutzen).
Man kann beliebig viele Strategies gleichzeitig zuweisen (durch Komma getrennt), allerdings sind nicht alle Kombinationen sinnvoll, z.B. everyChange, everyUpdate ist für die Changes einfach doppelt gemoppelt, die werden dank everyUpdate ja ohnehin gespeichert.

Solltest Du tatsächlich nichts ändern können, dann müsste es einen Text geben, der besagt, dass die Konfiguration über eine Textdatei vorgenommen wurde und deshalb keine Änderungen vorgenommen werden können. Außerdem müsste dann oben rechts ein Vorhängeschloss eingeblendet sein.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Antworten