Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Datentyp eines Boolean Datenpunktes ist String?

    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

    Datentyp eines Boolean Datenpunktes ist String?

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

      Hallo,
      hab einen Datenpunkt vom Typ boolean angelegt:

      {
        "common": {
          "name": "TestBoolean",
          "desc": "Manuell erzeugt",
          "role": "state",
          "type": "boolean",
          "read": true,
          "write": true,
          "def": false
        },
        "type": "state",
        "native": {},
        "from": "system.adapter.admin.0",
        "user": "system.user.admin",
        "ts": 1747227630695,
        "_id": "0_userdata.0.Steuerzentrale.SettingsHaus.TestBoolean",
        "acl": {
          "object": 1636,
          "state": 1636,
          "owner": "system.user.admin",
          "ownerGroup": "system.group.administrator"
        }
      }
      

      Nach langem debuggen hab ich dann herausgefunden, dass getState des datentyps plötzlich String ergibt:

      console.log(typeof(getState('0_userdata.0.TestBoolean').val));
      

      Ausgabe:

      javascript.0	16:31:02.431	info	script.js.Eigene_Scripte.Run.Test: string?!
      

      Weiss jemand ob ich was falsch mache, oder wie man das richtig stellen kann? Liegt das Problem beim Datenpunkt oder bei getState()?

      M paul53 OliverIO 3 Replies Last reply Reply Quote 0
      • M
        MCU @iob69 last edited by

        @iob69 Da passt aber etwas nicht.
        Du zeigt die Objekt-Eigenschaften vom DP "0_userdata.0.Steuerzentrale.SettingsHaus.TestBoolean"

        Und die Ausgabe von einem anderen DP '0_userdata.0.TestBoolean'
        Um welchen DP geht es denn?

        I 1 Reply Last reply Reply Quote 1
        • paul53
          paul53 @iob69 last edited by paul53

          @iob69 sagte: Liegt das Problem beim Datenpunkt oder bei getState()?

          Weder ... noch. Du schreibst irgendwo einen String in den Datenpunkt. Es wird zwar gewarnt, dass der Typ nicht stimmt, aber es wird nicht verhindert.

          1 Reply Last reply Reply Quote 1
          • OliverIO
            OliverIO @iob69 last edited by OliverIO

            @iob69
            Was steht den genau im datenpunkt aktuell drin?

            Wenn der datenpunkt zuvor ein anderer Datentyp war und du den auf Boolean umstellt, führ iobroker keine automatische Konvertierung aus. Nur bei der Eingabe würd die Gültigkeit überprüft.

            Gültig ist auch nur true und false, beides klein geschrieben. Wobei bei der Eingabe in der Objektivität das eh über ein Schalter passiert, bei der man keinen Fehler machen kann.

            Ich glaube gelegentlich gibt es bei vis noch Probleme. Da muss man dann tatsächlich auf String prüfen. Kann aber sein, das das I. Neueren Versionen oder vis2 verbessert wurde.

            1 Reply Last reply Reply Quote 1
            • I
              iob69 @MCU last edited by

              @mcu
              Ich hab den Pfad in der Frage extra gekürzt, um die Frage einfacher zu gestalten, allerdings hat sich das jetzt als Boomerang erwiesen, sorry. Aber das ist der selbe DP.

              @paul53
              Ich schreibe selbst nichts rein, aber das hat mich auf das Problem gebracht:
              Ich hab den Datenpunkt dem Widget Radiobuttons Valuelist angegeben. Und dort kann man für die entsprechenden Werte was angeben, und das ist ja offensichtlich ein String. Da hab ich beim eintragen nicht daran gedacht und dort:
              548b3ef8-0b65-4ba8-a050-11db01540250-grafik.png
              eingegeben.
              Da kommt für mich die Frage auf: Könnte man das dort gleich als Boolean casten? Wahrscheinlich nicht.
              Das Problem war ja schon, mit dem normalen Radio-Button, welches 1 oder 0 in den Datenpunkt schreibt. Für ein oder aus wäre aber boolean das korrekte und nicht 0 oder 1 oder 3...
              Aber ich sehe jetzt wo der Fehler liegt. Danke

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

                @iob69 sagte: Widget Radiobuttons Valuelist

                Der ordnet Zahlenwerten Texte zu. Es gibt doch auch einen Radiobutton für boolesche Werte (Radiobuttons On/Off)?

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

                  @paul53
                  Ja, aber wie ich geschrieben hab, ordnet der wahr/falsch eben 1/0 zu und nicht true/false.

                  Bin gerade am überlegen, ob ich auf vis2 oder webui wechsle. Die Controls in vis fühlen sich ziemlich gebastelt an und sind nicht standardisiert. (jqui-widgets haben alle andere Grössen und Stile, mal kann man jQuery style rausnehmen, mal nicht usw).
                  Aber ich weiss nicht wie aufwendig es ist, meine rund 30 Seiten auf ein anderes gui umzustellen....

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

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  540
                  Online

                  31.8k
                  Users

                  80.0k
                  Topics

                  1.3m
                  Posts

                  4
                  7
                  255
                  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