Skip to main content

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

Metadata

Release files for hass-inspirair 0.6.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for hass-inspirair 0.6.0
File Size Uploaded Provenance Actions
hass_inspirair-0.6.0.tar.gz 20.6 kB With provenance Details for hass_inspirair-0.6.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for hass-inspirair 0.6.0
File Interpreter ABI Platform Actions
hass_inspirair-0.6.0-py3-none-any.whl Python 3 none any Details for hass_inspirair-0.6.0-py3-none-any.whl

Total release size: 46.9 kB

Release files / hass_inspirair-0.6.0.tar.gz

Download URL hass_inspirair-0.6.0.tar.gz
Size 20.6 kB
Tags Source
SHA-256 checksum
How to use checksums
cead4fc2aa4cc2ec4efecddbf4302002e7bd7ed674c49f5b6b877d11d61fc28b
BLAKE2b-256 checksum
How to use checksums
d0c7af0df80b5328de3df4093fd1ffd515860814e7a35e39ee47977dadf29b18
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.1.1 CPython/3.12.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 4, 2024.

Transparency log

Release files / hass_inspirair-0.6.0-py3-none-any.whl

Download URL hass_inspirair-0.6.0-py3-none-any.whl
Size 26.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0d910b863a0e2d6eb799cc4f0811b0fc551379adf98f817d105f95bbba5e9ff5
BLAKE2b-256 checksum
How to use checksums
21aa1aa5ea4752648fab585f52bf82640c6e36d5a32f0ecb87657273e8407c35
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.1.1 CPython/3.12.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 4, 2024.

Transparency log

Security for hass-inspirair 0.6.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for hass_inspirair-0.6.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 4, 2024.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page