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

  1. ioBroker Community Home
  2. Deutsch
  3. Hardware
  4. SONOFF NSPanel mit Lovelace UI

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.3k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.0k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.4k

SONOFF NSPanel mit Lovelace UI

Geplant Angeheftet Gesperrt Verschoben Hardware
lovelace uinspanelsonoff
7.8k Beiträge 272 Kommentatoren 6.7m Aufrufe 254 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.
  • E Elluminatus

    @armilar Hier noch der Link zum Adapter: Hier und hier

    Und noch generell die Frage, kann man eigebtlich überall bei den Karten wo man Eingaben machen muss, auch diese Touch Kreise nutzen bspw. beim Thermostat für die Eingabe der Gradzahl oder eben hier bei der Eingabe der Lautstärke?

    ArmilarA Offline
    ArmilarA Offline
    Armilar
    Most Active Forum Testing
    schrieb am zuletzt editiert von Armilar
    #156

    @elluminatus sagte in SONOFF NSPanel mit Lovelace UI:

    @armilar Hier noch der Link zum Adapter: Hier und hier

    Versuche das mal auszuführen als JS-Script:

    const aliasPath = 'alias.0.NSPanel_1.Media';  // ggfs. Anpassen
    const aliasDevice = 'SqueezeBoxRPC';       // ggfs. Anpassen
    //Ergibt alias.0.NSPanel_1.Media.SqueezeBoxRPC
    
    const squeezeBoxInstanz = 'squeezeboxrpc.0.Players.'; // Anpasssen, wenn nicht Instanz 0
    const squeezeBoxDevice = 'piCoreKUE'; // Anpassen an dein eigenes Device
    
    var typeAlias, read, write, nameAlias, role, desc, min, max, unit, states, custom;
    
    function createAlias(idDst, idName,idSrc, idRd, idType, idRole, idAliasType) {
      if(existsState(idDst)) log(idDst + ' schon vorhanden !', 'warn');
      else {
         var obj = {};
         obj.type = idType;
         obj.common = getObject(idSrc).common;
         obj.common.alias = {};
         if(idRd) {
             obj.common.alias.id = {};
             obj.common.alias.id.read = idRd;
             obj.common.alias.id.write = idSrc;
             obj.common.read = true;
         } else obj.common.alias.id = idSrc;
         obj.common.type = idAliasType;
         if(obj.common.read !== false && read) obj.common.alias.read = read;
         if(obj.common.write !== false && write) obj.common.alias.write = write;
         obj.common.name = idName;
         obj.common.role = idRole;
         obj.common.desc = idDst;
         if(min !== undefined) obj.common.min = min;
         if(max !== undefined) obj.common.max = max;
         if(unit) obj.common.unit = unit;
         obj.common.states = states;
         if(custom && obj.common.custom) obj.common.custom = custom;
         obj.native = {};
         setObject(idDst, obj);
      } 
    }
    
    createAlias(aliasPath + '.' + aliasDevice, '', squeezeBoxInstanz + squeezeBoxDevice, '', 'channel', 'media', 'string');
    createAlias(aliasPath + '.' + aliasDevice + '.ALBUM', 'ALBUM',  squeezeBoxInstanz + squeezeBoxDevice + '.Album', '', 'state', 'media.album', 'string');
    createAlias(aliasPath + '.' + aliasDevice + '.ARTIST', 'ARTIST', squeezeBoxInstanz + squeezeBoxDevice + '.Artist', '', 'state', 'media.artist', 'string');
    createAlias(aliasPath + '.' + aliasDevice + '.TITLE', 'TITLE', squeezeBoxInstanz + squeezeBoxDevice + '.Title', '', 'state', 'media.title', 'string');
    createAlias(aliasPath + '.' + aliasDevice + '.NEXT', 'NEXT', squeezeBoxInstanz + squeezeBoxDevice + '.btnForward', '', 'state', 'button.next', 'boolean');
    createAlias(aliasPath + '.' + aliasDevice + '.PREV', 'PREV', squeezeBoxInstanz + squeezeBoxDevice + '.btnRewind', '', 'state', 'button.prev', 'boolean');
    createAlias(aliasPath + '.' + aliasDevice + '.PLAY', 'PLAY', squeezeBoxInstanz + squeezeBoxDevice + '.state', '', 'state', 'button.play', 'number');
    createAlias(aliasPath + '.' + aliasDevice + '.PAUSE', 'PAUSE', squeezeBoxInstanz + squeezeBoxDevice + '.state', '', 'state', 'button.pause', 'number');
    createAlias(aliasPath + '.' + aliasDevice + '.STOP', 'STOP', squeezeBoxInstanz + squeezeBoxDevice + '.state', '', 'state', 'button.stop', 'number');
    createAlias(aliasPath + '.' + aliasDevice + '.STATE', 'STATE', squeezeBoxInstanz + squeezeBoxDevice + '.POWER', '', 'state', 'media.state', 'boolean');
    createAlias(aliasPath + '.' + aliasDevice + '.VOLUME', 'VOLUME', squeezeBoxInstanz + squeezeBoxDevice + '.Volume', '', 'state', 'level.volume', 'number');
    createAlias(aliasPath + '.' + aliasDevice + '.VOLUME_ACTUAL', 'VOLUME_ACTUAL', squeezeBoxInstanz + squeezeBoxDevice + '.Volume', '', 'state', 'value.volume', 'number');
    

    Wenn sich der Anlegen lässt sollte eigentlich schon etwas funktionieren. Nur an Play, Pause und Stop müssen wir dann noch arbeiten, weil die alle in einem Datenpunkt "state" enthalten sind. Habe ich so auch noch nicht gesehen...

    Da sollten anschließend noch Funktionen rein die entsprechend "0, 1, 2" in "true" und "false" umwandeln.

    Edit: Bin dann für heute auch erstmal Offline... Kannst ja noch kurz sagen/zeigen ob etwas funktioniert.

    Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
    https://github.com/joBr99/nspanel-lovelace-ui/wiki

    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

    E 1 Antwort Letzte Antwort
    0
    • E Elluminatus

      @armilar Hier noch der Link zum Adapter: Hier und hier

      Und noch generell die Frage, kann man eigebtlich überall bei den Karten wo man Eingaben machen muss, auch diese Touch Kreise nutzen bspw. beim Thermostat für die Eingabe der Gradzahl oder eben hier bei der Eingabe der Lautstärke?

      ArmilarA Offline
      ArmilarA Offline
      Armilar
      Most Active Forum Testing
      schrieb am zuletzt editiert von Armilar
      #157

      @elluminatus sagte in SONOFF NSPanel mit Lovelace UI:

      @armilar Hier noch der Link zum Adapter: Hier und hier

      Und noch generell die Frage, kann man eigebtlich überall bei den Karten wo man Eingaben machen muss, auch diese Touch Kreise nutzen bspw. beim Thermostat für die Eingabe der Gradzahl oder eben hier bei der Eingabe der Lautstärke?

      Nein, das sieht die HMI von @joBr99 nicht vor. Das ist das Design im Nextion-Editor. Nur wie in den Beispielen abgebildet.

      Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
      https://github.com/joBr99/nspanel-lovelace-ui/wiki

      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

      E 1 Antwort Letzte Antwort
      0
      • ArmilarA Armilar

        @elluminatus sagte in SONOFF NSPanel mit Lovelace UI:

        @armilar Hier noch der Link zum Adapter: Hier und hier

        Versuche das mal auszuführen als JS-Script:

        const aliasPath = 'alias.0.NSPanel_1.Media';  // ggfs. Anpassen
        const aliasDevice = 'SqueezeBoxRPC';       // ggfs. Anpassen
        //Ergibt alias.0.NSPanel_1.Media.SqueezeBoxRPC
        
        const squeezeBoxInstanz = 'squeezeboxrpc.0.Players.'; // Anpasssen, wenn nicht Instanz 0
        const squeezeBoxDevice = 'piCoreKUE'; // Anpassen an dein eigenes Device
        
        var typeAlias, read, write, nameAlias, role, desc, min, max, unit, states, custom;
        
        function createAlias(idDst, idName,idSrc, idRd, idType, idRole, idAliasType) {
          if(existsState(idDst)) log(idDst + ' schon vorhanden !', 'warn');
          else {
             var obj = {};
             obj.type = idType;
             obj.common = getObject(idSrc).common;
             obj.common.alias = {};
             if(idRd) {
                 obj.common.alias.id = {};
                 obj.common.alias.id.read = idRd;
                 obj.common.alias.id.write = idSrc;
                 obj.common.read = true;
             } else obj.common.alias.id = idSrc;
             obj.common.type = idAliasType;
             if(obj.common.read !== false && read) obj.common.alias.read = read;
             if(obj.common.write !== false && write) obj.common.alias.write = write;
             obj.common.name = idName;
             obj.common.role = idRole;
             obj.common.desc = idDst;
             if(min !== undefined) obj.common.min = min;
             if(max !== undefined) obj.common.max = max;
             if(unit) obj.common.unit = unit;
             obj.common.states = states;
             if(custom && obj.common.custom) obj.common.custom = custom;
             obj.native = {};
             setObject(idDst, obj);
          } 
        }
        
        createAlias(aliasPath + '.' + aliasDevice, '', squeezeBoxInstanz + squeezeBoxDevice, '', 'channel', 'media', 'string');
        createAlias(aliasPath + '.' + aliasDevice + '.ALBUM', 'ALBUM',  squeezeBoxInstanz + squeezeBoxDevice + '.Album', '', 'state', 'media.album', 'string');
        createAlias(aliasPath + '.' + aliasDevice + '.ARTIST', 'ARTIST', squeezeBoxInstanz + squeezeBoxDevice + '.Artist', '', 'state', 'media.artist', 'string');
        createAlias(aliasPath + '.' + aliasDevice + '.TITLE', 'TITLE', squeezeBoxInstanz + squeezeBoxDevice + '.Title', '', 'state', 'media.title', 'string');
        createAlias(aliasPath + '.' + aliasDevice + '.NEXT', 'NEXT', squeezeBoxInstanz + squeezeBoxDevice + '.btnForward', '', 'state', 'button.next', 'boolean');
        createAlias(aliasPath + '.' + aliasDevice + '.PREV', 'PREV', squeezeBoxInstanz + squeezeBoxDevice + '.btnRewind', '', 'state', 'button.prev', 'boolean');
        createAlias(aliasPath + '.' + aliasDevice + '.PLAY', 'PLAY', squeezeBoxInstanz + squeezeBoxDevice + '.state', '', 'state', 'button.play', 'number');
        createAlias(aliasPath + '.' + aliasDevice + '.PAUSE', 'PAUSE', squeezeBoxInstanz + squeezeBoxDevice + '.state', '', 'state', 'button.pause', 'number');
        createAlias(aliasPath + '.' + aliasDevice + '.STOP', 'STOP', squeezeBoxInstanz + squeezeBoxDevice + '.state', '', 'state', 'button.stop', 'number');
        createAlias(aliasPath + '.' + aliasDevice + '.STATE', 'STATE', squeezeBoxInstanz + squeezeBoxDevice + '.POWER', '', 'state', 'media.state', 'boolean');
        createAlias(aliasPath + '.' + aliasDevice + '.VOLUME', 'VOLUME', squeezeBoxInstanz + squeezeBoxDevice + '.Volume', '', 'state', 'level.volume', 'number');
        createAlias(aliasPath + '.' + aliasDevice + '.VOLUME_ACTUAL', 'VOLUME_ACTUAL', squeezeBoxInstanz + squeezeBoxDevice + '.Volume', '', 'state', 'value.volume', 'number');
        

        Wenn sich der Anlegen lässt sollte eigentlich schon etwas funktionieren. Nur an Play, Pause und Stop müssen wir dann noch arbeiten, weil die alle in einem Datenpunkt "state" enthalten sind. Habe ich so auch noch nicht gesehen...

        Da sollten anschließend noch Funktionen rein die entsprechend "0, 1, 2" in "true" und "false" umwandeln.

        Edit: Bin dann für heute auch erstmal Offline... Kannst ja noch kurz sagen/zeigen ob etwas funktioniert.

        E Offline
        E Offline
        Elluminatus
        schrieb am zuletzt editiert von Elluminatus
        #158

        @armilar Habe einen Fehler bekommen:

        22:59:38.608	error	javascript.0 (10558) script.js.common.NSPanel.LMS: ReferenceError: aliasPath is not defined
        22:59:38.608	error	javascript.0 (10558) at script.js.common.NSPanel.LMS:39:13
        22:59:38.608	error	javascript.0 (10558) at script.js.common.NSPanel.LMS:51:3
        
        ArmilarA 1 Antwort Letzte Antwort
        0
        • ArmilarA Armilar

          @elluminatus sagte in SONOFF NSPanel mit Lovelace UI:

          @armilar Hier noch der Link zum Adapter: Hier und hier

          Und noch generell die Frage, kann man eigebtlich überall bei den Karten wo man Eingaben machen muss, auch diese Touch Kreise nutzen bspw. beim Thermostat für die Eingabe der Gradzahl oder eben hier bei der Eingabe der Lautstärke?

          Nein, das sieht die HMI von @joBr99 nicht vor. Das ist das Design im Nextion-Editor. Nur wie in den Beispielen abgebildet.

          E Offline
          E Offline
          Elluminatus
          schrieb am zuletzt editiert von
          #159

          @armilar Kein Problem, ist ja trotzdem ein Hammer :-)

          1 Antwort Letzte Antwort
          0
          • E Elluminatus

            @armilar Habe einen Fehler bekommen:

            22:59:38.608	error	javascript.0 (10558) script.js.common.NSPanel.LMS: ReferenceError: aliasPath is not defined
            22:59:38.608	error	javascript.0 (10558) at script.js.common.NSPanel.LMS:39:13
            22:59:38.608	error	javascript.0 (10558) at script.js.common.NSPanel.LMS:51:3
            
            ArmilarA Offline
            ArmilarA Offline
            Armilar
            Most Active Forum Testing
            schrieb am zuletzt editiert von Armilar
            #160

            @elluminatus sagte in SONOFF NSPanel mit Lovelace UI:

            @armilar Habe einen Fehler bekommen:

            22:59:38.608	error	javascript.0 (10558) script.js.common.NSPanel.LMS: ReferenceError: aliasPath is not defined
            22:59:38.608	error	javascript.0 (10558) at script.js.common.NSPanel.LMS:39:13
            22:59:38.608	error	javascript.0 (10558) at script.js.common.NSPanel.LMS:51:3
            

            Versuche noch mal das... Hatte auch vergessen zu sagen, dass im JavaScript-Adapter 1c74d935-efdc-4f16-acd0-2fceb3f11c10-image.png aktiviert sein muss.

            const aliasPath = 'alias.0.NSPanel_1.Media';  // ggfs. Anpassen
            const aliasDevice = 'SqueezeBoxRPC';       // ggfs. Anpassen
            //Ergibt alias.0.NSPanel_1.Media.SqueezeBoxRPC
            
            const squeezeBoxInstanz = 'squeezeboxrpc.0.Players.'; // Anpasssen, wenn nicht Instanz 0
            const squeezeBoxDevice = 'piCoreKUE'; // Anpassen an dein eigenes Device
            
            var typeAlias, read, write, nameAlias, role, desc, min, max, unit, states, custom;
            
            function createAlias(idDst, idName,idSrc, idRd, idType, idRole, idAliasType) {
              if(existsState(idDst)) log(idDst + ' schon vorhanden !', 'warn');
              else {
                 var obj = {};
                 obj.type = idType;
                 obj.common = getObject(idSrc).common;
                 obj.common.alias = {};
                 if(idRd) {
                     obj.common.alias.id = {};
                     obj.common.alias.id.read = idRd;
                     obj.common.alias.id.write = idSrc;
                     obj.common.read = true;
                 } else obj.common.alias.id = idSrc;
                 obj.common.type = idAliasType;
                 if(obj.common.read !== false && read) obj.common.alias.read = read;
                 if(obj.common.write !== false && write) obj.common.alias.write = write;
                 obj.common.name = idName;
                 obj.common.role = idRole;
                 obj.common.desc = idDst;
                 if(min !== undefined) obj.common.min = min;
                 if(max !== undefined) obj.common.max = max;
                 if(unit) obj.common.unit = unit;
                 obj.common.states = states;
                 if(custom && obj.common.custom) obj.common.custom = custom;
                 obj.native = {};
                 setObject(idDst, obj);
              } 
            }
            
            createAlias(aliasPath + '.' + aliasDevice, '', squeezeBoxInstanz + squeezeBoxDevice, '', 'channel', 'media', 'string');
            createAlias(aliasPath + '.' + aliasDevice + '.ALBUM', 'ALBUM',  squeezeBoxInstanz + squeezeBoxDevice + '.Album', '', 'state', 'media.album', 'string');
            createAlias(aliasPath + '.' + aliasDevice + '.ARTIST', 'ARTIST', squeezeBoxInstanz + squeezeBoxDevice + '.Artist', '', 'state', 'media.artist', 'string');
            createAlias(aliasPath + '.' + aliasDevice + '.TITLE', 'TITLE', squeezeBoxInstanz + squeezeBoxDevice + '.Title', '', 'state', 'media.title', 'string');
            createAlias(aliasPath + '.' + aliasDevice + '.NEXT', 'NEXT', squeezeBoxInstanz + squeezeBoxDevice + '.btnForward', '', 'state', 'button.forward', 'boolean');
            createAlias(aliasPath + '.' + aliasDevice + '.PREV', 'PREV', squeezeBoxInstanz + squeezeBoxDevice + '.btnRewind', '', 'state', 'button.reverse', 'boolean');
            createAlias(aliasPath + '.' + aliasDevice + '.PLAY', 'PLAY', squeezeBoxInstanz + squeezeBoxDevice + '.state', '', 'state', 'media.state', 'boolean');
            createAlias(aliasPath + '.' + aliasDevice + '.PAUSE', 'PAUSE', squeezeBoxInstanz + squeezeBoxDevice + '.state', '', 'state', 'media.state', 'boolean');
            createAlias(aliasPath + '.' + aliasDevice + '.STOP', 'STOP', squeezeBoxInstanz + squeezeBoxDevice + '.state', '', 'state', 'media.state', 'boolean');
            createAlias(aliasPath + '.' + aliasDevice + '.STATE', 'STATE', squeezeBoxInstanz + squeezeBoxDevice + '.Power', '', 'state', 'switch', 'boolean');
            createAlias(aliasPath + '.' + aliasDevice + '.VOLUME', 'VOLUME', squeezeBoxInstanz + squeezeBoxDevice + '.Volume', '', 'state', 'level.volume', 'number');
            createAlias(aliasPath + '.' + aliasDevice + '.VOLUME_ACTUAL', 'VOLUME_ACTUAL', squeezeBoxInstanz + squeezeBoxDevice + '.Volume', '', 'state', 'value.volume', 'number');
            

            Danach sollte unter alias.0.NSPanel_1.Media dieser Alias stehen.

            Wenn das funktioniert, dann aus den Beispielen im TS-Script einfach einen Media-Player nehmen und den Alias unter pageItems eintragen.

            Danach kommt das eigentliche Problem des Adapters...
            5e9591bf-0c20-4c92-88ea-e062b8db79ed-image.png

            Du suchst in den alias.0.NSPanel_1.Media... Objekten nach den PAUSE, PLAY und STOP und klickst hinten auf den Stift und gehtst dann in den 3. Tab ALIAS. Dort den Haken in "Konvertierungsfunktionen benutzen"

            Folgende Werte eintragen:
            9d2ec753-deed-482a-bf0f-3fc93df69c1f-image.png

            6edaeee1-d116-49bc-a954-e2a7d1e9f38f-image.png

            e3d38843-4aa8-440d-bf7e-e573cbe08928-image.png

            Das sollte es eigentlich gewesen sein

            Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
            https://github.com/joBr99/nspanel-lovelace-ui/wiki

            Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

            E 1 Antwort Letzte Antwort
            0
            • ArmilarA Armilar

              @elluminatus sagte in SONOFF NSPanel mit Lovelace UI:

              @armilar Habe einen Fehler bekommen:

              22:59:38.608	error	javascript.0 (10558) script.js.common.NSPanel.LMS: ReferenceError: aliasPath is not defined
              22:59:38.608	error	javascript.0 (10558) at script.js.common.NSPanel.LMS:39:13
              22:59:38.608	error	javascript.0 (10558) at script.js.common.NSPanel.LMS:51:3
              

              Versuche noch mal das... Hatte auch vergessen zu sagen, dass im JavaScript-Adapter 1c74d935-efdc-4f16-acd0-2fceb3f11c10-image.png aktiviert sein muss.

              const aliasPath = 'alias.0.NSPanel_1.Media';  // ggfs. Anpassen
              const aliasDevice = 'SqueezeBoxRPC';       // ggfs. Anpassen
              //Ergibt alias.0.NSPanel_1.Media.SqueezeBoxRPC
              
              const squeezeBoxInstanz = 'squeezeboxrpc.0.Players.'; // Anpasssen, wenn nicht Instanz 0
              const squeezeBoxDevice = 'piCoreKUE'; // Anpassen an dein eigenes Device
              
              var typeAlias, read, write, nameAlias, role, desc, min, max, unit, states, custom;
              
              function createAlias(idDst, idName,idSrc, idRd, idType, idRole, idAliasType) {
                if(existsState(idDst)) log(idDst + ' schon vorhanden !', 'warn');
                else {
                   var obj = {};
                   obj.type = idType;
                   obj.common = getObject(idSrc).common;
                   obj.common.alias = {};
                   if(idRd) {
                       obj.common.alias.id = {};
                       obj.common.alias.id.read = idRd;
                       obj.common.alias.id.write = idSrc;
                       obj.common.read = true;
                   } else obj.common.alias.id = idSrc;
                   obj.common.type = idAliasType;
                   if(obj.common.read !== false && read) obj.common.alias.read = read;
                   if(obj.common.write !== false && write) obj.common.alias.write = write;
                   obj.common.name = idName;
                   obj.common.role = idRole;
                   obj.common.desc = idDst;
                   if(min !== undefined) obj.common.min = min;
                   if(max !== undefined) obj.common.max = max;
                   if(unit) obj.common.unit = unit;
                   obj.common.states = states;
                   if(custom && obj.common.custom) obj.common.custom = custom;
                   obj.native = {};
                   setObject(idDst, obj);
                } 
              }
              
              createAlias(aliasPath + '.' + aliasDevice, '', squeezeBoxInstanz + squeezeBoxDevice, '', 'channel', 'media', 'string');
              createAlias(aliasPath + '.' + aliasDevice + '.ALBUM', 'ALBUM',  squeezeBoxInstanz + squeezeBoxDevice + '.Album', '', 'state', 'media.album', 'string');
              createAlias(aliasPath + '.' + aliasDevice + '.ARTIST', 'ARTIST', squeezeBoxInstanz + squeezeBoxDevice + '.Artist', '', 'state', 'media.artist', 'string');
              createAlias(aliasPath + '.' + aliasDevice + '.TITLE', 'TITLE', squeezeBoxInstanz + squeezeBoxDevice + '.Title', '', 'state', 'media.title', 'string');
              createAlias(aliasPath + '.' + aliasDevice + '.NEXT', 'NEXT', squeezeBoxInstanz + squeezeBoxDevice + '.btnForward', '', 'state', 'button.forward', 'boolean');
              createAlias(aliasPath + '.' + aliasDevice + '.PREV', 'PREV', squeezeBoxInstanz + squeezeBoxDevice + '.btnRewind', '', 'state', 'button.reverse', 'boolean');
              createAlias(aliasPath + '.' + aliasDevice + '.PLAY', 'PLAY', squeezeBoxInstanz + squeezeBoxDevice + '.state', '', 'state', 'media.state', 'boolean');
              createAlias(aliasPath + '.' + aliasDevice + '.PAUSE', 'PAUSE', squeezeBoxInstanz + squeezeBoxDevice + '.state', '', 'state', 'media.state', 'boolean');
              createAlias(aliasPath + '.' + aliasDevice + '.STOP', 'STOP', squeezeBoxInstanz + squeezeBoxDevice + '.state', '', 'state', 'media.state', 'boolean');
              createAlias(aliasPath + '.' + aliasDevice + '.STATE', 'STATE', squeezeBoxInstanz + squeezeBoxDevice + '.Power', '', 'state', 'switch', 'boolean');
              createAlias(aliasPath + '.' + aliasDevice + '.VOLUME', 'VOLUME', squeezeBoxInstanz + squeezeBoxDevice + '.Volume', '', 'state', 'level.volume', 'number');
              createAlias(aliasPath + '.' + aliasDevice + '.VOLUME_ACTUAL', 'VOLUME_ACTUAL', squeezeBoxInstanz + squeezeBoxDevice + '.Volume', '', 'state', 'value.volume', 'number');
              

              Danach sollte unter alias.0.NSPanel_1.Media dieser Alias stehen.

              Wenn das funktioniert, dann aus den Beispielen im TS-Script einfach einen Media-Player nehmen und den Alias unter pageItems eintragen.

              Danach kommt das eigentliche Problem des Adapters...
              5e9591bf-0c20-4c92-88ea-e062b8db79ed-image.png

              Du suchst in den alias.0.NSPanel_1.Media... Objekten nach den PAUSE, PLAY und STOP und klickst hinten auf den Stift und gehtst dann in den 3. Tab ALIAS. Dort den Haken in "Konvertierungsfunktionen benutzen"

              Folgende Werte eintragen:
              9d2ec753-deed-482a-bf0f-3fc93df69c1f-image.png

              6edaeee1-d116-49bc-a954-e2a7d1e9f38f-image.png

              e3d38843-4aa8-440d-bf7e-e573cbe08928-image.png

              Das sollte es eigentlich gewesen sein

              E Offline
              E Offline
              Elluminatus
              schrieb am zuletzt editiert von Elluminatus
              #161

              @armilar Ich bekomme einen Fehler. Den Pfad squeezeboxrpc.0.Players.piCoreKUE gibt es aber, habe gerade nachgeschaut, hmm

              00:10:22.196	info	javascript.0 (10558) Start javascript script.js.common.NSPanel.LMS
              00:10:22.207	warn	javascript.0 (10558) script.js.common.NSPanel.LMS: Object "squeezeboxrpc.0.Players.piCoreKUE" does not exist
              00:10:22.208	info	javascript.0 (10558) script.js.common.NSPanel.LMS: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
              00:10:22.210	error	javascript.0 (10558) script.js.common.NSPanel.LMS: TypeError: Cannot read properties of null (reading 'common')
              00:10:22.210	error	javascript.0 (10558) at createAlias (script.js.common.NSPanel.LMS:15:35)
              00:10:22.210	error	javascript.0 (10558) at script.js.common.NSPanel.LMS:39:1
              00:10:22.211	error	javascript.0 (10558) at script.js.common.NSPanel.LMS:51:3
              

              Der Haken bei SetObject ist bereits gesetzt

              ArmilarA 1 Antwort Letzte Antwort
              0
              • E Elluminatus

                @armilar Ich bekomme einen Fehler. Den Pfad squeezeboxrpc.0.Players.piCoreKUE gibt es aber, habe gerade nachgeschaut, hmm

                00:10:22.196	info	javascript.0 (10558) Start javascript script.js.common.NSPanel.LMS
                00:10:22.207	warn	javascript.0 (10558) script.js.common.NSPanel.LMS: Object "squeezeboxrpc.0.Players.piCoreKUE" does not exist
                00:10:22.208	info	javascript.0 (10558) script.js.common.NSPanel.LMS: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
                00:10:22.210	error	javascript.0 (10558) script.js.common.NSPanel.LMS: TypeError: Cannot read properties of null (reading 'common')
                00:10:22.210	error	javascript.0 (10558) at createAlias (script.js.common.NSPanel.LMS:15:35)
                00:10:22.210	error	javascript.0 (10558) at script.js.common.NSPanel.LMS:39:1
                00:10:22.211	error	javascript.0 (10558) at script.js.common.NSPanel.LMS:51:3
                

                Der Haken bei SetObject ist bereits gesetzt

                ArmilarA Offline
                ArmilarA Offline
                Armilar
                Most Active Forum Testing
                schrieb am zuletzt editiert von
                #162

                @elluminatus sagte in SONOFF NSPanel mit Lovelace UI:

                @armilar Ich bekomme einen Fehler. Den Pfad squeezeboxrpc.0.Players.piCoreKUE gibt es aber, habe gerade nachgeschaut, hmm

                00:10:22.196	info	javascript.0 (10558) Start javascript script.js.common.NSPanel.LMS
                00:10:22.207	warn	javascript.0 (10558) script.js.common.NSPanel.LMS: Object "squeezeboxrpc.0.Players.piCoreKUE" does not exist
                00:10:22.208	info	javascript.0 (10558) script.js.common.NSPanel.LMS: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
                00:10:22.210	error	javascript.0 (10558) script.js.common.NSPanel.LMS: TypeError: Cannot read properties of null (reading 'common')
                00:10:22.210	error	javascript.0 (10558) at createAlias (script.js.common.NSPanel.LMS:15:35)
                00:10:22.210	error	javascript.0 (10558) at script.js.common.NSPanel.LMS:39:1
                00:10:22.211	error	javascript.0 (10558) at script.js.common.NSPanel.LMS:51:3
                

                Der Haken bei SetObject ist bereits gesetzt

                Kopier es nochmal. Habe noch Änderungen in den Rollen gemacht. Kann es ja leider nicht selbst testen

                Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
                https://github.com/joBr99/nspanel-lovelace-ui/wiki

                Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                E 1 Antwort Letzte Antwort
                0
                • ArmilarA Armilar

                  @elluminatus sagte in SONOFF NSPanel mit Lovelace UI:

                  @armilar Ich bekomme einen Fehler. Den Pfad squeezeboxrpc.0.Players.piCoreKUE gibt es aber, habe gerade nachgeschaut, hmm

                  00:10:22.196	info	javascript.0 (10558) Start javascript script.js.common.NSPanel.LMS
                  00:10:22.207	warn	javascript.0 (10558) script.js.common.NSPanel.LMS: Object "squeezeboxrpc.0.Players.piCoreKUE" does not exist
                  00:10:22.208	info	javascript.0 (10558) script.js.common.NSPanel.LMS: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
                  00:10:22.210	error	javascript.0 (10558) script.js.common.NSPanel.LMS: TypeError: Cannot read properties of null (reading 'common')
                  00:10:22.210	error	javascript.0 (10558) at createAlias (script.js.common.NSPanel.LMS:15:35)
                  00:10:22.210	error	javascript.0 (10558) at script.js.common.NSPanel.LMS:39:1
                  00:10:22.211	error	javascript.0 (10558) at script.js.common.NSPanel.LMS:51:3
                  

                  Der Haken bei SetObject ist bereits gesetzt

                  Kopier es nochmal. Habe noch Änderungen in den Rollen gemacht. Kann es ja leider nicht selbst testen

                  E Offline
                  E Offline
                  Elluminatus
                  schrieb am zuletzt editiert von Elluminatus
                  #163

                  @armilar Hab es nochmal kopiert, leider derselbe Fehler:

                  00:27:57.980	info	javascript.0 (10558) Start javascript script.js.common.NSPanel.LMS
                  00:27:57.991	warn	javascript.0 (10558) script.js.common.NSPanel.LMS: Object "squeezeboxrpc.0.Players.piCoreKUE" does not exist
                  00:27:57.992	info	javascript.0 (10558) script.js.common.NSPanel.LMS: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
                  00:27:57.994	error	javascript.0 (10558) script.js.common.NSPanel.LMS: TypeError: Cannot read properties of null (reading 'common')
                  00:27:57.995	error	javascript.0 (10558) at createAlias (script.js.common.NSPanel.LMS:15:35)
                  00:27:57.995	error	javascript.0 (10558) at script.js.common.NSPanel.LMS:39:1
                  00:27:57.995	error	javascript.0 (10558) at script.js.common.NSPanel.LMS:51:3
                  

                  Hier nochmal zur Kontrolle was ich eingefügt habe:

                  const aliasPath = 'alias.0.Media.WT_KE_HWR';  // ggfs. Anpassen
                  const aliasDevice = 'SqueezeBoxRPC';       // ggfs. Anpassen
                  //Ergibt alias.0.NSPanel_1.Media.SqueezeBoxRPC
                  
                  const squeezeBoxInstanz = 'squeezeboxrpc.0.Players.'; // Anpasssen, wenn nicht Instanz 0
                  const squeezeBoxDevice = 'piCoreKUE'; // Anpassen an dein eigenes Device
                  
                  var typeAlias, read, write, nameAlias, role, desc, min, max, unit, states, custom;
                  
                  function createAlias(idDst, idName,idSrc, idRd, idType, idRole, idAliasType) {
                    if(existsState(idDst)) log(idDst + ' schon vorhanden !', 'warn');
                    else {
                       var obj = {};
                       obj.type = idType;
                       obj.common = getObject(idSrc).common;
                       obj.common.alias = {};
                       if(idRd) {
                           obj.common.alias.id = {};
                           obj.common.alias.id.read = idRd;
                           obj.common.alias.id.write = idSrc;
                           obj.common.read = true;
                       } else obj.common.alias.id = idSrc;
                       obj.common.type = idAliasType;
                       if(obj.common.read !== false && read) obj.common.alias.read = read;
                       if(obj.common.write !== false && write) obj.common.alias.write = write;
                       obj.common.name = idName;
                       obj.common.role = idRole;
                       obj.common.desc = idDst;
                       if(min !== undefined) obj.common.min = min;
                       if(max !== undefined) obj.common.max = max;
                       if(unit) obj.common.unit = unit;
                       obj.common.states = states;
                       if(custom && obj.common.custom) obj.common.custom = custom;
                       obj.native = {};
                       setObject(idDst, obj);
                    } 
                  }
                  
                  createAlias(aliasPath + '.' + aliasDevice, '', squeezeBoxInstanz + squeezeBoxDevice, '', 'channel', 'media', 'string');
                  createAlias(aliasPath + '.' + aliasDevice + '.ALBUM', 'ALBUM',  squeezeBoxInstanz + squeezeBoxDevice + '.Album', '', 'state', 'media.album', 'string');
                  createAlias(aliasPath + '.' + aliasDevice + '.ARTIST', 'ARTIST', squeezeBoxInstanz + squeezeBoxDevice + '.Artist', '', 'state', 'media.artist', 'string');
                  createAlias(aliasPath + '.' + aliasDevice + '.TITLE', 'TITLE', squeezeBoxInstanz + squeezeBoxDevice + '.Title', '', 'state', 'media.title', 'string');
                  createAlias(aliasPath + '.' + aliasDevice + '.NEXT', 'NEXT', squeezeBoxInstanz + squeezeBoxDevice + '.btnForward', '', 'state', 'button.forward', 'boolean');
                  createAlias(aliasPath + '.' + aliasDevice + '.PREV', 'PREV', squeezeBoxInstanz + squeezeBoxDevice + '.btnRewind', '', 'state', 'button.reverse', 'boolean');
                  createAlias(aliasPath + '.' + aliasDevice + '.PLAY', 'PLAY', squeezeBoxInstanz + squeezeBoxDevice + '.state', '', 'state', 'media.state', 'boolean');
                  createAlias(aliasPath + '.' + aliasDevice + '.PAUSE', 'PAUSE', squeezeBoxInstanz + squeezeBoxDevice + '.state', '', 'state', 'media.state', 'boolean');
                  createAlias(aliasPath + '.' + aliasDevice + '.STOP', 'STOP', squeezeBoxInstanz + squeezeBoxDevice + '.state', '', 'state', 'media.state', 'boolean');
                  createAlias(aliasPath + '.' + aliasDevice + '.STATE', 'STATE', squeezeBoxInstanz + squeezeBoxDevice + '.Power', '', 'state', 'switch', 'boolean');
                  createAlias(aliasPath + '.' + aliasDevice + '.VOLUME', 'VOLUME', squeezeBoxInstanz + squeezeBoxDevice + '.Volume', '', 'state', 'level.volume', 'number');
                  createAlias(aliasPath + '.' + aliasDevice + '.VOLUME_ACTUAL', 'VOLUME_ACTUAL', squeezeBoxInstanz + squeezeBoxDevice + '.Volume', '', 'state', 'value.volume', 'number');
                  
                  ArmilarA 1 Antwort Letzte Antwort
                  0
                  • E Elluminatus

                    @armilar Hab es nochmal kopiert, leider derselbe Fehler:

                    00:27:57.980	info	javascript.0 (10558) Start javascript script.js.common.NSPanel.LMS
                    00:27:57.991	warn	javascript.0 (10558) script.js.common.NSPanel.LMS: Object "squeezeboxrpc.0.Players.piCoreKUE" does not exist
                    00:27:57.992	info	javascript.0 (10558) script.js.common.NSPanel.LMS: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
                    00:27:57.994	error	javascript.0 (10558) script.js.common.NSPanel.LMS: TypeError: Cannot read properties of null (reading 'common')
                    00:27:57.995	error	javascript.0 (10558) at createAlias (script.js.common.NSPanel.LMS:15:35)
                    00:27:57.995	error	javascript.0 (10558) at script.js.common.NSPanel.LMS:39:1
                    00:27:57.995	error	javascript.0 (10558) at script.js.common.NSPanel.LMS:51:3
                    

                    Hier nochmal zur Kontrolle was ich eingefügt habe:

                    const aliasPath = 'alias.0.Media.WT_KE_HWR';  // ggfs. Anpassen
                    const aliasDevice = 'SqueezeBoxRPC';       // ggfs. Anpassen
                    //Ergibt alias.0.NSPanel_1.Media.SqueezeBoxRPC
                    
                    const squeezeBoxInstanz = 'squeezeboxrpc.0.Players.'; // Anpasssen, wenn nicht Instanz 0
                    const squeezeBoxDevice = 'piCoreKUE'; // Anpassen an dein eigenes Device
                    
                    var typeAlias, read, write, nameAlias, role, desc, min, max, unit, states, custom;
                    
                    function createAlias(idDst, idName,idSrc, idRd, idType, idRole, idAliasType) {
                      if(existsState(idDst)) log(idDst + ' schon vorhanden !', 'warn');
                      else {
                         var obj = {};
                         obj.type = idType;
                         obj.common = getObject(idSrc).common;
                         obj.common.alias = {};
                         if(idRd) {
                             obj.common.alias.id = {};
                             obj.common.alias.id.read = idRd;
                             obj.common.alias.id.write = idSrc;
                             obj.common.read = true;
                         } else obj.common.alias.id = idSrc;
                         obj.common.type = idAliasType;
                         if(obj.common.read !== false && read) obj.common.alias.read = read;
                         if(obj.common.write !== false && write) obj.common.alias.write = write;
                         obj.common.name = idName;
                         obj.common.role = idRole;
                         obj.common.desc = idDst;
                         if(min !== undefined) obj.common.min = min;
                         if(max !== undefined) obj.common.max = max;
                         if(unit) obj.common.unit = unit;
                         obj.common.states = states;
                         if(custom && obj.common.custom) obj.common.custom = custom;
                         obj.native = {};
                         setObject(idDst, obj);
                      } 
                    }
                    
                    createAlias(aliasPath + '.' + aliasDevice, '', squeezeBoxInstanz + squeezeBoxDevice, '', 'channel', 'media', 'string');
                    createAlias(aliasPath + '.' + aliasDevice + '.ALBUM', 'ALBUM',  squeezeBoxInstanz + squeezeBoxDevice + '.Album', '', 'state', 'media.album', 'string');
                    createAlias(aliasPath + '.' + aliasDevice + '.ARTIST', 'ARTIST', squeezeBoxInstanz + squeezeBoxDevice + '.Artist', '', 'state', 'media.artist', 'string');
                    createAlias(aliasPath + '.' + aliasDevice + '.TITLE', 'TITLE', squeezeBoxInstanz + squeezeBoxDevice + '.Title', '', 'state', 'media.title', 'string');
                    createAlias(aliasPath + '.' + aliasDevice + '.NEXT', 'NEXT', squeezeBoxInstanz + squeezeBoxDevice + '.btnForward', '', 'state', 'button.forward', 'boolean');
                    createAlias(aliasPath + '.' + aliasDevice + '.PREV', 'PREV', squeezeBoxInstanz + squeezeBoxDevice + '.btnRewind', '', 'state', 'button.reverse', 'boolean');
                    createAlias(aliasPath + '.' + aliasDevice + '.PLAY', 'PLAY', squeezeBoxInstanz + squeezeBoxDevice + '.state', '', 'state', 'media.state', 'boolean');
                    createAlias(aliasPath + '.' + aliasDevice + '.PAUSE', 'PAUSE', squeezeBoxInstanz + squeezeBoxDevice + '.state', '', 'state', 'media.state', 'boolean');
                    createAlias(aliasPath + '.' + aliasDevice + '.STOP', 'STOP', squeezeBoxInstanz + squeezeBoxDevice + '.state', '', 'state', 'media.state', 'boolean');
                    createAlias(aliasPath + '.' + aliasDevice + '.STATE', 'STATE', squeezeBoxInstanz + squeezeBoxDevice + '.Power', '', 'state', 'switch', 'boolean');
                    createAlias(aliasPath + '.' + aliasDevice + '.VOLUME', 'VOLUME', squeezeBoxInstanz + squeezeBoxDevice + '.Volume', '', 'state', 'level.volume', 'number');
                    createAlias(aliasPath + '.' + aliasDevice + '.VOLUME_ACTUAL', 'VOLUME_ACTUAL', squeezeBoxInstanz + squeezeBoxDevice + '.Volume', '', 'state', 'value.volume', 'number');
                    
                    ArmilarA Offline
                    ArmilarA Offline
                    Armilar
                    Most Active Forum Testing
                    schrieb am zuletzt editiert von Armilar
                    #164

                    @elluminatus sagte in SONOFF NSPanel mit Lovelace UI:

                    @armilar Hab es nochmal kopiert, leider derselbe Fehler:

                    00:27:57.980	info	javascript.0 (10558) Start javascript script.js.common.NSPanel.LMS
                    00:27:57.991	warn	javascript.0 (10558) script.js.common.NSPanel.LMS: Object "squeezeboxrpc.0.Players.piCoreKUE" does not exist
                    00:27:57.992	info	javascript.0 (10558) script.js.common.NSPanel.LMS: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
                    00:27:57.994	error	javascript.0 (10558) script.js.common.NSPanel.LMS: TypeError: Cannot read properties of null (reading 'common')
                    00:27:57.995	error	javascript.0 (10558) at createAlias (script.js.common.NSPanel.LMS:15:35)
                    00:27:57.995	error	javascript.0 (10558) at script.js.common.NSPanel.LMS:39:1
                    00:27:57.995	error	javascript.0 (10558) at script.js.common.NSPanel.LMS:51:3
                    

                    Hier nochmal zur Kontrolle was ich eingefügt habe:

                    const aliasPath = 'alias.0.Media.WT_KE_HWR';  // ggfs. Anpassen
                    const aliasDevice = 'SqueezeBoxRPC';       // ggfs. Anpassen
                    //Ergibt alias.0.NSPanel_1.Media.SqueezeBoxRPC
                    
                    const squeezeBoxInstanz = 'squeezeboxrpc.0.Players.'; // Anpasssen, wenn nicht Instanz 0
                    const squeezeBoxDevice = 'piCoreKUE'; // Anpassen an dein eigenes Device
                    
                    var typeAlias, read, write, nameAlias, role, desc, min, max, unit, states, custom;
                    
                    function createAlias(idDst, idName,idSrc, idRd, idType, idRole, idAliasType) {
                      if(existsState(idDst)) log(idDst + ' schon vorhanden !', 'warn');
                      else {
                         var obj = {};
                         obj.type = idType;
                         obj.common = getObject(idSrc).common;
                         obj.common.alias = {};
                         if(idRd) {
                             obj.common.alias.id = {};
                             obj.common.alias.id.read = idRd;
                             obj.common.alias.id.write = idSrc;
                             obj.common.read = true;
                         } else obj.common.alias.id = idSrc;
                         obj.common.type = idAliasType;
                         if(obj.common.read !== false && read) obj.common.alias.read = read;
                         if(obj.common.write !== false && write) obj.common.alias.write = write;
                         obj.common.name = idName;
                         obj.common.role = idRole;
                         obj.common.desc = idDst;
                         if(min !== undefined) obj.common.min = min;
                         if(max !== undefined) obj.common.max = max;
                         if(unit) obj.common.unit = unit;
                         obj.common.states = states;
                         if(custom && obj.common.custom) obj.common.custom = custom;
                         obj.native = {};
                         setObject(idDst, obj);
                      } 
                    }
                    
                    createAlias(aliasPath + '.' + aliasDevice, '', squeezeBoxInstanz + squeezeBoxDevice, '', 'channel', 'media', 'string');
                    createAlias(aliasPath + '.' + aliasDevice + '.ALBUM', 'ALBUM',  squeezeBoxInstanz + squeezeBoxDevice + '.Album', '', 'state', 'media.album', 'string');
                    createAlias(aliasPath + '.' + aliasDevice + '.ARTIST', 'ARTIST', squeezeBoxInstanz + squeezeBoxDevice + '.Artist', '', 'state', 'media.artist', 'string');
                    createAlias(aliasPath + '.' + aliasDevice + '.TITLE', 'TITLE', squeezeBoxInstanz + squeezeBoxDevice + '.Title', '', 'state', 'media.title', 'string');
                    createAlias(aliasPath + '.' + aliasDevice + '.NEXT', 'NEXT', squeezeBoxInstanz + squeezeBoxDevice + '.btnForward', '', 'state', 'button.forward', 'boolean');
                    createAlias(aliasPath + '.' + aliasDevice + '.PREV', 'PREV', squeezeBoxInstanz + squeezeBoxDevice + '.btnRewind', '', 'state', 'button.reverse', 'boolean');
                    createAlias(aliasPath + '.' + aliasDevice + '.PLAY', 'PLAY', squeezeBoxInstanz + squeezeBoxDevice + '.state', '', 'state', 'media.state', 'boolean');
                    createAlias(aliasPath + '.' + aliasDevice + '.PAUSE', 'PAUSE', squeezeBoxInstanz + squeezeBoxDevice + '.state', '', 'state', 'media.state', 'boolean');
                    createAlias(aliasPath + '.' + aliasDevice + '.STOP', 'STOP', squeezeBoxInstanz + squeezeBoxDevice + '.state', '', 'state', 'media.state', 'boolean');
                    createAlias(aliasPath + '.' + aliasDevice + '.STATE', 'STATE', squeezeBoxInstanz + squeezeBoxDevice + '.Power', '', 'state', 'switch', 'boolean');
                    createAlias(aliasPath + '.' + aliasDevice + '.VOLUME', 'VOLUME', squeezeBoxInstanz + squeezeBoxDevice + '.Volume', '', 'state', 'level.volume', 'number');
                    createAlias(aliasPath + '.' + aliasDevice + '.VOLUME_ACTUAL', 'VOLUME_ACTUAL', squeezeBoxInstanz + squeezeBoxDevice + '.Volume', '', 'state', 'value.volume', 'number');
                    

                    kommentiere das erste createAlias´mal aus (Zeile 39)

                    //createAlias(aliasPath + '.' + aliasDevice, '', squeezeBoxInstanz + squeezeBoxDevice, '', 'channel', 'media', 'string');
                    

                    Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
                    https://github.com/joBr99/nspanel-lovelace-ui/wiki

                    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                    E 1 Antwort Letzte Antwort
                    0
                    • ArmilarA Armilar

                      @elluminatus sagte in SONOFF NSPanel mit Lovelace UI:

                      @armilar Hab es nochmal kopiert, leider derselbe Fehler:

                      00:27:57.980	info	javascript.0 (10558) Start javascript script.js.common.NSPanel.LMS
                      00:27:57.991	warn	javascript.0 (10558) script.js.common.NSPanel.LMS: Object "squeezeboxrpc.0.Players.piCoreKUE" does not exist
                      00:27:57.992	info	javascript.0 (10558) script.js.common.NSPanel.LMS: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
                      00:27:57.994	error	javascript.0 (10558) script.js.common.NSPanel.LMS: TypeError: Cannot read properties of null (reading 'common')
                      00:27:57.995	error	javascript.0 (10558) at createAlias (script.js.common.NSPanel.LMS:15:35)
                      00:27:57.995	error	javascript.0 (10558) at script.js.common.NSPanel.LMS:39:1
                      00:27:57.995	error	javascript.0 (10558) at script.js.common.NSPanel.LMS:51:3
                      

                      Hier nochmal zur Kontrolle was ich eingefügt habe:

                      const aliasPath = 'alias.0.Media.WT_KE_HWR';  // ggfs. Anpassen
                      const aliasDevice = 'SqueezeBoxRPC';       // ggfs. Anpassen
                      //Ergibt alias.0.NSPanel_1.Media.SqueezeBoxRPC
                      
                      const squeezeBoxInstanz = 'squeezeboxrpc.0.Players.'; // Anpasssen, wenn nicht Instanz 0
                      const squeezeBoxDevice = 'piCoreKUE'; // Anpassen an dein eigenes Device
                      
                      var typeAlias, read, write, nameAlias, role, desc, min, max, unit, states, custom;
                      
                      function createAlias(idDst, idName,idSrc, idRd, idType, idRole, idAliasType) {
                        if(existsState(idDst)) log(idDst + ' schon vorhanden !', 'warn');
                        else {
                           var obj = {};
                           obj.type = idType;
                           obj.common = getObject(idSrc).common;
                           obj.common.alias = {};
                           if(idRd) {
                               obj.common.alias.id = {};
                               obj.common.alias.id.read = idRd;
                               obj.common.alias.id.write = idSrc;
                               obj.common.read = true;
                           } else obj.common.alias.id = idSrc;
                           obj.common.type = idAliasType;
                           if(obj.common.read !== false && read) obj.common.alias.read = read;
                           if(obj.common.write !== false && write) obj.common.alias.write = write;
                           obj.common.name = idName;
                           obj.common.role = idRole;
                           obj.common.desc = idDst;
                           if(min !== undefined) obj.common.min = min;
                           if(max !== undefined) obj.common.max = max;
                           if(unit) obj.common.unit = unit;
                           obj.common.states = states;
                           if(custom && obj.common.custom) obj.common.custom = custom;
                           obj.native = {};
                           setObject(idDst, obj);
                        } 
                      }
                      
                      createAlias(aliasPath + '.' + aliasDevice, '', squeezeBoxInstanz + squeezeBoxDevice, '', 'channel', 'media', 'string');
                      createAlias(aliasPath + '.' + aliasDevice + '.ALBUM', 'ALBUM',  squeezeBoxInstanz + squeezeBoxDevice + '.Album', '', 'state', 'media.album', 'string');
                      createAlias(aliasPath + '.' + aliasDevice + '.ARTIST', 'ARTIST', squeezeBoxInstanz + squeezeBoxDevice + '.Artist', '', 'state', 'media.artist', 'string');
                      createAlias(aliasPath + '.' + aliasDevice + '.TITLE', 'TITLE', squeezeBoxInstanz + squeezeBoxDevice + '.Title', '', 'state', 'media.title', 'string');
                      createAlias(aliasPath + '.' + aliasDevice + '.NEXT', 'NEXT', squeezeBoxInstanz + squeezeBoxDevice + '.btnForward', '', 'state', 'button.forward', 'boolean');
                      createAlias(aliasPath + '.' + aliasDevice + '.PREV', 'PREV', squeezeBoxInstanz + squeezeBoxDevice + '.btnRewind', '', 'state', 'button.reverse', 'boolean');
                      createAlias(aliasPath + '.' + aliasDevice + '.PLAY', 'PLAY', squeezeBoxInstanz + squeezeBoxDevice + '.state', '', 'state', 'media.state', 'boolean');
                      createAlias(aliasPath + '.' + aliasDevice + '.PAUSE', 'PAUSE', squeezeBoxInstanz + squeezeBoxDevice + '.state', '', 'state', 'media.state', 'boolean');
                      createAlias(aliasPath + '.' + aliasDevice + '.STOP', 'STOP', squeezeBoxInstanz + squeezeBoxDevice + '.state', '', 'state', 'media.state', 'boolean');
                      createAlias(aliasPath + '.' + aliasDevice + '.STATE', 'STATE', squeezeBoxInstanz + squeezeBoxDevice + '.Power', '', 'state', 'switch', 'boolean');
                      createAlias(aliasPath + '.' + aliasDevice + '.VOLUME', 'VOLUME', squeezeBoxInstanz + squeezeBoxDevice + '.Volume', '', 'state', 'level.volume', 'number');
                      createAlias(aliasPath + '.' + aliasDevice + '.VOLUME_ACTUAL', 'VOLUME_ACTUAL', squeezeBoxInstanz + squeezeBoxDevice + '.Volume', '', 'state', 'value.volume', 'number');
                      

                      kommentiere das erste createAlias´mal aus (Zeile 39)

                      //createAlias(aliasPath + '.' + aliasDevice, '', squeezeBoxInstanz + squeezeBoxDevice, '', 'channel', 'media', 'string');
                      
                      E Offline
                      E Offline
                      Elluminatus
                      schrieb am zuletzt editiert von
                      #165

                      @armilar Das ist jetzt ohne Fehler durchgelaufen. Kannst Du mir kurz helfen, was als nächstes gemacht werden muss? Muss ich jetzt einenAlias mit Media anlegen oder im Vorfeld den Erfolg nochmal überprüfen? Danke für Deinen Einsatz.

                      ArmilarA 1 Antwort Letzte Antwort
                      0
                      • E Elluminatus

                        @armilar Das ist jetzt ohne Fehler durchgelaufen. Kannst Du mir kurz helfen, was als nächstes gemacht werden muss? Muss ich jetzt einenAlias mit Media anlegen oder im Vorfeld den Erfolg nochmal überprüfen? Danke für Deinen Einsatz.

                        ArmilarA Offline
                        ArmilarA Offline
                        Armilar
                        Most Active Forum Testing
                        schrieb am zuletzt editiert von Armilar
                        #166

                        @elluminatus sagte in SONOFF NSPanel mit Lovelace UI:

                        @armilar Das ist jetzt ohne Fehler durchgelaufen. Kannst Du mir kurz helfen, was als nächstes gemacht werden muss? Muss ich jetzt einenAlias mit Media anlegen oder im Vorfeld den Erfolg nochmal überprüfen? Danke für Deinen Einsatz.

                        Unter Objekte Alias findest du deinen neuen Media-Alias (der im Moment aber keiner ist)
                        46debdc3-f39f-456d-82d3-23be11c139f4-image.png

                        Gehe mal in den Ordner (hier im Bild blau) und klicke auf den Stift am Ende. Im ersten Tab sollte "media" unter Rolle eingetragen werden

                        5035ccf8-20a0-4353-bc06-ed02c32d88fc-image.png

                        Jetzt ist es ein Media-Alias

                        Im Anschluss folgst du der Beschreibung von gestern:
                        https://forum.iobroker.net/post/867924

                        Das hatten wir aber auch schon einfacher ;-)

                        Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
                        https://github.com/joBr99/nspanel-lovelace-ui/wiki

                        Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                        E 1 Antwort Letzte Antwort
                        0
                        • ArmilarA Armilar

                          @elluminatus sagte in SONOFF NSPanel mit Lovelace UI:

                          @armilar Das ist jetzt ohne Fehler durchgelaufen. Kannst Du mir kurz helfen, was als nächstes gemacht werden muss? Muss ich jetzt einenAlias mit Media anlegen oder im Vorfeld den Erfolg nochmal überprüfen? Danke für Deinen Einsatz.

                          Unter Objekte Alias findest du deinen neuen Media-Alias (der im Moment aber keiner ist)
                          46debdc3-f39f-456d-82d3-23be11c139f4-image.png

                          Gehe mal in den Ordner (hier im Bild blau) und klicke auf den Stift am Ende. Im ersten Tab sollte "media" unter Rolle eingetragen werden

                          5035ccf8-20a0-4353-bc06-ed02c32d88fc-image.png

                          Jetzt ist es ein Media-Alias

                          Im Anschluss folgst du der Beschreibung von gestern:
                          https://forum.iobroker.net/post/867924

                          Das hatten wir aber auch schon einfacher ;-)

                          E Offline
                          E Offline
                          Elluminatus
                          schrieb am zuletzt editiert von
                          #167

                          @armilar Jetzt muss ich doch nochmal nachfragen, also ich habe da in den Alias jetzt die ganzen Einträge wie bspw. Album etc.

                          Aber ich sehe den von Dir benannten Stift nicht am Ende?

                          LMS5.jpg

                          ArmilarA 1 Antwort Letzte Antwort
                          0
                          • E Elluminatus

                            @armilar Jetzt muss ich doch nochmal nachfragen, also ich habe da in den Alias jetzt die ganzen Einträge wie bspw. Album etc.

                            Aber ich sehe den von Dir benannten Stift nicht am Ende?

                            LMS5.jpg

                            ArmilarA Offline
                            ArmilarA Offline
                            Armilar
                            Most Active Forum Testing
                            schrieb am zuletzt editiert von Armilar
                            #168

                            @elluminatus sagte in SONOFF NSPanel mit Lovelace UI:

                            @armilar Jetzt muss ich doch nochmal nachfragen, also ich habe da in den Alias jetzt die ganzen Einträge wie bspw. Album etc.

                            Aber ich sehe den von Dir benannten Stift nicht am Ende?

                            LMS5.jpg

                            Schalte mal in den Expertenmodus...

                            Kannst du wahrscheinlich dann auch schon mit klick auf den Bereich erledigen

                            e27cd8f0-5913-432b-87df-15937b1a2f75-image.png

                            oder unter Objektdaten wäre es dann in etwa so:

                            {
                              "type": "channel",
                              "common": {
                                "name": "",
                                "alias": {
                                  "id": "squeezeboxrpc.0.Players.piCoreKUE"
                                },
                                "type": "string",
                                "role": "media",
                                "desc": "alias.0.NSPanel_1.Media.SqueezeBoxRPC"
                              },
                              "native": {},
                              "from": "system.adapter.javascript.0",
                              "user": "system.user.admin",
                              "ts": 1664852646982,
                              "_id": "alias.0.NSPanel_1.Media.SqueezeBoxRPC",
                              "acl": {
                                "object": 1636,
                                "owner": "system.user.admin",
                                "ownerGroup": "system.group.administrator"
                              }
                            }
                            

                            Dann kannst du auch gleich als type "channel" mitgeben.

                            Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
                            https://github.com/joBr99/nspanel-lovelace-ui/wiki

                            Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                            E 1 Antwort Letzte Antwort
                            0
                            • ArmilarA Armilar

                              @elluminatus sagte in SONOFF NSPanel mit Lovelace UI:

                              @armilar Jetzt muss ich doch nochmal nachfragen, also ich habe da in den Alias jetzt die ganzen Einträge wie bspw. Album etc.

                              Aber ich sehe den von Dir benannten Stift nicht am Ende?

                              LMS5.jpg

                              Schalte mal in den Expertenmodus...

                              Kannst du wahrscheinlich dann auch schon mit klick auf den Bereich erledigen

                              e27cd8f0-5913-432b-87df-15937b1a2f75-image.png

                              oder unter Objektdaten wäre es dann in etwa so:

                              {
                                "type": "channel",
                                "common": {
                                  "name": "",
                                  "alias": {
                                    "id": "squeezeboxrpc.0.Players.piCoreKUE"
                                  },
                                  "type": "string",
                                  "role": "media",
                                  "desc": "alias.0.NSPanel_1.Media.SqueezeBoxRPC"
                                },
                                "native": {},
                                "from": "system.adapter.javascript.0",
                                "user": "system.user.admin",
                                "ts": 1664852646982,
                                "_id": "alias.0.NSPanel_1.Media.SqueezeBoxRPC",
                                "acl": {
                                  "object": 1636,
                                  "owner": "system.user.admin",
                                  "ownerGroup": "system.group.administrator"
                                }
                              }
                              

                              Dann kannst du auch gleich als type "channel" mitgeben.

                              E Offline
                              E Offline
                              Elluminatus
                              schrieb am zuletzt editiert von
                              #169

                              @armilar
                              Ich kann leider nichts davon machen, ich habe kein Zahnrad, keinen Stift und kann nicht auf die Objektdaten zugreifen und auch nicht direkt auf den State. Bei den anderen geht es...?

                              LMS6.jpg

                              ArmilarA 1 Antwort Letzte Antwort
                              0
                              • E Elluminatus

                                @armilar
                                Ich kann leider nichts davon machen, ich habe kein Zahnrad, keinen Stift und kann nicht auf die Objektdaten zugreifen und auch nicht direkt auf den State. Bei den anderen geht es...?

                                LMS6.jpg

                                ArmilarA Offline
                                ArmilarA Offline
                                Armilar
                                Most Active Forum Testing
                                schrieb am zuletzt editiert von
                                #170

                                @elluminatus sagte in SONOFF NSPanel mit Lovelace UI:

                                @armilar
                                Ich kann leider nichts davon machen, ich habe kein Zahnrad, keinen Stift und kann nicht auf die Objektdaten zugreifen und auch nicht direkt auf den State. Bei den anderen geht es...?

                                LMS6.jpg

                                64ae6eaa-f86a-4847-ab96-67026caa706f-image.png Der ist an?

                                Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
                                https://github.com/joBr99/nspanel-lovelace-ui/wiki

                                Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                E 1 Antwort Letzte Antwort
                                0
                                • ArmilarA Armilar

                                  @elluminatus sagte in SONOFF NSPanel mit Lovelace UI:

                                  @armilar
                                  Ich kann leider nichts davon machen, ich habe kein Zahnrad, keinen Stift und kann nicht auf die Objektdaten zugreifen und auch nicht direkt auf den State. Bei den anderen geht es...?

                                  LMS6.jpg

                                  64ae6eaa-f86a-4847-ab96-67026caa706f-image.png Der ist an?

                                  E Offline
                                  E Offline
                                  Elluminatus
                                  schrieb am zuletzt editiert von
                                  #171

                                  @armilar ja ist er

                                  ArmilarA 2 Antworten Letzte Antwort
                                  0
                                  • E Elluminatus

                                    @armilar ja ist er

                                    ArmilarA Offline
                                    ArmilarA Offline
                                    Armilar
                                    Most Active Forum Testing
                                    schrieb am zuletzt editiert von
                                    #172

                                    @elluminatus sagte in SONOFF NSPanel mit Lovelace UI:

                                    @armilar ja ist er

                                    Bist du von den Berechtigungen limitiert?

                                    Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
                                    https://github.com/joBr99/nspanel-lovelace-ui/wiki

                                    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                    E 1 Antwort Letzte Antwort
                                    0
                                    • E Elluminatus

                                      @armilar ja ist er

                                      ArmilarA Offline
                                      ArmilarA Offline
                                      Armilar
                                      Most Active Forum Testing
                                      schrieb am zuletzt editiert von Armilar
                                      #173

                                      @elluminatus sagte in SONOFF NSPanel mit Lovelace UI:

                                      @armilar ja ist er

                                      Könntest du mal versuchen den Alias mit dem Alias-Manager zu öffnen?

                                      40300510-08b5-45bb-a4e7-b538afdd4b8f-image.png

                                      Da dürfte es auch gehen

                                      Installationsanleitung, Tipps, Alias-Definitionen, FAQ für das Sonoff NSPanel mit lovelace UI unter ioBroker
                                      https://github.com/joBr99/nspanel-lovelace-ui/wiki

                                      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                      1 Antwort Letzte Antwort
                                      0
                                      • ArmilarA Armilar

                                        @elluminatus sagte in SONOFF NSPanel mit Lovelace UI:

                                        @armilar ja ist er

                                        Bist du von den Berechtigungen limitiert?

                                        E Offline
                                        E Offline
                                        Elluminatus
                                        schrieb am zuletzt editiert von
                                        #174

                                        @armilar Wie kann ich dies erkennen, bzw. wo kann ich dies überprüfen?

                                        E 1 Antwort Letzte Antwort
                                        0
                                        • E Elluminatus

                                          @armilar Wie kann ich dies erkennen, bzw. wo kann ich dies überprüfen?

                                          E Offline
                                          E Offline
                                          Elluminatus
                                          schrieb am zuletzt editiert von Elluminatus
                                          #175

                                          @elluminatus Dort ist er nicht angelegt

                                          LMS7.jpg

                                          Das Bild ist dort auch zuende.

                                          Hab jetzt nochmal eine neue Struktur angelegt

                                          LMS8.jpg

                                          Kann aber trotzdem nicht mehr sehen oder machen

                                          LMS9.jpg

                                          ArmilarA 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

                                          321

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          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