Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Hardware
    4. Sonoff NSPanel

    NEWS

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    • Save The Date: ioBroker@Smart Living Forum Solingen, 14.06.

    Sonoff NSPanel

    This topic has been deleted. Only users with topic management privileges can see it.
    • R
      ronny130286 @Armilar last edited by ronny130286

      @armilar said in Sonoff NSPanel:

      @ronny130286 sagte in Sonoff NSPanel:

      @armilar
      ich haben mal noch ein Event erweitert 😉

      case "media-OnOff":
                  setIfExists(([alexaInstanz,'.Echo-Devices.',alexaDevice,'.Commands.deviceStop'].join('')), true)
                  break;
      

      Damit kann man dann die Gute wieder ausschalten 😉

      Vielleicht hast du Interesse an der Speaker-Auswahl in der cardMedia:

      oben im Variablen und Konstantenteil: (lassen sich die Devices einschränken)

      //Alexa-Instanz
      var alexaInstanz = "alexa2.0"
      var alexaDevice = "G0XXXXXXXXXXXXXXX"; //Primär zu steuendes Device
      
      // Wenn alexaSpeakerList definiert, dann werden Einträge verwendet, sonst alle relevanten Devices aus Alexa-Instanz
      // Speakerwechsel funktioniert nicht bei Radio/TuneIn sondern bei Playlists
      const alexaSpeakerList = []; //Beispiel ["Echo Spot Buero","Überall","Gartenhaus","Esszimmer","Heimkino"];
      

      GenerateMediaPage austauschen...

      function GenerateMediaPage(page: PageMedia): Payload[] {
          var id = page.items[0].id
          var out_msgs: Array<Payload> = [];
          out_msgs.push({ payload: "pageType~cardMedia" });
          if (existsObject(id)) {
      
              let name = getState(([alexaInstanz,'.Echo-Devices.',alexaDevice,'.Player.currentAlbum'].join(''))).val;     
              let media_icon = Icons.GetIcon("amazon-alexa");
              let title = getState(([alexaInstanz,'.Echo-Devices.',alexaDevice,'.Player.currentTitle'].join(''))).val;
              let author = getState(([alexaInstanz,'.Echo-Devices.',alexaDevice,'.Player.currentArtist'].join(''))).val;
              let volume = getState(([alexaInstanz,'.Echo-Devices.',alexaDevice,'.Player.volume'].join(''))).val;
              var iconplaypause = Icons.GetIcon("pause"); //pause
              if (getState(([alexaInstanz,'.Echo-Devices.',alexaDevice,'.Player.currentState'].join(''))).val) {
                  iconplaypause = Icons.GetIcon("pause"); //pause
              } else {
                  iconplaypause = Icons.GetIcon("play"); //play
              }
              let currentSpeaker = getState(([alexaInstanz,'.Echo-Devices.',alexaDevice,'.Info.name'].join(''))).val;
      //--------------------------------------------------------------------------------------------------------
      // nachfolgend alle Alexa-Devices (ist Online / Player- und Commands-Verzeichnis vorhanden) auflisten und verketten
      // Wenn Konstante alexaSpeakerList mind. einen Eintrag enthält, wird die Konstante verwendet - ansonsten Alle Devices aus dem Alexa Adapter
              let speakerlist = "";
              if (alexaSpeakerList.length > 0) {
                  for (let i_index in alexaSpeakerList) {
                      speakerlist = speakerlist + alexaSpeakerList[i_index] + "?";
                  } 
              } else {        
                  let i_list = Array.prototype.slice.apply($('[state.id="' + alexaInstanz + '.Echo-Devices.*.Info.name"]'));
                  for (let i_index in i_list) {
                      let i = i_list[i_index];
                      let deviceId = i;
                      deviceId = deviceId.split('.');
                      if (getState(([alexaInstanz,'.Echo-Devices.',deviceId[3],'.online'].join(''))).val && 
                          existsObject(([alexaInstanz,'.Echo-Devices.',deviceId[3],'.Player'].join(''))) &&
                          existsObject(([alexaInstanz,'.Echo-Devices.',deviceId[3],'.Commands'].join('')))) {
                              speakerlist = speakerlist + getState(i).val + "?";
                      }
                  }
              }
              speakerlist = speakerlist.substring(0,speakerlist.length-1);
      //--------------------------------------------------------------------------------------------------------
              let onoffbutton = 1;
      
              out_msgs.push({ payload: "entityUpd~" + 
                                        name + "~" +
                                        id + "~" +
                                        "~" +         //????
                                        media_icon + "~" +
                                        title + "~" +
                                        author + "~" +
                                        volume + "~" +
                                        iconplaypause + "~" +
                                        currentSpeaker + "~" +
                                        speakerlist + "~" +
                                        onoffbutton});
          }
          return out_msgs
      }
      

      und dann noch die Erweiterung der Funktion HandleButtonEvent anpassen:

              case "media-back":
                  setIfExists(alexaInstanz + ".Echo-Devices." + alexaDevice + ".Player.controlPrevious", true)
                  break;
              case "media-pause":
                  if (getState(([alexaInstanz,'.Echo-Devices.',alexaDevice,'.Player.currentState'].join(''))).val === true) {
                      setIfExists(alexaInstanz + ".Echo-Devices." + alexaDevice + ".Player.controlPause", true)
                  } else {
                      setIfExists(alexaInstanz + ".Echo-Devices." + alexaDevice + ".Player.controlPlay", true)
                  }
                  break;
              case "media-next":
                  setIfExists(alexaInstanz + ".Echo-Devices." + alexaDevice + ".Player.controlNext", true)
                  break;
              case "volumeSlider":
                  setIfExists(alexaInstanz + ".Echo-Devices." + alexaDevice + ".Player.volume", parseInt(words[4]))
                  break;
              case "speaker-sel":
                  let i_list = Array.prototype.slice.apply($('[state.id="' + alexaInstanz + '.Echo-Devices.*.Info.name"]'));
                  for (let i_index in i_list) {
                      let i = i_list[i_index];
                      if ((getState(i).val) === words[4]){
                          let deviceId = i;
                          deviceId = deviceId.split('.');
                          setIfExists(alexaInstanz + ".Echo-Devices." + alexaDevice + ".Commands.textCommand", "Schiebe meine Musik auf " + words[4]);
                          alexaDevice = deviceId[3]
                      }
                  }
                  break;
              case "media-OnOff":
                  setIfExists(([alexaInstanz,'.Echo-Devices.',alexaDevice,'.Commands.deviceStop'].join('')), true)
                  break;
      

      Bei mir funktioniert das echt gut. Also mit Playlists (nicht mit Radiosendern/TuneIn)

      @joBr99: Ist das Feld für die Speaker-Auswahl auf ca. 200 Zeichen limitiert? Ich könnte 300+ gebrauchen. Irgendwann wird der String aufgrund der Anzahl an Device-Names abgeschnitten. 😉
      @britzelpuf: Etwas mehr zum Code schreddern, wenn der Media-Alias irgendwann mal im ioBroker funktioniert 😉

      VG
      Armilar

      Super danke 🙂

      Kann das sein dass das umschalten etwas hackelig funktioniert?

      Armilar 1 Reply Last reply Reply Quote 0
      • Armilar
        Armilar Most Active Forum Testing @ronny130286 last edited by Armilar

        @ronny130286 umschalten? Oh war noch gedanklich beim vorherigen Thema mit den HUE's 😉

        Ich konnte eigentlich sehr schön von A nach B wechseln. Oder meinst du die Devices selbst beim durchschalten? Habe den Eindruck, das das Panel pro Wort ein Tastendruck benötigt. Kannst du das in etwa bestätigen? Also bei mir sind solche Geräte wie Überall, Gartenhaus wesentlich schneller als Echo Studio Wohnzimmer 1, etc.

        R 2 Replies Last reply Reply Quote 0
        • R
          ronny130286 @Armilar last edited by

          @armilar

          Ja, ich kann bei mir nur auf den Pfeil rechts unten drücken und dann schaltet er die Geräte durch, aber ich muss da gefühlt 10x drücken bevor sich etwas ändert. Oder benutze ich es falsch?

          Armilar J 3 Replies Last reply Reply Quote 0
          • Armilar
            Armilar Most Active Forum Testing @ronny130286 last edited by

            @ronny130286 sagte in Sonoff NSPanel:

            @armilar

            Ja, ich kann bei mir nur auf den Pfeil rechts unten drücken und dann schaltet er die Geräte durch, aber ich muss da gefühlt 10x drücken bevor sich etwas ändert. Oder benutze ich es falsch?

            habe oben den Beitrag noch erweitert

            1 Reply Last reply Reply Quote 0
            • R
              ronny130286 @Armilar last edited by

              @armilar said in Sonoff NSPanel:

              @ronny130286 umschalten? Oh war noch gedanklich beim vorherigen Thema mit den HUE's 😉

              Ich konnte eigentlich sehr schön von A nach B wechseln. Oder meinst du die Devices selbst beim durchschalten? Habe den Eindruck, das das Panel pro Wort ein Tastendruck benötigt. Kannst du das in etwa bestätigen? Also bei mit sind solche Geräte wie Überall, Gartenhaus wesentlich schneller als Echo Studio Wohnzimmer 1, etc.

              Hab's gesehen:) , das kann ich in etwa bestätigen pro Wort 1 Tastendruck

              1 Reply Last reply Reply Quote 0
              • Armilar
                Armilar Most Active Forum Testing @ronny130286 last edited by

                @ronny130286 sagte in Sonoff NSPanel:

                @armilar

                Ja, ich kann bei mir nur auf den Pfeil rechts unten drücken und dann schaltet er die Geräte durch, aber ich muss da gefühlt 10x drücken bevor sich etwas ändert. Oder benutze ich es falsch?

                Da müssen wir @joBr99 fragen. Sobald die Werte drin sind arbeitet die lovelace-UI. Ich bekomme erst das ausgewählte Echo-Device wieder zurück.

                1 Reply Last reply Reply Quote 0
                • J
                  joBr99 @Armilar last edited by joBr99

                  @armilar

                  https://github.com/joBr99/nspanel-lovelace-ui/blob/main/apps/nspanel-lovelace-ui/luibackend/helper.py

                  die pos_to_color(x, y) macht aus der position nen rgb wert, ist halt python und kein java/typescript 🙂 ne c++ version könnt ich vermutlich noch auftreiben, aber das will ja eigentlich auch keiner

                  edit: das sollte dem kram auch ziemlich nahe kommen, kann nur sein, dass die segmente vertauscht sind oder sowas

                  https://stackoverflow.com/questions/52749397/how-do-i-get-color-value-from-a-color-wheel-based-on-x-y-coordinates

                  Armilar 2 Replies Last reply Reply Quote 0
                  • J
                    joBr99 @ronny130286 last edited by

                    @ronny130286

                    kein plan, wenn du die payload für die seite postest kann ich's ausprobieren (also die commands, die er für die seite zum panel schickt)

                    Armilar 1 Reply Last reply Reply Quote 0
                    • Armilar
                      Armilar Most Active Forum Testing @joBr99 last edited by

                      @jobr99 sagte in Sonoff NSPanel:

                      @armilar

                      https://github.com/joBr99/nspanel-lovelace-ui/blob/main/apps/nspanel-lovelace-ui/luibackend/helper.py

                      die pos_to_color(x, y) macht aus der position nen rgb wert, ist halt python und kein java/typescript 🙂 ne c++ version könnt ich vermutlich noch auftreiben, aber das will ja eigentlich auch keiner

                      Danke, dass Stichwort reicht mir schon (C++ ist doch auch cool 🙂 )

                      Da wo (nach den Icon-Updates) gestern noch ein nettes Icon für Audio-Devices (was du beim großen Online-Kaufhaus erwerben kannst) war, ist jetzt ein schwarzers Loch. Besteht die Chance, das zurück zu bekommen? --> "amazon-alexa"

                      J 2 Replies Last reply Reply Quote 0
                      • J
                        joBr99 @Armilar last edited by joBr99

                        @armilar said in Sonoff NSPanel:

                        amazon-alexa

                        https://github.com/Templarian/MaterialDesign/issues/5409

                        sieht so aus als ob das icon entfernt wurde

                        hab das cheatsheet im repo noch nicht geupdatet, das hier ist das aktuelle für die dev version

                        https://htmlpreview.github.io/?https://github.com/jobr99/Generate-HASP-Fonts/blob/master/cheatsheet.html

                        mririgoyen created this issue in Templarian/MaterialDesign

                        closed RELEASED - Version 6.1.95 - Breaking Changes #5409

                        Armilar 1 Reply Last reply Reply Quote 0
                        • Armilar
                          Armilar Most Active Forum Testing @joBr99 last edited by Armilar

                          @jobr99 sagte in Sonoff NSPanel:

                          @ronny130286

                          kein plan, wenn du die payload für die seite postest kann ich's ausprobieren (also die commands, die er für die seite zum panel schickt)

                          so etwas: bei den längeren Device-Namen brauchst du etwas länger.

                          entityUpd~Na denn ffn~alias.0.NSPanel_1.Alexa.PlayerBuero~alias.0.NSPanel_1.Alexa.PlayerBuero~~PINK - CAN WE PRETEND~radio ffn~27~~Echo Spot Buero~Echo Spot Buero?Echo Dot Schlafzimmer Kind?Echo Dot Badezimmer?Echo Dot Gästezimmer?Echo Dot Küche?Echo Dot Schlafzimmer Eltern?Echo Dot Arbeitszimmer?Echo Plus Esszimmer?Echo Studio 1 Wohnzimmer?Echo Studio 2 Wohnzimmer?Echo Esszimmer?Echo 4 Gartenhaus 1?Echo 4 Gartenhaus 2?Überall?Gartenhaus?Esszimmer?Heimkino~1

                          J 1 Reply Last reply Reply Quote 0
                          • J
                            joBr99 @Armilar last edited by

                            @armilar

                            https://github.com/ilyavolodin/NSPanel/blob/main/colorwheel.h

                            1 Reply Last reply Reply Quote 0
                            • Armilar
                              Armilar Most Active Forum Testing @joBr99 last edited by

                              @jobr99 sagte in Sonoff NSPanel:

                              @armilar said in Sonoff NSPanel:

                              amazon-alexa

                              https://github.com/Templarian/MaterialDesign/issues/5409

                              sieht so aus als ob das icon entfernt wurde

                              hab das cheatsheet im repo noch nicht geupdatet, das hier ist das aktuelle für die dev version

                              https://htmlpreview.github.io/?https://github.com/jobr99/Generate-HASP-Fonts/blob/master/cheatsheet.html

                              Danke - tzz, 1000 Icons neu und das weg 😕 . Dann muss wohl ne Alternative rein 😉

                              mririgoyen created this issue in Templarian/MaterialDesign

                              closed RELEASED - Version 6.1.95 - Breaking Changes #5409

                              1 Reply Last reply Reply Quote 0
                              • J
                                joBr99 @Armilar last edited by

                                @armilar
                                in meinem backend sortiere ich das aktuell spielende device ans ende, damit man am anfang nicht zwei mal drücken muss

                                ansonsten reagiert das bei mir aber eigentlich völlig normal

                                bandicam 2022-04-21 21-16-38-956.mp4

                                Armilar 1 Reply Last reply Reply Quote 0
                                • Armilar
                                  Armilar Most Active Forum Testing @joBr99 last edited by

                                  @jobr99 ja, sieht gut aus - nicht am echtenPanel - kann nochmal versuchen die Leerzeichen mit Bindestrichen zu versehen und die beim einlesen wieder entfernen. Vielleicht hilft das

                                  1 Reply Last reply Reply Quote 0
                                  • Armilar
                                    Armilar Most Active Forum Testing @joBr99 last edited by

                                    @jobr99 sagte in Sonoff NSPanel:

                                    @armilar

                                    https://github.com/joBr99/nspanel-lovelace-ui/blob/main/apps/nspanel-lovelace-ui/luibackend/helper.py

                                    die pos_to_color(x, y) macht aus der position nen rgb wert, ist halt python und kein java/typescript 🙂 ne c++ version könnt ich vermutlich noch auftreiben, aber das will ja eigentlich auch keiner

                                    edit: das sollte dem kram auch ziemlich nahe kommen, kann nur sein, dass die segmente vertauscht sind oder sowas

                                    https://stackoverflow.com/questions/52749397/how-do-i-get-color-value-from-a-color-wheel-based-on-x-y-coordinates

                                    Falls du den python-code zur hand hast, dann brauche ich mich nicht mit Verschiebungen rumschlagen - Wäre Top

                                    J 1 Reply Last reply Reply Quote 0
                                    • J
                                      joBr99 @Armilar last edited by joBr99

                                      @armilar said in Sonoff NSPanel:

                                      https://github.com/joBr99/nspanel-lovelace-ui/blob/main/apps/nspanel-lovelace-ui/luibackend/helper.py

                                      das ist vermutlich auch ganz nützlich:

                                      https://stackoverflow.com/questions/52749397/how-do-i-get-color-value-from-a-color-wheel-based-on-x-y-coordinates

                                      Armilar 1 Reply Last reply Reply Quote 0
                                      • Armilar
                                        Armilar Most Active Forum Testing @joBr99 last edited by

                                        @jobr99 sagte in Sonoff NSPanel:

                                        @armilar said in Sonoff NSPanel:

                                        https://github.com/joBr99/nspanel-lovelace-ui/blob/main/apps/nspanel-lovelace-ui/luibackend/helper.py

                                        👍 ist auch viel schlanker

                                        Great SUN 1 Reply Last reply Reply Quote 0
                                        • Great SUN
                                          Great SUN @Armilar last edited by

                                          @armilar @joBr99 Weiss eigentlich einer von Euch, wo man die Nextion Firmware her bekommen kann, wenn es ein Update gibt?
                                          Einen HMI Editor hab ich ja schon einmal gefunden, muss nur noch die HMI Files, die die Grundlage für das NSPanel liefern suchen, dann kann ich das machen, was ich will 🙂

                                          Danke schonmal!

                                          J 1 Reply Last reply Reply Quote 0
                                          • J
                                            joBr99 @Great SUN last edited by

                                            @great-sun das HMI von Sonoff ist nicht veröffentlicht und auch das tft file für das display, gibt es nicht zum download, die version, die man auf discord bekommt wurde aus nem dump vom flash chip extrahiert (und den dump bekommst du auch nicht über serial, da musst du mit kabeln direkt an den flash chip aufm display controller)

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            1.0k
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

                                            78
                                            1548
                                            388697
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo