A desktop application for monitoring, controlling, and scheduling one or more Shelly Plus Plug US devices from a single interface.
The application provides real-time device telemetry, remote power control, automated scheduling, and live monitoring charts through a simple tabbed interface.
-
Multi-Device Support
- Monitor and manage multiple Shelly Plus Plug US devices simultaneously.
- Each device gets its own tab for easy navigation.
-
Real-Time Monitoring
-
View live device statistics including:
- Power (Watts)
- Voltage
- Current
- Temperature
- Total Energy Usage (Watt Hours)
-
-
Live Gauge Dashboard
-
Dedicated gauges for:
- Power Consumption
- Current Draw
- Voltage
-
-
Historical Monitoring Charts
-
Separate live charts for:
- Watts
- Amps
- Volts
-
Automatically updates while monitoring.
-
-
Remote Power Control
- Turn outlets on or off remotely.
- Toggle outlet state directly from the device tab.
-
Schedule Management
- Create scheduled toggle events.
- View existing schedules.
- Delete schedules.
- Uses Shelly's built-in scheduling system.
-
Error Handling
- Friendly error dialogs.
- Logging to
monitoring.logfor troubleshooting.
-
Persistent Configuration
- Device IP addresses are stored in a local
.envfile. - Automatically loaded the next time the application starts.
- Device IP addresses are stored in a local
-
Modern Interface
- Dark mode UI built with CustomTkinter.
- Responsive layout.
- Tabbed device management.
- Python 3.10+
- CustomTkinter
- CTkMessagebox
- requests
- python-dotenv
- matplotlib
- numpy
- pillow
Clone the repository:
git clone https://github.com/krewshul/shelly_plug_monitor.git
cd shelly_plug_monitorCreate a virtual environment:
python -m venv .Activate the virtual environment:
.\Scripts\activatesource bin/activateInstall dependencies:
pip install -r requirements.txtStart the application:
python start.pyWhen the application launches, you will see three buttons:
Adds a new Shelly device entry.
Enter the local IP address of each Shelly Plus Plug US device you wish to monitor.
Examples:
192.168.1.100
192.168.1.101
192.168.1.102
Saves all configured IP addresses to the .env file.
The IP list will be automatically restored the next time the application starts.
Launches the monitoring dashboard.
This button does not modify your saved configuration.
Each configured device receives its own tab.
Within each device tab you can:
- Outlet ON/OFF status
- Last successful update timestamp
- Watts
- Volts
- Amps
- Watt Hours
- Temperature (°F)
- Power Gauge
- Current Gauge
- Voltage Gauge
Three dedicated charts are displayed:
- Power Usage (Watts)
- Current Draw (Amps)
- Voltage
Charts update automatically while monitoring.
- Turn On
- Turn Off
- Toggle by clicking the status button
Create and manage Shelly schedules directly from the application.
Supported actions:
- Create Schedule
- View Schedule List
- Delete Schedule
At this time, password-protected Shelly devices are not officially supported.
Monitoring generally works, but schedule management may fail on devices with authentication enabled.
If you are familiar with Shelly authentication and would like to contribute a solution, pull requests are welcome.
The application communicates directly with your Shelly devices using their local IP addresses.
Ensure:
- Your computer and Shelly devices are on the same network.
- Devices are reachable from your machine.
- Local firewall rules permit access.
Errors and application events are written to:
monitoring.log
This file can be useful when troubleshooting connectivity or scheduling issues.
This project is open source and available under the MIT License.