[Modul] Obis Counter zur Integration der Infrarotschnittstelle von Haushaltszählern

Grundsätzliches

Die Bibliothek dient dazu Obis basierte Zähler per Infrarot-Lese/Schreibkopf oder beliebige, Tasmota-kompatible Smart-Meter über ein Tasmota-Interface in IP-Symcon einzubinden.

Typischerweise ist die Infrarot-Schnittstelle vom Netzversorger aus Datenschutzgründen gesperrt. Wer seinen Zähler in den eigenen 4 Wänden hat, oder wen fremde Blicke auf die eigenen Daten nicht stören, kann die Schnittstelle per PIN freischalten. Die PIN gibt es beim Netzversorger.

Obis-Counter per IR-Schnittstelle

Das Modul dient dazu Obis basierte Zähler, die im Plain-Text-Format senden, per Infrarot-Lese/Schreibkopf in IP-Symcon einzubinden. Am weitesten verbreitet sind die elektronischen Hausstromzähler.

Sollte der Datenstrom SML-codiert sein, bitte das Modul „SML-Counter“ wählen.

Für die Datenübertragung vom Zähler zum IP-Symcon-Server wird ein USB-Lese/Schreibkopf eingesetzt.

Konfiguration

  • In den IO-Instanzen einen Serial-Port erzeugen. Bei der Konfiguration der Baudrate bitte die Angaben des Zähler-Herstellers beachten. Typische Werte sind 300 oder 9600.
  • Im Objektbaum eine Obis Plain Text-Instanz erzeugen. Hierdurch wird automatisch eine Cutter-Instanz im Splitter-Bereich angelegt und konfiguriert.
  • In derObis Plain Text-Instanz die gewünsche Updatehäufigkeit einstellen.
  • Im letzten Schritt noch die Cutter-Instanz mit dem Serial-Port verbinden.

Fertig!

Obis-Counter per HTTP-Schnittstelle (z.B. Tibber)

Erfolgt die Datenübertragung vom Zähler über eine HTTP-Schnittstelle, wie das bei Tibber der Fall ist, so ist die OBIS-HTTP-Instanz zu wählen.

Konfiguration

  • Im Objektbaum eine OBIS_HTTP-Instanz erzeugen. Hierdurch wird automatisch eine HTTP-Client-Instanz angelegt.
  • In der HTTP-Client-Instanz mindestens die URL und das Update-Interval eintragen und speichern.

Fertig!

Obis-Tasmota-MQTT-Counter

Das Modul dient dazu Tasmota-Smartmeter-Interface-kompatible Zähler per MQTT in IP-Symcon einzubinden.

Konfiguration

  • Die grundsätzliche Konfiguration des Tasmota Smartmeter-Interfaces findet man hier.
  • Beispielhaft sieht die Konfiguration wie folgt aus.
>D
>B
=>sensor53 r
>M 1
+1,3,s,0,9600,Counter1
1,77070100010800ff@1,Gesamtverbrauch,Wh,1.8.0,2
1,77070100020800ff@1,Gesamteinspeisung,Wh,2.8.0,2
1,77070100100700ff@1,Verbrauch,W,16.7.0,0
#
  • Für die reibungslose Kommunikation mit IP-Symcon ist wichtig, dass die Namen und die Einheit den Obis-Standards aus folgender Tabelle entsprechen.
OBIS
(C.D.E)
Einheit Inhalt
1.8.0 Wh Zählerstand total +A
1.8.1 Wh Zählerstand total +A, Tarif 1
1.8.2 Wh Zählerstand total +A, Tarif 2
2.8.0 Wh Zählerstand total -A
2.8.1 Wh Zählerstand total -A, Tarif 1
2.8.2 Wh Zählerstand total -A, Tarif 2
16.7.0 W momentane Wirkleistung gesamt mit Vorzeichen
32.7.0 V Spannung L1
52.7.0 V Spannung L2
72.7.0 V Spannung L3
31.7.0 V Strom L1
51.7.0 V Strom L2
71.7.0 V Strom L3
81.7.1 ° Phasenwinkel U-L2 zu U-L1
81.7.2 ° Phasenwinkel U-L3 zu U-L1
81.7.4 ° Phasenwinkel I-L1 zu U-L1
81.7.15 ° Phasenwinkel I-L2 zu U-L2
81.7.26 ° Phasenwinkel I-L3 zu U-L3
14.7.0 Hz Frequenz

