Tiemme 4Heat Stove WiFi Controller

I’ve managed to get some info on RS485 it uses RJ45 connector with the following pinout

PIN4 → A/+
PIN5 → B/-
PIN7 → +12V
PIN8 → GND

Regarding the protocol being used for screen is Modbus RTU at 19200

I was able to get some messages decoded with IONinja but modubus message lengths are all wrong most of them have length which is not multiple of 2 bytes and. And messages are somewhat fine until touch screen is connected. Connecting the screen starts returning all sorts of bad data and most of the messages have invalid checksums. But I was able to get some messages decoded when it send the firmware version of the screen on the bus.

Maybe they are using some sort of custom modbus implementation so a further debugging is needed. I’m working for the first time with modbus so any suggestions from someone with experience are welcome

In any way i think modbus is very complex protocol for remote control. Getting info on RS232 will be a way better solution but I don’t have the 4 heat module to be able to sniff the communication.

I have the module. It uses RJ11 cable and only the 4 wires in the mid. I think it is straight cable. How can I help? @najdanovicivan

First we need to find the correct pinout

RJ11 is 4pin connector. On NG21 board there is RJ12 which has 6 pins.

Does the module uses any other cables beside that one ? eg. external cable for power supply

Can you also check how many wires are inside the connector on the NG21 (Main Board) side and how wires are places. Eg colors/pin positions. Image of the bottom side of that connector will be useful

I found this video Installation 4HEAT MORETTI DESIGN - YouTube

So it uses only one cable. So we should at least have 4 wires, GND, VCC, RX, TX

2 Likes

@najdanovicivan
Ivane,
i just took photos of the cable, as I suspected it is a straight cable and uses only the mid 4 pins. Here is the photo.

@zauberertz
Thomas,
I tried the wifi commands CF6 then CF7. After receiving the info of my wifi setup with CF7, the 4heat device went dumb, no communication, anything. Resetting from the power supply was not working, so I reset it via the button. During the setup with the app, the device didn’t save the config and was ready to setup again (blinking blue and red).
At some moment I tried and added fixed IP, instead of using DHCP. That worked. Now I use fixed IP.

Thats might the same issue I had with my unit.
I have been able to recover it. My problem where that it did not find its way back into my wifi. So I gave it a different IP at the DHCP cause the script was still running and tried to pull data. After completing the setup i switched back to the original IP and everything worked fine agin.

It looks like the CF commands put the device in a special state where you not able to pull data. Further more it causes issues when you do so.

I have build about 70% of the integration and hope to finish to night .

1 Like

do you plan to do autodiscover?

I couldn’t get it working. I saw some code in the service.js but it did not work right away. My main interest is to be able to automate the stove and monitor it conditions.

2 Likes

Intgration is ready to test, let me know how it’s behaving.

3 Likes

will test it as soon as i get at home :slight_smile:
I checked the code, i think the error notification should be added to the todo list :slight_smile:

Thanks for the effort!
I have added the integration, quite often the sensors are “Unavailable” for some reason is it the same for you?

What about all “Stove UNxxxx” do we have to find the names of those?

Same here, maybe i have to build a better pull mechanism.

Right, I were not able to find any info. Some model / serial number information would be great as well.

The error information is available as sensor so you are able to send notifications via automation.
I might have to update the sensor to display the text.
Or did you mean of something different?

@zauberertz
…regarding the error readback

This is the normal communication:

Tx: [“SEL”,“0”]
Rx: [“SEL”,“11”,“J30001000000000000”,“J30002000000000000”,“J30005000000000027”,“J30006000000000000”,“J30011000000000110”,“J30012000000000000”,“J30017000000000029”,“J30020000000000000”,“B20180000000000070”,“B20005000000000030”,“B20006000000000080”]

But when there is an error, the communication looks like this:
Tx: [“SEL”,“0”]
Rx: [“ERR”,“1”,“5”]

It says only that there is an error, but this is not the error number (the cause)
To get the err number (the cause) this is the next step after receiving : [“ERR”,“1”,“5”]

Tx: [“SEC”,“3”,“I30001000000000000”,“I30002000000000000”,“I30017000000000000”]
Rx: [“SEC”,“3”,“J30001000000000009”,“J30002000000000012” ,“J30017000000000038”]

and there is the error number at J30002 attribute
This is the only way to find the error number, that I managed to find out.

The error list is at this post:

I have the integration running for 2 days now.

I might have might hit a rate limit now.

Error fetching 4heat data: Invalid response from API: [Errno 111] Connection refused

I’ll try to change the the poll interval from 20 to 60 sec

1 Like

For me it’s still working, although from time to time the device itself seems to struggle with something in general because i have ping responses coming from it with up to 2-3sec, while usually should be 2-3ms

like here for example:

Request timeout for icmp_seq 21
Request timeout for icmp_seq 22
Request timeout for icmp_seq 23
Request timeout for icmp_seq 24
icmp_seq=23 ttl=64 time=2020.794 ms
icmp_seq=24 ttl=64 time=1017.730 ms
icmp_seq=25 ttl=64 time=13.670 ms
icmp_seq=26 ttl=64 time=3.466 ms
icmp_seq=27 ttl=64 time=4.125 ms
...

@azos, probably it is the network, maybe WiFi too far away?

Installed it… and it is running smoothly :slight_smile:
I checked… the error number is not working, but this is a good job already,
kudos @zauberertz

image

image

On my stove it is working OK.
I’ll check what i can do.

1 Like

@zauberertz i figured out the errors, now that is working. However, the switches are not working, coz the codes are different. Any idea to overcome this? Maybe selecting the stove type at the setup window?