Victor-Mo / IRT-ESP

Nefit / Buderus iRT protocol encoder / decoder for ESP8266
GNU Lesser General Public License v3.0
23 stars 6 forks source link

How to compile the firmware in Gitpod? #8

Open Gisbert1 opened 4 years ago

Gisbert1 commented 4 years ago

Dear Victor,

I'm trying to compile the firmware with the help of Gitpod. I'm famliar with Tasmota and it works pretty easy to run one's own compiled firmware in Gitpod.

Is there something similiar possible with your software? In Tasmota the following works well: paltformio run - tasmota A file called firmware.bin is then provided which can be downloaded and flashed to a Wemos D1 mini.

A compiled bin-file would also work if I could download it or you may send it.

Best Regards Gisbert

Victor-Mo commented 4 years ago

Hi Gisbert,

I have no experience with Gitpod, but i will have a look. The binaries are available from the release section. Make sure to 'open' the assets section. The file you want to download is: IRT-ESP-dev-d1_mini.bin .

Victor

Gisbert1 commented 4 years ago

Hi Victor,

thank you very much for your quick response. I'm 2 questions away to order a gateway board from Kees.

Should I order the experimental board from Kees or the original board and do the modification according to your instruction? I can solder and find the location. My boiler delivers 6.6 to 6.8 VDC at the EMS +/- connections (its a Buderus GB112 with a ERC). Is the board compatible to this voltage?

One additional question, but not limiting the project. The Wemos D1 mini needs an external power supply, usually through the Micro-USB. Can I also power the Wemos using the 5V and GND pin?

Best Regards and have a nice weekend Gisbert

Gisbert1 commented 4 years ago

Hi Victor,

I saw that you did something with Gitpod. I tried it out, but failed with the following info:

We are having trouble parsing your context Error: Cannot read property 'sha' of undefined

Please file an issue if you think this is a bug.

Can you please check it - and also my question which board I should order?

Many thanks, have a nice weekend Gisbert

Victor-Mo commented 4 years ago

Hi Gisbert,

I think i have fixed the GitPod.io issue, it seems to be working now. It was missing a config file, but the error was not really telling that.

If it will work on your specific boiler is always difficult to answer. If you have a look through issue #7 , he seems to got it working on a similar setup. But had to change the resistor value in order to get to work. In general it takes some trial and error to get it work, but I had 1 ocasion where we could not get it to work. Not sure if you can read dutch (or how good google translate is) but there is a lot of information in the tweakers forum. This is also the reason the software is still in the 'experimental' state. I will do my best to help..... but cannot solve all problems.

Your iRT bus voltage seems to match what I describe in the wiki

I would choose the already modified board from @bbqkees simply because you start with a known working board and the price difference is very little, but it is up to you. If I remember correctly you can also power the board from an external 5 volt supply.

Victor

Gisbert1 commented 4 years ago

Hi Victor,

I'm going to order the experimental board from Kees. I'm aware that all this is in an experimental stage but I'm quite confident that my setup is suitable for the board. Let's see how far I come with all the information I have now.

The Wemos D1 Mini fits to the board, I have ordered some. In the meantime I have a NodeMCU available. I didn't find so far which pins needs to be connected to the board. Can you help? There is also in the releases a binary!fir the NodeMCU.

Compiling in Gitpod seem to work now. Thank you very much for this, makes compiling so much easier for me.

Best Regards Gisbert

Gisbert1 commented 3 years ago

Hi Victor,

I tried to upload a pre-compiled nodemcu file (IRT-ESP-dev-nodemcu.bin) to a nodeMCU with my tool on Win10:

@echo off set /p comport= Comport (example 3, 4, ..) : set /p build= Build (example ..) :

echo Using com port: %comport% echo Using bin file: %build%.bin

esptool.exe -vv -cd nodemcu -cb 115200 -cp COM%comport% -ca 0x00000 -cf %build%.bin

pause

This worked well, but I did not get an access point from the ESP.

Then I tried your instruction in a Windows 10 cmd window in the same folder where esptool.exe is stored:

esptool -p COM3 write_flash 0x00000 IRT-ESP-dev-nodemcu.bin

Here is no firmware upload visible.

Maybe my NodeMCU is somehow lazy, but I have no Wemos D1 mini at hand.

Best Regards Gisbert

Gisbert1 commented 3 years ago

Hi Victor,

some further observation (or trial) I did. I uploaded a firmware from Kees' homepage and I could get access to the SSID ems-esp with password ems-esp-neo. Finally I could bring the device in my network. Then I tried to upload your firmware via OTA and this seems to work.

Occasionally I saw a network with the name irt-esp, but was not able to connect with. This is somehow different to the wiki page. How is the password to connect to irt-esp? The blie LED is blinking all the time with a frequenz of 1 Hz (estimated).

Best Regards Gisbert

Victor-Mo commented 3 years ago

Hi Gisbert,

The NodeMCu build is automatically build, but i do not have a NodeMCU so it is not a tested build. I would suggest looking at the serial port output (via the USB connection). My best guess it is restarting...

Victor

Victor-Mo commented 3 years ago

Hi @Gisbert1

Did you succeed in getting it to work ? If you need any help, let me know.

Victor

Gisbert1 commented 3 years ago

Hi Victor,

Basically I'm interested to get as much information from the gas boiler I could have access to. Currently I'm reading the temperatures from sensors which I put outside on the tubes. That works quite ok. The main issue I have with the control unit form Buderus is that the gas burner cycles quite very often (heating for a couple of minutes, then turns off, then restarts after ca. 10 min.). I did everything which can help to mitigate that issue (lowest setting in the gas burner, no night reduction as I have underfloor heating) but the cycles are still there when the temperature is above ca. 0 to 5°C.

I decided to manipulate the control even more. Still a plan, but I need to wait until I get service form outside, for the worst case). On connection 1 and 2, a short cut (connection between both by wire) can be installed which forces the gas burner to heat until at the return line a certain temperature is achieved which will shut down the gas burner. If I substitute the wire with a relay, then I can build my own control in my Fhem house automation. E.g. I can program it that there should be a decent time between two heat cycles, depending on the outside temperature and the heat requirements from the building.

Now it gets somehow tricky. The description says that I can have a connection between 1/2 but I need then to short circuit the connections 3/4 and remove the original Buderus controller from these connections. I believe - but do not exactly know - whether and how I could use Kees experimental board. If there is a way that I can control the heat burner by Kees experimental board then this would be highly welcome. Even a very limited control to force or to stop the heating for the underfloor heating would be ok, but the hot water tank for bath and kitchen needs to run all the time.

That's why I'm hesitating to step into this project, but maybe you have already a solution for my problem, then I will continue. Thank you very much until now, maybe we can continue our conversation when you think that I can use Kees experimental board for my main needs.

Best Regards and Merry Christmas Gisbert

Victor-Mo commented 3 years ago

Hi Gisbert,

You already did a lot of work on your boiler. I think controlling the boiler through the on/off connection (pins 1 and 2) will result in a lot of over and under shoot. I did not have a good experience with it.

But if I read your story, I think what you want is the interface board in 'active' mode. It will completely replace the thermostats / controller you have and directly connect to pins 3 and 4.

The interface will then control the boiler. I am not very familiar with FHEM but I assume it can send commands to the interface board via MQTT. In active mode you will have to send the requested heater water temperature (for the radiators) and if the hot tap water should be on or off.

For example if heating water of 40 degrees is requested, the interface will measure the outgoing flow temperature and adjust the burner modulation to it (by using a PID controller). The PID controller can be tuned for optimal results. On my system, on day's when it is below 5 degrees outside, the boiler will run continuously and only the burner modulation is changed to keep everything nice and warm. In this mode the interface will report (via MQTT) the following details: Current modulation, hot water temp. return and flow temp. Position of 3 way value, pump running and outside temp. (if a sensor is connected). Below I included a sample of the MQTT msg. But you will have to have a system that calculates the requested heater water temperature.

To answer your question, yes you can control the heating and hot tap water.

If you just want to monitor your system you can operate the interface board in 'passive' mode. It will simple monitor the message between the thermostat and the boiler. So the reported information is limited to what the thermostat requests. In most cases it means the hot water temp. and the return temp. is missing.

I always do advise in active mode to have an option to fallback to original thermostat, just in case something goes wrong.

Happy holidays !

Victor

{"wWSelTemp":34,"selFlowTemp":34,"selBurnPow":30,"outdoorTemp":7,"wWCurTmp":62,"curFlowTemp":36,"retTemp":31,"wWActivated":"on","burnGas":"on","heatPmp":"on","fanWork":"on","ignWork":"off","heating_temp":55,"wWHeat":"off","ServiceCode":"-H","ServiceCodeNumber":83}

Gisbert1 commented 3 years ago

Hi Victor,

thank you very much for your support, now I've ordered the experimental board. Once I received the board I will go step-by-step through all the instructions I can find. Maybe there will be at a certain point need for your guidance. Is it ok to continue communication here, or do you prefer a new more specific issue here on Github or should I use this forum: https://gathering.tweakers.net/forum/list_messages/1950128 as linked on Kees homepage? I had a quick look on this page, definitely I need your support to find my way through.

I'm quite familiar with MQTT and I have a broker running on my Fhem server which is used for all the ESP8266 devices with own sketches, Tasmota or ESPEasy to communicate with the Fhem server.

Best Regards Gisbert

Victor-Mo commented 3 years ago

Hi Gisbert,