Konfiguration in IP-Symcon

  • Im Objektbaum eine ObisTasmotaMQTT-Instanz erzeugen. Hierdurch wird automatisch eine Verbindung zum MQTT-Server angelegt und ggf. konfiguriert.
  • Im letzten Schritt noch das MQTT-Topic des Tasmota-Smartmeter-Interfaces eingeben und speichern.
  • Sind an das Tasmota-Smartmeter-Interface mehrere Zähler angeschlossen, so ist für jeden Zähler eine eigene Instanz anzulegen und in der Konfiguration der Zählername (im Beispiel oben „Counter1“) anzugeben.

Fertig!

Experten-Einstellungen

  • Fehlende Variablen anlegen
    Standardmäßig ist die Option eingeschaltet. Das Modul legt für die vom Zähler gesendeten Werte Variablen an.
    Werden unerwünschte Variablen angelegt, wartet man solange, bis alle gewünschten Variablen angelegt sind. Danach die Option ausschalten und die nicht benötigten Variablen löschen.

Unterstützte Werte

Welche Werte zur Verfügung gestellt werden, hängt hauptsächlich vom eigesetzten Haushaltszähler ab. Vom Modul werden folgende Werte unterstützt:

  • Zählerstand Gesamtverbrauch bzw. Gesamtlieferung ins Netz
  • aktuelle Gesamtleistung
  • Netzfrequenz
  • Spannung je Phase
  • Stromstärke je Phase
  • Leistungsfaktor je Phase
  • aktuelle Leistung gesamt und je Phase (negativ bei Lieferung ins Netz)
  • Blindleistung gesamt und je Phase
  • Darstellung der Verbräuche je Tarif
2 „Gefällt mir“

V1.00

Basisversion

V1.01

Neu: Sende Eröffnungssequenz (Handshake)
Neu: weitere Formate

V1.02 - zurückgezogen

Neu: Baudratenumschaltung beim Handshake

V1.03 - zurückgezogen

Fix: Handshake-Fehler durch alte Nachrichtenreste

V1.04

Optimierung der Programmstruktur

V1.05

Neu: Optionales Anlegen von Variablen

V2.00

Neu: Tasmota-MQTT-Interface

V2.01

Neu: OBIS-Tasmota - mehrere Zähler pro Interface

V2.02

Neu: HTTP-Interface (z.B. für Tibber)

1 „Gefällt mir“

Hallo silberstreifen,
ist dein Modul schon online ?

Gruß Jürgen

jepp ist als Beta-Version online. Im Module-Store bitte „Obis Counter“ eingeben. Dann findest Du es.
Grüße
Jürgen

Hallo Jürgen,

finde deinen Einsatz echt bemerkenswert ! :smiley:

Mein E-Zähler (Siemens TD3511) erwartet leider erst eine Startsequenz,
bevor er etwas erzählt (hardware:channels:meters:power:edl-ehz:siemens_td3511 [wiki.volkszaehler.org]). Kann man das ohne grossen Aufwand einbauen ?

Gruß Jürgen

1 „Gefällt mir“

benötigt er diese einmalig oder häufiger? Wann genau? In welchem Format antwortet der Zähler dann? In den Unterlagen die in zu dem Zähler gefunden habe, steht, dass er Plain-Text nicht unterstützt…
Hast Du den Zähler schon mal ausgelesen und kannst mir einen Datensatz zur Verfügung stellen?

Grüße
Jürgen

GENIAL! Treffer beim ersten Versuch, wenn auch einige Angaben noch nicht genau passen. Stellenweise zeigt er „Grad“ an, die beim Strom keinen Sinn machen und ich muss die Benennung der Variablen vermutlich anpassen (Stromverbrauch täglich, wöchentlich, monatlich, gesamt usw.)
Ansonsten sieht das verdammmmmt gut aus!!

DANKE schön für die extrem schnelle Hilfe!

Viele Grüße
Steffan

Danke für die Blumen

Die Werte sind schon richtig. Das ist der Winkel zwischen Strom und Spannung bzw. zwischen die Phasen. Damit lässte sich dann die Leistung der einzelnen Phasen berechnen, wenn dein Zähler das nicht ohnehin schon selbst macht.

Grüße
Jürgen

1 „Gefällt mir“

Okay, dann müsste ich also lediglich die Bezeichnungen „1.8.0*100“ entsprechender der Beschreibung in „Klartext“ umbenennen. Oder sind das auch „Standards“ so dass sie von jedem Zähler so kommen würden und man es auch im Modul hinterlegen könnte?

Hast du einen Tipp welchen Intervall ich nehmen sollte? Aktuell ist es auf 1s gestellt. Ist das zu viel? Symcon speichert ja nur Werte bei Veränderungen aber ich vermute zumindest der Momentanverbrauch wird ständig schwanken.

