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

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

Vorheriges Thema - Nächstes Thema

gvzdus

Die Betriebsart "dSS-Info" ist die Richtige: Einfach "Read-Only" mit 9600 Baud.
Es *sollte* auch der Momentanwert ankommen, falls das nicht der Fall ist und / oder die Zählerstände sehr ungenau sind, ist nach meiner Erfahrung die PIN noch nicht "reingemorst" worden.

h002

Zitat von: gvzdus am 24 März 2022, 17:06:41
Die Betriebsart "dSS-Info" ist die Richtige: Einfach "Read-Only" mit 9600 Baud.
Es *sollte* auch der Momentanwert ankommen, falls das nicht der Fall ist und / oder die Zählerstände sehr ungenau sind, ist nach meiner Erfahrung die PIN noch nicht "reingemorst" worden.
Sorry, ja der Momentanwert kommt natürlich auch. Also kann OBIS mit dem D0-Mode nichts anfangen und ich kann darüber die historischen Werte nicht auslesen?

gvzdus

Nein! Das OBIS-Modul ist rein SML.
Hey, für Historie in DIY gibt es doch FHEM :-)

Bei mir werden z.B. in 5min, 1h und Tagesrythmen die Werte vom OBIS-Device in Dummy-Devices kopiert und per Filelog "auf Ewig" auf die "Platte" gebannt.

h002

Vielen Dank. Die Schnittstelle mit ihren Unterschieden dSS und D0 war mir nicht bekannt. Dachte beides sendet dieses SML-Format. Du hast mich auf ein neues Level gehoben. :-)

Selbstverständlich historisiere ich mit FHEM, allerdings mit DbLog und nicht FileLog. ;-)

Jaykoert

Hallo,

ich bräuchte Hilfe beim Auslesen von meinen Holley DTZ541 Zählern. Beide Zähler funktionieren eigentlich mit einem kleinen CRC-Hack seit Jahren. Seit letzter Woche liefert mein zweiter Zähler (2-Tarifzähler mit HT/NT) überhaupt keine Daten mehr. Der andere Zähler (normalStrom) funktioniert ohne Probleme.

Folgende Ausgabe erhalte ich beim Starten, sieht soweit gut aus:

2022.03.28 17:53:54 3: Opening normalStrom device /dev/serial/by-id/usb-Silicon_Labs_USB-IR-Kopf_001DCF91-if00-port0
2022.03.28 17:53:54 3: Setting normalStrom serial parameters to 9600,8,N,1
2022.03.28 17:53:54 3: OBIS (normalStrom) - Init done
2022.03.28 17:53:54 3: normalStrom device opened
2022.03.28 17:53:54 3: OBIS (normalStrom) - Attr interval Val 30, dopoll =
2022.03.28 17:53:54 3: Opening heizungStrom device /dev/serial/by-id/usb-Silicon_Labs_USB-IR-Kopf_001DD6D7-if00-port0
2022.03.28 17:53:54 3: Setting heizungStrom serial parameters to 9600,8,N,1
2022.03.28 17:53:54 3: OBIS (heizungStrom) - Init done
2022.03.28 17:53:54 3: heizungStrom device opened
2022.03.28 17:53:54 3: OBIS (heizungStrom) - Attr interval Val 30, dopoll =


Verbose natürlich auf 5 und erhalte normalerweise nur permanent diese Meldung:

2022.03.28 17:56:42 3: 2nd TL-byte != 0, reserved according spec


Ich habe mal einige Log-Statements im Modul einkommentiert:

2022.03.28 17:56:41 3: OBIS_Parse_List : Scan for 6 element
2022.03.28 17:56:41 3: OBIS_Parse_List : Scan for 2 element
2022.03.28 17:56:41 3: OBIS_Parse_List : Scan for 1 element
2022.03.28 17:56:42 3: OBIS_Parse_List : Scan for 9999 element
2022.03.28 17:56:42 3: OBIS_Parse_List : Scan for 6 element
2022.03.28 17:56:42 3: OBIS_Parse_List : Scan for 2 element
2022.03.28 17:56:42 3: OBIS_Parse_List : Scan for 6 element
2022.03.28 17:56:42 3: OBIS_Parse_List : Scan for 6 element
2022.03.28 17:56:42 3: OBIS_Parse_List : Scan for 2 element
2022.03.28 17:56:42 3: OBIS_Parse_List : Scan for 7 element
2022.03.28 17:56:42 3: 2nd TL-byte != 0, reserved according spec
2022.03.28 17:56:42 3: OBIS_Parse_List : Scan for 20 element
2022.03.28 17:56:42 3: OBIS_Parse_List : Scan for 7 element
2022.03.28 17:56:42 3: OBIS_Parse_List : Scan for 7 element
... <wiederholt sich hier immer wieder>
2022.03.28 17:56:42 3: OBIS_Parse_List : Scan for 7 element
2022.03.28 17:56:42 3: OBIS_Parse_List : Scan for 6 element
2022.03.28 17:56:42 3: OBIS_Parse_List : Scan for 2 element
2022.03.28 17:56:42 3: OBIS_Parse_List : Scan for 1 element
2022.03.28 17:56:42 5: OBIS (heizungStrom) - OBIS_Read called, hash is HASH(0x176c5c8)
2022.03.28 17:56:42 5: OBIS (heizungStrom) - OBIS_Read gave 3
2022.03.28 17:56:42 5: OBIS (heizungStrom) - EoM is -1


