Home Assistant MQTT Device screenshot

hass-inspirair#

GitHub CI

python python python python

pre-commit

A python application that connects to the ventilation system InspirAir® Home from Aldes via ModBus and exposes it as a device for Home Assistant .

Schematics of dataflow
graph LR P(hass-inspirair) <-- MQTT --> M(MQTT Broker) I[InspirAir Home] <-- ModBus --> P HM(Home Assistant \n MQTT Integration) <--MQTT--> M H[Home Assistant] <----> HM

Only the ventilation mode is currently writable. However, it takes some time before the value changes after a write command. Since the register will stay at its previous value until the target state is reached.

Following features are implemented:

1. Register after starting up
sequenceDiagram participant H as Home Assistant(MQTT) participant L as hass-inspirair participant I as InspirAir L->>+I: read_holding_registers activate L L-->>L: creat config L->>-H: register <prefix>/<sensor_type>/<object_id>/<device_serial>/config
2. Continues updates
sequenceDiagram participant H as Home Assistant(MQTT) participant L as hass-inspirair participant I as InspirAir L->>I: read_holding_registers activate L L->>L: parse result L->>H: publish <prefix>/climate/<device_serial>/state L->>L: sleep for <polling interval> deactivate L
3. React on Home Assistant Inputs
sequenceDiagram participant H as Home Assistant(MQTT) participant L as hass-inspirair participant I as InspirAir H->>L: publish "<prefix>/select/<object_id>/<device_serial>/set" activate L L->>I: write_registers L->>I: read_holding_registers L->>L: parse result L->>H: publish <prefix>/climate/<device_serial>/state deactivate L
4. React on Home Assistant MQTT lifecycle events
sequenceDiagram participant H as Home Assistant(MQTT) participant L as hass-inspirair participant I as InspirAir H->>L: publish "<prefix>/status" payload: "online" activate L L->>+I: read_holding_registers L-->>L: creat config L->>-H: register <prefix>/<sensor_type>/<object_id>/<device_serial>/config
5. Multilanguage Support Default language is german, however, an english translation is available.

Supported Models#

In theory this application should work with any InspirAir® Home Ventilation system.

Currently, only the following was actually tested:

  • InspirAIR Home SC 370

Usage#

Configure a config.ini file based on your requirements (or use environment variables) . See config.ini for configuration options which can also be set via environment variables Config Values.

pip intall hass-inspirair
ha-inspirair -c ./config.ini

For are more exhaustive usage tutorial see docs/tutorial/index.md.

Simulator/Testing#

The compose stack includes a simulator that exposes the relevante registers via Modbus-TCP. The presented values are a pure mock. However, this stack can be used to try out the behavior of the MQTT discovery.

  1. Run docker-compose up

  2. goto http://localhost:8123

  3. Setup a user

  4. Add the MQTT Integration (host=mqtt, no further credentials)

  5. A device should show up