NEWS
Parser-Adapter: Rundungsfehler bei Zahlen?
-
Ich habe gerade bei mir im Parser -Adapter ein interessantes Verhalten festgestellt.
Bei manchen Temperaturen, die ich von einem DS10B20 1-Wire-Thermometer lese, erhalte ich sehr krumme Werte.
Der DS18B20 liefert Meldungen der Art
00 4b 46 ff ff 01 10 ad : crc=ad YES 4d 00 4b 46 ff ff 01 10 ad t=38887wobei 38,887 (mit Komma) die Temperatur ist.
Wenn ich nun mit dem regulären Ausdruck
t=(-?\d{3}) ````(also nur die ersten drei Ziffern mit Vorzeichen) den ich auf diese Rückmeldungen losgehe, dann erhalte ich mit einem Korrekturfaktor von ****0.1**** einen sehr krummen Wert von ****38.800000000000004**** Das kann auch ganz einfach in der Konfiguration des Parsers getestet werden. Natürlich (sonst wäre es zu einfach) passiert dies nicht bei allen Werten:t=38887 -> 38.800000000000004
t=38787 -> 38,7
t=38687 -> 38,6
t=38587 -> 38,5
t=38487 -> 38.400000000000006Bug oder Feature? Oder gar Fehler vor dem Bildschirm? Hier noch die gesamte Konfig dieses Parser-Objekts >! { >! "from": "system.adapter.admin.0", >! "ts": 1517232565264, >! "common": { >! "name": "Temp_1", >! "unit": "", >! "type": "number", >! "role": "value", >! "write": false, >! "read": true, >! "custom": { >! "history.0": { >! "enabled": true, >! "changesOnly": true, >! "debounce": 1000, >! "maxLength": 960, >! "retention": 31536000, >! "changesRelogInterval": 0, >! "changesMinDelta": 0 >! } >! } >! }, >! "native": { >! "link": "/sys/bus/w1/devices/10-0008XXXXXX/w1_slave", >! "regex": "t=(-?\\d{3})", >! "interval": "", >! "substitute": "", >! "offset": 0, >! "factor": 0.1, >! "item": 0, >! "comma": true, >! "substituteOld": false >! }, >! "acl": { >! "object": 1638, >! "owner": "system.user.admin", >! "ownerGroup": "system.group.administrator", >! "state": 1638 >! }, >! "_id": "parser.0.Temp_1", >! "type": "state" >! } -
Die Frage hatte ich hier: http://forum.iobroker.net/viewtopic.php … 154#p89154
auch schon mal gestellt. Bluefox hat dann einen Link mit der passenden Erklärung gepostet.
Gruß
Matze
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden