Frames

StopMaster

Stop the ecoMAX controller transmission.

Request

FrameType.REQUEST_STOP_MASTER = 24

StartMaster

Start the ecoMAX controller transmission.

Request

FrameType.REQUEST_START_MASTER = 25

CheckDevice

Check if device is available. This frame is being broadcasted by the ecoMAX controller to all connected devices.

The response to this request can contain the network parameters as represented by the following dataclass:

class pyplumio.structures.network_info.NetworkInfo(eth: ~pyplumio.structures.network_info.EthernetParameters = <factory>, wlan: ~pyplumio.structures.network_info.WirelessParameters = <factory>, server_status: bool = True)

Represents a network parameters.

Request

FrameType.REQUEST_CHECK_DEVICE = 48

Response

FrameType.RESPONSE_DEVICE_AVAILABLE = 176

Name

Description

network

Contains network parameters.

EcomaxParameters

Get the ecoMAX controller editable parameters. Each parameter is represented by a tuple containing parameter index and parameter values represented by the following dataclass:

class pyplumio.helpers.parameter.ParameterValues(value: int, min_value: int, max_value: int)

Represents a parameter values.

Request

FrameType.REQUEST_ECOMAX_PARAMETERS = 49

Name

Description

Default

start

Parameter index to start on.

0

count

Number of parameters to request.

255

Response

FrameType.RESPONSE_ECOMAX_PARAMETERS = 177

Name

Description

ecomax_parameters

Contains a list of ecomax parameters.

Handler

class pyplumio.structures.ecomax_parameters.EcomaxParametersStructure(frame: Frame)

Represents an ecoMAX parameters structure.

MixerParameters

Get the editable parameters for each connected mixer.

Request

FrameType.REQUEST_MIXER_PARAMETERS = 50

Name

Description

Default

device_index

Mixer index.

start

Parameter index to start on.

0

count

Number of parameters to request.

255

Response

FrameType.RESPONSE_MIXER_PARAMETERS = 178

Name

Description

mixer_parameters

Contains a list of parameters for each connected mixer.

Handler

class pyplumio.structures.mixer_parameters.MixerParametersStructure(frame: Frame)

Represents a mixer parameters data structure.

SetEcomaxParameter

Set the editable parameter value.

Request

FrameType.REQUEST_SET_ECOMAX_PARAMETER = 51

Name

Description

Default

index

Parameter index.

value

Value to set parameter to.

Response

FrameType.RESPONSE_SET_ECOMAX_PARAMETER = 179

SetMixerParameter

Set the editable parameter for the connected mixer.

Request

FrameType.REQUEST_SET_MIXER_PARAMETER = 52

Name

Description

Default

device_index

Mixer index.

index

Parameter index.

value

Value to set parameter to.

Response

FrameType.RESPONSE_SET_MIXER_PARAMETER = 180

Schedules

Get the list of schedules from the ecoMAX controller. This doesn’t include schedules from thermostat (ecoSTER) devices.

Request

FrameType.REQUEST_SCHEDULES = 54

Response

FrameType.RESPONSE_SCHEDULES = 182

Name

Description

schedules

Contains a list of schedules.

schedule_parameters

Contains a list of schedule parameters.

Handler

class pyplumio.structures.schedules.SchedulesStructure(frame: Frame)

Represents a schedule data structure.

SetSchedule

Set the schedule on the ecoMAX controller. All schedules must be passed with this request all at once, even unchanged ones.

Request

FrameType.REQUEST_SET_SCHEDULE = 55

Name

Description

Default

data

List of schedule data.

switch

List of values for a schedule switches (on/off).

parameter

List of values for a schedule parameters

UID

Get the device identification as presented in the following dataclass:

class pyplumio.structures.product_info.ProductInfo(type: ProductType, id: int, uid: str, logo: int, image: int, model: str)

Represents a product info provided by an UID response.

Request

FrameType.REQUEST_UID = 57

Response

FrameType.RESPONSE_UID = 185

Name

Description

product_info

Contains a product info.

Handler

class pyplumio.structures.product_info.ProductInfoStructure(frame: Frame)

Represents a product info data structure.

Password

Get the device service password.

Request

FrameType.REQUEST_PASSWORD = 58

Response

FrameType.RESPONSE_PASSWORD = 186

Name

Description

password

Contains a device service password.

EcomaxControl

Turns the ecoMAX controller on or off.

Request

FrameType.REQUEST_ECOMAX_CONTROL = 59

Name

Description

Default

value

Value that describes wanted state. 0 - off, 1 - on

Response

FrameType.RESPONSE_ECOMAX_CONTROL = 187

Alerts

Get the list of device alerts, each is represented by the following dataclass:

class pyplumio.structures.alerts.Alert(code: int, from_dt: datetime, to_dt: datetime | None)

Represents a device alert.

Request

FrameType.REQUEST_ALERTS = 61

Name

Description

Default

start

Index to start on.

0

count

Number of alerts to request.

10

Response

FrameType.RESPONSE_ALERTS = 189

Name

Description

alerts

Contains a list of alerts.

Handler

class pyplumio.structures.alerts.AlertsStructure(frame: Frame)

Represents an alerts data structure.

ProgramVersion

Get the software version, represented by the following dataclass:

class pyplumio.structures.program_version.VersionInfo(software: str = '0.5.29', struct_tag: bytes = b'\xff\xff', struct_version: int = 5, device_id: bytes = b'z\x00', processor_signature: bytes = b'\x00\x00\x00')

Represents a version info provided in program version response.

It is broadcasted by the ecoMAX controller to all connected devices.

Request

FrameType.REQUEST_PROGRAM_VERSION = 64

Response

FrameType.RESPONSE_PROGRAM_VERSION = 192

Name

Description

version_info

Contains software version.

Handler

class pyplumio.structures.program_version.ProgramVersionStructure(frame: Frame)

Represents a program version data structure.

RegulatorDataSchema

Get the regulator data schema, that describes the data type of RegulatorData message.

It’s represented by dictionary, that’s indexed by regulator data field id and a member of the following DataType class, that defines the regulator data field type.

class pyplumio.helpers.data_types.DataType(value: T | None = None)

Represents a data type.

Request

FrameType.REQUEST_REGULATOR_DATA_SCHEMA = 85

Response

FrameType.RESPONSE_REGULATOR_DATA_SCHEMA = 213

Name

Description

regdata_schema

Contains regulator data schema.

Handler

class pyplumio.structures.regulator_data_schema.RegulatorDataSchemaStructure(frame: Frame)

Represents a regulator data schema structure.

ThermostatParameters

Request

FrameType.REQUEST_THERMOSTAT_PARAMETERS = 92

Name

Description

Default

device_index

Mixer index.

start

Parameter index to start on.

0

count

Number of parameters to request.

255

Response

FrameType.RESPONSE_THERMOSTAT_PARAMETERS = 220

Name

Description

thermostat_profile

Contains current thermostat profile or None.

thermostat_parameters

Contains list of thermostat parameters.

Handler

class pyplumio.structures.thermostat_parameters.ThermostatParametersStructure(frame: Frame)

Represents a thermostat parameters data structure.

SetThermostatParameter

Set the editable parameter for the connected thermostat.

Request

FrameType.REQUEST_SET_THERMOSTAT_PARAMETER = 93

Name

Description

Default

offset

Parameter offset. (nthermostat * nparameters per thermostat )

index

Parameter index.

value

Value to set parameter to.

Response

FrameType.RESPONSE_SET_THERMOSTAT_PARAMETER = 221

RegulatorData

Special message that is broadcasted by the ecoMAX controller at regular interval. It contains all controller’s data indexed by numerical keys.

As this is broadcasted message, there’s no need to send a request, but in order to be decoded, RegulatorDataSchema request must be send to obtain the schema.

Message

FrameType.MESSAGE_REGULATOR_DATA = 8

Name

Description

regdata

Contains regulator data indexed by numerical keys.

Handler

class pyplumio.structures.regulator_data.RegulatorDataStructure(frame: Frame)

Represents a regulator data structure.

SensorData

Special message that is being send by the ecoMAX controller as result of responding to CheckDevice request.

Unlike RegulatorData, it’s structure is predetermined and consistent across all ecoMAX controllers and thus can be decoded without schema. However, it only contains common sensors and lacks controller-specific sensors.

Note

Some of the attributes listed below, might be unsupported by your ecoMAX controller.

Message

FrameType.MESSAGE_SENSOR_DATA = 53

Name

Description

fan

Blower fan status.

feeder

Feeder status.

heating_pump

Heating pump status.

water_heater_pump

Water heater pump status.

circulation_pump

Hot water recirculation pump status.

lighter

Lighter status.

alarm

Alarm status.

outer_boiler

Outer boiler status.

fan2_exhaust

Exhaust fan status.

feeder2

Secondary feeder status.

outer_feeder

Outer feeder status.

solar_pump

Solar pump status.

fireplace_pump

Fireplace pump status.

heating_pump_flag

Indicates whether heating pump is connected.

water_heater_pump_flag

Indicates whether water heater pump is connected.

circulation_pump_flag

Indicates whether hot water recirculation pump is connected.

solar_pump_flag

Indicates whether solar pump is connected.

heating_temp

Heating temperature.

feeder_temp

Feeder temperature.

water_heater_temp

Water heater temperature.

outside_temp

Outside temperature.

return_temp

Return feedwater temperature.

exhaust_temp

Exhaust fumes temperature.

optical_temp

Flame intensity in percent.

upper_buffer_temp

Upper buffer temperature.

lower_buffer_temp

Lower buffer temperature.

upper_solar_temp

Upper solar buffer temperature.

lower_solar_temp

Lower solar buffer temperature.

fireplace_temp

Fireplace temperature.

heating_target

Heating target temperature.

heating_status

Heating status.

water_heater_target

Water heater target temperature.

water_heater_status

Water heater status.

pending_alerts

Number of pending alerts.

fuel_level

Current fuel level in percent.

fan_power

Current fan power in percent.

boiler_load

Boiler load (power) in percent.

boiler_power

Boiler power in kWh.

fuel_consumption

Current fuel consumption in kg/h.

modules

Dataclass containing versions of the connected modules.

lambda_state

Current lambda sensor state.

lambda_target

Lambda sensor target.

lambda_level

Lambda sensor level.

thermostat_sensor

Thermostat sensors.

thermsotats_available

Number of thermostats supported by your controller.

thermostats_connected

Number of thermostats currently connected to your controller.

mixer_sensor

Mixer sensors.

mixers_available

Number of mixers supported by your controller.

mixers_connected

Number of mixers currently connected to your controller.

Handlers

class pyplumio.structures.outputs.OutputsStructure(frame: Frame)

Represents an outputs data structure.

class pyplumio.structures.output_flags.OutputFlagsStructure(frame: Frame)

Represents an output flags structure.

class pyplumio.structures.temperatures.TemperaturesStructure(frame: Frame)

Represents a temperatures data structure.

class pyplumio.structures.statuses.StatusesStructure(frame: Frame)

Represents a statuses data structure.

class pyplumio.structures.pending_alerts.PendingAlertsStructure(frame: Frame)

Represents a pending alerts structure.

class pyplumio.structures.fuel_level.FuelLevelStructure(frame: Frame)

Represents a fuel level sensor data structure.

class pyplumio.structures.fan_power.FanPowerStructure(frame: Frame)

Represents a fan power sensor data structure.

class pyplumio.structures.boiler_load.BoilerLoadStructure(frame: Frame)

Represents a boiler load sensor data structure.

class pyplumio.structures.boiler_power.BoilerPowerStructure(frame: Frame)

Represents a boiler power sensor data structure.

class pyplumio.structures.fuel_consumption.FuelConsumptionStructure(frame: Frame)

Represents a fuel consumption sensor data structure.

class pyplumio.structures.modules.ModulesStructure(frame: Frame)

Represents a modules data structure.

class pyplumio.structures.lambda_sensor.LambdaSensorStructure(frame: Frame)

Represents a lambda sensor data structure.

class pyplumio.structures.thermostat_sensors.ThermostatSensorsStructure(frame: Frame)

Represents a thermostats sensors data structure.

class pyplumio.structures.mixer_sensors.MixerSensorsStructure(frame: Frame)

Represents a mixer sensors data structure.