Monitoring HVAC Air Quality in Home Assistant using IKEA Vindstyrka Zigbee sensors
We recently installed Heat Recovery Ventilation (WTW Ventilatie in Dutch) combined with 2 filters; a carbon filter against odor and a fine dust (PM) filter. To find out and monitor, I installed 3 IKEA Vindstyrka Zigbee sensors within the ventilation pipes.
The flow
flowchart LR
Outside -->|Vindstyrka: Inlet| HeatRecoveryUnit[Heat Recover Unit]
HeatRecoveryUnit --> Outside
HeatRecoveryUnit --> CarbonFilter
CarbonFilter --> F9-Filter
F9-Filter -->|Vindstyrka: To House| House
House[fa:fa-home House] --> |Vindstyrka: Outlet| HeatRecoveryUnit
Installation into the HVAC pipes
The biggest challenge is to connect the USB-C cable through the pipes while keeping a good airtight seal. I installed T-junctions, with a cover to later access the Vindstyrka sensor. Don’t forget to pair your devices (and maybe monitor them for a while) before installing!
Vindstyrka and pairing the sensors with Zigbee2Mqtt
The Ikea Vindstyrka’s are very easy to pair with Zigbee2Mqtt, just quickly press the top button 4x
. OTA updates are supported (but haven’t seen any differences between versions).
Unfortunately, the precision
of all outputs is limited to whole numbers, which for PM2.5
, VOC
and Humidity
is OK, but inconvenient for temperature
. It’s not a problem with the sensors, so maybe at a certain moment IKEA will come with a nice firmware update?
The sensor is quite good, it’s a Sensiron SEN54, with a precision of ±10% for mass concentration.
Creating a nice dashboard in Home Assistant
Using ApexCharts Card it’s quite easy to create a good looking dashboard.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
type: custom:apexcharts-card
graph_span: 24h
show:
last_updated: true
yaxis:
- id: pm25
apex_config:
forceNiceScale: true
tickAmount: 7
color_list:
- '#ff9800'
- '#3498db'
- '#e74c3c'
- '#1a4c6e'
header:
show: false
series:
- entity: sensor.system_wtw_air_quality_inlet_pm25
name: Inlet PM2.5
type: line
group_by:
func: max
duration: 5m
stroke_width: 2
show:
header_color_threshold: true
yaxis_id: pm25
- entity: sensor.system_wtw_air_quality_to_house_pm25
name: To House PM2.5
type: line
group_by:
func: max
duration: 5m
stroke_width: 2
show:
header_color_threshold: true
yaxis_id: pm25
- entity: sensor.system_wtw_air_quality_outlet_pm25
name: Outlet PM2.5
type: line
group_by:
func: max
duration: 5m
stroke_width: 2
show:
header_color_threshold: true
yaxis_id: pm25
Conclusion
As you can see, I see the filters are working very well, reducing unhealthy background fine dust and especially handling peaks of wood burning neighbors.