lvogt / ioBroker.wireless-mbus

ioBroker wireless M-Bus adapter
GNU General Public License v2.0
6 stars 4 forks source link

Diehl Hydrus 2.0 telegrams can't be parsed correctly #168

Open lumapu opened 7 months ago

lumapu commented 7 months ago

Describe the bug
I have a nanoCul built by myself and a Diehl Hydrus 2.0 meter. The serial number matches with my meter. In the log of ioBroker (debug-level) I see the message application layer message too short, expected 96, got 61 bytes

To Reproduce
not sure what is going wrong, but I think the meter is not supported by this adapter. I think the meter from my neighbour is from the same type. The ID of mine is DME-80883224 and I have the AES key here.

Expected behavior
The message should be decoded, the length should match

Screenshots & Logfiles

Logfile (click to expand) ```cpp 2023-11-16 19:40:47.629 - debug: wireless-mbus.0 (865) CUL: RX: 6235333434413531313030333238383830 2023-11-16 19:40:47.660 - debug: wireless-mbus.0 (865) CUL: RX: 373630373246454338433030463339303046303032433235413838313030303044384238353845303544334446394630413834413741393030303331303731304636453334393239313839454434334638323031334631324330333645353734434335313136394134314533410d0a 2023-11-16 19:40:47.660 - debug: wireless-mbus.0 (865) CUL: Message received: 5344a5110032888076072fec8c00f3900f002c25a8810000d8b858e05d3df9f0a84a7a9000310710f6e34929189ed43f82013f12c036e574cc51169a41e3 2023-11-16 19:40:47.661 - debug: wireless-mbus.0 (865) 5344a5110032888076072fec8c00f3900f002c25a8810000d8b858e05d3df9f0a84a7a9000310710f6e34929189ed43f82013f12c036e574cc51169a41 2023-11-16 19:40:47.661 - debug: wireless-mbus.0 (865) 5344a5110032888076072fec8c00f3900f002c25a8810000d8b858e05d3df9f0a84a7a9000310710f6e34929189ed43f82013f12c036e574cc51169a41 2023-11-16 19:40:47.661 - error: wireless-mbus.0 (865) application layer message too short, expected 96, got 61 bytes 2023-11-16 19:40:47.661 - debug: wireless-mbus.0 (865) Parser failed to parse telegram from device DME-80883200 2023-11-16 19:40:50.609 - info: admin.0 (390) <== Disconnect system.user.admin from ::ffff:10.20.2.11 2023-11-16 19:40:55.930 - debug: wireless-mbus.0 (865) CUL: RX: 6235333434413531313234333238383830373630 2023-11-16 19:40:55.961 - debug: wireless-mbus.0 (865) CUL: RX: 373138443138433030464339303046303032433235353438313030303039323538343445463241304341423637393543393741364630303331303731303243433146354634363738303745313942343044303438354434454239443330393937383831434545393836330d0a 2023-11-16 19:40:55.961 - debug: wireless-mbus.0 (865) CUL: Message received: 5344a51124328880760718d18c00fc900f002c2554810000925844ef2a0cab6795c97a6f003107102cc1f5f467807e19b40d0485d4eb9d30997881cee986 2023-11-16 19:40:55.961 - debug: wireless-mbus.0 (865) Found AES key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 2023-11-16 19:40:55.961 - debug: wireless-mbus.0 (865) 5344a51124328880760718d18c00fc900f002c2554810000925844ef2a0cab6795c97a6f003107102cc1f5f467807e19b40d0485d4eb9d30997881cee9 2023-11-16 19:40:55.961 - debug: wireless-mbus.0 (865) 5344a51124328880760718d18c00fc900f002c2554810000925844ef2a0cab6795c97a6f003107102cc1f5f467807e19b40d0485d4eb9d30997881cee9 2023-11-16 19:40:55.961 - error: wireless-mbus.0 (865) application layer message too short, expected 96, got 61 bytes 2023-11-16 19:40:55.961 - debug: wireless-mbus.0 (865) Parser failed to parse telegram from device DME-80883224 2023-11-16 19:41:05.719 - debug: wireless-mbus.0 (865) CUL: RX: 62353334344135313132343332383838303736303731384431384332304644393030463030324332353535 2023-11-16 19:41:05.750 - debug: wireless-mbus.0 (865) CUL: RX: 38313030303046464631454637333734343131353342304336443741373030303331303731303732353331393937464133394535344633323833303936333730353741413239354639303234453430343146420d0a 2023-11-16 19:41:05.750 - debug: wireless-mbus.0 (865) CUL: Message received: 5344a51124328880760718d18c20fd900f002c2555810000fff1ef737441153b0c6d7a700031071072531997fa39e54f328309637057aa295f9024e4041f 2023-11-16 19:41:05.750 - debug: wireless-mbus.0 (865) Found AES key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 2023-11-16 19:41:05.750 - debug: wireless-mbus.0 (865) 5344a51124328880760718d18c20fd900f002c2555810000fff1ef737441153b0c6d7a700031071072531997fa39e54f328309637057aa295f9024e404 2023-11-16 19:41:05.750 - debug: wireless-mbus.0 (865) 5344a51124328880760718d18c20fd900f002c2555810000fff1ef737441153b0c6d7a700031071072531997fa39e54f328309637057aa295f9024e404 2023-11-16 19:41:05.750 - error: wireless-mbus.0 (865) application layer message too short, expected 96, got 61 bytes 2023-11-16 19:41:05.750 - debug: wireless-mbus.0 (865) Parser failed to parse telegram from device DME-80883224 2023-11-16 19:41:06.166 - debug: wireless-mbus.0 (865) CUL: RX: 62353334344135313130303332383838303736303732464543384330 2023-11-16 19:41:06.182 - debug: wireless-mbus.0 (865) CUL: RX: 30463339303046303032433235413938313030303044343137333042373631443831313643444344393741393130303331303731304632303732303735 2023-11-16 19:41:06.198 - debug: wireless-mbus.0 (865) CUL: RX: 423733423045413437443235414433303035454636324231433844304445464635363931300d0a 2023-11-16 19:41:06.198 - debug: wireless-mbus.0 (865) CUL: Message received: 5344a5110032888076072fec8c00f3900f002c25a9810000d41730b761d8116cdcd97a9100310710f2072075b73b0ea47d25ad3005ef62b1c8d0deff5691 2023-11-16 19:41:06.198 - debug: wireless-mbus.0 (865) 5344a5110032888076072fec8c00f3900f002c25a9810000d41730b761d8116cdcd97a9100310710f2072075b73b0ea47d25ad3005ef62b1c8d0deff56 2023-11-16 19:41:06.198 - debug: wireless-mbus.0 (865) 5344a5110032888076072fec8c00f3900f002c25a9810000d41730b761d8116cdcd97a9100310710f2072075b73b0ea47d25ad3005ef62b1c8d0deff56 2023-11-16 19:41:06.198 - error: wireless-mbus.0 (865) application layer message too short, expected 96, got 61 bytes 2023-11-16 19:41:06.198 - debug: wireless-mbus.0 (865) Parser failed to parse telegram from device DME-80883200 ```
Screenshot of my configuration (click to expand) ![grafik](https://github.com/lvogt/ioBroker.wireless-mbus/assets/22733082/7b32783b-a9c3-4a48-b64d-1a20cf7612fd)

Versions:

lvogt commented 7 months ago

Without looking any further into this, my first guess is that you have configured a too small buffer in your nanocul firmware and it actually truncates the received messages.

Am 16. November 2023 20:56:07 MEZ schrieb Lukas Pusch @.***>:

Describe the bug
I have a nanoCul built by myself and a Diehl Hydrus 2.0 meter. The serial number matches with my meter. In the log of ioBroker (debug-level) I see the message application layer message too short, expected 96, got 61 bytes

To Reproduce
not sure what is going wrong, but I think the meter is not supported by this adapter. I think the meter from my neighbour is from the same type mine is DME-80883224 and I have the AES key here.

Expected behavior
The message should be decoded, the length should match

Screenshots & Logfiles

Logfile (click to expand) ```cpp 2023-11-16 19:40:47.629 - debug: wireless-mbus.0 (865) CUL: RX: 6235333434413531313030333238383830 2023-11-16 19:40:47.660 - debug: wireless-mbus.0 (865) CUL: RX: 373630373246454338433030463339303046303032433235413838313030303044384238353845303544334446394630413834413741393030303331303731304636453334393239313839454434334638323031334631324330333645353734434335313136394134314533410d0a 2023-11-16 19:40:47.660 - debug: wireless-mbus.0 (865) CUL: Message received: 5344a5110032888076072fec8c00f3900f002c25a8810000d8b858e05d3df9f0a84a7a9000310710f6e34929189ed43f82013f12c036e574cc51169a41e3 2023-11-16 19:40:47.661 - debug: wireless-mbus.0 (865) 5344a5110032888076072fec8c00f3900f002c25a8810000d8b858e05d3df9f0a84a7a9000310710f6e34929189ed43f82013f12c036e574cc51169a41 2023-11-16 19:40:47.661 - debug: wireless-mbus.0 (865) 5344a5110032888076072fec8c00f3900f002c25a8810000d8b858e05d3df9f0a84a7a9000310710f6e34929189ed43f82013f12c036e574cc51169a41 2023-11-16 19:40:47.661 - error: wireless-mbus.0 (865) application layer message too short, expected 96, got 61 bytes 2023-11-16 19:40:47.661 - debug: wireless-mbus.0 (865) Parser failed to parse telegram from device DME-80883200 2023-11-16 19:40:50.609 - info: admin.0 (390) <== Disconnect system.user.admin from ::ffff:10.20.2.11 2023-11-16 19:40:55.930 - debug: wireless-mbus.0 (865) CUL: RX: 6235333434413531313234333238383830373630 2023-11-16 19:40:55.961 - debug: wireless-mbus.0 (865) CUL: RX: 373138443138433030464339303046303032433235353438313030303039323538343445463241304341423637393543393741364630303331303731303243433146354634363738303745313942343044303438354434454239443330393937383831434545393836330d0a 2023-11-16 19:40:55.961 - debug: wireless-mbus.0 (865) CUL: Message received: 5344a51124328880760718d18c00fc900f002c2554810000925844ef2a0cab6795c97a6f003107102cc1f5f467807e19b40d0485d4eb9d30997881cee986 2023-11-16 19:40:55.961 - debug: wireless-mbus.0 (865) Found AES key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 2023-11-16 19:40:55.961 - debug: wireless-mbus.0 (865) 5344a51124328880760718d18c00fc900f002c2554810000925844ef2a0cab6795c97a6f003107102cc1f5f467807e19b40d0485d4eb9d30997881cee9 2023-11-16 19:40:55.961 - debug: wireless-mbus.0 (865) 5344a51124328880760718d18c00fc900f002c2554810000925844ef2a0cab6795c97a6f003107102cc1f5f467807e19b40d0485d4eb9d30997881cee9 2023-11-16 19:40:55.961 - error: wireless-mbus.0 (865) application layer message too short, expected 96, got 61 bytes 2023-11-16 19:40:55.961 - debug: wireless-mbus.0 (865) Parser failed to parse telegram from device DME-80883224 2023-11-16 19:41:05.719 - debug: wireless-mbus.0 (865) CUL: RX: 62353334344135313132343332383838303736303731384431384332304644393030463030324332353535 2023-11-16 19:41:05.750 - debug: wireless-mbus.0 (865) CUL: RX: 38313030303046464631454637333734343131353342304336443741373030303331303731303732353331393937464133394535344633323833303936333730353741413239354639303234453430343146420d0a 2023-11-16 19:41:05.750 - debug: wireless-mbus.0 (865) CUL: Message received: 5344a51124328880760718d18c20fd900f002c2555810000fff1ef737441153b0c6d7a700031071072531997fa39e54f328309637057aa295f9024e4041f 2023-11-16 19:41:05.750 - debug: wireless-mbus.0 (865) Found AES key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 2023-11-16 19:41:05.750 - debug: wireless-mbus.0 (865) 5344a51124328880760718d18c20fd900f002c2555810000fff1ef737441153b0c6d7a700031071072531997fa39e54f328309637057aa295f9024e404 2023-11-16 19:41:05.750 - debug: wireless-mbus.0 (865) 5344a51124328880760718d18c20fd900f002c2555810000fff1ef737441153b0c6d7a700031071072531997fa39e54f328309637057aa295f9024e404 2023-11-16 19:41:05.750 - error: wireless-mbus.0 (865) application layer message too short, expected 96, got 61 bytes 2023-11-16 19:41:05.750 - debug: wireless-mbus.0 (865) Parser failed to parse telegram from device DME-80883224 2023-11-16 19:41:06.166 - debug: wireless-mbus.0 (865) CUL: RX: 62353334344135313130303332383838303736303732464543384330 2023-11-16 19:41:06.182 - debug: wireless-mbus.0 (865) CUL: RX: 30463339303046303032433235413938313030303044343137333042373631443831313643444344393741393130303331303731304632303732303735 2023-11-16 19:41:06.198 - debug: wireless-mbus.0 (865) CUL: RX: 423733423045413437443235414433303035454636324231433844304445464635363931300d0a 2023-11-16 19:41:06.198 - debug: wireless-mbus.0 (865) CUL: Message received: 5344a5110032888076072fec8c00f3900f002c25a9810000d41730b761d8116cdcd97a9100310710f2072075b73b0ea47d25ad3005ef62b1c8d0deff5691 2023-11-16 19:41:06.198 - debug: wireless-mbus.0 (865) 5344a5110032888076072fec8c00f3900f002c25a9810000d41730b761d8116cdcd97a9100310710f2072075b73b0ea47d25ad3005ef62b1c8d0deff56 2023-11-16 19:41:06.198 - debug: wireless-mbus.0 (865) 5344a5110032888076072fec8c00f3900f002c25a9810000d41730b761d8116cdcd97a9100310710f2072075b73b0ea47d25ad3005ef62b1c8d0deff56 2023-11-16 19:41:06.198 - error: wireless-mbus.0 (865) application layer message too short, expected 96, got 61 bytes 2023-11-16 19:41:06.198 - debug: wireless-mbus.0 (865) Parser failed to parse telegram from device DME-80883200 ```
Screenshot of my configuration (click to expand) ![grafik](https://github.com/lvogt/ioBroker.wireless-mbus/assets/22733082/7b32783b-a9c3-4a48-b64d-1a20cf7612fd)

Versions:

  • Adapter version: 0.9.1
  • JS-Controller version: 5.0.12
  • Node version: 18.18.2
  • Operating system: debian11 (lxc)

-- Reply to this email directly or view it on GitHub: https://github.com/lvogt/ioBroker.wireless-mbus/issues/168 You are receiving this because you are subscribed to this thread.

Message ID: @.***>

lumapu commented 7 months ago

ok, will check that - thank you for you quick resposne!

lumapu commented 7 months ago

You are the master! 😉 Thank you again for your hint.

This line was the showstopper: #define TTY_BUFSIZE 128 and needs to be changed to #define TTY_BUFSIZE 300

For others facing the same issue, here is the working board.h:

board.h (click to expand) ```cpp #ifndef _BOARD_H #define _BOARD_H #include /* if you have an Arduino with only 8MHz disable the next line */ #define HAS_16MHZ_CLOCK /* if you are using a CC1101 module for 868MHz disable the next line */ //#define HAS_CC1100_433 #define SPI_PORT PORTB #define SPI_DDR DDRB #define SPI_SS 2 #define SPI_MISO 4 #define SPI_MOSI 3 /* die aufgelötete gelbe LED ist an PB5/SCLK angeschlossen! */ #define SPI_SCLK 5 #define CC1100_CS_DDR SPI_DDR #define CC1100_CS_PORT SPI_PORT #define CC1100_CS_PIN SPI_SS /* CC1101 GDO0 Tx / Temperature Sensor */ #if 0 #define CC1100_OUT_DDR DDRC #define CC1100_OUT_PORT PORTC #define CC1100_OUT_PIN PC0 #define CC1100_OUT_IN PINC #define CCTEMP_MUX CC1100_OUT_PIN #else #define CC1100_OUT_DDR DDRD #define CC1100_OUT_PORT PORTD #define CC1100_OUT_PIN PD3 #define CC1100_OUT_IN PIND #define CCTEMP_MUX CC1100_OUT_PIN #endif /* CC1101 GDO2 Rx Interrupt */ #define CC1100_IN_DDR DDRD #define CC1100_IN_PORT PIND #define CC1100_IN_PIN PD2 #define CC1100_IN_IN PIND #define CC1100_INT INT0 #define CC1100_INTVECT INT0_vect #define CC1100_ISC ISC00 #define CC1100_EICR EICRA /* externe LED */ #define LED_DDR DDRB #define LED_PORT PORTB #define LED_PIN 1 //#define LED_ON_DDR DDRB //#define LED_ON_PORT PORTB //#define LED_ON_PIN 1 #define BOARD_ID_STR "nanoCUL868" #define BOARD_ID_STR433 "nanoCUL433" /* define this device as a 433 MHz one */ /* this isn't done like a CUL by reading a port pin but instead a fixed value of 0 for mark433_pin is used */ //#define MULTI_FREQ_DEVICE //#define MARK433_PIN mark433_pin //#define MARK433_BIT 0 //extern const uint8_t mark433_pin; #define HAS_UART #define UART_BAUD_RATE 38400 /* ATMega328P has only one UART, no need to define the UART to use */ //#define USART_RX_vect USART0_RX_vect //#define USART_UDRE_vect USART0_UDRE_vect #define TTY_BUFSIZE 300 #define RCV_BUCKETS 2 // RAM: 25b * bucket #define FULL_CC1100_PA // PROGMEM: 108b #define HAS_RAWSEND // //#define HAS_FASTRF // PROGMEM: 468b RAM: 1b //#define HAS_ASKSIN /* Intertechno Senden einschalten */ //#define HAS_INTERTECHNO //#define HAS_TCM97001 /* Intertechno Empfang einschalten */ //#define HAS_IT //#define HAS_REVOLT //#define HAS_CC1101_RX_PLL_LOCK_CHECK_TASK_WAIT //#define HAS_CC1101_PLL_LOCK_CHECK_MSG //#define HAS_CC1101_PLL_LOCK_CHECK_MSG_SW /* HAS_MBUS requires about 1kB RAM, if you want to use it you should consider disabling other unneeded features to avoid stack overflows */ #define HAS_MBUS //#define HAS_ASKSIN_FUP //#define HAS_MORITZ //#define HAS_RWE //#define HAS_ESA //#define HAS_TX3 //#define HAS_UNIROLL //#define HAS_HOERMANN //#define HAS_HOERMANN_SEND //#define HAS_MEMFN //#define HAS_SOMFY_RTS //#define HAS_FHT_80b // PROGMEM: 1374b, RAM: 90b //#define HAS_FHT_8v // PROGMEM: 586b RAM: 23b //#define HAS_FHT_TF //#define FHTBUF_SIZE 174 // RAM: 174b //#define HAS_KOPP_FC //#define HAS_ZWAVE // PROGMEM: 882 #endif ```

@lvogt Do you think it would be possible to have some note to search in your wmbus-hardware?

lvogt commented 6 months ago

Hi, sorry for the late reply.

Do you think it would be possible to have some note to search in your wmbus-hardware?

I have no idea what you mean by that?

lumapu commented 6 months ago

Argh. sorry, I forgot to write about the context. Do you think it would be possible to have an additional log message which will be displayed if the message is to short and nanoCul is configured?

It's content can be: Consider if the buffer size of your nanoCul is big enough.