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

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

Vorheriges Thema - Nächstes Thema

maximalz

Hallo, ich habe gerade von SMLUSB auf OBIS umgestellt, war ein Kinderspiel, danke für die gute Arbeit.

Die Werte sehen korrekt aus, ich bekomme allerdings im Log immer folgende Zeilen beim Start des Servers:

2017.02.13 14:10:45 0: Featurelevel: 5.7
2017.02.13 14:10:45 0: Server started with 39 defined entities (fhem.pl:13400/2017-02-12 perl:5.020002 os:linux user:fhem pid:2395)
2017.02.13 14:10:47 1: PERL WARNING: substr outside of string at ./FHEM/47_OBIS.pm line 777.
2017.02.13 14:11:50 1: PERL WARNING: Use of uninitialized value $dataT in numeric eq (==) at ./FHEM/47_OBIS.pm line 334.
2017.02.13 14:11:50 1: PERL WARNING: Use of uninitialized value $data in substitution (s///) at ./FHEM/47_OBIS.pm line 342.
2017.02.13 14:11:50 1: PERL WARNING: Use of uninitialized value $data in string at ./FHEM/47_OBIS.pm line 343.
2017.02.13 14:11:50 1: PERL WARNING: Use of uninitialized value $msg in pattern match (m//) at ./FHEM/47_OBIS.pm line 313.


und währed des Betriebs bekomme ich regelmäßig:


2017.02.13 14:10:45 3: WARNING: unsupported character in reading Zählerstand-Bezug-Total (not A-Za-z/\d_\.-), notify the OBIS module maintainer.
2017.02.13 14:10:45 3: WARNING: unsupported character in reading Zählerstand-Tarif-1-Bezug (not A-Za-z/\d_\.-), notify the OBIS module maintainer.
2017.02.13 14:10:45 3: WARNING: unsupported character in reading Zählerstand-Bezug-Total (not A-Za-z/\d_\.-), notify the OBIS module maintainer.
2017.02.13 14:10:45 3: WARNING: unsupported character in reading Zählerstand-Tarif-1-Bezug (not A-Za-z/\d_\.-), notify the OBIS module maintainer.


Was könnte da noch falsch sein? Meine Zähler sind definiert als
define Zaehler OBIS /dev/lesekopf1@9600 SML
Das Device ist via udev-Regel auf /dev/ttyUSB0 gemappt.
THZ (403 SOL), OBIS (2x EDL21), SolarEdge (SE10k)

no_Legend

Zitat von: maximalz am 13 Februar 2017, 14:31:41
Hallo, ich habe gerade von SMLUSB auf OBIS umgestellt, war ein Kinderspiel, danke für die gute Arbeit.

Die Werte sehen korrekt aus, ich bekomme allerdings im Log immer folgende Zeilen beim Start des Servers:

2017.02.13 14:10:45 0: Featurelevel: 5.7
2017.02.13 14:10:45 0: Server started with 39 defined entities (fhem.pl:13400/2017-02-12 perl:5.020002 os:linux user:fhem pid:2395)
2017.02.13 14:10:47 1: PERL WARNING: substr outside of string at ./FHEM/47_OBIS.pm line 777.
2017.02.13 14:11:50 1: PERL WARNING: Use of uninitialized value $dataT in numeric eq (==) at ./FHEM/47_OBIS.pm line 334.
2017.02.13 14:11:50 1: PERL WARNING: Use of uninitialized value $data in substitution (s///) at ./FHEM/47_OBIS.pm line 342.
2017.02.13 14:11:50 1: PERL WARNING: Use of uninitialized value $data in string at ./FHEM/47_OBIS.pm line 343.
2017.02.13 14:11:50 1: PERL WARNING: Use of uninitialized value $msg in pattern match (m//) at ./FHEM/47_OBIS.pm line 313.


und währed des Betriebs bekomme ich regelmäßig:


2017.02.13 14:10:45 3: WARNING: unsupported character in reading Zählerstand-Bezug-Total (not A-Za-z/\d_\.-), notify the OBIS module maintainer.
2017.02.13 14:10:45 3: WARNING: unsupported character in reading Zählerstand-Tarif-1-Bezug (not A-Za-z/\d_\.-), notify the OBIS module maintainer.
2017.02.13 14:10:45 3: WARNING: unsupported character in reading Zählerstand-Bezug-Total (not A-Za-z/\d_\.-), notify the OBIS module maintainer.
2017.02.13 14:10:45 3: WARNING: unsupported character in reading Zählerstand-Tarif-1-Bezug (not A-Za-z/\d_\.-), notify the OBIS module maintainer.


Was könnte da noch falsch sein? Meine Zähler sind definiert als
define Zaehler OBIS /dev/lesekopf1@9600 SML
Das Device ist via udev-Regel auf /dev/ttyUSB0 gemappt.

Musst du nicht noch angeben, wie die Daten ankommen?
/dev/ttyPlugwise@@9600,7,E,1
https://fhem.de/commandref_DE.html#OBIS
IntelNUC mit Ubuntu mit FHEM immer aktuell,2x HMLAN, CUL443, CUL868 -homekit/siri -tablet ui -homebridge
Device, diverse:
HM-SEC-KEY,HM-LC-BL1-FM,HM-SEC-SD,HM-Sen-DB-PCB,HM-Sec-RHS,HM-Sec-SC-2,HM-WDS10-TH-O,Harmony,Netamo, 433MHz Steckdosen uvm.

Icinger

Zitat
2017.02.13 14:10:45 3: WARNING: unsupported character in reading Zählerstand-Tarif-1-Bezug (not A-Za-z/\d_\.-), notify the OBIS module maintainer.

Umlaute in Readings-Namen sind seit 5.7 nicht mehr erlaubt.
Also einfach dein Channels-Attribut ändern, und die Sache ist gegessen.
Evtl. musst du noch die alten Readings löschen.

lg, Stefan
Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho

no_Legend

Zitat von: Icinger am 13 Februar 2017, 15:09:49
Umlaute in Readings-Namen sind seit 5.7 nicht mehr erlaubt.
Also einfach dein Channels-Attribut ändern, und die Sache ist gegessen.
Evtl. musst du noch die alten Readings löschen.

lg, Stefan

@Icinger

Stefan in der Commandref auf https://fhem.de/commandref_DE.html#OBIS steht immer noch mit "@@" das Define.

Gruß Robert
IntelNUC mit Ubuntu mit FHEM immer aktuell,2x HMLAN, CUL443, CUL868 -homekit/siri -tablet ui -homebridge
Device, diverse:
HM-SEC-KEY,HM-LC-BL1-FM,HM-SEC-SD,HM-Sen-DB-PCB,HM-Sec-RHS,HM-Sec-SC-2,HM-WDS10-TH-O,Harmony,Netamo, 433MHz Steckdosen uvm.

Icinger

Hi Robert,

Danke für den Hinweis, nehm hier hier gleich raus und beim nächsten Update kommt das dann mit.

lg, Stefan
Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho

maximalz

THZ (403 SOL), OBIS (2x EDL21), SolarEdge (SE10k)

tatu123

Hallo Zusammen,

ich versuch seit einigen Tagen OBIS und optische Lesekopf mit meinen neuen Stromzähler ISKAR MT174 zum laufen zu bringen. Leider gelingt mir das nicht vollständig.
Der Zähler muss mit "/?!CR-LR" gepollt werden. Daher habe ich mich nach einigen Versuchen für die Varianten "/dev/ttyUSB1@300,7,E,1 VSM102"
entschieden. Da bekomme ich zumindest einige Readings:

1.0.0.0.0.255      67-81-11-43
1.0.0.0.1.255      1ISK00
1.0.0.0.2      4M012531
1.0.0.1.0.255      3
1.0.0.1.2.01      1702010000
1.0.0.1.2.02      1701230856
1.0.0.1.2.03      1701230856
1.0.0.9.1.255      124136
1.0.0.9.2.255      170214
Version         ISk5MT174-0001
state         opened
total_consumption   0
total_consumption_Ch1   0
total_consumption_Ch2   0
total_consumption_Ch3   0

Aber Leider bleibt "total_consumption" immer bei "0". Wenn man der Datenauslese eine weile zusieht erscheint ab und an mel ein Wert und wird binnen ca. 0s wieder "0".

Hat einer eine Idee was ich ändern muss ?

Ich hänge mal die vollständige Ausgabe des Zählers als Dump im raw-Foremat an. Vieleicht hilfs ja was.

tatu123

Icinger

Zitat1-0:1.8.0*255(0000344.481*kWh)
1-0:1.8.0*01(0000129.574*kWh)
1-0:1.8.0*02(0000000.001*kWh)
1-0:1.8.0*03(0000000.000*kWh)
1-0:1.8.1*255(0000219.574*kWh)
1-0:1.8.1*01(0000085.841*kWh)
1-0:1.8.1*02(0000000.001*kWh)
1-0:1.8.1*03(0000000.000*kWh)
1-0:1.8.2*255(0000124.908*kWh)
1-0:1.8.2*01(0000043.733*kWh)
1-0:1.8.2*02(0000000.000*kWh)
1-0:1.8.2*03(0000000.000*kWh)

Hmm, das ist der erste Zähler, der scheinbar meherer Subchannels hat (1.8.1, 1.8.2, 1.8.3 usw)
Kurzfristig solltest du das mittels des Channels-Attributes lösen können.

zB
{"1-0:1.8.0*01"=>"consumption_1","1-0:1.8.1*01"=>"consumption_2","1-0:1.8.3*01"=>"consumption_3"}
usw....

Kanns mir gern demnächst mal genauer ansehen, komme momentan nur nicht dazu.
Grad bisschen Stress daheim (gestern abend wurde die Seitenscheibe vom Auto meiner Frau eingeschlagen).

lg, Stefan
Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho

vuffiraa

Hallo,

tolles Modul! Ich habe gestern mal schnell meinen AS1440 per Lesekopf von Udo und diesem Modul hier in Fhem eingebunden  :) Beim Typ habe ich mich für VSM102 entschieden, da dieser Trigger-Code (/?!\r\n) gesendet werden muss. Gibt es eigentlich  zwischen den Typen VSM102, E110 und E350USB einen Unterschied in der Kommunikation?

Der AS1440 sendet über 5 Minuten lang Daten per 300 bd, daher reihe ich mich mal in die Schlage derer ein, die die Baudrate nach dem Trigger-Code erhöhen wollen.

Ansonsten habe ich ähnlich wie tatu123 festgestellt, dass einige Readings auf '0' stehen und nur kurzzeitig mal einen Wert haben. Im Log sieht das so aus:
2017.02.14 19:56:44 5: OBIS (as1440) - Msg-Parse: 1.8.0(0000024.4*kWh)
2017.02.14 19:56:44 5: Msg 1.8.0(0000024.4*kWh) is of type Counter
2017.02.14 19:56:45 5: OBIS (as1440) - Msg-Parse: 1.8.0*00(0000000.0*kWh)
2017.02.14 19:56:45 5: Msg 1.8.0*00(0000000.0*kWh) is of type Counter
2017.02.14 19:56:46 5: OBIS (as1440) - Msg-Parse: 1.8.0*99(0000000.0*kWh)
2017.02.14 19:56:46 5: Msg 1.8.0*99(0000000.0*kWh) is of type Counter
2017.02.14 19:56:47 5: OBIS (as1440) - Msg-Parse: 1.8.0*98(0000000.0*kWh)
2017.02.14 19:56:47 5: Msg 1.8.0*98(0000000.0*kWh) is of type Counter
2017.02.14 19:56:48 5: OBIS (as1440) - Msg-Parse: 1.8.0*97(0000000.0*kWh)
2017.02.14 19:56:48 5: Msg 1.8.0*97(0000000.0*kWh) is of type Counter
2017.02.14 19:56:49 5: OBIS (as1440) - Msg-Parse: 1.8.0*96(0000000.0*kWh)
2017.02.14 19:56:49 5: Msg 1.8.0*96(0000000.0*kWh) is of type Counter
2017.02.14 19:56:50 5: OBIS (as1440) - Msg-Parse: 1.8.0*95(0000000.0*kWh)
2017.02.14 19:56:50 5: Msg 1.8.0*95(0000000.0*kWh) is of type Counter
2017.02.14 19:56:51 5: OBIS (as1440) - Msg-Parse: 1.8.0*94(0000000.0*kWh)
2017.02.14 19:56:51 5: Msg 1.8.0*94(0000000.0*kWh) is of type Counter
2017.02.14 19:56:52 5: OBIS (as1440) - Msg-Parse: 1.8.0*93(0000000.0*kWh)
2017.02.14 19:56:52 5: Msg 1.8.0*93(0000000.0*kWh) is of type Counter
2017.02.14 19:56:53 5: OBIS (as1440) - Msg-Parse: 1.8.0*92(0000000.0*kWh)
2017.02.14 19:56:53 5: Msg 1.8.0*92(0000000.0*kWh) is of type Counter
2017.02.14 19:56:54 5: OBIS (as1440) - Msg-Parse: 1.8.0*91(0000000.0*kWh)
2017.02.14 19:56:54 5: Msg 1.8.0*91(0000000.0*kWh) is of type Counter
2017.02.14 19:56:55 5: OBIS (as1440) - Msg-Parse: 1.8.0*90(0000000.0*kWh)
2017.02.14 19:56:55 5: Msg 1.8.0*90(0000000.0*kWh) is of type Counter
2017.02.14 19:56:55 5: OBIS (as1440) - Msg-Parse: 1.8.0*89(0000000.0*kWh)
2017.02.14 19:56:55 5: Msg 1.8.0*89(0000000.0*kWh) is of type Counter
2017.02.14 19:56:56 5: OBIS (as1440) - Msg-Parse: 1.8.0*88(0000000.0*kWh)
2017.02.14 19:56:56 5: Msg 1.8.0*88(0000000.0*kWh) is of type Counter
2017.02.14 19:56:57 5: OBIS (as1440) - Msg-Parse: 1.8.0*87(0000000.0*kWh)
2017.02.14 19:56:57 5: Msg 1.8.0*87(0000000.0*kWh) is of type Counter
2017.02.14 19:56:58 5: OBIS (as1440) - Msg-Parse: 1.8.0*86(0000000.0*kWh)
2017.02.14 19:56:58 5: Msg 1.8.0*86(0000000.0*kWh) is of type Counter
2017.02.14 19:56:59 5: OBIS (as1440) - Msg-Parse: 1.8.1(0000024.4*kWh)
2017.02.14 19:56:59 5: Msg 1.8.1(0000024.4*kWh) is of type Counter
2017.02.14 19:57:00 5: OBIS (as1440) - Msg-Parse: 1.8.1*00(0000000.0*kWh)
2017.02.14 19:57:00 5: Msg 1.8.1*00(0000000.0*kWh) is of type Counter
2017.02.14 19:57:01 5: OBIS (as1440) - Msg-Parse: 1.8.1*99(0000000.0*kWh)
2017.02.14 19:57:01 5: Msg 1.8.1*99(0000000.0*kWh) is of type Counter
2017.02.14 19:57:02 5: OBIS (as1440) - Msg-Parse: 1.8.1*98(0000000.0*kWh)
2017.02.14 19:57:02 5: Msg 1.8.1*98(0000000.0*kWh) is of type Counter
2017.02.14 19:57:03 5: OBIS (as1440) - Msg-Parse: 1.8.1*97(0000000.0*kWh)
2017.02.14 19:57:03 5: Msg 1.8.1*97(0000000.0*kWh) is of type Counter
2017.02.14 19:57:04 5: OBIS (as1440) - Msg-Parse: 1.8.1*96(0000000.0*kWh)
2017.02.14 19:57:04 5: Msg 1.8.1*96(0000000.0*kWh) is of type Counter
2017.02.14 19:57:05 5: OBIS (as1440) - Msg-Parse: 1.8.1*95(0000000.0*kWh)
2017.02.14 19:57:05 5: Msg 1.8.1*95(0000000.0*kWh) is of type Counter
2017.02.14 19:57:06 5: OBIS (as1440) - Msg-Parse: 1.8.1*94(0000000.0*kWh)
2017.02.14 19:57:06 5: Msg 1.8.1*94(0000000.0*kWh) is of type Counter
2017.02.14 19:57:06 5: OBIS (as1440) - Msg-Parse: 1.8.1*93(0000000.0*kWh)
2017.02.14 19:57:06 5: Msg 1.8.1*93(0000000.0*kWh) is of type Counter
2017.02.14 19:57:07 5: OBIS (as1440) - Msg-Parse: 1.8.1*92(0000000.0*kWh)
2017.02.14 19:57:07 5: Msg 1.8.1*92(0000000.0*kWh) is of type Counter
2017.02.14 19:57:08 5: OBIS (as1440) - Msg-Parse: 1.8.1*91(0000000.0*kWh)
2017.02.14 19:57:08 5: Msg 1.8.1*91(0000000.0*kWh) is of type Counter
2017.02.14 19:57:09 5: OBIS (as1440) - Msg-Parse: 1.8.1*90(0000000.0*kWh)
2017.02.14 19:57:09 5: Msg 1.8.1*90(0000000.0*kWh) is of type Counter
2017.02.14 19:57:10 5: OBIS (as1440) - Msg-Parse: 1.8.1*89(0000000.0*kWh)
2017.02.14 19:57:10 5: Msg 1.8.1*89(0000000.0*kWh) is of type Counter
2017.02.14 19:57:11 5: OBIS (as1440) - Msg-Parse: 1.8.1*88(0000000.0*kWh)
2017.02.14 19:57:11 5: Msg 1.8.1*88(0000000.0*kWh) is of type Counter
2017.02.14 19:57:12 5: OBIS (as1440) - Msg-Parse: 1.8.1*87(0000000.0*kWh)
2017.02.14 19:57:12 5: Msg 1.8.1*87(0000000.0*kWh) is of type Counter
2017.02.14 19:57:13 5: OBIS (as1440) - Msg-Parse: 1.8.1*86(0000000.0*kWh)
2017.02.14 19:57:13 5: Msg 1.8.1*86(0000000.0*kWh) is of type Counter


Es sieht für mich so aus, als ob der Code 1.8.0 gleich wieder von 1.8.0*00 überschrieben wird. Dieses Muster sehe ich auch bei allen ähnlichen Codes, die der Zähler so liefert. Mit dem Channel-Attribute könnte man das wahrscheinlich erst mal "hinbiegen" oder?

Gruß Vuffiraa
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean

tatu123

Danke für die schnelle Antwort. Mit dem Channel-attr komme ich erst mal hin. Aber währ schon schön wenn der Zähler "richtig" Unterstützt werden würde. Aber natürlich löse erst mal deine priv Probleme. geht natürlich vor.

Ich hab mal meine Sammlung der Channel zusammengestellt:

0.1.2.1        Speicherdatum Vorwert 1
0.1.2.1        Speicherzeitpunkt Vorwert 1
0.1.2.2        Speicherdatum Vorwert 2
0.1.2.2        Speicherzeitpunkt Vorwert 2
bis zu 9 bzw. 15 Zeitpunkte abrufbar

0.2.0           Softwareversion
0.2.2           Tarifprogramm


1.8.0                aktueller Zählerstand Bezug untarifiert
1.8.0.1         Zählerstand zu Beginn des Monats
1.8.0.2              Zählerstand zu Beginn des Vormonats
bis zu 9 bzw. 15 Vorwerte abrufbar

1.8.1                aktueller Zählerstand im Tarif 1 (Hochtarif)
1.8.1.1              Zählerstand zu Beginn des Monats
1.8.1.2              Zählerstand zu Beginn des Vormonats
bis zu 9 bzw. 15 Vorwerte abrufbar

Es folgen in gleicher Weise 1.8.2.x und – sofern vorhanden – 1.8.3.x
sowie 1.8.4.x für die Tarife T2, T3, T4.

1.7.0                aktuelle Leistung

0.9.1           Uhrzeit hh:mm:ss
0.9.2           Datum dd.mm.jj

31.7.0          Strom in L1
51.7.0          Strom in L2
71.7.0          Strom in L3

F.F.0                Fehlerregister (F.F.0 0000000 ist fehlerfrei; ggf. ausgeblendet)

Der Zähler kann auch mit 9600 übertragen. Die Umschaltung erfolgt so:

/?!<0D><0A>

Der Zähler antwortet z.B. mit

/ISk5MT174-0001

Die Baudrate läßt sich auch auf 9600 Baud umstellen wenn man innerhalb von 2s nachdem der Zähler seine Identifikation geschickt hat, ein Acknowledge Paket (ACK050CRLF) schickt.

<06>050<0D><0A>

Worauf der Zähler beginnt seine Daten mit 9600 Baud auszugeben.

Grüße
tatu123

Icinger

Hi Leute,

das mit den gleichen Channels werde ich demnächst nachreichen, bitte zwischenzeitlich wie schon angemerkt mit dem Channels-Attribut arbeiten.

@tatu123:
Das mit dem Umschalten hab ich eh am Schirm, nur wars bislang noch nicht wirklich so notwendig :)

Du kannst deinen Zähler auch zB auf 38400 setzen mittels

<06>080<0D><0A>

Das ist halt immer nur temporär, solange die Schnittstelle geöffnet ist :)

lg, Stefan
Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho

maximalz

Hallo vuffira, ich habe auch 2 Leseköpfe von Udo und bei mir liefert

define Zaehler OBIS /dev/lesekopf1@9600,8,N,1 SML

jede Sekunde alle relevanten Messwerte.

Ich uabe eher das Problem, dass eas 86400 Werte am Tag sind und ich beide Zähler ih einem Plot darstelle, was dann zum Aufbau der Seite ca. 5 min. benötigt.
Weiß jemand, wie ich fürvdas Plot z.b. 10 Messwerte zu einem aggregieren kann?
THZ (403 SOL), OBIS (2x EDL21), SolarEdge (SE10k)

Icinger

Dafür gibts

Zitatevent-aggregator
The primary uses of this attribute are to calculate (time-weighted) averages of readings over time periods and to throttle the update rate of readings and thus the amount of data written to the logs.

lg, Stefan
Verwende deine Zeit nicht mit Erklärungen. Die Menschen hören (lesen) nur, was sie hören (lesen) wollen. (c) Paulo Coelho

maximalz

Danke für den Tipp, ich habe das mal konfiguriert

Zitat von: Icinger am 19 Februar 2017, 09:11:10
Dafür gibts

lg, Stefan

und würde jetet erwarten, dass der aktuelle Verbrauch alle 5 Minuten geloggt wird, der Zählerstand jede Stunde und Rest einmal am Tag.

attr ZaehlerWP event-aggregator \
  0.118.7.0.37.255:86400:none:v0, \
  1.0.0.0.9.255:86400:const:v0, \
  129.129.199.130.3.255:86400:const:v0, \
  129.129.199.130.5.255:86400:const:v0, \
  dir_total_consumption:86400:const:v0, \
  power:30:linear:mean, \
  state:86400:none:v0, \
  total_consumption:3600:const:v, \
  total_consumption_Ch1:3600:const:v, \
  total_consumption_Ch2:3600:const:v, \
  Version:86400:none:v0


Allerdings werden alle Werte ca. alle 5 Sekunden geloggt. Was habe ich hier nicht verstanden?

Gruß
Frank
THZ (403 SOL), OBIS (2x EDL21), SolarEdge (SE10k)

vuffiraa

Zitat von: maximalz am 19 Februar 2017, 08:54:04
Hallo vuffira, ich habe auch 2 Leseköpfe von Udo und bei mir liefert

define Zaehler OBIS /dev/lesekopf1@9600,8,N,1 SML

jede Sekunde alle relevanten Messwerte.

Hallo Frank,

Du hast wahrscheinlich andere Zähler, ich habe einen Elster AS1440. Die Zähler unterscheiden sich bei Baudrate und Sendefrequenz.

Zu deinem Problem mit den vielen Werten, schau die mal das Attribute event-on-change-reading an https://wiki.fhem.de/wiki/Event-on-change-reading.

Gruß Vuffiraa
FHEM 5.8 auf Cubietruck, Raspi B+

Weinzierl KNX IP BAOS 770, Homematic, EnOcean