Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Visualisierung
    4. Parser-Adapter: Rundungsfehler bei Zahlen?

    NEWS

    • Neues Video "KI im Smart Home" - ioBroker plus n8n

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    • Wir empfehlen: Node.js 22.x

    Parser-Adapter: Rundungsfehler bei Zahlen?

    This topic has been deleted. Only users with topic management privileges can see it.
    • K
      Karl_999 last edited by

      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=38887
      

      wobei 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.400000000000006

      Bug 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"
      >! }
      1 Reply Last reply Reply Quote 0
      • apollon77
        apollon77 last edited by

        Sowas kann beim Rechnen mit Gleitkommazahlen passieren …

        1 Reply Last reply Reply Quote 0
        • Matzebhv
          Matzebhv last edited by

          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

          1 Reply Last reply Reply Quote 0
          • First post
            Last post

          Support us

          ioBroker
          Community Adapters
          Donate

          569
          Online

          32.1k
          Users

          80.7k
          Topics

          1.3m
          Posts

          3
          3
          331
          Loading More Posts
          • Oldest to Newest
          • Newest to Oldest
          • Most Votes
          Reply
          • Reply as topic
          Log in to reply
          Community
          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
          The ioBroker Community 2014-2023
          logo