Tiemme 4Heat Stove WiFi Controller

Hey - what’s your config look like? Are you able to write anything to the boiler - I’ve got a SY400-REV5 and I’m trying to figure this out but not getting anywhere lol

So I’m now able to get a bunch of information out of the boiler - controlling the thing doesn’t work though

I’m guessing I’m unfortunate enough to have the AT command version?

My backup plan is to utilise a shelly to do the ‘HV thermostat’ trick and keep this in place for reading data

Alternatively I was thinking if it was possible to send the AT commands with just ESPHome config - investigating that atm

I tried this - as per previous posts in the thread and the linked spanish manual - this doesn’t seem to work either - I wonder if it’s because it’s currently in chrono mode?

  - id: On_service
    name: on service
    platform: template
    on_press: 
      - uart.write: [0x0d,0x0a,0x2b,0x43,0x4d,0x54,0x49,0x3a,0x20,0x22,0x53,0x4d,0x22,0x2c,0x31,0x0d]
      - delay: 1.5s
      - uart.write: [0x0D, 0x0A, 0x2B, 0x43, 0x4D, 0x47, 0x52, 0x3A, 0x20, 0x22, 0x52, 0x45, 0x43, 0x20, 0x55, 0x4E, 0x52, 0x45, 0x41, 0x44, 0x22, 0x2, 0x22, 0x2B, 0x33, 0x39, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x31, 0x22, 0x2, 0x2, 0x0D, 0x0A, 0x53, 0x74, 0x61, 0x72, 0x74, 0x0D, 0x0A, 0x0D, 0x0A, 0x4F, 0x4B, 0x0D, 0x0A]

@matchett808-gh
I think the easiest way to know which datapoints will work on a specific board is to use a usb-rs232 converter like

https://es.aliexpress.com/item/1005005016053159.html

If you send with a hyperterminal (I use Termite) a datapoint for instance ON J30253000000000001 08 4a 33 30 32 35 33 30 30 30 30 30 30 30 30 30 30 30 31 0d (the hex command includes the backspace and the CR)

If the stove turns on you don’t have to use AT commands, and that command should work in the integration.

If you send the A20364000000000000 and the board respond B20364000000000004 and your stove is working at power 4, this command will work in the integration-

I have updated the manual in Spanish

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

At the end I say how to test the commands, when you do the tests tell me if you have any questions

EDIT

If you read the previous posts you will see that rs485 communication has already been discussed and even that the pinout is known and that the communication is a modbus, for instance post 178,179, 180 etc

Has anyone sniffed the messages about setting the chrono function to turn the stove on/off at a specific time

I have MB250
I follow this step on espaniol forum

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

I use a esp32S with converter
my yaml is:

    

esphome:
  name: 4heat-controller
  friendly_name: Stove

  platformio_options:
    build_flags: "-std=gnu++17"
    build_unflags: "-std=gnu++11"

external_components:
  source: github://leoshusar/4heat-esphome

uart:
  tx_pin: GPIO1
  rx_pin: GPIO3
  baud_rate: 9600

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: |-
      auto size = data.size();
      return
        data[size - 1] != '0' ||
        data[size - 2] != '0';

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

select:
  - id: power
    name: Power
    platform: fourheat
    datapoint: B20364
    options:
      1: "P1"
      2: "P2"
      3: "P3"
      4: "P4"
      5: "P5"
      6: "P6"
      7: "Auto"

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

  - id: room_thermostat_state
    name: Room thermostat state
    platform: fourheat
    datapoint: J40007
    parser: return data[data.size() - 3] == '0';

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

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

  - id: puffer_temperature
    name: Puffer temperature
    platform: fourheat
    datapoint: J30012
    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

  - id: airflow
    name: Airflow
    platform: fourheat
    datapoint: J30026
    unit_of_measurement: Nr

number:
  - id: boiler_target_temperature
    name: Boiler target temperature
    platform: fourheat
    datapoint: B20199
    device_class: temperature
    unit_of_measurement: °C
    min_value: 0
    max_value: 90

filled out correctly, but does not receive any sensor data
LOG

wowww… I inverted pin TX with RX
now I see some sensors…
I get an error on the power

maybe it’s because I have a fireplace that works both pellet or wood. now it’s on wood operation,
I have to find the command to switch from wood to pellet

I need this option:

and some sensors don’t work… and above all what doesn’t work is the pump which always remains OFF even when it is on

For NG21 owners.
Since the new heating season is starting, I was able to test my new yaml and I added now the Night Mode option. The updated yaml is somewhere above, instead of my original version. There is also an explanation of how Night Mode works.
As far as I understand, Night Mode is not an option for many boards. However, if this option does exist, it will most likely work just like in ng21 boards.

I have no ide about MB250 but when you have log errors or some sensors are missing, but in general everything else is working, most probable cause is wrong datapoint. Not all boards use same datapoints and even in same board but with different stove it could be different.
Example: board could have options for more that one pump. Every pump will have different datapoint. Ultimately it is manufacturer decision witch options available they actually use.
Are you sure that your pump should be in binary sensor section?
As far as I have noticed J30xxx datapoints are usually sensors or text sensors, B20xxx numbers, binary should be J40xxx.
Maybe in MB250 it is different?

I don’t know. How can I find out these codes?? I bought the usb-rs232 converter. How do I use it to understand those commands that I’m missing?

I do not do communication sniffing, there are others here who do that. For my board I have everything.
For starting it would be easier to look at here and other forums for people with similar board. When not exactly same, you can try parts from other boards yaml, sometimes this works sometimes not. It is easy to try it out.
Sniffing communications would be much more complicated but maxgu and some others do that.

I used the sample yaml. No one here has the mb250

It is actually possible to get it only by documentation but for that your will need really good relationship with some stove technicians or have some good friend in stove showroom/seller.
Basically you will need to get documentation like that (this is not your board) http://www.karmek.it/wp-content/uploads/2021/04/amalfibr270120.2124.vers_.1.0-NG21.pdf
If your are able to get similar document about your board you will have most, if not all needed datapoints. Only other option will be communication sniffing.

this link is broken

This happens eventually with web links. unfortunately directly here it is only allowed to add image files. Some clips from that


damn… no one from mb250 gives me that, I asked tiemme, but he doesn’t even answer me.
but can’t I sniff the command with a usb>rs232 key?

As I told - you will need really good friends in right places to get those papers. Also about communications sniffing - as I told, you need to ask from maxgu and others. Look above who are talking about that topic.

Ciao a tutti, io possiedo una stufa idro marca tft e monta scheda tiemme ng21 e ho il modulo 4heat, vorrei integrarla in home assistant potete aiutarmi? Grazie
Ho provato con l’integrazione di HACS ma mi da solo 2 entità nulle.

@giorgiofrata
Parece que hay 2 HACS el original

y este modificado que tiene menos problemas