ndokter / dsmr_parser

Library to parse Dutch Smart Meter Requirements (DSMR) telegrams.
MIT License
113 stars 64 forks source link

Support for Logarex D0 Protocol #90

Open Megachip opened 3 years ago

Megachip commented 3 years ago

Documentation

Seems 5S is the only one, which detects the Power Meter

Megachip commented 3 years ago

Some more Outputs, if required.

Megachip commented 3 years ago

@Aeroid & @lowdef may you can help? Looks like you implemented the Q3D, which also using D0 Protocol

Megachip commented 1 year ago
Error doing job: Exception in callback SerialTransport._read_ready()
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/asyncio/events.py", line 80, in _run
    self._context.run(self._callback, *self._args)
  File "/usr/local/lib/python3.10/site-packages/serial_asyncio/__init__.py", line 120, in _read_ready
    self._protocol.data_received(data)
  File "/usr/local/lib/python3.10/site-packages/dsmr_parser/clients/rfxtrx_protocol.py", line 55, in data_received
    subtype = data[2]
IndexError: index out of range
Megachip commented 10 months ago

Beschreibung der Register

1-0:96.1.0*255(001LOG0065800041) Hersteller unabhängige Identifikationsnummer – Produktionsnummer
1-0:1.8.0*255(000000.0000*kWh) Kumulatives Register der aktiven Energie in kWh T1+T2
1-0:1.8.1*255(000000.0000*kWh) Kumulatives Register der aktiven Energie in kWh T1
1-0:1.8.2*255(000000.0000*kWh) Kumulatives Register der aktiven Energie in kWh T2
1-0:2.8.0*255(000000.0000*kWh) -A Enerige
1-0:16.7.0*255(000000*W) Stromeffektivwert
1-0:32.7.0*255(000.0*V) Spannung L1, Auflösung 0.1 V 
1-0:52.7.0*255(000.0*V) Spannung L2, Auflösung 0.1 V 
1-0:72.7.0*255(228.8*V) Spannung L3, Auflösung 0.1 V 
1-0:31.7.0*255(000.00*A) Strom L1, Auflösung 0.01 A 
1-0:51.7.0*255(000.00*A) Strom L2, Auflösung 0.01 A 
1-0:71.7.0*255(000.00*A) Strom L3, Auflösung 0.01 A 
1-0:81.7.1*255(000*deg) Phasenwinkel UL2 : UL1 
1-0:81.7.2*255(000*deg) Phasenwinkel UL3 : UL1 
1-0:81.7.4*255(000*deg) Phasenwinkel IL1 : UL1 
1-0:81.7.15*255(000*deg) Phasenwinkel IL2 : UL2 
1-0:81.7.26*255(000*deg) Phasenwinkel IL3 : UL3 
1-0:14.7.0*255(50.0*Hz) Netz Frequenz in Hz
1-0:1.8.0*96(00000.0*kWh) Historischer Energieverbrauchswert vom letzten Tag (1d) 
1-0:1.8.0*97(00000.0*kWh) Historischer Energieverbrauchswert der letzten Woche (7d) 
1-0:1.8.0*98(00000.0*kWh) Historischer Energieverbrauchswert des letzten Monats (30d) 
1-0:1.8.0*99(00000.0*kWh) Historischer Energieverbrauchswert des letzten Jahres (365d) 
1-0:1.8.0*100(00000.0*kWh) Historischer Energieverbrauchswert seit letzter Rückstellung
1-0:0.2.0*255(ver.03,432F,20170504) Firmware Version, Firmware Prüfsumme CRC , Datum
1-0:96.90.2*255(F0F6) Prüfsumme - CRC der eingestellten Parameter
1-0:97.97.0*255(00000000) FF - Status Register - Interner Gerätefehler
Megachip commented 1 month ago
2024-10-29 16:07:23.652 ERROR (MainThread) [dsmr_parser.clients.protocol] failed to parse telegram
File "/usr/local/lib/python3.12/site-packages/dsmr_parser/clients/protocol.py", line 159, in handle_telegram
File "/usr/local/lib/python3.12/site-packages/dsmr_parser/parsers.py", line 83, in parse
File "/usr/local/lib/python3.12/site-packages/dsmr_parser/parsers.py", line 131, in validate_checksum
dsmr_parser.exceptions.ParseError: Failed to perform CRC validation because the telegram is incomplete. The checksum and/or content values are missing.
2024-10-29 16:09:27.667 ERROR (MainThread) [dsmr_parser.clients.protocol] failed to parse telegram
File "/usr/local/lib/python3.12/site-packages/dsmr_parser/clients/protocol.py", line 159, in handle_telegram
File "/usr/local/lib/python3.12/site-packages/dsmr_parser/parsers.py", line 83, in parse
File "/usr/local/lib/python3.12/site-packages/dsmr_parser/parsers.py", line 131, in validate_checksum
dsmr_parser.exceptions.ParseError: Failed to perform CRC validation because the telegram is incomplete. The checksum and/or content values are missing.
ndokter commented 1 month ago