Viele Grüße

ja genau, einfach umbenennen. Da ist jeder Zähler etwas anders. Ich gehe auch fest davon aus, dass dieses Modul für diverse Zähler noch angepasst werden muss, da jeder Hersteller so seine Eigenheiten hat.

Das kannst Du ganz nach deinem Belieben machen. Viel Prozessorlast sollte von dem Modul nicht kommen.
Grüße
Jürgen

1 „Gefällt mir“

Welche Hardware setzt ihr dafür ein?

ich benutze den Schreib-/Lesekopf von Weidmann. Der funktioniert sehr gut. Es gibt die Dinger aber auch deutlich billiger aus der Bucht. Damit habe ich aber keine Erfahrung.

Wie bekommst du den ins LAN?

das kannst du mit nem Raspi und ser2net machen. Dann auf dem Symcon-System den Client-Socket statt des Serial-Ports wählen.

Hallo Jürgen,

habe erst mal nachgesehen ob überhaupt Daten am Raspberry Pi ankommen.
Mit dieser Anleitung von der Fa. Weidmann
HowToRaspberryPi.pdf (756,2 KB)
Das ganze mit den Baud 300 Einstellungen (am Anfange kann der Zähler nur mit 300 Baud antworten).
grafik
und das kommt dann raus, da ist der Zähler dann sehr gesprächig und am Ende der Ausgabe der Werte kommt das „!“ Zeichen → also nur ein Durchlauf der Datenausgabe.
Ausgabe_E-Zaehler TD3511.txt (8,2 KB)

laut dieser Info (hardware:channels:meters:power:edl-ehz:siemens_td3511 [wiki.volkszaehler.org]) kann der Zähler nach der Initialisierungssequenz auf 9600 umschalten (300 sind echt wenig). Auf dieser Seite ist auch ein PHP Script gepostet, vieleicht hilft es.

Gruß Jürgen

Hallo Jürgen,
habe inzwischen auch eine Menge dazu gelesen. Bin gerade an einer neuen Beta-Version mit OpeningSequence dran.
Ich bleibe allerdings erstmal bei den 300bps. Wenn diese tatsächlich problematisch sind, können wir das immer noch ändern.
Danke für die Ausgabe. Diese werde ich in die Decodierung mit aufnehmen.
Grüße
Jürgen

V1.01 - Neu: Sendet Eröffnungssequenz, weitere Formate implementiert

Die neue Version ist fertig. Damit sollten jetzt auch Zähler abrufbar sein, die eine Eröffnungssequenz erwarten. Darüber hinaus wurden weitere Datenformate implementiert und die Implementierung weiterer Formate deutlich vereinfacht.

Sollten bei euch also Daten in der Instanz ankommen, diese aber nicht in Variablen geschrieben werden, dann bitte einfach die dump.txt hier posten. Eine einfache Implementierung sollten dann kein Problem mehr darstellen.

Bewusst habe ich aktuell keine Baudratenumschaltung implementiert, da diese im Zusammenspiel mit IP-Symcon einige Fallstricke mit sich bringt. Sollte es allerdings deutliche Probleme mit einer 300bps-Rate geben, dann gucken wir mal, was sich machen lässt.

Die neue Version ist wie immer bei mir zunächst als Beta im Module-Store erhältlich.

Grüße
Jürgen

1 „Gefällt mir“

Hallo Jürgen,

das neue Modul läuft ! TOP Arbeit

Musste nur die Aktualisierungszeit auf 120 Sekunden einstellen, da der ganze Auslesevorgang ja sehr lange dauert.

DANKE

Gruß Jürgen

ja, dein Zähler ist sehr gesprächig. :roll_eyes: Dann werden wir uns jetzt wohl doch über die Geschwindigkeitsumschaltung Gedanken machen müssen… Dazu brauche ich aber deine Mitarbeit. Hast du Interesse? Wenn ja, dann brauche ich nochmal eine dump.txt, d.h. einen Download aus deinem Debug der Counter-Instanz. Arbeitest du mit Serial-Port oder Client-Socket?

Grüße
Jürgen

Hallo Jürgen,
na klar helfe ich da weiter wo ich kann.
Anbei die gewünschte Datei.
dump.txt (33,1 KB)
grafik
Habe noch was zum Telegrammaufbau gefunden, falls es dir weiter hilft.
amis_td-351x_bhbk.pdf (3,6 MB)

dump_Serial_Port.txt (10,8 KB)
Gruß Jürgen