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

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

Vorheriges Thema - Nächstes Thema

papa

Zitat von: gvzdus am 10 Mai 2021, 16:31:33
Läuft bei mir normalerweise statt der direkten /dev/... - Konfiguration in FHEM, weil ich so auch mit meinem Test-Raspi gleichzeitig den OBIS-Zähler auslesen kann (2 FHEM-Instanzen auf 2 Raspis, aber nur ein Lesekopf am ersten Raspi).
Ach wusste gar nicht, dass man da mit mehreren Klienten gleichzeitig auf eine Serielle zugreifen kann.
BananaPi + CUL868 + CUL433 + HM-UART + 1Wire

gvzdus

Das geht nur mit neueren ser2net-Versionen, und es ist nicht superstabil, wenn man z.B. den Zweit-Raspi einfach ausschaltet statt sauber runterzufahren.

Meine Config:
20001:raw:0::/dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A106Q3OW-if00-port0:9600 NONE 1STOPBIT 8DATABITS max-connections=3

(max-connections=3 ist das Zauberwort)

Nighthawk

#1262
Das ser2net ein SW ist war mir schon klar, bin nur nicht auf die Idee gekommen es auf localhost zu nutzen, danke für den Hint.
Habe gerade umgestellt und werde beobachten.

Danke und Gruß
Alex

Nighthawk

Eine kurze Rückmeldung, mit Ser2Net ist die Dauerbelastung auf rund 20% heruntergegangen.
Danke für den Schubs in die richtige Richtung!

Gruß
Alex

huhu

Hallo zusammen,

nutze einen Weidmann IR Kopf und habe das Modul eingerichtet. Status ist auch auf "opened" allerdings werden keine Readings erzeugt? Fehlt da noch etwas?

define MyObis OBIS /dev/ttyUSB0@9600,7,E,1 SML

In der Console des Pi kann ich mit
cat /dev/ttyUSB0 sehen, dass dort sekündlich irgendwelche Daten ankommen.


gvzdus

Hey "huhu",

ggf. das Device auf "verbose 5" stellen und hier ein paar Sekunden des FHEM-Logfiles hochladen!
Interessant sind die Zeilen mit "Full message", darauf kannst Du auch gerne filtern:

2021.07.02 16:55:06 5: OBIS (MT175) - Full message-> 1B1B1B1B01010101760503113ADC6200620072630101760101050105BE4A0B090149534B00047FE6A1010163725F00760503113ADD620062007263070177010B090149534B00047FE6A1070100620AFFFF7262016501B618987D77078181C78203FF010101010449534B0177070100000009FF010101010B090...001B1B1B1B1A00E51E

Viele Grüße, Georg

huhu

Hallo Georg,

da kommt zumindest schon mal eine Rückmeldung und die LED am IR Kopf leuchet  :)
Aber was nun? Habe das Modul zwischenzeitlich auch nochmal geupdated, das war von 2017 (Testumgebung)

Die CRC Error waren vor dem Update noch nicht da.

Viele Grüße
Andreas

gvzdus

Moin,

welcher Zähler ist das? Er scheint ungültige CRCs zu erzeugen.
Die schmutzige Methode:
Im Modul 47_OBIS in Zeile 506 machst Du aus:
if (OBIS_CRC16($hash,$msg) == 1) {
ein
if (OBIS_CRC16($hash,$msg) >= 0) {

Vermutlich wirst Du dann Daten bekommen, bist aber nicht vor sporadischen Fehlern geschützt.
Ich könnte mal gucken, ob ich die CRC-Methode des Zählers implementiere - ich habe aber keine Lust, Deinen Screenshot abzutippen :-)
Daher wäre dafür nötig, dass Du es als Textdatei hochlädst.

huhu

Das ist der EBZ DD3 Zähler.
Ich hab dir die Zeilen mal als PM geschickt, ich weiß leider nicht ob dort die Zählernummer ggfs im String enthalten ist, muss ja dann nicht öffentlich sein ;)

Vielen Dank fürs nachschauen :)

gvzdus

Update: Ja, mit abgeschalteter CRC-Prüfung klappt es. Nein, "Huhu" scheint seinen Zähler noch nicht "freigeblinkt" zu haben. Ich habe die CRCs mit diversen Verfahren und Verkürzungen probiert - einen systematischen Fehler finde ich nicht (z.B. statt CRC16 nach X25 einen anderen Algorithmus verwendet, oder das letzte Byte weggelassen, oder die Startsequenz).