Ansonsten habe ich das Device neu angelegt, Info Schnittstelle am Zähler nochmal gecheckt. Keine Ahnung was hier nicht stimmt.

Hoffe hier hat noch jemand eine Idee.
Danke und Gruß
Jaykoert

Jaykoert

Puh, das war jetzt irgendwie mal wieder ein doofer Fehler. Bei meinem Zähler sind unten so 2 Buckel, wo man den Lesekopf aufsetzen kann, aber scheinbar liest er nur, wenn zwischen diesen Buckeln ca. 1mm Luft ist und somit der Lesekopf etwas höher sitzt.

Noch schnell einen zweiten Strich von der Seite an den Lesekopf und den Zähler gemacht, damit ich beim nächsten Mal schneller sehe wo er wirklich sitzen muss.

gvzdus

Könntest Du bitte:

  • Nach einem Backup auf die aktuelle Version von 47_OBIS gehen
  • Auf verbose 5 mir ein paar Zeilen des "Full message->" (auf verbose 5 ersichtlich) schicken? Ich habe eine Debug-Routine, die genau diese Zeilen einliest und neu verarbeitet

Harald

#1387
Hallo zusammen,

Seit kurzem besitze ich einen elektronischen Zähler DD3 2R06 DTA-SMZ1 und einen Hichi IR wifi Lesekopf mit ESP8266.
Der Lesekopf sendet die ausgelesenen Daten über WLAN in mein Heimnetz, die mittels Tasmota auf dem Bildschirm sichtbar sind. Es wird also etwas gesendet.
Diese Daten möchte ich in das Modul 47_OBIS einlesen und auswerten.
Gebe ich zur Erstellung eines Devices in die Komandozeile ein "define myOBIS OBIS 192.168.0.21:80 SML" , wird eine Verbindung zum Lesekopf aufgebaut, die aber sofort wieder getrennt wird. Das wiederholt sich ca. alle 5 Sekunden. Das DeviceOverview zeigt:
Zitat
DeviceOverview
myobis                                  disconnected
get  myobis     update

Internals
CFGFN
DEF                      192.168.0.21:80 SML
DeviceName          192.168.0.21:80
FUUID                   6246c6b7-f33f-f2de-8741-f835ed59decfff03
MeterType             SML
NAME                    myobis
NEXT_OPEN           1648824034.42938
NR                       829
PARTIAL
STATE                  disconnected
TYPE                   OBIS

Readings
state            disconnected               2022-04-01 16:39:34
attr     myobis     room            PowerMeter

Attributes
room          PowerMeter             deleteattr

Das Logfile sieht so aus:
Zitat2022.04.01 16:29:55 3: Opening myobis device 192.168.0.21:80
2022.04.01 16:29:55 3: OBIS (myobis) - Init done
2022.04.01 16:29:55 3: myobis device opened
2022.04.01 16:30:00 1: 192.168.0.21:80 disconnected, waiting to reappear (myobis)
2022.04.01 16:30:00 3: OBIS (myobis) - Init done
2022.04.01 16:30:00 1: 192.168.0.21:80 reappeared (myobis)
2022.04.01 16:30:06 1: 192.168.0.21:80 disconnected, waiting to reappear (myobis)
2022.04.01 16:30:06 3: OBIS (myobis) - Init done
2022.04.01 16:30:06 1: 192.168.0.21:80 reappeared (myobis)
2022.04.01 16:30:11 1: 192.168.0.21:80 disconnected, waiting to reappear (myobis)
2022.04.01 16:30:11 3: OBIS (myobis) - Init done
2022.04.01 16:30:11 1: 192.168.0.21:80 reappeared (myobis)
2022.04.01 16:30:16 1: 192.168.0.21:80 disconnected, waiting to reappear (myobis)
2022.04.01 16:30:16 3: OBIS (myobis) - Init done
2022.04.01 16:30:16 1: 192.168.0.21:80 reappeared (myobis)
2022.04.01 16:30:21 1: 192.168.0.21:80 disconnected, waiting to reappear (myobis)
2022.04.01 16:30:21 3: OBIS (myobis) - Init done
2022.04.01 16:30:21 1: 192.168.0.21:80 reappeared (myobis)
2022.04.01 16:30:26 1: 192.168.0.21:80 disconnected, waiting to reappear (myobis)
2022.04.01 16:30:26 3: OBIS (myobis) - Init done
2022.04.01 16:30:26 1: 192.168.0.21:80 reappeared (myobis)
Welche Parameter und Befehle muß ich hinzufügen, damit ich die Daten in OBIS verarbeiten können? Gibt es irgendwo eine Beispielkonfiguration, wo ich sehen kann, wie ich mein Device einrichten kann?

Ich würde mich freuen, wenn mir jemand weiterhelfen würde. Vielen Dank im Voraus

Harald
Router:AVM7590 1&1 FW:FRITZ!OS 07.56 Anbindung:1&1 50/10 Mb/s, WLAN-Repeater 300E
ELV MAX!Cube, 7xThermostat, ECO, RasPi 4B mit bullseye auf Festplatte,
CUL V 1.67, JeeLink v3_10.1c, nanoCUL, 1xS300TH, 4xHMS100T, 4xELRO, 1xTFA, 2xMAX_FK
ELV MAX!1.4.5, FHEM 5.7 auf RasPi, Kostal PIKO plus

gvzdus

Ich kenne jetzt Deine Tasmota-Konfiguration nicht. Grundsätzlich wird ja auf Port 80 eher HTTP gesprochen. Du brauchst aber eher eine "Dauerverbindung".
Sprich, wenn Du am Raspi:
telnet 192.168.0.21 <port>
eingibst, müsste die Verbindung stehen bleiben, und im fröhlichen Sekundentakt o.ä. der Bildschirm mit Binärblöcken zugemüllt werden. Wenn Du so weit bist, dann sollte auch der define wie Du ihn verwendet hast, funktionieren.

clumsy

Hallo

Ich habe diese Woche meinen Zähler erfolgreich in Betrieb genommen, momentan muss ich jedoch den Umweg über vzlogger und HTTPMOD via JSON gehen, da das OBIS Modul m.W. leider ein Wechsel der Baudrate (noch) nicht unterstützt und die Auslesung dann zu lange dauert.

Aber erst mal vielen Dank für das Modul, es funktioniert auch direkt super, eben mit dem kleinen Einschränkung bez. des Speed's.

Ich hab mir mal versucht den Code kurz anzusehen und meine ANzeichen davon gesehen zu haben, dass ein Wechsel der Lesegeschwindigkeit nach dem initialen Pull-String senden angedacht aber wohl noch nicht fertig implementiert ist. Stimmt dem so?

Eigentlich könnte man ja fix den max. möglichen Speed welcher der Zähler auf die /?! Initialisierung antwortet verwenden anstatt einfach in der "minimalen" Geschwindigkeit weitermachen.

Leider bin ich perl-technisch nicht so versiert, dass ich direkt einen Änderungsvorschlag machen könnte...

Wenn es also möglich wäre, einen solchen speed-change einzubauen (via Attribut, automatisch oder per config/set) wäre super!!

Nochmals vielen dank und Grüsse aus der CH

STefan

Harald

#1390
Hallo gvzdus,

danke für den Hinweis, aber auf dem Tasmota-Lesekopf scheint kein Telnet zu laufen. Der Raspi kann keine Verbindung herstellen.
Hier meine Parameter auf dem Lesekopf

                    Sonoff Basic
                       Tasmota

Program Version           9.5.0(tasmota)
Build Date & Time   2021-11-08T00:56:32
Core/SDK Version   2_7_4_9/2.2.2-dev(38a443e)
Uptime                   0T00:12:31
Flash write Count   12 at 0xF8000
Boot Count           4
Restart Reason           Software/System restart
Friendly Name 1           Tasmota

AP1 SSId (RSSI)           DK9JH (76%, -62 dBm) 11n
Hostname           tasmota_0C0F99-3993
MAC Address           4C:75:25:0C:0F:99
IP Address (wifi)   192.168.0.21

Gateway                   192.168.0.1
Subnet Mask           255.255.255.0
DNS Server           192.168.0.1

MQTT Host           Lesekopf
MQTT Port           1883
MQTT User           DVES_USER
MQTT Client           DVES_0C0F99
MQTT Topic           tasmota_%06X
MQTT Group Topic 1        cmnd/tasmotas/
MQTT Full Topic           cmnd/tasmota_0C0F99/
MQTT Fallback Topic   cmnd/DVES_0C0F99_fb/
MQTT No Retain           Disabled

Emulation           None

ESP Chip Id           90425 (ESP8266EX)
Flash Chip Id           0x14325E
Flash Size           1024 kB
Program Flash Size   1024 kB
Program Size           635 kB
Free Program Spac         368 kB
Free Memory           21.7 kB


