Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Steuerung günstiges Audio Multiroom-System (Silvercrest)

    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

    Steuerung günstiges Audio Multiroom-System (Silvercrest)

    This topic has been deleted. Only users with topic management privileges can see it.
    • Eisbaeeer
      Eisbaeeer Developer last edited by

      Naja, so schlecht klingt der Bericht ja auch wieder nicht. Man muss eben auch den Preis sehen. Man bekommt 3 der 18W Boxen für eine Sonos1. Sicher muss jeder für sich entscheiden, ob das System seinen Ansprüchen entspricht. Vor allem auch die Funktionen der App, die bei Sonos mit Sicherheit sehr viel umfangreicher sind, wie z.B. die Plex integration.

      Mich interessiert das System aber auch, vor allem wegen dem Preis. Ich muss mal suchen, ob es für "Frontier Silicon" schon ein node-module gibt. Dann wäre es einfach, einen Adapter zu bauen.

      Ohh Mann. Ich muss noch so viele Adpater bauen :roll: Es fehlt einfach die Zeit.

      Grüße Eisbaeeer

      1 Reply Last reply Reply Quote 0
      • apollon77
        apollon77 last edited by

        EIne Bitte: Alle AdapterIdeen bzw Planned Adapter im Trello zu haben wäre echt cool … vllt ergeben sich ja doubletten 🙂

        1 Reply Last reply Reply Quote 0
        • D
          Desa last edited by

          Vorschlag. Ihr Baut Adapter und ich Kauf mir auch eine mini Box 😄

          War auch am überlegen eine zu nehmen 😉

          1 Reply Last reply Reply Quote 0
          • Eisbaeeer
            Eisbaeeer Developer last edited by

            @Desa:

            Vorschlag. Ihr Baut Adapter und ich Kauf mir auch eine mini Box 😄 `

            Gegenvorschlag: Du kaufst dir 2 und schenkst uns eine zum Adapter bauen 😉

            1 Reply Last reply Reply Quote 0
            • D
              Desa last edited by

              ähh warte ich schau mal in meine Geldbörse …. warte .... warte .... hm iwie sagt das Dunkle Loch da drinne NEEEEE ^^

              Ich glaube da warte ich dann doch lieber ^^

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

                +1 wäre an so einem Adapter auch sehr interessiert und habe mal eine Trello Karte erstellt.

                1 Reply Last reply Reply Quote 0
                • S
                  spielberger32 last edited by

                  Also ich habe es mit meinen rudimentären JavaScript-Skills 😉 geschafft eine kleine Steuerung für meine Radios zu bauen. Ich kann über den ioBroker, also per viz-Oberfläche oder Alexa-Befehle aktuell die Radios mit folgenden Eigenschaften steuern:

                  • Ein/Ausschalten

                  • Gruppieren

                  • Radiosender auswählen

                  • Bestimmte Lautstärke setzen

                  Generell ist es bei mir konzeptioniert wie "Szenen" die ich als Befehlsabfolge in einem JavaScript gespeichert habe: z.B. "Standard Lautstärke", "Party Modus", "Morgen Radio" … etc ... Es werden aber "nur" meherere HTTP-Request-Befehle mit festen IP's gesendet. Es gibt keine Kommunikation zurück und erst recht keinen festen Adapter - Zustände werden nicht abgerufen und gespeichert. Das ist immerhin ein Anfang und ich kann es nutzen :oops:

                  Beispiele folgen 😉

                  1 Reply Last reply Reply Quote 0
                  • D
                    Desa last edited by

                    Is ja Gut 😄 , dann will ich mir mal nach dem Urlaub ein set holen und dann sehen wir mal ob die was taugen. :lol:

                    1 Reply Last reply Reply Quote 0
                    • S
                      spielberger32 last edited by

                      Wie versprochen hier ein Beispiel Skript mit dem das Gerät eingeschaltet und ein Radiosender ausgewählt wird. Notwendig ist die Script-Bibliothek xml2js um die Antworten der Geräte auswerten zu könenn. Ihr dürft gerne lachen was meine JavaScript-Kenntnisse angeht 😉 … hoch professionell ist das nicht

                      Was passiert ist folgendes:

                      • das Radio mit der festen IP wird angefragt ob es läuft und reagiert. Leider nötig, weil die Erreichbarkeit im Netzwerk einer der größten Bugs der günstigen Lautsprecher sind. Manchmal sind trotz Standby-Funktion einfach offline.

                      WENN ERREICHBAR:

                      • SET/netRemote.sys.power Gerät wird eingeschaltet

                      • SET/netRemote.sys.mode Modus wird auf Radio gesetzt

                      DANN 2 SEKUNDEN WARTEN BIS DER LAUTSPRECHER DIESE SCHRITTE AUSGEFÜHRT HAT

                      • CREATE_SESSION Eine Session-ID holen, damit durch die Optionen navigiert werden kann

                      DANN 2 SEKUNDEN WARTEN BIS DER LAUTSPRECHER DIESE SCHRITTE AUSGEFÜHRT HAT UND DIE ID GELSEN WURDE

                      • SET/netRemote.nav.state "Virtuelle" Menü-Navigation mit Session-ID einschalten

                      • SET/netRemote.nav.action.selectPreset Das entsprechende Radio-Preset wählen

                      DAS SCRIPT WIRD GESTOPPT

                      
                      var request = require('request');
                      var parseString = require('xml2js').parseString;
                      
                      var ip              ='192.168.XXX.XXX';
                      var pin             ='1234';
                      var radiostation    ='3';
                      var volume          ='3';
                      var link;
                      var sessionID;
                      
                      //Check connection, if true activate fs_command function
                        request(
                          { method: 'GET'
                          , uri: 'http://' + ip
                          , timeout: 1500
                          }
                        , function (error, response, body) {
                            // connection check
                          }).on('error', function(error) {
                          console.log(error);
                          }).on('response', function(response) {
                              if (response.statusCode == "200") {
                              console.log('Status Code ' + response.statusCode + ': sending command');
                      
                              timeout = setTimeout(function () {fs_power_mode();     }, 1000);
                      
                              }
                          }
                         );
                      
                      function fs_power_mode(){ 
                          link = 'http://' + ip + '/fsapi/SET/netRemote.sys.power' + "?pin=" + pin + '&value=1';
                          log(link);
                      
                          request(link, function (error, response, body) {
                                  var xml, result;
                                      parseString(body, function (err, result) {
                                          xml = JSON.stringify(result);
                                          //log("XML Objekt: " + xml); 
                                          xml=JSON.parse(xml); 
                                          log (xml.fsapiResponse.status);
                                      });
                      
                                      link = 'http://' + ip + '/fsapi/SET/netRemote.sys.mode' + "?pin=" + pin + '&value=0';
                                      log(link);
                      
                                      request(link, function (error, response, body) {
                                              var xml, result;
                                                  parseString(body, function (err, result) {
                                                      xml = JSON.stringify(result);
                                                      //log("XML Objekt: " + xml); 
                                                      xml=JSON.parse(xml); 
                                                      log ('test '+xml.fsapiResponse.status);
                      
                                                      timeout = setTimeout(function () {fs_session();    }, 2000);
                      
                                                  });
                                      });
                      });
                      }  
                      
                      function fs_session(){
                      
                          link = "http://" + ip + '/fsapi/CREATE_SESSION' + "?pin=" + pin;
                          //log(link);
                      
                              request(link, function (error, response, body) {
                                  var xml, result;
                                      parseString(body, function (err, result) {
                                          xml = JSON.stringify(result);
                                          //log("XML Objekt: " + xml); 
                                          xml=JSON.parse(xml); 
                                          //log (xml.fsapiResponse.sessionId);
                                          log (link + ' ' + xml.fsapiResponse.status);
                                          sessionID = xml.fsapiResponse.sessionId;
                                          log ('Neue Session: ' + sessionID);
                      
                                          timeout = setTimeout(function () {fs_navigate();     }, 2000);
                      
                                  });            
                      
                          });
                      }
                      
                      function fs_navigate(){
                      
                                      link = 'http://' + ip + '/fsapi/SET/netRemote.nav.state' + "?pin=" + pin + '&sid=' + sessionID + '&value=1';
                                      log(link);
                      
                                      request(link, function (error, response, body) {
                                              var xml, result;
                                                  parseString(body, function (err, result) {
                                                      xml = JSON.stringify(result);
                                                      xml=JSON.parse(xml); 
                                                      log (xml.fsapiResponse.status);
                                                  });
                      
                                              link = 'http://' + ip + '/fsapi/SET/netRemote.nav.action.selectPreset' + "?pin=" + pin + '&value=' + radiostation;
                                              log(link);
                      
                                               request(link, function (error, response, body) {
                                                      var xml, result;
                                                          parseString(body, function (err, result) {
                                                              xml = JSON.stringify(result);
                                                              xml=JSON.parse(xml); 
                                                              log (xml.fsapiResponse.status);
                      
                                                          });
                      
                                               });
                                  });
                      }
                      
                      stopScript();
                      
                      

                      Die meisten einfachen Funktionen Power, Lautstärke etc gehen ohne Session-ID. Alles was mit Navigation zu tun hat, also Sender setzen, Gruppieren etc. muss mit einer Session-ID erfolgen.

                      Im Skript oben wird die HTTP-Antwort des Gerätes geloggt. Das kostet oft unnötig Ressourcen im Skript. Bei einfachen Dingen wie Lautstärke setzen habe ich die Funktion raus gelassen. Wie im nächsten Beispiel:

                      Beispiel 2: Lautstärke aller Lautsprecher auf Standard

                      Was passiert?

                      • 4 Lautsprecher und deren Lautstärke werden definiert

                      • SET/netRemote.sys.audio.volume Lautstärke wird gesetzt

                      var request = require('request');
                      var parseString = require('xml2js').parseString;
                      
                      var ip1              ='192.168.XXX.1';
                      var volume1          ='6';
                      
                      var ip2              ='192.168.XXX.2';
                      var volume2          ='6';
                      
                      var ip3              ='192.168.XXX.3';
                      var volume3          ='10';
                      
                      var ip4              ='192.168.XXX.4';
                      var volume4          ='7';
                      
                      var pin             ='1234';
                      
                      var link;
                      
                                  link = 'http://' + ip1 + '/fsapi/SET/netRemote.sys.audio.volume' + "?pin=" + pin + '&value=' + volume1;
                                  log(link);
                      
                                  request(link, function (error, response, body) {
                      
                                      link = 'http://' + ip2 + '/fsapi/SET/netRemote.sys.audio.volume' + "?pin=" + pin + '&value=' + volume2;
                                      log(link);
                      
                                      request(link, function (error, response, body) {
                      
                                          link = 'http://' + ip3 + '/fsapi/SET/netRemote.sys.audio.volume' + "?pin=" + pin + '&value=' + volume3;
                                          log(link);
                      
                                          request(link, function (error, response, body) {
                      
                                              link = 'http://' + ip4 + '/fsapi/SET/netRemote.sys.audio.volume' + "?pin=" + pin + '&value=' + volume4;
                                              log(link);
                      
                                              request(link, function (error, response, body) {
                      
                                  });     
                                  }); 
                                  }); 
                                  }); 
                      
                          log('Laustärke gesetzt');
                      
                      stopScript();
                      
                      

                      Vielleicht ist das hilfreich für euch. Wundert euch beim Ausprobieren nicht: die Steuerung der Lautsprecher ist offenbar VOLLER BUGS. Ständig funktioniert irgendwas nicht - vollkommen unabhängig ob via IOS-App, Android-App oder über direkte HTTP-Befehle.

                      Die HTTP-Request-Befehle an die Lautsprecher sehen also immer etwa so aus:

                      http://192.168.XXX.XXX/fsapi/SET/netRem … 34&value=5

                      Das kann man in jedem Browser im Netzwerk testen. Eine Liste der meisten Befehle gibt's hier: https://github.com/flammy/fsapi/blob/master/FSAPI.md

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

                        Bin überhaupt nicht mit dem Lidl System zufrieden geworden http://multiroom-lautsprecher-test.org !

                        Hab das sofort entsorgt und was qualitativ-hochwertiges besorgt.

                        Würde ich dir auch empfehlen lieber etwas mehr hinzublättern.

                        1 Reply Last reply Reply Quote 0
                        • S
                          spielberger32 last edited by

                          Ja auch bei mir ist der Test nicht aufgegangen. Zu viele Kleinigkeiten, die ständig nicht funktionieren.

                          Habe dazu auch ein Video gemacht, weil es trotzdem ein gutes Beispiel ist: https://youtu.be/7BlBhHJG6_U

                          1 Reply Last reply Reply Quote 0
                          • BBTown
                            BBTown last edited by

                            @mystic:

                            Bin überhaupt nicht mit dem Lidl System zufrieden geworden http://multiroom-lautsprecher-test.org ` meinem Verständnis nach ist der Echo kein Multiroom-Lautsprechersystem 😐

                            1 Reply Last reply Reply Quote 0
                            • D
                              deejay last edited by

                              Gibt es hier noch Neuigkeiten? Mich interessiert das Thema auch. Habe ebenfalls die Lautsprecher und Alexa und würde gerne mit ein paar einfachen Befehlen starten…

                              1 Reply Last reply Reply Quote 0
                              • B
                                Berchemer last edited by

                                @spielberger32

                                Danke für den Hinweis mit "FSRadio-Remote" 8-)

                                Jetzt werde ich mal schauen, ob ich auch mit Deinen Vorschlägen zur Steuerung in VIS zurechtkomme :?

                                1 Reply Last reply Reply Quote 0
                                • K
                                  klmf2 last edited by

                                  super, vielen Dank.

                                  Meine Frau und ich können uns morgens im Bad immer nicht auf einen Radiosender einigen. Jetzt kann jeder über den Homematic Lichtschalter den Seiner schnell auswählen, den er möchte 🙂

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

                                    Ich habe ein Anua KR-200. Das Radio wäre auch wie oben beschrieben steuerbar. Gibt es hier eine Adapterlösung?

                                    1 Reply Last reply Reply Quote 0
                                    • Diginix
                                      Diginix last edited by

                                      Bisher nichts in Sicht, aber über die http requests kann ich mein Medion Radio wunderbar steuern.

                                      Man hat halt nur keine Datenpunkte mit dem tatsächlichen Status. Falls es mal manuell eingeschaltet wurde, weiß ioBroker das nicht.

                                      Das bekommt man aber auch mit einem http request raus, nur wie oft will man den sinnlos ausführen um es immer zeitnah zu wissen.

                                      Seit ich das Radio aber nur noch per Alexa steuer, ist das für mich nicht so wichtig.

                                      Dennoch würde ich mich auch über einen Frontier-Silicon Adapter freuen. Immerhin gibt es nicht wenig Geräte die damit funktionieren würden.

                                      Wundert mich echt, dass den noch keiner geschrieben hat.

                                      @Ingo (https://forum.iobroker.net/memberlist.php?mode=viewprofile&u=378😞 Ist das Trello Board noch relevant?

                                      Sieht alles recht veraltet aus. Wo wäre ein Adapter Request am sinnvollsten platziert?

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

                                        Och ich würde da schon einen Sinn sehen. Man kann den Titel/Interpret/Cover auslesen.

                                        Und man könnte auch seine Favoriten auslesen und natürlich wäre die Steuerung besser.

                                        Aber Grundsätzlich wäre es schon toll wenigstens Titel/Interpret/Cover in eine IObroker Systemvariable zu bekommen um das dann Visualisieren zu können. Für jemanden der das kann ist das bestimmt einfach für mich leider nicht.

                                        Trotzdem mal im Code die Wichtigsten HTTP Requests in Sammlung, wenn wer was dazu tragen möchte gern.

                                        http://192.168.1.59:80/fsapi/SET/netRemote.sys.power?pin=1234&sid=570007566&value=1
                                        DAB
                                        http://192.168.1.59/fsapi/SET/netRemote.sys.Mode?pin=1234&sid=570007566&value=4
                                        Internetradio
                                        http://192.168.1.59/fsapi/SET/netRemote.sys.Mode?pin=1234&sid=570007566&value=0
                                        Senderwahl Favariten
                                        http://192.168.1.59/fsapi/SET/netRemote.nav.state?pin=1234&sid=1541669613&value=1
                                        http://192.168.1.59/fsapi/SET/netRemote.nav.action.selectPreset?pin=1234&sid=1426318513&value=0
                                        
                                        Albumcover URL
                                        http://192.168.1.59/fsapi/GET/netRemote.play.info.graphicUri?pin=1234&sid=1541669613
                                        
                                        Interpret/Song
                                        http://192.168.1.59/fsapi/GET_NOTIFIES?pin=1234&sid=1541669613
                                        
                                        http://192.168.1.59/fsapi/LIST_GET_NEXT/netRemote.sys.caps.validModes/-1?pin=1234&sid=1541669613&maxItems=65536
                                        
                                        Lautstärke
                                        http://192.168.1.59/fsapi/SET/netRemote.sys.audio.volume?pin=1234&sid=1426318513&value=5
                                        
                                        Neue SID erzeugen
                                        http://192.168.1.59/fsapi/CREATE_SESSION?pin=1234
                                        
                                        1 Reply Last reply Reply Quote 0
                                        • C
                                          chemieka last edited by

                                          Hat jemand eine Idee wie ich mit diesem http Befehl die Cover URL in eine Variable schreiben könnte um das Cover dann zur VISU zu nutzen.

                                          Das Ergebnis des http Befehls schaut so aus:

                                          
                                          - <fsapiresponse><status>FS_OK</status>
                                          
                                          - <value><c8_array>http://auna2.wifiradiofrontier.com/setupapp/setup1/logo/logo-82098.png</c8_array></value></fsapiresponse> 
                                          

                                          <size size="150">Ich schreibe die Frage mal unter Skripte rein, passt hier nicht so richtig.</size>

                                          1 Reply Last reply Reply Quote 0
                                          • Eisbaeeer
                                            Eisbaeeer Developer last edited by

                                            @chemieka:

                                            Hat jemand eine Idee wie ich mit diesem http Befehl die Cover URL in eine Variable schreiben könnte um das Cover dann zur VISU zu nutzen. `

                                            What?

                                            Da seh ich keinen Befehl. Was genau willst du machen?

                                            DIE URL zeigt ja auf eine externe Seite.

                                            Imho kannst du die url direkt in der Visualisierung verwenden. Internet vorausgesetzt.

                                            Gruß Eisbaeeer

                                            Gesendet von meinem SM-G950F mit Tapatalk

                                            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

                                            862
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            15
                                            33
                                            10610
                                            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