šŸ”„ Pellet stove 'Duepi-evo'

Iā€™ve got some logs, i am currently using esphome.
changing temperature, starting and stopping works through the mydpremote app

Logger: homeassistant.helpers.entity
Source: helpers/entity.py:898
First occurred: 1:22:35 PM (1 occurrences)
Last logged: 1:22:35 PM

Update for climate.pelletkachel fails
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 898, in async_update_ha_state
    await self.async_device_update()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1216, in async_device_update
    await self.async_update()
  File "/config/custom_components/duepi_evo/climate.py", line 379, in async_update
    data = await self.get_data(SUPPORT_SETPOINT)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/duepi_evo/climate.py", line 453, in get_data
    data_from_server = sock.recv(10).decode()
                       ^^^^^^^^^^^^^^^^^^^^^^
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x9c in position 8: invalid start byte

this is whats in my configuration.yaml

climate:
  - platform: duepi_evo
    name: pelletkachel
    host: 192.168.9.69
    port: 2000
    scan_interval: 60
    min_temp: 16
    max_temp: 30
    
logger:
  default: warn
  logs:
    custom_components.duepi_evo: debug

Hmmm i am a bit confused here, i never got the MyDPRemote app to work as the port is stuck on port 2000 (and esp-link is stuck on port 23), but on the older app it is configurable and it does work (DPRemote). And I never bothered to try it with the ESPhome (but good thinking using it on port 2000 ;))

If i look into the actual error line

 File "/config/custom_components/duepi_evo/climate.py", line 453, in get_data
    data_from_server = sock.recv(10).decode()

It seems to go wrong when it tries to get the FluGas temperature.

However, it shouldnā€™t throw this error
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x9c in position 8: invalid start byte
But just skip it if not available (if len(data_from_server) != 0)
The previous value apparently did work and uses the same routine:

               # Get pellet speed
                sock.send(GET_PELLETSPEED.encode())
                data_from_server = sock.recv(10).decode()

Which beings me back to my initial suspicion on some network issues :thinking:

Question, do you always have the same crash on line 453, or does it show other lines as well?

It could be your stove doesnā€™t support it ??
Is it possible with the new MyDPRemote app to take a readout of the FiuGas temperature?
It is with the old one:


(PS: FLuGas = RookGas, but I guess you figured that being Dutch too :stuck_out_tongue: )

What brand is it anyway ??

The brand is livinflame we bought it from gamma.nl

the device is right next to my Unifi Access point
currently laying underneeth the stove but i still got to design and print an small enclosure for it.

There are 2 warnings and one error when i search for duepi_evo

The error:

Logger: homeassistant.components.climate
Source: helpers/entity_platform.py:599
Integration: Climate (documentation, issues)
First occurred: 6:33:22 PM (1 occurrences)
Last logged: 6:33:22 PM

duepi_evo: Error on device update!
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 599, in _async_add_entity
    await entity.async_device_update(warning=False)
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1259, in async_device_update
    await self.async_update()
  File "/config/custom_components/duepi_evo/climate.py", line 379, in async_update
    data = await self.get_data(SUPPORT_SETPOINT)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/duepi_evo/climate.py", line 472, in get_data
    data_from_server = sock.recv(10).decode()
                       ^^^^^^^^^^^^^^^^^^^^^^
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x9a in position 8: invalid start byte

First warning:

Logger: homeassistant.components.climate
Source: components/climate/__init__.py:354
Integration: Climate (documentation, issues)
First occurred: 6:33:20 PM (4 occurrences)
Last logged: 6:33:21 PM

Entity midea_ac_lan.152832116404917_climate (<class 'custom_components.midea_ac_lan.climate.MideaACClimate'>) does not set ClimateEntityFeature.TURN_OFF but implements the turn_off method. Please create a bug report at https://github.com/georgezhao2010/midea_ac_lan/issues
Entity midea_ac_lan.152832116404917_climate (<class 'custom_components.midea_ac_lan.climate.MideaACClimate'>) does not set ClimateEntityFeature.TURN_ON but implements the turn_on method. Please create a bug report at https://github.com/georgezhao2010/midea_ac_lan/issues
Entity midea_ac_lan.152832116404917_climate (<class 'custom_components.midea_ac_lan.climate.MideaACClimate'>) implements HVACMode(s): off, auto, cool, dry, heat, fan_only and therefore implicitly supports the turn_on/turn_off methods without setting the proper ClimateEntityFeature. Please create a bug report at https://github.com/georgezhao2010/midea_ac_lan/issues
Entity None (<class 'custom_components.duepi_evo.climate.DuepiEvoDevice'>) implements HVACMode(s): heat, off and therefore implicitly supports the turn_on/turn_off methods without setting the proper ClimateEntityFeature. Please create a bug report at https://github.com/aceindy/Duepi_EVO/issues

Second Warning:

Logger: homeassistant.helpers.entity
Source: helpers/entity.py:1567
First occurred: 6:33:21 PM (1 occurrences)
Last logged: 6:33:21 PM

Entity None (<class 'custom_components.duepi_evo.climate.DuepiEvoDevice'>) is using deprecated supported features values which will be removed in HA Core 2025.1. Instead it should use <ClimateEntityFeature.TARGET_TEMPERATURE|FAN_MODE: 9>, please create a bug report at https://github.com/aceindy/Duepi_EVO/issues and reference https://developers.home-assistant.io/blog/2023/12/28/support-feature-magic-numbers-deprecation

i hope this helps

Added both issues, luckily i have dome time to fix it . Thanksā€¦

Furthermore, my suspicion is a bit confirmedā€¦

This error:

Seems to be triggered on all errors, but apparently not on the same spot. The first time it was here:

And in line 453 it is trying to retrieve the FluGas temperature.

However, in your next post

which is line 472, while trying to retrieve the setpoint.

So this time it did manage to get the FluGas temperature (as well as exhaust gas fan speed and error state), but crashes when getting the setpoint.

And again, it shouldnā€™t crash, but just return zeroā€¦

Since the DPRemoteApp works, I really suspect the ESPHome stream moduleā€¦

I will update my post and remove all references to it :thinking:

I would love to use esplink but as i said in an earlier post when ive instagram it itā€™s boot looping.

Any suggestions or could you change the manifest to use an older version?

On older version of what??

an older version of esplink, ive tried to download the latest stable yet i was unable to download it

Not sure if any older version would make any difference; ESP-Link hasnā€™t been touched for 5 years or so.

@DutchDeveloper And I just moved to ESP Easyā€¦yet another SerialBridge

(and there the port is configurable, so I can also use the new MyDuepiRemote now :slight_smile: )