Ich habe bisher viele Sachen wie MQTT, MQTT2, OBIS u.a. ausprobiert sowie verzweifelt eine Beispielkonfiguration gesucht, aber alles ohne Erfolg.

Ich habe div. Devices angelegt, die nicht funktioniert haben. Wäre toll, wenn mir jemand helfen würde, damit ich die Daten des Lesekopfes in FHEM verarbeiten könnte.
Herzlichen Dank im Voraus und viele Grüße

Harald
Router:AVM7590 1&1 FW:FRITZ!OS 07.56 Anbindung:1&1 50/10 Mb/s, WLAN-Repeater 300E
ELV MAX!Cube, 7xThermostat, ECO, RasPi 4B mit bullseye auf Festplatte,
CUL V 1.67, JeeLink v3_10.1c, nanoCUL, 1xS300TH, 4xHMS100T, 4xELRO, 1xTFA, 2xMAX_FK
ELV MAX!1.4.5, FHEM 5.7 auf RasPi, Kostal PIKO plus

gvzdus

Moin, hoffe, dass jemand was schreibt, der Tasmota nutzt.
Mit etwas Googlen würde ich sagen: "Du musst bei Tasmota dumpf 'serial to network' konfigurieren: Das Serial-IO per TCP rausreichen - ohne jede Intelligenz oder Dekodierung". Übrigens schon eine Warnung: Bei dieser Betriebsart entsteht in FHEM ziemlich viel CPU-Last, weil wirklich jedes Byte einzeln verarbeitet wird. Es geht aber.

Harald

Dank für die Antwort,

soweit ich das bis jetzt verstehe, überträgt Tasmota die Daten mittels MQTT. In FHEM gibt es ja MQTT2. Damit sollte es eigentlich machbar sen. Ich habe nur noch nicht gefunden, wie und welches Device in FHEM erstellt werden muß, damit das klappt. Vielleicht gibt es hier ja jemand, der oder die schon so etwas laufen hat und mir Tipps geben kann?

Viele Grüße

Harald
Router:AVM7590 1&1 FW:FRITZ!OS 07.56 Anbindung:1&1 50/10 Mb/s, WLAN-Repeater 300E
ELV MAX!Cube, 7xThermostat, ECO, RasPi 4B mit bullseye auf Festplatte,
CUL V 1.67, JeeLink v3_10.1c, nanoCUL, 1xS300TH, 4xHMS100T, 4xELRO, 1xTFA, 2xMAX_FK
ELV MAX!1.4.5, FHEM 5.7 auf RasPi, Kostal PIKO plus

hdgucken

#1393
Zitat von: Harald am 05 April 2022, 12:06:53
Dank für die Antwort,

soweit ich das bis jetzt verstehe, überträgt Tasmota die Daten mittels MQTT. In FHEM gibt es ja MQTT2. Damit sollte es eigentlich machbar sen. Ich habe nur noch nicht gefunden, wie und welches Device in FHEM erstellt werden muß, damit das klappt. Vielleicht gibt es hier ja jemand, der oder die schon so etwas laufen hat und mir Tipps geben kann?

Viele Grüße

Harald

Hallo Harald,

ich nutze zwar nicht Tasmota, aber ich versuche mal zu helfen ;o)
Du mußt einen MQTT2 Server anlegen, dieser empfängt die MQTT-Nachrichten von den Devices (z.B. Deinem Zähler) und leitet sie dann an ein MQTT2 Device weiter.
Du müsstest z.B. mit:
define MQTT2_FHEM_Server MQTT2_SERVER 1883 global
einen MQTT2 Server anlegen.
Damit sollte das MQTT2-Device für Deinen Zähler beim einschalten des Tasmota Lesekopfes automatisch in fhem erstellt werden.
Somit brauchst Du das OBIS-Modul gar nicht, diese Arbeit erledigt schon Tasmota ;o)

Gruß Thomas

Harald

#1394
Hallo Thomas,

vielen Dank für die Antwort. Das Device habe ich erstellt. Aber ich habe noch nicht gefunden, wie ich die vom Lesekopf gesendeten Daten dort einlesen kann. Welche Perameter sind dazu erforderlich. Die Angaben in der Commandref verstehe ich leider nicht. Kannst du mir da weiterhelfen?

So sieht das Device z.Z. aus

Vielen Dank im Voraus

Harald
Router:AVM7590 1&1 FW:FRITZ!OS 07.56 Anbindung:1&1 50/10 Mb/s, WLAN-Repeater 300E
ELV MAX!Cube, 7xThermostat, ECO, RasPi 4B mit bullseye auf Festplatte,
CUL V 1.67, JeeLink v3_10.1c, nanoCUL, 1xS300TH, 4xHMS100T, 4xELRO, 1xTFA, 2xMAX_FK
ELV MAX!1.4.5, FHEM 5.7 auf RasPi, Kostal PIKO plus