Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. HomeGuy

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    H
    • Profile
    • Following 0
    • Followers 0
    • Topics 1
    • Posts 3
    • Best 0
    • Groups 1

    HomeGuy

    @HomeGuy

    Starter

    0
    Reputation
    7
    Profile views
    3
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    HomeGuy Follow
    Starter

    Latest posts made by HomeGuy

    • RE: Typ falsch, bzw. number wird als string erwartet (alias)

      @paul53
      Es sieht zumindest so aus, als wäre nicht klar, was es sein soll. Nach Anlage steht "" in min und max. Nach Schreiben ist es null. Wenn ich Werte eintrage, also eine Ansage mache, was es denn sein soll, passt es.
      Ich danke euch.

      posted in Skripten / Logik
      H
      HomeGuy
    • RE: Typ falsch, bzw. number wird als string erwartet (alias)

      @mickym
      OK, Danke. Merke ich mir fürs nächste Mal.
      Aber warum funktioniert es denn jetzt, wo ich an der Definition selbst ja eigentlich nichts geändert habe und weiterhin number schreibe?

      posted in Skripten / Logik
      H
      HomeGuy
    • Typ falsch, bzw. number wird als string erwartet (alias)

      Re: Fehlermeldung "Wrong type of…: "string"

      Hallo,

      bevor ich meine Frage stelle, eine kurze Vorstellung. Ich habe iobroker seit ein, zwei Jahren auf einem pi laufen und da auch schon diverse Dinge umgesetzt. Ich kann ein wenig JS, nutze Node-Red und habe noch Jarvis und VIS als Projekte auf dem Plan. Angesteuert werden im Moment zigbee-Geräte und noch ein paar Max-Thermostate.

      Nun zu meiner Frage:
      Die Max-Thermostate haben einen state 'mode':

      {
        "_id": "maxcul.0.PEQXXXXXXX.mode",
        "common": {
          "name": "Thermostat PEQXXXXXXX mode",
          "type": "number",
          "role": "level.mode",
          "read": true,
          "write": true,
          "states": {
            "0": "auto weekly",
            "1": "manual",
            "2": "vacation",
            "3": "boost",
            "4": "manual eco",
            "5": "manual comfort",
            "6": "manual window"
          }
        },
        "type": "state",
        "native": {
          "src": "1bXXXX",
          "type": 1,
          "raw": "1001AXXXXXXXXXXXXXXXXXXX",
          "rssi": -53.5,
          "serial": "PEQXXXXXXX"
        },
        "from": "system.adapter.maxcul.0",
        "user": "system.user.admin",
        "ts": 163XXXXXXXXXX,
        "acl": {
          "object": 1636,
          "state": 1636,
          "owner": "system.user.admin",
          "ownerGroup": "system.group.administrator"
        }
      }
      

      Ich habe einen Alias eingerichtet, dessen Definition so aussieht:

      {
        "common": {
          "alias": {
            "id": "maxcul.0.PEQXXXXXXX.mode",
            "read": "",
            "write": ""
          },
          "name": "mode",
          "role": "level.mode",
          "type": "number",
          "unit": "",
          "min": "",
          "max": "",
          "read": true,
          "write": true,
          "states": {
            "0": "auto weekly",
            "1": "manual",
            "2": "vacation",
            "3": "boost",
            "4": "manual eco",
            "5": "manual comfort",
            "6": "manual window"
          }
        },
        "native": {},
        "type": "state",
        "from": "system.adapter.admin.0",
        "user": "system.user.admin",
        "ts": 16504XXXXXXXXXX,
        "_id": "alias.0.AZ.Thermostat.mode",
        "acl": {
          "object": 1636,
          "state": 1636,
          "owner": "system.user.admin",
          "ownerGroup": "system.group.administrator"
        }
      }
      

      Beim Schreiben von mode passiert aber nichts. Der vorige Wert bleibt.

      setState('alias.0.AZ.Thermostat.mode', 1);
      

      Wenn ich den Wert als string übergebe ('1'), wird der Wert gesetzt. Dann meckert javascript aber, weil der Typ falsch ist.
      Anders sieht es aus, wenn ich nicht den Alias nutze:

      setState('maxcul.0.PEQXXXXXXX.mode', 1);
      

      Dann wird der Wert richtig gesetzt.

      Ein typeof liefert für 'maxcul.0.PEQXXXXXXX.mode' number zurück. Bei 'alias.0.AZ.Thermostat.mode' ist es string, wenn vorher versucht wurde, hierüber eine 1 zu setzen. Wird nur über 'maxcul' der Wert gesetzt und typeof für beide States ausgelesen, bleibt es bei number. Es scheint so, dass das Setzen des Wertes über den Alias irgendwas verbiegt.

      Ich habe gerade ein wenig rumgespielt und im Alias in der Objektdefinition die Werte Min und Max gelöscht. Danach bleibt es bei number, egal über welchen Weg ich die Werte schreibe. Es funktioniert also nun und mein Problem hat sich erledigt.

      Es bleibt natürlich die grundlegende Frage: Ist im Alias irgendwo ein Fehler versteckt?

      Bei meiner Philips Hue hatte ich das Problem übrigens auch, wenn ich den State colortemp setzen wollte. Hier hat ein Editieren von "Min" geholfen.
      Viellicht ist ja jemand anwesend, der mich etwas erleuchten kann.

      Schonmal vielen Dank.

      posted in Skripten / Logik
      H
      HomeGuy
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo