Eve Room 2
See original GitHub issueI’ve dig deeper into the newer Eve Room and figured out the correct way to the history graphs for ppb based Air Quality.
The correct “order” for the New Eve Room Services/Characteristics:
Air Quality Sensor Service (primary):
- Air Quality characteristic
- CO2 Level characteristic (maybe not necessary but i have CO2 readings too)
- VOC Density characteristic
Temperature Sensor Service:
- Current Temperature characteristic
- Temperature Display Units characteristic
Humidity Sensor Service:
- Current Relative Humidity characteristic
Eve History Service
- All the required things 😄
According to FCC docs, Eve Room 2 uses a Sensirion SGP30 for measuring Air Quality (tVOC). The first gen Room used an AMS sensor for eCO2 and tVOC and the graphs was based on the CO2 sensor’s ppm reading, the new Room measures in ppb. Home app displays VOC in μg/m3 units which makes sense!
Setting the VOC Density characteristic:
5 - 545 --> 1 - 119ppb --> Excellent
550 - 910 --> 120 - 199ppb --> Good
915 - 1640 --> 200 - 359ppb --> Fair
1645 - 3285 --> 360 - 719ppb --> Inferior
3290 - --> 720ppb - --> Poor
Setting 0 didn't show anything and also a higher value than uint16_t too 😅
What i’ve figured out is dividing the VOC Density values by 4.57 (and round it) gives the correct ppb values from μg/m3:
3285 / 4.57 = 719 ppb
1650 / 4.57 = 361 ppb
etc.
Then I’ve found the recommendation for the Sensirion SGP30 TVOC calibration and also the correct formula for conversation:
The formula i’ve found and used for ppb to μg/m3 conversation:
μg/m3 = (ppb)*(12.187)*(110 g/mol) / (273.15 + 20 °C)
1 ppb = 4.57 μg/m3
Looks like Eve used constant 20 °C temperature in the equation because this gives the correct (and constant) 4.57 ppb to μg/m3 formula. 😄
In short:
- VOC Characteristic min value should be from 5, in increments of 5, max value should be uint16_t max value (???)
- Setting the data values using μg/m3 values / 4.57 --> Eve graphs in ppb value
I need someone who can test and confirm this because i’m using native Homekit on ESP8266 currently without history yet👷♂️
Issue Analytics
- State:
- Created 3 years ago
- Comments:9 (8 by maintainers)
Top GitHub Comments
From what I could gather so far, the reason PPB values are not shown are because of a different data-stream that’s expected (compared to Eve Room v1). This hasn’t been implemented and needs to be reverse-engineered first. I’ll see if I can dump some packets later today if someone wants to help out.
Having looked over this, I think the data is translated as follows:
Length| Counter | time delta. | Temp | Hum | VOC | ?? | Battery Level % | Battery Millivolts | ?? 15 (L) | 79ca0200 | 2930d7027f | 4709 | d014 | 1f00 | 00 | 51 | 910f | 01 15 (L) | 78ca0200 | d12dd7027f | 4009 | 3215 | 1600 | 00 | 52 | 920f |01
So in the PR you submitted with the data streaming finger print of
0x54 = battery of 84% 0x0fa8 = battery millivolts of 4008
So based on that, I’m guessing with 100% battery, mv would be 4771 and you could use the data stream encoding as
“,15 %s%s%s%s%s%s 00 64 a312 01”,
Theory to test?