Supports home assistant 2023.05 or newer
To read/write on the bus, use this waveshare adapter. Find it on the waveshare website Others don't seem to function properly
Setup:
pip install -r requirements.txt
To only read from the bus, a cheap RS485 reader is sufficient.
python server.py --help
usage: server.py [-h] --mqtt MQTT [--mqtt-port MQTT_PORT] [--mqtt-prefix MQTT_PREFIX] [--dev DEV] [--oscillation OSCILLATION] [--sensorvalidity SENSORVALIDITY] [--state STATE] [--reverse]
options:
-h, --help show this help message and exit
--mqtt MQTT MQTT address
--mqtt-port MQTT_PORT
MQTT port
--mqtt-prefix MQTT_PREFIX
MQTT prefix
--dev DEV Serial device
--oscillation OSCILLATION
Oscillation time in seconds
--sensorvalidity SENSORVALIDITY
Sensor data validity in seconds
--state STATE JSON file to store state
--reverse Fans are installed reversed
This seems to be a OEM product by GetAir sold under the Zehnder brand. It's available under these brand names:
Only the Zehnder has been tested, but devices from other manufacturers should work as they seem identical.
The sensor is a Sensiron SHT21 i2c based sensor.
The maximum fan level is 100 Setting a fan level of 101 or higher will stop the fan The minimum fan level seems to be 26 0x1a
There are 3 user zones (DIP switch 1 to 3 on the fans). If none of the DIP 1 to 3 switches is set, the fan joins the first group.
On protocol level there are 6. In fact the [protocol level] == [user zone - 1] * 2 These are the even zones (DIP switch 4 set to OFF on the fans).
If DIP switch 4 on the fan is set to ON. The fan will listen to the odd zones.