vectronic / homebridge-nut

Homebridge plugin for NUT (Network UPS Tools) Client

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

v2.0.3 issues

iondarie opened this issue Β· comments

Hello,

Thank you for your work!

I am running into the following 2 issues:

  1. The plugin refuses to pull the name of the UPS i always get "Description unavailable"
  2. The contact sensor sometimes goes crazy it alerts that it is open. but the UPS is online and powered.

Screenshot 2021-06-04 at 22 35 19

Hello same here for the sensor, worked perfectly one time

Odd. Can you provide debug logs from homebridge by running it with something like (valid for Mac or Linux):

homebridge -D

or to filter for just the relevant logs:

homebridge -D | grep Nut

(ideally covering from startup and when you see off behaviour)

Sure!

[6/5/2021, 8:41:21 AM] [Nut] createOrUpdateUps(): ellipse
[6/5/2021, 8:41:21 AM] [Nut] update()
[6/5/2021, 8:41:21 AM] [Nut] pushed updated current UPS state to HomeKit for ellipse=Ellipse Pro
[6/5/2021, 8:41:30 AM] [Nut] getOnBatteryState()
[6/5/2021, 8:41:30 AM] [Nut] pollNutDevice(ellipse, Ellipse Pro)
[6/5/2021, 8:41:30 AM] [Nut] parseUpsVars(ellipse)
[6/5/2021, 8:41:30 AM] [Nut] UPS info for device: ellipse=Ellipse Pro =>
[6/5/2021, 8:41:30 AM] [Nut] battery.charge=100
[6/5/2021, 8:41:30 AM] [Nut] battery.runtime=2160
[6/5/2021, 8:41:30 AM] [Nut] battery.voltage=229.000
[6/5/2021, 8:41:30 AM] [Nut] device.mfr=(unknown)
[6/5/2021, 8:41:30 AM] [Nut] device.model=Ellipse PRO
[6/5/2021, 8:41:30 AM] [Nut] device.type=ups
[6/5/2021, 8:41:30 AM] [Nut] driver.name=macosx-ups
[6/5/2021, 8:41:30 AM] [Nut] driver.parameter.pollinterval=2
[6/5/2021, 8:41:30 AM] [Nut] driver.parameter.port=/dev/ttys000
[6/5/2021, 8:41:30 AM] [Nut] driver.parameter.synchronous=no
[6/5/2021, 8:41:30 AM] [Nut] driver.version=2.7.4
[6/5/2021, 8:41:30 AM] [Nut] driver.version.internal=1.2
[6/5/2021, 8:41:30 AM] [Nut] ups.status=OL CHRG
[6/5/2021, 8:41:30 AM] [Nut] parsed UPS values: {"key":"ellipse","name":"Ellipse Pro","fault":false,"active":false,"onBattery":false,"temperature":-1,"batteryLevel":100,"chargingState":1,"lowBattery":false,"powerConsumption":0,"powerConsumptionLevel":0,"manufacturer":"(unknown)","model":"Ellipse PRO","serialNumber":"No Serial","firmwareRevision":"No Data"}
[6/5/2021, 8:41:30 AM] [Nut] createOrUpdateUps(): ellipse
[6/5/2021, 8:41:30 AM] [Nut] update()
[6/5/2021, 8:41:30 AM] [Nut] pushed updated current UPS state to HomeKit for ellipse=Ellipse Pro
[6/5/2021, 8:41:38 AM] [Nut] getOnBatteryState()
[6/5/2021, 8:41:38 AM] [Nut] pollNutDevice(ellipse, Ellipse Pro)
[6/5/2021, 8:41:38 AM] [Nut] parseUpsVars(ellipse)
[6/5/2021, 8:41:38 AM] [Nut] UPS info for device: ellipse=Ellipse Pro =>
[6/5/2021, 8:41:38 AM] [Nut] battery.charge=100
[6/5/2021, 8:41:38 AM] [Nut] battery.runtime=1680
[6/5/2021, 8:41:38 AM] [Nut] battery.voltage=229.000
[6/5/2021, 8:41:38 AM] [Nut] device.mfr=(unknown)
[6/5/2021, 8:41:38 AM] [Nut] device.model=Ellipse PRO
[6/5/2021, 8:41:38 AM] [Nut] device.type=ups
[6/5/2021, 8:41:38 AM] [Nut] driver.name=macosx-ups
[6/5/2021, 8:41:38 AM] [Nut] driver.parameter.pollinterval=2
[6/5/2021, 8:41:38 AM] [Nut] driver.parameter.port=/dev/ttys000
[6/5/2021, 8:41:38 AM] [Nut] driver.parameter.synchronous=no
[6/5/2021, 8:41:38 AM] [Nut] driver.version=2.7.4
[6/5/2021, 8:41:38 AM] [Nut] driver.version.internal=1.2
[6/5/2021, 8:41:38 AM] [Nut] ups.status=OL CHRG
[6/5/2021, 8:41:38 AM] [Nut] parsed UPS values: {"key":"ellipse","name":"Ellipse Pro","fault":false,"active":false,"onBattery":false,"temperature":-1,"batteryLevel":100,"chargingState":1,"lowBattery":false,"powerConsumption":0,"powerConsumptionLevel":0,"manufacturer":"(unknown)","model":"Ellipse PRO","serialNumber":"No Serial","firmwareRevision":"No Data"}
[6/5/2021, 8:41:38 AM] [Nut] createOrUpdateUps(): ellipse
[6/5/2021, 8:41:38 AM] [Nut] update()
[6/5/2021, 8:41:38 AM] [Nut] pushed updated current UPS state to HomeKit for ellipse=Ellipse Pro
[6/5/2021, 8:41:38 AM] [Nut] getOnBatteryState()
[6/5/2021, 8:41:38 AM] [Nut] pollNutDevice(ellipse, Ellipse Pro)
[6/5/2021, 8:41:39 AM] [Nut] parseUpsVars(ellipse)
[6/5/2021, 8:41:39 AM] [Nut] UPS info for device: ellipse=Ellipse Pro =>
[6/5/2021, 8:41:39 AM] [Nut] battery.charge=100
[6/5/2021, 8:41:39 AM] [Nut] battery.runtime=1680
[6/5/2021, 8:41:39 AM] [Nut] battery.voltage=229.000
[6/5/2021, 8:41:39 AM] [Nut] device.mfr=(unknown)
[6/5/2021, 8:41:39 AM] [Nut] device.model=Ellipse PRO
[6/5/2021, 8:41:39 AM] [Nut] device.type=ups
[6/5/2021, 8:41:39 AM] [Nut] driver.name=macosx-ups
[6/5/2021, 8:41:39 AM] [Nut] driver.parameter.pollinterval=2
[6/5/2021, 8:41:39 AM] [Nut] driver.parameter.port=/dev/ttys000
[6/5/2021, 8:41:39 AM] [Nut] driver.parameter.synchronous=no
[6/5/2021, 8:41:39 AM] [Nut] driver.version=2.7.4
[6/5/2021, 8:41:39 AM] [Nut] driver.version.internal=1.2
[6/5/2021, 8:41:39 AM] [Nut] ups.status=OL CHRG
[6/5/2021, 8:41:39 AM] [Nut] parsed UPS values: {"key":"ellipse","name":"Ellipse Pro","fault":false,"active":false,"onBattery":false,"temperature":-1,"batteryLevel":100,"chargingState":1,"lowBattery":false,"powerConsumption":0,"powerConsumptionLevel":0,"manufacturer":"(unknown)","model":"Ellipse PRO","serialNumber":"No Serial","firmwareRevision":"No Data"}
[6/5/2021, 8:41:39 AM] [Nut] createOrUpdateUps(): ellipse
[6/5/2021, 8:41:39 AM] [Nut] update()
[6/5/2021, 8:41:39 AM] [Nut] pushed updated current UPS state to HomeKit for ellipse=Ellipse Pro
[6/5/2021, 8:41:42 AM] [Nut] getOnBatteryState()
[6/5/2021, 8:41:42 AM] [Nut] pollNutDevice(ellipse, Ellipse Pro)
[6/5/2021, 8:41:42 AM] [Nut] parseUpsVars(ellipse)
[6/5/2021, 8:41:42 AM] [Nut] UPS info for device: ellipse=Ellipse Pro =>
[6/5/2021, 8:41:42 AM] [Nut] battery.charge=100
[6/5/2021, 8:41:42 AM] [Nut] battery.runtime=1680
[6/5/2021, 8:41:42 AM] [Nut] battery.voltage=229.000
[6/5/2021, 8:41:42 AM] [Nut] device.mfr=(unknown)
[6/5/2021, 8:41:42 AM] [Nut] device.model=Ellipse PRO
[6/5/2021, 8:41:42 AM] [Nut] device.type=ups
[6/5/2021, 8:41:42 AM] [Nut] driver.name=macosx-ups
[6/5/2021, 8:41:42 AM] [Nut] driver.parameter.pollinterval=2
[6/5/2021, 8:41:42 AM] [Nut] driver.parameter.port=/dev/ttys000
[6/5/2021, 8:41:42 AM] [Nut] driver.parameter.synchronous=no
[6/5/2021, 8:41:42 AM] [Nut] driver.version=2.7.4
[6/5/2021, 8:41:42 AM] [Nut] driver.version.internal=1.2
[6/5/2021, 8:41:42 AM] [Nut] ups.status=OL CHRG
[6/5/2021, 8:41:42 AM] [Nut] parsed UPS values: {"key":"ellipse","name":"Ellipse Pro","fault":false,"active":false,"onBattery":false,"temperature":-1,"batteryLevel":100,"chargingState":1,"lowBattery":false,"powerConsumption":0,"powerConsumptionLevel":0,"manufacturer":"(unknown)","model":"Ellipse PRO","serialNumber":"No Serial","firmwareRevision":"No Data"}
[6/5/2021, 8:41:42 AM] [Nut] createOrUpdateUps(): ellipse
[6/5/2021, 8:41:42 AM] [Nut] update()
[6/5/2021, 8:41:42 AM] [Nut] pushed updated current UPS state to HomeKit for ellipse=Ellipse Pro
[6/5/2021, 8:42:21 AM] [Nut] pollNutDevices()
[6/5/2021, 8:42:21 AM] [Nut] pollNutDevice(ellipse, Ellipse Pro)
[6/5/2021, 8:42:21 AM] [Nut] parseUpsVars(ellipse)
[6/5/2021, 8:42:21 AM] [Nut] UPS info for device: ellipse=Ellipse Pro =>
[6/5/2021, 8:42:21 AM] [Nut] battery.charge=100
[6/5/2021, 8:42:21 AM] [Nut] battery.runtime=1020
[6/5/2021, 8:42:21 AM] [Nut] battery.voltage=229.000
[6/5/2021, 8:42:21 AM] [Nut] device.mfr=(unknown)
[6/5/2021, 8:42:21 AM] [Nut] device.model=Ellipse PRO
[6/5/2021, 8:42:21 AM] [Nut] device.type=ups
[6/5/2021, 8:42:21 AM] [Nut] driver.name=macosx-ups
[6/5/2021, 8:42:21 AM] [Nut] driver.parameter.pollinterval=2
[6/5/2021, 8:42:21 AM] [Nut] driver.parameter.port=/dev/ttys000
[6/5/2021, 8:42:21 AM] [Nut] driver.parameter.synchronous=no
[6/5/2021, 8:42:21 AM] [Nut] driver.version=2.7.4
[6/5/2021, 8:42:21 AM] [Nut] driver.version.internal=1.2
[6/5/2021, 8:42:21 AM] [Nut] ups.status=OL CHRG
[6/5/2021, 8:42:21 AM] [Nut] parsed UPS values: {"key":"ellipse","name":"Ellipse Pro","fault":false,"active":false,"onBattery":false,"temperature":-1,"batteryLevel":100,"chargingState":1,"lowBattery":false,"powerConsumption":0,"powerConsumptionLevel":0,"manufacturer":"(unknown)","model":"Ellipse PRO","serialNumber":"No Serial","firmwareRevision":"No Data"}
[6/5/2021, 8:42:21 AM] [Nut] createOrUpdateUps(): ellipse
[6/5/2021, 8:42:21 AM] [Nut] update()
[6/5/2021, 8:42:21 AM] [Nut] pushed updated current UPS state to HomeKit for ellipse=Ellipse Pro

I see the Ellipse pro sensor open if connected to the grid and closed if in battery mode

And now the behaviour is normal...WTF??

I can’t reproduce any problems and at first glance the logs seemed ok.

However I have been thinking about this over the weekend - there might be a chance the polling of nut and the updates to homebridge get some timing confusion. I will do a minor change to clarify the state in the accessory a bit more. This may not actually fix anything but might make things saner to diagnose if the issues continue.

@iondarie if you can provide debug logs I can try to see why you’re not getting a name displayed as well.

OK... v2.0.6 should work better. I simplified the state management, read how to use the homebridge API better and more importantly found a fundamental bug in the Boolean logic for setting the stat of the contact sensor!!!

If you can, let me know if it works for you now...

Ok...but I think my ups is broken!! 😭😭

@vectronic status now seems to be OK, only issue I have is the "Description unavailable" as a name.

@iondarie if you can provide debug logs I can try to see why you’re not getting a name displayed.

Something like (valid for Mac or Linux):

homebridge -D

or to filter for just the relevant logs:

homebridge -D | grep Nut

(ideally covering from startup)

[6/7/2021, 2:50:27 PM] [HB Supervisor] OS: Linux 4.4.180+ x64
[6/7/2021, 2:50:27 PM] [HB Supervisor] Node.js v14.17.0 /usr/local/bin/node
[6/7/2021, 2:50:27 PM] [HB Supervisor] Homebridge Path: /usr/local/lib/node_modules/homebridge/bin/homebridge
[6/7/2021, 2:50:27 PM] [HB Supervisor] UI Path: /usr/local/lib/node_modules/homebridge-config-ui-x/dist/bin/standalone.js
[6/7/2021, 2:50:28 PM] [Homebridge UI] Homebridge Config UI X v4.41.1 is listening on :: port 8080
[6/7/2021, 2:50:29 PM] [HB Supervisor] Starting Homebridge with extra flags: -I -P /homebridge/node_modules -D
[6/7/2021, 2:50:29 PM] [HB Supervisor] Started Homebridge v1.3.4 with PID: 6267
Initializing HAP-NodeJS v0.9.4...
[6/7/2021, 2:50:29 PM] Loaded config.json with 0 accessories and 4 platforms.
[6/7/2021, 2:50:29 PM] Loaded 1 cached accessories from cachedAccessories.
[6/7/2021, 2:50:29 PM] ---
[6/7/2021, 2:50:30 PM] Disabled plugin: homebridge-nest@4.5.3
[6/7/2021, 2:50:30 PM] ---
[6/7/2021, 2:50:30 PM] Disabled plugin: homebridge-onkyo-pioneer@0.0.18
[6/7/2021, 2:50:30 PM] ---
[6/7/2021, 2:50:30 PM] Disabled plugin: homebridge-samsung-tizen@5.0.1
[6/7/2021, 2:50:30 PM] ---
[6/7/2021, 2:50:30 PM] Loaded plugin: @vectronic/homebridge-nut@2.0.6
[6/7/2021, 2:50:30 PM] Registering platform '@vectronic/homebridge-nut.Nut'
[6/7/2021, 2:50:30 PM] ---
[6/7/2021, 2:50:30 PM] Loaded plugin: homebridge-config-ui-x@4.41.1
[6/7/2021, 2:50:30 PM] Registering platform 'homebridge-config-ui-x.config'
[6/7/2021, 2:50:30 PM] ---
[6/7/2021, 2:50:30 PM] Loading 4 platforms...
[6/7/2021, 2:50:30 PM] [Config] Initializing config platform...
[6/7/2021, 2:50:30 PM] [Config] Running in Service Mode
[6/7/2021, 2:50:30 PM] Ignoring config for the platform "OnkyoPioneer" in your config.json as the plugin "homebridge-onkyo-pioneer" has been disabled.
[6/7/2021, 2:50:30 PM] Ignoring config for the platform "SamsungTizen" in your config.json as the plugin "homebridge-samsung-tizen" has been disabled.
[6/7/2021, 2:50:30 PM] [APC] Initializing Nut platform...
[6/7/2021, 2:50:30 PM] [APC] finished initializing platform
[6/7/2021, 2:50:30 PM] [APC] loading accessory from cache: Description unavailable
[6/7/2021, 2:50:30 PM] [APC] executing didFinishLaunching callback
[6/7/2021, 2:50:30 PM] [APC] started nut client for localhost:3493
Preparing Advertiser for 'Homebridge 1682 7AAA' using ciao backend!
Setup Payload:
X-HM://0023XM60TBFZN
Enter this code with your HomeKit app on your iOS device to pair with Homebridge:
                       
    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     
    β”‚ 280-22-013 β”‚     
    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     
                       
Starting to advertise 'Homebridge 1682 7AAA' using ciao backend!
[6/7/2021, 2:50:30 PM] Homebridge v1.3.4 (Homebridge 1682) is running on port 51775.
[6/7/2021, 2:50:30 PM] [APC] nutReady()
[6/7/2021, 2:50:30 PM] [APC] nut client connected, reported devices: ups=Description unavailable
[6/7/2021, 2:50:30 PM] [APC] pollNutDevices()
[6/7/2021, 2:50:30 PM] [APC] pollNutDevice(ups, Description unavailable)
[6/7/2021, 2:50:30 PM] [APC] parseUpsVars(ups)
[6/7/2021, 2:50:30 PM] [APC] UPS info for device: ups=Description unavailable =>
[6/7/2021, 2:50:30 PM] [APC] battery.charge=100
[6/7/2021, 2:50:30 PM] [APC] battery.charge.low=10
[6/7/2021, 2:50:30 PM] [APC] battery.charge.warning=50
[6/7/2021, 2:50:30 PM] [APC] battery.mfr.date=2021/05/14
[6/7/2021, 2:50:30 PM] [APC] battery.runtime=6180
[6/7/2021, 2:50:30 PM] [APC] battery.runtime.low=120
[6/7/2021, 2:50:30 PM] [APC] battery.temperature=34.6
[6/7/2021, 2:50:30 PM] [APC] battery.type=PbAc
[6/7/2021, 2:50:30 PM] [APC] battery.voltage=27.3
[6/7/2021, 2:50:30 PM] [APC] battery.voltage.nominal=24.0
[6/7/2021, 2:50:30 PM] [APC] device.mfr=American Power Conversion
[6/7/2021, 2:50:30 PM] [APC] device.model=Smart-UPS 1500
[6/7/2021, 2:50:30 PM] [APC] device.serial=AS0427131278
[6/7/2021, 2:50:30 PM] [APC] device.type=ups
[6/7/2021, 2:50:30 PM] [APC] driver.name=usbhid-ups
[6/7/2021, 2:50:30 PM] [APC] driver.parameter.pollfreq=30
[6/7/2021, 2:50:30 PM] [APC] driver.parameter.pollinterval=5
[6/7/2021, 2:50:30 PM] [APC] driver.parameter.port=auto
[6/7/2021, 2:50:30 PM] [APC] driver.parameter.synchronous=no
[6/7/2021, 2:50:30 PM] [APC] driver.version=DSM7-0-0-NewModel-repack-41859-210506
[6/7/2021, 2:50:30 PM] [APC] driver.version.data=APC HID 0.96
[6/7/2021, 2:50:30 PM] [APC] driver.version.internal=0.41
[6/7/2021, 2:50:30 PM] [APC] input.sensitivity=high
[6/7/2021, 2:50:30 PM] [APC] input.transfer.high=253
[6/7/2021, 2:50:30 PM] [APC] input.transfer.low=196
[6/7/2021, 2:50:30 PM] [APC] input.voltage=237.6
[6/7/2021, 2:50:30 PM] [APC] output.frequency=50.0
[6/7/2021, 2:50:30 PM] [APC] output.voltage=237.6
[6/7/2021, 2:50:30 PM] [APC] output.voltage.nominal=230.0
[6/7/2021, 2:50:30 PM] [APC] ups.beeper.status=enabled
[6/7/2021, 2:50:30 PM] [APC] ups.delay.shutdown=20
[6/7/2021, 2:50:30 PM] [APC] ups.delay.start=30
[6/7/2021, 2:50:30 PM] [APC] ups.firmware=601.3.I
[6/7/2021, 2:50:30 PM] [APC] ups.firmware.aux=1.5
[6/7/2021, 2:50:30 PM] [APC] ups.load=9.1
[6/7/2021, 2:50:30 PM] [APC] ups.mfr=American Power Conversion
[6/7/2021, 2:50:30 PM] [APC] ups.mfr.date=2004/06/29
[6/7/2021, 2:50:30 PM] [APC] ups.model=Smart-UPS 1500
[6/7/2021, 2:50:30 PM] [APC] ups.productid=0002
[6/7/2021, 2:50:30 PM] [APC] ups.serial=AS0427131278
[6/7/2021, 2:50:30 PM] [APC] ups.status=OL
[6/7/2021, 2:50:30 PM] [APC] ups.test.result=No test initiated
[6/7/2021, 2:50:30 PM] [APC] ups.timer.reboot=-1
[6/7/2021, 2:50:30 PM] [APC] ups.timer.shutdown=-1
[6/7/2021, 2:50:30 PM] [APC] ups.timer.start=-1
[6/7/2021, 2:50:30 PM] [APC] ups.vendorid=051d
[6/7/2021, 2:50:30 PM] [APC] parsed UPS values: {"key":"ups","name":"Description unavailable","fault":false,"active":true,"onBattery":false,"temperature":-1,"batteryLevel":100,"chargingState":1,"lowBattery":false,"powerConsumption":0,"powerConsumptionLevel":0,"manufacturer":"American Power Conversion","model":"Smart-UPS 1500","serialNumber":"AS0427131278","firmwareRevision":"601.3.I"}
[6/7/2021, 2:50:30 PM] [APC] createOrUpdateUps(): ups
[6/7/2021, 2:50:30 PM] [APC] found existing accessory for UUID: 895da5e8-ef0f-4c46-877c-90966f17b25e => Description unavailable
[6/7/2021, 2:50:30 PM] [APC] update()
[6/7/2021, 2:50:30 PM] [APC] pushed changed UPS state to HomeKit for ups=Description unavailable

@iondarie it looks to be because you didn't have a description for the UPS configured in the nut UPS config file.

I have made an update (2.0.7) to use the UPS key returned from NUT if the description comes back as Description unavailable.

In your case, this will now be ups as per the following line in the log:

UPS info for device: ups=Description unavailable

So I would suggest changing your NUT config file to have either a description or key you would prefer for the name.

@vectronic thank you for the update, unfortunately i dont think i can change my NUT config file as it is running in Synology DSM, but i will be looking into it.

Thank you,

Close this as I assume no longer an issue, let me know otherwise....