Hi @Megachip i see its complaining about the CRC check. If i check the previous DSMR message here https://community.home-assistant.io/t/edl21-adding-support-for-logarex/343883 then i see that there is no CRC info. So i don't think you should enable CRC checking

Megachip commented 1 week ago

Hi @Megachip i see its complaining about the CRC check. If i check the previous DSMR message here https://community.home-assistant.io/t/edl21-adding-support-for-logarex/343883 then i see that there is no CRC info. So i don't think you should enable CRC checking

How/Where to disable it?

Megachip commented 1 week ago

I'm not sure if this is just related to the checksum.

homeassistant:/usr/src/homeassistant/homeassistant/components/dsmr# /usr/local/bin/dsmr_console --verbose
DEBUG:asyncio:Using selector: EpollSelector
DEBUG:dsmr_parser.clients.protocol:connected
DEBUG:dsmr_parser.clients.protocol:received data: /LO
DEBUG:dsmr_parser.clients.protocol:received data: G5LK13
DEBUG:dsmr_parser.clients.protocol:received data: BE8
DEBUG:dsmr_parser.clients.protocol:received data: 030
DEBUG:dsmr_parser.clients.protocol:received data: 39
DEBUG:dsmr_parser.clients.protocol:received data: 

DEBUG:dsmr_parser.clients.protocol:received data: 1-0
DEBUG:dsmr_parser.clients.protocol:received data: :96
DEBUG:dsmr_parser.clients.protocol:received data: .1.
DEBUG:dsmr_parser.clients.protocol:received data: 0*2
DEBUG:dsmr_parser.clients.protocol:received data: 55(
DEBUG:dsmr_parser.clients.protocol:received data: 001
DEBUG:dsmr_parser.clients.protocol:received data: LOG
DEBUG:dsmr_parser.clients.protocol:received data: 006
DEBUG:dsmr_parser.clients.protocol:received data: 555
DEBUG:dsmr_parser.clients.protocol:received data: 318
DEBUG:dsmr_parser.clients.protocol:received data: 9)
DEBUG:dsmr_parser.clients.protocol:received data: 
1-
DEBUG:dsmr_parser.clients.protocol:received data: 0:1
DEBUG:dsmr_parser.clients.protocol:received data: .8.
DEBUG:dsmr_parser.clients.protocol:received data: 0*2
DEBUG:dsmr_parser.clients.protocol:received data: 55(
DEBUG:dsmr_parser.clients.protocol:received data: 023
DEBUG:dsmr_parser.clients.protocol:received data: 372
DEBUG:dsmr_parser.clients.protocol:received data: .74
DEBUG:dsmr_parser.clients.protocol:received data: 32*
DEBUG:dsmr_parser.clients.protocol:received data: kWh
DEBUG:dsmr_parser.clients.protocol:received data: )

DEBUG:dsmr_parser.clients.protocol:received data: 1-0
DEBUG:dsmr_parser.clients.protocol:received data: :2.
DEBUG:dsmr_parser.clients.protocol:received data: 8.0
DEBUG:dsmr_parser.clients.protocol:received data: *25
DEBUG:dsmr_parser.clients.protocol:received data: 5(0
DEBUG:dsmr_parser.clients.protocol:received data: 000
DEBUG:dsmr_parser.clients.protocol:received data: 00.
DEBUG:dsmr_parser.clients.protocol:received data: 000
DEBUG:dsmr_parser.clients.protocol:received data: 0*k
DEBUG:dsmr_parser.clients.protocol:received data: Wh)
DEBUG:dsmr_parser.clients.protocol:received data: 
1
DEBUG:dsmr_parser.clients.protocol:received data: -0:
DEBUG:dsmr_parser.clients.protocol:received data: 16.
DEBUG:dsmr_parser.clients.protocol:received data: 7.0
DEBUG:dsmr_parser.clients.protocol:received data: *25
DEBUG:dsmr_parser.clients.protocol:received data: 5(0
DEBUG:dsmr_parser.clients.protocol:received data: 005
DEBUG:dsmr_parser.clients.protocol:received data: 37*
DEBUG:dsmr_parser.clients.protocol:received data: W)
DEBUG:dsmr_parser.clients.protocol:received data: 
1-
DEBUG:dsmr_parser.clients.protocol:received data: 0:3
DEBUG:dsmr_parser.clients.protocol:received data: 2.7
DEBUG:dsmr_parser.clients.protocol:received data: .0*
DEBUG:dsmr_parser.clients.protocol:received data: 255
DEBUG:dsmr_parser.clients.protocol:received data: (23
DEBUG:dsmr_parser.clients.protocol:received data: 1.8
DEBUG:dsmr_parser.clients.protocol:received data: *V)
DEBUG:dsmr_parser.clients.protocol:received data: 
1
DEBUG:dsmr_parser.clients.protocol:received data: -0:
DEBUG:dsmr_parser.clients.protocol:received data: 52.
DEBUG:dsmr_parser.clients.protocol:received data: 7.0
DEBUG:dsmr_parser.clients.protocol:received data: *25
DEBUG:dsmr_parser.clients.protocol:received data: 5(2
DEBUG:dsmr_parser.clients.protocol:received data: 31.
DEBUG:dsmr_parser.clients.protocol:received data: 6*V
DEBUG:dsmr_parser.clients.protocol:received data: )

