jheling / freeathome

Free@Home component for Home Assistant
103 stars 37 forks source link

Support for CO2 and humidity measurement #137

Closed thvd closed 10 months ago

thvd commented 1 year ago

Given this controller you have access to temperature using this repo. But this controller also measures the CO2 and humidity values.

What do i need to do to make this repo also support this? How can I help?

Tho85 commented 1 year ago

As a first step, please provide a dump of your free@home configuration as outlined in our README. It should be enough to search for the correct <device> XML node within this file and paste that, because the complete dump file can be quite big (~ 5 MB for me). The dump contains the devices' serial numbers, so maybe just search for that in the dump file.

If possible, you could also add a second file obtained by monitoring the bus for status updates, als outlined here. This allows me to better understand the sensor values that are sent over the bus (e.g. which unit the CO2 measurements are in). This may be problematic for your kind of sensor, as you might not be able to trigger a state change while monitoring the bus. But you may give it a try.

How do the values of CO2 and humidity show up in the free@home app? Are they shown in ppm and % respectively?

Tho85 commented 1 year ago

Take a look at #133 for an example of the kind of data we are looking for.

thvd commented 1 year ago

@Tho85 sorry it took a while. But got the dump XML file here: dump.xml.txt

A few values are displayed:

thvd commented 1 year ago

Also tried to monitor, a different serial number for the device, but it's the same model.


        <?xml version="1.0" encoding="UTF-8"?><project timeStamp="755764" sessionId="3492597c" type="update"
                                                       mrhaVersion="3.1.2" mrhaBuild="10109">
<privileges/>
<devices>
    <device serialNumber="ABB7041CDCB7" domainAddress="6B59" state="modified" commissioningState="ready" progress="100">
        <channels>
            <channel state="modified" i="ch0016" cid="ABB70849" isActive="true">
                <inputs/>
                <outputs>
                    <dataPoint state="modified" i="odp0002" full="false">
                        <value state="modified">152</value>
                    </dataPoint>
                    <dataPoint state="modified" i="odp0004" full="false">
                        <value state="modified">56</value>
                    </dataPoint>
                </outputs>
                <parameters/>
                <scenes/>
            </channel>
        </channels>
        <parameters/>
    </device>
</devices>
</project>
thvd commented 1 year ago

So i think:

Paring ID: 0622: VOC value (-> CO2) 0151: Humidity

The air pressure seems not present?

EnricoBilla commented 1 year ago

I have just checked on the official documentation from ABB and it seems that: 0x0622 is VOC index 0x0151 is humidity (the unit of measurement is not given but it's logical to think it's in %) 0x061B is CO2 level (unknown unit of measurement)

Also your device exposes VOC and CO2 alert (with pairing id 0x0629 and 0x0628)

These are all the output datapoint exposed by that channel.

192 A (Which i assume is air pressure)

I'm not sure that's the pressure, the pairing id for pressure should be 0x061A but that isn't present in the dump you sent.