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

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

Vorheriges Thema - Nächstes Thema

sunrise

Zitat von: Chris_XXX am 20 Februar 2025, 16:22:50Ich habe mit dem Zähler nur zwei Elictricity Calculator verknüpft. Sobald ich das Device lösche geht die Last merklich runter.
Beantwortet das nicht Deine Frage?
Viele Grüße/kind regards
sunrise
_________________
Tecalor THZ 303 (SOL, 2006/09-2008/08), FW 2.16 | FHEM THZ module testing with FW 2.06 (INTEGRAL, 2006/12-2008/08) & FW 2.14 (SOL, 2002/10-2004/08) on Raspberry Pi 2

RalfRog

Hallo @sunrise
Chris hat ein schönes Beispiel für nen Doppeltarif.
Zitat von: Chris_XXX am 20 Februar 2025, 16:22:50....
1-0:96.50.1*1(EMH)
1-0:96.1.0*255(EMH)
1-0:1.8.0*255(>729897*Wh)
1-0:1.8.1*255(729886.2*Wh)
1-0:1.8.2*255(10.8*Wh)
1-0:2.8.0*255(77642.5*Wh)
1-0:2.8.1*255(77640.7*Wh)
1-0:2.8.2*255(1.8*Wh)
1-0:16.7.0*255(282*W)
255-255:255.255.255*255()

FHEM auf Proxmox VM Bookworm (Futro S740) - nanoCUL, HM-MOD-RPI-PCB und MAX!Cube über LAN
HM- Fensterkontakte, UP-Schalter, Bewegungsmelder und ein Rauchmelder sowie Shelly 3EM, 1PM, PlugS und IT Schaltsteckdosen

Chris_XXX

Zitat von: sunrise am 27 Februar 2025, 09:58:34
Zitat von: Chris_XXX am 20 Februar 2025, 16:22:50Ich habe mit dem Zähler nur zwei Elictricity Calculator verknüpft. Sobald ich das Device lösche geht die Last merklich runter.
Beantwortet das nicht Deine Frage?
Ja und nein. Ja, ich weiß das es an diesem Gerät liegt.
Nein, was muss ich machen damit sich dieses Teil normal verhält.

thomasg

#1683
Hey,

ich habe einen Holley DTZ541 und versuche ihn an meinem RASPI 2 mit einem HICHI TTL IR Kopf / GPIO auszulesen.
Den Lesekopf und den Holley habe ich soweit getestet (Mit Handykammera/Video) - die LED's blinken. Also ist vor allem der Zähler glaube i.o. Der ist von 2019 und ich habe hier schon gelesen, dass viele Probleme mit dem bzgl. defekter optischer Schnittstellen gemeldet wurden. Wobei die led nur sehr sehr schwach auf dem Handy Video zu sehen ist.

Ich habe jetzt alles soweit angeschlossen und auch das OBIS-Device eingerichtet:

Internals:
   CFGFN     
   DEF        /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_DAE069SI-if00-port0@9600,8,N,1 SML
   DeviceName /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_DAE069SI-if00-port0@9600,8,N,1
   FD         24
   FUUID      67c56e63-f33f-f90e-6b77-029034594a931c99
   MeterType  SML
   NAME       AB.ZAS.Zaehler
   NR         261
   PARTIAL   
   STATE      opened
   TYPE       OBIS
   eventCount 2
   READINGS:
     2025-03-03 11:07:52   state           opened
   helper:
     EoM        -1
     SPEED      5
     SPEED2     5
     TRIGGERTIME 1740996472.56242
     DEVICES:
      
       -1
      
     RULECACHE:
Attributes:
   room       Sensoren

Log:
2025.03.03 10:55:58 3: Opening AB.ZAS.Zaehler device /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_DAE069SI-if00-port0
2025.03.03 10:55:58 3: Setting AB.ZAS.Zaehler serial parameters to 9600,8,N,1
2025.03.03 10:55:58 3: OBIS (AB.ZAS.Zaehler) - Init done
2025.03.03 10:55:58 3: AB.ZAS.Zaehler device opened

Könnt Ihr mir sagen, wie ich jetzt am besten an die Readings komme?
Ich habe den Lesekopf versucht zu positionieren, etwas zu drehen etc - leider ohne Erfolg.

