[OBIS V2] - Jetzt auch mit SML-Unterstützung

Begonnen von Icinger, 08 April 2016, 19:54:44

Vorheriges Thema - Nächstes Thema

Jbecker

Danke für Eure Hilfe!
Der IR Lesekopf saß tatsächlich nicht richtig auf den Sensoren. Jetzt bekomme ich valide Werte.

Grüße
Jochen

KleineHexe

Guten Morgen,

bei mir steht ein Umzug der FHEM Installation an. Zukünftig wird mein Volkszähler-IR-Lesekopf daher nicht mehr per USB direkt an der FHEM-Instanz hängen, weil diese auf andere Hardware umzieht, die weiter entfernt ist.

Ich möchte den IR-Lesekopf weiterhin am Raspberry, an dem er jetzt schon hängt, angeschlossen lassen, und ihn dann mittels socat weiterleiten. Dazu muss, wenn ich das richtig verstehe, auf dem Raspberry socat laufen und den USB-Port auf einen TCP-Port weiterleiten. In FHEM muss ich dann die Definition vom OBIS-Device anpassen und nicht per auf das USB-Device gehen, sondern auf TCP.

Was mir aber noch nicht klar ist: wo bringe ich da die Angaben zur Baudrate und zur Parität unter? Aktuell habe ich in FHEM folgende Definition:

defmod Stromzaehler OBIS /dev/Strom@9600,7,E,1 SML

Die Baudrate (9600) bekomme ich ja theoretisch in socat unter über die Option b9600, aber was mache ich mit der Angabe 7,E,1?

tomcat.x

Zitat von: KleineHexe am 01 September 2024, 09:45:37Ich möchte den IR-Lesekopf weiterhin am Raspberry, an dem er jetzt schon hängt, angeschlossen lassen, und ihn dann mittels socat weiterleiten.

Bei socat kann ich Dir nicht helfen, ich mache das mit "ser2net". Da kommen die Einstellungen dann in die ser2net.conf, z. B.:
2000:raw:0:/dev/ttyUSB0:9600 NONE 1STOPBIT 8DATABITS HANGUP_WHEN_DONE
Wobei ich aktuell damit ein Problem habe, das ich in in einem weiteren Beitrag schildern werde. Davor lief das aber monatelang gut, davor jahrelang mit einem CUL am gleichen Raspi Zero W.
FHEM: 6.3 auf Raspi 3B+, Raspbian (Buster), Perl v5.28.1
Sender/Empfänger: 2 x CULv3, Duofern Stick, HM-MOD-RPI-PCB
Gateways: FRITZ!Box 6591 (OS: 8.00), Trädfri, ConBee 2,  piVCCU, OpenMQTTGateway
Sensoren/Aktoren: FRITZ!DECT, FS20, FHT, HMS, HomeMatic, Trädfri, DuoFern, NetAtmo

tomcat.x

Seit einigen Wochen (?) habe ich das Problem, dass mein Log nach einem Neustart von fhem mit folgenden Logeinträgen geflutet wird (mehrere pro Sekunde):

2024.10.12 14:47:42 1: 192.168.153.231:2000 disconnected, waiting to reappear (D_PowerMeter)
2024.10.12 14:47:42 3: OBIS (D_PowerMeter) - Init done
2024.10.12 14:47:42 1: 192.168.153.231:2000 reappeared (D_PowerMeter)
2024.10.12 14:47:42 1: 192.168.153.231:2000 disconnected, waiting to reappear (D_PowerMeter)
2024.10.12 14:47:42 3: OBIS (D_PowerMeter) - Init done
2024.10.12 14:47:42 1: 192.168.153.231:2000 reappeared (D_PowerMeter)

Leider kann ich das nicht mehr an einen bestimmten Update festmachen. Der Lesekopf hängt an einem Raspi Zero W. Über ser2net greife ich dann über das Netzwerk darauf zu, von dem Raspi auf dem fhem läuft. (Die Daten polle ich alle 10 Sekunden.)

Es hilft dann nur, den Raspi zu rebooten, auf dem fhem läuft. Meistens. Manchmal muss ich auch den Raspi mit dem Lesekopf vorher rebooten.

Auf dem Raspi mit dem Lesekopf könnte man auch den ser2net Service durchstarten, aber auf der Empfängerseite gibt es ja nichts außer dem OBIS Modul für die Verbindung. Dort gibt es beim Gerät nur ein "Update", kein Restart oder ähnliches.

