Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Nachkommastellen verschwunden?

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Nachkommastellen verschwunden?

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

      Hallo,

      ich sende mir seit längeren schon Werte von Zigbee Sensoren auf den KNX Bus. Dies hat bis zuletzt gut mit diesem Blockly Script funktioniert:

      das erste Steure wird verwendet als "Initiator" wenn ich das Script starte.
      Das falls Objekt sendet dann immer bei einer änderung den Wert.

      d8d3a474-a62d-4444-a0ff-70d051b9a9d5-image.png

      Nun habe ich aus diversen Gründen meine ioBroker Instanz neu aufgesetzt, und habe jedoch folgendes Problem:

      Die bisherigen Werte haben allesamt einen . (Punkt) als Komma. Obwohl mir in den Objekten die Werte richtig angezeigt werden, kommt auf dem KNX Bus nur der Teil vor dem . (Punkt) an?

      als Beispiel:
      Wasserzähler hat einen Wert von 132.274 m3
      auf dem KNX Bus erscheint nur 132
      Obwohl das Objekt in der KNX Instanz richtig geschrieben wird?

      5d54803c-cda8-4302-84e6-e27db26a6d09-image.png

      Daten auf dem Bus:
      9d9d5871-7ba6-4fd6-8ee3-4806313aa698-image.png

      wo werden die Stellen nach dem Komma abgeschnitten? Kann mir das jemand sagen?

      dann dachte ich mir, mache ich mit einem Mathematik Baustein, den ("Wert vom Objekt ID ..." x 1000) um das Komma zu entfernen.

      6af7278a-9389-4b14-9a7d-7368ab1ee050-image.png

      Aber da erhalte ich dann keinen Werte mehr in den Objekten mehr geschrieben...

      72db5244-ddea-4401-81e0-2d1f640ee7a2-image.png

      EDIT:

      ich sehe gerade, ohne den Mathematik Bauastein, erhalte ich eine orange Warn Meldung:

      a008df19-c1bc-49dc-80b7-efaecc9d3289-image.png
      23d4fab1-a0ea-4e06-b186-fe903968dcf6-image.png

      Logfile:

      javascript.0	2021-01-23 23:19:06.607	warn	(1758) at script.js.KNX_Daten.Wasserzähler:5:1
      javascript.0	2021-01-23 23:19:06.606	warn	(1758) at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1354:20)
      javascript.0	2021-01-23 23:19:06.604	warn	(1758) You are assigning a string to the state "knx.0.Zigbee_IOBroker_Eingänge.Wasserzähler.Wasserzähler_Zählerstand" which expects a number. Please fix your code to use a number or change the state
      

      Versteht das jemand? beide Objekte haben doch State und Value ?

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

        @dditt sagte: You are assigning a string to the state "knx.0.Zigbee_IOBroker_Eingänge.Wasserzähler.Wasserzähler_Zählerstand"

        Konvertiere "nach Zahl".

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

          @paul53 hallo, danke dir für deinen Hinweis! Die Fehlermeldung ist weg, jedoch bleibt das Objekt in das ich schreiben möchte leer?

          b0b4b990-e72d-4005-a555-2083c0c6038c-image.png

          würdest du mir hier zu "aktualisiere" oder "steuere" raten? oder kann ich das so gar nicht machen?

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

            @dditt sagte:

            jedoch bleibt das Objekt in das ich schreiben möchte leer?

            Hat sich denn "Volume" bereits geändert ?

            D 1 Reply Last reply Reply Quote 0
            • Homoran
              Homoran Global Moderator Administrators @dittmar last edited by

              @dditt sagte in Nachkommastellen verschwunden?:

              würdest du mir hier zu "aktualisiere" oder "steuere" raten? oder kann ich das so gar nicht machen?

              wenn der Wert dazu von einem Adapter verarbeitet werden soll (hier knx, oder???) muss es "steuere" sein.

              Wenn aber in den Objekten gar nichts auftaucht ist das erst einmal sekundär.

              "Wert" ist aber schon der fertige Baustein aus den Trigger-Blöcken? und keine selbst erstellte Variable?

              sonst setze bitte mal einen debug-Baustein vor den aktualisiere/steuere Block und lasse dir "Wert" im debug anzeigen

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

                @paul53 ja, aber nur die Stellen nach dem Komma bzw. dem Punkt.

                1 Reply Last reply Reply Quote 0
                • D
                  dittmar @Homoran last edited by dittmar

                  @homoran richtig, den Wert von dem WM-Bus Objekt möchte ich auf den KNX Bus senden.

                  Habe den Baustein steuere jetzt eingebaut.

                  Der "Wert" ist aus dem Trigger Block -> Baustein "Objekt ID" umgestellt über DropDown auf Wert.

                  Mit dem Debug schaut es dann jetzt so aus:

                  e4ee9f2d-6128-4aa4-974f-934c36921875-image.png

                  In einer Stunde wissen wir mehr, der Wasserzähler sendet nur alle 60 Minuten den Wert....

                  EDIT, habe das Script mit dem Debug Block abgeändert... Denke so ist es eher richtig.

                  paul53 1 Reply Last reply Reply Quote 0
                  • D
                    dittmar last edited by

                    131.665	true		2021-01-24 17:08:40.611	
                    131.627	true		2021-01-24 16:49:37.798	
                    null	true		2021-01-24 16:49:37.798
                    

                    den letzten Wert von 17:08 Uhr hat er auch nicht geschrieben... das KNX Objekt das er beschreiben darf ist leer...

                    Homoran 1 Reply Last reply Reply Quote 0
                    • Homoran
                      Homoran Global Moderator Administrators @dittmar last edited by

                      @dditt sagte in Nachkommastellen verschwunden?:

                      131.665 true 2021-01-24 17:08:40.611 131.627 true 2021-01-24 16:49:37.798

                      dann liefert der Datenpunkt einen Bool.

                      Was ist das genau für ein Datenpunkt?

                      D 1 Reply Last reply Reply Quote 0
                      • D
                        dittmar @Homoran last edited by dittmar

                        @homoran welche Informationen genau benötigst du? die Zeilen oben kamen aus der History Instanz.

                        fe54c2cc-1bf0-44a9-a064-d8a888f43901-image.png

                        hier die RAW Informationen:

                        {
                          "from": "system.adapter.wmbus.0",
                          "user": "system.user.admin",
                          "ts": 1611490120573,
                          "common": {
                            "name": "Volume (Instantaneous value)",
                            "role": "value.volume",
                            "unit": "m³",
                            "read": true,
                            "write": false,
                            "custom": {
                              "history.0": {
                                "enabled": true,
                                "changesOnly": true,
                                "debounce": 0,
                                "maxLength": "10",
                                "retention": "31536000",
                                "changesRelogInterval": 0,
                                "changesMinDelta": 0,
                                "aliasId": ""
                              }
                            }
                          },
                          "native": {
                            "id": ".data.1-0-VIF_VOLUME",
                            "StorageNumber": 0,
                            "Tariff": 0
                          },
                          "acl": {
                            "object": 1636,
                            "owner": "system.user.admin",
                            "ownerGroup": "system.group.administrator",
                            "state": 1636
                          },
                          "_id": "wmbus.0.SEN-40015490.data.1-0-VIF_VOLUME",
                          "type": "state"
                        }
                        
                        Homoran paul53 2 Replies Last reply Reply Quote 0
                        • paul53
                          paul53 @dittmar last edited by

                          @dditt sagte: habe das Script mit dem Debug Block abgeändert

                          Poste mal den erzeugten Javascript-Code ohne die letzte Zeile in Code tags.

                          1 Reply Last reply Reply Quote 0
                          • Homoran
                            Homoran Global Moderator Administrators @dittmar last edited by Homoran

                            @dditt Sorry - Mein Fehler 😳

                            Der DP liefert ja einen Wert - melde mich

                            Dann ist das gepostete aber nicht der Output vom debug-Block - oder?

                            EDIT:

                            @dditt sagte in Nachkommastellen verschwunden?:

                            die Zeilen oben kamen aus der History Instanz.

                            Hab's jetzt auch gelesen.
                            Ich brauche aber den Output des debug-Blocks
                            müsste auch im allgemeinen Log zu finden sein

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

                              @dditt sagte:

                                "common": {
                                  "name": "Volume (Instantaneous value)",
                                  "role": "value.volume",
                                  "unit": "m³",
                                  "read": true,
                                  "write": false,
                                  "custom": {
                                    "history.0": {
                                      "enabled": true,
                                      "changesOnly": true,
                                      "debounce": 0,
                                      "maxLength": "10",
                                      "retention": "31536000",
                                      "changesRelogInterval": 0,
                                      "changesMinDelta": 0,
                                      "aliasId": ""
                                    }
                                  }
                                },
                              

                              Es fehlt common.type.

                                "common": {
                                  "type": "number",
                              
                              D 1 Reply Last reply Reply Quote 0
                              • D
                                dittmar @Homoran last edited by

                                @homoran nein, das ist aus dem History Adapter!

                                ich bekomme erst wieder einen Wert so in 10 Minuten ... wenn jemand Wasser verbraucht hat 🙄

                                Homoran 1 Reply Last reply Reply Quote 0
                                • Homoran
                                  Homoran Global Moderator Administrators @dittmar last edited by

                                  @dditt sagte in Nachkommastellen verschwunden?:

                                  nein, das ist aus dem History Adapter!

                                  das weiß ich ja jetzt 😄

                                  Nutzt nur nix

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

                                    @paul53 habe in den Eigenschaften des Objektes unter dem Reiter Allgemein mit dem "+" Symbol ein neues Attribut hinzugefügt "Type" -> und dieses Auf Zahl gestellt.

                                    {
                                      "from": "system.adapter.wmbus.0",
                                      "user": "system.user.admin",
                                      "ts": 1611490120573,
                                      "common": {
                                        "name": "Volume (Instantaneous value)",
                                        "role": "value.volume",
                                        "unit": "m³",
                                        "type": "number",
                                        "read": true,
                                        "write": false,
                                        "custom": {
                                          "history.0": {
                                            "enabled": true,
                                            "changesOnly": true,
                                            "debounce": 0,
                                            "maxLength": "10",
                                            "retention": "31536000",
                                            "changesRelogInterval": 0,
                                            "changesMinDelta": 0,
                                            "aliasId": ""
                                          }
                                        }
                                      },
                                      "native": {
                                        "id": ".data.1-0-VIF_VOLUME",
                                        "StorageNumber": 0,
                                        "Tariff": 0
                                      },
                                      "acl": {
                                        "object": 1636,
                                        "owner": "system.user.admin",
                                        "ownerGroup": "system.group.administrator",
                                        "state": 1636
                                      },
                                      "_id": "wmbus.0.SEN-40015490.data.1-0-VIF_VOLUME",
                                      "type": "state"
                                    }
                                    
                                    paul53 1 Reply Last reply Reply Quote 0
                                    • paul53
                                      paul53 @dittmar last edited by

                                      @dditt sagte: ein neues Attribut hinzugefügt "Type" -> und dieses Auf Zahl gestellt.

                                      Sieht so besser aus.

                                      Poste mal den vom Blockly erzeugten Javascript-Code ohne die letzte Zeile in Code tags.

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

                                        @paul53 said in Nachkommastellen verschwunden?:

                                        Code tags

                                        Es tut mir leid, ich wüsste im Moment nur den Block zu "exportieren", aber was genau soll ich weg lassen?

                                        so?

                                        <xml xmlns="http://www.w3.org/1999/xhtml">
                                          <block type="comment" id="9lLvRUT0G){Hm_rrxzla" x="112" y="162">
                                            <field name="COMMENT">Wasserzaehlerstand</field>
                                            <next>
                                              <block type="on_ext" id="`$=B12u[MI24`;:f(h,D">
                                                <mutation items="1"></mutation>
                                                <field name="CONDITION">ne</field>
                                                <field name="ACK_CONDITION"></field>
                                                <value name="OID0">
                                                  <shadow type="field_oid" id=")-LstACnP[G5;9Mu%VEK">
                                                    <field name="oid">wmbus.0.SEN-40015490.data.1-0-VIF_VOLUME</field>
                                                  </shadow>
                                                </value>
                                                <statement name="STATEMENT">
                                                  <block type="debug" id="L*|7D{]d[(=eGQ]8_t1T">
                                                    <field name="Severity">debug</field>
                                                    <value name="TEXT">
                                                      <shadow type="text" id="hEoKu:w%#!q8NRYtE(FI">
                                                        <field name="TEXT">test</field>
                                                      </shadow>
                                                      <block type="text_join" id="j[]h|PI6q;P+o94$cE|Q">
                                                        <mutation items="2"></mutation>
                                                        <value name="ADD0">
                                                          <block type="text" id="j)s}u(N`C)Q$p6rd6fo2">
                                                            <field name="TEXT">Wert:</field>
                                                          </block>
                                                        </value>
                                                        <value name="ADD1">
                                                          <block type="on_source" id="%lxe0A9xuxV5ctLylS$9">
                                                            <field name="ATTR">state.val</field>
                                                          </block>
                                                        </value>
                                                      </block>
                                                    </value>
                                                    <next>
                                                      <block type="control" id="/p8-0sydUN(KN3M^0k3t">
                                                        <mutation delay_input="false"></mutation>
                                                        <field name="OID">knx.0.Zigbee_IOBroker_Eingänge.Wasserzähler.Wasserzähler_Zählerstand</field>
                                                        <field name="WITH_DELAY">FALSE</field>
                                                        <value name="VALUE">
                                                          <block type="convert_tonumber" id="D/2qG!CF2.sIHZ$-z}f@">
                                                            <value name="VALUE">
                                                              <block type="on_source" id="@BQ_]?{,D]+0r_EjeXEe">
                                                                <field name="ATTR">state.val</field>
                                                              </block>
                                                            </value>
                                                          </block>
                                                        </value>
                                                      </block>
                                                    </next>
                                                  </block>
                                                </statement>
                                              </block>
                                            </next>
                                          </block>
                                        
                                        Homoran paul53 2 Replies Last reply Reply Quote 0
                                        • Homoran
                                          Homoran Global Moderator Administrators @dittmar last edited by

                                          @dditt sagte in Nachkommastellen verschwunden?:

                                          Es tut mir leid, ich wüsste im Moment nur den Block zu "exportieren", aber was genau soll ich weg lassen?

                                          oben Rechts kannst du die Ansicht von Blockly in den durch Blockly generierten javascript Code umschalten
                                          Diesen Code bitte hier in Code-tags posten!
                                          die letzte Zeile dieses Codes enthält die Informationen über die Blöcke, ist sehr lang und hier unnötig.
                                          Die sollst du weglassen

                                          1 Reply Last reply Reply Quote 1
                                          • paul53
                                            paul53 @dittmar last edited by

                                            @dditt sagt: ich wüsste im Moment nur den Block zu "exportieren"

                                            So wie @Homoran schrieb. Der Code ist korrekt und sollte funktionieren.

                                            // Wasserzaehlerstand
                                            on({id: 'wmbus.0.SEN-40015490.data.1-0-VIF_VOLUME', change: "ne"}, async function (obj) {
                                              var value = obj.state.val;
                                              var oldValue = obj.oldState.val;
                                              console.debug(('Wert:' + String((obj.state ? obj.state.val : ""))));
                                              setState("knx.0.Zigbee_IOBroker_Eingänge.Wasserzähler.Wasserzähler_Zählerstand", parseFloat((obj.state ? obj.state.val : "")));
                                            });
                                            
                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            901
                                            Online

                                            32.0k
                                            Users

                                            80.5k
                                            Topics

                                            1.3m
                                            Posts

                                            3
                                            43
                                            2040
                                            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