Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. setState String vs. Number

    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

    setState String vs. Number

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

      Ich habe ein script dass mit setState einem DP ein Wert gibt:

      var delayDP = "0_userdata.0.piHole.timer";
      var deactDP = "pi-hole.0.deactPiHoleTime";
      var delay = getState(delayDP).val;
      setState(deactDP, delay);
      

      Die Definition vom delayDP sieht so aus:

      {
        "_id": "0_userdata.0.piHole.timer",
        "type": "state",
        "common": {
          "name": "piHole.timer",
          "role": "",
          "type": "number",
          "desc": "Manually created",
          "min": 0,
          "def": 0,
          "read": true,
          "write": true
        }
      

      Meine Frage ist wieso ich diese Meldung im Log bekomme:

      javascript.0
      2021-05-24 21:19:46.114	warn	You are assigning a string to the state "pi-hole.0.deactPiHoleTime" which expects a number. Please fix your code to use a number or change the state type to string. This warning might become an error in future versions.
      

      Danke für eure Tipps!

      amg_666 1 Reply Last reply Reply Quote 0
      • amg_666
        amg_666 @mrFenyx last edited by

        @mrfenyx sagte in setState String vs. Number:

        var delay = getState(delayDP).val;

        was passiert denn wenn du den Wert von der getstate Anweisung nochmal nach Typ "number" konvertierst?

        var delay = number(getState(delayDP).val);
        
        mrFenyx 1 Reply Last reply Reply Quote 0
        • mrFenyx
          mrFenyx @amg_666 last edited by mrFenyx

          @amg_666 ja, das geht, muss man aber Number() benutzen 😉 genau so auch mit parseInt(). Die Frage wäre nun, konvertiert getState() eine "number" zu "string" oder wieso kommt der Fehler ohne es "manuell" zu konvertieren?

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

            @mrfenyx Wenn du in der Adminoberfl#che auf Objekte gehst und da dann auf den Datenpunkt, was sagt er dir denn da was das f+r ein Typ ist?

            mrFenyx 1 Reply Last reply Reply Quote 0
            • mrFenyx
              mrFenyx @amg_666 last edited by

              @amg_666 steht im ersten Post:

              "type": "number"
              
              amg_666 1 Reply Last reply Reply Quote 0
              • amg_666
                amg_666 @mrFenyx last edited by

                @mrfenyx Dann bin ich mit meinem Latein am Ende. Ich habe ein Skript in dem ich diverse Stromverbräuche addiere. Die "Summe" habe ich angelegt mit

                var idStromverbraucher_Summe = 'StromverbraucherSumme';
                var Summe;
                createState(idStromverbraucher_Summe, Summe, {type: 'number', name: 'Stromverbrauch', unit: 'W', role: 'value'});
                

                das funktioniert tadellos und ohne Fehlermeldungen, wenn ich da andere Werte vom Typ Number draufaddiere bzw zuweise. Vielleicht mal den Datenpunkt löschen und neu anlegen? Wäre aber eher die Kategorie "letzte verzweifelte Versuche" 🙂

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

                  @mrfenyx sagte: konvertiert getState() eine "number" zu "string"

                  Nein. Der Wert wird als "string" in den Datenpunkt geschrieben (durch ein Script?).

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

                    @paul53 hmm, der Wert wird in Vis durch ein "jqui-input" Widget eingegeben. In den Settings vom Widget ist "as string" nicht ausgewählt:
                    b6912aa5-908a-481b-8c78-7dfb3eb36d36-image.png

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

                      @mrfenyx sagte: der Wert wird in Vis durch ein "jqui-input" Widget eingegeben. In den Settings vom Widget ist "as string" nicht ausgewählt

                      Gerade getestet: Es wird bei der Eingabe trotzdem ein String geschrieben, auch wenn vorher eine Zahl enthalten war.

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

                        @paul53 yeah, I thought so. Created a new issue for vis: https://github.com/ioBroker/ioBroker.vis/issues/372

                        mrfenyx created this issue in ioBroker/ioBroker.vis

                        closed Widget "jqui-input" saves numbers as strings #372

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

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        752
                        Online

                        31.8k
                        Users

                        80.0k
                        Topics

                        1.3m
                        Posts

                        3
                        10
                        1472
                        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