Ich habe gedreht und verschoben und parallel in den EventMonitor geschaut - oder gibt es da eine bessere Analysemethode um den Lesekopf korrekt auszurichjten?

Update - ich habs ans Laufen bekommen:

Internals:
   CRC_Errors 6
   DEF        /dev/ttyAMA0@9600,8,N,1
   DeviceName /dev/ttyAMA0@9600,8,N,1
   FD         21
   FUUID      67c56e63-f33f-f90e-6b77-029034594a931c99
   MeterType  SML
   NAME       AB.ZAS.Zaehler
   NR         261
   PARTIAL   
   STATE      opened
   TYPE       OBIS
   eventCount 582
   Helper:
     DBLOG:
       power:
         horstDbLog:
           TIME       1741010986.91335
           VALUE      629
   READINGS:
     2025-03-03 15:09:46   1.0.0.2.0.0     1.02.007
     2025-03-03 15:09:46   1.0.14.7.0.255  49.9
     2025-03-03 15:09:46   1.0.81.7.1.255  119
     2025-03-03 15:09:46   1.0.81.7.15.255 342
     2025-03-03 15:09:46   1.0.81.7.2.255  239
     2025-03-03 15:09:46   1.0.81.7.26.255 280
     2025-03-03 15:09:46   1.0.81.7.4.255  201
     2025-03-03 15:09:46   1.0.96.1.0.255  HLYxC
     2025-03-03 15:09:46   1.0.96.5.0.255  11111111
     2025-03-03 15:09:46   1.0.96.90.2.1   A01A
     2025-03-03 15:09:46   ManufID2        HLY
     2025-03-03 15:09:46   current_L1      0.91
     2025-03-03 15:09:46   current_L2      3.61
     2025-03-03 15:09:46   current_L3      0.32
     2025-03-03 15:09:46   power           629
     2025-03-03 15:01:50   state           opened
     2025-03-03 15:09:46   total_consumption 21287404.4
     2025-03-03 15:09:46   total_feed      293796
     2025-03-03 15:09:46   voltage_L1      238
     2025-03-03 15:09:46   voltage_L2      237.8
     2025-03-03 15:09:46   voltage_L3      238.8
   helper:
     BUFFER     ␛␛␛␛␁␁␁␁v␄␁bbre␁␁v␁␁␇ V2;␋
