Senswave is a self-hosted and cloud backend platform for managing DIY smart home devices over MQTT. You organize your home into rooms, register custom devices with typed operations, and stream real-time data to dashboards.
Core capabilities:
- Device control — define custom operations and push commands to any MQTT-capable device
- Automations — trigger actions when sensor values cross thresholds or room occupancy changes
- Live updates — subscribe to device state via SignalR for real-time dashboard widgets
- Home sharing — invite users with owner or read-only access
- Persistent broker — server-side MQTT connection keeps automations running when your phone is off
In this repository you will find backend solution that exposes .NET HTTP Web Api with SignalR events.
A Raspberry Pi Pico LED controller supports four modes: white, color, RGB, and loading. Through Senswave you switch modes and adjust brightness from a dashboard widget — no manual MQTT publish needed.
A presence sensor in each room publishes occupancy data. An automation rule turns off all lights in the room when occupancy drops to zero — saves energy without any manual action.
The Senswave worker holds a persistent MQTT connection server-side. Automations fire even when no client is connected, so your phone battery is not drained keeping a session alive.
The easiest way to run Senswave locally is with Docker. See docker/README.md for full setup instructions, including environment variables, service configuration, and how to bring up the full stack with Docker Compose.
Pull requests are welcome.
- Read
AGENTS.mdfor architecture concepts and development conventions before writing code. - Report bugs using the Bug report issue template.
- Propose features using the Feature request issue template.
Distributed under the Apache License 2.0. See LICENSE for details.