Heat meter - m-bus - reading via Tasmota IR

Hello all

It has been some time since I have been playing with HA but I have once again strugling with an idea.

I have a heat meter: Rossweiner Heat PLUS. I have also built IR communication board on the base of Wemos D1 mini (as described here IR Remote - Tasmota to be exact N2222 option). I have checked it out and it seems to be working well - can read and send raw data.
Basicaly this heat meter comes under lot of brands like Qundis heat 5, Ivar HMR-D (not sure of version ivar has couple of these) or just no name Heat Plus meter.

The idea is to get any data once, a day about amount of used heat. Using M-bus protocol via InfraRed

I have been studying :
https://tasmota.github.io/docs/Tasmota-IR/
https://tasmota.github.io/docs/IRSend-RAW-Encoding/
https://www.diehl.com/cms/files/254374-FR-EN-RAY_RADIO_CommunicationDescription_v04_EN.pdf?download=1
https://assets.danfoss.com/documents/DOC266551583039/DOC266551583039.pdf

So it is almost sure that parameters should be :
Scan frequency 0.5 Hz, wake-up signal 0x00
9600 bauds
8 data bits
Even parity
1 stop bit

…… and at this point I have realized I bit off more than I can chew. Probably because I have some gaps in knowledge of how devices are communicating.

What i can see in console if don`t do anything is

20:36:48 MQT: tele/tasmota_F5B57A/RESULT = {"IrReceived":{"Protocol":"UNKNOWN","Bits":3,"Hash":"0x22AE7A29","Repeat":0,"RawData":[80,19758,78,34872,80],"RawDataInfo":[5,5,0]}}
20:37:38 MQT: tele/tasmota_F5B57A/RESULT = {"IrReceived":{"Protocol":"UNKNOWN","Bits":3,"Hash":"0xFEAC02E5","Repeat":0,"RawData":[84,1162,172,406,116],"RawDataInfo":[5,5,0]}}
20:38:12 MQT: tele/tasmota_F5B57A/RESULT = {"IrReceived":{"Protocol":"UNKNOWN","Bits":5,"Hash":"0x66EB4AB8","Repeat":0,"RawData":[238,36524,140,29184,322,29950,74,502,124],"RawDataInfo":[9,9,0]}}
20:39:20 MQT: tele/tasmota_F5B57A/RESULT = {"IrReceived":{"Protocol":"UNKNOWN","Bits":3,"Hash":"0xFCABFFBF","Repeat":0,"RawData":[80,450,156,4308,120],"RawDataInfo":[5,5,0]}}
20:39:22 MQT: tele/tasmota_F5B57A/RESULT = {"IrReceived":{"Protocol":"UNKNOWN","Bits":3,"Hash":"0x4AB0F7B5","Repeat":0,"RawData":[74,42908,56,23478,90],"RawDataInfo":[5,5,0]}}

On one had it is surprising that energy efficient device like this is sanding so much data, and on the other it is good since according to this post Request: Send / Receive RAW IR data for any UNKNOWN device · Issue #2116 · arendst/Tasmota · GitHub
“correct JSON message would return two equal numbers followed by a 0“.

So what I got together for wake up is :

IRSend raw,
9600, -(Hz) frequency referring to 9600 bauds in binary communication
8600,header mark duration
4260, header space duration
544,bit mark duration
411,zero space duration (µs)
1496, one space

^ basically I did copied these from tasmota docs
and according to linked DIEHL documentation:

01010101 - sync bit could not find any info about how it should work but since it is for setting up contrast i concluded that it shoud be flashing
11111111 - BOF pretty much same as above I asumed that it should be all ones
00000000 - long field low byte
11111111 - same as above but high
00000000 - same as above but low
11111111 - same as above but high
1110000 - C field

And when sending:

IRSend raw,9600,8600,4260,544,411,1496,0101010111111111000000001111111100000000111111111110000

And after sending this only thing that has changed is that I am receiving data more often. Before the first try it was once every 5-10 min now it is sending data a few times per minute.

I am aware that it should be also app layer of this protocol wich may be not accesible but I have seen integration for wired m-bus so I hope it will be accesible.

I would be grateful for any tip.

Hey! I’m curious if you managed to get the Rossweiner working and have readable data in HA. I have a Rossweiner HEATone model, which have ir transmitter so it should be a similar method for me.
Second question that I have is how do you plan to integrate it with HA? I would be lovely to use the Energy panel, but it do not have a suitable device category.
Many thanks! Bartek

Unfortunately I had no luck (patience) with this one. I had not enough knowledge to finish this… Personally I think that integrating this can be done in multiple ways (still chance that I am wrong) and decoding frames is the hardest part. I have even bought replacement for this heat meter but no luck with that either. Last thought that i had about it was using M-bus protocol with wired TTL-UART module with esp32 running (built it for another project and never used it).

Hm, that is sad. I have some free time next days, maybe I will try to push this integration forward. Unfortunately, I can not replace this heat meter as it is provided from the company that is charging me for the heating :slight_smile: Will post here update If I will come with a solution.

Hi, same problem here…
I have the meter connected by optical interface
a custom one, made by the producer of the centralized accountig system (rs458 that i’ve alredy tried to scan),
But in fact, there is not a centralized accountig system…
so i’d like to use this interface to retrive the data…
so let me know if there is any update.

What do you think to use the Irda interface?
like the integration of Landis+Gyr: Landis+Gyr Heat Meter - Home Assistant

In the documentation of the Siemens clone of this heat meter is written that you could read the consumption via the Irda interface…

Welcome to the community and sorry for late reply. I think that any IR transmiter/receiver can communicate, problem is how to interpret data. It should not be hard for someone with experience since IR requires physical presence and should not have additional security layers.

Is anyone still interested in making it work? I could share communication protocol specification of the heat meter.

Well, it still needs"to be done" so I am interested. Just can`t promise how much I can be involved right now.

Yes, I’m very interested. I just don’t know how to implement it.