Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Alias zeigt viele Nachkommastellen unter Objekte

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Alias zeigt viele Nachkommastellen unter Objekte

    This topic has been deleted. Only users with topic management privileges can see it.
    • A
      asman-hm @paul53 last edited by

      @paul53 said in Alias zeigt viele Nachkommastellen unter Objekte:

      Fazit: Im Alias eines Zahlenwertes können zusätzliche Nachkommastellen auftreten, was man durch Runden per common.alias.read rückgängig machen kann. In der History-Aufzeichnung und in Javascript wirkt das Runden sofort, im Reiter "Objekte" erst nach ioBroker-Neustart.

      Wie kann ich denn durch "common.alias.read" Runden?

      Ich habe einen Alias auf einen Temperatursensor mittels deines Skriptes angelegt; erhalte aber wie hier beschrieben sehr viele Nachkommastellen.

      Leider verstehe ich nicht, wie ich das Runden jetzt bewerkstellige. Muss ich da in deinem Skript etwas anpassen, oder im Nachhinein den Alias verändern?

      paul53 1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @asman-hm last edited by paul53

        @asman-hm sagte:

        Wie kann ich denn durch "common.alias.read" Runden?

        Z.B. auf 1 Nachkommastelle

              "read": "Math.round(val * 10) / 10"
        
        A 1 Reply Last reply Reply Quote 0
        • A
          asman-hm @paul53 last edited by

          @paul53 said in Alias zeigt viele Nachkommastellen unter Objekte:

          Z.B. auf 1 Nachkommastelle

                "read": "Math.round(val * 10) / 10"
          

          Vielen Dank für die schnelle Antwort.

          Wahrscheinlich mache ich es falsch, aber ich bekomme immer noch x-Nachkommastellen. Habe nach den Änderungen iobroker auch schon neu gestartet.

          Der Wert "Luft" in dem Screenshot wird manchmal mit einer Nachkommastelle und manchmal mit x-Nachkommestellen angezeigt, obwohl ich nichts ändere.

          Bildschirmfoto 2020-02-15 um 19.32.10.png

          So sehen die Experteneinstellungen des ALIAS aus:

          {
            "from": "system.adapter.javascript.0",
            "user": "system.user.admin",
            "ts": 1581787469005,
            "common": {
              "name": "Garten.Pool.Wasser:1.TEMPERATURE",
              "type": "number",
              "unit": "°C",
              "role": "value.temperature",
              "def": 0,
              "min": -150,
              "max": 150,
              "read": "Math.round(val * 10) / 10",
              "write": false,
              "alias": {
                "id": "hm-rpc.1.QEQ1564195.1.TEMPERATURE"
              },
              "custom": {
                "sql.0": {
                  "enabled": true,
                  "changesOnly": true,
                  "debounce": "1000",
                  "retention": 0,
                  "changesRelogInterval": 0,
                  "changesMinDelta": 0.1,
                  "storageType": "Number",
                  "aliasId": ""
                }
              }
            },
            "native": {},
            "acl": {
              "object": 1636,
              "owner": "system.user.admin",
              "ownerGroup": "system.group.administrator",
              "state": 1636
            },
            "_id": "alias.0.Temperatur.29Pool.Wasser",
            "type": "state"
          }
          

          Nicht lachen, wenn ich das an der falschen Stelle eingetragen habe.

          paul53 1 Reply Last reply Reply Quote 0
          • paul53
            paul53 @asman-hm last edited by paul53

            @asman-hm sagte in Alias zeigt viele Nachkommastellen unter Objekte:

            "read": "Math.round(val * 10) / 10",                                                                                                                                                                                "write": false,                                                                                                                                                                                "alias": {                                                                                                                                                                                  "id": "hm-rpc.1.QEQ1564195.1.TEMPERATURE"                                                                                                                                                                                },                                                                                                                                                                            
            

            Nicht common.read ändern, sondern common.alias.read ergänzen:

                "read": true,
                "write": false,
                "alias": {
                  "id": "hm-rpc.1.QEQ1564195.1.TEMPERATURE",
                  "read": "Math.round(val * 10) / 10"
                },
            
            A Duffy 2 Replies Last reply Reply Quote 1
            • A
              asman-hm @paul53 last edited by

              @paul53 said in Alias zeigt viele Nachkommastellen unter Objekte:

              @asman-hm sagte in Alias zeigt viele Nachkommastellen unter Objekte:

              "read": "Math.round(val * 10) / 10",                                                                                                                                                                                "write": false,                                                                                                                                                                                "alias": {                                                                                                                                                                                  "id": "hm-rpc.1.QEQ1564195.1.TEMPERATURE"                                                                                                                                                                                },                                                                                                                                                                            
              

              Nicht common.read ändern, sondern common.alias.read ergänzen:

                  "read": true,
                  "write": false,
                  "alias": {
                    "id": "hm-rpc.1.QEQ1564195.1.TEMPERATURE",
                    "read": "Math.round(val * 10) / 10"
                  },
              

              Kaum macht man es richtig, schon klappt es.
              Danke!

              1 Reply Last reply Reply Quote 0
              • Duffy
                Duffy @paul53 last edited by Duffy

                @paul53

                Hallo paul53,

                da du dich hier ja auszukennen scheinst möchte ich dich fragen ob du mir da mal helfen kannst.
                Auch ich habe das Problem das bei meinem Gaszähler viel zu viele Nullen sind ich aber keine Ahnung habe wo ich das mit dem runden einpflegen soll.
                Ich habe mal die Objektdaten des Alias mit angehängt. Muß das da irgendwo rein?

                {
                  "common": {
                    "name": "Gaszaehler",
                    "desc": "Manuell erzeugt",
                    "role": "value",
                    "type": "number",
                    "read": true,
                    "write": true,
                    "def": 0,
                    "custom": {
                      "sourceanalytix.0": {
                        "enabled": true,
                        "selectedUnit": "m³",
                        "deviceResetLogicEnabled": true,
                        "threshold": 1,
                        "start_day": 0,
                        "start_week": 0,
                        "start_month": 0,
                        "start_quarter": 0,
                        "start_year": 0,
                        "alias": "Gaszähler",
                        "selectedPrice": "Gas",
                        "consumption": true,
                        "valueAtDeviceReset": 0,
                        "valueAtDeviceInit": 9264.230000000001
                      }
                    }
                  },
                  "type": "state",
                  "native": {},
                  "_id": "0_userdata.0.Gaszaehler.Gaszaehler",
                  "acl": {
                    "object": 1636,
                    "state": 1636,
                    "owner": "system.user.admin",
                    "ownerGroup": "system.group.administrator"
                  },
                  "from": "system.adapter.sourceanalytix.0",
                  "user": "system.user.admin",
                  "ts": 1679819474473
                }
                

                Es wäre sehr nett wenn du mir helfen würdest.

                Gruß Duffy

                paul53 1 Reply Last reply Reply Quote 0
                • paul53
                  paul53 @Duffy last edited by

                  @duffy sagte: Objektdaten des Alias

                  Das ist kein Alias, sondern ein eigener Datenpunkt, der wahrscheinlich per Skript geschrieben wird. Man muss dann im Skript runden.

                  Duffy 1 Reply Last reply Reply Quote 0
                  • Duffy
                    Duffy @paul53 last edited by

                    @paul53

                    Zefix, du hast recht es ist bei 0_userdate drin, sorry. Die Daten werden von einem Blockly in den Datenpunkt geschrieben.
                    Trotzdem meine Frage wie ich die Nullen weg bekomme.
                    Kannst du mir das bitte in einfachen Worten erklären, beschäftige mich erst 2 Monate mit dem iob und da holpert es doch schon noch sehr.
                    Kann es vielleicht daran liegen das der Sourceanalytics Adapter da mit rein funkt?

                    Oder kannst du mir sagen ob ich hier was reinbasteln kann?

                    1.png

                    Verstehe eh nicht woher die Nullen kommen weil ja vom Ausgangswert immer nur 0,01 dazugezählt wird.

                    paul53 1 Reply Last reply Reply Quote 0
                    • paul53
                      paul53 @Duffy last edited by paul53

                      @duffy sagte: vom Ausgangswert immer nur 0,01 dazugezählt wird.

                      0,01 muss binär gerundet werden, wodurch Nachkommastellen entstehen können.

                      Ist "COUNTER_C1" ein Integer-Wert? Dann dividiere ihn durch 100. Wenn es kein Integer-Wert ist, dann runde ihn vorher.

                      Blockly_temp.JPG

                      Duffy 1 Reply Last reply Reply Quote 0
                      • G
                        GombersIOB last edited by

                        @duffy said in Alias zeigt viele Nachkommastellen unter Objekte:

                        Trotzdem meine Frage wie ich die Nullen weg bekomme.

                        Es gibt unter Mathematik im Blockly diesen Baustein - der mach das was @paul53 als JavaScript-Code zeigte:
                        86bad972-5d59-4d90-b026-aa3f12cf1977-image.png

                        Duffy 1 Reply Last reply Reply Quote 0
                        • Duffy
                          Duffy @paul53 last edited by

                          @paul53

                          Danke paul53. Das Signal vom Gaszähler kommt von einem reed Kontakt der am Gaszähler ist. Ich darf also immer nur
                          0,01 m³, das ist der Wert eines Signals zu meinem Gaszählerstand dazu rechen sonst stimmt der Wert nicht mehr.

                          Ich habe das nun mal so eingetragen wie von dir vorgeschlagen nur mit 0,01 und es scheint im Moment zu klappen.

                          Danke erst mal dafür.

                          paul53 1 Reply Last reply Reply Quote 0
                          • Duffy
                            Duffy @GombersIOB last edited by

                            @gombersiob

                            danke schön. 👍

                            1 Reply Last reply Reply Quote 0
                            • paul53
                              paul53 @Duffy last edited by

                              @duffy sagte: nur mit 0,01

                              Anstelle der Multiplikation mit 0,01 verwende die Division durch 100.

                              Duffy 2 Replies Last reply Reply Quote 0
                              • Duffy
                                Duffy @paul53 last edited by

                                @paul53

                                ok, habe ich so umgestellt.
                                Ich verstehe zwar nicht warum das eine geht und das andere nicht aber wichtig ist mir das es jetzt geht 🙂

                                Aber da du dich ja so richtig auszukennen scheinst fällt mir da noch ein Problem ein, passt zwar hier jetzt nicht zu dem Thema, will es trotzdem kurz anreißen und machr ggf ein neues Thema auf.

                                Ich habe ein Blockly bei dem durch einen BWM das Licht angeschaltet wird das nach einer gewissen Zeit wieder aus geht.
                                Schalte ich das Licht VOR dem BWM über Alexa ein bleibt es dauerhaft an.
                                Was ich aber gerne hätte ist, dass wenn der BWM das Licht an gemacht hat und ich Alexa sage: "Licht Wohnzimmer an" dieses auch dauerhaft an bleibt. Aktuell ist es so das es wenn es durch den BWM an gemacht wurde auch durch diesen wieder aus geht.

                                Kannst du mir da auch helfen? Soll ich ein neues Thema draus machen und das hier wieder löschen?

                                2.png

                                Gruß Duffy

                                G 1 Reply Last reply Reply Quote 0
                                • G
                                  GombersIOB @Duffy last edited by

                                  @duffy said in Alias zeigt viele Nachkommastellen unter Objekte:

                                  passt zwar hier jetzt nicht zu dem Thema

                                  Dann solltest Du auch ein neues Thema aufmachen. Das Forum hier ist ja nicht (nur) zur individuellen Hilfe sondern es sollen alle profitieren.

                                  Duffy 1 Reply Last reply Reply Quote 0
                                  • Duffy
                                    Duffy @GombersIOB last edited by

                                    @gombersiob

                                    Gerne doch.

                                    Neues Thema angelgt Link Text

                                    Viele Grüße Duffy und danke für Eure Unterstützung

                                    1 Reply Last reply Reply Quote 0
                                    • Duffy
                                      Duffy @paul53 last edited by Duffy

                                      @paul53

                                      Hallo paul53,

                                      die Nullen haben mich wieder eingeholt.
                                      Ich habe das runden mit 2 verschiedenen Bausteinen versucht aber die Nullen sind wieder gekommen.

                                      1. Versuch
                                        1.png

                                      2.Versuch
                                      3.png

                                      =>
                                      2.png

                                      Gibt es noch eine Alternativ Idee?

                                      Gruß Duffy

                                      paul53 1 Reply Last reply Reply Quote 0
                                      • paul53
                                        paul53 @Duffy last edited by paul53

                                        @duffy sagte: Gibt es noch eine Alternativ Idee?

                                        Initialisiere Zaehlerstand_initial mit einem Integer-Wert (100 fache), runde die Summe und teile dies durch 100.

                                        Blockly_temp.JPG

                                        Duffy 1 Reply Last reply Reply Quote 0
                                        • Duffy
                                          Duffy @paul53 last edited by

                                          @paul53

                                          Danke paul53.
                                          Ich habe es soeben umgesetzt und bin gerade am testen und es scheint zu klappen.

                                          Kannst du mir bitte noch in ganz einfachen Worten sagen warum das nun so klappt und vorher nicht?
                                          Hängt das damit zusammen wie die Zahlen Systemintern gehändelt werden?

                                          Viele Grüße Duffy

                                          paul53 1 Reply Last reply Reply Quote 0
                                          • paul53
                                            paul53 @Duffy last edited by paul53

                                            @duffy sagte: warum das nun so klappt und vorher nicht?

                                            Bei Berechnungen (Addition) mit nicht Integer-Zahlen kommt es manchmal zu Rundungsfehlern. Dividiert man aber eine Integer-Zahl durch 100, erhält man immer max. 2 Nachkommastellen.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            520
                                            Online

                                            31.8k
                                            Users

                                            80.0k
                                            Topics

                                            1.3m
                                            Posts

                                            alias objektübersicht
                                            5
                                            25
                                            5323
                                            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