You can always use this issue, that is not a problem. I also subscribed to your topic on 'fhem.de' ( https://forum.fhem.de/index.php/topic,116229.0.html ). You can also use that.

Hopefully i have some time this week to update to documentation, because it is not 100% complete.

Regards,

Victor

Gisbert1 commented 3 years ago

Hi Victor,

8 month and a couple of days later I started to go in this project again. I hope that you are doing well during this Corona challenges.

During winter time I was afraid to set my boiler on risk. Later I was busy with repairing older Mercedes cars. During this pleasent Saturday afternoon I started to investigate the details again and finally managed after some loops to get a Wemos D1 mini running with your pre-compiled v1.9.10 binaries. Communication with MQTT is establihed, so I'm ready for the next steps.

The experimental board from Kees is on my desktop to be installed. My target is to control the following items:

  1. boiler on/off
  2. temperature of the outlet of the boiler
  3. hot tap water on/off
  4. temperature of the hot tap water tank The circulating pump needs to be controlled as well depending what is requested.

From https://github.com/Victor-Mo/IRT-ESP/issues/6. I understand that I have to disconnect the existing ERC controller on connections 3 and 4 and connect with the EMS BUS Gateway (the connections 3 and 4 can be exchanged - there is no right or left - 1 and 2 needs to be connected/shortcut).

So I'm ready to connect 3 and 4 to the EMS BUS Gateway and to power up the ESP via micro USB. What will happen and how can I control and manage my boiler and the hot tap water tank? I went through your documentation but I'm not familiar with this type of protocol and I need your guidance.

I hope that you can guide me through the process. Best Regards Gisbert

Gisbert1 commented 3 years ago

Hi Victor,

I got the EMS BUS Gateway connected to my Buderus Logamax plus GB112-11/19 connected. I added the gateway to the connections 3 and 4 and let the ERC controller at the same place. The connections 1 and 2 are not connected (a plastic wire is inserted, basically not connected).

The gateway is working on 4(iRT passive) to in touch with the device and the software. I get data in the dashboard and receive data in Fhem, so basically the device is working. Currently the heater is doing nothing. I need to find out what reading stands for what action in the boiler. Snapshot iRT Dashboard

In Fhem (after extracting) I got the following readings: setstate iRT_ESP 2021-09-04 19:39:48 IODev MyBroker setstate iRT_ESP 2021-09-05 12:02:39 ServiceCode 0H setstate iRT_ESP 2021-09-05 12:02:39 ServiceCodeNumber 3 setstate iRT_ESP 2021-09-05 12:02:39 boiler_data {"wWSelTemp":0,"selFlowTemp":0,"selBurnPow":0,"outdoorTemp":25,"wWCurTmp":0,"curFlowTemp":35,"retTemp":0,"wWActivated":"on","burnGas":"off","heatPmp":"off","fanWork":"off","ignWork":"off","heating_temp":38,"wWHeat":"off","ServiceCode":"0H","ServiceCodeNumber":3} setstate iRT_ESP 2021-09-05 12:02:39 burnGas off setstate iRT_ESP 2021-09-05 12:02:39 curFlowTemp 35 setstate iRT_ESP 2021-09-05 12:02:39 fanWork off setstate iRT_ESP 2021-09-05 12:02:34 freemem 71 setstate iRT_ESP 2021-09-05 12:02:34 heartbeat {"rssid":66,"load":1,"uptime":2045,"freemem":71,"tcpdrops":0,"mqttpublishfails":0} setstate iRT_ESP 2021-09-05 12:02:39 heatPmp off setstate iRT_ESP 2021-09-05 11:28:51 heating_active 0 setstate iRT_ESP 2021-09-05 12:02:39 heating_temp 38 setstate iRT_ESP 2021-09-05 12:02:39 ignWork off setstate iRT_ESP 2021-09-05 12:02:34 load 1 setstate iRT_ESP 2021-09-05 12:02:34 mqttpublishfails 0 setstate iRT_ESP 2021-09-05 12:02:39 outdoorTemp 25 setstate iRT_ESP 2021-09-05 12:02:39 retTemp 0 setstate iRT_ESP 2021-09-05 12:02:34 rssid 66 setstate iRT_ESP 2021-09-05 12:02:39 selBurnPow 0 setstate iRT_ESP 2021-09-05 12:02:39 selFlowTemp 0 setstate iRT_ESP 2021-09-05 11:28:34 start start setstate iRT_ESP 2021-09-05 11:28:33 status online setstate iRT_ESP 2021-09-05 11:28:50 tapwater_active 0 setstate iRT_ESP 2021-09-05 12:02:34 tcpdrops 0 setstate iRT_ESP 2021-09-05 12:02:39 transmission-state incoming publish received setstate iRT_ESP 2021-09-05 12:02:34 uptime 2045 setstate iRT_ESP 2021-09-05 12:02:39 wWActivated on setstate iRT_ESP 2021-09-05 12:02:39 wWCurTmp 0 setstate iRT_ESP 2021-09-05 12:02:39 wWHeat off setstate iRT_ESP 2021-09-05 12:02:39 wWSelTemp 0

I'm looking forward to get full access on the boiler.

Best Regards Gisbert

Gisbert1 commented 3 years ago

Hi Victor,

it's me again.

I contacted Kees for the new design of an iRT board. He said (maybe I did not understand it fully) that the development of a new board is stopped.

As I now got the experimental board somehow working, I want more. How can I support you for the development of a new design for an iRT board?

Best Regards Gisbert​

Victor-Mo commented 3 years ago

Hi Gisbert,

Sorry for not responding earlier, but we finally had some nice weather here in Holland, so I have not touch a computer in a couple of days. Good to read that the passive mode is working for you.

You are correct that you will need to disconnect the ERC controller in order to actively control the boiler. The iRT bus only accepts 1 device controlling the boiler. In order to control the boiler via the iRT interface you will have to send specific MQTT commands to the interface board. I will have to research the correct commands, I will let you know.

I have not worked on the project since march. But I should have some more time to work on it starting october. I am working on a different interface board. The problem with the current interface is that it is designed to detect voltage changes. The iRT bus is a true current loop bus. So it requires a current sensing / limiting circuit. I have a working prototype. But it is not completely stable. I am trying to design it in such a way it can actively send messages while the thermostat (or ERC controller) is still connected. This would allow to gather more measurement information when the thermostat is still connected.

But with the current interface board you should be able to control the boiler. But it will only work if the ERC controller is disconnected.

I have a busy two weeks coming up, but after that i will update the documentation and describe the active setup and what MQTT message need to be send to the board to control the boiler.

Best regards,

Victor