🔥 Pellet stove 'Duepi-evo'

Found someone on Jeedom who partially reverse engineered the serial line.
Now I reverse engineered it some more and adapted it for HA.


Since it relies on a serial2lan solution, I use ESP-Link.
There is also a ESPhome solution available (which I don’t find that stable), as well as an ESPEasy solution. Both are confirmed working, but for now I’ll stick to ESP-Link.
The easiest way to install ESP-Link is to use this page from my GitHub site ESP-Link You should use a supported browser and an usb2serial port must be available on your machine.
Note that I have re-compiled the firmware to host on ports 23 and 2000, which enables the use of the newer myDPRemote app too (as it has port 2000 hardcoded; on the older app it was configurable).

The HA Integration can be found on HACS
and is configured like this example:

# Example configuration.yaml entry
climate:
  - platform: duepi_evo
    name: your heaters name here  # Just some  name
    unique_id: some unique name   # A unique name (handy when having more than one stove)
    host: 192.168.0.11                      # The IP address or UNQ name
    port: 2000                                       # The port used. When using my ESP-link you can also use port 23 (standard Telnet) or port 2000 (used by new MyDPRemote app)
    scan_interval: 30                        # The interval it tries to retrieve data from the stove, advice to not make it smaller to 30s
    min_temp: 16                             # Minimum temperate setpoint in climate entity
    max_temp: 30                            # Maximum temperate setpoint  in climate entity
    auto_reset: True                         # Auto reset (and shutdown) stove when alarm is raised f.e. out-of-pellets

PS: The advice is to set the scan_interval at least at 30s, you don’t want to send a new request before the unit finished replying to the previous request :wink:

and my LoveLace card yaml:

      - type: vertical-stack
        cards:
          - type: thermostat
            entity: climate.pellet_stove
            features:
              - type: climate-hvac-modes
                hvac_modes:
                  - heat
                  - 'off'
          - type: history-graph
            entities:
              - entity: climate.pellet_stove
            hours_to_show: 4
      - type: entities
        entities:
          - entity: climate.pellet_stove
            type: attribute
            name: Burner Status
            attribute: burner_status
          - entity: climate.pellet_stove
            type: attribute
            name: Error code
            attribute: error_code
          - entity: climate.pellet_stove
            type: attribute
            name: Exhaust fan speed
            attribute: exh_fan_speed
          - entity: climate.pellet_stove
            type: attribute
            name: Flu gas temperature
            attribute: flu_gas_temp
          - entity: climate.pellet_stove
            type: attribute
            name: Pellet speed
            attribute: pellet_speed
          - entity: climate.pellet_stove
            type: attribute
            name: Power level
            attribute: power_level

Confirmed working on:

  • Amesti 8100 plus2
  • AMG
  • Artel
  • Centrometal
  • Duroflame Carré
  • Duroflame Pelle
  • Duroflame Rembrand
  • Foco
  • Interstove
  • Julia Next
  • Kalor
  • Qlima Viola 85 S-Line
  • Wamsler Westminster Quatro 6

All info and more is available on GitHub

How to physically connect:

If you like to help out, join us on Telegram

Big thanks go to Pascal Bornat (who initially started reverse engineering for Jeedom).

1 Like

Hi
I am trying to use the great work you have done on this, but still have some issue for the harware setup :

Would be very happy if @aceindy or anyone could unblock me.

Thanks

Hi @fif10,

Welcome at the community :smiley:

I’ve tried to answer all questions on GitHub :wink:

Hi, I have that module, how can I assist?

Hi Marcel,

Too late (already bought the module and took the data i needed)
So it is now for sale :innocent:

For the project, we make progress with it, only we all have a time issue, so it goes slow…

OK, do you think it is possible to control the stove from ha using the Duepi Module instead of an ESP?
I once tried to capture the UDP connection to port 2000, but could not really understand what was going on

Hello Marcel,

Since the duepi-wifi module is nothing more then a serial2wifi module (+ some extra software to support their cloud), yeah it should work…

  • install the repository from here
  • find out the ip number from your dhcp-server(router) and make a reservation for it (so it will always get the same ip)
  • use port 2000 (the default port 23 is only used when using the esplink)

Keep in mind the code is still work in progress…but basic functionality is there.
Let me know if it works with the duepi evo!!

