Today’s adventures in DIY IoT air quality monitoring

This weekend I reworked a few things that needed to get done

Lots of gaps in the data while I was working on this 😅

Debugging

nginx lets me add HTTP endpoints for the health of the app, or to early fail certain URLs (favicon and such)

Visualization

I also wanted to improve the graphs, and there isn’t much to say except I dug into the docs for the lib, and now

  • absent data shows a gap
  • less lines to connect dots that don’t need connecting

SQLite

I hate to admit that I had to remove a CTE that looked impressive in the SQL, but was wrong and exacerbated data duplication (which I also had to address)

HTTP round-trip time

I was annoyed that the ESP32 needed a steady 225s every time it wanted to upload sensor data coming from the mesh, which is once per 3s times 6 sensors, so it was spending half the time doing that

That led, I believe, to mesh instability and required a reboot of each node, so it needed fixing

So I had a plan:

  • switch the web server (php -S) for a php-fom & nginx combo
  • reuse the TCP connection

I did not expect the change in server stack to have so little effect, I thought opcache at least would lead to measurable improvement; it didn’t (not more than 10%)

I also hoped that reusing the TCP connection would lead to more stable network; quite the contrary!

Overall, the fastest uploads are now less than 70ms, so that’s an improvement by 2/3rd

But… While my previous program was either succeeding in 220ms or waiting indefinitely, the current one can do a successful round trip in either 70ms, or 125 ms or 330 ms, or anything in-between 🤷‍♀️

Regardless, I’m happy with the new setup. I know that I was unable to add more nodes with the previous program, however, the current iteration can reuse TCP more efficiently the more often there is stuff to upload, so there is room to grow

https://github.com/GuillaumeRossolini/griotte

#arduino #sqlite #DiyAirQualityMonitor #DiyAirQualitySensor #mesh

AI-Driven Analysis Interface Launches for Datasette Ecosystem

Datasette Agent, an AI tool, now lets users ask questions about SQLite data using chat. Available for Datasette Cloud and self-hosted users.

#DatasetteAgent, #SQLite, #DataAnalysis, #AItools, #OpenSource

https://newsletter.tf/datasette-agent-launches-for-sqlite-data-analysis/

The new Datasette Agent uses AI to let users chat with their SQLite data, making analysis easier than ever. This is a big step for data exploration.

#DatasetteAgent, #SQLite, #DataAnalysis, #AItools, #OpenSource
https://newsletter.tf/datasette-agent-launches-for-sqlite-data-analysis/

Datasette Agent Launches for SQLite Data Analysis

Datasette Agent, an AI tool, now lets users ask questions about SQLite data using chat. Available for Datasette Cloud and self-hosted users.

NewsletterTF

After running some load tests the current implementation will be able to handle 40,000 active probes.

#GoLang #SQLite #LoadTesting

Now we have some Prometheus metrics being exported so we can keep an eye on the health of https://probes.dev

#GoLang #SQLite #Prometheus #Observability

SQLite is All You Need for Durable Workflows - Blog

DBOS recently argued that Postgres is all you need for durable execution: if you already trust your database, you do not need a separate orchestration tier. I a…

SQLite is All You Need for Durable Workflows - Blog

DBOS recently argued that Postgres is all you need for durable execution: if you already trust your database, you do not need a separate orchestration tier. I a…

Early morning work before everyone gets up. I got the deployment files and scripts all set for https://probes.dev

#HTTP #Monitoring #Telemetry #GoLang #SQLite

SQLite is All You Need for Durable Workflows - Blog

DBOS recently argued that Postgres is all you need for durable execution: if you already trust your database, you do not need a separate orchestration tier. I a…

🚀 #SQLite is all you need for "durable" #workflows, because clearly, the #future of #complex #systems is a glorified #Excel sheet with #SQL syntax. 🤔 Who needs orchestration when you can just cross your fingers and hope SQLite doesn't choke on your 1000th "durable" transaction? 😂
https://obeli.sk/blog/sqlite-is-all-you-need-for-durable-workflows/ #Durable #HackerNews #ngated
SQLite is All You Need for Durable Workflows - Blog

DBOS recently argued that Postgres is all you need for durable execution: if you already trust your database, you do not need a separate orchestration tier. I a…