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

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

Vorheriges Thema - Nächstes Thema

FunkOdyssey

#150
Ich lese einen Easymeter Q3D aus. Diese sollte 9600,7,E,1 und OBIS haben.

Bei meinem Gerät handelt sich wohl exakt um diesen Leser.

---

Ich habe auch irgendwo mal etwas darüber gelesen, dass bei gewissen Tastköpfen die Signale invertiert werden müssen. Nicht, dass das bei meinem Leser auch gemacht werden muss.

---

Ich sehe mit dem Windows-Tool "hterm", dass zyklisch Daten reinkommen. Dort habe ich mich quasi durch alle Baudraten & co. geklickt. Und es kam nichts leserliches bei raus.

immi

Zitat von: FunkOdyssey am 05 Oktober 2016, 21:17:37
Ich lese einen Easymeter Q3D aus. Diese sollte 9600,7,E,1 und OBIS haben.
If it is obis cleartext, why are you using "od -tx1" which gives you the hex?

"cat" in unix can confuse you, because it uses the settings your port is already configured.
With the following command you get the given configuration
stty -F /dev/ttyACM0
or
stty -F /dev/ttyUSB0
with stty you can also change speed, parity ...
https://linux.die.net/man/1/stty

if you find the command line too complicated, you can test your hardware with minicom, picocom....
at the end, for your meeter, you need to get something like
/ESY5Q3DA1002 V3.021-
0:0.0.0*255(54920)
1-0:1.8.0*255(00003984.9338242*kWh)
1-0:21.7.255*255(000176.85*W)
1-0:41.7.255*255(001025.66*W)
1-0:61.7.255*255(002529.68*W)
1-0:1.7.255*255(003732.19*W)
1-0:96.5.5*255(82)
0-0:96.1.255*255(1ESY0943000XXX)!


FunkOdyssey

#152
Thanks for your hints. I have tried a few things, but it is only wrong data received.
Picocom shows me something like this:


