SML Stromzähler per USB Schreib-Lesekopf?

Begonnen von matzefisi, 04 August 2013, 14:14:48

Vorheriges Thema - Nächstes Thema

hartenthaler

Ich habe einen SML Stromzähler und lese ihn mit Hilfe eines co.met IR-Lesekopfes und einem COM1-Wandler aus (also LAN und nicht USB). Auf meinem Raspberry Pi 2 kann ich den Zählerstand aus dem SML-Telegramm extrahieren und in eine rrd-Datenbank schreiben und grafisch auswerten. Soweit ganz ok. Nun läuft aber auch fhem auf dem raspi und da würde ich das doch gerne integrieren. Ein Weg scheint mir über das fhem-SML-Modul zu gehen, das ich anpassen müsste, der andere über das fhem-Volkszähler-Modul, aber dazu müsste ich dann die Volkszähler-Middleware installieren (die scheint aber noch ein Problem mit dem neuen Raspi 2 zu haben und mein co.met COM habe ich dort auch nicht als Channel gefunden). Gibt es irgendwelche Ratschläge von Euch?
fhem 5.8 auf RaspberryPi 3 mit HMLAN und CCU2, ZWave, JeeLink, FHZ1000 für FS20, HMS, Fritz!Box, Fritz!DECT200, Harmony, Sonos, hue, netatmo, SSCam, Wetter- und Verkehrsmodule, Chat-Bot mit RiveScript/Telegram, IFTTT, pushover, ...

Dek

Hallo zusammen,

ich hab mir jetzt auch einen Sensor zusammengelötet und erstmal per dump der seriellen Schnittstelle geschaut, ob da halbwegs sinnvolle Daten rauskommen:passt!

Dann nix wie rein ins FHEM:
define Stromzaehler SMLUSB /dev/ttyAMA0@9600
(ja, ich benutze die interne UART vom Raspberry2)

Das Device wird auc angelegt und ich bekomme Readings für

  • Momentanleistung
  • Zählerstand-Bezug-Total
  • Zählerstand-Tarif-1-Bezug

mit brauchbaren Werten.

Das wars dann aber auch: keine Updates mehr. Im Log (verbose 5) stapeln sich die:

2015.04.12 20:06:51 5: SMLUSB: End of SML found. Looking for a beginning.
2015.04.12 20:06:53 5: SMLUSB: End of SML found. Looking for a beginning.
2015.04.12 20:06:54 5: SMLUSB: End of SML found. Looking for a beginning.
2015.04.12 20:06:56 5: SMLUSB: End of SML found. Looking for a beginning.
2015.04.12 20:06:58 5: SMLUSB: End of SML found. Looking for a beginning.
2015.04.12 20:07:00 5: SMLUSB: End of SML found. Looking for a beginning.


Der erste erfolgreiche Versuch sah so aus:

2015.04.12 20:05:41 5: SMLUSB: End of SML found. Looking for a beginning.
2015.04.12 20:05:41 5: SMLUSB: Started parsing
2015.04.12 20:05:41 5: SMLUSB: SML Telegram found: 7777[gekürzt]1B1B - Scaler: 52FF
2015.04.12 20:05:41 5: SMLUSB: Reading BulkUpdate. Value > 0
2015.04.12 20:05:41 5: SMLUSB: SML Telegram found: 77[gekürzt]1B - Scaler: 52FF
2015.04.12 20:05:41 5: SMLUSB: Reading BulkUpdate. Value > 0
2015.04.12 20:05:41 5: SMLUSB: SML Telegram found: 7777[gekürzt]1B1B - Scaler: 52FF
2015.04.12 20:05:42 5: SMLUSB: SML Telegram found: 7777[gekürzt]1B1B - Scaler: 5200
2015.04.12 20:05:42 5: SMLUSB: Reading BulkUpdate. Value > 0
2015.04.12 20:05:42 5: SMLUSB: Setting state
2015.04.12 20:05:42 5: SMLUSB: Parsing ended
2015.04.12 20:05:42 5: SMLUSB: Beginning of SML File found start parsing


Das tut auch nach jedem
shutdown restart
von FHEM exat 1x (reproduzierbar)

sieht für mich nach nem Bug aus.

Achja: Zähler ist ein ISKRA MT681 (EnBW)

Gruß Dek

Dek

Zitat von: tommi am 05 September 2014, 21:28:31
Moin,

leider funtkioniert dass bei mir nur sporadisch...oder besser gesagt nur nach Shutdown Restart. Ich benutze die einfache Schaltung mit einer Fotodiode und einem Wiederstand. Das ganze wird über ein EXsys 6030 seriel to Ethernet konvertiert und in Linux per Socat als Device eingebunden. Am Terminal sehe ich das SML-Telegramm schön, nur FHEM liest es nicht. Hab auch schon versucht die Zeiten zu verändern, oder den buffer von Socat zu verändern, aber er liest es nur am Anfang und im Logfile steht danach 

weiß jemand Rat?? Die Werte (wenn sie denn gelesen werden) sind übrigens korrekt. Der Zähler ist ein EDL-300 Zweirichtungszähler.

Das scheint das selbe Thema wie bei mir zu sein

runkel

Hallo Dek,

mit der internen UART meines Raspberry B+ hab ich es auch nicht zum Laufen gebracht.
Hab mir dann einen PL2303 USB to serial controller gekauft.
Damit läuft es schon seit einigen Wochen.

Gruß
Runkel

Udo1

Zitat von: hartenthaler am 12 April 2015, 00:14:59
aber dazu müsste ich dann die Volkszähler-Middleware installieren (die scheint aber noch ein Problem mit dem neuen Raspi 2 zu haben ...snip

Hi,
kannst du mal näher erklären was es da für Probleme geben soll?
Hier läuft die Volkszaehler-Software einwandfrei auf einem Raspi 2.

Gruß
Udo

Dek

Hallo zusammen,

Das scheint mir ein Timing-Problem zwischen Zähler und FHEM zu sein,

Ich hab mir die UART mal mitgetracet
(siehe Anhang)

Zwischen dem "1B1B1B1B01010101" und dem Start des eigentlichen Payloads liegen 200 ms.

Vermutlich füllt die Präambel den buffer, FHEM liest das aus und das Modul interpretiert es, findet logischerweise keinen Payload. Beim darauffolgenden Payload findet es keine Präambel, denn die ist ja schon ausgelesen...


Beim initalen Start liegt ein längerer String im Buffer, sodass das erstmalige auslesen klappt.

Das Timing ist vermutl. bei jedem Zähler anders.

Ist das Modul denn eigentlich noch "in Entwicklung"? Sodass es lohnt hier Beiträge einzustellen?
Ich bin dazu gerne bereit zu unterstützen. Sollte das ein totes Pferd sein, dann denke ich auch über den logger vom vz nach.

Grüße
Dek

hartenthaler

Zitat von: Udo1 am 13 April 2015, 09:14:05
Hi,
kannst du mal näher erklären was es da für Probleme geben soll?
Hier läuft die Volkszaehler-Software einwandfrei auf einem Raspi 2.

Gruß
Udo

Hallo Udo,

ich habe auf der Seite http://wiki.volkszaehler.org/howto/raspberry_pi_image den folgenden Hinweis gefunden:

  • Aktuelles Image für RPi und RPi-B+ (nicht RPi 2) herunterladen von Image-Quelle
Allerdings könnte ich es auch ohne ein fertiges Volkszähler-Image versuchen und die Volkszähler-Middleware von Hand auf meinem laufenden System installieren, was ich aber nur tun würde, wenn ich dann den co.met COM1 einfach eingebunden bekomme. Gibt es eine passende Anleitung zur Installation von Volkszähler auf einem Raspi 2?

Gruß Hermann
fhem 5.8 auf RaspberryPi 3 mit HMLAN und CCU2, ZWave, JeeLink, FHZ1000 für FS20, HMS, Fritz!Box, Fritz!DECT200, Harmony, Sonos, hue, netatmo, SSCam, Wetter- und Verkehrsmodule, Chat-Bot mit RiveScript/Telegram, IFTTT, pushover, ...

matzefisi

Hi Dek,

ja das Modul befindet sich noch in Entwicklung und ist daher auch noch nicht in den Quellen von FHEM vorhanden. Leider habe ich zur Zeit andere Prioritäten und komme daher nicht mehr dazu an dem Modul weiterzuarbeiten. Ich kann hier gerne ab und an mal unterstützen aber die Entwicklung werde ich erstmal nicht vorran treiben. Problem an der Sache ist auch, dass ich kein Perl Experte bin (wie hier schon mehrfach erwähnt :-) ) Ich denke der Code kann auch noch deutlich optimiert werden.

Zu dem Problem mit dem RPi eigenem UART kann ich leider auch nichts sagen, da ich den Lesekopf vom Udo verwenden und der hat ja nen eigenen onboard soweit ich weiß.

Mfg
Matthias

Udo1

Zitat von: hartenthaler
Hallo Udo,

ich habe auf der Seite http://wiki.volkszaehler.org/howto/raspberry_pi_image den folgenden Hinweis gefunden:

  • Aktuelles Image für RPi und RPi-B+ (nicht RPi 2) herunterladen von Image-Quelle

Richtig. Der Hinweis ist deshalb, weil dieses Image noch mit dem alten Raspbian erstellt wurde. Das läuft nicht auf dem RPi 2.

Das hat aber nichts mit Problemen der VZ-Software mit dem RPi2 zu tun, sondern es ist schlicht noch kein fertiges Image mit dem neuen Raspbian für den RPi 2 erstellt worden.

Die Anleitung, aus der du den Link hast, gilt grundsätzlich auch für den RPi 2. Nur muss die VZ-Software per Hand installiert werden. Dazu gibt es aber auch Wiki-Seiten:
http://wiki.volkszaehler.org/software/controller/vzlogger/installation_cpp-version
http://wiki.volkszaehler.org/software/middleware/installation

Zitat von: hartenthaler
....wenn ich dann den co.met COM1 einfach eingebunden bekomme.

