Home automation via WhatsApp — Pi, Grafana, Roborock and a Bambu printer
A real-world setup: openclawOS Pi running on a Mac mini, taking commands via WhatsApp to control a Roborock, monitor a Bambu print, and query Grafana.
- home automation
- use case
- story
The set-up has gradually become invisible, which is the point. I message my WhatsApp number. Pi responds. The Roborock starts. The Bambu print finishes. The Grafana panel I asked about lands as a screenshot.
Here’s what’s actually under the hood.
The hardware
- Base-model M4 Mac mini ($599), tucked behind the TV. Pulls about 5W idle.
- A spare Pixel running a WhatsApp account on a dedicated number.
- The usual smart-home pile: a Roborock S8, a Bambu Lab P1S, an Aqara hub, a Hue bridge.
- A Synology NAS running a Grafana + Prometheus stack.
The software
- openclawOS on the Mac mini.
- WhatsApp paired via the QR-code flow.
- Pi running with a custom set of skills.
The skills:
roborock.start(room)— Xiaomi cloud API, python-miio fork.roborock.status()— same.bambu.print_status()— local Bambu Studio API (the printer exposes it on LAN).bambu.pause()/bambu.resume().grafana.panel(dashboard, panel)— screenshot via the Grafana API.homeassistant.call(service, args)— wraps the Home Assistant REST API for anything else.
Each skill is about 30 lines of TypeScript, written over a long Sunday.
What it feels like
Me (in WhatsApp): “Vacuum the kitchen please.”
Pi: 👀
Pi: “Started the kitchen + dining area. ETA 14 min.”
The “ETA 14 min” is Pi reading the room map’s surface area and using a rough rate from past runs. It’s not magic — it’s just having a context-aware tool.
Me: “How’s the print going?”
Pi: “76% on the bracket. 23 minutes left. Bed at 60°C, nozzle 220°C. No errors.”
Me: “Show me last hour’s CPU on the NAS.”
Pi: [screenshot of the Grafana panel]
The Grafana skill grabs a PNG via Grafana’s /render endpoint, uploads it as an inline WhatsApp image. Same as if I’d taken a screenshot myself.
Why this beats Siri / Alexa
Siri doesn’t know what a Bambu print bed temperature looks like. Alexa doesn’t speak Grafana. Pi can be taught anything — the tool API is the contract; if there’s an HTTP endpoint, Pi can hit it.
Also: Siri and Alexa exfiltrate your queries to their cloud. Pi doesn’t. The Mac mini handles inference dispatch; Anthropic sees the prompt and the tool calls Pi made. Nothing more.
The setup that started it
This stack didn’t appear at once. The progression:
- Pair WhatsApp to openclawOS. Basic Pi works.
- Pi summarises my morning calendar at 7am via a cron binding.
- Add Roborock skill. “Vacuum the kitchen” actually works.
- Add Bambu skill because I kept asking from afar.
- Add Grafana skill because the NAS is annoying to log into.
- Add Home Assistant fallback for anything else.
Each addition was a weekend (or a long evening). The compounding effect is the thing — by month three, the Mac mini was the household AI server, and I’d stopped opening half the device-specific apps.
What I’d change
- Voice replies from Pi back to my AirPods would be nice. The macOS app supports it; I haven’t wired the AirPods path.
- Pi sometimes forgets which Bambu I’m asking about (I have two). Identity-linking a “printer-id” key would fix it; I haven’t bothered.
- I want Pi to proactively notify on failed prints. That’s a webhook from Bambu → openclawOS, queued for v4.
Cost
Mac mini: $599 once.
Power: ~$1/month at $0.30/kWh.
LLM (Claude Sonnet): ~$8/month. Heavy days hit $1.50/day; quiet ones are pennies.
Total: ~$10/month + the one-time mini.
For comparison, three different “AI home automation” startups I’ve tried wanted $20-50/month each, sent every query to their server, and didn’t have half the skills I wrote in a weekend.
The takeaway
The point of openclawOS isn’t “an AI in WhatsApp”. The point is that the AI can be wired to anything, and the messenger is just the surface. Once the wiring’s in, you stop opening apps.
Frequently asked
Custom skill that hits the Xiaomi Cloud API via a python-miio fork. Pi calls "vacuum.clean(room='living')", the skill translates and dispatches.
Related reading
How to build a self-hosted WhatsApp AI bot in 2026
A practical walkthrough of pairing WhatsApp to a self-hosted AI agent powered by Claude or GPT — using openclawOS, no Meta Business API, no cloud SaaS in the middle.
How Pi's tool use works (and how to add your own tools)
Pi, the agent bundled with openclawOS, has a tool loop with browser, shell, file system, vector memory, and more. Here's how it works and how to extend it.