Btw, the module uses tcp, not udp…
we are still finding and reversing all found commands :wink:
If you’re interested you can join the devs group on telegram here :yum:

ps: the opposite also works;the dpremote app works fine with the esplink serial wifi :yum:

Really nice to see this project! I have an Artel Julia Pellet Stove with an official Wifi module.
I installed the repository, but it cant connect:

> 2021-03-12 13:29:29 ERROR (MainThread) [homeassistant.components.climate] duepi_evo: Error on device update!
> Traceback (most recent call last):
>   File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 360, in _async_add_entity
>     await entity.async_device_update(warning=False)
>   File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 465, in async_device_update
>     await task
>   File "/config/custom_components/duepi_evo/climate.py", line 174, in async_update
>     data = await self.get_data(self)
>   File "/config/custom_components/duepi_evo/climate.py", line 124, in get_data
>     sock.connect((self._host, self._port))
> ConnectionRefusedError: [Errno 111] Connection refused

My configuration.yml settings are:

climate:
  - platform: duepi_evo
    name: "Pellet Kachel"
    host: 192.168.8.89
    port: 2000
    scan_interval: 60

Would be nice to get it working! Anything I can do to help?

This application is for pellet stoves using the Duepi Evo board.
image
https://www.duepigroup.com/en/prodotti-duepi/electronic-control-evo/

Are you using the DPRemote application or another ??
If so, on which port is it registered ??
image
Next step…
Can you ping 192.168.8.89 ?
If so,
Can you telnet 192.168.8.89 2000 (or the port used found in the app), while using the app?
(you only see the replies from the stove)
image

PS: Just an idea, it might be required to configure the app for local usage (not cloud); maybe these settings are saved within the stove preventing it to communicate on LAN ???

I Have this model: (And I am using dpremote with it)

https://www.klimakalor.it/shop/evoremote-m1/

The IP is correct, and I can ping it, but I cant reacht it with telnet on ports: 23/2000/3000
And I also cant setup dpremote with a local connection. I lookup up in the manual how to switch from remote to a local connection, but the documentation is none existent :wink:

Tap the cogwheel in the upper right corner and select ‘local’


I tried that, but it wont connect. Probably thats also the reason that a local putty cant connect.
But I will reset it tommorow, I assume that it then looses the cloud connection. And try to set it up but only local. (I tried that when first installed it, I prefer a local connection, but it wouldnt connect.

Thats why I am very pleased with this module! Thanks for your support!
(And otherwise I will order an ESP board)

esp board is cheap; including converter board approx 5€

but wifi module should also work; i’ve one here which i used for testing. However, i never set it up for cloud usage, as i want to sell it again :wink:

ps, i am using the esplink now on HA, but i can still use the duepi app (in local mode)

Ok, thanks for the feedback, will reset it, and try again if I can setup an local connection. Then try HA again!

the wifi module won’t send anything by itself, but you can monitor, provided you use the app (or HA, or python scripts) to send commands.

Unfortunately no success. It seems that local access is disabled after connecting it to the duepi cloud. Even after a reset of the Wifi module (I think it only resets the wifi settings, and reconnects to the duepi-server after getting internet access) I can’t get an open telnet connection on whatever port I check, it is closed immediately. A port scanner could not find any open ports, I scanned 1-5000.

I will contact Duepi how to enable local access, and will order an ESP board. (Always wanted to play with these controller boards, so now I have an excuse :wink: )

I will keep you posted if I make any progress!

Hmmm… if it can’t connect to a wifi-router, it should set up it’s own hotspot, called DPRemote-XXXX
image
Try to connect you’re mobile there and use http://192.168.4.1
username/password = user/user

Then on the next screen there is on an option ’ factory reset’ :stuck_out_tongue:
image

Because there must be some way to disconnect from the cloud; what if I sold my stove ??

Its get more weird: I enabled the hotspot, did a factory reset. It rebooted but was still connected to my wifi and the cloud connection still worked. Surely I did something wrong, so I did it all again, and after another reset I saw that the box rebooted itself and came up with a still working wifi connection and a working cloud connection.

Then I started the old Internet Explorer just to test if it was a browser problem, but it came up fully working again.

I see that I have firmware 1.33 instead of your? 1.17 or maybe you took it from elsewhere.

oh, that was a screenshot from the manual :rofl: