Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Hardware
  4. SONOFF NSPanel mit Lovelace UI

NEWS

  • Wartung am 15.11. – Forum ab 22:00 Uhr nicht erreichbar
    BluefoxB
    Bluefox
    11
    2
    200

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

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

SONOFF NSPanel mit Lovelace UI

SONOFF NSPanel mit Lovelace UI

Scheduled Pinned Locked Moved Hardware
lovelace uinspanelsonoff
7.7k Posts 271 Posters 6.7m Views 253 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • E Elluminatus

    Danke für die Hilfe vorhin mit der Fußbodenheizung in die Runde.

    Eine weitere Frage die ich noch habe ist mit dem anlegen der Media Seite. Habe eben gelesen das es da mit dem Geräte Manager einige Probleme gibt und im Wiki steht, dass man die vorgefertigten Skripte nehmen soll.

    Daher meine Frage: Gibt es hier jemanden, der Zuhause ein NSPanel und einen Logitech Media Server einsetzt und dafür ein Skript bereits geschrieben hat, denn über diesen Server kommt man dann ja sowohl an Spotify, als auch an alle Radiostationen. Die Squeezeboxen gibt es ja als Adapter im iobroker.

    Ich benutze den in vielen Räumen mit Picoreplayern auf Raspberry Pi Basis oder mit den Fire TV Sticks bzw. Cubes und Android App (Leider geht audible immer noch nicht): Nutze dies auch als Multiroom Lösung.

    Würde mich über eine Rückmeldung freuen, evtl. auch über eine Ergänzung im Wiki.

    Beste Grüße und Danke an die tolle Arbeit!

    Gruß Elluminatus

    ArmilarA Offline
    ArmilarA Offline
    Armilar
    Most Active Forum Testing
    wrote on last edited by Armilar
    #151

    @elluminatus sagte in SONOFF NSPanel mit Lovelace UI:

    Danke für die Hilfe vorhin mit der Fußbodenheizung in die Runde.

    Eine weitere Frage die ich noch habe ist mit dem anlegen der Media Seite. Habe eben gelesen das es da mit dem Geräte Manager einige Probleme gibt und im Wiki steht, dass man die vorgefertigten Skripte nehmen soll.

    Daher meine Frage: Gibt es hier jemanden, der Zuhause ein NSPanel und einen Logitech Media Server einsetzt und dafür ein Skript bereits geschrieben hat, denn über diesen Server kommt man dann ja sowohl an Spotify, als auch an alle Radiostationen. Die Squeezeboxen gibt es ja als Adapter im iobroker.

    Ich benutze den in vielen Räumen mit Picoreplayern auf Raspberry Pi Basis oder mit den Fire TV Sticks bzw. Cubes und Android App (Leider geht audible immer noch nicht): Nutze dies auch als Multiroom Lösung.

    Würde mich über eine Rückmeldung freuen, evtl. auch über eine Ergänzung im Wiki.

    Beste Grüße und Danke an die tolle Arbeit!

    Gruß Elluminatus

    Was hat denn der "Logitech Media Server" für Datenpunkte? Poste doch bitte mal einen Auszug aus den Objekten

    Im Prinzip sind die Skripte ja alle gleich aufgebaut, greifen lediglich auf unterschiedliche Datenpunkte der Adapter zu. Somit sollte die Alias-Verdrahtung zu einem anderen Adapter echt leicht umsetzbar sein.

    Im TS-Skript habe ich für diesen Fall auch bereits Optionen hinterlegt, die funktionieren sollten. Das heißt - wenn ein weiterer Adapter seine Arbeit verrichten sollte, als die aufgeführten.

    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 Reply Last reply
    0
    • ArmilarA Armilar

      @elluminatus sagte in SONOFF NSPanel mit Lovelace UI:

      Danke für die Hilfe vorhin mit der Fußbodenheizung in die Runde.

      Eine weitere Frage die ich noch habe ist mit dem anlegen der Media Seite. Habe eben gelesen das es da mit dem Geräte Manager einige Probleme gibt und im Wiki steht, dass man die vorgefertigten Skripte nehmen soll.

      Daher meine Frage: Gibt es hier jemanden, der Zuhause ein NSPanel und einen Logitech Media Server einsetzt und dafür ein Skript bereits geschrieben hat, denn über diesen Server kommt man dann ja sowohl an Spotify, als auch an alle Radiostationen. Die Squeezeboxen gibt es ja als Adapter im iobroker.

      Ich benutze den in vielen Räumen mit Picoreplayern auf Raspberry Pi Basis oder mit den Fire TV Sticks bzw. Cubes und Android App (Leider geht audible immer noch nicht): Nutze dies auch als Multiroom Lösung.

      Würde mich über eine Rückmeldung freuen, evtl. auch über eine Ergänzung im Wiki.

      Beste Grüße und Danke an die tolle Arbeit!

      Gruß Elluminatus

      Was hat denn der "Logitech Media Server" für Datenpunkte? Poste doch bitte mal einen Auszug aus den Objekten

      Im Prinzip sind die Skripte ja alle gleich aufgebaut, greifen lediglich auf unterschiedliche Datenpunkte der Adapter zu. Somit sollte die Alias-Verdrahtung zu einem anderen Adapter echt leicht umsetzbar sein.

      Im TS-Skript habe ich für diesen Fall auch bereits Optionen hinterlegt, die funktionieren sollten. Das heißt - wenn ein weiterer Adapter seine Arbeit verrichten sollte, als die aufgeführten.

      E Offline
      E Offline
      Elluminatus
      wrote on last edited by Elluminatus
      #152

      @armilar Danke für die weitere Antwort, hier also die Bilder der Datenpunkte:

      LMS1.jpg

      LMS2.jpg

      LMS3.jpg

      LMS4.jpg

      Und dies gibt es für jedes Abspielgerät. Es wäre also auch
      theoretisch möglich, hier für diverse Räume die Lautstärke individuell zu regeln etc...

      Ich hoffe ich habe das so richtig gemacht?

      Beste Grüße
      Elluminatus

      ArmilarA 1 Reply Last reply
      0
      • E Elluminatus

        @armilar Danke für die weitere Antwort, hier also die Bilder der Datenpunkte:

        LMS1.jpg

        LMS2.jpg

        LMS3.jpg

        LMS4.jpg

        Und dies gibt es für jedes Abspielgerät. Es wäre also auch
        theoretisch möglich, hier für diverse Räume die Lautstärke individuell zu regeln etc...

        Ich hoffe ich habe das so richtig gemacht?

        Beste Grüße
        Elluminatus

        ArmilarA Offline
        ArmilarA Offline
        Armilar
        Most Active Forum Testing
        wrote on last edited by
        #153


        @elluminatus sagte in SONOFF NSPanel mit Lovelace UI:

        @armilar Danke für die weitere Antwort, hier also die Bilder der Datenpunkte:

        LMS1.jpg

        LMS2.jpg

        LMS3.jpg

        LMS4.jpg

        Und dies gibt es für jedes Abspielgerät. Es wäre also auch
        theoretisch möglich, hier für diverse Räume die Lautstärke individuell zu regeln etc...

        Ich hoffe ich habe das so richtig gemacht?

        Beste Grüße
        Elluminatus

        Ich schätze mal vor dem piCoreKUE steht noch ein squeezeboxrpc.0., oder? Wir machen uns jetzt erstmal an einen Player...

        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 2 Replies Last reply
        0
        • ArmilarA Armilar


          @elluminatus sagte in SONOFF NSPanel mit Lovelace UI:

          @armilar Danke für die weitere Antwort, hier also die Bilder der Datenpunkte:

          LMS1.jpg

          LMS2.jpg

          LMS3.jpg

          LMS4.jpg

          Und dies gibt es für jedes Abspielgerät. Es wäre also auch
          theoretisch möglich, hier für diverse Räume die Lautstärke individuell zu regeln etc...

          Ich hoffe ich habe das so richtig gemacht?

          Beste Grüße
          Elluminatus

          Ich schätze mal vor dem piCoreKUE steht noch ein squeezeboxrpc.0., oder? Wir machen uns jetzt erstmal an einen Player...

          E Offline
          E Offline
          Elluminatus
          wrote on last edited by Elluminatus
          #154

          @armilar ja: squeezeboxrpc.0.Players.piCoreKUE

          1 Reply Last reply
          0
          • ArmilarA Armilar


            @elluminatus sagte in SONOFF NSPanel mit Lovelace UI:

            @armilar Danke für die weitere Antwort, hier also die Bilder der Datenpunkte:

            LMS1.jpg

            LMS2.jpg

            LMS3.jpg

            LMS4.jpg

            Und dies gibt es für jedes Abspielgerät. Es wäre also auch
            theoretisch möglich, hier für diverse Räume die Lautstärke individuell zu regeln etc...

            Ich hoffe ich habe das so richtig gemacht?

            Beste Grüße
            Elluminatus

            Ich schätze mal vor dem piCoreKUE steht noch ein squeezeboxrpc.0., oder? Wir machen uns jetzt erstmal an einen Player...

            E Offline
            E Offline
            Elluminatus
            wrote on last edited by Elluminatus
            #155

            @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 2 Replies Last reply
            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
              wrote on last edited by 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 Reply Last reply
              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
                wrote on last edited by 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 Reply Last reply
                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
                  wrote on last edited by 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 Reply Last reply
                  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
                    wrote on last edited by
                    #159

                    @armilar Kein Problem, ist ja trotzdem ein Hammer 🙂

                    1 Reply Last reply
                    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
                      wrote on last edited by 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 Reply Last reply
                      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
                        wrote on last edited by 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 Reply Last reply
                        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
                          wrote on last edited by
                          #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 Reply Last reply
                          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
                            wrote on last edited by 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 Reply Last reply
                            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
                              wrote on last edited by 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 Reply Last reply
                              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
                                wrote on last edited by
                                #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 Reply Last reply
                                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
                                  wrote on last edited by 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 Reply Last reply
                                  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
                                    wrote on last edited by
                                    #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 Reply Last reply
                                    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
                                      wrote on last edited by 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 Reply Last reply
                                      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
                                        wrote on last edited by
                                        #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 Reply Last reply
                                        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
                                          wrote on last edited by
                                          #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 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          148

                                          Online

                                          32.4k

                                          Users

                                          81.3k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe