Ask HN: Indoor air quality sensors and other IoT that's local-first and not DIY?
1. Connected for data logging, but local-first. That is, no mandatory Internet connection to vendor cloud. Ability to point to my own server (in my local network), or at least download a data dump off device every now and then (even if over a wire, as a last resort).
2. Not strictly industrial-use. I.e. one that doesn't require me to become a large corporation to buy some, and that doesn't require some proprietary, expensive, and/or old-school industrial protocols to talk to.
3. Not DIY at the hardware level. I'm not that good with a soldering iron, and with small children, I have neither time nor workshop space to solder and assemble anything less trivial than "plug a sensor into an ESP32 and screw both into a box".
(EDIT: shmaybe I can solder a few through-hole components into a PCB, but can't do SMD nor make a custom PCB.)
4. Quality components. With sensors, I mean measuring what it says on a tin (vs. measuring something else and using a factory-provided lookup table to synthesize approximations), and doing it with reasonable accuracy and precision. If there's a calibration step to be done, it should be one that doesn't require me to incorporate myself to perform it.
I've spent some time looking at available options and past HN threads, and so far I discovered that:
- Most products that fit #2 and #3 fail at #1 - they're predominantly cloud-connected bullcrap, and going by review, they often fail at #4. Occasionally, I find something that fits #2, #3, and #4, but then it fails at #1 by... providing no data export option altogether - apparently, it's enough for the consumer to see traffic lights instead of numbers, or browse the readings from the device control panel.
- The DIY stuff I saw (failing #3 to smaller or greater degree) is weak in #4 - in some cases, I recognize the sensors as rather poor and tricky to use right (infamous DHT11 comes to mind), and in all cases, I don't know how one would go about calibrating anything.
My questions thus are:
- Does anyone here have a setup that solves for these four points, and if yes, could you share some details?
- How one would go about looking for vendors meeting those criteria, if they exist at all?
- In a broader sense, how do you go looking for any IoT-adjacent vendor that meets those criteria? It really seems to me that everyone wants me to install their godawful stupid app to connect to their broken cloud, and there's such a flood of those products that reviewers can't keep up with quality testing, and hackers can't keep up with reversing the proprietary protocols and firmwares.
138 comments
[ 3.1 ms ] story [ 240 ms ] threadIt's been a side project of mine to set up a local-first IoT shop. But haven't gotten a lot of traction yet.
I've had some very similar ideas and stalled out at the hardware stage, but admittedly haven't tried in a while.
Unfortunately don't have the skills to measure the accuracy and precision but both are well reviewed in the Internets.
Some years ago, I built a sensor kit for a similar project (Luftdaten), but IIRC, the measurement quality of the hardware was... questionable (it did led me to discover that ultrasonic air purifiers will disperse as particulates anything and everything that's dissolved in the water you feed them, though).
At this point, my area is somewhat saturated with (cloud-connected, proprietary, with penalties for opening up) air quality sensors leased by a local startup - I have access to more outside-air data than I need right now. I'm looking for setup optimized for indoor air in various rooms - so even public clouds are kind of a mismatch here: I don't want to publish this data, and it would only make their aggregate results less accurate.
I have 2 of these sensors myself, and they report over mqtt (local), and I've connected them to homeassistant for live insight and possibly triggeging other events based on CO² levels.
The Operame project is currently on hold, but all designs/code are open and free to use.
I've a few with PMS5003 sensors and have been satisfied so far...
# SAF Aranet4 Home
Wireless Indoor Air Quality Monitor for Home, Office or School (CO2, Temperature, Humidity and More) Portable, Battery Powered, E-Ink Screen, App for Configuration & Data History
- The perfect companion for indoor environments, allowing you to monitor CO2 levels, temperature, relative humidity, and atmospheric pressure in real-time
- Easy for anyone to use – the color coding and the optional buzzer warns you when the CO2 concentration gets too high
- Power-efficient e-ink display ensures super long battery life for this wireless device (up to 4 years)
- Smartphone app for viewing and analyzing historical data up to 14 days history (supports iPhone and iPad with iOS 12 or later, Android devices with Oreo 8.0 or later, compatible with Bluetooth 4.1 or later)
- Uses nondispersive infrared sensor (NDIR) technology for most precise and reliable CO2 measurements
https://smile.amazon.com/gp/product/B07YY7BH2W/
https://github.com/Anrijs/Aranet4-Python *
* Note: Smart Home Integrations must be enabled in Aranet4 mobile app for full support
Only thing I wish it had was voc monitoring.
It's local, and does logging. That's what I really want.
The primary interface is through their app and I think you might need to use this to get it up and running initially. But they have a supported local API feature[1] that has so far worked as I'd expect. In the end I've been happy with their app so have primarily used that so far. The data seems good.
They're quite expensive new. But they were involved in some sort of cryptocurrency (!) that failed. So there are a lot of them available as nearly-new on eBay. In the UK I picked one up for about £60, I think.
[1] https://support.getawair.com/hc/en-us/articles/360049221014-...
https://old.reddit.com/r/Awair/comments/y7i5ku/awair_discont...
The local API is easy to interface to telegraf, so its trivial to dump to your graphing system of choice.
Imo I’d go open source for the hub. Installing it on an older laptop shouldn’t take as much DIY
https://www.home-assistant.io/
https://www.openhab.org/
Sadly, you’re probably going to need to do some DIY if local first and air monitoring are your highest priorities
Edit: I forgot that Apple HomeKit is local first
https://support.getawair.com/hc/en-us/articles/360049221014-...
- VEML6030 light sensor - BME680 environmental sensor - SGP30 air quality sensor
After you set up the hardware side of things, you put together a very simple Elixir Phoenix REST API and persist the sensor data into Postgres (with the TimescaleDB extension).
And to wrap up the book, you learn how to create Grafana dashboards to visualize all your time-series data.
Everything is meant to be set up on your LAN and everything can be run either natively or in Docker (there is a Docker compose file in the repo).
Hope that helps!
GitHub Repo: https://github.com/akoutmos/nerves_weather_station Book: https://pragprog.com/titles/passweather/build-a-weather-stat...
https://weatherflow.com/tempest-weather-system/
The book is very much "plug in a sensor" style as everything is connected via Qwiic cables.
That said, the point of this system is microcell climate computation, and it works best when part of the public grid of sampling points.
EDIT: I was eventually able to find this: https://apidocs.tempestwx.com/reference/tempest-udp-broadcas...
So it is possible to get the data locally, but it seems like they are pretty strongly discouraging its use.
[1] https://community.weatherflow.com/c/developers/5
[2] https://github.com/lux4rd0/weatherflow-dashboards-aio
I replied with an indoor no-DIY suggestion and code at top level: https://news.ycombinator.com/item?id=33774695
> I actually wrote a book on this topic earlier this year. It walks you though setting up a weather station...
... and replied to this from immediately above with a similarly no-DIY weather option.
Top level, I replied about CO2 levels, VOCs, etc:
https://news.ycombinator.com/item?id=33774695
Even with the Bosch library and their calibration the values seem rather odd at times
Another example was when I opened my window in my office. CO2 immediately dropped off (15:42 timestamp): https://twitter.com/akoutmos/status/1443233937015418891/phot...
Are you seeing the same behavior?
> additional meters or sensors
I've got a CCS811 as well but no luck yet. Acquired 2nd hand so unsure if broken from shipping or I'm being stupid with code or I broke it while soldering
What they are good at is detecting spikes, e.g. from cleaning liquids, desinfection etc. but I would not trust the absolute value at all.
The big sensor manufacturers recognized that and newer generations of the Sensirion sensors are now just displaying an "index" instead of absolute measurements.
How are companies like Bosch allowed to pass this crap off as functional? They don't meet even basic fitness for purpose criteria.
https://www.evehome.com/en/eve-room
Can do through hole + smd, but no bga
[0] https://www.evehome.com/en-us/eve-room
You could probably also find off the shelf Bluetooth sensors that would interface with Home Assistant for data logging and visualization.
[1]: https://www.sparkfun.com/categories/tags/qwiic [2]: https://www.sparkfun.com/products/17724
I've been very happy with my $20 Zigbee air quality sensors that I bought from AliExpress [1]. No DIY required, just plug them in and pair them with Home Assistant. These cheap sensors don't really have quality components or accurate readings, but they're accurate enough to get a good sense of my air quality and set thresholds to automate extractor fans and air purifiers.
If you really need a commercial-grade and highly accurate sensor, you could look at this iQi Zigbee sensor for $300 [2]. But I would recommend the $20 ones from AliExpress for home use.
[1] https://www.aliexpress.com/item/1005003815133870.html
[2] https://www.trutechtools.com/iqi-air-quality-monitor-v1-with...
You asked for something that's not DIY at the hardware level, though, so I think something like the AirGradient Pre-Soldered kit would be perfect for you[1].
You'll get an Arduino connected to top-of-the-line sensors that can be flashed with your SSID to connect to your local WiFi network. Once connected, the device exposes an HTTP endpoint you can GET for the status of each sensor[2].
I've been thinking a lot about indoor air quality[3] so if this setup works for you I'd love to know!
1. https://www.airgradient.com/open-airgradient/shop/#!/DIY-Pro...
2. https://youtu.be/Cmr5VNALRAg?t=444
3. https://gen.co/air
I was a bit surprised by that, but ultimately guessed at the same thing - even ignoring the (IMHO repugnant) cloud-based business model, there isn't one obvious way to record data off-device in local-first way that would be useful for non-tech / non-industrial users. It's kind of similar to the problem of transferring files between two computers: there are so many ways you could do it, with different requirements and tradeoffs[0], that there is no one universal way everyone can rely on. See also [0].
WRT. DIY, I don't mind extensive software-level DIY (especially that I'm DIY-ing the data storage, analysis and reporting side), but I currently want to avoid hardware DIY.
Thanks for your thoughts and the links; I found your analysis under[3] particularly useful and insightful. I'm actually looking into this space for health reasons - we don't have regular wildfires where I live, but I do have allergies, and now children with allergies too, so I want to better understand and control our indoor air.
----
[0] - https://xkcd.com/949/
I suppose time will tell if CHIP/Thread/Matter will finally solve the issue once and for all, but I think it looks promising.
https://www.hackster.io/news/ikea-vindriktning-air-quality-s...
Are you using the custom PCB and 3D-printed LED mounts in the instructions? What are you doing differently?
I keep it on my list as a last-resort option, because of two factors:
1. That's only a particulate sensor, and I'm hoping I can find something more comprehensive - at least with TVOC, but a legitimate CO₂ would be nice too.
2. Unless immediately hacked, it's just a paperweight - I'm not going to bother manually recording the two-bit measurement it displays, and my wife isn't fond of colorful indicator lights illuminating the apartment at night.
why is old-school a problem?
I don't have anything against those technologies per se - but I'm just a person doing this for a household, not a plant operator, so I don't want anything that's assuming it'll be a part of 5-digit procurement budgets and multi-person installation projects.
EDIT: I've heard of modbus, my impression is that it's accessible for a hobbyist to read/write/work with, so that by itself is not off the table. I suppose I could even deal with OPC UA (I worked with it professionally, and IIRC, there are some open source implementations for client/servers). I don't know much about other protocols used in the industry.