Sharing the fun…
In my Home Input Monitor Part 1 – Water Pressure post, I introduced water pressure sensing for my home. After using it for a while, I shared access with a few community members so they could infer the area’s water status from my readings.
Having these new users exposed some deficiencies in my system. So, I got busy..
First, I decided to focus exclusively on water pressure monitoring. The HIM concept (from the blog post above) will be picked up again when I port my smart home setup from HomeKit to Home Assistant.
Next, I made changes needed to support these new users, all of whom are expected to use WPM without any in-person guidance from me.
Before I dig in, here’s a reminder of what the full stack looked like before:
wpm_d is the public dashboard that users see on their devices and him is the software running on the Raspberry Pi Pico W.
What changed?
Using ntfy for push notifications was going to be the biggest issue:
- Users need to install and setup ntfy
- When using the free tier of ntfy, the topics are publicly readable and writable. There was no way to publicly reveal the topic used while also stopping a malicious actor from being able to send notifications.
wpm_d had to gain more PWA powers, specifically multi-platform web push notifications. PushAlert was now integrated into to a new private fork, wpm_sblmnl. Using a non-free service wasn’t ideal but it had a suitable free tier and added Push API support. Users can now subscribe to notifications directly from wpm_sblmnl:
What it looks like on an iPhone in landscape
If the notification has a red circle, your day just got worse (iPhone)
him also got a round of updates that added PushAlert support and made the physical pressure sensing and cloud connectivity more more resilient to different types of failures.
More control of the hosting was needed, so GitHub Pages was switched out for my own hosting and domain. wpm_sblmnl lives at wpm.sblmnl.co.za.
After these changes, this is what the stack looks like:
Conclusion
Everyone can get access to my pressure readings and push notifications*:
* For it to be helpful, you’ll have to live near me, be at a similar elevation and be supplied from the same reservoir. Also, you’ll need to separately request notification access.
Since this data is live and public, EWS (eThekwini Water and Sanitation), our local Councillor, the President and anyone else (on the planet) can see whether our area has water. Perhaps someone in the food chain will be prompted to action when the gauge turns yellow or has a very bad day when it turns red.
The Future
On the software side, there are still a few tweaks needed here and there (notification logic, better PWA updating etc.) that I’ll continue to improve in the background.
I’m also working on him hardware v2 and this will be installed in another area. WPM’s coverage may be increasing soon™.
If you want WPM in your area, everything to build your own WPM has been shared in this and the previous blog posts. I’d love to see more people build them and give themselves and their local communities an extremely handy service. I’d also like to integrate multiple community sensors to a single dashboard, reach out if you would like to share your data.
In the future, I’d like WPM to become completely unnecessary. The water system should just work. A notification saying “Water has stopped completely” should be rare. Seeing “Water Pressure is currently zero.” for any length of time should be an unacceptable occurrence.
If you have any questions/would like to share your experience with water pressure sensing, leave a comment below. To get email notifications, subscribe here. Contact me directly using these platforms.
(Featured image remixed from this photo)
Leave a Reply