Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Sonos-HTTP-API Installation für Newbies, Dummies und mich

    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-HTTP-API Installation für Newbies, Dummies und mich

    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      skokarl @LJSven last edited by

      @LJSven sagte in [gelöst] Sonos-HTTP-API Installation für Newbies, Dummies und mich:

      @skokarl sagte in [gelöst] Sonos-HTTP-API Installation für Newbies, Dummies und mich:

      @LJSven

      Es scheint daran zu liegen, daß die "settings.json" nicht angelegt ist - traue mich da nicht so richtig dran - will eigentlich nur Spotify integrieren.

      Natürlich, steht doch auch so in der Anleitung.
      Trau Dich....ist doch kein Problem.

      L 1 Reply Last reply Reply Quote 0
      • S
        skokarl @LJSven last edited by

        @LJSven
        Wie wird denn die Klingel weitergereicht ? Die braucht
        vielleicht schon 2 Sekunden

        L 1 Reply Last reply Reply Quote 0
        • L
          LJSven @skokarl last edited by

          @skokarl sagte in [gelöst] Sonos-HTTP-API Installation für Newbies, Dummies und mich:

          @LJSven sagte in [gelöst] Sonos-HTTP-API Installation für Newbies, Dummies und mich:

          @skokarl sagte in [gelöst] Sonos-HTTP-API Installation für Newbies, Dummies und mich:

          @LJSven

          Es scheint daran zu liegen, daß die "settings.json" nicht angelegt ist - traue mich da nicht so richtig dran - will eigentlich nur Spotify integrieren.

          Natürlich, steht doch auch so in der Anleitung.
          Trau Dich....ist doch kein Problem.

          Wäre das so korrekt, oder kann ich Port & IP auch rausnehmen?

          {
          	  "port": 5005,
          	  "ip": "0.0.0.0",
          	  "securePort": 5006,
          	  "spotify": {
          	    "clientId": "meineID",
          	    "clientSecret": "meinSecret"
          	  },
          	}
          
          S 1 Reply Last reply Reply Quote 0
          • L
            LJSven @skokarl last edited by

            @skokarl sagte in [gelöst] Sonos-HTTP-API Installation für Newbies, Dummies und mich:

            @LJSven
            Wie wird denn die Klingel weitergereicht ? Die braucht
            vielleicht schon 2 Sekunden

            Ja, ich höre das Relais und nach 2-3 Sekunden kommt der Ton. Sind Presets schneller? Habe den Eindruck, daß wenn man es über

            IP:PORT/clipall/sound.mp3
            

            macht, daß es daran liegt. Wenn ich es aber über die verschiedenen Räume mache, kommen den Sounds nacheinander, was auch uncool ist.

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

              Ich hab das grad bei mir ausprobiert, unmittelbar abgespielt wirds nur, wenn eine direkte Zone mit clip angesprochen wird.
              Sowohl clipall also auch clippreset dauern ... liegt wohl daran, dass die API ja zuerst die aktuelle Topologie also internen preset cached, dann die neue Topologie aufbaut, dann abspielt, und dann zurück ... dauert halt.

              L 1 Reply Last reply Reply Quote 0
              • L
                LJSven @dwm last edited by

                @dwm sagte in [gelöst] Sonos-HTTP-API Installation für Newbies, Dummies und mich:

                Ich hab das grad bei mir ausprobiert, unmittelbar abgespielt wirds nur, wenn eine direkte Zone mit clip angesprochen wird.
                Sowohl clipall also auch clippreset dauern ... liegt wohl daran, dass die API ja zuerst die aktuelle Topologie also internen preset cached, dann die neue Topologie aufbaut, dann abspielt, und dann zurück ... dauert halt.

                Was macht "clipreset"? Hast du mehrere Zonen?

                1 Reply Last reply Reply Quote 0
                • S
                  skokarl @LJSven last edited by skokarl

                  @LJSven
                  Ich muss mir das heute abend nochmal selbst angucken, glaube ich nutze die settings doch gar nicht für spotify....
                  Bin im Moment nur am Handy

                  Du kannst doch Spotify schon in der Sonos App einbinden, hast Du das gemacht ?

                  L 1 Reply Last reply Reply Quote 0
                  • D
                    dwm last edited by

                    clippreset spielt halt einen clip in einem preset ab.
                    Presets sind ja quasi vordefinierte Gruppen in der API...

                    Ja, insgesamt 6 Zonen. Küche und Wohnzimmer sind grade als Gruppe geschaltet. Wenn ich das clippreset aufrufe, wird die entsprechende Gruppierung eingestellt, dann das "horch was kommt von draußen rein" gespielt, dann der vorherige Zustand wieder hergestellt.
                    Schon gut, nur nicht schnell ...

                    L 1 Reply Last reply Reply Quote 0
                    • L
                      LJSven @skokarl last edited by

                      @skokarl sagte in [gelöst] Sonos-HTTP-API Installation für Newbies, Dummies und mich:

                      @LJSven
                      Ich muss mir das heute abend nochmal selbst angucken, glaube ich nutze die settings doch gar nicht für spotify....
                      Bin im Moment nur am Handy

                      Du kannst doch Spotify schon in der Sonos App einbinden, hast Du das gemacht ?
                      Ja, da ist es drin.

                      S 1 Reply Last reply Reply Quote 0
                      • L
                        LJSven @dwm last edited by

                        @dwm sagte in [gelöst] Sonos-HTTP-API Installation für Newbies, Dummies und mich:

                        clippreset spielt halt einen clip in einem preset ab.
                        Presets sind ja quasi vordefinierte Gruppen in der API...

                        Ja, insgesamt 6 Zonen. Küche und Wohnzimmer sind grade als Gruppe geschaltet. Wenn ich das clippreset aufrufe, wird die entsprechende Gruppierung eingestellt, dann das "horch was kommt von draußen rein" gespielt, dann der vorherige Zustand wieder hergestellt.
                        Schon gut, nur nicht schnell ...

                        Hast du ein How-To oder Beispiel Script?

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

                          Ich hab übrigens mein Script für die Sonos API noch ein bisschen aufgebohrt...
                          https://github.com/dwm66/iobroker-scripts/tree/master/SonosAPI

                          Version 0.9.1

                          • Setzen der TransportURI
                          • TV Mode eingeführt (nur SPDIF an der Playbar), pause und pauseall workaround.
                          • groupVolume (also Gruppenlautstärke) wird unterstützt.
                            Version 0.9.5
                            playlists unterstützt
                            favorites haben verändertes Verhalten (reset des action Datenpunkts)
                            Gruppen unterstützt (setzen des Coordinators, Coordinator List)

                          @maloross ... im Prinzip sollte die Geschichte mit dem TV-Mode jetzt einigermassen klappen, zumindest als Workaround 🙂

                          L 1 Reply Last reply Reply Quote 1
                          • D
                            dwm @LJSven last edited by dwm

                            @LJSven

                            für Presets (noch) nicht ...
                            im Grunde ist's aber nur ein API Aufruf,

                            http://10.22.1.40:5005/clippreset/klingel/horch.mp3
                            

                            also für das preset "klingel" und den clip "horch.mp3"

                            Dabei ist bei mir im "presets" Verzeichnis die Datei klingel.json:

                            {
                              "players": [
                                {
                                  "roomName": "Flur",
                                  "volume": 50
                                },
                                {
                                  "roomName": "Wohnzimmer",
                                  "volume": 25
                                },
                                {
                                  "roomName": "Büro",
                                  "volume": 25
                                },
                                {
                                  "roomName": "Stube",
                                  "volume": 25
                                }
                              ],
                              "playMode": {
                                "shuffle": false,
                                "repeat": "none",
                                "crossfade": false
                              },
                              "pauseOthers": true
                            }
                            
                            

                            Mit den Presets bin ich allerdings noch in der Experimentierphase ...
                            Edit sagt: Könnte auch sein, dass "pauseOthers" im Zusammenhang mit dem TVMode crasht, wie gesagt, Experimentierphase ...

                            1 Reply Last reply Reply Quote 0
                            • L
                              LJSven last edited by

                              Okay, das bedeutet, dass der Name des presets "Klingel" heißt und die MP3 mit dem Nanen "horch.mp3" in den definierten Räumen aufgerufen wird, korrekt?

                              Bei Presets ist aber das Problem, daß der Ursprungszustand nicht wieder hergestellt wird, oder?

                              Würdest du sagen, daß "clippreset" schneller ist als "clipall"?

                              D 1 Reply Last reply Reply Quote 0
                              • D
                                dwm @LJSven last edited by dwm

                                Genau, der Name des Presets kommt vom Namen der json-Datei.
                                Bei mir zumindest wurde bei "clippreset" der Basiszustand restauriert.

                                Ohne jetzt ne Stoppuhr verwendet zu haben, nein, clippreset ist NICHT schneller.

                                L 1 Reply Last reply Reply Quote 0
                                • L
                                  LJSven @dwm last edited by

                                  @dwm sagte in [gelöst] Sonos-HTTP-API Installation für Newbies, Dummies und mich:

                                  Genau, der Name des Presets kommt vom Namen der json-Datei.
                                  Bei mir zumindest wurde bei "clippreset" der Basiszustand restauriert.

                                  Ohne jetzt ne Stoppuhr verwendet zu haben, nein, clippreset ist NICHT schneller.

                                  Kehrt es in den Basisursprung wieder her, weil du es so programmiert hast oder macht er das von der HTTP-API aus? Wo siehst du den Vorteil bei "clippreset" anstelle von "clipall"?

                                  D 1 Reply Last reply Reply Quote 0
                                  • D
                                    dwm @LJSven last edited by

                                    Die Restauration macht er von der HTTP-API aus, bei meinem Script sind die Presets noch nicht eingebaut. Ich hab vorhin einfach nur den API Aufruf abgesetzt ...

                                    Der Vorteil von clippreset: Du steuerst halt nicht ALLE an ...

                                    In DEINEM Fall:
                                    @LJSven sagte in [gelöst] Sonos-HTTP-API Installation für Newbies, Dummies und mich:

                                    Ich habe da 2 Szenarien -> zwischen 08 Uhr - 21 Uhr soll der Sound auf allen Lautsprechern ausgegeben werden, sonst nur auf 2 von 3 Lautsprechern.

                                    ... sind das halt einfach zwei verschiedene Presets, die Du je nach Uhrzeit ansteuerst.

                                    1 Reply Last reply Reply Quote 0
                                    • L
                                      LJSven @dwm last edited by

                                      @dwm sagte in [gelöst] Sonos-HTTP-API Installation für Newbies, Dummies und mich:

                                      Ich hab übrigens mein Script für die Sonos API noch ein bisschen aufgebohrt...
                                      https://github.com/dwm66/iobroker-scripts/tree/master/SonosAPI

                                      Version 0.9.1

                                      • Setzen der TransportURI
                                      • TV Mode eingeführt (nur SPDIF an der Playbar), pause und pauseall workaround.
                                      • groupVolume (also Gruppenlautstärke) wird unterstützt.
                                        Version 0.9.5
                                        playlists unterstützt
                                        favorites haben verändertes Verhalten (reset des action Datenpunkts)
                                        Gruppen unterstützt (setzen des Coordinators, Coordinator List)

                                      @maloross ... im Prinzip sollte die Geschichte mit dem TV-Mode jetzt einigermassen klappen, zumindest als Workaround 🙂

                                      Ich wollte mir gerade mal dein Script anschauen / testen. Was mache ich falsch?

                                      
                                      javascript.0	2020-01-29 14:58:09.352	error	(6336) at Script.runInContext (vm.js:133:20)
                                      javascript.0	2020-01-29 14:58:09.352	error	(6336) at script.js.common.SonosApi.SonosAPI:926:1
                                      javascript.0	2020-01-29 14:58:09.351	error	(6336) at requestSonosZones (script.js.common.SonosApi.SonosAPI:806:5)
                                      javascript.0	2020-01-29 14:58:09.351	error	(6336) at requestSonosAPI (script.js.common.SonosApi.SonosAPI:62:5)
                                      javascript.0	2020-01-29 14:58:09.350	error	(6336) ReferenceError: dwmlog is not defined
                                      javascript.0	2020-01-29 14:58:09.350	error	(6336) ^
                                      javascript.0	2020-01-29 14:58:09.350	error	(6336) dwmlog("requestSonosAPI URL: "+url,3);
                                      javascript.0	2020-01-29 14:58:09.349	error	(6336) script.js.common.SonosApi.SonosAPI: script.js.common.SonosApi.SonosAPI:62
                                      
                                      1 Reply Last reply Reply Quote 0
                                      • D
                                        dwm last edited by

                                        Du hast die log Funktion nicht importiert.

                                        "Eine weitere Voraussetzung ist das Vorhandensein der ebenfalls in diesem Repository zu findenden logging Funktion: https://github.com/dwm66/iobroker-scripts/tree/master/debug-log"

                                        Du musst die "dwmlog" Funktion entweder unter "global" speichern, oder Du kopierst die dwmlog Funktion noch mit in das Script rein:

                                        function dwmlog( message, level, channel) {
                                            if (typeof channel === 'undefined') {
                                                channel = debugchannel;
                                            }
                                            if ( typeof level === 'undefined')
                                            {
                                                level = debuglevel;
                                            }
                                            if ( debuglevel >= level ) {
                                                log (message, channel );
                                            }
                                        }
                                        
                                        L 1 Reply Last reply Reply Quote 0
                                        • L
                                          LJSven @dwm last edited by

                                          @dwm sagte in [gelöst] Sonos-HTTP-API Installation für Newbies, Dummies und mich:

                                          Du hast die log Funktion nicht importiert.

                                          "Eine weitere Voraussetzung ist das Vorhandensein der ebenfalls in diesem Repository zu findenden logging Funktion: https://github.com/dwm66/iobroker-scripts/tree/master/debug-log"

                                          Du musst die "dwmlog" Funktion entweder unter "global" speichern, oder Du kopierst die dwmlog Funktion noch mit in das Script rein:

                                          Okay, mein Fehler! States sind angelegt - allerdings bekomme ich keine "state -> current Tracks"-Updates? Muss ich da was triggern?
                                          Kann ich im Log die "requestSonosAPI URL" abschalten?

                                          D 1 Reply Last reply Reply Quote 0
                                          • D
                                            dwm @LJSven last edited by

                                            Funktioniert der webhook, sprich kann die SonosAPI an das Script Daten senden?

                                            Mein ioBroker Rechner ist 10.22.1.40, wenn ich aufrufe:

                                            http://10.22.1.40:1884/info
                                            

                                            kommt zurück

                                            {
                                                "code": 200,
                                                "data": {
                                                    "version": "0.9.5",
                                                    "sonosAPI": "https://10.22.1.40:5006",
                                                    "SSMLMode": "Polly"
                                                }
                                            }
                                            

                                            Sollte so ähnlich auch bei Dir aussehen.
                                            In der Sonos API MUSS auch der webhook mit dieser URL konfiguriert sein! Das ist quasi der Rückkanal. Damit kriegt das Script auch mit, wenn Du z.B. mit dem regulären Sonos-Controller was änderst.

                                            Du solltest dann im log ab und zu sowas sehen:

                                            2020-01-29 15:51:23.400 - info: javascript.0 (21352) script.js.Steuerung.sonosapi: Received Post
                                            2020-01-29 15:51:23.401 - info: javascript.0 (21352) script.js.Steuerung.sonosapi: Result: {"type":"transport-state","data":{"uuid":"RINCON_000E588A9E5601400","coordinator":"RINCON_000E588A9E5601400","roomName":"Büro","state":{"volume":10,"mute":false,"equalizer":{"bass":0,"treble":0,"loudness":true},"currentTrack":{"artist":"The Monkees","title":"Daydream Believer","album":"Oldies für die Arbeit","albumArtUri":"/getaa?s=1&u=x-sonosapi-hls-static%3acatalog%252ftracks%252fB003YN355M%252f%253fplaylistAsin%253dB07QPPMS9T%2526playlistType%253dprimePlaylist%3fsid%3d201%26flags%3d0%26sn%3d3","duration":179,"uri":"x-sonosapi-hls-static:catalog%2ftracks%2fB003YN355M%2f%3fplaylistAsin%3dB07QPPMS9T%26playlistType%3dprimePlaylist?sid=201&flags=0&sn=3","trackUri":"x-sonosapi-hls-static:catalog%2ftracks%2fB003YN355M%2f%3fplaylistAsin%3dB07QPPMS9T%26playlistType%3dprimePlaylist?sid=201&flags=0&sn=3","type":"track","stationName":"","absoluteAlbumArtUri":"http://10.22.1.25:1400/getaa?s=1&u=x-sonosapi-hls-static%3acatalog%252ftracks%252fB003YN355M%252f%253fplaylistAsin%253dB07QPPMS9T%2526playlistType%253dprimePlaylist%3fsid%3d201%26flags%3d0%26sn%3d3"},"nextTrack":{"artist":"ABBA","title":"Knowing Me, Knowing You","album":"Oldies für die Arbeit","albumArtUri":"/getaa?s=1&u=x-sonosapi-hls-static%3acatalog%252ftracks%252fB001SQ1IC4%252f%253fplaylistAsin%253dB07QPPMS9T%2526playlistType%253dprimePlaylist%3fsid%3d201%26flags%3d0%26sn%3d3","duration":241,"uri":"x-sonosapi-hls-static:catalog%2ftracks%2fB001SQ1IC4%2f%3fplaylistAsin%3dB07QPPMS9T%26playlistType%3dprimePlaylist?sid=201&flags=0&sn=3","trackUri":"x-sonosapi-hls-static:catalog%2ftracks%2fB001SQ1IC4%2f%3fplaylistAsin%3dB07QPPMS9T%26playlistType%3dprimePlaylist?sid=201&flags=0&sn=3","absoluteAlbumArtUri":"http://10.22.1.25:1400/getaa?s=1&u=x-sonosapi-hls-static%3acatalog%252ftracks%252fB001SQ1IC4%252f%253fplaylistAsin%253dB07QPPMS9T%2526playlistType%253dprimePlaylist%3fsid%3d201%26flags%3d0%26sn%3d3"},"trackNo":9,"elapsedTime":0,"elapsedTimeFormatted":"00:00:00","playbackState":"PLAYING","playMode":{"repeat":"none","shuffle":true,"crossfade":false}},"groupState":{"volume":10,"mute":false},"avTransportUri":"x-rincon-queue:RINCON_000E588A9E5601400#0","avTransportUriMetadata":""}}
                                            

                                            wenn sich der Titel ändert, oder wenn Du z.B. die Lautstärke änderst:

                                            2020-01-29 15:56:04.223 - info: javascript.0 (21352) script.js.Steuerung.sonosapi: Received Post
                                            2020-01-29 15:56:04.223 - info: javascript.0 (21352) script.js.Steuerung.sonosapi: Result: {"type":"volume-change","data":{"uuid":"RINCON_000E588A9E5601400","previousVolume":15,"newVolume":15,"roomName":"Büro"}}
                                            

                                            die Debugausgaben kannst Du abschalten, ja ... einfach oben im script ändern:

                                            debuglevel = 1;
                                            

                                            ... bei level 4 wird das recht geschwätzig ... genau dafür hab ich ja meine eigene log Funktion 🙂
                                            dann verschwindet allerdings auch das debugging der Webhooks.

                                            L 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

                                            864
                                            Online

                                            31.8k
                                            Users

                                            79.9k
                                            Topics

                                            1.3m
                                            Posts

                                            sonos
                                            49
                                            437
                                            93099
                                            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