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.In theory this application should work with any InspirAir® Home
Ventilation system.
Currently, only the following was actually tested:
- InspirAIR Home SC 370
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.
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.
- Run
docker-compose up
- goto http://localhost:8123
- Setup a user
- Add the MQTT Integration (
host=mqtt
, no further credentials) - A device should show up