huhu

Kann ich bestätigen, mit abgeschalteter Prüfung sind folgende Readings da :)
total_consumption.127 13000 2021-07-03 10:24:43
total_consumption_Ch1.127 1000 2021-07-03 10:24:43
total_consumption_Ch2.127 12000 2021-07-03 10:24:43
total_feed.127 5000 2021-07-03 10:24:43


PIN ist angefordert, mal sehen wie es sich dann verhält.

Kann ich den USB-IR-Lesekopf über Cat nicht verlängern? Hatte ein USB2LAN und LAN2USB Adapter versucht, das hatte leider nicht funktioniert. Gibt es Leseköpfe, die ich über die GPIO des Pi nutzen könnte?

Oder könnte ich den vorhandenen USB über GPIO verwurschteln? Wie würde das DEF für das Device dann ausschauen?

Vielen DAnk!

Dirk070

#1271
Hallo zusammen,

ich komme nicht weiter und hoffe, ihr könnt mir einige Tipps geben. Die gefundenen Infos haben in Summe leider nicht zum Ziel geführt.

FHEM läuft auf einer Syno 918 im Docker Container, der Optokopf hängt am USB der Syno.
Per lsusb und dmesg sollte der Optopkopf unter /dev/bus/usb/001/005 adressierbar sein.

Also im Docker
"--device=/dev/bus/usb/001/005" ergänzt.

Define mit "/dev/bus/usb/001/005@9600".

Selbst wenn der Docker-Cotainer im Privileged Modus läuft, finde ich im Log den Eintrag
SmartMeter: Can't open /dev/bus/usb/001/005: Permission denied

STATE disconnected

Hat jemand die Konstellation aus Syno, Docker Container und dem Optokopf im Einsatz und kann mir einen Hinweis geben?

Vielen Dank vorab und schöne Grüße
Dirk

Dirk070

#1272
Hab die Lösung für meine 918+ nach langer Suche und diversen Tests gefunden.

Syno DSM bringt zwar die USB-Treiber mit, diese sind aber nicht aktiv.
dmesg  | grep tty liefert dann nicht,,now attached to ttyUSB0".

Also zuerst die Treiber aktivieren (hält temporär bis zum Reboot):
sudo insmod /lib/modules/usbserial.ko
sudo insmod /lib/modules/ftdi_sio.ko


Erster Test:
Den Container mit privilegierten Rechten starten (kann in der Docker GUI eingestellt werden), dann kann im Container auch "/dev/ttyUSB=" gefunden werden.
Dazu in der Docker GUI auf Terminal und Erstellen klicken, dann bash Fenster mit
ls | grep ttyUSB*

Wenn das funktioniert, können wir einen Weg ohne die priviligierten Rechte nutzen.

Docker Container, Einstellungen exportieren (auf ein Syno-Verzeichnis)
Eintrag ,,"devices" : null," suchen und ersetzen durch
"devices" : [
       {
           "pathOnHost": "/dev/ttyUSB0",
           "PathInContainer": "/dev/ttyUSB0",
           "CgroupPermissions": "rwm"
       }
   ],


Die Einstellungen importieren (falls Container identisch heisst, den bereits vorhandenen vorher umbenennen).

Jetzt noch die Aktivierung der Treiber permanent einrichten.
Dazu ein File anlegen (per vi z.B.)
sudo vi /usr/local/etc/rc.d/startup.sh


2 Zeilen im File eintragen
sudo insmod /lib/modules/usbserial.ko
sudo insmod /lib/modules/ftdi_sio.ko


Abschließend noch die Rechte entsprechend setzen
chmod 700 /usr/local/etc/rc.d/startup.sh


Ob dieser Weg dann auch noch im DSM 7 funktioniert, ist die Frage. Sicherheitshalber habe ich mir mal die beiden Treiber-Files kopiert....

Viel Erfolg
Dirk

Simon90

Kann mir jemand die OBIS-Kennzahlen und Bezeichnungen für dem MT691 geben?
Sowas wie https://wiki.volkszaehler.org/software/obis#iskraemeco_mt175 ?

Ich möchte ein Skript für meinen ESP8266 mit tasmota schreiben.

gvzdus

Was spricht jetzt gegen Trial & Error? Lese sie aus, und es wird ziemlich selbsterklärend sein. Sie sind ja auch im Prinzip standardisiert, nur leicht unterschiedlich implementiert. Im 47_OBIS-Modul ist das in OBIS_codes hinterlegt.