␁HLY␂␅xC␁␁c�{v␄␂bbre␇␁w␁␋
␁HLY␂␅xC␁␁�␄w␇␁`2␁␁␁␁␁␁␄HLY␁w␇␁`␁�␁␁␁␁␋
␁HLY␂␅xC␁w␇␁␁␈�e␜␑␄e V2;b␞R�e␌�3?␁w␇␁␂␈�e␜␑␄e V2;b␞R�e,�h␁w␇␁␐␇�␁␁b␛RS␂q␁w␇␁ ␇�␁␁b#R�c L␁w␇␁4␇�␁␁b#R�c J␁w␇␁H␇�␁␁b#R�c R␁w␇␁␟␇�␁␁b!R�b]␁w␇␁3␇�␁␁b!R�c␁i␁w␇␁G␇�␁␁b!R�b ␁w␇␁Q␇␁�␁␁b␈Rbx␁w␇␁Q␇␂�␁␁b␈Rb�␁w␇␁Q␇␄�␁␁b␈Rb�␁w␇␁Q␇␏�␁␁b␈Rc␁U␁w␇␁Q␇␚�␁␁b␈Rc␁␙␁w␇␁␎␇�␁␁b,R�c␁�␁w␇␁␂␁␁␁␁ 1.02.007␁w␇␁`Z␂␁␁␁␁␁␅A01A␁w␇␁`␅�␁␁␁␁e␜␑␄␁␁␁c��v␄␃bb
     DIRECTIONSUM >
     EoM        0
     HLYHACK    1
     LastPacketTime 1741010986.92291
     SPEED      5
     SPEED2     5
     TRIGGERTIME 1741010510.86957
     Channels:
     DEVICES:
       
       -1
       
     RULECACHE:
       1-0:0.2.0*0 unknown
       1-0:1.8.0*255 Counter
       1-0:14.7.0*255 Channels
       1-0:16.7.0*255 Channels
       1-0:2.8.0*255 Counter
       1-0:31.7.0*255 Channels
       1-0:32.7.0*255 Channels
       1-0:51.7.0*255 Channels
       1-0:52.7.0*255 Channels
       1-0:71.7.0*255 Channels
       1-0:72.7.0*255 Channels
       1-0:81.7.1*255 Channels
       1-0:81.7.15*255 Channels
       1-0:81.7.2*255 Channels
       1-0:81.7.26*255 Channels
       1-0:81.7.4*255 Channels
       1-0:96.1.0*255 unknown
       1-0:96.5.0*255 unknown
       1-0:96.50.1*1 ManufID2
       1-0:96.90.2*1 unknown
     directions:
Attributes:
   room       Sensoren

Hätte ich ja nicht gedacht. Mein Kabel zwischen Raspi GPIO und TTL-IR-Lesekopf / Zähler ist ca 10 ... 13 Meter. Schön, dass das funktioniert. Was würdet Ihr mir denn empfehlen von den Readings zu loggen? Auffällig sind die CRC-Fehler, die langsam ansteigen. Evtl liegt das an dem noch nicht ganz perfekt ausgerichteten Lesekopf - oder evtl am langen Kabel.


Danke
Fhem + knx + 1wire auf raspi 2

KölnSolar

Eigentlich ist nur power von Bedeutung.
Consumption und feed sind mit dem statistics-Modul gut zu verarbeiten, um Trends und Verbräche/Zeitraum zu loggen.

Und schließlich kannst Du jeweils current mit voltage multiplizieren(userreadings), so dass Du die Leistung/Phase erhältst. Dann kannst Du in Grafiken fast jeden Verbraucher erkennen/verfolgen und ggfs. Deinen Stromverbrauch optimieren.
Grüße Markus
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

thomasg

#1685
Habt ihr vielleicht noch einen Tipp für mich? Mein fhem.log wird vermutlich mit Meldungen vom obismodul (mehrere pro Sekunde) geflutet:


2025.03.03 15:01:50 3: Opening AB.ZAS.Zaehler device /dev/ttyAMA0
2025.03.03 15:01:50 3: Setting AB.ZAS.Zaehler serial parameters to 9600,8,N,1
2025.03.03 15:01:50 3: OBIS (AB.ZAS.Zaehler) - Init done
2025.03.03 15:01:50 3: AB.ZAS.Zaehler device opened
2025.03.03 15:01:51 3: 2nd TL-byte != 0, reserved according spec
2025.03.03 15:01:51 3: OBIS (AB.ZAS.Zaehler) - Unknown Message: 1-0:96.1.0*255(HLYxC)
2025.03.03 15:01:51 3: OBIS (AB.ZAS.Zaehler) - Unknown Message: 1-0:0.2.0*0(1.02.007)
2025.03.03 15:01:51 3: OBIS (AB.ZAS.Zaehler) - Unknown Message: 1-0:96.90.2*1(A01A)
2025.03.03 15:01:51 3: OBIS (AB.ZAS.Zaehler) - Unknown Message: 1-0:96.5.0*255(1333364)
2025.03.03 15:01:51 3: 2nd TL-byte != 0, reserved according spec
2025.03.03 15:01:51 3: 2nd TL-byte != 0, reserved according spec
2025.03.03 15:01:51 3: 2nd TL-byte != 0, reserved according spec
2025.03.03 15:01:51 3: 2nd TL-byte != 0, reserved according spec
2025.03.03 15:01:51 3: 2nd TL-byte != 0, reserved according spec
... etliche weitere Meldungen dieser art

Ich habe die Meldungen ,, 2nd TL-byte ....." mit verbose 2 unterdrücken können. Aber kann man auch das ursächliche Problem abstellen?
Fhem + knx + 1wire auf raspi 2

sunrise

Zitat von: KölnSolar am 03 März 2025, 15:51:26Und schließlich kannst Du jeweils current mit voltage multiplizieren(userreadings), so dass Du die Leistung/Phase erhältst. Dann kannst Du in Grafiken fast jeden Verbraucher erkennen/verfolgen und ggfs. Deinen Stromverbrauch optimieren.
Ich bekomme vom Zähler nur Power, Consumption (und Feed). Wie ist das mit den Phasen und dem Identifizieren von Verbrauchern?
Viele Grüße/kind regards
sunrise
_________________
Tecalor THZ 303 (SOL, 2006/09-2008/08), FW 2.16 | FHEM THZ module testing with FW 2.06 (INTEGRAL, 2006/12-2008/08) & FW 2.14 (SOL, 2002/10-2004/08) on Raspberry Pi 2

thomasg

Evtl. Musst du noch die erweiterten Funktionen mit der PIN freischalten. War bei mir jedenfalls so.
Fhem + knx + 1wire auf raspi 2

sunrise

#1688
Die PIN habe ich bereits eingegeben, sonst würde ich nur den Verbrauch sehen. Es kann sein, dass der Landis+Gyr E320 keine Infos zu Phasen liefert oder diese nicht freigeschaltet sind bzw. nicht werden können.

Kann man denn trotzdem auf den Verbrauch einzelner Geräte schließen? Ich wüsste nicht, wie das funktionieren soll. Daher habe ich an Verbraucher wie Kühlschrank, Waschmaschine, Trockner und Spülmaschine entsprechende Plugs gehängt, die über Zigbee die Werte liefern.

Ich war halt über diesen Betrag gestolpert, habe ihn aber evtl. falsch verstanden:

ZitatUnd schließlich kannst Du jeweils current mit voltage multiplizieren(userreadings), so dass Du die Leistung/Phase erhältst. Dann kannst Du in Grafiken fast jeden Verbraucher erkennen/verfolgen und ggfs. Deinen Stromverbrauch optimieren.

Viele Grüße/kind regards
sunrise
_________________
Tecalor THZ 303 (SOL, 2006/09-2008/08), FW 2.16 | FHEM THZ module testing with FW 2.06 (INTEGRAL, 2006/12-2008/08) & FW 2.14 (SOL, 2002/10-2004/08) on Raspberry Pi 2

KölnSolar

ZitatEs kann sein, dass der Landis+Gyr E320 keine Infos zu Phasen liefert oder diese nicht freigeschaltet sind bzw. nicht werden können.
So scheint es leider zu sein.  :'(

Smarthome-Komponenten etc. sind in der Regel Dauer- u. Kleinstverbraucher, die die Grundlast erzeugen. Wenige Geräte, die "takten"(bei Kühlgeräten 24/7, bei anderen Geräten durch manuelles/automatisches Ein-/Ausschalten) sieht man als Abweichung von der Grundlast. Hat man nur power über alle 3 Phasen, sieht/erkennt man die Geräte bedeutend schlechter, als wenn man die einzelnen Phasenverbräuche sieht, sich das "Takten" auf 3 Kurven verteilt.
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

tomcat.x

Zitat von: sunrise am 04 März 2025, 13:28:30Ich war halt über diesen Betrag gestolpert, habe ihn aber evtl. falsch verstanden:

Ich denke, da war gemeint, dass man Spitzen und Veränderungen in einer Grafik besser erkennen kann als in einer Zahlenreihe und sich dann auf die Suche machen kann. Es werden aber alleine dadurch keine Geräte separat dargestellt.

Was schon geht, einen Verbraucher mit konstanter Last erkennen. Das mache ich mit dem Wasserkocher. Ich ermittle über ein Userreading immer ein Delta zum Verbrauch (gesamt, alle Phasen). Bei einem bestimmten Wert wurde der Wasserkocher ein oder ausgeschaltet. Darüber starte ich einen Timer mit ALarm, damit der Tee nicht zu lange zieht  :))

Bei den von Dir genannten Geräten funktioniert das aber nicht. Da habe ich auch Zwischenstecker, z.B. um zu erkennen, wann der Trockner im Keller fertig ist.

Viele Grüße
Thomas
FHEM: 6.3 auf Raspi 3B+, Raspbian (Buster), Perl v5.28.1
Sender/Empfänger: 2 x CULv3, Duofern Stick, HM-MOD-RPI-PCB
Gateways: FRITZ!Box 6591 (OS: 8.00), Trädfri, ConBee 2,  piVCCU, OpenMQTTGateway
Sensoren/Aktoren: FRITZ!DECT, FS20, FHT, HMS, HomeMatic, Trädfri, DuoFern, NetAtmo

nuccleon

Hallo zusammen,

Ich habe einen Easymeter Q3C beim mir verbaut.
Dieser SML Zähler benötigt - wie schon mehrfach in diesem Thread erwähnt - eine Initialisierungs Sequenz.

1b 1b 1b 1b 01 01 01 01 76 03 30 30 62 00 62 00 72 65 00 00 01 00 77 01 01 09 31 31 33 31 31 38 36 32 01 01 01 01 63 03 36 00 76 03 30 31 62 00 62 00 72 65 00 00 07 00 75 01 01 01 01 01 63 14 cb 00 76 03 30 32 62 00 62 00 72 65 00 00 02 00 71 01 63 75 6d 00 00 00 1b 1b 1b 1b 1a 02 72 41

Das 47_OBIS.pm Modul unterstützt diesen Zähler im derzeitigen Stand noch nicht.


Mit dem angehängte Patch funktioniert auch der Easymeter QC3 mit 47_OBIS.pm. Könnt ihr den patch in das Modul übernehmen?
--- 47_OBIS.pm    2025-04-09 21:38:50.216267025 +0200
+++ 47_OBIS.pm.cbe    2025-04-09 21:41:14.158075191 +0200
@@ -178,9 +178,10 @@
    "E110"        =>  ["/?!".chr(13).chr(10),    600,    chr(6)."0".$hash->{helper}{SPEED}."0".chr(13).chr(10)],
    "E350USB"    =>  ["/?!".chr(13).chr(10),    600,    chr(6)."0".$hash->{helper}{SPEED}."0".chr(13).chr(10)],
    "AS1440"    =>    ["/2!".chr(13).chr(10),    600,    chr(6)."0".$hash->{helper}{SPEED}."0".chr(13).chr(10)],
-    "MT382"    =>    ["/?!".chr(13).chr(10),    20,    chr(0).chr(0).chr(0).chr(0).chr(0).chr(0).chr(6)."0".$hash->{helper}{SPEED}."0".chr(13).chr(10)] #this line added by alkazaa
+    "MT382"    =>    ["/?!".chr(13).chr(10),    20,    chr(0).chr(0).chr(0).chr(0).chr(0).chr(0).chr(6)."0".$hash->{helper}{SPEED}."0".chr(13).chr(10)] #this line added by alkazaa,
+    "EMQ3C"    =>    [join('', map { chr(hex($_)) } unpack("(A2)*", "1b1b1b1b010101017603303062006200726500000100770101093131333131383632010101016303360076033031620062007265000007007501010101016314cb007603303262006200726500000200710163756d0000001b1b1b1b1a027241")), 10, ""]
    );
-  if (!$devs{$type}) {return 'unknown meterType. Must be one of <nothing>, SML, Standard, VSM102, E110, E350USB, AS1440, MT382'};
+  if (!$devs{$type}) {return 'unknown meterType. Must be one of <nothing>, SML, Standard, VSM102, E110, E350USB, AS1440, MT382, EMQ3C'};
  $devs{$type}[1] = $hash->{helper}{DEVICES}[1] // $devs{$type}[1];
  $hash->{helper}{DEVICES} =$devs{$type};
  $hash->{helper}{RULECACHE} = {};
@@ -609,7 +610,7 @@
    my %dir=("<"=>"out",">"=>"in");
    my $buffer=$hash->{helper}{BUFFER};
    my $remainingSML;
-    ($buffer,$remainingSML) = OBIS_trySMLdecode($hash,$buffer) if ($hash->{MeterType}=~/SML|Ext|Unknown/);
+    ($buffer,$remainingSML) = OBIS_trySMLdecode($hash,$buffer) if ($hash->{MeterType}=~/SML|Ext|EMQ3C|Unknown/);
    my $type= $hash->{MeterType};
    $buf='/'.$buf; 
    $buf =~ /!((?!\/).*)$/gmsi;



rudolfkoenig

Da der Maintainer sich nicht meldet, und der Patch-Autor mich gefragt hat, habe ich den Patch eingecheckt.

Da ich das Ergebnis nicht testen kann, bitte ich um Feedback.

nuccleon