pysaleryd package

Submodules

pysaleryd.client module

HRV System client

class pysaleryd.client.Client(url: str, port: int, session: ClientSession, update_interval=30)[source]

Bases: object

Client to manage communication with HRV

add_handler(handler: Callable[[str], None])[source]

Add event handler

async connect()[source]

Connect to system and wait for connection

property data

Get data from system

disconnect()[source]

Disconnect from system

remove_handler(handler: Callable[[str], None])[source]

Remove event handler

async send_command(key: MessageTypeEnum, value: str | int)[source]

Send command to HRV

property state

Get internal socket state

pysaleryd.const module

class pysaleryd.const.DataKeyEnum(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.MessageTypeEnum(value)[source]

Bases: IntEnum

ACK_ERROR = 1
ACK_OK = 0
MESSAGE = 2
RAW = 3
class pysaleryd.const.PayloadSeparatorEnum(value)[source]

Bases: StrEnum

ACK_ERROR = '!'
ACK_OK = '$'
MESSAGE_START = '#'
PAYLOAD_START = ':'

pysaleryd.helpers module

class pysaleryd.helpers.ErrorCache[source]

Bases: object

Error cache, caches previous data until frame is complete

add(message)[source]

Add data to cache

begin_frame()[source]

Begin new frame

property data

Get error data

end_frame()[source]

Mark data frame as complete

pysaleryd.skeleton module

This is a skeleton file that can serve as a starting point for a Python console script. To run this script uncomment the following lines in the [options.entry_points] section in setup.cfg:

console_scripts =
     pysaleryd = pysaleryd.skeleton:run

Then run pip install . (or pip install -e . for editable mode) which will install the command pysaleryd inside your current environment.

Besides console scripts, the header (i.e. until _logger…) of this file can also be used as template for Python modules.

Note

This file can be renamed depending on your needs or safely removed if not needed.

References

pysaleryd.skeleton.main(args)[source]

Main program

pysaleryd.skeleton.parse_args(args)[source]

Parse command line parameters

Parameters:

args (List[str]) – command line parameters as list of strings (for example ["--help"]).

Returns:

command line parameters namespace

Return type:

argparse.Namespace

pysaleryd.skeleton.run()[source]

Calls main() passing the CLI arguments extracted from sys.argv

This function can be used as entry point to create console scripts with setuptools.

pysaleryd.skeleton.setup_logging(loglevel: int)[source]

Setup basic logging

Parameters:

loglevel (int) – minimum loglevel for emitting messages

pysaleryd.skeleton.signal_handler(signum: int, frame)[source]

Signal handler

pysaleryd.utils module

Utils

class pysaleryd.utils.BaseSystemProperty[source]

Bases: object

HRV System property

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

Bases: BaseSystemProperty

HRV System error property

class pysaleryd.utils.IncomingMessage[source]

Bases: object

Incoming message from system

static from_str(msg: str) tuple[DataKeyEnum, str, MessageTypeEnum][source]

Parse message string

Parameters:

msg (str) – raw message

Raises:

ParseError – if parsing fails

Returns:

parsed message key and value

Return type:

(key, value, message_type)

class pysaleryd.utils.OutgoingMessage(key: DataKeyEnum, value: str)[source]

Bases: object

Outgoing message to system

key: DataKeyEnum
value: str
exception pysaleryd.utils.ParseError[source]

Bases: BaseException

Parse error. Raised when message parsing fails

class pysaleryd.utils.SystemProperty(key: DataKeyEnum, value: int | str | None = None, min_value: int | str | None = None, max_value: int | str | None = None, *_args)[source]

Bases: BaseSystemProperty

HRV System property with value, min, max

classmethod from_str(key: DataKeyEnum, raw_value: str)[source]

Create instance from from string

pysaleryd.websocket module

Websocket client to listen and send messages to and from HRV system.

class pysaleryd.websocket.Signal(value)[source]

Bases: Enum

What is the content of the callback.

CONNECTION_STATE = 'state'
DATA = 'data'
class pysaleryd.websocket.State(value)[source]

Bases: Enum

State of the connection.

NONE = ''
RETRYING = 'retrying'
RUNNING = 'running'
STOPPED = 'stopped'
class pysaleryd.websocket.WSClient(session: ClientSession, host: str, port: int, callback: Callable[[Signal, str | None, State | None], Awaitable[None]])[source]

Bases: object

Websocket Client

async send_message(message: str)[source]

Send message to system

Parameters:

message (str) – message

Returns:

Coroutine[Any, Any, None]

Return type:

_type_

start() None[source]

Start websocket and update its state.

property state: State

State of websocket.

stop() None[source]

Close websocket connection

Module contents