Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Datentyp (Array, String, Number) wirrwarr

    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 (Array, String, Number) wirrwarr

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

      Hallo zusammen

      Hoffentlich kann mir da jemand auf die Sprünge helfen.
      Ich möchtte Meine Rollläden, welche mit einem Shelly gekoppelt sind, auch per Alexa Sprachsteuerung bedienen können.

      Shelly kommuniziert bei mir per MQTT, was soweit auch zuverlässig läuft.
      Ebenfalls konnte ich einen eigen dafür erstellten Datenpunkt als Smart-Gerät anlegen und der Rollladen lässt sich durch ein simples Blockly Script, welches den Datenpunkt an MQTT weiterleitet auch per Alexa steuern. Funktionalität ist daher kein Problem, aber die Logs geben mir hier Fehler aus, welche ich sehr gerne beseitigen möchte.

      You are assigning a number to the state "javascript.0.Fenster.Rollladen-oben" which expects a string. Please fix your code to use a string or change the state type to number.

      Ich habe nun im Blockly Script ebenfalls ausgewählt, dass der Inhalt des Datenpunktes in einen String umgewandelt werden soll, aber der Fehler bleibt bestehen.
      Screenshot_1.png

      Hier noch die Infos zum erstellten Datenpunkt "Rollladen-oben":
      Screenshot_2.png

      AlCalzone 1 Reply Last reply Reply Quote 0
      • AlCalzone
        AlCalzone Developer @wizzardking last edited by

        @wizzardking Das Problem kommt nicht von dem Code-Schnipsel. Es tritt auf, wenn du in den Datenpunkt "javascript.0.Fenster.Rollladen-oben" schreibst.

        Laut deiner Definition (Zeile 7) hat das Objekt einen type: "string" - anhand der übrigen Eigenschaften wie min/max, müsste der aber type: "number" haben.

        Ändere diese Zeile und die Meldung geht weg. Steht ja auch so da 😉

        1 Reply Last reply Reply Quote 0
        • W
          wizzardking last edited by wizzardking

          @AlCalzone
          Vielen Dank für Deine Antwort.
          Wer lesen kann, ist klar im Vorteil. aber...

          Es gab mehrere Fehlermeldungen, was zu meiner Verwirrung geführt hatte, da MQTT einen String erwartet hatte und ich den anderen Rollladen auch zu Number umgeändert hatte. Dies wurde aber mit dem "konvertieren nach" gelöst.

          beim anderen Rollladen erhalte ich nun aber die genau gegenteilige Meldung:
          You are assigning a string to the state "javascript.0.Fenster.Rollladen-unten" which expects a number. Please fix your code to use a number or change the state type to string

          Gibt es da irgend eine Logik oder Setup, wann Smart Geräte im ioBroker wie gesteuert werden (Number, String)?

          Edit:
          Es gibt nun tatsächlich keinen Fehler mehr aus, wenn ich den einen Rollladen als String und den Anderen als Number festlege. Würde aber wirklich gerne verstehen wieso, da ich keinen Unterschied zwischen den Beiden feststelle und diese auch auf die gleiche Weise angelegt wurden.

          {
          "_id": "javascript.0.Fenster.Rollladen-oben",
          "type": "state",
          "common": {
          "name": "Rollladen-oben",
          "role": "level",
          "type": "number",
          "read": true,
          "write": true,
          "desc": "Manuell erzeugt",
          "min": 0,
          "max": 100,
          "def": 0,
          "unit": "%",
          "smartName": {
          "de": "Rollladen oben, Storen oben"
          }
          },
          "native": {},
          "from": "system.adapter.admin.0",
          "ts": 1557537495833,
          "acl": {
          "object": 1638,
          "state": 1638
          }
          }

          {
          "_id": "javascript.0.Fenster.Rollladen-unten",
          "type": "state",
          "common": {
          "name": "Rollladen-unten",
          "role": "level",
          "type": "string",
          "read": true,
          "write": true,
          "desc": "Manuell erzeugt",
          "min": 0,
          "max": 100,
          "def": 0,
          "unit": "%",
          "smartName": {
          "de": "Rollladen unten, Storen unten"
          }
          },
          "native": {},
          "from": "system.adapter.admin.0",
          "ts": 1557536751223,
          "acl": {
          "object": 1638,
          "state": 1638
          }

          AlCalzone 1 Reply Last reply Reply Quote 0
          • AlCalzone
            AlCalzone Developer @wizzardking last edited by AlCalzone

            @wizzardking sagte in Datentyp (Array, String, Number) wirrwarr:

            You are assigning a string to the state "javascript.0.Fenster.Rollladen-unten" which expects a number. Please fix your code to use a number or change the state type to string

            Dazu müsste ich den Code sehen. Woher kommt der State? Liefert MQTT ggf. einen String? Dann musst du den im Code/Blockly vorm Schreiben in eine Zahl umwandeln.

            Gibt es da irgend eine Logik oder Setup, wann Smart Geräte im ioBroker wie gesteuert werden (Number, String)?

            Grundsätzlich sollte alles, was einen Zahlenwert annehmen kann, als number definiert sein. An/Aus als boolean. Texte als string.
            Ob das jeder Adapter richtig macht oder machen kann steht auf einem anderen Blatt.

            1 Reply Last reply Reply Quote 0
            • W
              wizzardking last edited by

              @AlCalzone
              Um dieses Objekt zu steuern verwende ich gar keinen Code. Das Objekt wird direkt über Alexa per iot Smartobjekt gesteuert.

              Ich habe dieses Objekt nun aber gelöscht und nochmals das 100% gleiche Objekt neu angelegt. Dadurch wurde das Problem beseitigt und iot überträgt die Information von Alexa nun auch als Zahl. Klappt also nun alles.

              Danke für Deinen Support!

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

              Support us

              ioBroker
              Community Adapters
              Donate

              774
              Online

              31.8k
              Users

              79.9k
              Topics

              1.3m
              Posts

              javascript
              2
              5
              3218
              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