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

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

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

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

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.
  • WalW Wal

    Kann ich bestätigen, eben getestet.

    IMG_20221003_135648.jpg

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

    @wal sagte in SONOFF NSPanel mit Lovelace UI:

    Kann ich bestätigen, eben getestet.

    Dann mache ich das parametrierbar für US auf 5.

    Danke euch beiden... 🤙

    Edit: Erledigt... Ist in der DEV und wird mit dem nächsten Release ausgeliefert...

    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 Reply Last reply
    0
    • WalW Wal

      @armilar ,
      nutze es nur als Thermostat und Anzeige der Regenwasserzisterne, mehr Zeit wollte ich da jetzt nicht investieren, deshalb habe ich noch nicht viel getestet. Das Display kann ein paar Zeilen mehr darstellen laut Datenblatt, habe aber kein Vergleich zum EU-Panel.

      K Offline
      K Offline
      Kuckuckmann
      wrote on last edited by
      #146

      @wal
      Das finde ich strange, den laut Datenblatt ist in der EU und in der US Version das gleiche Display verbaut.

      NSPanel Dokumentation im GitHub Wiki:

      https://github.com/joBr99/nspanel-lovelace-ui/wiki

      E ArmilarA J 3 Replies Last reply
      0
      • K Kuckuckmann

        @wal
        Das finde ich strange, den laut Datenblatt ist in der EU und in der US Version das gleiche Display verbaut.

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

        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 1 Reply Last reply
        0
        • I icemanmw

          @armilar said in SONOFF NSPanel mit Lovelace UI:

          @icemanmw sagte in SONOFF NSPanel mit Lovelace UI:

          Hi, ich habe die Aliase : Licht , Hue Licht , Dimmer (und für das Radio auch eine Taste).
          Licht -> nur AN AUS Lichtschalter
          Dimmer -> AN AUS und Helligkeit Lichtschalter
          Hue -> vollständig HUE-Light Farbe
          soweit geht auch alles, bis auf die Darstellung der Farben der GRID

          Es gibt dazu wohl auch ein abgeschlossenes ISSUE auf GITHUB
          /joBr99/nspanel-lovelace-ui/issues/433

          Muss das mal nachbauen - kann einen Tag dauern. Eigentlich geht das... ioBroker ist da ne ecke flexibler als Home Assistant (dazu gehört übrigens auch der Punkt 433) Der Issue hat nix mit ioBroker zu tun - separate Farben konnten wir immer schon.

          AMBIENTE ist auch eine TASTE die eine Lichter-Gruppe steuert, hab ich oben vergessen

          hier noch die Bilder wenn :
          alles ist AUS

          aus.jpg

          alles ist AN:
          An.jpg

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

          @icemanmw sagte in SONOFF NSPanel mit Lovelace UI:

          @armilar said in SONOFF NSPanel mit Lovelace UI:

          @icemanmw sagte in SONOFF NSPanel mit Lovelace UI:

          Hi, ich habe die Aliase : Licht , Hue Licht , Dimmer (und für das Radio auch eine Taste).
          Licht -> nur AN AUS Lichtschalter
          Dimmer -> AN AUS und Helligkeit Lichtschalter
          Hue -> vollständig HUE-Light Farbe
          soweit geht auch alles, bis auf die Darstellung der Farben der GRID

          Es gibt dazu wohl auch ein abgeschlossenes ISSUE auf GITHUB
          /joBr99/nspanel-lovelace-ui/issues/433

          Muss das mal nachbauen - kann einen Tag dauern. Eigentlich geht das... ioBroker ist da ne ecke flexibler als Home Assistant (dazu gehört übrigens auch der Punkt 433) Der Issue hat nix mit ioBroker zu tun - separate Farben konnten wir immer schon.

          AMBIENTE ist auch eine TASTE die eine Lichter-Gruppe steuert, hab ich oben vergessen

          hier noch die Bilder wenn :
          alles ist AUS

          aus.jpg

          alles ist AN:
          An.jpg

          So, Test ist durchgelaufen und das ist das Ergebnis:

          • Bei dem Alias Licht habe ich keine Probleme mit deiner Einstellung
          • Bei dem Alias Dimmer ist ein Bug im Skript. Es arbeitet aktuell nur mit der defaultColor aus der Config nicht mit der OffColor aus dem PageItem.
          • Bei dem Alias Hue ist ebenfalls ein Bug. Solange der DP Hue verdrahtet ist, wird die verwendete Farbe berechnet.
          • Bei der Taste gibt es keinen "Off" Zustand und wird es auch nie geben. Der ist nur für für Szenen, etc. gedacht. Solange man darauf drückt, kann der auch nur diese eine Aktion durchführen. Ergo auch nur die onColor

          Für deinen Workaround (Bis es eine neue Version des TS-Skript gibt), solltest du in der

          export const config: Config = {
              ...
              defaultOffColor: Blue,
              defaultOnColor: Green,
              defaultColor: Blue,
          

          verwenden. Damit sollten alle Zustände bis auf den HUE korrekt sein.

          Mit dem HUE musst du bis zur nächsten Version (sollte aber bald kommen) warten.

          Die Originalfarbe für aus (lovelace) wäre übrigens im Skript "HMIOff", statt Blue

          Wenn du stattdessen Ambient nicht als Szene setzten möchtest, sondern Szene On/Off, dann solltest du einen Alias Schalter benutzen, in 0_userdata einen Datenpunkt (boolean) setzten und z.B. ein Blockly verwenden, mit dem du die Szene bei true und bei false unterschiedlich steuern kannst.

          Gleiches dann für das Radio. Bei Trigger true dann in den Alexa2 Adapter schreiben. Bei Trigger false --> pause (oder DeviceStop) im Alexa2 auf true setzten

          Dann kannst du alles an- und ausschalten oder zwischen gedimmt (Ambient) und Normal schalten.

          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.

          I 1 Reply Last reply
          0
          • K Kuckuckmann

            @wal
            Das finde ich strange, den laut Datenblatt ist in der EU und in der US Version das gleiche Display verbaut.

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

            @kuckuckmann sagte in SONOFF NSPanel mit Lovelace UI:

            @wal
            Das finde ich strange, den laut Datenblatt ist in der EU und in der US Version das gleiche Display verbaut.

            Im Prinzip wird es das auch sein. Nur mit unterschiedlichen Abmessungen.

            Aus der Firmware heraus beommen wir mit Startup die Infos - Die werden in einen ioBroker-Datenpunkt (heute aktuell auch schon) geschrieben. Wenn "eu" - dann 4 😉

            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 Reply Last reply
            0
            • K Kuckuckmann

              @wal
              Das finde ich strange, den laut Datenblatt ist in der EU und in der US Version das gleiche Display verbaut.

              J Offline
              J Offline
              joBr99
              wrote on last edited by
              #150

              @kuckuckmann

              Das US Panel hat tatsächlich das gleiche Display, bei der EU Version sind 30px hinter dem Rand rechts versteckt. Der Platz für die 5. Zeile bei US-P kommt aber hauptsächlich dazu zu Stande, dass das Display hochkant genutzt wird.

              1 Reply Last reply
              0
              • 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
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          613

                                          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