This Home Assistant integration provides support for ecoMAX controllers manufactured by Plum Sp. z o.o.
It's based on PyPlumIO package and supports connection to ecoMAX controller via RS-485 to Ethernet/Wifi converters or via RS-485 to USB adapter.
With this integration you have two ways of connecting to your ecoMAX controller. One is directly connecting the PC that runs Home Assistant via RS485 to USB adapter.
Other way is to use RS485 to WiFi converter. This has a benefit of being able to move PC that runs Home Assistant away from the boiler and connect to it wirelessly.
Regardless of the chosen method, you'll need to find RS485 port on your ecoMAX controller. If you have ecoSTER thermostat, it's easy, as ecoSTERs also use RS485 port and you'll just have to connect your adapter/converter in parallel with it.
If you don't have ecoSTER, look for pins that are labeled as "D+" and "D-" then connect your device as follows:
Adapter -> ecoMAX
[A] -> [D+]
[B] -> [D-]
[GND] -> [GND] (optional, less interference)
While this integration is built on top of PyPlumIO library, which from the start was intended as ecoNET 300 alternative, Patryk B has originally developed awesome HASS integration that communicates with ecoMAX controller via ecoNET 300 device.
Development of this integration has recently been picked up by @jontofront, so it's getting regular updates and fixes again! If you have an ecoNET 300 device, be sure to check it out!
Click the following My button to install the integration via HACS:
HACS is recommended method to install and update the plum-ecomax integration.
If you still don't use it, give it a try, I'm sure you'll love it!
- Clone this repository with:
git clone https://github.com/denpamusic/homeassistant-plum-ecomax
- Move
custom_components
directory fromhomeassistant-plum-ecomax
to your Home Assistant configuration directory. (next to configuration.yaml)
cp -r ./homeassistant-plum-ecomax/custom_components ~/.homeassistant
- Restart Home Assistant.
Adding Plum ecoMAX integration to your Home Assistant instance can be done via user interface, by using this My button:
Manual Configuration Steps
If the above My button doesn’t work, you can also perform the following steps manually:
- Browse to your Home Assistant instance.
- In the sidebar click on Settings.
- From the configuration menu select: Devices & Services.
- In the bottom right, click on the Add Integration button.
- From the list, search and select "Plum ecoMAX".
- Select you connection type. Choose serial port if your ecoMAX controller is connected directly to the PC that is running Home Assistant, choose network if ecoMAX is connected via RS-485 to WiFi converter
To connect via the network you'll need to fill in Host and Port:
To connect via serial port you'll need to fill in the Device path and Baudrate:
⚠️ If you're running your Home Assistant in the docker container, don't forget to map your adapter/converter device, as described here.
- Your device should now be available in your Home Assistant installation.
This integration provides the following entities, split between controller device and sub-devices.
Not all entities might be available for your controller model and entities that are deemed as unsupported during initial setup will be disabled.
ecoMAX pellet boiler controller model names has a "p" suffix (e. g. ecoMAX 850p), ecoMAX installation controller model names have an "i" suffix (e. g. ecoMAX 850i).
Following section lists entities that are added to the ecoMAX device.
Sensors can have numerical or text state. Temperature changes that are less than 0.1°C are ignored.
Name | Unit | ecoMAX pellet | ecoMAX installation |
---|---|---|---|
Heating temperature | °C | ✅ | ✅ |
Water heater temperature | °C | ✅ | ✅ |
Outside temperature | °C | ✅ | ✅ |
Heating target temperature | °C | ✅ | ✅ |
Water heater target temperature | °C | ✅ | ✅ |
Heating mode | n/a | ✅ | ✅ |
Solar temperature | °C | ❌ | ✅ |
Fireplace temperature | °C | ❌ | ✅ |
Exhaust temperature | °C | ✅ | ❌ |
Feeder temperature | °C | ✅ | ❌ |
Return temperature | °C | ✅ | ❌ |
Heating load | % | ✅ | ❌ |
Fan power | % | ✅ | ❌ |
Fuel level | % | ✅ | ❌ |
Fuel consumption | kg | ✅ | ❌ |
Total fuel burned 1 | kg | ✅ | ❌ |
Heating power | kW | ✅ | ❌ |
Lower buffer temperature 2 | °C | ✅ | ❌ |
Upper buffer temperature 2 | °C | ✅ | ❌ |
Flame intensity 2 | % | ✅ | ❌ |
Oxygen level 3 | % | ✅ | ✅ |
1 Special meter entity. It counts burned fuel when HomeAssistant is running.
2 Controller support is required.
3 ecoLAMBDA module is required.
Binary sensors have two states (on/off, running/not running, etc.).
Name | ecoMAX pellet | ecoMAX installation |
---|---|---|
Heating pump state | ✅ | ✅ |
Water heater pump state | ✅ | ✅ |
Circulation pump state | ✅ | ✅ |
Fireplace pump state | ❌ | ✅ |
Solar pump state | ❌ | ✅ |
Fan state | ✅ | ❌ |
Lighter state | ✅ | ❌ |
Exhaust fan state | ✅ | ❌ |
Select entities can have multiple options to choose from.
Name | Options | ecoMAX pellet | ecoMAX installation |
---|---|---|---|
Summer mode | Off, Auto, On | ✅ | ✅ |
Switches have two states (on/off) that can be switched between.
Name | ecoMAX pellet | ecoMAX installation |
---|---|---|
Controller power switch | ✅ | ✅ |
Water heater disinfection switch | ✅ | ✅ |
Water heater pump switch | ✅ | ✅ |
Weather control switch | ✅ | ❌ |
Fuzzy logic switch | ✅ | ❌ |
Heating schedule switch | ✅ | ❌ |
Water heater schedule switch | ✅ | ❌ |
Numbers are represented as changeable sliders or input boxes.
Name | Unit | Style | ecoMAX pellet | ecoMAX installation |
---|---|---|---|---|
Heating temperature | °C | slider | ✅ | ❌ |
Minimum heating power | % | slider | ✅ | ❌ |
Maximum heating power | % | slider | ✅ | ❌ |
Minimum heating temperature | °C | slider | ✅ | ❌ |
Maximum heating temperature | °C | slider | ✅ | ❌ |
Grate mode temperature | °C | slider | ✅ | ❌ |
Fuel calorific value | kWh/kg | box | ✅ | ❌ |
Diagnostics are random entities that provide you with service and debug information.
Name | Type | ecoMAX pellet | ecoMAX installation |
---|---|---|---|
Alert | Binary sensor | ✅ | ✅ |
Connection status | Binary sensor | ✅ | ✅ |
Service password | Text sensor | ✅ | ✅ |
UID | Text sensor | ✅ | ✅ |
Software version | Text sensor | ✅ | ✅ |
Detect sub-devices | Button | ✅ | ✅ |
The integration provides full control for the connected indirect water heater using Home Assistant's internal water heater platform.
This includes ability to set target temperature, switch into priority, non-priority mode or turn off.
Please note, that due to the way base water heater entity is implemented, custom modes are not allowed. Please use the following reference table to convert between water heater operation modes displayed in Home Assistant and ecoMAX.
HomeAssistant | ecoMAX |
---|---|
Off | On |
Performance | Priority mode |
Eco | Non-priority mode |
This integration provides Home Assistant's climate platform entity for each ecoSTER thermostat connected to the ecoMAX controller.
This allows to check current room temperature, set target room temperature and change between ecoSTER operation modes.
Following section lists entities that are added to each sub-device.
Please note, that for ecoMAX installation ("i") controllers mixers are renamed to circuits.
Mixers/Circuits are added as sub-devices for the ecoMAX controller.
Sub-devices detected only once, when integration is added to HomeAssistant.
If you connected them after setting up the integration, you can use Detect sub-devices
button in Diagnostics section to force detection of new sub-devices.
Name | Unit | ecoMAX pellet | ecoMAX installation |
---|---|---|---|
Mixer temperature | °C | ✅ | ✅ |
Target mixer temperature | °C | ✅ | ✅ |
Name | ecoMAX pellet | ecoMAX installation |
---|---|---|
Mixer pump | ✅ | ✅ |
Name | Options | ecoMAX pellet | ecoMAX installation |
---|---|---|---|
Work mode | Off, Heating, Floor, Pump only | ✅ | ❌ |
Name | ecoMAX pellet | ecoMAX installation |
---|---|---|
Enable in summer mode | ✅ | ✅ |
Enable mixer | ❌ | ✅ |
Weather control | ✅ | ❌ |
Disable pump on thermostat | ✅ | ❌ |
Name | Unit | Style | ecoMAX pellet | ecoMAX installation |
---|---|---|---|---|
Mixer temperature | °C | slider | ✅ | ✅ |
Minimum mixer temperature | °C | slider | ✅ | ✅ |
Maximum mixer temperature | °C | slider | ✅ | ✅ |
Day target mixer temperature 1 | °C | slider | ❌ | ✅ |
Night target mixer temperature 1 | °C | slider | ❌ | ✅ |
1 Only available on second circuit.
These entities are only available for specific devices.
Name | Unit | Model | Product ID | Data key |
---|---|---|---|---|
Ash pan full | % | ecoMAX 860P3-O | 51 | 227 |
This integration fires following events:
This event is fired when ecoMAX controller issues an alert.
Name | Description |
---|---|
name | Config entry name. By default is set to the device model. |
code | Alert code. List of known codes is available here. |
from | Datetime object representing the alert start time. |
to 1 | Datetime object representing the alert end time. |
1 Only present if the alert has already ended.
This integration provides following services:
Provides ability to get device/sub-device parameter by name.
Field | Type | Description |
---|---|---|
name | string | Name of the parameter. |
Device 1 | Description |
---|---|
ecoMAX | Set parameter on the ecoMAX controller. |
Mixer | Set parameter on the mixer sub-device. |
1 Device can be targeted via any selector: area, device or entity.
Field | Type | Description | Example |
---|---|---|---|
name | string | Name of the parameter. | heating_target_temp |
value | number | Value of the parameter. | 65 |
min_value | number | Minimum allowed value. | 40 |
max_value | number | Maximum allowed value. | 80 |
device_type | string | Device type. ecomax or mixer. | ecomax |
device_uid | string | UID of device. | N271PAKR2NCP31K8G05G0 |
device_index 1 | number | Connected device number. | 0 |
1 This will help identify which sub-device (mixer) this parameter belongs to. Root device (controller) is always 0, while connected mixers can have 1-5.
Provides ability to set device/sub-device parameter by name. Any parameter that is supported by the device/sub-device can be used with this service. To get parameter names, please download and open diagnostics data.
Field | Type | Description |
---|---|---|
name | string | Name of the parameter. |
value | number, "on", "off" | Value of the parameter. |
Device 1 | Description |
---|---|
ecoMAX | Set parameter on the ecoMAX controller. |
Mixer | Set parameter on the mixer sub-device. |
1 Device can be targeted via any selector: area, device or entity.
Allows to get different schedules from the device.
Field | Type | Description |
---|---|---|
type | "heating", "water_heater" | Type of the schedule. |
weekdays | "monday", "tuesday", ... | Weekdays of the schedule. |
Field | Type | Description | Example |
---|---|---|---|
schedule | dictionary | Dictionary that contains schedule. | {"00:00": true, 00:30: true, ...} |
Allows to set different schedules on the device.
Field | Type | Description |
---|---|---|
type | "heating", "water_heater" | Type of the schedule. |
weekdays | "monday", "tuesday", ... | Weekdays of the schedule. |
preset | "day", "night" | Preset at scheduled time. |
start | time | Time of schedule start. |
end | time | Time of schedule end. |
Allows to set meter entity to a specific value.
Currently this can be used to set a value of a Total fuel burned
sensor which is only available on pellet burner controllers.
Field | Type | Description |
---|---|---|
value | integer | Set target sensor to this value. |
Entity | Description |
---|---|
total_fuel_burned | Counts total burned fuel in kilograms. |
Allows to reset the meter entity value.
Currently this can be used to reset a value of the Total fuel burned
sensor which is only available on pellet burner controllers.
Entity | Description |
---|---|
total_fuel_burned | Counts total burned fuel in kilograms. |
This product is distributed under MIT license.