Releases: Ghawken/CyberPowerUPS_Indigoplugin
Release list
1.1.4 Fix for missing states
Update to Power Panel Business. Couple more end points/data
Cyberpower UPS Panel — Indigo Plugin
Monitor a CyberPower UPS from Indigo home automation via the Power Panel Business local REST API. UPS status, battery health, runtime, input/output power, hardware specs, and system warnings are all exposed as Indigo device states and update automatically.
Developed by GlennNZ
Contents
- What is Power Panel Business?
- Installing Power Panel Business
- Configuring Power Panel Business
- Plugin Requirements
- Plugin Installation
- Plugin Configuration
- Creating a UPS Device
- Device States
- Dynamic State Discovery
- Actions
- Menu Items
- Automation Examples
- Troubleshooting
1. What is Power Panel Business?
CyberPower Power Panel Business is software published by CyberPower Systems that runs on a computer connected to a CyberPower UPS via USB. It provides:
- Real-time UPS monitoring (input voltage, output load, battery capacity, runtime)
- Automatic safe shutdown of the connected computer during a power outage
- A local web interface accessible from any browser on your network
- A REST API — which this plugin uses to pull live data into Indigo
Power Panel Business runs as a background service on macOS, Windows, or Linux. It does not require a CyberPower cloud account; everything operates entirely on your local network.
Supported UPS models: Most CyberPower Smart App UPS models with a USB port (CP series, PR series, OR series). Check the CyberPower website for the full compatibility list.
2. Installing Power Panel Business
Download
Download Power Panel Business from the CyberPower website:
CyberPower Systems → Support → Software → Power Panel Business
Choose the installer for your operating system (macOS, Windows, or Linux). Version 1.4.x and later include the REST API used by this plugin.
macOS Installation
- Open the downloaded
.dmgand run the installer package. - Follow the prompts — the installer places a background service (
ppbe) and the web interface. - Connect your UPS to the Mac via USB.
- Power Panel starts automatically and detects the UPS within a few seconds.
Linux / NAS Installation
Power Panel Business also runs on Linux, making it suitable for always-on devices like a Synology NAS, Raspberry Pi, or Ubuntu server:
# Debian/Ubuntu — install the .deb package
sudo dpkg -i powerpanel-xxx.deb
# Start the service
sudo systemctl start pwrstatd1.1.2 Cyberpower UPS PowerPanel Plugin
Cyberpower UPS Panel — Indigo Plugin
Monitor a CyberPower UPS from Indigo home automation via the Power Panel Personal local REST API. UPS status, battery health, runtime, input/output power, hardware specs, and system warnings are all exposed as Indigo device states and update automatically.
Developed by GlennNZ
Contents
- What is Power Panel Personal?
- Installing Power Panel Personal
- Configuring Power Panel Personal
- Plugin Requirements
- Plugin Installation
- Plugin Configuration
- Creating a UPS Device
- Device States
- Dynamic State Discovery
- Actions
- Menu Items
- Automation Examples
- Troubleshooting
1. What is Power Panel Personal?
CyberPower Power Panel Personal is free software published by CyberPower Systems that runs on a computer connected to a CyberPower UPS via USB. It provides:
- Real-time UPS monitoring (input voltage, output load, battery capacity, runtime)
- Automatic safe shutdown of the connected computer during a power outage
- A local web interface accessible from any browser on your network
- A REST API — which this plugin uses to pull live data into Indigo
Power Panel Personal runs as a background service on macOS, Windows, or Linux. It does not require a CyberPower cloud account; everything operates entirely on your local network.
Supported UPS models: Most CyberPower Smart App UPS models with a USB port (CP series, PR series, OR series). Check the CyberPower website for the full compatibility list.
2. Installing Power Panel Personal
Download
Download Power Panel Personal from the CyberPower website:
CyberPower Systems → Support → Software → Power Panel Personal
Choose the installer for your operating system (macOS, Windows, or Linux). Version 1.4.x and later include the REST API used by this plugin.
macOS Installation
- Open the downloaded
.dmgand run the installer package. - Follow the prompts — the installer places a background service (
ppbe) and the web interface. - Connect your UPS to the Mac via USB.
- Power Panel starts automatically and detects the UPS within a few seconds.
Linux / NAS Installation
Power Panel Personal also runs on Linux, making it suitable for always-on devices like a Synology NAS, Raspberry Pi, or Ubuntu server:
# Debian/Ubuntu — install the .deb package
sudo dpkg -i powerpanel-xxx.deb
# Start the service
sudo systemctl start pwrstatd
sudo systemctl enable pwrstatdThe web interface listens on port 3052 by default.
Verifying the Installation
Open a browser and navigate to:
http://<host-ip>:3052
You should see the Power Panel Personal web UI showing your UPS model, battery status, and input/output readings. If the page loads, the REST API is available.
Tip: If the UPS is connected to a Mac that also runs Indigo, the host IP is typically
127.0.0.1or the Mac's LAN IP. If Power Panel runs on a separate device (NAS, Raspberry Pi), use that device's LAN IP.
3. Configuring Power Panel Personal
Setting a Password
By default Power Panel ships with a default username and password. You should change these before exposing the web UI on your network:
- Log in to the Power Panel web UI at
http://<host>:3052 - Navigate to Settings → Account (or Administration → Account)
- Set a strong password and note it — you will enter it in the Indigo device config
Finding the REST API Port
The default REST API port is 3052. You can confirm it in Power Panel under Settings → System or by checking the URL in your browser when logged in.
Firewall / Network Access
Ensure the Mac running Indigo can reach the Power Panel host on port 3052:
# Quick test from the Indigo Mac terminal
curl -s http://<host-ip>:3052/local/rest/v1/ups/status
# Should return JSON (a 401 is expected before login — that confirms connectivity)If this hangs or is refused, check:
- The firewall on the Power Panel host allows inbound TCP 3052
- Both devices are on the same VLAN/subnet, or routing is in place
Power Panel on the Same Mac as Indigo
If Power Panel runs on the same Mac as Indigo Server, use 127.0.0.1 as the host. No firewall changes are needed.
4. Plugin Requirements
| Requirement | Detail |
|---|---|
| Indigo version | 2025.1 or later (ServerApiVersion 3.0) |
| Python | 3.10+ (included with Indigo 2023.2+) |
| Power Panel Personal | 1.4.x or later, running locally |
| Network | Indigo Mac must reach Power Panel host on port 3052 |
| UPS connection | USB cable from UPS to the Power Panel host |
5. Plugin Installation
Double click the downloaded plugin Bundle to install
6. Plugin Configuration
Open Plugins → Cyberpower UPS Panel → Configure… to set global options.
| Field | Default | Description |
|---|---|---|
| Poll Interval | 60 | Seconds between status polls across all UPS devices. Minimum 10. |
| Show Debug Logging | off | Logs raw API responses and all state values. Enable only when diagnosing issues. |
Credentials (host, port, username, password) are configured per device, not here. This allows the plugin to monitor multiple UPS units on different hosts.
7. Creating a UPS Device
- In Indigo, open Devices → New Device
- Set Type to Cyberpower UPS Panel
- Set Model to CyberPower UPS
- Give it a descriptive name, e.g.
Office UPSorServer Room UPS - Click Edit Device Settings… and fill in:
| Field | Example | Notes |
|---|---|---|
| Host Address | 192.168.1.209 |
IP of the Power Panel host |
| Port | 3052 |
Default Power Panel REST port |
| Username | admin |
As set in Power Panel Account settings |
| Password | yourpassword |
Plain text — sent directly to the API |
- Click Save — the plugin connects immediately, authenticates, and populates all states on the first poll
The device icon turns green when the system state is Normal, and amber if any system fault is reported.
Multiple UPS Units
Create one Indigo device per UPS. Each device has its own host/port/credentials and maintains an independent authentication token. The global poll interval applies to all devices.
8. Device States
States appear in the Indigo device detail panel and are available for triggers, conditions, and control pages. States are dynamically discovered — see section 9 for details.
Each poll cycle queries three API endpoints in sequence: /ups/status, /ups/spec, and /ups/summary.
Always-Present States (defined in Devices.xml)
| State | Type | Description |
|---|---|---|
communicationStatus |
Boolean | true = UPS communication available |
systemStateText |
String | Overall system status, e.g. Normal |
lastUpdate |
String | Timestamp of last successful poll |
Input (mains power in)
| State | Type | Example |
|---|---|---|
inputAvailable |
Boolean | true |
inputState |
Number | 0 = Normal |
inputStateText |
String | Normal |
inputVoltage |
Number | 243.5 (V) |
inputFrequency |
Number | 50.00 (Hz) |
inputCurrent |
Number | Current draw (A) — appears when reported |
inputPowerFactor |
Number | Appears when reported |
Output (power delivered to equipment)
| State | Type | Example |
|---|---|---|
outputAvailable |
Boolean | true |
outputState |
Number | 0 = Normal |
outputStateText |
String | Normal |
outputVoltage |
Number | 230.0 (V) |
outputCurrent |
Number | 4.3 (A) |
outputFrequency |
Number | 50.00 (Hz) |
outputLoadPercent |
Number | 34 (%) |
outputWatts |
Number | 790 (W) |
outputVA |
Number | 1025 (VA) |
outputNcl1StateText |
String | On — outlet bank 1 state |
outputActivePower |
Number | Appears when reported |
outputReactivePower |
Number | Appears when reported |
Battery
| State | Type | Example |
|---|---|---|
batteryAvailable |
Boolean | true |
batteryState |
Number | 0 = Normal |
batteryStateText |
String | Normal, Fully Charged |
batteryVoltage |
Number | 82.2 (V) |
batteryCapacityPercent |
Number | 100 (%) |
batteryRemainingRunTimeSecs |
Number | 900 |
batteryRemainingRunTimeFormatted |
String | 0hr. 15min. |
batteryRuntimeInsufficient |
Boolean | false |
batteryHealthIndex |
Number | 94 — BHI 0–100 |
batteryModularRuntimeZero |
Boolean | false |
batteryChargeTimeSecs |
Number | Appears while charging |
batteryChargeTimeFormatted |
String | Appears while charging |
batteryTemperatureCelsius |
Number | Appears on models with temp sensor |
batteryHighVoltage |
Number | Appears when threshold configured |
batteryLowVoltage |
Number | Appears when threshold configured |
Bypass
| State | Type | Example |
|---|---|---|
bypassAvailable |
Boolean | false on most models |
bypassState |
Number | Appears when bypass active |
bypassStateText |
String | Appears when bypass active |
bypassVoltage |
Number | Appears when bypass active |
| `bypassFr... |

