Anzeige von Stromzählerwerten

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

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

Anzeige von Stromzählerwerten

Beitrag von Optimus#1978# »

Hallo,

ich bin neu hier im Forum und mache meine ersten Gehversuche in openHAB. Sehr weit bin ich allerdings noch nicht gekommen.

Im 1. Schritt möchte ich openHAB dazu nutzen, die Daten meines Stromverbrauchs und meiner Stromerzeugung (PV-Anlage ist seit einigen Monaten vorhanden) besser überwachen zu können.

Zu diesem Zweck habe ich die optische Schnittstelle meines Zweirichtungsstromzählers vom Messstellenbetreiber freischalten lassen und einen optischen Lesekopf auf dem Zähler befestigt. Den Lesekopf habe ich mit dem cMatic-Automatisierungssystem (https://cmatic.de/?accessid=2&id=2) verbunden.

Im CMatic-System sind einige Punkte vorkonfiguriert, sodass mir in openHAB unter dem Menüpunkt „items“ bereits die kumulierten Werte für den Stromverbrauch und die Stromerzeugung automatisch angezeigt werden.

Was muss ich in openHAB tun, damit ich auf die übrigen verfügbaren Stromwerte zugreifen kann (aktueller Stromverbrauch bzw. Stromeinspeisung, Werte der letzten 7 Tage, Werte der letzten 31 Tage, Werte der letzten 365 Tage)?

Nach meinem bisherigen Verständnis müssen weitere „items“ definiert werden. Wie und wo mache ich das?

Vielen Dank

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

Re: Anzeige von Stromzählerwerten

Beitrag von udo1toni »

Herzlich willkommen im openHAB Forum!

Soweit ich das erkennen kann, handelt es sich bei cMatic um einen Raspberry Pi4, auf dem openHAB läuft.
Die erste und wichtigste Frage wäre, welche Version von openHAB läuft. Auf den Screenshots ist lediglich die BasicUI zu sehen, die stand schon unter openHAB2 zur Verfügung...

Mit hoher Wahrscheinlichkeit werden die Messwerte per mqtt zu openHAB übertragen, da wäre dann die Frage, wie das zuständige Thing definiert ist.
Falls es sich um eine aktuelle Version von openHAB handelt (openHAB4.1.1 ist die aktuelle stable Version, aber auch openHAB3.4.5 wäre eine noch unterstützte ältere Version), gibt es im Administrationsbereich die Things und dort (oben rechts) einen Karteireiter "Code", wo das entsprechende Thing als yaml Code dargestellt wird. Du kannst diesen Code als Text kopieren und hier (als Code markiert!) einstellen.
Wenn die Hardware als "generic mqtt Thing" eingebunden ist, sollte es leicht möglich sein, zusätzliche Datenpunkte einzurichten (sofern die entsprechenden Daten grundsätzlich zur Verfügung stehen).

Eventuell sind Datenpunkte auch nur ausgeblendet, es gibt (ab openHAB3.0) im jeweiligen Thing in der Channel Ansicht (das ist der mittlere Karteireiter) oben rechts an der Channelliste eine Checkbox "Show Advanced", über die dann alle verfügbaren Channel angezeigt werden. weiterhin kann man die Anzeige auf "Unlinked" Channel begrenzen, womit dann alle Channel ausgeblendet werden, die schon mit mindestens einem Item verlinkt sind.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

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

Re: Anzeige von Stromzählerwerten

Beitrag von Optimus#1978# »

Hallo,

meine Thing-Liste umfasst 18 Einträge:
- Generic MQTT Thing (1 x)
- ModBus Data (6 x)
- ModBus TCP Slave (3 x)
- MQTT Bridgte (1 x)
- Regular Poll (6 x)
- Smartmeter 1 x)

Ich vermute, dass der Thing-Eintrag "Smartmeter" den digitalen Stromzähler beschreibt:

Der Code lautet:

Code: Alles auswählen

UID: smartmeter:meter:hausanschluss
label: Smart Meter
thingTypeUID: smartmeter:meter
configuration:
  mode: SML
  refresh: 30
  baudrate: "9600"
  conformity: NONE
  port: /dev/ttyUSB0
  baudrateChangeDelay: 0
channels:
  - id: 1-0_96-50-1
    channelTypeUID: smartmeter:1-0_96-50-1
    label: 1-0:96.50.1
    description: "Value for OBIS code: 1-0:96.50.1 with Unit: null"
    configuration:
      conversionRatio: 1
  - id: 1-0_96-1-0
    channelTypeUID: smartmeter:1-0_96-1-0
    label: 1-0:96.1.0
    description: "Value for OBIS code: 1-0:96.1.0 with Unit: null"
    configuration:
      conversionRatio: 1
  - id: 1-0_1-8-0
    channelTypeUID: smartmeter:1-0_1-8-0
    label: 1-0:1.8.0
    description: "Value for OBIS code: 1-0:1.8.0 with Unit: Wh"
    configuration:
      conversionRatio: 1
  - id: 1-0_2-8-0
    channelTypeUID: smartmeter:1-0_2-8-0
    label: 1-0:2.8.0
    description: "Value for OBIS code: 1-0:2.8.0 with Unit: Wh"
    configuration:
      conversionRatio: 1
      
Viele Grüße

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

Re: Anzeige von Stromzählerwerten

Beitrag von udo1toni »

Ah. Ja, das ist der Zähler, offensichtlich ein "ganz normales" Smartmeter ohne eigenen Speicher. Das Smartmeter liefert also nur zyklisch die Zählerstände (1.8.0 -> Strombezug, 2.8.0 -> Stromeinspeisung). Du kannst diese Wert in openHAB persistieren (falls es sich um eine aktuelle openHAB Version handelt, geschieht das als Default Verhalten automatisch). Aus der Persistence kannst Du dann Rückschlüsse auf andere Werte ziehen (also diese berechnen), z.B. Tagesverbrauch/Einspeisung ergibt sich aus "Aktueller Zählerstand - Zählerstand von Mitternacht (0 Uhr) des aktuellen Tages".
Die aktuelle Leistung kannst Du so allerdings nicht in Erfahrung bringen. Die beiden anderen Channel (96.1 und 96.50) sind Hersteller-ID und Seriennummer, wenn ich es richtig im Kopf habe... Also beides statische Werte "ohne Wert" für Dich.

Es ist aber durchaus möglich, dass der Zähler noch weitere Daten überträgt. Schau mal nach dem exakten Modell des Zählers, dann könntest Du versuchsweise weitere Channel für die zusätzlichen OBIS Nummern hinzufügen, aber "Ausprobieren" lohnt nicht wirklich, "Wissen und passend konfigurieren" führt da eher ans Ziel.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

mad-mike
Beiträge: 403
Registriert: 6. Jan 2021 18:05
Answers: 2

Re: Anzeige von Stromzählerwerten

Beitrag von mad-mike »

Moin.

Mein Smart Meter Binding hat in Verbindung mit dem lesekopf noch den Channel:

1-0:16.7.0

Dort wird die aktuelle Leistung dargestellt, sowohl positiv, wie auch negative (Einspeisung PV)...
Gruss mad-mike

openHABian 4.1.1 auf Raspberry Pi 4 Mod. b (8GB) ;)

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

Re: Anzeige von Stromzählerwerten

Beitrag von udo1toni »

Wie gesagt, das ist Rätselraten was nichts bringt. Man muss das exakte Modell des Zählers kennen, um eine Liste mit den gelieferten Datenpunkten zu bekommen.
Alternativ kann man natürlich auch die Schnittstelle direkt auslesen und die gelieferten Daten analysieren, SML und OBIS sind gut dokumentiert, aber ganz ehrlich: die Mühe haben sich schon andere gemacht, es ist höchstens ein nettes Bastelprojekt, das selbst auszuknobeln. volkszaehler.org hat viele Informationen über die verschiedenen Zähler, das wäre meine erste Stelle, außerdem gibt es in Tasmota eine SML Schnittstelle, auch da könnte man also fündig werden (wobei ich nicht sicher bin, ob dort alle Datenpunkte verfügbar gemacht werden... kommt sicher auch drauf an, wer den entsprechenden Zähler eingepflegt hat).
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

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

Re: Anzeige von Stromzählerwerten

Beitrag von Optimus#1978# »

Bei mir ist ein Energiezähler vom Typ DZG DWS7420.2.G2 eingebaut.

Unter wiki.volkszaehler.org gibt es einen Zähler mit fast identischer Bezeichnung (DZG DVS74).

Bei dem Gerät, das im volkszaehler.org beschrieben wird, handelt es sich um einen (Einrichtungs)-Drehstromzähler. Bei mir ist ein Zweirichtungsstromzähler installiert. Ich gehe mal davon aus, dass dies der Grund für die abweichende Typenbezeichnung ist.

Laut Handbuch, das für den Zähler bei volkszaehler.org hinterlegt ist, liefert das Infofeld folgende Informationen:

P: aktuelle Leistung
E: Verbrauch seit letzter Nullstellung
HIS: historische Werte
1d: historischer Verbrauch letzter Tag und 730 Vorwerte
7d: historischer Verbrauch letzte 7 Tage und 104 Vorwerte
30d: historischer Verbrauch letzte 30 Tag und 24 Vorwerte
365d: historischer Verbrauch letzte 365 Tage und 2 Vorwerte

Bei meinem Zweirichtungszähler müssten die o.g. Werte sowohl für den Verbrauch als auch für die Einspeisung vorliegen.

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

Re: Anzeige von Stromzählerwerten

Beitrag von udo1toni »