Der co.met sendet vor den eigentlichen Zählerdaten noch andere Informationen. Siehe http://www.photovoltaikforum.com/volkszaehler-org-f131/volkszaehler-mit-co-met-sml-smart-meter-gateway-co-t96749.html
Bin mir nicht sicher ob vzlogger damit umgehen kann.

Gruß
Udo

strippo

#174
Mit dem SMLUSB Modul habe ich versucht über einen USB IR Kopf (vom Volkszählerprojekt, Udo) einen Iskra MT372 Stromzähler auszulesen. (Raspi B+).
Keine Reaktion.
Mit einem modifizierten Pythonskript als Testskript von
http://forum.fhem.de/index.php?topic=22632.0
bzw.
http://wiki.volkszaehler.org/hardware/channels/meters/power/edl-ehz/iskra_mt372
konnten dann die Daten geloggt werden.
Angepasst werden musste:
- Request Message mit NUL verlängert
- erstes empfangene Zeichen ist / und nicht STX
- 7E1-300; schnellere Baudrate ist mir nicht gelungen
Hat jemand eine Idee, wie ich mit diesen Fakten das SMLUSB Modul zum Reden
bringen kann ??
Danke für gute Inputs
Strippo
Asus-Mini PC mit CUL
Homematic HM-Sec_SD, HM-CC-RT-DN, HM-TC-IT-WM-W-WU
FS20,FHTB,HMS100t
openv Viessdata2 mit Optolink

pejonp

Hallo,

ich habe einen TD-3511 von Siemens. Das Perlscript von VZ habe ich etwas angepaßt, so das sich auch eine andere Baudrate einstellen läßt. siehe hier (http://forum.fhem.de/index.php/topic,14117.msg284254.html#msg284254).

Aufruf:
./td3511.pm -b 9600 oder -b 19200.

Auf meinem Raspi hat es funktioniert. Damit der TD351x etwas sendet muß dieser erst eine Sequenz gesendet bekommen. Leider bin ich noch nicht durchgestiegen wie man dieses mit einem Modul in fhem macht. ;-(

Jörg
LaCrossGW 868MHz:WT470+TFA+TX37-IT+EMT7110+W136+WH25A HP1003+WH2621
SignalD(CC1101):Bresser+WS-0101(868MHz WH1080)+Velux KLF200+MAX!+HM-MOD-UART:Smoke HM-SEC-SD+VITOSOLIC 200 RESOL VBUS-LAN+SolarEdge SE5K(Modbus)+Sonnen!eco8(10kWh)+TD3511+DRT710M(Modbus)+ZigBee+Z-Wave+MQTT+vitoconnect

hartenthaler

ZitatDer co.met sendet vor den eigentlichen Zählerdaten noch andere Informationen. Siehe http://www.photovoltaikforum.com/volkszaehler-org-f131/volkszaehler-mit-co-met-sml-smart-meter-gateway-co-t96749.html
Bin mir nicht sicher ob vzlogger damit umgehen kann.

Nun laufen vzlogger und die Volkszaehler Middleware auf meinem Raspberry 2. Der vzlogger meldet, dass er mtr0 und chn0 korrekt eingerichtet hat, aber dann passiert nichts weiter. Der vzlogger kommt mit den Daten vom co.met also nicht zurecht. Auf bash-Ebene konnte ich die Daten vom co.met aber auswerten. Also sollte es möglich sein irgendwo in vzlogger etwas anzupassen. Aber wo?
fhem 5.8 auf RaspberryPi 3 mit HMLAN und CCU2, ZWave, JeeLink, FHZ1000 für FS20, HMS, Fritz!Box, Fritz!DECT200, Harmony, Sonos, hue, netatmo, SSCam, Wetter- und Verkehrsmodule, Chat-Bot mit RiveScript/Telegram, IFTTT, pushover, ...

Udo1

Zitat von: hartenthaler am 21 April 2015, 23:27:37
Also sollte es möglich sein irgendwo in vzlogger etwas anzupassen. Aber wo?

Frag dazu mal auf der Mailing-Liste von volkszaehler.org nach. Da lesen auch die Entwickler von vzlogger mit.
http://wiki.volkszaehler.org/contact

Gruß
Udo

zYloriC

Hallo Dek, matzefisi und community,

ich habe aktuell das gleiche Problem wie Dek schon beschrieben hat. Abhilfe schafft, wenn man fhem alle +3600 sek neu-starten lässt. Aber das ist ja keine schöne Lösung.
Daher ist meine Frage an Dek und andere, die das gleiche Problem hatten: wie habt ihr es gelöst?
Oder besteht die Möglichkeit, dass der Fehler durch Änderungen am Modul der Fehler beseitigt werden kann.

Ich stehe gerne zum Testen bereit. Nutze als Sensor eine IR-Diode mit Widerstand an ttyAMA0 um einen Hager 2-Richtungszähler auszulesen.

Gruß, Dank und schönen Feiertag,
zYloriC

Dek

Ich hab den Sensor immer noch am internen uart allerdings ohne das Modul. Ich hab ein perl Script  das mir den Zähler stand mit einem cronjob in ein jsonfile schreibt, das ich per jsonmeter einlese. Funktioniert prächtig.


Grüsse Dek