pysaleryd package

Subpackages

Submodules

pysaleryd.client module

HRV System client

class pysaleryd.client.Client(ip: str, port: int = 3001, update_interval: int = 30, connect_timeout: int = 15)[source]

Bases: object

Client to manage communication with HRV

add_data_handler(handler: Callable[[dict[DataKey, str]], None | Coroutine[None, dict[DataKey, str], None]]) None[source]

Add data handler to be called at update interval

Parameters:

handler (Callable[[dict[DataKey, str]], None | Coroutine]) – handler function. Must be safe to call from event loop

add_state_change_handler(handler: Callable[[State], None | Coroutine])[source]

Add state change handler to be called when client state changes

Parameters:

handler (Callable[[str], None | Coroutine]) – handler to be added

async close() None[source]

Disconnect from system

async connect() None[source]

Connect to HRV and begin receiving

property data: dict[DataKey, str]

Get data from system if connection is alive

remove_data_handler(handler: Callable[[dict[DataKey, str]], None | Coroutine[None, dict[DataKey, str], None]]) None[source]

Remove data handler

Parameters:

handler (Callable[[dict[DataKey, str]], None | Coroutine]) – handler to remove

remove_state_change_handler(handler: Callable[[State], None | Coroutine[None, State, None]])[source]

Remove state change handler

Parameters:

handler (Callable[[str], None | Coroutine]) – handler to be removed

async send_command(key: DataKey, payload: str | int) None[source]

Send command to HRV unit

Parameters:
  • key (MessageType) – message type key

  • payload – payload

property state: State | None

State of the underlying websocket connection

pysaleryd.const module

Constants

class pysaleryd.const.DataKey(value)[source]

Bases: StrEnum

Data key enumerator

AIR_TEMPERATURE_AT_HEATER = '*TK'
AIR_TEMPERATURE_SUPPLY = '*TC'
BOOST_MODE_MINUTES = 'FH'
CONTROL_SYSTEM_STATE = 'MP'
CONTROL_SYSTEM_VERSION = '*SC'
COOLING_MODE = 'MK'
ERROR_FRAME_END = '*EZ'
ERROR_FRAME_START = '*EA'
ERROR_MESSAGE = '*EB'
FAN_SPEED_EXHAUST = '*DB'
FAN_SPEED_SUPPLY = '*DA'
FILTER_MONTHS_LEFT = '*FL'
FIREPLACE_MODE = 'MB'
FIREPLACE_MODE_MINUTES = 'MC'
HEATER_POWER_PERCENT = '*MJ'
HEAT_EXCHANGER_ROTOR_PERCENT = '*XA'
HEAT_EXCHANGER_ROTOR_RPM = '*XB'
INSTALLER_EMAIL = 'IB'
INSTALLER_NAME = 'IA'
INSTALLER_PASSWORD = 'IP'
INSTALLER_PHONE = 'IC'
INSTALLER_WEBSITE = 'IE'
MINUTES_LEFT_BOOST_MODE = '*FI'
MINUTES_LEFT_FIREPLACE_MODE = '*ME'
MODEL_NAME = '*SB'
MODE_FAN = 'MF'
MODE_HEATER = 'MH'
MODE_HEATER_POWER_RATING = 'MG'
MODE_TEMPERATURE = 'MT'
NONE = ''
PRODUCT_NUMBER = '*SA'
TARGET_TEMPERATURE_COOL = 'TF'
TARGET_TEMPERATURE_ECONOMY = 'TE'
TARGET_TEMPERATURE_NORMAL = 'TD'
class pysaleryd.const.MessageContext(value)[source]

Bases: StrEnum

Message context

ACK_ERROR = 'ACK_ERROR'
ACK_OK = 'ACK_OK'
NONE = 'NONE'
classmethod from_str(message: str) MessageContext[source]

Decode message context from string

class pysaleryd.const.MessageSeparator(value)[source]

Bases: StrEnum

Message payload separator

ACK_ERROR = '!'
ACK_OK = '$'
MESSAGE_END = '\r'
MESSAGE_START = '#'
PAYLOAD_START = ':'

pysaleryd.data module

Utils

class pysaleryd.data.BaseMessage(key: str | DataKey, payload: str, message_context: MessageContext = MessageContext.NONE)[source]

Bases: object

Base message class

class pysaleryd.data.ErrorSystemProperty(key: DataKey, value: list[str] | None = None)[source]

Bases: object

HRV System error property

class pysaleryd.data.Message(key: str | DataKey, payload: str, message_context: MessageContext = MessageContext.NONE)[source]

Bases: BaseMessage

Message from HRV system

classmethod decode(msg: str) Message[source]

Decode message from string

encode() str[source]

Encode message to string

exception pysaleryd.data.ParseError[source]

Bases: BaseException

Parse error. Raised when message parsing fails

class pysaleryd.data.SystemProperty(key: DataKey, value: int | str | float | None = None, min_value: int | str | float | None = None, max_value: int | str | float | None = None, extra: int | str | float | None = None)[source]

Bases: object

HRV System property with value, min, max and extra values

classmethod from_message(message: Message) SystemProperty[source]
classmethod from_str(key: DataKey, payload: str | None) SystemProperty[source]

Create instance from from string

exception pysaleryd.data.UnsupportedMessageType[source]

Bases: BaseException

Unsupported message type. Raised when message type is not supported

Module contents