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

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

Vorheriges Thema - Nächstes Thema

karpate

Hallo zusammen,
ich möchte mich an dieser Stelle für das Modul bedanken. Ich konnte erfolgreich meinen Stromzähler Itron OpenWay 3.HZ über die D0-Schnittstelle mit einem IR Schreib/Lesekopf USB (Optokopf) auslesen.
define ITR_Stromzaehler OBIS /dev/ttyUSB0@9600,8,N,1 SML

Im Anschluß wurden folgende Readings angelegt und im Sekundentakt abgefragt.
   READINGS:
     2021-08-26 10:33:03   ManufID2        ITR
     2021-08-26 10:33:03   power           305
     2021-08-26 10:31:23   state           opened
     2021-08-26 10:33:03   total_consumption 10012546.9
     2021-08-26 10:33:03   total_feed      0


Nun zu meiner Frage: wenn ich am Zähler selber die Register mittels optischen Taster anschaue, zeigt der Zähler noch weitere Daten an. Werden diese nicht über die D0-Schnittstelle übermittelt?
Per Verbose 5 erhalte ich folgende Infos
2021.08.26 10:39:58 5: OBIS (ITR_Stromzaehler) - Msg-Parse: /
2021.08.26 10:39:58 5: OBIS (ITR_Stromzaehler) - Msg-Parse: 1-0:96.50.1*1(ITR)
2021.08.26 10:39:58 5: OBIS (ITR_Stromzaehler) - Msg 1-0:96.50.1*1(ITR) is of type ManufID2
2021.08.26 10:39:58 5: OBIS (ITR_Stromzaehler) - Msg-Parse: 1-0:96.1.0*255(
ITRI@)
2021.08.26 10:39:58 5: OBIS (ITR_Stromzaehler) - Msg-Parse: 1-0:1.8.0*255(10012583.1*Wh)
2021.08.26 10:39:58 5: OBIS (ITR_Stromzaehler) - Msg 1-0:1.8.0*255(10012583.1*Wh) is of type Counter
2021.08.26 10:39:58 4: OBIS (ITR_Stromzaehler) - Set total_consumption to 10012583.1
2021.08.26 10:39:58 5: OBIS (ITR_Stromzaehler) - Msg-Parse: 1-0:2.8.0*255(0*Wh)
2021.08.26 10:39:58 5: OBIS (ITR_Stromzaehler) - Msg 1-0:2.8.0*255(0*Wh) is of type Counter
2021.08.26 10:39:58 5: OBIS (ITR_Stromzaehler) - Msg-Parse: 1-0:16.7.0*255(346*W)
2021.08.26 10:39:58 5: OBIS (ITR_Stromzaehler) - Msg 1-0:16.7.0*255(346*W) is of type Channels
2021.08.26 10:39:58 5: OBIS (ITR_Stromzaehler) - Msg-Parse: !
2021.08.26 10:39:59 5: OBIS (ITR_Stromzaehler) - SML-Parse 1B1B1B1B0101010176094AAF10040175DE63620062007265000001017601010900000000048D4EC00B0A01495452000349F04072620165048D4F1F01639FAE0076094AAF10040175DE646200620072650000070177010B0A01495452000349F040070100620AFFFF72620165048D4F1F75770701006032010101010101044954520177070100600100FF010101010B0A01495452000349F0400177070100010800FF65001C050401621E52FF690000000005F7CC880177070100020800FF0101621E52FF6900000000000000000177070100100700FF0101621B5200550000015A010101636DD20076094AAF10040175DE65620062007265000002017101636D3F0000001B1B1B1B1A02186F
2021.08.26 10:39:59 5: OBIS (ITR_Stromzaehler) - Full message-> 1B1B1B1B0101010176094AAF10040175DE63620062007265000001017601010900000000048D4EC00B0A01495452000349F04072620165048D4F1F01639FAE0076094AAF10040175DE646200620072650000070177010B0A01495452000349F040070100620AFFFF72620165048D4F1F75770701006032010101010101044954520177070100600100FF010101010B0A01495452000349F0400177070100010800FF65001C050401621E52FF690000000005F7CC880177070100020800FF0101621E52FF6900000000000000000177070100100700FF0101621B5200550000015A010101636DD20076094AAF10040175DE65620062007265000002017101636D3F0000001B1B1B1B1A02186F
2021.08.26 10:39:59 4: OBIS (ITR_Stromzaehler) - MSG IS:
/
1-0:96.50.1*1(ITR)
1-0:96.1.0*255(
ITRI@)
1-0:1.8.0*255(10012583.2*Wh)
1-0:2.8.0*255(0*Wh)
1-0:16.7.0*255(346*W)
!


Danke und Gruß
Ingo
# Pi3 (BBB;FB7390)
# TCM310, CUL V4, HM-CFG-LAN,JeeLink,Tradfri,ESP32-Cam@MQTT: Wasseruhr

gvzdus

Moin, falls Du Statistikwerte meinst: Nein, i.d.R: nicht. Du siehst ja auch schon im Decode: Da kommt nicht mehr rüber.
Wenn die Zahlen Dir wichtig sind, guck' Dir mal den Thread an:

https://forum.fhem.de/index.php?topic=69097.0

karpate

Danke, dann passt das. Bei anderen Beispielen habe ich gesehen das z.B. die einzelnen Phasen geliefert werden
Das Modul ElectricityCalculator habe ich bereits im Einsatz für den Zähler.
# Pi3 (BBB;FB7390)
# TCM310, CUL V4, HM-CFG-LAN,JeeLink,Tradfri,ESP32-Cam@MQTT: Wasseruhr

vopatec

#1308
Hallo FHEM Gemeinde,
auch ich möchte mich für die geleistete Arbeit bedanken.
Meine Zähler vom Typ Holley DTZ541 in der Version BDBA lässt sich grundsätzlich ohne Probleme auslesen. Pin ist eingegeben.
Unter Windows habe ich zwar das Problem, dass der USB Port nicht angesprochen wird, unter Linux funktioniert dies jedoch. Daher anderes Thema.

Mein Problem ist das fehlende Vorzeichen in der Momentanleistung. Auch Eingespeiste Werte werden positiv angezeigt.
Nun habe ich kontakt mit Holley aufgenommen und herausbekommen, das die Stromrichtung im Statuswort des Zählerstands im bit 11 steckt. (Grüne Stelle, siehe auch Statuswort Bilder)

77
    070100010800FF
    65001C0104
    72
    6201
    6500111FD1
    621E
    52FF
    650009522E
    SML-Time: 13.01.1970 23:44:17
    +A Zaehlerstand 1.8.0: 000061,0862 kWh
    01

Ist diese Auswertung schon implementiert?
Wie bekomme ich negative Werte bei Einspeisung angezeigt?

Hier noch ein stück Log:
2021.09.01 15:20:19 5: OBIS (Zaehler_Hans) - Msg-Parse: /
2021.09.01 15:20:19 5: OBIS (Zaehler_Hans) - Msg-Parse: 1-0:96.50.1*1(HLY)
2021.09.01 15:20:19 5: OBIS (Zaehler_Hans) - Msg 1-0:96.50.1*1(HLY) is of type ManufID2
2021.09.01 15:20:19 5: OBIS (Zaehler_Hans) - Msg-Parse: 1-0:96.1.0*255(
HLY
-)
2021.09.01 15:20:19 5: OBIS (Zaehler_Hans) - Msg-Parse: 1-0:1.8.0*255(93005.7*Wh)
2021.09.01 15:20:19 5: OBIS (Zaehler_Hans) - Msg 1-0:1.8.0*255(93005.7*Wh) is of type Counter
2021.09.01 15:20:19 4: OBIS (Zaehler_Hans) - Set total_consumption to 93005.7
2021.09.01 15:20:19 5: OBIS (Zaehler_Hans) - Msg-Parse: 1-0:16.7.0*255(89*W)
2021.09.01 15:20:19 5: OBIS (Zaehler_Hans) - Msg 1-0:16.7.0*255(89*W) is of type Channels
2021.09.01 15:20:19 5: OBIS (Zaehler_Hans) - Msg-Parse: 255-255:255.255.255*255()
2021.09.01 15:20:19 5: OBIS (Zaehler_Hans) - Msg-Parse: !
2021.09.01 15:20:20 5: OBIS (Zaehler_Hans) - SML-Parse 1B1B1B1B0101010176040000016200620072650000010176010107000000152F220B0A01484C5902000D2D977262016500152F220163E3AE007604000002620062007265000007017707FFFFFFFFFFFF0B0A01484C5902000D2D97070100620AFFFF7262016500152F227477070100603201010101010104484C590177070100600100FF010101010B0A01484C5902000D2D970177070100010800FF65001D49047262016500152F22621E52FF65000E31090177070100100700FF0101621B5200525B0101016355BA00760400000362006200726500000201710163E82300001B1B1B1B1A014AE6
2021.09.01 15:20:20 5: OBIS (Zaehler_Hans) - Full message-> 1B1B1B1B0101010176040000016200620072650000010176010107000000152F220B0A01484C5902000D2D977262016500152F220163E3AE007604000002620062007265000007017707FFFFFFFFFFFF0B0A01484C5902000D2D97070100620AFFFF7262016500152F227477070100603201010101010104484C590177070100600100FF010101010B0A01484C5902000D2D970177070100010800FF65001D49047262016500152F22621E52FF65000E31090177070100100700FF0101621B5200525B0101016355BA00760400000362006200726500000201710163E82300001B1B1B1B1A014AE6
2021.09.01 15:20:20 4: OBIS (Zaehler_Hans) - MSG IS:
/
1-0:96.50.1*1(HLY)
1-0:96.1.0*255(
HLY
-)
1-0:1.8.0*255(93005.7*Wh)
1-0:16.7.0*255(91*W)
255-255:255.255.255*255()


Viele Grüße und schon mal Danke
Volker

gvzdus

#1309
Herzlichen Dank, wie gründlich Du das analysiert hast. Auch Holley hat da ja sehr fundiert geantwortet.

Zur Sache: Dieses Statuswort beim Zählerstand wird bisher weitgehend ignoriert. Im Code, den ich hoffentlich nicht verpfuscht habe, wird hier beim Wert 0xA2 beim Zählerstand ein "<" vorgehängt, bei 0x82 ein ">", was dann im weiteren ignoriert wird.

Angesichts der aktuellen Dunkelheit kann ich nicht nachvollziehen, ob mein ISKRA-Zähler hier auch die Richtung angibt. Dein Zähler scheint nach einer neueren Spezifikation bei diesem Status zu arbeiten - die Du ja netterweise gleich dazu gepackt hast.
Allerdings geben alle Zähler, die ich bisher kenne, trotzdem den Momentan-Wert mit Vorzeichen aus.

Anbei ist eine experimentelle Version, die unter den Bedingungen:

  • Der Zähler meldet sich mit Manufacturer HLY...
  • Bit 11 im Netz-Status ist 1, und die unteren 7 Bit sind 0x40
  • Der Momentanwert ist positiv
den Wert negiert.

Schau' bitte mal, ob das für Dich funktioniert, ich checke morgen auf Seitenwirkungen bei meinem Zähler.

P.S. Bei meinem ISKRA funktioniert das geänderte Modul. Wenn es bei Dir den gewünschten Effekt bringt, checke ich es ein.


vopatec

Hallo gvzdus,

vielen, vielen Dank für diese schnelle und für mich perfekte Lösung.

Genau so habe ich mir das vorgestellt.

Vielleicht hielft das ja auch noch dem Ein oder Anderen mit Holley Zähler weiter.
Mangels Programmierkönnen war an diesem Punkt der Recherche bei mir Ende.
Und auch stundenlanges Wälzen des Forums brachte mich keiner Lösung näher.

Viele Grüße aus dem heute zum Glück sonnigen Hessen
Volker

gvzdus

Funktioniert es denn? Hast Du jetzt negative Werte? Um 20 Uhr ja wohl eher nicht...

vopatec

Ja, ich habe jetzt negative Werte, aber natürlich nicht um 20 Uhr. Ich kam nur nicht früher zum Antworten.

gvzdus

Okay, heute habe ich keine Lust mehr, aber morgen checke ich das dann ein. Sprich: Wenn Du übermorgen ein Update machst, ist die neue Version Bestandteil des "Standard-FHEMs".