�����������������������������42[*+YYmvvv62;"V"+9=R{
�����������'42[*+YYmvvVr2k++9=R{
��������������������������������42[*+YYmvvvV6{)�R42[*+YYmvvv26;&++9=R{
##+YYmdR)V>%
#4YYeRVvkjVS'vRrvv6rR)V=e=(VSefWu>e#e=N/R{
������������������������������������������##+YYmr"6ZJVi64d{+YYmvv6rVv2��dr2<+9=R{

�����������������������������42[*+YYmvvvV2kQ)Vi6'42[*+YYmvvVr2++9=R{
##+YYmdR)V>%����������������42[*+YYmvvvV6{++9='i642[*+YY���24r6 4JVi6
#4YYeRVvkjVS'vRrvv6rR)(VSefWu>e#e=N/R{
��������������������������������������##+YYmr"6ZJVi64d{+YYmvv6rVv6

��������������cc2R6<+9=R{

�������������������������42[*+YYmvvvV2{2++9=R{
������'42[*+YYMvvVr2{&++9=R{
����������������������������42[*+YYmvvvV6{++9=R{
������������������������������������������������42[*+YYmvvv262

����������.V"+9=R{
##+YYmdR)V%
#4YYeRVvkjVS'vRrvv6rR)V=e=(VSefWu>e#e=N/R{
������������������������������������������##+YYmr"6ZJVi64d{+YYmvv6rVv6
d%!qh)Vi642[*+YYmvvv62{Q)Vi6'42[*+YYMvvVr2{"V"+9=R{
���������������������������������������������������42[*+YYmvvvV6{++9=R{
##+YYmdR)V%
�������������������42[*+YYmvvv262kQ)Vi6
#4YYeRVvkjVS'vRrvv6rR)V=e=(VSefWu>e#e=N/R{
������������������������������������������##+YYmr"6ZJVi64d{+YYmvv6rVv6
c!qh)Vi642[*+YYmvvv62["V"+9=R{
������������������������������'42[*+YYmvvVr2kQ)Vi642[*+YYmvvvV6k>++9='i642[*+YYmvvv26[++9=R{
##+YYmdR)V>%
#4YYeRVvkjVS'vRrvv6rR)V=e=(VSefWu>e#e=N/R{
������������������������������������������##+YYmr"6ZJVi64d{+YYmvv6rVv6
f22<+9=R{
���������42[*+YYmvvv62K++9=R{
�����������������������������'42[*+YYmvvVrvF++9=R{
��������������������������������������������������42[*+YYmvvvV6k6V"+9='i642[*+YYmvvv26+++9=R{
##+YYmdR)V>%
#4YYeRVvkjVS'vRrvv6rR)V=e=(VSefWu>e#e=N/R{
##+YYmdR)=V�+YYmvvv62KQ)Vi6'42[*+YYmvvV>�cI%Q)Vi642[*+YYmvvvV6k6V"+9='i642[*+YYmvvv26KQ)Vi6
������������4YYeRVvkjVS'vRrvv6rR)V=e=(VSefWu>e#e=N/R{

�##+YYmr"6ZJVi64d{+YYmvv�>w4dvVVR6<+9=R{

����������������������������������������42[*+YYmvvv62K++9=R{
��������������������'42[*+YYmvvVr2{6V"+9=R{
�������������������������������������������42[*+YYmvvvV6k*++9=R{

������������42[*�*Y26["V"+9=R{
##+YYmdR)V>%
#4YYeRVvkjVS'vRrvv6rR)V=e=(VSefWu>e#e=N/R{
������������������������������������������##+YYmr"6ZJVi64d{+YYmvv6rVv6{>��!h)Vi642[*+YYmvvv62kV"+9=R{
���������'42[*+YYmvvVr2
�����������������������V"+9='i642[*+YYmvvvV6k&++9=R{##+YYmdR)V%
42[*+YYMvvv2���     Q%Vi6
#4YYeRVvkjVS'vRrvv6rR)V=e=(VefWu>e#e=N/R{
�����������������������������������������##+YYmr"6ZJVi64d{+YYmvv6rVv6{>2{VRh)Vi642[*+YYmvvvV2kQ)Vi6'42[*+YYmvvVr2
���������������������*++9=R{
##+YYMdR)V%�����������������42[*+YYmvvvV6k:V"+9='i642[*+YYmvvv262{���Ni6
#4YYeRVvkjVS'vRrvv6rR)V=e=(VSefWu>e#e=N/R{
������������������������������������������##+YYmr"6ZJVi64d{+YYmvv6rVv��Y%!qh)Vi642[*+YYmvvvV2K++9=R{
��������'42[*+YYmvvVr2
����������������������V"+9=R{
�����������������������������42[*+YYmvvvV6{++9='i642[*+YY��I62k++9=R{
##+YYmdR)V>%
#4YYeRVvkjVS'Rrvv6rR)V=e=(VSefWu>e#e=N/R{
�����������������������������������������##+YYmr"6ZJVi64d{+YYmvv6rVv6{>f$c6<+9=R{
++9=R{
�����������������������������42�ee�/#
������'42[*+YYmvvVr2kQ)Vi642[*+YYmvvvV6k.V"+9='i642[*+YYmvvv2V2

�����������.V"+9=R{
##+YYmdR)V>%
#4YYeRVvkjVS'vRrvv6rR)V=e=(VSefWu>e#e=N/R{
������������������������������������������##+YYmr"6ZJV'i,F46Y*/v6{>2V66<+9=R{

�������������������������42[*+YYmvvvv6


I had to copy the text from the clipboard of a smartphone. For this reason some details have been lost. You can see a pattern, but not a plain text.

I will get another reader and make further attempts.

immi

Are you sure that picocom is set to 9600,7,E,1?
If yes and you do not get a plain text, than you have to try other settings/speed of the serial interface, untill you get the expected telegram from the meeter.
immi

FunkOdyssey

Oh, I forgot to mention that I had really tried all baud rates and other settings.
Anyway, I've given up and try it with another reader.

pejonp

Hallo,
Mal baud 300 versuchen, bei meinem muss ich damit anfangen und kann dann per Sequenz auf 19200 umschalten.  Vielleicht hilft es ja.
Pejonp
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

Udo1

Zitat von: FunkOdyssey am 28 September 2016, 13:19:53

Ich habe mir von Co.met (mySmartShop) folgenden Leser geholt:
http://www.mysmartshop.de/co-met-infrarot-schnittstelle-easycom.html


Das ist ein IR-Leser mit einer RS232-Schnittstelle: https://de.wikipedia.org/wiki/RS-232#/media/File:Rs232_oscilloscope_trace.svg
RS232 arbeitet mit + - Signal-Pegeln, TTL nur mit + Signalpegel.
Den versuchst du an einen TTL auf USB Wandler anzuschließen:

Zitat von: FunkOdyssey am 28 September 2016, 13:19:53
Diesen habe ich erst einmal mit diesen USB-RS232-TTL-Converter angeschlossen und auch über die UART-PINs des Raspberry Pi2 B. Demnach habe ich entweder /dev/ttyUSB0 oder /dev/ttyAMA0.

Das kann nicht funktionieren.


Leider wird der Begriff RS232 immer wieder auf Ebay, vor allem von unseren chinesischen Freunden, fälschlich für einfache TTL-Signale benutzt.

Gruß
Udo

FunkOdyssey

#157
Hey super. Vielen Dank, Udo, für die Richtigstellung.
Ich habe den Tastkopf nun leider schon retourniert. Ärgerlich für den Shop. Und ich habe fast zwei Wochen nach dem Fehler gesucht und hatte einfach nur den falschen Adapter. Wobei ich es sogar noch mit einem ganz anderen Modell ausprobiert hatte: https://de.aliexpress.com/item/Free-Shipping-FT232RL-FT232-USB-TO-TTL-5V-3-3V-Download-Cable-To-Serial-Adapter-Module/1927444755.html?spm=2114.13010608.0.0.EdLRFB

Jedoch war ein richtig netter Udo aus nem anderen Forum (scheinbar auch dein Spezialgebiet ;) ) so nett und sorgt dafür, dass ich morgen schon einen neuen IR Lesekopf haben werde.  :)


Frage am Rande: Hätte es über die Serial-UART-GPIO Pinseln des Raspberry nicht funktionieren müssen? Oder verwechsel ich hier wieder etwas?



Udo1

Zitat von: FunkOdyssey am 07 Oktober 2016, 19:53:29
Frage am Rande: Hätte es über die Serial-UART-GPIO Pinseln des Raspberry nicht funktionieren müssen?

Nein, weil der Lesekopf eine RS232-Schnittstelle hatte, keine TTL-Schnittstelle.

Gruß
Udo

octek0815

Hallo,

ich bekomme beim Start von FHEM folgende Meldungen im Log:


2016.10.08 19:26:13 1 : PERL WARNING: substr outside of string at ./FHEM/47_OBIS.pm line 753.
2016.10.08 19:26:14 1 : PERL WARNING: Hexadecimal number > 0xffffffff non-portable at ./FHEM/47_OBIS.pm line 346.


Grüße
Olli

PS: Es funktioniert aber alles, die Werte kommen vom EasyMeter...


FunkOdyssey

#160
Ich gehöre nun auch zum Club.

Ich habe aber das gleiche Problem wie einige anderen hier.
Desöfteren stoppt die Übermittlung. Z.B. auch nach nem FHEM/Pi-Neustart.
Ich muss die DEF einmal modifizieren und dann klappt es.

Dazu gibt es noch kein Fix, der committed werden könnte, oder? ;-)


---

Nachtrag:
Mein Log wird auch komplett zugemüllt:

2016.10.09 00:58:10 1: PERL WARNING: ^* matches null string many times in regex; marked by <-- HERE in m/^* <-- HERE $/ at fhem.pl line 4131, <GEN14851> line 1.
2016.10.09 00:58:11 1: PERL WARNING: Use of uninitialized value $v2 in substitution (s///) at ./FHEM/47_OBIS.pm line 525, <GEN14851> line 1.


ChriChri

Hallo Zusammen,

das Modul funktioniert (fast vollständig) mit dem Apator 12EC3g Zähler mit IR-Schreib-/Lesekopf
von Weidmann Elektronik (USB).

Die serielle Schnittstelle erscheint bei mir im Linux-System unter /dev/ttyUSB0.

Serielle Schnittstelle auf 300bps 7bit Even 1-Stopbit einstellen - z.B. unter Linux durch Konfiguration
in minicom und Verlassen des Programms mit Strg-A Q (Verlassen ohne Beenden der Verbindung).

Die Konfiguration der seriellen kann mit 'stty -g -F <serielles Device>' ausgelesen und mit
'stty -F <serielles Device> <lange Zeichenkette mit Doppelpunkten>' wieder hergestellt werden.

Test hat bei mir funktioniert mit:

echo -n -e '\x2F\x3F\x21\x0D\x0A' > <serielles Device>; sleep 2; echo -n -e '\x06\x30\x30\x30\x0D\x0A' > <serielles Device>; sleep 0.5; cat <serielles Device>

Als Ausgabe habe ich folgendes erhalten:

0.0.0(90540888)
0.0.1(PAF)
F.F(00)
0.2.0(1.29)
1.8.0*00(001582.34)
2.8.0*00(000051.05)
C.2.1(1D070F282300)(                                                )
0.2.2(:::::G11)!


Verwertbarer wird das ganze nach Bestimmung der Länge mit

echo -n -e '\x2F\x3F\x21\x0D\x0A' > <serielles Device>; sleep 2; echo -n -e '\x06\x30\x30\x30\x0D\x0A' > <serielles Device>; sleep 0.5; cat <serielles Device>  | (read -N 184 T; echo $T | xxd)

0000000: 0230 2e30 2e30 2839 3035 3430 3838 3829  .0.0.0(90540888)
0000010: 0d20 302e 302e 3128 5041 4629 0d20 462e  . 0.0.1(PAF). F.
0000020: 4628 3030 290d 2030 2e32 2e30 2831 2e32  F(00). 0.2.0(1.2
0000030: 3929 0d20 312e 382e 302a 3030 2830 3031  9). 1.8.0*00(001
0000040: 3538 322e 3732 290d 2032 2e38 2e30 2a30  582.72). 2.8.0*0
0000050: 3028 3030 3030 3531 2e30 3529 0d20 432e  0(000051.05). C.
0000060: 322e 3128 3144 3037 3046 3238 3233 3030  2.1(1D070F282300
0000070: 2928 2029 0d20 302e 322e 3228 3a3a 3a3a  )( ). 0.2.2(::::
0000080: 3a47 3131 2921 0d20 030a                 :G11)!. ..

In FHEM sieht die Definition bei mir so aus:

define 12EC3g OBIS /dev/vtty0@300,7,E,1 VSM102
attr 12EC3g icon measure_power_meter
attr 12EC3g interval 60

Eine Ausgabe habe ich als Screenshot angehängt.

Wie zu sehen ist, ergeben die Felder total_consumption und total_feed eine sinnvolle Ausgabe. Die restlichen Felder scheinen etwas durcheinander gekommen zu sein.

In meiner Konfiguration hängt der USB-IR-Schreib-/Lesekopf an einem RaspberryPi, da mein FHEM nicht neben dem Zähler steht.

Auf dem RPI habe ich ser2net installiert, das den seriellen Port /dev/ttyUSB0 vom IR-Schreib/-Lesekopf via tcp im Netzwerk verfügbar macht.

Im FHEM läuft das Kommando 'socat TCP4:192.168.2.4:2000 pty,link=/dev/vtty0,raw,echo=0,user=fhem', das den seriellen Port als /dev/vtty0 verfügbar macht - Besitzer ist der Benutzer fhem, unter dem bei mir fhem.pl läuft.

Vielleicht ist die Information ja für weitere Benutzer hilfreich.

Natürlich würde ich mich freuen, wenn die hex-Daten von oben dabei helfen, die Felder für die FHEM-readings besser für diesen Zähler zuzuordnen.


Mit freundlichen Grüßen
Chris

FunkOdyssey

Irgendwie ist da etwas merkwürdig.
Als ich mit OBIS vor kurzem angefangen bin, hatte ich auf Anhieb eine CPU-Auslastung von 10% bei einer 2-Sekunden-Übertragung des Stromzählers.
Daraufhin hatte ich pollingMode=on und Intervall auf 5 Sek. gesetzt. Daraufhin sank die CPU-Auslastung auf ungefähr 5%.
Irgendwann am Tag (im Zuge der Rumspielerei in FHEM) stieg die Auslastung wieder auf 10%. Ich denke, dass war, als ich Intervall auf 60 Sekunden gesetzt hatte.

Versuche ich das aber nun zu reproduzieren (also Intervall temporär auf 5s), so sinkt die Auslastung nicht mehr.

Ehrlich gesagt sehe ich plötzlich keinen Unterschied mehr zwischen ein- oder ausgeschaltetem pollingMode.

Hat jemand eine Idee woran das liegen könnte?


Pappa B

Hallo zusammen,
mittlerweile versuche ich auch mit dem OBIS-Modul meinen Zähler von Hager (EHZ361) mittels IR-Lesekopf ( von den Volkszählern) auszulesen.
Die Schnittstelle habe ich unter /dev/ttyUSB0 auch gefunden.
Definiere ich nun den Lesekopf mit:
define myObis OBIS /dev/ttyUSB0@9600,7,N,1 SML
wird mir als Status "opend" angezeigt.
im Logfile wird aber angezeigt, das sekundlich die Schnittstelle connected und dann wieder disconnected wird.
Habe auch schon die ganzen Parameter der Baudrate durch gehechelt, aber ohne erfolg >:(
Habt ihr vielleicht eine Idee woran das liegen kann??

Gruß

PappaB


fhem auf Rasp 2B; FS20, 1-Wire

KölnSolar

#164
Hab ja auch einen Hager ehz. Der macht aber kein SML, sondern OBIS-Klartext. Bist Du Dir mit SML sicher ? Schnittstellenparameter sollten stimmen. Ansonsten würd ich das Verhalten auf den Volkszähler schieben  :( Mit einem gekauften Lesekopf und Anschluss an einen USB-RS232 Konverter hab ich keinerlei Probleme. Der Einfachheit halber hatte ich damals mit HTERM und dem Windows-PC getestet, bis dann endlich die Klartext-Daten sichtbar waren.
Grüße Markus
Edit: schnell noch mal auf mein device geguckt und siehe da, doch andere Paramter nämlich mit Parity Even, also 9600,7,E,1
Edit2: @FunkOdyssey: Das Gefühl hab ich auch. Seit der SML-Integration, holpert das Modul an verschiedenen Stellen  :-\
RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt