Hello all,
I have installed a Nut Server on Home Assistant using the “Network UPS Tool” addon. The UPS is connected with USB to the host (Raspberry Pi 4 with Home Assistant OS 0.118.3). The configuration of the add-on works fine and the UPS (netserver mode) is monitored correctly in HA.
I would like to access to this NUT server from remote NUT client (NAS Synology or Jeedom Nut plugin). But i still face a “connexion refused”. Thanks for your help.
Note: For specific need, the UPS MUST be on the Raspberry and not the NAS.
Note: Previously, this UPS was connected to a Nut Server on Debian and i remember i had to play with “LISTEN” option of the upsd.conf for having it available from remote clients.
[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] nut: applying...
[fix-attrs.d] nut: exited 0.
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] 00-banner.sh: executing...
-----------------------------------------------------------
Add-on: Network UPS Tools
Manage battery backup (UPS) devices
-----------------------------------------------------------
Add-on version: 0.3.1
You are running the latest version of this add-on.
System: HassOS 4.16 (aarch64 / raspberrypi4-64)
Home Assistant Core: 0.118.3
Home Assistant Supervisor: 2020.11.0
-----------------------------------------------------------
Please, share the above information when looking for help
or support in, e.g., GitHub, forums or the Discord chat.
-----------------------------------------------------------
[cont-init.d] 00-banner.sh: exited 0.
[cont-init.d] 01-log-level.sh: executing...
[cont-init.d] 01-log-level.sh: exited 0.
[cont-init.d] nut.sh: executing...
[15:49:14] INFO: Setting mode to netserver...
[15:49:14] INFO: Connected USB devices:
Bus 001 Device 004: ID 051d:0002 American Power Conversion Uninterruptible Power Supply
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 005: ID 1cf1:0030 Dresden Elektronik
Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
[15:49:15] INFO: Generating /etc/nut/upsd.users...
[15:49:15] INFO: Configuring user: ekinox
[15:49:16] INFO: Password is NOT in the Have I Been Pwned database! Nice!
[15:49:18] INFO: Configuring Device named apcups...
[15:49:18] INFO: Starting the UPS drivers...
Network UPS Tools - UPS driver controller 2.7.4
Network UPS Tools - Generic HID driver 0.41 (2.7.4)
Using subdriver: APC HID 0.96
USB communication driver 0.33
[cont-init.d] nut.sh: exited 0.
[cont-init.d] nutclient.sh: executing...
[cont-init.d] nutclient.sh: exited 0.
[cont-init.d] done.
[services.d] starting services
[services.d] done.
[15:49:28] INFO: Starting the UPS information server...
Network UPS Tools upsd 2.7.4
0.000000 fopen /var/run/nut/upsd.pid: No such file or directory
0.001029 listening on 0.0.0.0 port 3493
0.002213 Connected to UPS [apcups]: usbhid-ups-apcups
0.011846 /etc/nut/upsd.users is world readable
[15:49:29] INFO: Starting the UPS monitor and shutdown controller...
Network UPS Tools upsmon 2.7.4
0.000000 fopen /var/run/upsmon.pid: No such file or directory
0.000848 Using power down flag file /etc/killpower
0.001354 UPS: apcups@localhost (master) (power value 1)
0.001813 debug level is '1'
0.002056 Warning: running as one big root process by request (upsmon -p)
0.003186 Trying to connect to UPS [apcups@localhost]
0.504884 User [email protected] logged into UPS [apcups]
0.004466 Logged into UPS apcups@localhost
No answer or help during 2 months. Let me know what’s wrong with my message in order to improve the next one…
In case that might help someone else, here is the solution.
The port 3493 (default NUT port) has to be exposed in the add-on:
Supervisor / Network UPS Tools / Configuration
In the Network part (bottom of the screen), set 3493 to the “host”.
This way the Nut server can be accessed from external machine using the IP of the host (IP of Home Assistant on your network) and default Nut port.
For my Synology to connect as a client, I had to make the user ‘monuser’ and the name ‘ups’ … Synology expects that when choosing the “Network UPS Type” as “Synology UPS Server” . If I set the Network part to 3493, the add-on fails to start for me so I just leave it disabled and everything works. I have my UnRAID server connecting as a client to this as well.
Anyone try to access from a WD My Cloud EX2 Ultra? I enter my HA IP Address but it just says it can not find the server. there is no way to enter the port number either.
The program always returns me the error “the host refused the connection”.
This reminded me of something I read about add-ons: they run in a some sort of virtual machine, so they are isolated from the rest of the system, and I thought, also from the network.
If you go on the add-on configuration options, you should see a “Network” options group, and an empty field with the “Disabled” label inside. Just type there the standard port: 3493, save, reload the add-on, and voilà! You are able to connect from an external host!!!
This worked for me, I hope it can be useful to you too.
I had my UPS connected to another Raspberry Pi and the daemon was only listening on localhost.
I had to modify /etc/nut/upsd.conf to allow it to listen on all interfaces (LISTEN 0.0.0.0 3493). Since you have to set up authentication anyway and I use iptables to allow access between home assistant and the PI, I feel fine with it.
This was the solution for me!
You can check from a terminal that running this command returns nothing before setting the port in the add-on configuration.
nestat -nltp | grep 3493
After setting it in the config, it will return 2 lines showing that it is listening on ipv4 and ipv6. I finally could add the integration successfully!
Just a big thanks for this post… obvious when I thought about it - but lots of googling and playing around and this one was the key ‘moment’ for me
I had a Synology NAS as the ups master (APC ups plugged into it via USB port) and another Synology NAS slaving from it, and three Pi’s with NUT installed also slaving from the master NAS.
Problem was when I wanted to add a couple more PI’s, the NAS doesn’t support more than 5 clients (arbitrary thing in Synology implementation) - so time to move the master.
Moved it to a PI, created a ups called ‘ups’ with user ‘monuser’ and password ‘secret’ (as per this post) and hey presto the Synology’s all see it as another Synology UPS server, and the rest of the sensible NUT/Pi/HA Nut Integration world can be configured as slaves easily to that as well. Problem solved.
I was doing the ‘right’ thing and setting up a proper name for the UPS and a proper username and password combination - and failing to get the Synology’s to recognise it… silly me…