-
Notifications
You must be signed in to change notification settings - Fork 67
Description
Disclaimer
I'm not a developer or programmer; just a beginner hobbyist. While I have gone through all the steps described below, this post is written with the aid of AI.
What I'm Trying to Do
I'm setting up a graceful shutdown system for my UPS (Eaton Ellipse PRO 650) using the official NUT add-on and integration. I want to use the shutdown.return command to power-cycle the UPS after Home Assistant shuts down, so everything reboots automatically when power returns.
My Setup
- Home Assistant OS on Raspberry Pi 5
- Network UPS Tools add-on (official from Community Add-ons)
- UPS: Eaton Ellipse PRO 650, connected via USB
Add-on Configuration
users:
- username: admin
password: "<password>"
instcmds:
- all
actions:
- set
- fsd
- username: observer
password: "<password>"
instcmds: []
actions: []
devices:
- name: eaton-ellipsepro
driver: usbhid-ups
port: auto
config: []
mode: netserver
shutdown_host: trueWhat I Expected
According to the integration documentation, if I configure a user with instcmds permissions, buttons like shutdown.return should appear on the device page and as actions in the automation editor.
What Actually Happens
- No buttons appear on the device page
- Automation editor shows: "No actions available for Eaton-Ellipsepro"
- Sensors work fine — I can see battery %, status, etc.
What I've Tried
Verified commands exist in the add-on
I ran this command from the HA terminal and confirmed the UPS supports the commands:
docker exec addon_a0d7b954_nut upscmd -l eaton-ellipsepro -u admin -p <password>Output showed:
Instant commands supported on UPS [eaton-ellipsepro]:
beeper.disable - Disable the UPS beeper
beeper.enable - Enable the UPS beeper
load.off - Turn off the load immediately
load.off.delay - Turn off the load with a delay (seconds)
load.on - Turn on the load immediately
load.on.delay - Turn on the load with a delay (seconds)
shutdown.return - Turn off the load and return when power is back
shutdown.stayoff - Turn off the load and remain off
shutdown.stop - Stop a shutdown in progress
So the add-on and permissions are configured correctly.
Tried reconfiguring the integration
- Went to Settings → Devices & Services → NUT → Reconfigure
- Entered admin username and password
- Got "Re-configuration was successful"
- Still no buttons
Tried deleting and re-adding
- Completely removed the integration
- Re-added it with admin credentials from the start
- Still no buttons
Odd behavior: Wrong password is accepted
When reconfiguring, I intentionally entered a wrong password. It still said "Re-configuration was successful" and sensors continued working. This makes me suspect the integration isn't actually logging in with the credentials I provide.
Checked the add-on logs
When I reload the integration, I see this in the add-on logs:
User upsmonmaster@127.0.0.1 logged into UPS [eaton-ellipsepro]
But I never see admin@... logging in. It looks like the integration connects anonymously to read sensors, but doesn't authenticate to query commands.
Workaround I Found
I'm not a programmer, but someone helped me write a small Python script that sends the command directly using the NUT protocol:
#!/usr/bin/env python3
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("a0d7b954-nut", 3493))
s.send(b"USERNAME admin\n")
s.recv(1024)
s.send(b"PASSWORD <password>\n")
s.recv(1024)
s.send(b"INSTCMD eaton-ellipsepro shutdown.return\n")
s.recv(1024)
s.close()This works perfectly, which confirms to me that:
- The add-on is configured correctly
- The admin user has the right permissions
- The UPS accepts the command
The problem seems to be that the integration isn't using the credentials I configured.
My Request
I'd like the integration to actually authenticate with the admin credentials so I can use buttons/actions in the UI. Right now I have to use a workaround script, which defeats the purpose of having an integration.
Thank you for looking into this!