jaroschek / home-assistant-eaton-ups

Custom Home Assistant integration for Eaton UPS devices and sensors through SNMP.
9 stars 2 forks source link

v1.1.3 and Eaton Evolution 1150 : None noSuchName 2 #18

Closed iXo closed 5 days ago

iXo commented 3 months ago

Hi,

I have just added a management card to my Evolution 1150 UPS. The SNMP works but the integration return a noSuchName 2 error, and I don't know what is the issue.

Here is the return of a snmp walk on the ups :

snmpwalk -v 1 -c public 192.168.42.100 1.3.6.1.4.1.534

SNMPv2-SMI::enterprises.534.1.1.1.0 = STRING: "EATON" SNMPv2-SMI::enterprises.534.1.1.2.0 = STRING: "Evolution 1150" SNMPv2-SMI::enterprises.534.1.1.3.0 = STRING: "INV: 9901DC" SNMPv2-SMI::enterprises.534.1.1.4.0 = INTEGER: 16 SNMPv2-SMI::enterprises.534.1.2.1.0 = INTEGER: 1525 SNMPv2-SMI::enterprises.534.1.2.2.0 = INTEGER: 27 SNMPv2-SMI::enterprises.534.1.2.3.0 = INTEGER: 0 SNMPv2-SMI::enterprises.534.1.2.4.0 = INTEGER: 100 SNMPv2-SMI::enterprises.534.1.2.5.0 = INTEGER: 1 SNMPv2-SMI::enterprises.534.1.2.6.0 = "" SNMPv2-SMI::enterprises.534.1.3.1.0 = INTEGER: 490 SNMPv2-SMI::enterprises.534.1.3.2.0 = Counter32: 1 SNMPv2-SMI::enterprises.534.1.3.3.0 = INTEGER: 1 SNMPv2-SMI::enterprises.534.1.3.4.1.1.1 = INTEGER: 1 SNMPv2-SMI::enterprises.534.1.3.4.1.2.1 = INTEGER: 230 SNMPv2-SMI::enterprises.534.1.3.4.1.3.1 = INTEGER: 0 SNMPv2-SMI::enterprises.534.1.3.4.1.4.1 = INTEGER: 0 SNMPv2-SMI::enterprises.534.1.3.5.0 = INTEGER: 3 SNMPv2-SMI::enterprises.534.1.4.1.0 = INTEGER: 22 SNMPv2-SMI::enterprises.534.1.4.2.0 = INTEGER: 490 SNMPv2-SMI::enterprises.534.1.4.3.0 = INTEGER: 1 SNMPv2-SMI::enterprises.534.1.4.4.1.1.1 = INTEGER: 1 SNMPv2-SMI::enterprises.534.1.4.4.1.2.1 = INTEGER: 230 SNMPv2-SMI::enterprises.534.1.4.4.1.3.1 = INTEGER: 0 SNMPv2-SMI::enterprises.534.1.4.4.1.4.1 = INTEGER: 177 SNMPv2-SMI::enterprises.534.1.4.5.0 = INTEGER: 3 SNMPv2-SMI::enterprises.534.1.5.1.0 = INTEGER: 0 SNMPv2-SMI::enterprises.534.1.5.2.0 = INTEGER: 0 SNMPv2-SMI::enterprises.534.1.6.1.0 = INTEGER: 0 SNMPv2-SMI::enterprises.534.1.6.2.0 = INTEGER: 0 SNMPv2-SMI::enterprises.534.1.6.3.0 = INTEGER: 40 SNMPv2-SMI::enterprises.534.1.6.7.0 = INTEGER: 0 SNMPv2-SMI::enterprises.534.1.7.1.0 = Gauge32: 2 SNMPv2-SMI::enterprises.534.1.7.2.1.1.9 = INTEGER: 9 SNMPv2-SMI::enterprises.534.1.7.2.1.2.9 = OID: SNMPv2-SMI::enterprises.534.1.7.5 SNMPv2-SMI::enterprises.534.1.7.2.1.3.9 = Timeticks: (245384618) 28 days, 9:37:26.18 SNMPv2-SMI::enterprises.534.1.7.18.0 = Gauge32: 2 SNMPv2-SMI::enterprises.534.1.8.1.0 = INTEGER: 1 SNMPv2-SMI::enterprises.534.1.8.2.0 = INTEGER: 2 SNMPv2-SMI::enterprises.534.1.9.1.0 = INTEGER: 0 SNMPv2-SMI::enterprises.534.1.9.2.0 = INTEGER: 0 SNMPv2-SMI::enterprises.534.1.9.3.0 = INTEGER: 0 SNMPv2-SMI::enterprises.534.1.9.4.0 = INTEGER: 0 SNMPv2-SMI::enterprises.534.1.9.5.0 = INTEGER: 0 SNMPv2-SMI::enterprises.534.1.9.6.0 = INTEGER: 0 SNMPv2-SMI::enterprises.534.1.10.1.0 = INTEGER: 230 SNMPv2-SMI::enterprises.534.1.10.2.0 = INTEGER: 230 SNMPv2-SMI::enterprises.534.1.10.3.0 = INTEGER: 770 SNMPv2-SMI::enterprises.534.1.10.4.0 = INTEGER: 500 SNMPv2-SMI::enterprises.534.1.10.5.0 = STRING: "03/29/1970 14:30:32" SNMPv2-SMI::enterprises.534.1.10.6.0 = INTEGER: 160 SNMPv2-SMI::enterprises.534.1.10.7.0 = INTEGER: 294 SNMPv2-SMI::enterprises.534.1.10.8.0 = "" SNMPv2-SMI::enterprises.534.1.11.1.0 = INTEGER: 5 SNMPv2-SMI::enterprises.534.1.11.2.0 = INTEGER: 2 SNMPv2-SMI::enterprises.534.1.11.3.0 = "" SNMPv2-SMI::enterprises.534.1.12.1.0 = INTEGER: 2 SNMPv2-SMI::enterprises.534.1.12.2.1.1.1 = INTEGER: 1 SNMPv2-SMI::enterprises.534.1.12.2.1.1.2 = INTEGER: 2 SNMPv2-SMI::enterprises.534.1.12.2.1.2.1 = INTEGER: 1 SNMPv2-SMI::enterprises.534.1.12.2.1.2.2 = INTEGER: 1 SNMPv2-SMI::enterprises.534.1.12.2.1.3.1 = INTEGER: -1 SNMPv2-SMI::enterprises.534.1.12.2.1.3.2 = INTEGER: -1 SNMPv2-SMI::enterprises.534.1.12.2.1.4.1 = INTEGER: -1 SNMPv2-SMI::enterprises.534.1.12.2.1.4.2 = INTEGER: -1 SNMPv2-SMI::enterprises.534.1.12.2.1.5.1 = INTEGER: 65535 SNMPv2-SMI::enterprises.534.1.12.2.1.5.2 = INTEGER: 65535 SNMPv2-SMI::enterprises.534.1.12.2.1.6.1 = INTEGER: 3 SNMPv2-SMI::enterprises.534.1.12.2.1.6.2 = INTEGER: 6 SNMPv2-SMI::enterprises.534.1.12.2.1.7.1 = INTEGER: 0 SNMPv2-SMI::enterprises.534.1.12.2.1.7.2 = INTEGER: 0 SNMPv2-SMI::enterprises.534.1.13.1.0 = INTEGER: 32 SNMPv2-SMI::enterprises.534.1.13.2.0 = INTEGER: 521 SNMPv2-SMI::enterprises.534.1.13.3.0 = INTEGER: 0

adrian-schutte commented 3 months ago

Hi,

I get the same error on a Eaton 9E 2000i with "Eaton Gigabit Network Card" management card.

image

This is my snmpwalk

snmpwalk -v 1 -c public 192.168.8.30 1.3.6.1.4.1.534

SNMPv2-SMI::enterprises.534.1.1.1.0 = STRING: "EATON" SNMPv2-SMI::enterprises.534.1.1.2.0 = STRING: "Eaton 9E 2000i" SNMPv2-SMI::enterprises.534.1.1.3.0 = STRING: "00.02.0008" SNMPv2-SMI::enterprises.534.1.1.4.0 = INTEGER: 16 SNMPv2-SMI::enterprises.534.1.1.5.0 = STRING: "9E2000I" SNMPv2-SMI::enterprises.534.1.1.6.0 = STRING: "GE07M44445" SNMPv2-SMI::enterprises.534.1.2.1.0 = INTEGER: 3614 SNMPv2-SMI::enterprises.534.1.2.2.0 = INTEGER: 82 SNMPv2-SMI::enterprises.534.1.2.4.0 = INTEGER: 100 SNMPv2-SMI::enterprises.534.1.2.5.0 = INTEGER: 3 SNMPv2-SMI::enterprises.534.1.2.7.0 = INTEGER: 2 SNMPv2-SMI::enterprises.534.1.2.8.0 = INTEGER: 2 SNMPv2-SMI::enterprises.534.1.2.10.0 = INTEGER: 2 SNMPv2-SMI::enterprises.534.1.2.20.1.0 = INTEGER: 20 SNMPv2-SMI::enterprises.534.1.2.20.2.0 = INTEGER: 180 SNMPv2-SMI::enterprises.534.1.2.20.3.0 = INTEGER: 0 SNMPv2-SMI::enterprises.534.1.3.1.0 = INTEGER: 500 SNMPv2-SMI::enterprises.534.1.3.3.0 = INTEGER: 1 SNMPv2-SMI::enterprises.534.1.3.4.1.1.1 = INTEGER: 1 SNMPv2-SMI::enterprises.534.1.3.4.1.2.1 = INTEGER: 232 SNMPv2-SMI::enterprises.534.1.3.4.1.5.1 = INTEGER: 1 SNMPv2-SMI::enterprises.534.1.3.4.1.6.1 = STRING: "L1/A" SNMPv2-SMI::enterprises.534.1.3.5.0 = INTEGER: 3 SNMPv2-SMI::enterprises.534.1.3.8.1.0 = INTEGER: 232 SNMPv2-SMI::enterprises.534.1.3.9.0 = INTEGER: 2 SNMPv2-SMI::enterprises.534.1.4.1.0 = INTEGER: 25 SNMPv2-SMI::enterprises.534.1.4.2.0 = INTEGER: 500 SNMPv2-SMI::enterprises.534.1.4.3.0 = INTEGER: 1 SNMPv2-SMI::enterprises.534.1.4.4.1.1.1 = INTEGER: 1 SNMPv2-SMI::enterprises.534.1.4.4.1.2.1 = INTEGER: 229 SNMPv2-SMI::enterprises.534.1.4.4.1.3.1 = INTEGER: 2 SNMPv2-SMI::enterprises.534.1.4.4.1.4.1 = INTEGER: 269 SNMPv2-SMI::enterprises.534.1.4.4.1.5.1 = INTEGER: 1 SNMPv2-SMI::enterprises.534.1.4.4.1.6.1 = STRING: "L1/A" SNMPv2-SMI::enterprises.534.1.4.4.1.7.1 = INTEGER: 21 SNMPv2-SMI::enterprises.534.1.4.4.1.8.1 = INTEGER: 25 SNMPv2-SMI::enterprises.534.1.4.4.1.9.1 = INTEGER: 504 SNMPv2-SMI::enterprises.534.1.4.5.0 = INTEGER: 3 SNMPv2-SMI::enterprises.534.1.4.9.1.0 = INTEGER: 229 SNMPv2-SMI::enterprises.534.1.4.9.2.0 = INTEGER: 2 SNMPv2-SMI::enterprises.534.1.4.9.3.0 = INTEGER: 269 SNMPv2-SMI::enterprises.534.1.4.9.4.0 = INTEGER: 504 SNMPv2-SMI::enterprises.534.1.4.10.0 = INTEGER: 3 SNMPv2-SMI::enterprises.534.1.5.1.0 = INTEGER: 500 SNMPv2-SMI::enterprises.534.1.5.2.0 = INTEGER: 1 SNMPv2-SMI::enterprises.534.1.5.3.1.1.1 = INTEGER: 1 SNMPv2-SMI::enterprises.534.1.5.3.1.2.1 = INTEGER: 232 SNMPv2-SMI::enterprises.534.1.5.3.1.3.1 = INTEGER: 1 SNMPv2-SMI::enterprises.534.1.5.3.1.4.1 = STRING: "L1/A" SNMPv2-SMI::enterprises.534.1.5.4.1.0 = INTEGER: 232 SNMPv2-SMI::enterprises.534.1.6.1.0 = INTEGER: 25 SNMPv2-SMI::enterprises.534.1.7.1.0 = Gauge32: 0 SNMPv2-SMI::enterprises.534.1.7.18.0 = Gauge32: 0 SNMPv2-SMI::enterprises.534.1.8.1.0 = INTEGER: 2 SNMPv2-SMI::enterprises.534.1.8.2.0 = INTEGER: 2 SNMPv2-SMI::enterprises.534.1.8.5.0 = INTEGER: 1 SNMPv2-SMI::enterprises.534.1.9.1.0 = INTEGER: 0 SNMPv2-SMI::enterprises.534.1.9.2.0 = INTEGER: 0 SNMPv2-SMI::enterprises.534.1.9.3.0 = INTEGER: 0 SNMPv2-SMI::enterprises.534.1.9.4.0 = INTEGER: 0 SNMPv2-SMI::enterprises.534.1.9.5.0 = INTEGER: 0 SNMPv2-SMI::enterprises.534.1.9.6.0 = INTEGER: 0 SNMPv2-SMI::enterprises.534.1.9.7.0 = INTEGER: 1 SNMPv2-SMI::enterprises.534.1.10.1.0 = INTEGER: 230 SNMPv2-SMI::enterprises.534.1.10.2.0 = INTEGER: 230 SNMPv2-SMI::enterprises.534.1.10.3.0 = INTEGER: 1600 SNMPv2-SMI::enterprises.534.1.10.4.0 = INTEGER: 500 SNMPv2-SMI::enterprises.534.1.10.5.0 = STRING: "08/02/2024 08:57:49" SNMPv2-SMI::enterprises.534.1.10.6.0 = INTEGER: 100 SNMPv2-SMI::enterprises.534.1.10.7.0 = INTEGER: 300 SNMPv2-SMI::enterprises.534.1.10.9.0 = INTEGER: 1 SNMPv2-SMI::enterprises.534.1.12.1.0 = INTEGER: 1 SNMPv2-SMI::enterprises.534.1.13.1.0 = INTEGER: 64 SNMPv2-SMI::enterprises.534.1.13.2.0 = INTEGER: 9841 SNMPv2-SMI::enterprises.534.1.13.3.0 = INTEGER: 0 SNMPv2-SMI::enterprises.534.1.14.1.0 = STRING: "Eaton" SNMPv2-SMI::enterprises.534.1.14.2.0 = STRING: "Eaton Gigabit Network Card" SNMPv2-SMI::enterprises.534.1.14.3.0 = STRING: "3.1.8" SNMPv2-SMI::enterprises.534.1.14.4.0 = STRING: "744-A3983-02" SNMPv2-SMI::enterprises.534.1.14.5.0 = STRING: "G312N01R58" SNMPv2-SMI::enterprises.534.6.8.1.1.1.0 = INTEGER: 0 SNMPv2-SMI::enterprises.534.6.8.1.2.5.0 = INTEGER: 1 SNMPv2-SMI::enterprises.534.10.2.1.1.0 = STRING: "EATON" SNMPv2-SMI::enterprises.534.10.2.1.2.0 = STRING: "Eaton 9E 2000i" SNMPv2-SMI::enterprises.534.10.2.1.3.0 = STRING: "00.02.0008" SNMPv2-SMI::enterprises.534.10.2.1.4.0 = STRING: "02/21/2023" SNMPv2-SMI::enterprises.534.10.2.1.5.0 = STRING: "GE07M44445" SNMPv2-SMI::enterprises.534.10.2.1.6.0 = STRING: "9E2000I" SNMPv2-SMI::enterprises.534.10.2.1.7.0 = STRING: "3.1.8" SNMPv2-SMI::enterprises.534.10.2.2.2.1.1.1 = INTEGER: 1 SNMPv2-SMI::enterprises.534.10.2.2.2.1.2.1 = INTEGER: 2320 SNMPv2-SMI::enterprises.534.10.2.2.2.1.3.1 = INTEGER: 500 SNMPv2-SMI::enterprises.534.10.2.2.3.1.0 = INTEGER: 2290 SNMPv2-SMI::enterprises.534.10.2.2.3.2.0 = INTEGER: 21 SNMPv2-SMI::enterprises.534.10.2.3.2.1.1.1 = INTEGER: 1 SNMPv2-SMI::enterprises.534.10.2.3.2.1.2.1 = INTEGER: 1 SNMPv2-SMI::enterprises.534.10.2.3.2.1.3.1 = INTEGER: 2 SNMPv2-SMI::enterprises.534.10.2.3.2.1.5.1 = INTEGER: 1 SNMPv2-SMI::enterprises.534.10.2.3.2.1.6.1 = INTEGER: 2 SNMPv2-SMI::enterprises.534.10.2.3.3.2.0 = INTEGER: 2 SNMPv2-SMI::enterprises.534.10.2.3.3.3.0 = INTEGER: 1 SNMPv2-SMI::enterprises.534.10.2.3.3.4.0 = INTEGER: 1 SNMPv2-SMI::enterprises.534.10.2.3.3.5.0 = INTEGER: 1 SNMPv2-SMI::enterprises.534.10.2.3.3.6.0 = INTEGER: 1 SNMPv2-SMI::enterprises.534.10.2.4.1.1.0 = Gauge32: 1722589070 SNMPv2-SMI::enterprises.534.10.2.4.1.2.0 = STRING: "08/02/2024" SNMPv2-SMI::enterprises.534.10.2.4.1.3.0 = STRING: "08:57:50" SNMPv2-SMI::enterprises.534.10.2.4.2.0 = INTEGER: 230 SNMPv2-SMI::enterprises.534.10.2.4.3.0 = INTEGER: 50 SNMPv2-SMI::enterprises.534.10.2.4.4.0 = INTEGER: 230 SNMPv2-SMI::enterprises.534.10.2.4.9.0 = INTEGER: 100 SNMPv2-SMI::enterprises.534.10.2.4.11.0 = INTEGER: 300 SNMPv2-SMI::enterprises.534.10.2.4.12.0 = INTEGER: 10

jaroschek commented 1 month ago

@adrian-schutte @iXo The problem is, that I implemented this for an 9PX with an Gigabit Network Card (M2). SO it seems that not all requsted OIDs are available for every other model.

But I have now implemented a workaround by ignoring OIDs that cause an error and retry the SNMP request with that OID.

The change is now available in the pre-release: https://github.com/jaroschek/home-assistant-eaton-ups/releases/tag/1.2.1-beta1

iXo commented 1 month ago

Superbe ! it works now !!! thanks for your hard work.

jaroschek commented 1 month ago

@iXo Thank is great!

I just found another issue, if the serial number OID is not available. In this case the device identifier would be not unique enough and multiple devices for this integration/domain would be shown as a single device.

For that issue I implemented a fallback to some other (possibly unique) OIDs to differentiate multiple devices.

The changes are published in the new pre-release: https://github.com/jaroschek/home-assistant-eaton-ups/releases/tag/1.2.1-beta2

jaroschek commented 5 days ago

Based on a different situation where even the product name was not unique enough when the serial is missing, I made additional changes even including alternative OIDs for serial number, firmware and product name: #37

Unfortunately this will probably cause the loss of entity history of devices where the serial number was not available and the product name was used as unique identifier instead. Now the last fallback for the unique identifier is the configured host.