Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Sonos-Datenpunkte Alexa & Sonos-App?

    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-Datenpunkte Alexa & Sonos-App?

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

      Hallo,

      ich verzweifele bei mir ein bisschen, wei wir unsere SONOS-Lautsprecher über verschiedene Wege ansteuern.

      • Teilweise über Sprachkommando über Echo-Dots, die die SONOS dann als bevorzugten Lautsprecher nutzen
      • Teilweise über die SONOS-App, die dann entsprechend direkt die SONOS ansteuert
      • Teilweise über Scripte, mit denen ich dann die Datenpunkte
        Coordinator (entweder der gleiche oder bei Gruppenschaltung der des Masters), favorite set (Radio-Sender), string state (mit text-Baustein auf "play"), binary string (auf "true"), stop und pause-button (auf falsch), player volume.

      Wenn ich dann die Eingabearten mixe (mit dem Script starten, dann bspw. "Alexa stopp", dann mal mit der Sonos-App starten etc.), läufts oft nicht.

      Gibts hier eine Übersicht, welche Eingabeart welche Datenpunkte setzt? Wo könnte der Fehler liegen?

      VG
      Christian

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

        Hallo,
        ich hatte lange Zeit das gleiche Problem.
        Hatte mir dann zwischenzeitlich mit einem Script geholfen, welches alle Aktionen an Sonos, die nicht von ioBroker kommen (z.B. über Sonos-App, Spotify, TV eingeschaltet, oder direkt am Knopf der Speaker), erfasst und in ioBroker verarbeitet, so dass ioBroker + VIS stets den aktuellen Zustand kennt.

        Dazu reicht es meines Erachtens den DP "state_simple" abzufragen, denn selbst wenn man zum Beispiel nur den Radiosender wechselt, schaltet Sonos (leider) den state_simple einmal kurz auf false und gleich danach (mit dem neuen Sender) wieder auf true.

        ...
        // Bei Änderung eines relevanten Sonos-Parameters über die Sonos-App oder am Speaker wird das ExtChangeFlag gesetzt
        on({id:'sonos.0.root.10_251_10_120.state_simple',change:'ne'}, function (obj) {setState('javascript.0.Sonos.ExtChangeFlag',true);});
        
        // Wenn das ExtChangeFlag gesetzt wurde, dann werden die Parameter Audioquelle und ggf. Sender neu gesetzt
        on({id:'javascript.0.Sonos.ExtChangeFlag', change: 'gt'}, function (obj) {
            setTimeout(function(){                                  // kurze Verzögerung, um mehrfache Änderungen nur einmal zu verarbeiten
                if (getState('sonos.0.root.10_251_10_120.state_simple').val == false){ 
                    // bei STOP:
                    setState('javascript.0.Sonos.Audioquelle',0);            // Audioquelle auf 0 (off) setzen
                    setState('sonos.0.root.10_251_10_120.volume',8);         // Default Volume setzen
                    setState('sonos.0.root.10_251_10_120.group_muted',false);// Group Unmute
                    setState('javascript.0.Sonos.RadioSWR3',false);          // flag zurücksetzen
                    setState('javascript.0.Sonos.RadioHR3',false);           // flag zurücksetzen
                    setState('javascript.0.Sonos.RadioYouFM',false);         // flag zurücksetzen
                    setState('javascript.0.Sonos.Spotify',false);            // flag zurücksetzen
                    setState('javascript.0.Sonos.SurroundMode',false);       // SurroundMode zurücksetzen
                    newEvent('Sonos ausgeschaltet','Sonos wurde ausgeschaltet','MultimediaSonos');
                    log('Sonos ausgeschaltet (Audioquelle = off)');
                } else {
                    if (getState('sonos.0.root.10_251_10_120.current_type').val == 0){
                    // bei PLAY und TYPE = TRACK (Stream)
                        setState('javascript.0.Sonos.Audioquelle',3);       // Audioquelle auf 3 (Stream) setzen
                        newEvent('Sonos eingeschaltet','Sonos wurde eingeschaltet (Stream)','MultimediaSonos');
                        log('Sonos eingeschaltet (Audioquelle = Stream)');
                    } else if (getState('sonos.0.root.10_251_10_120.current_type').val == 1) {
                    // bei PLAY und TYPE = RADIO
                        setState('javascript.0.Sonos.Audioquelle',1);       // Audioquelle auf 1 (Radio) setzen
                        var sender = getState('sonos.0.root.10_251_10_120.current_station').val;// Radiosender ermitteln
                        if(sender == 'SWR3'){   // SWR3 flag setzen
                            setState('javascript.0.Sonos.RadioSWR3',true);
                            setState('javascript.0.Sonos.RadioHR3',false);
                            setState('javascript.0.Sonos.RadioYouFM',false);
                            }
                        if(sender == 'hr3'){    // HR3 flag setzen
                            setState('javascript.0.Sonos.RadioSWR3',false);
                            setState('javascript.0.Sonos.RadioHR3',true);
                            setState('javascript.0.Sonos.RadioYouFM',false);
                            }
                        if(sender == 'YOU FM'){  // YouFM flag setzen
                            setState('javascript.0.Sonos.RadioSWR3',false);
                            setState('javascript.0.Sonos.RadioHR3',false);
                            setState('javascript.0.Sonos.RadioYouFM',true);
                            }
                        newEvent('Sonos eingeschaltet','Sonos wurde eingeschaltet (Radio, ' + sender + ')','MultimediaSonos');
                        log('Sonos eingeschaltet (Audioquelle = Radio; Sender = ' + sender + ')');
                    } else {
                    // bei PLAY und TYPE = LINE_IN
                        setState('javascript.0.Sonos.Audioquelle',2);       // Audioquelle auf 2 (TV) setzen
                        log('Sonos eingeschaltet (Audioquelle = TV)');
                    }
                }
                setState('javascript.0.Sonos.ExtChangeFlag',false);         // ChangeFlag zurücksetzen
        //    },1000);
            },500);
        });
        
        // Radio über ioBroker.VIS einschalten
        on({id:'javascript.0.Sonos.RadioSWR3', change: 'gt'}, function (obj) {setState('sonos.0.root.10_251_10_120.favorites_set','SWR3');});    
        on({id:'javascript.0.Sonos.RadioHR3', change: 'gt'}, function (obj) {setState('sonos.0.root.10_251_10_120.favorites_set','HR3');});    
        on({id:'javascript.0.Sonos.RadioYouFM', change: 'gt'}, function (obj) {setState('sonos.0.root.10_251_10_120.favorites_set','YOU FM');});    
        
        // Spotify über ioBroker.VIS einschalten
        on({id:'javascript.0.Sonos.Spotify', change: 'gt'}, function (obj) {setState('sonos.0.root.10_251_10_120.favorites_set','Happy Hits!');});
        ...
        

        Das timeout habe ich deswegen eingebaut, weil state_simple bei einfachen Aktionen wie zum Beispiel beim Wechsel von Radio nach Spotify mehrmals innerhalb kurzer Zeit von true auf false und wieder zurück wechselt und damit die Status-Anzeige in meiner VIS immer so hässlich flackert.

        Grüße,
        maeb3

        1 Reply Last reply Reply Quote 1
        • Karel Puhli
          Karel Puhli last edited by Karel Puhli

          Tag zusammen!
          Ich habe eine grundsätzliche Frage zu meinem Bose Adapter. Das hier ist eigentlich die falsche Gruppe, aber in meiner Gruppe hat leider noch keiner geantwortet. Und zwar möchte ich meine Bose Soundtouch über Vis und Skripte steuern. Bis jetzt habe ich leider noch keine steuerbaren Datenpunkte außer "an", "aus" und Lautstärke gefunden.
          Auf der GitHub
          link text
          konnte ich nachlesen, dass ich ich einiges mehr steuern kann (Objekte können geschrieben werden). Allerdings als "Key". Ich stehe allerdings auf dem Schlauch, wie das funktioniert.
          Über Eure Hilfe wäre ich dankbar! 🙂
          Viele Grüße!
          PS: Hier ein Screenshot von den Objekten
          Unbenannt.png

          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

          912
          Online

          31.9k
          Users

          80.1k
          Topics

          1.3m
          Posts

          alexa 2.0 sonos
          3
          3
          635
          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