Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Sonos Favoriten auslesen und über Dialog auswählen

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Sonos Favoriten auslesen und über Dialog auswählen

    This topic has been deleted. Only users with topic management privileges can see it.
    • cash
      cash Most Active last edited by

      Sieht wirklich top aus. Das einzige was nun noch fehlt wäre die Möglichkeit von Random Play für die Favoriten. :mrgreen:

      1 Reply Last reply Reply Quote 0
      • M
        Mogli96 last edited by

        Hallo pix,

        ich bin neu hier, würde aber auch gerne meine Sonos in VIS einbinden allerdings finde ich diese Widgets die du verwendest nicht kannst Du mir sagen wie ich diese bekomme.

        Danke und Gruß

        1 Reply Last reply Reply Quote 0
        • D
          dominik.braun82 last edited by

          Hallo zusammen.

          Habe mich auch lange eingelesen, aber ich komme nicht weiter.

          Hat jemand einen Tip für mich?

          Was ich getan habe:

          javascript hinzugefügt. Dann bei scripte den Code eingefügt und gestartet-

          //GetSonosFavorites
          var FavoritesObj  = $('channel[state.id=*.favorites_list]');
          function GetSonosFavorites() {
              FavoritesObj.each(function (id, i){
                  var Favorites = String(getState(id).val);
                  var Favorites_list = [];
                  var SonosDevice
                  var NewFavorites = "";
          
                  SonosDevice = (id.split("."))[3];
          
                  Favorites_list = Favorites.split(",");
          
                  Favorites_list.forEach(function (FavoriteName){
                      var FavoriteNameTrimmed = (FavoriteName.trim()).replace(/\s+/g, '%20');
                      NewFavorites += "[" + FavoriteName +"](\"http://192.168.178.40:8082/vis/index.html?MyHome#view-sonos\")
          ";
                  });
          
                  createState('Sonos.' + SonosDevice + '_Favorites', "");
                  setState('Sonos.' + SonosDevice + '_Favorites', NewFavorites); 
                  log("Sonos Favoriten aktualisiert für " + SonosDevice);
              });
          }
          
          FavoritesObj.on(function() {
             GetSonosFavorites(); //Aktualisiert die Favoriten, wenn sie geändert werden.
          });
          

          als zweites script Dieses eingefügt und gestartet…

          Ich habe den Sonos Adapter installiert. Ich kann hier auch darauf zugreifen.

          Dann habe ich simple-api installiert.

          Hier die Einstellungen:

          Erweitere WEB Adapter: keins

          IP: PIv4 0.0.0.0 Alle IPs zulassen

          Port: 8087

          Laufen unter Anwender Admin

          Dann habe ich in meiner aktuellen View ein HTML eingefügt und folgenden Code ei "HTML" eingetragen

          Muss ich an den scripten noch Änderungen vornehmen?

          Ich sehe in der View nämlich nichts… 😞

          Kann denke ich nicht viel fehlen, oder?

          🙂

          Danke

          1 Reply Last reply Reply Quote 0
          • D
            dominik.braun82 last edited by

            kann mir jemand helfen?

            Soll ich weitere Infos zu Verfügung stellen?

            1 Reply Last reply Reply Quote 0
            • C
              Conquest last edited by

              @dominik.braun82:

              kann mir jemand helfen?

              Soll ich weitere Infos zu Verfügung stellen? `

              Hallo Dominik,

              also bei mir funktioniert es so.

              Ich hab diese beiden Scripte angelegt:

              createState('sonos.favTexte', '', {
                  type: 'string',
                  def: ''
              });
              
              function formatList(list) {
                  setState('sonos.favTexte', list.replace(/, /g,';'));
              }
              
              var favList = getState("sonos.0.root.192_168_178_23.favorites_list").val;
              formatList(favList);  // Script start
              
              // Änderung der Favoriten-Liste
              on("sonos.0.root.192_168_178_23.favorites_list", function(dp) {
                  formatList(dp.state.val);
              });
              
              //GetSonosFavorites
              var FavoritesObj  = $('channel[state.id=*.favorites_list]');
              function GetSonosFavorites() {
                  FavoritesObj.each(function (id, i){
                      var Favorites = String(getState(id).val);
                      var Favorites_list = [];
                      var SonosDevice;
                      var NewFavorites = "";
              
                      SonosDevice = (id.split("."))[3];
              
                      Favorites_list = Favorites.split(",");
              
                      Favorites_list.forEach(function (FavoriteName){
                          var FavoriteNameTrimmed = (FavoriteName.trim()).replace(/\s+/g, '%20');
                          // NewFavorites += "[" + FavoriteName +"](\"http://192.168.178.346:8082/vis/index.html?#Sonos\")
              ";
                          NewFavorites += "[" + FavoriteName +"](\"http://192.168.178.46:8082/vis/index.html?#Sonos\")";
              
                      });
              
                      createState('Sonos.' + SonosDevice + '_Favorites', "");
                      setState('Sonos.' + SonosDevice + '_Favorites', NewFavorites); 
                      log("Sonos Favoriten aktualisiert für " + SonosDevice);
                  });
              }
              
              FavoritesObj.on(function() {
                 GetSonosFavorites(); //Aktualisiert die Favoriten, wenn sie geändert werden.
              });
              

              Dann habe ich in einem Basic-Html Widget folgendes unter HTML eingetragen:

              Und im Bild siehst du noch mein Widget zur Auswahl der Favoriten mit Einstellungen.

              Hoffe ich konnte dir helfen bin auch noch Anfänger 😄

              LG Torsten
              470_screenshot-localhost-8082-2018.05.29-04-44-49.png

              1 Reply Last reply Reply Quote 0
              • D
                dominik.braun82 last edited by

                Hi.

                Jetzt bin ich total verwirrt.

                Erstmal Danke für die Antwort 🙂

                Wo ist denn das HTML Widget? In den Screenshot sieht man ein Drop-Down Feld. Davon war hier noch keine Rede :roll:

                Hab jetzt auch das Drop Down Feld eingefügt, aber die favorites_set ist bei mir auch leer obwohl ich Favoriten drin hab.

                7511_2018-05-29_09h55_27.jpg

                7511_2018-05-29_10h22_22.jpg

                7511_2018-05-29_10h24_14.jpg

                Kommst Du nicht zufällig aus dem Saarland :lol:

                Wie ist das jetzt mit dem HTML Widet….. Wo ist das?

                1 Reply Last reply Reply Quote 0
                • C
                  Conquest last edited by

                  Nein komme leider nicht aus dem Saarland.

                  Das HTML-Widget befindet sich einfach irgendwo auf der View. Bei mir links unten das kleine weiße Quadrat.

                  Du hast die Einstellungen von mir einfach übernommen oder ist bei dir auch alles unter javascript.5 abgelegt ansonsten trag mal noch deine Javascript-Instanz bei Texte und Werte ein.

                  Werden den deine Favoriten überhaupt abgerufen also werden sie unter Objekte angezeigt?

                  LG Torsten

                  Gesendet von meinem MHA-L29 mit Tapatalk

                  1 Reply Last reply Reply Quote 0
                  • D
                    dominik.braun82 last edited by

                    Hi.

                    Also unter Objekte steht folgendes:

                    7511_2018-05-29_20h34_39.jpg

                    In Deinem Code waren auch 3 IP´s drin. (.46, .346 und .23)

                    Ich habe hier jeweils meine SONOS IP eingetragen .40

                    Ist das korrekt?

                    Habe auch jetzt {JavaScript.0.sonos.favTexte} und {JavaScript.0.sonos.favTexte} aber auch ohne Erfolg.

                    1 Reply Last reply Reply Quote 0
                    • D
                      dominik.braun82 last edited by

                      evtl. hilft Dir das noch weiter…

                      7511_2018-05-29_20h46_48.jpg

                      7511_2018-05-29_20h47_07.jpg

                      1 Reply Last reply Reply Quote 0
                      • D
                        dominik.braun82 last edited by

                        Habe jetzt die das Object ID der Dropdownloste geändert von favorites set zu favorites list da dort Daten drin waren. Darauf hin erscheint auch bei den Objekten bei favorites list undefined. Scheint also nicht am Sonos selbst zu hängen?

                        7511_2018-05-29_20h52_04.jpg

                        1 Reply Last reply Reply Quote 0
                        • D
                          dominik.braun82 last edited by

                          Hat geklappt…. 🙂

                          Habe alles nochmal neu angelegt. Schritt für Schritt.

                          Danke

                          1 Reply Last reply Reply Quote 0
                          • A
                            Alero last edited by Alero

                            Hi,

                            ich muss das Thema hier noich einmal aufgreifen.
                            Installiert : Sonos Apt. Simple api.
                            Über den Sonos Adapt. kann ich auch die webseite aufrufen.
                            Ich habe mir das Widget ein wenig umgebaut.
                            Bei den Fav. bleibe ich stecken. Hier koimme ich nicht weiter.
                            Habe beide Scripte als Javascrip eingerichtet Fav un text.
                            Bei Fav bekomme ich eine FM:
                            avascript.0 script.js.common.Sonos_Fav compile failed: at script.js.common.Sonos_Fav:17
                            FAV

                            //GetSonosFavorites
                            var FavoritesObj = $('channel[state.id=*.favorites_list]');
                            function GetSonosFavorites() {
                            FavoritesObj.each(function (id, i){
                            var Favorites = String(getState(id).val);
                            var Favorites_list = [];
                            var SonosDevice;
                            var NewFavorites = "";

                                SonosDevice = (id.split("."))[3];
                            
                                Favorites_list = Favorites.split(",");
                            
                                Favorites_list.forEach(function (FavoriteName){
                                    var FavoriteNameTrimmed = (FavoriteName.trim()).replace(/\s+/g, '%20');
                                    // NewFavorites += "[" + FavoriteName +"](\"http://192.168.178.346:8082/vis/index.html?#Sonos\")
                            

                            ";
                            NewFavorites += "" + FavoriteName +"";

                                });
                            
                                createState('Sonos.' + SonosDevice + '_Favorites', "");
                                setState('Sonos.' + SonosDevice + '_Favorites', NewFavorites); 
                                log("Sonos Favoriten aktualisiert für " + SonosDevice);
                            });
                            

                            }

                            FavoritesObj.on(function() {
                            GetSonosFavorites(); //Aktualisiert die Favoriten, wenn sie geändert werden.
                            });


                            Text
                            createState('sonos.favTexte', '', {

                            type: 'string',
                            
                            def: ''
                            

                            });

                            function formatList(list) {

                            setState('sonos.favTexte', list.replace(/, /g,';'));
                            

                            }

                            var favList = getState("sonos.0.root.192_168_42_31.favorites_list").val;

                            formatList(favList); // Script start

                            // Änderung der Favoriten-Liste

                            on("sonos.0.root.192_168_42_31.favorites_list", function(dp) {

                            formatList(dp.state.val);
                            

                            });


                            Muss erst einmal den Fehler beheben.
                            es werden keine Fav angezeigt.
                            Hat jemand einen Idee?

                            Gruß
                            Alero

                            1 Reply Last reply Reply Quote 0
                            • M
                              michihorn @pix last edited by

                              @pix
                              Hallo Pix wo finde ich denn das Script?
                              Unbenannt.JPG
                              Gruß Michael

                              1 Reply Last reply Reply Quote 0
                              • M
                                michihorn last edited by michihorn

                                Hat sich schon erledigt, aber wie hast du das mit den Senderlogos hinbekommen?

                                M 1 Reply Last reply Reply Quote 0
                                • M
                                  michihorn @michihorn last edited by

                                  Ich antworte mir selbst 😉
                                  Bei Google einfach suchen:
                                  Unbenannt.JPG

                                  Das erste Suchergebnis ist dann von TunIn
                                  Unbenannt1.JPG
                                  Dann mit der rechten Maustaste auf das Logo klicken und "Bildadresse" kopieren

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

                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate
                                  FAQ Cloud / IOT
                                  HowTo: Node.js-Update
                                  HowTo: Backup/Restore
                                  Downloads
                                  BLOG

                                  524
                                  Online

                                  31.9k
                                  Users

                                  80.1k
                                  Topics

                                  1.3m
                                  Posts

                                  17
                                  49
                                  12739
                                  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