Ohne Neustart läuft das tagelang ohne Probleme, es sei denn der Router wird mal neu gestartet und das Netzwerk ist kurz weg. Das ist mein eigentliches Problem. Einen fhem Neustart führe ich gezielt durch und kann darauf reagieren. Bei einem Netzwerkaussetzer habe ich die Chance nicht.

Hat(te) jemand ein ähnliches Problem oder eine Idee?

Viele Grüße
Thomas
FHEM: 6.3 auf Raspi 3B+, Raspbian (Buster), Perl v5.28.1
Sender/Empfänger: 2 x CULv3, Duofern Stick, HM-MOD-RPI-PCB
Gateways: FRITZ!Box 6591 (OS: 8.00), Trädfri, ConBee 2,  piVCCU, OpenMQTTGateway
Sensoren/Aktoren: FRITZ!DECT, FS20, FHT, HMS, HomeMatic, Trädfri, DuoFern, NetAtmo

sunrise

Zitat von: KleineHexe am 01 September 2024, 09:45:37Guten Morgen,

bei mir steht ein Umzug der FHEM Installation an. Zukünftig wird mein Volkszähler-IR-Lesekopf daher nicht mehr per USB direkt an der FHEM-Instanz hängen, weil diese auf andere Hardware umzieht, die weiter entfernt ist.

Ich möchte den IR-Lesekopf weiterhin am Raspberry, an dem er jetzt schon hängt, angeschlossen lassen, und ihn dann mittels socat weiterleiten. Dazu muss, wenn ich das richtig verstehe, auf dem Raspberry socat laufen und den USB-Port auf einen TCP-Port weiterleiten. In FHEM muss ich dann die Definition vom OBIS-Device anpassen und nicht per auf das USB-Device gehen, sondern auf TCP.

Was mir aber noch nicht klar ist: wo bringe ich da die Angaben zur Baudrate und zur Parität unter? Aktuell habe ich in FHEM folgende Definition:

defmod Stromzaehler OBIS /dev/Strom@9600,7,E,1 SML

Die Baudrate (9600) bekomme ich ja theoretisch in socat unter über die Option b9600, aber was mache ich mit der Angabe 7,E,1?

Weshalb brauchst Du dafür socat? Das sollte doch nach wie vor mittels ser2net gehen. Ich habe es so auf dem Pi eingerichtet, d.h. die Datei `/etc/ser2net.yaml` sieht so aus:
%YAML 1.1
---
# This is a ser2net configuration file, tailored to be rather
# simple.
#
# Find detailed documentation in ser2net.yaml(5)
# A fully featured configuration file is in
# /usr/share/doc/ser2net/examples/ser2net.yaml.gz
#
# If you find your configuration more useful than this very simple
# one, please submit it as a bugreport

define: &banner \r\nser2net port \p device \d [\B] (Debian GNU/Linux)\r\n\r\n

connection: &MyThz
    accepter: tcp,2000
    enable: on
    options:
      banner: *banner
      kickolduser: true
      telnet-brk-on-sync: true
    connector: serialdev,
               /dev/serial/by-id/usb-Prolific_Technology_Inc._USB-Serial_Controller-if00-port0,
               9600N81,local

connection: &MyObis1
    accepter: tcp,2001
    enable: on
    options:
      banner: *banner
      kickolduser: true
      telnet-brk-on-sync: true
    connector: serialdev,
               /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0041-if00-port0,
               9600N81,local

connection: &MyObis2
    accepter: tcp,2002
    enable: on
    options:
      banner: *banner
      kickolduser: true
      telnet-brk-on-sync: true
    connector: serialdev,
               /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0042-if00-port0,
               9600N81,local

Wie man sieht, sind es 3 USB-Serial-Adapter, einer für meine Heizung, die anderen beiden für die IR-Leseköpfe (Hausstrom + WP separat).

Und in FHEM sieht die Definition für einen IR-Lesekopf so aus (UUID ge-Xt):
define MyObis1 OBIS /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0041-if00-port0@9600,8,N,1,SML
setuuid MyObis1 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxxxx
attr MyObis1 userattr mqttAlias:textField-long mqttDefaults:textField-long mqttDisable:both,incoming,outgoing mqttForward:all,none mqttPublish:textField-long mqttSubscribe:textField-long
attr MyObis1 alias Haushalts-Strom
attr MyObis1 channels {\
"1.0.96.50.1.1"=>"Hersteller_ID",\
"1.0.96.1.0.255"=>"Geraetekennung"}
attr MyObis1 event-min-interval .*:300
attr MyObis1 event-on-change-reading .*consumption.*,power.*
attr MyObis1 icon stromzaehler_icon@red
attr MyObis1 interval 300
attr MyObis1 pollingMode on
attr MyObis1 room Strom,HomeAssistant
attr MyObis1 unitReadings off
attr MyObis1 verbose 3