DEBUG:dsmr_parser.clients.protocol:received data: 1-0
DEBUG:dsmr_parser.clients.protocol:received data: :72
DEBUG:dsmr_parser.clients.protocol:received data: .7.
DEBUG:dsmr_parser.clients.protocol:received data: 0*2
DEBUG:dsmr_parser.clients.protocol:received data: 55(
DEBUG:dsmr_parser.clients.protocol:received data: 234
DEBUG:dsmr_parser.clients.protocol:received data: .4*
DEBUG:dsmr_parser.clients.protocol:received data: V)
DEBUG:dsmr_parser.clients.protocol:received data: 
1-
DEBUG:dsmr_parser.clients.protocol:received data: 0:3
DEBUG:dsmr_parser.clients.protocol:received data: 1.7
DEBUG:dsmr_parser.clients.protocol:received data: .0*
DEBUG:dsmr_parser.clients.protocol:received data: 255
DEBUG:dsmr_parser.clients.protocol:received data: (00
DEBUG:dsmr_parser.clients.protocol:received data: 1.0
DEBUG:dsmr_parser.clients.protocol:received data: 3*A
DEBUG:dsmr_parser.clients.protocol:received data: )

DEBUG:dsmr_parser.clients.protocol:received data: 1-0
DEBUG:dsmr_parser.clients.protocol:received data: :51
DEBUG:dsmr_parser.clients.protocol:received data: .7.
DEBUG:dsmr_parser.clients.protocol:received data: 0*2
DEBUG:dsmr_parser.clients.protocol:received data: 55(
DEBUG:dsmr_parser.clients.protocol:received data: 000
DEBUG:dsmr_parser.clients.protocol:received data: .63
DEBUG:dsmr_parser.clients.protocol:received data: *A)
DEBUG:dsmr_parser.clients.protocol:received data: 
1
DEBUG:dsmr_parser.clients.protocol:received data: -0:
DEBUG:dsmr_parser.clients.protocol:received data: 71.
DEBUG:dsmr_parser.clients.protocol:received data: 7.0
DEBUG:dsmr_parser.clients.protocol:received data: *25
DEBUG:dsmr_parser.clients.protocol:received data: 5(0
DEBUG:dsmr_parser.clients.protocol:received data: 01.
DEBUG:dsmr_parser.clients.protocol:received data: 68*
DEBUG:dsmr_parser.clients.protocol:received data: A)
DEBUG:dsmr_parser.clients.protocol:received data: 
1-
DEBUG:dsmr_parser.clients.protocol:received data: 0:8
DEBUG:dsmr_parser.clients.protocol:received data: 1.7
DEBUG:dsmr_parser.clients.protocol:received data: .1*
DEBUG:dsmr_parser.clients.protocol:received data: 255
DEBUG:dsmr_parser.clients.protocol:received data: (24
DEBUG:dsmr_parser.clients.protocol:received data: 1*d
DEBUG:dsmr_parser.clients.protocol:received data: eg)
DEBUG:dsmr_parser.clients.protocol:received data: 
1
DEBUG:dsmr_parser.clients.protocol:received data: -0:
DEBUG:dsmr_parser.clients.protocol:received data: 81.
DEBUG:dsmr_parser.clients.protocol:received data: 7.2
DEBUG:dsmr_parser.clients.protocol:received data: *25
DEBUG:dsmr_parser.clients.protocol:received data: 5(1
DEBUG:dsmr_parser.clients.protocol:received data: 24*
DEBUG:dsmr_parser.clients.protocol:received data: deg
DEBUG:dsmr_parser.clients.protocol:received data: )

