I have a noob question not sure if someone can help with. I use the 4hest controller on a climat600 controller that takes care of my Flor heating system.
How do i get the id to control the variables as outdoor temp/ mixing temp for flor heating/ temp cold water/temp warm water?
I tried to get the system working with the 4 heat module but as you all can imagine with the same success as you on a stove.
@leoshusar Tiemme tachometer works as a hall effect sensor, according to the number of magnets that has the combustion fan disk, you can setup parameter Tp02 P29. (usually 1)
Password Burnit may be 1914
In my first tests SY100 VS NG01 I saw that they work very different.
I also think that it is very difficult to make an application compatible with all motherboards. In your excellent work, you have planned to setup the program very easy for each motherboard.
To avoid problems, the steps I would make before loading the program to esp would be:
Step 1 parameters that I want the application has
Step 2. Commands A,B,I,J that control those parameters
Step 3 Send those commands with a cheap RS232 USB module and see if they work and match the values on the display.
Step 4 Setup your program with those commands
Step 4 load program to esp.
What do you think?
About the SYSTEM PRO program
Manual
I have made a fast reading, it looks that need to have Tiemme hardware and it works over the internet (EVO)
If you get the SYSTEM PRO program, do you think you can use it locally and with your own hardware?
EDIT
I think that the values of the combustion fan and the air flow in your stove match is a coincidence , check that the value of 30008 and the reading on the display match.
xxxxxxxxx
Snap1202
I think that the 4heat module only works with Tiemme controller boards, if the climat600 controller is not made by Tiemme I think it is impossible that it works.
EDIT
Sorry, you said climat600, and Tiemme makes clima600.
I think your 4heat app is the same as for the stoves, if so I would see the rs232 traffic between the board and the 4heat module, and from that traffic try to get id, or sniffer traffic 4heat azzure
From these German links I think you can have more information than from Tiemme
german manual and video clima600
german and english manual clima500
Edit
Here you can see a lot of ID, called sensor types
So you can check what IDās work on your board and its meanings, with a usb rs232 module
Climat 600 is made by tiemme so it works but i dont get the system to stay online longer than a few hrs. So iam constantly resetting the wlan module but nothing helps. Would love to implement my floor heating mix temp into HA.
Attached a link to the controller (500 600 has apparently just a different housing)hope itās allowed
@maxgu yes, that was exactly my plan, to not hardcode any value IDs to any names, because they might be different on different models. Also when you for example set up external room thermostat, you donāt need the internal thermostat settings etc.
I didnāt think of looking at the display, I did now. There are these values - I added (x) to those Iām missing in my app currently:
Combustion fan [V]: 190 (so the 30008 value would be Voltageā¦ interesting)
Auger: ON / OFF (x)
Igniter: ON / OFF (x)
Water pump: ON / OFF
Airflow: 628
Exhaust temp [Ā°C]: 61
Water temp [Ā°C]: 23
Input IN2: 1 / 0 (x)
Input HV1: 1 / 0 (x)
Input HV2: 1 / 0 (x)
I will try those missing ones later, I donāt want to have missing values in my graphs due to OTA update
I would also like to implement some kind of āsend custom commandā, for these debugging purposes, Iāll see when I have time for it.
And here is a new piece of graph of the fan and airflow (still wrong RPM unit):
@leoshusar I have made a fast reading, it looks that need to have Tiemme hardware and it works over the internet (EVO)
If you get the SYSTEM PRO program, do you think you can use it locally and with your own hardware?
You can setup the combustion fan by r.p.m if it has a tachometer or by Volt if it does not have. Parameter P25 Tp02. what does the display show 4digit or 3?
Auger setting: TP01 P05 Period total time, C01/C12 time each stage, for instance if P05 =10 (10 sec) C03 =3 3 (sec) Power 1, Auger is on 3sec OFF 7 sec, if C08 =5 power 6 Auger is On 5sec Off 5sec.
What do you want to see how it changes ON/OFF?
About igniter is a resistor that heat pellet to begin ignition so is on when exhaust temperature is below of a parameter and OFF the rest of time
About Input IN2: 1 / 0 (x) Input HV1: 1 / 0 (x) Input HV2: 1 / 0 (x), H1,H2 another problem Tiemme as Nr.
If you look at the electrical connections diagram, you donāt see HV1 nor HV2 , but if you go alarms you can see HV1 HV2, pins 11,12,13, they are normally closed (pressure switch, thermostat), if it opens HV1 error ER 01, HV2 error ER 02
see Manual 3.4 Alarm.
About IN2 is a configurable input setupTP08 P77, configuration values page 9.
I would see how P44ā¦P82 is configured, and even in spring see what is connected to those inputs
l think can be usefull you see post 21 and download the last file, which is zip, open it and 4heat commands appears - cleaned.txt
EDIT
As it so strange for me that your combustion fan works by Volt, I have reviewed the P25 again.
If it is 0 it is clear that it is regulated by Volts, but the difference between 1 and 2 is that when it has an error in one case 1 you have to clear cause of bad reading and in 2 changes to 0 and it works as a voltage.
So please see which is the value of P25 on your stove.
Solved comands if combustion fan works by volts command I30025000000000000 is 0, and command 3008 is setuo value for this state
4heat app has a list of last errorsā¦ Is there any Er07 0 Er08?
EDIT
If a number does not appear in auger on the display even 0 if stove is stop , which are the seconds (C01ā¦C12), it is because P81 is not 0, then auger control is by r.p.m not by time
So i cuttet the rs232 cable in half an added a pcb in between so i have some points to grab rx and tx.
Unfortunately i dont have a data logger at my current place.Someone a good idea to sniff the communication maybe with the help of an esp8266 and max323 board?
I donāt really know about the SYSTEM PRO software. At least we would be able to (hopefully) extract ID names, like J30025 means XYZ etc. But my guess is it would work with regular RS232?
Page 25 shows error codes and there is 07 and 08. Iām sure it has to know somehow that the fan is or is not running, I just havenāt found where to read it yet.
I also tried J30004 (ignition) and J50001 (auger), both as found in the original HA integration, but these were not working for me. I havenāt debugged it properly yet, maybe it was returning {'0', '1', '0', '0'} instead of {'0', '0', '0', '1'} (like the room thermostat). But the stove display properly shows when they are on and off.
@leoshusar I quickly read the manual for your stove:
In the electrical diagram, pins 28,29 and 30 are for combustion fan encoder.
If the picture is of the combustion fan, what marked may be the hall effect encoder.
Can you check if there is a three-wire cable between pins 28,29,30 and the combustion fan?
If that cable exists, I would change P25=1. Does stove work or does it produce an error E07 0 E08?
With p25=0 the stove does not have a tachometer.
If J3008 =0 the fan is stop if J3008>0 the fan is running
If you send I30008 this value should match combustion fan on the display,
Er07 and Er08 only appear with an encoder but as I told you before, with P25=0 controller has not any input of any encoder.
As in computing everything is possible, if the encoder exists and when you set P25=1 the rpm appears instead of Volt on the display, it could be that first P25 was 2, it had an error, it started working as P25=0 and to work as P25=0, it changes P25 from 2 to 0.
Donāt do the test p25=1****Do the test setup P25=2 if alarm E07 or E08 appears, reset the alarm and you will see how P85 change to 0.
If stove works without error, I would put P85=1 because that way you will know that the stove has a problem if it happens again
.Tell me test result Please
EDIT2
If alarm appears(er07 or e08), I think it is not necessary to remove the combustion fan from the stove. If you want to know what I would do tell me.
So I just checked it, P25 is 0, P81 is 0 and I donāt see P85 at all in there. I also checked the wires and I indeed donāt have the encoder on my fan. Interesting.
@leoshusar Sorry, I made two mistakes when I said I3008 should be I30008, and P85 should be P25.
So is different the combustion fan than the picture and does not have a black plastic piece on top with a connector?.
As you donāt have an encoder, P25=0 is right
Since your stove manual has errors, now I have another question.
According to the manual (controller electric connection) your board is NG01, but you say that you can see on the display Combustion fan 190 Vol.
On page 14 Ng01 manual Tiemme, Fan on your display , on my display UF , you can only see if P25 is different from 0, and that is true in my display, I cannot see that value if p25=0
Do your stove has the NG1 board or a different one?.
I think that the easiest way to see which board it has is to see where the RJ11/12 RJ45 plugs and the display socket are.
Look system, motherboard.
But if you have any doubt, send me a photo of the board where I can see the plugs.
If you can, look at the Combustion Fan(V) display, the values should be 0 if the stove is off and one of these values V01ā¦V24 according on the stage of the stove.
If this happens, send the command I30008 and it must match the value on the display.
The fan is only off when the stove is off, so if you want to put a widget that tells you only if the stove is on or off, if J30008=0 stove off otherwise if J30008 other than 0 or I30008 >0 stove is on.
I canāt see Combustion Fan(UF) on my display, but I can see J30008.
J30008 is not the real voltage that the board sends to the fan, as I told you before they are values (V01ā¦V24), because the real value is adjusted to get the air flow values Fl20ā¦FL30 if A24=1.
Look at the value of A24, if A24=0 I think that the air flow does not control the fan, so your value should be A24=1
What happens if the fan stops or breaks down, there is no air flow, so there is not depression.
If there is not depression, Er02 is produced, with a T10 delay between the lack of depression happening and the error appearing,If there is not air flow, Er41 appear
The B20364 command tells you the power 1 to 6 but what is the Auto power?.
In auto mode it chooses one of the six powers, in other words there is not auto power.
How do you know what real power is working when it is auto?
See if auger appears on the display. If it appears, send the command I5001. If it works, look at the result and if it matches the display.
These values once the stove is stabilized should be C03ā¦C08, c011 modulation.
If the stove is in auto mode, and the auger value matches C05, the stove is working at power 3, if Auger value=11 the stove is in modulation.
I wish I hadnāt made too many mistakes
EDIT
There is a specific command to see if the stove is ON/OFF I30004 if J30004 0=OFF 1=ON
EDIT
On my old board UF (FAN) appears even if p25=0
EDIT
If I send the command C10000000000000000 I receive D10000SYEVO0000559 which in my case belongs to the stove manufacturer for which Tiemme has prepared that controller, in your case Kepo could be the 3 digits Firmware Code and revision: FYSr02000002.x.y.
In the official 4heat app, on the first screen if you go to setting, info, you can see something like this.
I think the 3 digits are the manufacturerās code for that pellet stove.
Product Code:āSYEVO0000559ā,
This matches with D10000SYEVO0000559
As the errors in Table 3.4 Manual Tiemme Alarms matches your data, it could be that error 06 was high pellet box temperature, thermostat open.
In some stoves the pellet box has a thermostat, to see that the pellets are very hot, point 6,4,2 pellet thermostat Tiemme manual.
The configuration of this output page 9, configurable input, Pellet thermostat
EDIT 4
As you talked about the IN2 input, I would see if P77=2 (Pellet Thermostat)
I also has updated Comunicacion 4heat RS232.docx file
About error list, I donāt know where you chose that list but if your stove has a air flow sensor I think they should be Er39, Er41 Er 42 see 6.4.9 Primary air regulator.
Why havenāt you chosen the error list from the official Tiemme manual?
If Er6 does not appear in your stove manual, then I believe that P77 is not 2.
EDIT 6
When you say āI also tried J30004 (ignition) and J50001 (auger), both as found in the original HA integration, but these were not working for meā I think you send I30004 (to know if the stove is ON/OFF) and I50010and you received J30004 and J50010
EDIT 7
Even the alarm errors are different depending on the board model, your board is the NG01 Hydro, the NG01 Air board which is mine, has the same hardware but different firmware, the errors that match are the same but on your board there are errors Hydro that there are not on the Air board,
Here is in Spanish the NG01 AIR board manual
Thatās because I think is so importance customize your excellent program
EDIT 8
About edit 6 you can see that I30004 and I50010 , (I think is I50010 not I50001) work even on oldest board looks picture to jorgezazo
Hi. I see you own a SY100 board stove. Mine is that model and of course the solution implemented by leohusar doesnāt work out of the box because of commands donāt match. Āædo you have any state read only command to prove with?
It seems that I work in a different way, to do all the tests I have only soldered the pins of the rs232-uart converters, and I have used Dupont wires and a protoboard.
I just did this test, and this is the result of sending several commands to the SY100 board.
To be sure, I would send the commands with a simple usb-rs232 converter and a easy program like termite, because if you use an esp and an rs232 converter, you have to program the esp and maybe you think that the program does one thing and does another.
To be sure that your board is a SY100, upload a photo of the board where the display, rj11 and rj45 plugs can be seen.
I looked for it and it was a SY100 by the components arrangement but a confirmation from your side will be good.
I donāt use any datalogger. I only use the leosusharās implementation for ESPHome from GitHub as isā¦ well changing UART pins to fit the ones in my Wemos D1. My knowledge of electronic is VERY limited, so Iāll learn how to send those commands through RS232 and would comment what I would get over here.
As Tiemme is Tiemme, my board, despite having the same name, is completely different, my SY100 old board is very simple and was one of the first that Tiemme made.
Your SY100, also known as MB100, is better than the NG01 and it is not an old board,so I think It could use the the new boards commands
This is the manual of my SY100 old board and as you will see that it is very simple, it does not even have the RJ45 socket
You will see that the MB100 board matches your board and is more expensive than the NG01.
Since I donāt know anything about esphome, I canāt help you
EDIT
If you want to check what it is really sending to Tiemme board , leoshusar has made a very simple datalogger for this with an esp32 that has several rx, tx ports (wemos D1 only has one) and two rs232-ttl converters.
I think the wiring from the wemos to the board, that you use it will be right:
EDIT2
Are you clear wiring diagram wemos uart rs232 converter
Uart rs232 converter rj11 Tiemme board cable?
What is your wiring diagram?
The leoshusar program should work with all Tiemme boards, including the MB250, except maybe the older ones whose power on/off is by AT Hayes commands
Iāll try creating another sensor to meassure the exhaust revolutions using I30025 and hope some cipher appears on itā¦ After that Iāll try the leoshusar RS232 logger
Thank you very much
EDIT:
I tried commands I30011 and I30005 that seems to answer some cypher according to your screen in other post, but the answer in my case was āUnknownā so no luck. I will create the data logger, but no 4Heat device so I must wait a little time until I get anyā¦ except if there is another way that by my lack of knowledge I canĀ“t see.
EDIT 2:
I have got an old RS232 logger over TCP that never used and I connect it to the stove. I configure it 9600, 8N1, flow control none and I get only hex dataā¦ all the time. It doesnāt stop and seems like this:
Ok. I can confirm that all soldering between Wemos & TTL-RS232 works properly. Using command āJ30001ā I get the stove state BUT I canāt get it automatically. Iāve got to reboot the ESP in every state change. Then it shows properly after ESP back to life in HA. Look at the āCommand Tryā and āStateā properties. They show in this image sequance all the stoveās states:
Does your pellet stove have water or just air, is it hydro or Air?
Which is your pelet stove ?
When you look at the display, do you see Fl or not?
Look. This is for air pellet stove
If your stove is only air, you cannot see boiler temperature, water pressure, etc., if Fl does not appear you cannot see Air flow.
If you have an RS232 logger over TCP it cannot work , because this is an RS232 serial communication.
To make the leoshusar datalogger, you only need an esp32 (because it has several uart ports) and two rs232 converters, you choose two ports of the esp32 and only use rx,
I think your wiring is wrong.
However, I have read that some manufacturers say the wiring that you have usedā
The rs232 converter does not change the transmit to receive, it changes the transmit uar to transmit rs232, and the receive rs232 to receive uart.
Look at the data sheet of the max 232 and 0n the right you can see it
I see in datalogger that protocol is empty, which protocols can you choose?
EDIT2
I would not do any tests before having the right wiring, since I do not understand inputs/outputs but TX/RX.
This is the the mini converter pinout that has arrows,
I think it is very strange that if you have connected the wemos as in the diagram and loaded the program you have these results.
The diagram is verified and the program I think it is also
Pinout of board converter is on the board ttl, Vcc,Gnd,Tx,RX rs232 RX****TX GND
EDIT4
Can you send me a picture of wemos,miniconverter and cable?
I would try to make an easy program to send, for instance, smoke temperature 08 49 33 30 30 30 35 30 30 30 30 30 30 30 30 30 30 30 30 0d and see what happens
Edit5
I have seen pictures and I think is all right
Here you can see, at the end (in Spanish) how to do leoshusar datalogger
Okā¦ Iāll try that wiringā¦ (hope this fix it And then Iāll burn the page I used as reference XD)
I disconnect the data logger Iāll look it later
Thank you so much for your help!
EDIT:
I donāt understand anythingā¦ restarting the ESP with RS232 - GND disconnected and reconnect inmediatly after ESP reboot I get dataā¦ but just for a few seconds, after that it got freeze and no data is updated.
EDIT 2: If I disconect the gnd wire from TTL side of MAX232 and reconnect again data is shown but not updated and selects or switches donāt work. The binary sensor āStove onlineā Shows a āProblemā
EDIT 3: I change the MAX232 to another one in case it was broken and change Wemos by another ESP8262 (NodeMCU). Same result than whith previous components
@leoshusar I tried to set the 4HEAT ESPHome into an ESP32 and an error stops the process. The error trace is this:
Compiling .pioenvs/hidroestufa-esp32/src/esphome/components/logger/logger.cpp.o
In file included from src/esphome/components/fourheat/fourheat.cpp:3:
src/esphome/components/fourheat/fourheat.h:4:10: fatal error: esphome/components/binary_sensor/binary_sensor.h: No such file or directory #include āesphome/components/binary_sensor/binary_sensor.hā
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
*** [.pioenvs/hidroestufa-esp32/src/esphome/components/fourheat/fourheat.cpp.o] Error 1
In file included from src/esphome/components/fourheat/sensor/fourheat_sensor.h:4,
from src/esphome/components/fourheat/sensor/fourheat_sensor.cpp:3:
src/esphome/components/fourheat/fourheat.h:4:10: fatal error: esphome/components/binary_sensor/binary_sensor.h: No such file or directory #include āesphome/components/binary_sensor/binary_sensor.hā
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
*** [.pioenvs/hidroestufa-esp32/src/esphome/components/fourheat/sensor/fourheat_sensor.cpp.o] Error 1
In file included from src/esphome/components/fourheat/helpers.h:3,
from src/esphome/components/fourheat/helpers.cpp:1:
src/esphome/components/fourheat/common.h:8:37: error: āoptionalā is not a member of āstdā
using parser_t = std::function<std::optional(const std::vector<uint8_t> &)>;
^~~~~~~~
src/esphome/components/fourheat/common.h:8:37: note: āstd::optionalā is only available from C++17 onwards
src/esphome/components/fourheat/common.h:8:37: error: āoptionalā is not a member of āstdā
src/esphome/components/fourheat/common.h:8:37: note: āstd::optionalā is only available from C++17 onwards
src/esphome/components/fourheat/common.h:8:47: error: template argument 1 is invalid
using parser_t = std::function<std::optional(const std::vector<uint8_t> &)>;
^
In file included from src/esphome/components/fourheat/helpers.cpp:1:
src/esphome/components/fourheat/helpers.h:18:86: error: āoptionalā in namespace āstdā does not name a template type
const std::string get_query_datapoint_id(const std::string &datapoint_id, const std::optionalstd::string &query_datapoint_id);
^~~~~~~~
src/esphome/components/fourheat/helpers.h:18:81: note: āstd::optionalā is only available from C++17 onwards
const std::string get_query_datapoint_id(const std::string &datapoint_id, const std::optionalstd::string &query_datapoint_id);
^~~
src/esphome/components/fourheat/helpers.h:18:94: error: expected ā,ā or āā¦ā before ā<ā token
const std::string get_query_datapoint_id(const std::string &datapoint_id, const std::optionalstd::string &query_datapoint_id);
^
In file included from src/esphome/components/fourheat/helpers.cpp:1:
src/esphome/components/fourheat/helpers.h:21:6: error: āoptionalā in namespace āstdā does not name a template type
std::optional parse(const std::optional<parser_t> &parser, const std::vector<uint8_t> &data);
^~~~~~~~
src/esphome/components/fourheat/helpers.h:21:1: note: āstd::optionalā is only available from C++17 onwards
std::optional parse(const std::optional<parser_t> &parser, const std::vector<uint8_t> &data);
^~~
src/esphome/components/fourheat/helpers.cpp:37:86: error: āoptionalā in namespace āstdā does not name a template type
const std::string get_query_datapoint_id(const std::string &datapoint_id, const std::optionalstd::string &query_datapoint_id) {
^~~~~~~~
src/esphome/components/fourheat/helpers.cpp:37:81: note: āstd::optionalā is only available from C++17 onwards
const std::string get_query_datapoint_id(const std::string &datapoint_id, const std::optionalstd::string &query_datapoint_id) {
^~~
src/esphome/components/fourheat/helpers.cpp:37:94: error: expected ā,ā or āā¦ā before ā<ā token
const std::string get_query_datapoint_id(const std::string &datapoint_id, const std::optionalstd::string &query_datapoint_id) {
^
src/esphome/components/fourheat/helpers.cpp: In function āconst string esphome::fourheat::get_query_datapoint_id(const string&, int)ā:
src/esphome/components/fourheat/helpers.cpp:38:7: error: āquery_datapoint_idā was not declared in this scope
if (query_datapoint_id.has_value()) {
^~~~~~~~~~~~~~~~~~
src/esphome/components/fourheat/helpers.cpp:38:7: note: suggested alternative: āget_query_datapoint_idā
if (query_datapoint_id.has_value()) {
^~~~~~~~~~~~~~~~~~
get_query_datapoint_id
src/esphome/components/fourheat/helpers.cpp: At global scope:
src/esphome/components/fourheat/helpers.cpp:49:6: error: āoptionalā in namespace āstdā does not name a template type
std::optional parse(const std::optional<parser_t> &parser, const std::vector<uint8_t> &data) {
^~~~~~~~
src/esphome/components/fourheat/helpers.cpp:49:1: note: āstd::optionalā is only available from C++17 onwards
std::optional parse(const std::optional<parser_t> &parser, const std::vector<uint8_t> &data) {
^~~
src/esphome/components/fourheat/helpers.cpp:64:6: error: āoptionalā in namespace āstdā does not name a template type
std::optional parse(const std::optional<parser_t> &parser, const std::vector<uint8_t> &data) {
^~~~~~~~
src/esphome/components/fourheat/helpers.cpp:64:1: note: āstd::optionalā is only available from C++17 onwards
std::optional parse(const std::optional<parser_t> &parser, const std::vector<uint8_t> &data) {
^~~
*** [.pioenvs/hidroestufa-esp32/src/esphome/components/fourheat/helpers.cpp.o] Error 1
========================= [FAILED] Took 14.05 seconds =========================