Falls das nur per socat geht bzw. gehen muss, kann ich leider nicht weiterhelfen, sorry.
Viele Grüße/kind regards
sunrise
_________________
Tecalor THZ 303 (SOL, 2006/09-2008/08), FW 2.16 | FHEM THZ module testing with FW 2.06 (INTEGRAL, 2006/12-2008/08) & FW 2.14 (SOL, 2002/10-2004/08) on Raspberry Pi 2

sunrise

Hallo zusammen!

Gibt es einen für Nicht-Nerds einigermaßen verständlichen Changelog hierfür? Ich verstehe nicht, was sich in den letzten Wochen geändert hat:
https://svn.fhem.de/trac/browser/trunk/fhem/FHEM/47_OBIS.pm

Gibt es "breaking changes", muss man etwas umstellen nach einem Update?
Viele Grüße/kind regards
sunrise
_________________
Tecalor THZ 303 (SOL, 2006/09-2008/08), FW 2.16 | FHEM THZ module testing with FW 2.06 (INTEGRAL, 2006/12-2008/08) & FW 2.14 (SOL, 2002/10-2004/08) on Raspberry Pi 2

gvzdus

Moin, Grund für die Änderung war:
https://forum.fhem.de/index.php?topic=136030.msg1298339#msg1298339

Nein, Breaking-Changes würde ich nie machen.

Alle Änderungen an FHEM sind ja hier aufgeführt:
https://svn.fhem.de/trac/log

Sucht man hier z.B. nach "OBIS", findet man den Grund für den Patch.

chri.jaes

Hallo gvzdus,

ich habe im August 2024 einen:

   [patch] Unterstuetzung WMZ von Siemens UH50/Landis+Gyr T550 in 47_OBIS.pm.
   https://forum.fhem.de/index.php?topic=139059.msg1319101#msg1319101

ins Forum gestellt. Leider bislang keine Reaktion (ueber patch request und PM), daher versuche ich es mal auf diesem Wege.

VG Christoph

Black7king

Hallo zusammen,

hat jemand von euch bereits erfolgreich einen Landis+Gyr E320-eHZ ausgelesen?

Wenn ja, welche Einstellungen habt ihr verwendet und welche Daten konntet ihr aus dem Zähler auslesen?

Vielen Dank im Voraus und viele Grüße

sunrise

Hallo zusammen!

Bei mir wurde ein einfacher Landis+Gyr E320 Zähler gegen einen HT/NT-Zähler ausgetauscht. Mir ist jetzt nicht klar, was ich in meiner OBIS-Konfiguration umstellen muss, damit auch die neuen (NT-) Werte berücksichtigt werden. Hat jemand von Euch einen Hinweis für mich? Herzlichen Dank!

Momentan ist der Zähler so definiert:

define MyObis2 OBIS /dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0042-if00-port0@9600,8,N,1,SML
attr MyObis2 userattr mqttAlias:textField-long mqttDefaults:textField-long mqttDisable:both,incoming,outgoing mqttForward:all,none mqttPublish:textField-long mqttSubscribe:textField-long
attr MyObis2 alias Wärmepumpen-Strom
attr MyObis2 channels {\
"1.0.96.50.1.1"=>"Hersteller_ID",\
"1.0.96.1.0.255"=>"Geraetekennung"}
attr MyObis2 event-min-interval .*:300
attr MyObis2 event-on-change-reading .*consumption.*,power.*
attr MyObis2 icon stromzaehler_icon@brown
attr MyObis2 interval 300
attr MyObis2 pollingMode on
attr MyObis2 room Strom,HomeAssistant
attr MyObis2 unitReadings off
attr MyObis2 verbose 3

define FileLog_MyObis2 FileLog /opt/fhem/log/MyObis2-%Y-%m.log MyObis2:(power|.*Last|total_consumption).*
attr FileLog_MyObis2 archivedir /opt/fhem/log/archive/
attr FileLog_MyObis2 createGluedFile 1
attr FileLog_MyObis2 nrarchive 2
(runterscrollen - Code ist etwas länger)


PS @Black7king: Hilft Dir mein Beitrag weiter?

Ich kann damit die aktuell bezogene Leistung (power), den totalen Verbrauch (total_consumption) sowie - theoretisch - die totale Einspeisung (total_feed) auslesen. Da ich nicht einspeise, nur "theoretisch". Mehr geht nicht (also z.B. einzelne Phasen), das benötige ich aber auch nicht.

