Tiemme 4Heat Stove WiFi Controller

No one needs actually all the data points but I was able to add all I needed.
I also have to say that it is not really necessary to sniff out the data points, at least it is not necessary to do so if you manage to find the relevant documentation. For example, my TiEmme board, which setup description happens to be here: http://www.karmek.it/wp-content/uploads/2021/04/amalfibr270120.2124.vers_.1.0-NG21.pdf
If, for example, you look at some random line there:

241 Ih 58: Isteresi Termostato Th58 °C 2 1 20

The fist number “241” is the actual datapoint. In your code you add prefix J or B and 30 or 20 and you are ready to go.
If I understand it correctly J must be simple datapoint and B should be for input like boiler target and so on. Also from my experience there is no difference if you use as prefix 20 or 30 (B20241 or B30241 should have no difference) but obviously I have not tested that with all my code and I could be wrong about that.
Of course, if there is no documentation for your specific board you are out of luck. :cry:

I think there are two different controls.

One is the 4heat control, which basically consists of using the display commands via internet, power change, set temperature, etc.

Discovering those datapoints was the Тони Станојоски work and others, in the begining of this post.

Another is the control of the Tiemme technicians that allows set up Tiemme board via internet instead of entering Tpar technical menu, which are the parameters Tpar of the technical manual with the same name of your pdf, smoke fan speed for each power, auger time, etc…

For instance if you send the datapoint A20182000000000000 the password appears.

The 4heat datapoints are not the same in all stoves, and the problem is knowing what the specific datapoint is, for instance datapoint power change of the jorgezazo stove is not the standard and he discovered it because he had the 4heat module.

If you have the stove at power 1 and you get all the datapoints, and then you put it at power 5 and you get all the datapoints, and using a data analysis tool you see which datapoint has changed, it seems clear that that datapoint should be power change.

So I think that it would be useful to have all datapoints to know the important datapoints of a specific stove, which does not use normal datapoints, for instace in your case night mode.

It is clear that some datapoints across different boards overlap, some do not. However, it is quite a hopeless task to find datapoints for all existing boards by sniffing. Especially since people can have the same specific oven/board in a completely different setting, buffer or not, etc. In the pdf I referred to, I found essentially all for me necessary datapoints, and tested them in about an hour. This approach seems significantly more efficient both in terms of time and the technical side. I suggest that most people (like me) don’t have the equipment and probably also don’t have the skills.
Of course, in the end, some specific things will be left open that cannot be found otherwise, but the first choice for people who come here to find information about their oven should always be to search for similar documentation. It is possible that the benefit is even from the same document if the datapoints should overlap.
As for nigt mode, it would probably also benefit everyone. I have so far turned off my furnace at night, which means that in winter the water is mostly cold in the morning. My problem is that Tiemme has this mode, but Moretti has not added it to the user menu. It’s the same as with Android, where each manufacturer plays with the menus according to their own wishes. There are probably more such people like me. The only option here is to use sniffing method by someone who also has such a function in the menu.
However, if there is need to make the use of ovens in HA even more convenient in some distant future, it would probably be useful if the oven timer could also be set using HA. But so far I haven’t found any hints anywhere that this is even feasible.

Regarding your pdf datapoints, as I said before, it is for setup of the Tiemme board and it is usually done only once, you can do the same through the display by entering the tpar, and with the Tiemme manual for each board, my post 186 is of ng01 hydro board.

For instance , if you want to activate night mode in NG01 board , enter parameter p100=1 deactivates Load Engine, p103=1 deactivates Cleaning Engine, but has your oven load and cleaning engines?

So I don’t see any interest in using this data as datapoints.

I don’t want to find datapoints for all existing boards, what I want are the datapoints for a specific board and a specific setup,
.
In other words, for instance NG21 board, setup with buffer etc, what are the datapoints?.

If I want to know the set temperature datapoint, I try it with 23º and 39º and I see which datapoint has changed.

About oven timer, if you use oven timer with the display, you cannot use the oven timer through datapoints and vice versa.

Literally all datapoints for buffer, sensors and lot of other things for NG21 are in that pdf which I gave the link above. As I already mentioned, it only took me an hour to find and test all the necessary datapoints. You can always look at my yaml.

I dont care! If there are all (or almost all) datapoints needed who cares how Tiemme technicans use that document.

Anyone lucky enough to find a similar pdf for their board model will probably get 90% of the datapoints they need to set them up without the any unnecessary trouble. The different setups for oven is most likely more complicated problem as it is very unlikely to find documentation for each setup. But 90% of things overlap. You must also probably find that looking for the missing 10% is much less of an effort

Reason why I asked about timer is that regarding to Tiemme manual night mode works basically as timer in user menu. User must set up time period from menu when night mode is on. Accordingly, I also have a logical conclusion that there should be a separate data point for night mode. But for now this is nothing more then quess and there is no way I can prove or disprove it.

The datapoints that I want are of this type

“30001”: [“State”, None, “”],
“30005”: [“Exhaust temperature”, TEMP_CELSIUS, “”],
“30006”: [“Room temperature”, TEMP_CELSIUS, “”],
“30008”: [“Combustion fan”, None, “”], #RPM
“30009”: [“Heating fan”, None, “”],
“30011”: [“Combustion power”, None, “”],
“30012”: [“Puffer temperature”, TEMP_CELSIUS, “”],
“30017”: [“Boiler water”, TEMP_CELSIUS, “”],
“30020”: [“Water pressure”, PRESSURE_MBAR, “”],
“30026”: [“Air flow”, UNIT_NR, “”],
“30033”: [“Exhaust depression”, PRESSURE_PA, “”],
“20180”: [“Boiler target”, TEMP_CELSIUS, “”],
“20199”: [“Boiler target”, TEMP_CELSIUS, “”],
“20364”: [“Power Setting”, None, “”],
“20493”: [“Room temperature set point”, TEMP_CELSIUS, “”],
“20801”: [“Heating power”, None, “”],
“21700”: [“Room thermostat”, TEMP_CELSIUS, “”],
“50001”: [“Auger on”, None, “”],

and so on

These datapoints work on some stoves and not on others, and I want to know the datapoints for a stove where these datapoints do not work and are different.

Can you tell me where these datapoints are in your pdf?.

Because if they are not in your pdf, that information is useless for what I want, because I prefer to do it through the display.

If you are not going to make the program that I want, why are you asking me how I am going to use it?

My scheme is MB250
does your circuit esp32


also work with my board? I see that but the rs232 socket is different

I already have most that I needed. The basic things were in the leohusar initial setting, I found everything else I needed in pdf. Basically for me everything is functional now, in future for added convenience would be good to find some additional datapoints. If I can’t find the corresponding documentation, then maybe never.
As I have already mentioned, I miss “night mode” and some way to to correct oven time/clock .

I don’t know if the pdf I referred to has suitable data for you, because it is probably not the data of your board. It is important to me that if someone who needs information about NG21 looks in this thread, they can now look in that pdf.

Lets say somebody needs to find buffer thermostat threshold…
Now you look at section “Termostati” and scroll to section “Termostati Sonda Puffer” where “241 Ih 58: Isteresi Termostato Th58” is probably your needed thermostat and 241 is your datapoint. Only thing now is to add prefix 20 or 30 , that is datapoint 20241 and try it out.
So your “Room temperature set point” is in section “Termostati Sonda Ambiente” and so on.

As I already said, I don’t know if there is any information you need, and there is always probably something that cannot be found in this way. Since most people lack the technical capabilities and skills to find the necessary information in some other way, finding that information from the documentation is probably the only real solution for the majority of people.
I must emphasize again that this pdf is for the NG21 and owners of other boards should probably use google to find their board’s documentation for better results.

My personal recommendation is to just give it a try. If you use the hardware whose drawings I posted, it costs only 10-15 eur/usd from Aliexpress. So the only loss is the time spent waiting for things. If your wiring to rs232 is different u need to figure out that part yourself. For my board there are pins 1-3 in use.
With MB250 u probably need to change the yaml a bit. That’s when HA already sees the stove u can look at device logs and simply remove thigs that give error.

@leoshusar

About

From this link in Spanish you can see how I think the night mode works.

https://www.solarweb.net/forosolar/usuarios-biomasa/56621-comunicacion-rs232-modulo-wifi-4heat-tiemme.html#post480525

By the way, I don’t have homeassitant and I know very little about programming, before begining to do anything I would like to know your opinion because you know a lot about if it is easy to make a program in arduino and mqtt, just to change the set temperature (B204930000000000xy) and see some parameters such as smoke temperature (I30005000000000000).

Has anyone improved the integration with 4heat? Is there no way to enable the switch from wood to pellet?

please is there a way to attach a Shelly to change the selection from wood to pellet. or from pellet to wood? or with an esp etc. who can help me? I pay for the trouble

Hi, I was able to successfully run the integration from @leoshusar for the Ferroli 12KW PRO boiler, which has the NG01 mainboard. Thanks for great deal of work to you guys. I also encountered issues with cheap MAX3232 converters and swapped it out, and importantly, I only achieved fully stable operation using 3.3V (I have a WEMOS S2 mini).

Of course, at the beginning, only part of the sensors worked, but I managed to figure out some of them, though I still have some checking to do.

I’m primarily interested in getting the temperature from the external hot water tank and the on/off status of the second pump for the external hot water tank (I have two pumps). If anyone has information on how this works for Ferroli boilers, I would appreciate it. Below is my config.

fourheat:

switch:
  - id: state_switch
    name: State
    platform: fourheat
    restore_mode: DISABLED
    datapoint: J30001
    on_datapoint: J30253
    off_datapoint: J30254
    on_data: '1'
    off_data: '1'
    parser: |-
      if (id(state) != 0) {
        return true;
      } else {
        return false;
      }

binary_sensor:
  - id: water_pump_state
    name: Water pump state
    platform: fourheat
    datapoint: J30084

  - id: stove_offline
    name: Stove offline
    platform: fourheat
    type: module_offline
  
sensor:

  - id: exhaust_temperature
    name: Exhaust temperature
    platform: fourheat
    datapoint: J30005
    device_class: temperature
    unit_of_measurement: °C

  - id: boiler_temperature
    name: Boiler temperature
    platform: fourheat
    datapoint: J30017
    device_class: temperature
    unit_of_measurement: °C

  - id: water_pressure
    name: Water pressure
    platform: fourheat
    datapoint: J30020
    device_class: pressure
    unit_of_measurement: mbar
	
# its air flow
  #- id: puffer_temperature
  #  name: Puffer temperature
  #  platform: fourheat
  #  datapoint: J30026
  #  device_class: temperature
  #  unit_of_measurement: °C

  - id: air_flow
    name: Air flow
    platform: fourheat
    datapoint: J30026
    device_class: VOLUME_FLOW_RATE
    unit_of_measurement: m³/h

  - id: combustion_fan
    name: Combustion Fan Speed
    platform: fourheat
    datapoint: J30008
    device_class: speed
    unit_of_measurement: rpm

#TODO Investigate on idle its 110. During boiler run value is 0-10
  - id: combustion_power
    name: Combustion Power
    platform: fourheat
    datapoint: J30011
    device_class: power_factor
    unit_of_measurement: ""

#TODO Probably not heating power - output is constant 10
  - id: heating_power
    name: Heating Power
    platform: fourheat
    datapoint: B20801
    device_class: power_factor
    unit_of_measurement: "Nr"

#TODO Auger output should be multiplied by 0.01
  - id: auger_on
    name: Auger
    platform: fourheat
    datapoint: J50010
    device_class: speed
    unit_of_measurement: s
	  
 # doesnt work
 # - id: service_hours
 #   name: Service Hours
 #   platform: fourheat
 #   datapoint: B20118
 #   device_class: duration
 #   unit_of_measurement: h

#TODO rather not ignition, constant 1 on output
  - id: ignition
    name: Ignition
    platform: fourheat
    datapoint: J30004
    unit_of_measurement: x