DEBUG:dsmr_parser.clients.protocol:received data: 1-0
DEBUG:dsmr_parser.clients.protocol:received data: :81
DEBUG:dsmr_parser.clients.protocol:received data: .7.
DEBUG:dsmr_parser.clients.protocol:received data: 4*2
DEBUG:dsmr_parser.clients.protocol:received data: 55(
DEBUG:dsmr_parser.clients.protocol:received data: 036
DEBUG:dsmr_parser.clients.protocol:received data: *de
DEBUG:dsmr_parser.clients.protocol:received data: g)
DEBUG:dsmr_parser.clients.protocol:received data: 
1-
DEBUG:dsmr_parser.clients.protocol:received data: 0:8
DEBUG:dsmr_parser.clients.protocol:received data: 1.7
DEBUG:dsmr_parser.clients.protocol:received data: .15
DEBUG:dsmr_parser.clients.protocol:received data: *25
DEBUG:dsmr_parser.clients.protocol:received data: 5(0
DEBUG:dsmr_parser.clients.protocol:received data: 71*
DEBUG:dsmr_parser.clients.protocol:received data: deg
DEBUG:dsmr_parser.clients.protocol:received data: )

DEBUG:dsmr_parser.clients.protocol:received data: 1-0
DEBUG:dsmr_parser.clients.protocol:received data: :81
DEBUG:dsmr_parser.clients.protocol:received data: .7.
DEBUG:dsmr_parser.clients.protocol:received data: 26*
DEBUG:dsmr_parser.clients.protocol:received data: 255
DEBUG:dsmr_parser.clients.protocol:received data: (04
DEBUG:dsmr_parser.clients.protocol:received data: 0*d
DEBUG:dsmr_parser.clients.protocol:received data: eg)
DEBUG:dsmr_parser.clients.protocol:received data: 
1
DEBUG:dsmr_parser.clients.protocol:received data: -0:
DEBUG:dsmr_parser.clients.protocol:received data: 14.
DEBUG:dsmr_parser.clients.protocol:received data: 7.0
DEBUG:dsmr_parser.clients.protocol:received data: *25
DEBUG:dsmr_parser.clients.protocol:received data: 5(4
DEBUG:dsmr_parser.clients.protocol:received data: 9.9
DEBUG:dsmr_parser.clients.protocol:received data: *Hz
DEBUG:dsmr_parser.clients.protocol:received data: )

DEBUG:dsmr_parser.clients.protocol:received data: 1-0
DEBUG:dsmr_parser.clients.protocol:received data: :1.
DEBUG:dsmr_parser.clients.protocol:received data: 8.0
DEBUG:dsmr_parser.clients.protocol:received data: *96
DEBUG:dsmr_parser.clients.protocol:received data: (00
DEBUG:dsmr_parser.clients.protocol:received data: 015
DEBUG:dsmr_parser.clients.protocol:received data: .8*
DEBUG:dsmr_parser.clients.protocol:received data: kWh
DEBUG:dsmr_parser.clients.protocol:received data: )

DEBUG:dsmr_parser.clients.protocol:received data: 1-0
DEBUG:dsmr_parser.clients.protocol:received data: :1.
DEBUG:dsmr_parser.clients.protocol:received data: 8.0
DEBUG:dsmr_parser.clients.protocol:received data: *97
DEBUG:dsmr_parser.clients.protocol:received data: (00
DEBUG:dsmr_parser.clients.protocol:received data: 123
DEBUG:dsmr_parser.clients.protocol:received data: .5*
DEBUG:dsmr_parser.clients.protocol:received data: kWh
DEBUG:dsmr_parser.clients.protocol:received data: )

DEBUG:dsmr_parser.clients.protocol:received data: 1-0
DEBUG:dsmr_parser.clients.protocol:received data: :1.
DEBUG:dsmr_parser.clients.protocol:received data: 8.0
DEBUG:dsmr_parser.clients.protocol:received data: *98
DEBUG:dsmr_parser.clients.protocol:received data: (00
DEBUG:dsmr_parser.clients.protocol:received data: 573.7*
DEBUG:dsmr_parser.clients.protocol:received data: kWh
DEBUG:dsmr_parser.clients.protocol:received data: )

