Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. setState String vs. Number

NEWS

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    314

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    9
    1
    290

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    922

setState String vs. Number

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
10 Beiträge 3 Kommentatoren 1.9k Aufrufe 2 Beobachtet
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • mrFenyxM Offline
    mrFenyxM Offline
    mrFenyx
    schrieb am zuletzt editiert von
    #1

    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_666A 1 Antwort Letzte Antwort
    0
    • mrFenyxM mrFenyx

      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_666A Offline
      amg_666A Offline
      amg_666
      schrieb am zuletzt editiert von
      #2

      @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);
      

      iobroker auf proxmox container

      mrFenyxM 1 Antwort Letzte Antwort
      0
      • amg_666A amg_666

        @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);
        
        mrFenyxM Offline
        mrFenyxM Offline
        mrFenyx
        schrieb am zuletzt editiert von mrFenyx
        #3

        @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_666A paul53P 2 Antworten Letzte Antwort
        0
        • mrFenyxM 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_666A Offline
          amg_666A Offline
          amg_666
          schrieb am zuletzt editiert von
          #4

          @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?

          iobroker auf proxmox container

          mrFenyxM 1 Antwort Letzte Antwort
          0
          • amg_666A amg_666

            @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?

            mrFenyxM Offline
            mrFenyxM Offline
            mrFenyx
            schrieb am zuletzt editiert von
            #5

            @amg_666 steht im ersten Post:

            "type": "number"
            
            amg_666A 1 Antwort Letzte Antwort
            0
            • mrFenyxM mrFenyx

              @amg_666 steht im ersten Post:

              "type": "number"
              
              amg_666A Offline
              amg_666A Offline
              amg_666
              schrieb am zuletzt editiert von
              #6

              @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" :-)

              iobroker auf proxmox container

              1 Antwort Letzte Antwort
              0
              • mrFenyxM 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?

                paul53P Offline
                paul53P Offline
                paul53
                schrieb am zuletzt editiert von
                #7

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

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

                Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                mrFenyxM 1 Antwort Letzte Antwort
                0
                • paul53P paul53

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

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

                  mrFenyxM Offline
                  mrFenyxM Offline
                  mrFenyx
                  schrieb am zuletzt editiert von
                  #8

                  @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

                  paul53P 1 Antwort Letzte Antwort
                  0
                  • mrFenyxM mrFenyx

                    @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

                    paul53P Offline
                    paul53P Offline
                    paul53
                    schrieb am zuletzt editiert von
                    #9

                    @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.

                    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                    mrFenyxM 1 Antwort Letzte Antwort
                    0
                    • paul53P paul53

                      @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.

                      mrFenyxM Offline
                      mrFenyxM Offline
                      mrFenyx
                      schrieb am zuletzt editiert von
                      #10

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

                      1 Antwort Letzte Antwort
                      0

                      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
                      Antworten
                      • In einem neuen Thema antworten
                      Anmelden zum Antworten
                      • Älteste zuerst
                      • Neuste zuerst
                      • Meiste Stimmen


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      455

                      Online

                      32.8k

                      Benutzer

                      82.8k

                      Themen

                      1.3m

                      Beiträge
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Anmelden

                      • Du hast noch kein Konto? Registrieren

                      • Anmelden oder registrieren, um zu suchen
                      • Erster Beitrag
                        Letzter Beitrag
                      0
                      • Home
                      • Aktuell
                      • Tags
                      • Ungelesen 0
                      • Kategorien
                      • Unreplied
                      • Beliebt
                      • GitHub
                      • Docu
                      • Hilfe