Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. [gelöst] DP Type überprüfen und ggf. ändern

    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

    [gelöst] DP Type überprüfen und ggf. ändern

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

      Hallo liebe Leute!

      Ich vewende den MPD-Adapter (ich weiss, oldscool in Zeiten von Sonos & Al"f"exa). Dieser Adapter beinhaltet auch einen DP "mpd.0.playid". Dieser ist aber leider als "boolean" oder warum auch immer später als "integer" falsch definiert, denn mpd/mpc erwartet "number". Trotz issues auf GitHub, tut sich nichts in Richtung Korrektur seitens des Entwicklers. Um Logeinträge wie

      	(1593) You are assigning a number to the state "mpd.0.playid" which expects a integer. Please fix your code to use a integer or change the state type to number. This warning might become an error in 
      

      abzuschalten, ändere ich manell immer den type auf "number", dann ist bis zum nächsten Neustart Ruhe.

      Kann mir bitte irgendjemand ein Script zur Verfügung stellen, das den Datenpunkt "mpd.0.playid" auf type prüft und ggf. auf "number" ändert? Trigger bei Änderung des Datentypes?

      {
        "from": "system.host.raspy-bad-radio.cli",
        "ts": 1572268026416,
        "user": "system.user.admin",
        "common": {
          "name": "Controlling playback playid",
          "role": "media.playid",
          "type": "boolean",
          "read": true,
          "write": true,
          "def": false
        },
        "native": {},
        "acl": {
          "object": 1636,
          "owner": "system.user.admin",
          "ownerGroup": "system.group.administrator",
          "state": 1636
        },
        "_id": "mpd.0.playid",
        "type": "state"
      }
      

      LG und großes Danke, mxa

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

        @metaxa sagte:

        Trigger bei Änderung des Datentypes?

        Auf den statischen Teil eines Datenpunktes kann nicht getriggert werden. Bei Instanzstart könnte ausgeführt werden:

        const idPlay = 'mpd.0.playid';
        const idInst = 'system.adapter.mpd.0.alive';
        
        on(idInst, function(dp) {
           if(dp,state.val) {
              setTimeout(function() {
                 var obj = getObject(idPlay);
                 if(obj.common.type != 'number') {
                    obj.common.type = 'number';
                    setObject(idPlay, obj);
                 }
              }, 1000);
           }
        });
        
        metaxa 1 Reply Last reply Reply Quote 1
        • metaxa
          metaxa @paul53 last edited by metaxa

          @paul53 sagte in DP Type überprüfen und ggf. ändern:

          Bei Instanzstart könnte ausgeführt werden

          Lieben Dank für die rasche Unterstützung!
          Ich bilde mir ein, dass sich der Typ auch im laufenden Adapter ändert. Gerade heute wo ich meine Anfrage oben formulierte, war vorerst "boolean" und danach "integer". Jetzt schaue ich gerade nach, ist es wieder "boolean". Somit gehe ich davon aus, dass irgendwas zwischendurch immer wieder den DP ändert, könnte auch mein Blockly sein?

          Jetzt ist es aktuell wieder integer:

          {
            "from": "system.host.raspy-bad-radio.cli",
            "ts": 1572268026416,
            "user": "system.user.admin",
            "common": {
              "name": "Controlling playback playid",
              "role": "media.playid",
              "type": "integer",
              "read": true,
              "write": true,
              "def": false
            },
            "native": {},
            "acl": {
              "object": 1636,
              "owner": "system.user.admin",
              "ownerGroup": "system.group.administrator",
              "state": 1636
            },
            "_id": "mpd.0.playid",
            "type": "state"
          }
          

          2cf2585d-1946-47e8-85bb-4e28d9b28c49-grafik.png
          Ich versuche jetzt mal, deinen Code als Functionblock VOR mein Blockly zu kriegen.

          LG, mxa

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

            @metaxa sagte:

            danach "integer".

            "integer" ist unzulässig. Richtig: "number".

            metaxa 1 Reply Last reply Reply Quote 0
            • OliverIO
              OliverIO last edited by

              wenn du dich auskennst, könntest du auf github den adapter forken,
              in deinem repository anpassen und dann den angepassten adapter aus deinem github repo installieren.

              metaxa 1 Reply Last reply Reply Quote 1
              • metaxa
                metaxa @paul53 last edited by

                @paul53 "number" ist mir als Ziel klar, irgend etwas ändert den datenpunkt von sich aus zwischen boolean und integer. Hat noch nix mit deinem Code zu tun 🙂

                1 Reply Last reply Reply Quote 0
                • metaxa
                  metaxa @OliverIO last edited by

                  @OliverIO sagte in DP Type überprüfen und ggf. ändern:

                  wenn du dich auskennst,

                  davon bin ich Lichtjahre entfernt.

                  Klingt aber sehr interessant, schlagartig ist mir jetzt auch das "forken" verständlich. Die Sache ist mir aber etliche Schuhnummen zu groß.

                  Lieben Dank!

                  1 Reply Last reply Reply Quote 0
                  • metaxa
                    metaxa last edited by

                    @paul53 Nochmals lieben Dank, hab deinen Code meinen Bedürfnissen etwas angepaßt, es funktionert prächtig! Ich prüfe nun vor jedem Schreibvorgang den Typ des Feldes und ändere ihn ggf.
                    mxa

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

                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    509
                    Online

                    31.8k
                    Users

                    80.0k
                    Topics

                    1.3m
                    Posts

                    3
                    8
                    303
                    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