Hier noch ein paar Definitionen für Plots und Statistiken (nutze ich eigentlich nicht), falls es Dich interessiert:

### Zähler 2 plot 1

define MyObis2_plot1 SVG FileLog_MyObis2:MyObis2_plot1:CURRENT
attr MyObis2_plot1 captionPos auto
attr MyObis2_plot1 label \\
"<html> \\
<tspan style='fill:black'>Strom Wärmepumpe, letzte Werte - </tspan> \\
<tspan style='fill:red'>Leistung: </tspan> \\
<tspan style='fill:red;;font-weight:bold'> \\
".sprintf("%0.0f", $data{currval1})." W \\
</tspan> \\
<tspan style='fill:black'> | </tspan> \\
<tspan style='fill:brown'>Verbrauch: </tspan> \\
<tspan style='fill:brown;;font-weight:bold'> \\
".sprintf("%0.0f", $data{currval2})." Wh \\
</tspan> \\
</html>"
attr MyObis2_plot1 plotsize 900,300
attr MyObis2_plot1 room Strom_Plot
#attr SVG_FileLog_MyObis2 nrAxis 0,1
#attr SVG_FileLog_MyObis2 fixedrange 2days


### Zähler 2 statistics

define MyStatObis2 statistics MyObis2
attr MyStatObis2 alias Wärmepumpen-Strom Statistiken
attr MyStatObis2 deltaReadings total_consumption
attr MyStatObis2 icon time_statistic@brown
attr MyStatObis2 room Strom
attr MyStatObis2 singularReadings MyObis2:total_consumption:Delta:Hour|MyObis2:total_consumption:Delta:Day|MyObis2:total_consumption:Delta:Month|MyObis2:total_consumption:Delta:Year
(runterscrollen - Code ist etwas länger)

Und für die Plot-Darstellung:

set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title '<L1>'
set ytics
set y2tics
set grid ytics y2tics
set ylabel "W"
set y2label "Wh"
set yrange [0:5000]
set y2range [0:2500]

#FileLog_MyObis2 4:MyObis2.power\x3a::
#FileLog_MyObis2 4:MyObis2.statTotal_consumptionHourLast\x3a::

plot "<IN>" using 1:2 axes x1y1 title 'Leistung (W)' ls l0 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y2 title 'Verbrauch (Wh)' ls l7fill lw 0.5 with bars
(runterscrollen - Code ist etwas länger)
Viele Grüße/kind regards
sunrise
_________________
Tecalor THZ 303 (SOL, 2006/09-2008/08), FW 2.16 | FHEM THZ module testing with FW 2.06 (INTEGRAL, 2006/12-2008/08) & FW 2.14 (SOL, 2002/10-2004/08) on Raspberry Pi 2

RalfRog

#1660
Hallo @sunrise

Du hast nur die Definition geschrieben. Bekommst du denn auch Readings?

Bei einem Zweitarifzähler ist der Verbrauch vermutlich nicht unter der OBIS-Kennziffer 1.8.0 sondern 1.8.1 und 1.8.2 (was steht denn auf dem Display) aufgeführt. Wenn das Modul es nicht eingebaut hat, kannst du es evtl. unter Channels definieren.

Gruß Ralf

Edit - P.S. Auf die Schnelle irgendwo gefunden
https://www.stadtwerke-dingolfing.de/upload/allgemein/Anleitungsblatt_Zaehler.pdf
FHEM auf Raspi 2B mit nanoCUL, HM-MOD-RPI-PCB und über LAN MAX!Cube mit a-culFW (Stack 868 + 433)
HM- Fensterkontakte, UP-Schalter, Bewegungsmelder und ein Rauchmelder

sunrise

Zitat von: RalfRog am 15 Februar 2025, 08:43:27Bekommst du denn auch Readings?
Nur für das Laufwerk 1.8.0, also dasselbe wie vorher.

Und da stehe ich auf dem Schlauch: Muss ich für das 2. Laufwerk noch etwas definieren?

In channels habe ich ja nur das:
attr MyObis2 channels {\
"1.0.96.50.1.1"=>"Hersteller_ID",\
"1.0.96.1.0.255"=>"Geraetekennung"}
Wie füge ich hier etwas hinzu, um das neue weitere Laufwerk einzubinden? Müsste es nicht von alleine dafür Readings geben?

