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.31', 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.