text_sensor:
  - id: state
    name: State
    platform: fourheat
    datapoint: J30001
    options:
      0: "OFF"
      1: "Check Up"
      2: "Ignition"
      3: "Stabilization"
      4: "Ignition"
      5: "Run"
      6: "Modulation"
      7: "Extinguishing"
      8: "Safety"
      9: "Block"
      10: "Recover Ignition"
      11: "Standby"
      30: "Ignition"
      31: "Ignition"
      32: "Ignition"
      33: "Ignition"
      34: "Ignition"

  - id: error
    name: Error
    platform: fourheat
    datapoint: J30002
    options:
      0: "No"
      1: "Safety Thermostat HV1: signalled also in case of Stove OFF"
      2: "Safety PressureSwitch HV2: signalled with Combustion Fan ON"
      3: "Extinguishing for Exhausting Temperature lowering"
      4: "Extinguishing for water over Temperature"
      5: "Extinguishing for Exhausting over Temperature"
      6: "unknown"
      7: "Encoder Error: No Encoder Signal (in case of P25=1 or 2)"
      8: "Encoder Error: Combustion Fan regulation failed (in case of P25=1 or 2)"
      9: "Low pressure in to the Boiler"
      10: "High pressure in to the Boiler Error"
      11: "DAY and TIME not correct due to prolonged absence of Power Supply"
      12: "Failed Ignition"
      13: "Ignition"
      14: "Ignition"
      15: "Lack of Voltage Supply"
      16: "Ignition"
      17: "Ignition"
      18: "Lack of Voltage Supply"

button:
  - id: clear_error
    name: Clear error
    platform: fourheat
    datapoint: J30255

1 Like

@l4red0 Hello, I also have the NG01 mainboard, but I am struggling with the wiring. Could you kindly share some pictures of how you have arranged your wiring?

@achuchev Of course. Unfortunately, I haven’t had time yet to print the enclosure and solder everything permanently, but the diagram should explain everything. In my case (as I mentioned earlier), the cheapest MAX3232 to TTL modules caused issues, so I used a setup with a DB9 port, which had the same chip but from a different manufacturer. In my case, it was also very important to power the MAX3232 with 3.3V, as powering it with 5V caused problems with both the chip itself and the ESP.


[edit]
In my Config YAML:

uart:
  tx_pin: GPIO18
  rx_pin: GPIO17
  baud_rate: 9600
1 Like

Also I’ll share with my findings so far for my Ferrolli 12KW on NG01 board. Still lots of mysteries but I’m more than happy how its working so far.

I have not had any problems with the cheap seven-hole rs232-ttl module (the only one I have used).

I think that the power supply for the wemos mini d1 can be done through the 5V or 3V3 volt pins, but in the esp32, for instace the dev kit has only the 3.3 volt pin and the VIN pin can be an input power supply (5-12), so I only use the 3.3 Volt pin to power the rs23-ttl.

My tests in Spanish as wiring diagram examples for the wemos mini d1 and the esp32 dev kit.

https://www.solarweb.net/forosolar/attachments/usuarios-biomasa/31979d1729853441-comunicacion-rs232-modulo-wifi-4heat-tiemme-comunicacion-4heat-rs232.docx

My stove is air not hydro.

Basically what this integration does is the same thing that can be done through the display, so what cannot be done through the display may not be possible through the internet.

For instance datapoint I20118 which is the time for Serv to appear, this parameter must be activated and then you can see on display St or service.

'This is the manual for the Ng01 hydro

Only 20118 works, if in the Timer menu Tp05. T66 isn’t 0, and the stove goes into block or not depending on the setting menu Tp08 P66, by the way the command must be I20118 not A20118

How I think this is the equivalence of display commands and datapoints.

Combustion power, select from 1 to 6 plus 7 (auto) 20364

Co Auger Pellet drop at that moment I50010 (auger)

Auger program I30011 if the answer is 1 power 1 ( C03) , 2 power2 110 off or turning off, 255 ignition.

30004 if 0 stove off if 1 stove on.

yaml example from leoHusar

I think It shows the temperature of the puffer tank,

1 Like

@maxgu Yes, I’ve read your tests document it was very helpful for me, thank you :slight_smile:

For 30009 it must mean that in air stoves its heating fan and in hydro its second water pump. It makes sense.

I’ve found Auger pellet speed at 50010 and multiplied by 0.01 gives exact same value as on LCD display.

30004/ignition gives me constant 1 so it must be diffierent i my case.

Many thanks for NG01 manual, I’ll check it out and share datapoints if i find any for my ferroli.

Hey - trying to get this to work on a SY400-REV5 (specifically in a greenflame 28kw boiler) - had some trouble with getting anything out of the rs232 interface - has anyone had a look at the rs485 interface?

About

I’ve found Auger pellet speed at 50010 and multiplied by 0.01 gives exact same value as on LCD display.

It’s right see post 21

or 259 (download megafile)