Just use default (which is standalone, and configure the device:


(This is still for my ESP-01)

Warnings are addressed in version 2024.02.19, thanks for pointing it out :wink:

1 Like

hello everyone, (and aceindy in special)

thanks for all this hard work.
I read this topic with great interest and tried to make your duepi integration to work on my pellet stove.

I have an Duroflame Pelle, pellet stove (dutch brand). It also has the duepi controller inside and I have the DPRemote connected. My next goal was (is) to make this integration work and connect the stove in homeassistant.

What I have done so far.
Bought an ESP-01 board an 3,3-5V adapter.

  • Flashed the board using this link with esp-link.
  • connected the board to the board on the duepi evo controller.
    It was a bit of a struggle, but now it works! the board is online and I can see messages in the console. Also a telnet connection works without a problem and messages appear.

But, and this is my struggle. I donā€™t get it connected in homeassistant.
I installed the repository via hacs. And put the configuration in my yaml configuration file.
But when I restart homeassistant, I get two errors.

  1. duepi_evo: Error on device update;
  2. Time-out when polling host.

I really donā€™t understand this errors.
the configuration seems to be correct, the ip-adress is correct. (telnet is connecting immediately)

Can anyone pinpoint me in the right direction?
I ran out ideas how to fix this.

The esp board seems to function, next to the dpremote. messages are received.
Telnet connection works immediately. But somehow homeassistant is not able to connect.






First then that comes to mindā€¦did you try to swap TX/RX?

It hat doesnā€™t work, please turn on detailed logging by adding this to configuration.yaml:

#  logs:
logger:
  default: error
  logs:
    custom_components.duepi_evo: debug

That should allow you to monitor the logs in HA:

2024-03-07 11:27:14.775 DEBUG (MainThread) [custom_components.duepi_evo.climate] Pellet stove: Received burner: Off, Ambient temp: 20.5, Fan speed: 1, Flu gas temp: 15, Exh fan speed: 0, PelletSpeed: 0, Error code: All OK, Setpoint temp: None
2024-03-07 11:27:14.776 DEBUG (MainThread) [custom_components.duepi_evo.climate] Pellet stove Setpoint retrieval not supported by this stove, using temp_nofeedback 20
2024-03-07 11:27:44.828 DEBUG (MainThread) [custom_components.duepi_evo.climate] Pellet stove: Received burner: Off, Ambient temp: 20.5, Fan speed: 1, Flu gas temp: 15, Exh fan speed: 0, PelletSpeed: 0, Error code: All OK, Setpoint temp: None
2024-03-07 11:28:15.289 DEBUG (MainThread) [custom_components.duepi_evo.climate] Pellet stove: Received burner: Off, Ambient temp: 20.5, Fan speed: 1, Flu gas temp: 15, Exh fan speed: 0, PelletSpeed: 0, Error code: All OK, Setpoint temp: None

PS: Your DPRemote app should also still work (without the stoveā€™s wifi module, they should not be connected parallel :wink: ). There are 2 versions, the old one (DPRemote), where you can adjust the port to 23, and a newer one MyDPRemote, for which you should use another esp-link firmware, as it uses port 2000 and cannot be changed. It is described here in the first post.

Hello aceindy,

thanks for the quick reply.
I did swap the TX/RX pins, because I see messages in the console.
But I will try that, I will disconnect the stove wifi module. (I thought I needed that) and swap the two pins.

I only have the newer DPRemote app, so you mean I have to use the user2.bin file? I was not able to install that file, the esp-link webpage didnā€™t accept the file.

But I will try again, and let you know whether it works or not.
Thanks!

To me it looks like the commands send to the stove (TX), as your log all start with RD/RC, which are normally commands; I recognize the 1st three:
image

GET_PELLETSPEED  = "RD40005A&"
GET_SETPOINT     = "RC60005B&"
GET_ERRORSTATE   = "RDA00067&"

However, you should see the replies from the stove (RX), which looks a bit like this:


(You should see 00000020 often, as it is the answer ā€˜OKā€™ from the stove :stuck_out_tongue:)

PS: It could also be that you see the wifi module; as mentioned earlier, you should not connect them parallel (in your picture the module shows it is connected ?? :thinking: ), as the commands will interfere with each otherā€¦and with esp-link you should still be able to use the appā€¦

Just tested again with an empty esp; it looks like port 2000 is used by default; forgot I recompiled the whole thing, so no need to re-flash anymoreā€¦the esp-link listens on ports 23 and 2000 :stuck_out_tongue:
image

Will update the original post :stuck_out_tongue:

So you should be able to use
telnet <IP ADDRESS>
as well as
telnet <IP ADDRESS> 2000
(when ommited, telnet uses port 23)

Oh, and you should increase the scan_interval to at least 30s; you do not want to request a new status before the stove finished replying to the previous request :stuck_out_tongue:

You gave me a lot home of homework. :smile:
Because yes, I had the esp-board parallel connected with de DPRemote module.

I started from scratch.
I flashed the ESP-board, now using the link on the site from Marcel Zuidwijk (this one)

Now I was able to upload the user2.bin file, connected the board (with the 3,3V to 5V adapter) directly on the motherboard. And no response. :melting_face:

Swapped the tx and rx pins, and indeed, Succes! :star_struck:
It works. Connected immediately to homeassistant. Perfect.

And indeed de DPRemote app, configured with the local IPadress also worksā€¦

Great!
Thanks for the help.
I can now confirm that the duepi evo integration works also on an Duroflame Pelle, pelletstove.

:smiley:

1 Like

Hehe, you still could have used mine (as there is no need anymore to install the user2.bin)
And basically, you are using mine,as user2.bin replaces the one from Marcel.
His idea inspired me to publish in the first place (the one he is using has reference to SmartMeter and since I needed to recompile it anyway to use port 2000, this was easier :P)
I first planned to put it on my own website, but I figured, if it gains momentum, it will cost me bandwidth.
So I put it on GitHub insteadā€¦

Told you it would, just FYI, it is the MyDPRemoteApp (as DPRemote app is the old one ;))

List of supported devices updated :wink:

Glad to hear it worked outā€¦have fun!

PS:

I bought a wifi board just for the sake of reverse-engineering the protocol.
After I had it working 2 weeks later, I put it on Marktplaats again and sold it with only ā‚¬5 euro loss:)

ahhā€¦
Now I understand (admitted, this comes in general quitte slow with me :blush: )
I didnā€™t get your flash working, on the stove but in hide side this was probably caused by the wrong connection of tx and rx pins.

You are right. I have the MyDPremote app.

Iā€™v read somewhere that when the wifi module is connected your stoveā€™s ID. It cannot be disconnected, you have an account on the duepi site, but you cannot delete that account.
So when I sell it to someone else, is it not useless to him?

That I donā€™t know, I never signed up (only used it local).

Maybe try to logon and check if you can delete your account?
If not, you can contact them at [email protected]
(they are quite helpful, but not regarding the serial protocol info :P)

@JWM22
I just created a dummy device at their website, and it might be you cannot delete your account, but you can delete your device(s) :wink:

Hi Aceindy,

that indeed, looks like it.
But it is another (slightly) site then where I had to register the module.
that was this site.

anyway, I will give it a go.
Who knows.

Thanks!

  • Can you login the site I provided?
  • Do you see your device there?
    If soā€¦you can delete it :smiley:

(they should also have a mechanism in place for that, what if I sell my stove (or my house) :thinking: