OH3 SNMP opaqueFloat Werte

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
uweseifert
Beiträge: 1
Registriert: 8. Feb 2021 10:24
Answers: 0

OH3 SNMP opaqueFloat Werte

Beitrag 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?

Benutzeravatar
udo1toni
Beiträge: 15269
Registriert: 11. Apr 2018 18:05
Answers: 245
Wohnort: Darmstadt

Re: OH3 SNMP opaqueFloat Werte

Beitrag 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.
openHAB4.3.6 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

Antworten