energomera_hass_mqtt.hass_mqtt

Package to read data from Energomera energy meter and send over to HomeAssistant using MQTT.

Classes

EnergomeraHassMqtt(config[, dry_run])

Communicates with Energomera energy meters using IEC 62056-21 (supersedes IEC 61107) and sends values of requested parameters to HomeAssisstant using MQTT.

class energomera_hass_mqtt.hass_mqtt.EnergomeraHassMqtt(config, dry_run=False)

Bases: object

Communicates with Energomera energy meters using IEC 62056-21 (supersedes IEC 61107) and sends values of requested parameters to HomeAssisstant using MQTT.

Parameters:

config (EnergomeraConfig) – Configuration state

static calculate_bcc(bytes_data)

Calculates protocol BCC using Energomera non-standard modification of IEC 1155-78.

See http://www.energomera.ru/documentations/product/ce301_303_rp.pdf, page 126, for more details.

Parameters:

bytes_data (bytes) – The data to calculate BCC over

Return type:

bytes

Returns:

Calculated BCC

iec_read_values(address, additional_data=None)

Reads value(s) at selected address from the meter using IEC 62056-21 protocol.

Parameters:
  • address (str) – Address of meter parameter to read

  • additional_data (str | None) – Additional data to read the parameter with (argument to parameter’s address)

Return type:

List[DataSet]

Returns:

Parameter’s data received from the meter

property is_meter_ids_available: bool

Indicates whether meter IDs (model, version, serial number) are available.

Returns:

True if all the IDs are available

set_meter_ids(hello_response)

Stores meter’s model, serial number and software version.

Parameters:

hello_response (List[DataSet]) – Response to ‘HELLO’ command

Return type:

None

async iec_read_admin()

Primary method to loop over the parameters requested and process them.

Return type:

None

async finalize()

Performs finalization steps, that is - disconnecting MQTT client currently.

Return type:

None

async set_online_sensor(state, setup_only=False)

Adds a pseudo-sensor to HASS reflecting the communication state of meter - online or offline.

Parameters:

state (bool) – The sensor state

Return type:

None

async set_duration_sensor(value)

Adds a pseudo-sensor to HASS reflecting the duration of the meter cycle.

Return type:

None