question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

I’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:

Képernyőfotó 2020-11-19 - 10 34 08

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:open
  • Created 3 years ago
  • Comments:9 (8 by maintainers)

github_iconTop GitHub Comments

1reaction
sierencommented, Sep 1, 2021

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.

0reactions
n0rt0nthec4tcommented, Sep 27, 2021

After looking into this further I believe I cracked it. The prior post contained a lot of false approaches (e.g. no conversion between Big/Little Endian).

Data Example: Length| Counter | time delta. | Temp | Hum | VOC | ??? | ??? 15 (L) | 79ca0200 | 2930d7027f | 4709 | d014 | 1f00 | 0051 | 910f01 15 (L) | 78ca0200 | d12dd7027f | 4009 | 3215 | 1600 | 0052 | 920f01

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

								",15 %s%s%s%s%s%s0054 a80f01",

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?

Read more comments on GitHub >

github_iconTop Results From Across the Web

Eve Room | evehome.com
The Eve app distills all measurements into detailed graphs by hours, days, weeks, months, and years. You can then see with ease just...
Read more >
Eve Room - Apple HomeKit Smart Home Indoor Air Quality ...
The Eve Room sensor detects temperature, humidity and air quality; and is compatible with HomeKit, Apple's home automation system. Although the temperature and ......
Read more >
Eve Room Indoor Air Quality Monitor - Apple
Eve Room Indoor Air Quality Monitor measures volatile organic compound (VOC) concentration, temperature, and humidity levels in your home. Detect harmful VOC ...
Read more >
Review: Eve Room 2 gives users climate monitoring and ...
There are lots of new aspects to the Room 2 over the original. It looks more modern, and is less than a quarter...
Read more >
Eve Updates HomeKit-Enabled 'Eve Room' Air Quality ...
Eve Room is able to detect volatile organic compounds in the air, which can be harmful to people and pets. It also provides...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found