Senswave is a smart home platform for DIY MQTT devices. The mobile app connects to a self-hosted or cloud Senswave backend and lets you control devices, monitor sensor data, and configure automations — all in real time.
Core capabilities:
- Device control — send commands to any MQTT device via configurable operations and dashboard widgets
- Live dashboards — real-time widget updates over SignalR; no manual refresh needed
- Automations — create rules that trigger device operations when sensor values cross thresholds
- Home sharing — join or share homes with role-based access (Display / Manage)
- Data sources — connect MQTT brokers and map topic payloads to device operations via JSON path selectors
- Google Sign-In — authenticate with Google or email/password; tokens stored securely on-device
A Raspberry Pi Pico LED controller supports multiple modes and brightness levels. Through Senswave you switch modes and adjust brightness from a dashboard slider or radio widget — no manual MQTT publish needed.
A presence sensor publishes occupancy data. An automation turns off all lights when occupancy drops to zero — saves energy without any manual action.
Temperature, humidity, or any numeric sensor streams to a Display widget on your dashboard. Values update the moment the broker receives a new message.
- Node.js + npm
- Android Studio + Java 17
- Expo CLI
- Copy
.env.templateto.envand fill in your backend URL and Google OAuth client IDs. - Install dependencies and build:
npm i
npx expo run:android # first build — compiles native code
npm start # subsequent runsSee AGENTS.md for full architecture reference, environment variables, and development conventions.
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.
