Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • 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. JavaScript
  5. [gelöst] DP Type überprüfen und ggf. ändern

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.9k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    911

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

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

Geplant Angeheftet Gesperrt Verschoben JavaScript
8 Beiträge 3 Kommentatoren 376 Aufrufe 2 Watching
  • Ä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.
  • metaxaM Offline
    metaxaM Offline
    metaxa
    schrieb am zuletzt editiert von metaxa
    #1

    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

    paul53P 1 Antwort Letzte Antwort
    0
    • metaxaM 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

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

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

      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

      metaxaM 1 Antwort Letzte Antwort
      1
      • paul53P 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);
           }
        });
        
        metaxaM Offline
        metaxaM Offline
        metaxa
        schrieb am zuletzt editiert von metaxa
        #3

        @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

        paul53P 1 Antwort Letzte Antwort
        0
        • metaxaM 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

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

          @metaxa sagte:

          danach "integer".

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

          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

          metaxaM 1 Antwort Letzte Antwort
          0
          • OliverIOO Offline
            OliverIOO Offline
            OliverIO
            schrieb am zuletzt editiert von
            #5

            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.

            Meine Adapter und Widgets
            TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
            Links im Profil

            metaxaM 1 Antwort Letzte Antwort
            1
            • paul53P paul53

              @metaxa sagte:

              danach "integer".

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

              metaxaM Offline
              metaxaM Offline
              metaxa
              schrieb am zuletzt editiert von
              #6

              @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 Antwort Letzte Antwort
              0
              • OliverIOO OliverIO

                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.

                metaxaM Offline
                metaxaM Offline
                metaxa
                schrieb am zuletzt editiert von
                #7

                @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 Antwort Letzte Antwort
                0
                • metaxaM Offline
                  metaxaM Offline
                  metaxa
                  schrieb am zuletzt editiert von
                  #8

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


                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  722

                  Online

                  32.6k

                  Benutzer

                  82.2k

                  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