Seite 1 von 1

OH3 SNMP opaqueFloat Werte

Verfasst: 8. Feb 2021 10:40
von uweseifert
Bei der Umstellung von OH2 auf OH3 habe ich ein Problem mit den SNMP Werten meiner UPS. Die UPS liefert opaqueFloat Werte zurück. Folgende Werte werden zurückgeliefert.
Sending 47 bytes to UDP: [10.10.101.5]:161->[0.0.0.0]:0
0000: 30 2D 02 01 01 04 06 70 75 62 6C 69 63 A1 20 02 0-.....public? .
0016: 04 7C 0F 1E 7C 02 01 00 02 01 00 30 12 30 10 06 .|..|......0.0..
0032: 0C 2B 06 01 04 01 B3 2E 04 03 01 04 00 05 00 .+....?........


Received 54 byte packet from UDP: [10.10.101.5]:161->[0.0.0.0]:0
0000: 30 34 02 01 01 04 06 70 75 62 6C 69 63 A2 27 02 04.....public?'.
0016: 04 7C 0F 1E 7C 02 01 00 02 01 00 30 19 30 17 06 .|..|......0.0..
0032: 0C 2B 06 01 04 01 B3 2E 04 03 02 01 00 44 07 9F .+....?......D..
0048: 78 04 41 5B 33 33 x.A[33

SNMPv2-SMI::enterprises.6574.4.3.2.1.0 = Opaque: Float: 13.700000

im log bekomme ich aber folgende Fehlermeldung:
2021-02-08 09:17:02.083 [WARN ] [ding.snmp.internal.SnmpTargetHandler] - could not convert 9f:78:04:41:5b:33:33 to number for channel snmp:target:my-diskpool-1:nUPS_Batterie_Voltage

so sieht meine Things-Datei aus:
Thing snmp:target:my-diskpool-1 [ hostname="10.10.101.5", protocol="v2c", refresh=3600 ] {
Channels:
Type number : nUPS_Runtime_Value [ oid=".1.3.6.1.4.1.6574.4.3.6.1.0", mode="READ" ]
Type number : nUPS_Batterie_Voltage [ oid=".1.3.6.1.4.1.6574.4.3.2.1.0", mode="READ", datatype="HEXSTRING"]
}

Ich habe es auch schon mit datatype FLOAT probiert, gleiche Ergebnis. Offensichtlich werden die Werte vom SNMP Addon nicht korrekt weitergeleitet. Kann hier jemand helfen?

Re: OH3 SNMP opaqueFloat Werte

Verfasst: 8. Feb 2021 11:38
von udo1toni
Für den Hintergrund: https://stackoverflow.com/questions/352 ... aque-float

opaqueFloat bedeutet, dass nicht nur der reine Datenwert encodiert wurde, sondern auch der genaue Typ (das ist in ASN1 in SNMP definiert) Das Datum

Code: Alles auswählen

9f:78:04:41:5b:33:33
bedeutet also im Einzelnen:
  • 9f:78 -> es handelt sich um einen Float Wert
  • 04 -> Der Wert ist vier Byte lang (also ein Float mit 32 Bit)
  • 41:5b:33:33 -> der eigentliche Wert
Warum der Wert nicht erfolgreich umgerechnet wird, entzieht sich meiner Kenntnis. Ich fürchte, Du wirst mit dem Entwickler des SNMP Bindings Kontakt aufnehmen müssen.