Ich muss kommende Woche mal am Display nachschauen - bin momentan woanders.
Viele Grüße/kind regards
sunrise
_________________
Tecalor THZ 303 (SOL, 2006/09-2008/08), FW 2.16 | FHEM THZ module testing with FW 2.06 (INTEGRAL, 2006/12-2008/08) & FW 2.14 (SOL, 2002/10-2004/08) on Raspberry Pi 2

RalfRog

#1662
Hallo
Habe mit dem OBI-Modul vor längerem am Rande getestet.
Als schneller Tipp fällt mir noch ein, dass Modul mal auf verbose 4 oder 5 zu stellen.
Wenn ich mich recht entsinne loggt es den Datenverkehr mit dem Lesekopf.

Dann steht noch die Frage im Raum ob du die PIN hast um den Zähler frei zu schalten (ist vermutlich bei Landys ähnlich wie bei anderen Zählern).

Gruß Ralf

Edit:
Mal so ins (hell)Blaue
Der Channel dazu ist vermutlich so was wie 1.0.1.8.1.x     x=1 oder 0 oder 255
bzw. 1.0.1.8.2.x

Schau mal in den Beitrag #1635 da stehen direkt oben die Kennzahlen 1.8.1.      1.8.2

Zitat von: wollik am 01 März 2024, 13:20:20Hallo Stefan,
ich habe das OBIS Modul eingesetzt aber es werden nicht alle und auch andere ID's ausgewertet als vom SmartMeter gesendet werden.

Via vzlogger bekomme ich folgende 17 Werte:
[Mar 01 12:28:23][mtr0] Got 17 new readings from meter:
ObisIdentifier:1-0:1.8.1*255 value=5350408.30
ObisIdentifier:1-0:1.8.2*255 value=8596418.00
ObisIdentifier:1-0:2.8.0*255 value=26132240.00
.....
Bitte wie kann die  ObisIdentifier 1.8.1, 1.8.2 und 2.8.1 mit Deinem Modul auslesen?
FHEM auf Raspi 2B mit nanoCUL, HM-MOD-RPI-PCB und über LAN MAX!Cube mit a-culFW (Stack 868 + 433)
HM- Fensterkontakte, UP-Schalter, Bewegungsmelder und ein Rauchmelder

Black7king

Hallo zusammen @sunrise,

vielen Dank für die Infos! Ich fürchte allerdings, dass mein iMS nicht besonders intelligent ist und mir nur die beiden Zählerstände liefert – keine aktuelle Leistung oder weitere Werte. Daher kann ich in meiner Konfiguration leider auch nichts umstellen, um zusätzliche Daten zu erhalten.

Falls jemand noch eine Idee hat, wie man da mehr rausholen könnte, freue ich mich über Tipps!

Viele Grüße und nochmals danke!

sunrise

#1664
@Black7king:
Wenn Du auch denselben Zähler wie ich hast (davon gehe ich aus, d.h. Landis+Gyr E320), dann müsstest Du aber doch wenigstens die aktuelle Leistung sowie den bisherigen totalen Verbrauch in Deinen Readings haben. Oder meinst Du genau die mit "beiden Zählerstände"? Falls ja, dann fürchte ich, dass dieser Zähler vermutlich nicht mehr ausgibt. Zumindest kommen bei mir auch nur diese Werte (und die Einspeisung, sofern verfügbar), was ich auch mitteld Taschenlampe am Display nachvollziehen kann, d.h. dort sehe ich sonst nichts weiter (was mir aber wie geschrieben ausreicht). Solltest Du doch noch dahinterkommen, mehr auslesen zu können, wäre ein Hinweis hier sehr nett. Danke!

@RalfRog:
Ja, natürlich loggt es mit dem IR-Datenkopf und selbstverständlich habe ich auch den neuen Zähler nach Tausch von Einfach- zu Zweifach-Zähler mittels PIN freigeschaltet. ;) Vielleicht war ich in meiner Frage zu schwammig, sorry! Ich habe bereits alles am Laufen und konnte auch Werte auslesen. Nur jetzt nach dem Wechsel vom Einfach- (auch schon IMS) auf den Zweifach-Zähler (HT/NT) scheinen mir die NT-Werte zu fehlen, und das verstehe ich halt nicht. Ich muss mich noch näher damit beschäftigen.
Viele Grüße/kind regards
sunrise
_________________
Tecalor THZ 303 (SOL, 2006/09-2008/08), FW 2.16 | FHEM THZ module testing with FW 2.06 (INTEGRAL, 2006/12-2008/08) & FW 2.14 (SOL, 2002/10-2004/08) on Raspberry Pi 2