Hi!
This is working great!
Do you think that thereās any chance to use zha_toolkit for accessing the tVOC measurement cluster?
This could be a workaround until ZHA implements the pull requestā¦
Unfortunately itās turning out to be a bit more complicated to implement this into ZHA. The VOC attribute is not actively reported by the device and thus needs to be actively polled by ZHA, which complicates stuff.
Also there seems to be some issue with the unit, the SensorDeviceClass.VOLATILE_ORGANIC_COMPOUNDS expects a specific unit, but since this āVOC indexā is some manufacturer specific thing it doesnāt really have one.
Figuring out how ZHA actually works and how this stuff is all integrated into HA is going to take some more time. The developer documentation for HA core is OK, but figuring out how ZHA works with the quirks stuff and zigpy library is pretty much a reverse-engineering effort
Hi
This is great news!
How often the device sends data to HA?
How about accuracy for temperature? According to your screenshots, it doesnāt look like it is decimal.
As for the unit: I currently have the sensor defined as class SensorDeviceClass.VOLATILE_ORGANIC_COMPOUNDS without a unit specified; this causes HA to log a warning about missing units. Itās a minor hurdle to overcome, but one that needs to be addressed.
Indeed, I was set on buying one until I noticed this. I was hoping it could replace the simple room temperature sensor I have for my radiators, but it really should have 0.1Ā° resolution to work well for that, at least for the data reported over Zigbee. (I could live with whole numbers on the display.) Iām not so optimistic itās possible, but if thereās a way to change it to 0.1Ā° resolution, Iād love to hear about it!
With this method Iām able to get some values to HA. Iām really not sure how the template sensor should be created for this use case where ZHA toolkit writes the value Without the state_id
I started reversing the way IKEA implements the SEN54 sensor in VINDSTYRKA, as they seem to be doing some funky processing on raw and undocumented valuesā¦
The way ESPHome implements this sensor yields different (inaccurate!) results for temperature/humidity when compared to the values reported by VINDSTYRKA (as reported here: IKEA Vindstyrka & ESPHome Integration - #4 by Laess3r).
I hope to come up with some sort of compensation value/slope that can be used to correct the sensor output.
Has anyone had any luck contacting IKEA about technical specs of this device beyond those in the āassemblyā document? Specifically, I am trying to figure out what type of PM2.5 sensor is being usedāI am most familiar with Plantower laser sensors but this one appears to be different.
As mentioned before, IKEA VINDSTYRKA contains a Sensirion SEN54 sensor module. There is plenty of documentation available on the website of the manufacturer: Smart sensor solutions.
You can add it as a Zigbee device either with ZHA or Zigbee2MQTT. You will obtain Temp, Humidity and PM2.5 data from the unit into HA. However, as this thread defines, there is an issue with obtaining the VOC index in ZHA which is an issue that I have. Apparently it works with Z2MQTT but I have not gone there. I am a ZHA user.
I am hoping for a resolution in the VOC index as my intention is to use my IKEA unit in a 3D Print Enclosure to control carbon filtration blowers installed in the enclosure.
This is my automation to poll for updates every 15 seconds from multiple sensors, and does not require modifying quirks or patching HASS. Hope this is useful!
Edited to add allow_create: true and removed duplicate attr_read.
Edit: Turns out manf is critical when quirks arenāt set.
alias: "Climate: Fetch AQI data"
mode: single
description: poll for AQI data
trigger:
- platform: time_pattern
seconds: "/15"
condition: []
action:
- parallel:
- repeat:
for_each: # list your sensors here
- lounge_aqi
- office_aqi
- balcony_aqi
- bathroom_aqi
sequence:
- service: zha_toolkit.attr_read
data:
ieee: sensor.{{ repeat.item }}_particulate_matter
endpoint: 1
manf: 4476
cluster: 1066
attribute: 0
state_id: sensor.{{ repeat.item }}_particulate_matter
allow_create: true
- service: zha_toolkit.attr_read
data:
ieee: sensor.{{ repeat.item }}_particulate_matter # Intentional, because the VOC index parameter may not exist
endpoint: 1
manf: 4476
cluster: 64638
attribute: 0
state_id: sensor.{{ repeat.item }}_voc_index
allow_create: true