DEBUG:dsmr_parser.clients.protocol:received data: 1-0
DEBUG:dsmr_parser.clients.protocol:received data: :1.
DEBUG:dsmr_parser.clients.protocol:received data: 8.0
DEBUG:dsmr_parser.clients.protocol:received data: *99
DEBUG:dsmr_parser.clients.protocol:received data: (07
DEBUG:dsmr_parser.clients.protocol:received data: 355
DEBUG:dsmr_parser.clients.protocol:received data: .1*
DEBUG:dsmr_parser.clients.protocol:received data: kWh
DEBUG:dsmr_parser.clients.protocol:received data: )

DEBUG:dsmr_parser.clients.protocol:received data: 1-0
DEBUG:dsmr_parser.clients.protocol:received data: :1.
DEBUG:dsmr_parser.clients.protocol:received data: 8.0
DEBUG:dsmr_parser.clients.protocol:received data: *10
DEBUG:dsmr_parser.clients.protocol:received data: 0(2
DEBUG:dsmr_parser.clients.protocol:received data: 337
DEBUG:dsmr_parser.clients.protocol:received data: 2.7
DEBUG:dsmr_parser.clients.protocol:received data: *kW
DEBUG:dsmr_parser.clients.protocol:received data: h)
DEBUG:dsmr_parser.clients.protocol:received data: 
1-
DEBUG:dsmr_parser.clients.protocol:received data: 0:0
DEBUG:dsmr_parser.clients.protocol:received data: .2.
DEBUG:dsmr_parser.clients.protocol:received data: 0*2
DEBUG:dsmr_parser.clients.protocol:received data: 55(
DEBUG:dsmr_parser.clients.protocol:received data: ver
DEBUG:dsmr_parser.clients.protocol:received data: .03
DEBUG:dsmr_parser.clients.protocol:received data: ,43
DEBUG:dsmr_parser.clients.protocol:received data: 2F,
DEBUG:dsmr_parser.clients.protocol:received data: 201
DEBUG:dsmr_parser.clients.protocol:received data: 705
DEBUG:dsmr_parser.clients.protocol:received data: 04)
DEBUG:dsmr_parser.clients.protocol:received data: 
1
DEBUG:dsmr_parser.clients.protocol:received data: -0:
DEBUG:dsmr_parser.clients.protocol:received data: 96.
DEBUG:dsmr_parser.clients.protocol:received data: 90.
DEBUG:dsmr_parser.clients.protocol:received data: 2*2
DEBUG:dsmr_parser.clients.protocol:received data: 55(
DEBUG:dsmr_parser.clients.protocol:received data: F39
DEBUG:dsmr_parser.clients.protocol:received data: 8)
DEBUG:dsmr_parser.clients.protocol:received data: 
1-
DEBUG:dsmr_parser.clients.protocol:received data: 0:9
DEBUG:dsmr_parser.clients.protocol:received data: 7.9
DEBUG:dsmr_parser.clients.protocol:received data: 7.0
DEBUG:dsmr_parser.clients.protocol:received data: *25
DEBUG:dsmr_parser.clients.protocol:received data: 5(0
DEBUG:dsmr_parser.clients.protocol:received data: 000
DEBUG:dsmr_parser.clients.protocol:received data: 000
DEBUG:dsmr_parser.clients.protocol:received data: 0)
DEBUG:dsmr_parser.clients.protocol:received data: 
!
DEBUG:dsmr_parser.clients.protocol:received data: 

DEBUG:dsmr_parser.clients.protocol:got telegram: /LOG5LK13BE803039

1-0:96.1.0*255(001LOG0065553189)
1-0:1.8.0*255(023372.7432*kWh)
1-0:2.8.0*255(000000.0000*kWh)
1-0:16.7.0*255(000537*W)
1-0:32.7.0*255(231.8*V)
1-0:52.7.0*255(231.6*V)
1-0:72.7.0*255(234.4*V)
1-0:31.7.0*255(001.03*A)
1-0:51.7.0*255(000.63*A)
1-0:71.7.0*255(001.68*A)
1-0:81.7.1*255(241*deg)
1-0:81.7.2*255(124*deg)
1-0:81.7.4*255(036*deg)
1-0:81.7.15*255(071*deg)
1-0:81.7.26*255(040*deg)
1-0:14.7.0*255(49.9*Hz)
1-0:1.8.0*96(00015.8*kWh)
1-0:1.8.0*97(00123.5*kWh)
1-0:1.8.0*98(00573.7*kWh)
1-0:1.8.0*99(07355.1*kWh)
1-0:1.8.0*100(23372.7*kWh)
1-0:0.2.0*255(ver.03,432F,20170504)
1-0:96.90.2*255(F398)
1-0:97.97.0*255(00000000)
!

001LOG0065553189 None