/Duepi_EVO

Control Duepi_evo based pellet stoves with Home Assistant over wifi using ESPLink

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

hacs_badge ko-fi

Duepi-EVO

The Duepi EVO climate platform is a reverse engineered implementation of the app which is controlling Pellet stove heaters using a Duepi Evo Wifi module. With this module it is possible to control your pellet stove with HomeAssistant. This is in no way associated with the company Duepi and comes with no guarantees or warranty. Use at your own risk.

image

Prerequisites

Hardware

This uses an ESP01 board with 5/3.3v adapter with ser2net software.

I recently found a config for ESPHome (which has my preference, but I switched back, as it wasn't very stable. You will find a configureation example here https://github.com/aceindy/Duepi_EVO/blob/main/ESPHome/duepi-pelletstove.yaml

ESPLink works for sure:

You must have the ESP01 Module installed and flash it with https://github.com/jeelabs/esp-link. Baudrate 115200, 8N1. Pin layout is mentioned in the pdf (pcb, J8)

Easiest way to install ESP-Link is to use this page from my GitHub site ESP-Link Note that I have re-compiled the firmware to host on ports 23 and 2000, which allows to use the newer myDPRemote app too (as it has port 2000 hardcoded).

In order to install the newer firmware, first install the firmware normally, then use the upgrade page on the web interface to install user2.bin (use the raw download button on the right)

As well as Espeasy (info from a Duroflame Rembrand user):

Optionally one can use the Wemos D1 flashed with ESPeasy. This device has a 5V input and integrated CH340 for easy flashing. The only tweak needed was to add 5ms timeout delay in the serial device settings of espeasy to get robust data from the pellet stove. In Esp_easy flashed device select the Device: Communication - Serial Server and fill in the appropiate fields (harware serial GPIO-3 and -1, port 1234 (or any) baud rate 115200, serial config 8N1,RX receive 5ms, 256 buffer).

Functionality

  • Control target temperature.
  • Control system on/off.
  • Control fan speed (only when actual temperature below target temperature) 1-5

Configuration

Add the following to your configuration.yaml file:

# Example configuration.yaml entry
climate:
  - platform: duepi_evo
    name: <your heaters name here>
    host: 192.168.1.123
    port: 2000
    scan_interval: 60
    min_temp: 20
    max_temp: 30
    auto_reset: True
    unique_id: <unique_name>
    temp_nofeedback: 16

Configuration variables:

  • name (optional): The name of your climate entity. Defaults to "Duepi Evo".
  • host (required): The IP address used for the serial@tcp device.
  • port (optional): The port being used. Defaults to 2000. (when using my ESPLink version, you can also use the default telnet port 23)
  • scan_interval (required): The scan interval being used in seconds.
  • min/max_temperature (optional): The available setpoint range within HA. Default is 16-30 degs celsius.
  • auto_reset (optional): Auto reset the stove when "Ignition failed" or "Out of pellets" defaults to False.
  • unique_id (optional): A unique name for the device. Defaults to "duepi_unique". Change when using multiple stoves
  • temp_nofeedback (optional): The default setpoint temperature for stoves that do not store the current setpoint. Defauls to 16.

Troubleshooting

Please set your logging for the custom_component to debug:

logger:
  default: warn
  logs:
    custom_components.duepi_evo: debug

Example lovelace entities card:

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

Big thanks go to Pascal Bornat (who initially started reverse engineering for Jeedom) and Oxan van Leeuwen (for the Stream server for ESPHomeproject)

Buy Me A Coffee! ☕