Wenn der String exakt so formatiert ist, kannst Du versuchen, den String mittels REGEX zu zerlegen. Dabei wäre es von Vorteil, wenn die Zerlegung VOR der Übernahme in das Item stattfindet. Ich habe bisher mit SNMP noch nichts gemacht, leider scheint es keine Möglichkeit zu geben, dies im Binding selbst zu erledigen.
Der einfachste Weg ist also, ein zweites Item anzulegen, welches dann den Zahlenwert enthalten wird, ein Rule kann dann aus dem gelieferten String die Zahl extrahieren, z.B. so:
Code: Alles auswählen
rule "snmp String nach number"
when
Item snmpString changed
then
val str = snmpString.state.toString
logInfo("snmpstring","String: {}",str)
val str2 = transform("REGEX",".*:(.*) .*",str)
logInfo("snmpstring","Celsius (String): {}",str2)
val num = Float::parseFloat(str2)
logInfo("snmpstring","Celsius (Number): {}",num)
snmpNumber.postUpdate(num)
end
Da ich nicht zu 100% sicher bin, ob das an allen Stellen genau so wie erwartet funktioniert, habe ich hier alles in kleinen Schritten eingebaut. Die eigentliche Rule könnte auch wesentlich kürzer ausfallen:
Code: Alles auswählen
rule "snmp String nach number"
when
Item snmpString changed
then
snmpNumber.postUpdate(FLoat::parseFloat(transform("REGEX",".*:(.*) .*",snmpString.state.toString)))
end
Nur ist das halt schlecht zu debuggen, falls etwas nicht wie erwartet funktioniert

Die beiden Items snmpString und snmpNumber stehen stellvertretend fü die zwei Items von Dir (eben das mit dem gelieferten String und das 2. welches Du als Number Item anlegen musst und dann zur Anzeige verwenden kannst.