Ja, die Frage ist aber, ob diese Daten auch über die Schnittstelle übertragen werden.
Ein Handbuch gibt's ja ohne Probleme z.B. hier:
https://www.swa-netze.de/fileadmin/Down ... ler/03.pdf
Und wenn man bei DZG selbst schaut, bekommt man ein Handbuch zur Zählerreihe dvs74, die vermutlich eh alle mehr oder weniger baugleich sind.
Dort heißt es dann
Push-Datensatz
Der Zähler liefert 2 Push-Datensätze über die optische Schnittstelle.
reduzierter Datensatz → „Inf off“ : Anzeige Verbrauchswerte ohne Nachkommastelle, Server-ID und Statuswort
erweiterter Datensatz → „Inf on“ : Anzeige der Verbrauchswerte mit Nachkommastellen, Anzeige der Wirkleistung, Server-ID und Statuswort
Das Umschalten erfolgt durch Aufruf des Parameters „Inf“ im Display. Mittels eines langen Tastendruckes (> 5s) kann zwischen „Inf on“ und „Inf off“ umgeschaltet werden.
Du müsstest also zunächst prüfen, dass der Zähler auf "Inf On" steht.
Ist das der Fall, so sollte die Wirkleistung zusätzlich zum Zählerstand übertragen werden (so zumindest interpretiere ich das).
Die OBIS Kennzahl für die aktuelle Wirkleistung lautet übrigens 16.7.0 :)
Es kann also sein, dass Du (nachdem Du den Zähler korrekt eingestellt hast) einfach im SML-Thing einen zusätzlichen Channel anlegst - am einfachsten, indem Du in den Code Wechselst und dort einen der Channel 1.8.0 oder 2.8.0 kopierst und anschließend die Zahlen beidseitig anpasst, so dass id, channelTypeUID, label und Description auf den OBIS Code 16.7.0 statt 1.8.0 hinweisen.
Anschließend musst Du noch ein Number Item verknüpfen und bekommst vielleicht die Wirkleistung direkt angezeigt.
Die Historie wirst Du so aber mutmaßlich nicht erhalten, die wird nur im Display des Zählers dargestellt, aber wie gesagt, das sind Daten, die (nach entsprechender Laufzeit) ohnehin über die openHAB Persistence zur Verfügung stehen.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

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

Re: Anzeige von Stromzählerwerten

Beitrag von Optimus#1978# »

Die Umstellung des Zählers auf "Inf On" hat nun funktioniert. Zumindest ist die Anzeige im Display nun zweizeilig: in der 1. Zeile wird der Verbrauchs-/Einspeisewert mit einer Nachkommastelle angezeigt und in der 2. Zeile die aktuelle Wirkleistung. Für die Umstellung des "Inf"-Wertes musste zuvor noch einmal die 4-stellige PIN eingegeben werden. Im Handbuch war da so nicht ersichtlich. Nun gut, die 1. Hürde habe ich hoffentlich geschafft.

Ich habe daraufhin in OpenHAB meine Thing-Liste aufgerufen, dort den Eintrag Smartmeter ausgewählt und in der Menüzeile den Code geöffnet. Dort umfasst jeder Channel-Eintrag 6 Zeilen. Ich habe die letzen 6 Zeile (also den letzten Channel-Eintrag) kopiert, am Ende der Auflistung einfügt und in 4 dieser Zeilen "1-0_2-8-0" durch "1-0_16-7-0" ersetzen können.

Es war danach jedoch nicht möglich, diese Änderung abzuspeichern. Folgende Fehlermeldung wurde angezeigt: "This Thing ist not editable. It has been provisioned from a file."

Die Änderung des Codes muss also an einer anderen Stelle (in einer Datei) erfolgen. Doch wo?

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

Re: Anzeige von Stromzählerwerten

Beitrag von udo1toni »

Ah. Dann schau bitte mal in den Ordner /etc/openhab/things/, dort sollte sich dann mindestens eine Datei mit der Endung .things befinden. Falls es mehrere Dateien sind, suche nach einer, bei der der Name auf das SML-Binding hinweist. Ansonsten musst Du leider die Datei(-en) öffnen, um den Eintrag zu finden.
Der Eintrag in dieser Datei sieht dann ungefähr so aus:

Code: Alles auswählen

Thing smartmeter:meter:hausanschluss "Smart Meter" [
    mode="SML",
    refrsh=30,
    baudrate=9600,
    conformity="NONE",
    port="/dev/ttyUSB0",
    baudrateChangeDelay=0
 ] {
   Channels:
   Type 1-0_96-50-1 : 1-0_96-50-1 "1-0:96.50.1" [conversionRatio=1]
   Type 1-0_96-1-0  : 1-0_96-1-0  "1-0:96.1.0"  [conversionRatio=1]
   Type 1-0_1-8-0   : 1-0_1-8-0   "1-0:1.8.0"   [conversionRatio=1]
   Type 1-0_2-8-0   : 1-0_2-8-0   "1-0:2.8.0"   [conversionRatio=1]
}
und dort kannst Du dann einfach die letzte Zeile kopieren und anpassen. Ich hab keine Ahnung, wie man die Description per things Datei setzt... falls Du den Eintrag findest wäre ich für einen Hinweis dankbar, wobei das nur Neugier ist :)
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Antworten