gvzdus

Ist jetzt im SVN eingecheckt und dann ab morgen ca. 8 Uhr per "update" verfügbar.

kuemmling

#1315
Hallo gvzdus,
ich nutze seit kurzem auch deine tolle Arbeit um den Holley DTZ auszulesen. Bisher werden
die aktuelle Leistung (auch negativ bei Rückspeisung), der kummulierte Zählerstand und der kummulierte Zählerstand der Rückspeisung (-A) problemlos ausgelesen.
Mein Netzbetreiber stellt ca. 20 Werte (u.a. die Ströme auf den 3 Phasen) bereit. Hast du eine Idee, wie man an diese Daten kommt?

Hier mal als Beispiel der Auszug aus dem Logfile mit dem gegenwärtigen Device:

2021.09.11 13:46:31 5: OBIS (PM1) - Msg-Parse: /
2021.09.11 13:46:31 5: OBIS (PM1) - Msg-Parse: 1-0:96.50.1*1(HLY)
2021.09.11 13:46:31 5: OBIS (PM1) - Msg 1-0:96.50.1*1(HLY) is of type ManufID2
2021.09.11 13:46:31 5: OBIS (PM1) - Msg-Parse: 1-0:96.1.0*255(
HLY
U)
2021.09.11 13:46:31 5: OBIS (PM1) - Msg-Parse: 1-0:1.8.0*255(>54213.1*Wh)
2021.09.11 13:46:31 5: OBIS (PM1) - Msg 1-0:1.8.0*255(>54213.1*Wh) is of type Counter
2021.09.11 13:46:31 4: OBIS (PM1) - Set total_consumption to 54213.1
2021.09.11 13:46:31 5: OBIS (PM1) - Msg-Parse: 1-0:2.8.0*255(6905.6*Wh)
2021.09.11 13:46:31 5: OBIS (PM1) - Msg 1-0:2.8.0*255(6905.6*Wh) is of type Counter
2021.09.11 13:46:31 5: OBIS (PM1) - Msg-Parse: 1-0:16.7.0*255(144*W)
2021.09.11 13:46:31 5: OBIS (PM1) - Msg 1-0:16.7.0*255(144*W) is of type Channels
2021.09.11 13:46:31 5: OBIS (PM1) - Msg-Parse: 255-255:255.255.255*255()
2021.09.11 13:46:31 5: OBIS (PM1) - Msg-Parse: !
2021.09.11 13:46:32 5: OBIS (PM1) - SML-Parse 1B1B1B1B01010101xxxxx...xxxx1B1B1B1B1A01571C
2021.09.11 13:46:32 5: OBIS (PM1) - Full message-> 1B1B1B1B01010101xxxxx...xxxx1B1B1B1B1A01571C
2021.09.11 13:46:32 4: OBIS (PM1) - MSG IS:
/
1-0:96.50.1*1(HLY)
1-0:96.1.0*255(
HLY
U)
1-0:1.8.0*255(>54213.2*Wh)
1-0:2.8.0*255(6905.6*Wh)
1-0:16.7.0*255(147*W)
255-255:255.255.255*255()
!


Viele Grüße
Nico

gvzdus

Hi Nico,
ich habe mir mal die Mühe gemacht, Deinen Datensatz per Hand zu dekodieren, um zu gucken, ob da noch irgendwelche (relevanten) Informationen sind, die das Modul nicht erfasst. Wenn Du magst, kannst Du versuchen, es anhand der in Wikipedia unter "SML" verlinkten Doku nachzuvollziehen.

Der Bytestrom, der da geloggt wird, sind wirklich die Rohdaten vom Zähler. Und da steht drin, was unten steht. Wie Du siehst, hat das Protokoll zwar einen satten Satz an Overhead, aber es stehen eben nicht die Phasen-Infos drin. Wenn Du einen deutlich längeren Datensatz siehst, könnte das anders sein. Aber eigentlich ändern sich ja 3 Phasen schneller als die Summe der 3 Phasen - insofern bezweifele ich das.

Viele Grüße, Georg

1B1B1B1B Escape (Beginn)
01010101 Beginn SML V1
76
  04000001      = TrxID
  6200
  6200
  72
    6500000101  = SML_PublicOpen.Res
    76
      01
      01
      070000000C20DE
      0B0A01484C5902000D1B55
      72
        6201
        65000C20DE
      01
  6357D8        = CRC
  00            = EndOfSmlMsg

76
  04000002      = TrxID
  6200
  6200
  72
    6500000701   = SML_GetList.Res
    77
      07FFFFFFFFFFFF           = clientId
      0B0A01484C5902000D1B55   = serverId
      070100620AFFFF           = listName
      72                       = actSensorTime
      72                       = actSensorTime
        6201
        65000C20DE
      75                       = valList (Jetzt geht's endlich los)
        7707010060320101 0101010104484C5901                       =  1-0:96.50.1*1(HLY)
        77070100600100FF 010101010B0A01484C5902000D1B5501         =  1-0:96.1.0*255( HLY^MU)
        77070100010800FF 65001C0104 726201 65000C20DE 621E52FF65000845B401 = 1-0:1.8.0*255(>54213.2*Wh)
        77070100020800FF 0172620165000C20DE621E52FF6500010DC001 = 1-0:2.8.0*255(6905.6*Wh)
        77070100100700FF 0101621B520053009301 = 1-0:16.7.0*255(147*W)
      01
      01
  63C157        = CRC
  00            = EndOfSmlMsg

76
  04000003      = TrxID
  6200
  6200
  72
    6500000201  = SML_PublicClose.Res
    71
      01
  63E823        = CRC
  00            = EndOfSmlMsg

00       = Fuellbyte
1B1B1B1B = Escape (Ende)
1A       = Ende der Nachricht
01571C   = 1 Fuellbyte + CRC

SouzA

Hi,

zunächst vielen Dank für das Modul. Funktioniert grundsätzlich auf Anhieb.

Allerdings habe ich eine Frage zur Handhabe des Moduls.
Ich habe einen efr Zähler (siehe Anleitung im Anhang).
Auf PDF-Seite 32 ist dort die optische Datenschnittstelle erläutert.
Diese Frage ich mit einem entsprechendem USB IR-Lesekopf ab. (https://www.ebay.de/itm/274962288487?ssPageName=STRK%3AMEBIDX%3AIT&_trksid=p2060353.m2749.l2648)

Laut Anleitung sollten aber deutlich mehr Readings zu lesen sein, als mir angezeigt wird. Siehe Bild im Anhang für vorhandene Readings in fhem.

Kriege ich auch irgendwie die anderen im Zähler vorhandenen Werte ausgelesen und als Reading dargestellt?
Die Pin ist eingegeben und die Abfrage des PIN im Zähler auf "off" gestellt.

Vielen Dank!

Bis denn
SouzA
Raspi 4, EnOcean TCM310 USB, HM-MOD-UART-USB, Jeelink, hue, AMAD, fully, FRITZBOX, Signalbot, VIERA, Presence BT/Mac, TPLink, Gassistant, Shelly, fhempy, ZigBee

gvzdus

Präzise Situationsbeschreibung, danke!

Guck doch mal im PDF auf Seite 26: "Reduzierter Datensatz versus voller Datensatz". Das erscheint mir ein unabhängiges Kriterium von "PIN eingegeben".

SouzA

Zitat von: gvzdus am 14 Oktober 2021, 23:41:32
Präzise Situationsbeschreibung, danke!
War das jetzt gut oder böse gemeint?  ???

Zitat von: gvzdus am 14 Oktober 2021, 23:41:32
Guck doch mal im PDF auf Seite 26: "Reduzierter Datensatz versus voller Datensatz". Das erscheint mir ein unabhängiges Kriterium von "PIN eingegeben".
Profis@its best! Das wars! Habe ich überlesen... ::)
Vielen Dank!

Thx und bis denn
SouzA
Raspi 4, EnOcean TCM310 USB, HM-MOD-UART-USB, Jeelink, hue, AMAD, fully, FRITZBOX, Signalbot, VIERA, Presence BT/Mac, TPLink, Gassistant, Shelly, fhempy, ZigBee