Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Sonos-HTTP-API Installation für Newbies, Dummies und mich

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.6k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.1k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    2.8k

Sonos-HTTP-API Installation für Newbies, Dummies und mich

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
sonos
438 Beiträge 50 Kommentatoren 117.6k Aufrufe 48 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • S skokarl

    @Matten
    aber es geht doch nicht, oder ?
    Ich habs mit meinem User gemacht, nicht mit root.

    M Offline
    M Offline
    Matten
    schrieb am zuletzt editiert von
    #238

    @skokarl Der Server läuft, nur der Autostart nicht.

    Hardware: NUC 386i, Proxmox: als VM ioBroker, HomeMatic, Hue(Zigbee), UnifiAC, Visualisierung: 24 Zoll Touchscreen Portrait Modus

    S 1 Antwort Letzte Antwort
    0
    • M Matten

      @skokarl Der Server läuft, nur der Autostart nicht.

      S Offline
      S Offline
      skokarl
      schrieb am zuletzt editiert von
      #239

      @Matten
      schon klar..... weil er den Server nicht starten kann.
      Machs nochmal... mit nem normalen User.

      IOBroker mit Proxmox auf Celeron Nuc mit 16 GB und Debian11, Sonos API, Echo Show 15 als Wandtablet, Homematic IP, HUE, Sonos, Echos, DS718+ als Backup

      1 Antwort Letzte Antwort
      0
      • D Offline
        D Offline
        dwm
        schrieb am zuletzt editiert von
        #240

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

        chs nochmal... mit nem normalen User.

        Im Prinzip läuft der Service ja unter root-Rechten, das darf dem "eigentlich" also nichts ausmachen.

        Ohne Log ist das Stochern im Nebel ...
        Wenn Du das Ding startest, was sagt denn

        tail -f /var/log/syslog
        
        1 Antwort Letzte Antwort
        0
        • D Offline
          D Offline
          dwm
          schrieb am zuletzt editiert von
          #241

          Könnt mal jemand was ausprobieren?

          #!/bin/bash
          
          SONOSAPI_USER=sonosapi
          SONOSAPI_DIR=/opt/sonosapi
          SONOSAPI_SERVICE=sonosapi
          
          SONOSAPI_SERVICE_FILE=/etc/systemd/system/$SONOSAPI_SERVICE.service
          
          sonosapi_user(){
            useradd --system --home-dir $SONOSAPI_DIR --shell /bin/bash $SONOSAPI_USER
            mkdir -p $SONOSAPI_DIR
            chown $SONOSAPI_USER:$SONOSAPI_USER $SONOSAPI_DIR
          }
          
          
          sonosapi_install() {
            cd $SONOSAPI_DIR
            su -c 'wget https://github.com/jishi/node-sonos-http-api/archive/master.zip' $SONOSAPI_USER
            su -c 'unzip master.zip' $SONOSAPI_USER
            su -c 'cd node-sonos-http-api-master && npm install --production' $SONOSAPI_USER
            rm master.zip
          }
          
          sonosapi_service() {
          echo Writing $SONOSAPI_SERVICE_FILE
          cat << EOF > $SONOSAPI_SERVICE_FILE
          [Unit]
          Description=Sonos HTTP API Daemon
          After=syslog.target network.target
          
          [Service]
          Type=simple
          User=$SONOSAPI_USER
          ExecStart=/usr/bin/node $SONOSAPI_DIR/node-sonos-http-api-master/server.js
          Restart=always
          RestartSec=10
          
          [Install]
          WantedBy=multi-user.target
          EOF
          
          systemctl enable $SONOSAPI_SERVICE
          systemctl start $SONOSAPI_SERVICE
          }
          
          sonosapi_uninstall() {
              systemctl stop $SONOSAPI_SERVICE
              systemctl disable $SONOSAPI_SERVICE
              rm -rf $SONOSAPI_DIR
              userdel $SONOSAPI_USER
              rm $SONOSAPI_SERVICE_FILE
          }
          
          # sonosapi_uninstall
          sonosapi_user
          sonosapi_install
          sonosapi_service
          
          

          Den Code oben auf der Linux Kiste als "sonosapi_install.sh" abspeichern. Das ist im Prinzip die Installationsanleitung als bash-script.
          Dann ausführen mit

          sudo bash ./sonosapi_install.sh
          

          Danach sollte "eigentlich" alles geritzt sein. Die API läuft dann im Verzeichnis /opt/sonosapi mit einem eigenen User "sonosapi", das bitte berücksichtigen, wenn man im Filesystem was reinspeichert ...

          Ich hab das jetzt spaßeshalber mal auf ner Ubuntu 18.04 probiert, da klappts.

          S 1 Antwort Letzte Antwort
          0
          • D dwm

            Könnt mal jemand was ausprobieren?

            #!/bin/bash
            
            SONOSAPI_USER=sonosapi
            SONOSAPI_DIR=/opt/sonosapi
            SONOSAPI_SERVICE=sonosapi
            
            SONOSAPI_SERVICE_FILE=/etc/systemd/system/$SONOSAPI_SERVICE.service
            
            sonosapi_user(){
              useradd --system --home-dir $SONOSAPI_DIR --shell /bin/bash $SONOSAPI_USER
              mkdir -p $SONOSAPI_DIR
              chown $SONOSAPI_USER:$SONOSAPI_USER $SONOSAPI_DIR
            }
            
            
            sonosapi_install() {
              cd $SONOSAPI_DIR
              su -c 'wget https://github.com/jishi/node-sonos-http-api/archive/master.zip' $SONOSAPI_USER
              su -c 'unzip master.zip' $SONOSAPI_USER
              su -c 'cd node-sonos-http-api-master && npm install --production' $SONOSAPI_USER
              rm master.zip
            }
            
            sonosapi_service() {
            echo Writing $SONOSAPI_SERVICE_FILE
            cat << EOF > $SONOSAPI_SERVICE_FILE
            [Unit]
            Description=Sonos HTTP API Daemon
            After=syslog.target network.target
            
            [Service]
            Type=simple
            User=$SONOSAPI_USER
            ExecStart=/usr/bin/node $SONOSAPI_DIR/node-sonos-http-api-master/server.js
            Restart=always
            RestartSec=10
            
            [Install]
            WantedBy=multi-user.target
            EOF
            
            systemctl enable $SONOSAPI_SERVICE
            systemctl start $SONOSAPI_SERVICE
            }
            
            sonosapi_uninstall() {
                systemctl stop $SONOSAPI_SERVICE
                systemctl disable $SONOSAPI_SERVICE
                rm -rf $SONOSAPI_DIR
                userdel $SONOSAPI_USER
                rm $SONOSAPI_SERVICE_FILE
            }
            
            # sonosapi_uninstall
            sonosapi_user
            sonosapi_install
            sonosapi_service
            
            

            Den Code oben auf der Linux Kiste als "sonosapi_install.sh" abspeichern. Das ist im Prinzip die Installationsanleitung als bash-script.
            Dann ausführen mit

            sudo bash ./sonosapi_install.sh
            

            Danach sollte "eigentlich" alles geritzt sein. Die API läuft dann im Verzeichnis /opt/sonosapi mit einem eigenen User "sonosapi", das bitte berücksichtigen, wenn man im Filesystem was reinspeichert ...

            Ich hab das jetzt spaßeshalber mal auf ner Ubuntu 18.04 probiert, da klappts.

            S Offline
            S Offline
            skokarl
            schrieb am zuletzt editiert von skokarl
            #242

            @dwm

            Du bist sicherlich um 1000% fitter als ich, aber bisher hat sich noch niemand über den autostart beschwert,
            da macht doch Matten irgendwas falsch .... oder liegt es an der Linux Version ??

            IOBroker mit Proxmox auf Celeron Nuc mit 16 GB und Debian11, Sonos API, Echo Show 15 als Wandtablet, Homematic IP, HUE, Sonos, Echos, DS718+ als Backup

            D M 2 Antworten Letzte Antwort
            0
            • S skokarl

              @dwm

              Du bist sicherlich um 1000% fitter als ich, aber bisher hat sich noch niemand über den autostart beschwert,
              da macht doch Matten irgendwas falsch .... oder liegt es an der Linux Version ??

              D Offline
              D Offline
              dwm
              schrieb am zuletzt editiert von
              #243

              @skokarl ... Keine Ahnung, worans liegt.
              Der Autostart funktioniert schon so, wie beschrieben, das passt schon. Ohne log-Ausgabe ist das nur Raten, das führt zu nix. Irgendwas ist da halt falsch zusammengestöpselt.

              1 Antwort Letzte Antwort
              1
              • C Offline
                C Offline
                chka
                schrieb am zuletzt editiert von
                #244

                morgen zusammen, ich nutze den adapter für die Sprachausgabe
                In 4 Zimmern sind größten teils Sonos 1 und Playbar verbaut.
                Ich lass mich über die Sonos Wecken in dem Musik abgespielt wird.
                Davor wollte ich noch eine Sprachausgabe über alle Sonos in den unterschiedlichen Zonen ausgeben.
                Laut Doku sieht dann die url wie folgt aus:

                http://IP:5005/sayall/Guten%20Morgen.%20Es%20ist:%206%20Uhr%20und%2044.%20Die%20Aktuelle%20Außentemperatur%20beträgt%20-4.3%20Grad%20Celsius.%20Achtung%20Wetterwarnung/de/20
                

                manuell geht das ganze mal man sieht auch das alle Zonen zu einer zusammengefast werden, lief Musik wird diese unterbrochen, allerdings von 10 Versuchen geht es vielleicht 2 mal. Und es wird ein Text ausgegeben.
                Schaue ich in den Sonos Controller sehe ich auch eine Datei die abgespielt werden soll aber es passiert nichts.

                INTEL NUC BOXNUC6I3SYH i3-6100U - Proxmox

                Speicher: Transcend MTS800 M.2 SSD 128GB SATA III, MLC

                RAM: 40Gig Crucial 8GB DDR4 CT2K8G4SFS824A + 32GB DDR4CT32G4SFD8266

                1 Antwort Letzte Antwort
                0
                • L Offline
                  L Offline
                  LJSven
                  schrieb am zuletzt editiert von
                  #245

                  @dwm Ich habe heute Morgen folgende Fehlermeldung in der Logdatei - was heißt das?

                  javascript.0	2020-02-12 07:09:37.885	error	(3232) at endReadableNT (_stream_readable.js:1145:12)
                  javascript.0	2020-02-12 07:09:37.885	error	(3232) at IncomingMessage.emit (events.js:203:15)
                  javascript.0	2020-02-12 07:09:37.884	error	(3232) at Object.onceWrapper (events.js:286:20)
                  javascript.0	2020-02-12 07:09:37.884	error	(3232) at IncomingMessage.<anonymous> (/opt/iobroker/node_modules/request/request.js:1083:12)
                  javascript.0	2020-02-12 07:09:37.883	error	(3232) at Request.emit (events.js:198:13)
                  javascript.0	2020-02-12 07:09:37.883	error	(3232) at Request.<anonymous> (/opt/iobroker/node_modules/request/request.js:1161:10)
                  javascript.0	2020-02-12 07:09:37.882	error	(3232) at Request.emit (events.js:198:13)
                  javascript.0	2020-02-12 07:09:37.882	error	(3232) at Request.self.callback (/opt/iobroker/node_modules/request/request.js:185:22)
                  javascript.0	2020-02-12 07:09:37.881	error	(3232) at Request._callback (script.js.common.SonosApi.SonosAPI:81:21)
                  javascript.0	2020-02-12 07:09:37.881	error	(3232) at processPlaylists (script.js.common.SonosApi.SonosAPI:787:36)
                  javascript.0	2020-02-12 07:09:37.878	error	(3232) script.js.common.SonosApi.SonosAPI: TypeError: PlaylistData.join is not a function
                  
                  D 1 Antwort Letzte Antwort
                  0
                  • L LJSven

                    @dwm Ich habe heute Morgen folgende Fehlermeldung in der Logdatei - was heißt das?

                    javascript.0	2020-02-12 07:09:37.885	error	(3232) at endReadableNT (_stream_readable.js:1145:12)
                    javascript.0	2020-02-12 07:09:37.885	error	(3232) at IncomingMessage.emit (events.js:203:15)
                    javascript.0	2020-02-12 07:09:37.884	error	(3232) at Object.onceWrapper (events.js:286:20)
                    javascript.0	2020-02-12 07:09:37.884	error	(3232) at IncomingMessage.<anonymous> (/opt/iobroker/node_modules/request/request.js:1083:12)
                    javascript.0	2020-02-12 07:09:37.883	error	(3232) at Request.emit (events.js:198:13)
                    javascript.0	2020-02-12 07:09:37.883	error	(3232) at Request.<anonymous> (/opt/iobroker/node_modules/request/request.js:1161:10)
                    javascript.0	2020-02-12 07:09:37.882	error	(3232) at Request.emit (events.js:198:13)
                    javascript.0	2020-02-12 07:09:37.882	error	(3232) at Request.self.callback (/opt/iobroker/node_modules/request/request.js:185:22)
                    javascript.0	2020-02-12 07:09:37.881	error	(3232) at Request._callback (script.js.common.SonosApi.SonosAPI:81:21)
                    javascript.0	2020-02-12 07:09:37.881	error	(3232) at processPlaylists (script.js.common.SonosApi.SonosAPI:787:36)
                    javascript.0	2020-02-12 07:09:37.878	error	(3232) script.js.common.SonosApi.SonosAPI: TypeError: PlaylistData.join is not a function
                    
                    D Offline
                    D Offline
                    dwm
                    schrieb am zuletzt editiert von
                    #246

                    @LJSven
                    Hm ... grundsätzlich gibts bei den Funktionen, die die Playlists abfragen die "PlaylistData" ... das ist ein array, das dann eine "join" Funktion hat.
                    In dem Fall war PlaylistData KEIN Array, also Typfehler.

                    Nur einmal aufgetreten, oder öfters?
                    Was liefert den die API, wenn man "/playlists" fragt?

                    L 2 Antworten Letzte Antwort
                    0
                    • D dwm

                      @LJSven
                      Hm ... grundsätzlich gibts bei den Funktionen, die die Playlists abfragen die "PlaylistData" ... das ist ein array, das dann eine "join" Funktion hat.
                      In dem Fall war PlaylistData KEIN Array, also Typfehler.

                      Nur einmal aufgetreten, oder öfters?
                      Was liefert den die API, wenn man "/playlists" fragt?

                      L Offline
                      L Offline
                      LJSven
                      schrieb am zuletzt editiert von
                      #247

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

                      @LJSven
                      Hm ... grundsätzlich gibts bei den Funktionen, die die Playlists abfragen die "PlaylistData" ... das ist ein array, das dann eine "join" Funktion hat.
                      In dem Fall war PlaylistData KEIN Array, also Typfehler.

                      Nur einmal aufgetreten, oder öfters?
                      Was liefert den die API, wenn man "/playlists" fragt?

                      Bisher einmal - ich beobachte es mal weiter.

                      1 Antwort Letzte Antwort
                      0
                      • S skokarl

                        @dwm

                        Du bist sicherlich um 1000% fitter als ich, aber bisher hat sich noch niemand über den autostart beschwert,
                        da macht doch Matten irgendwas falsch .... oder liegt es an der Linux Version ??

                        M Offline
                        M Offline
                        Matten
                        schrieb am zuletzt editiert von
                        #248

                        @skokarl @dwm Da ich mit meinem zwave Adapter in meiner Virtualbox immer wieder Probleme hatte bin ich ich auf Proxmox umgestiegen, deshalb melde ich mich heute erst.

                        Ich habe damit den Adapter nochmals installiert, ebenso das Autostart Script, es läuft jetzt. Vielen Dank!

                        Hardware: NUC 386i, Proxmox: als VM ioBroker, HomeMatic, Hue(Zigbee), UnifiAC, Visualisierung: 24 Zoll Touchscreen Portrait Modus

                        S 1 Antwort Letzte Antwort
                        1
                        • M Matten

                          @skokarl @dwm Da ich mit meinem zwave Adapter in meiner Virtualbox immer wieder Probleme hatte bin ich ich auf Proxmox umgestiegen, deshalb melde ich mich heute erst.

                          Ich habe damit den Adapter nochmals installiert, ebenso das Autostart Script, es läuft jetzt. Vielen Dank!

                          S Offline
                          S Offline
                          skokarl
                          schrieb am zuletzt editiert von
                          #249

                          @Matten

                          Danke für die Rückmeldung.

                          IOBroker mit Proxmox auf Celeron Nuc mit 16 GB und Debian11, Sonos API, Echo Show 15 als Wandtablet, Homematic IP, HUE, Sonos, Echos, DS718+ als Backup

                          1 Antwort Letzte Antwort
                          0
                          • D dwm

                            @LJSven
                            Hm ... grundsätzlich gibts bei den Funktionen, die die Playlists abfragen die "PlaylistData" ... das ist ein array, das dann eine "join" Funktion hat.
                            In dem Fall war PlaylistData KEIN Array, also Typfehler.

                            Nur einmal aufgetreten, oder öfters?
                            Was liefert den die API, wenn man "/playlists" fragt?

                            L Offline
                            L Offline
                            LJSven
                            schrieb am zuletzt editiert von
                            #250

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

                            @LJSven
                            Hm ... grundsätzlich gibts bei den Funktionen, die die Playlists abfragen die "PlaylistData" ... das ist ein array, das dann eine "join" Funktion hat.
                            In dem Fall war PlaylistData KEIN Array, also Typfehler.

                            Nur einmal aufgetreten, oder öfters?
                            Was liefert den die API, wenn man "/playlists" fragt?

                            Hallo @dwm,

                            der Fehler ist heute wieder aufgreteten - auch bei dem FavData.join

                            Woran kann das liegen? Kann ich da was gegen machen? Ich kann nicht mal einen Zusammenhang feststellen - weil zu dem Zeitpunkt kein Befehl abgesetzt wurde. Ich kann auch nciht sehen, welches Gerät dafür verantwortlich ist, oder?

                            D 1 Antwort Letzte Antwort
                            0
                            • L LJSven

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

                              @LJSven
                              Hm ... grundsätzlich gibts bei den Funktionen, die die Playlists abfragen die "PlaylistData" ... das ist ein array, das dann eine "join" Funktion hat.
                              In dem Fall war PlaylistData KEIN Array, also Typfehler.

                              Nur einmal aufgetreten, oder öfters?
                              Was liefert den die API, wenn man "/playlists" fragt?

                              Hallo @dwm,

                              der Fehler ist heute wieder aufgreteten - auch bei dem FavData.join

                              Woran kann das liegen? Kann ich da was gegen machen? Ich kann nicht mal einen Zusammenhang feststellen - weil zu dem Zeitpunkt kein Befehl abgesetzt wurde. Ich kann auch nciht sehen, welches Gerät dafür verantwortlich ist, oder?

                              D Offline
                              D Offline
                              dwm
                              schrieb am zuletzt editiert von
                              #251

                              @LJSven
                              Das sind die Sonos-Favoriten und die Sonos Playlists die da abgefragt werden, und zwar jede Minute einmal. Insofern ist da kein Gerät dafür verantwortlich, das kommt vom "Gesamtsystem Sonos". Trotzdem sollte die API natürlich den richtigen Datentyp liefern.
                              Ich hab jetzt mal ein Update hochgeladen, mit folgenden Änderungen:

                              function processFavorites(FavData, cbParam ){
                                  forceCreate=false;
                                  if (Array.isArray(FavData)){
                                      var FavListStr = FavData.join(';');
                                      // dwmlog ("Process Favorites Data: "+JSON.stringify(FavData,null,4)+" gives List "+FavListStr,5);
                                      createOrSetState(AdapterId+".SonosAPI.FavList",FavListStr,forceCreate,{ type: 'string', name: "Sonos Favorites list"});
                                  } else {
                                      dwmlog("SonosAPI processFavorites got invalid data: "+JSON.stringify(FavData),2,"warn");
                                  }
                              }
                              
                              function processPlaylists(PlaylistData, cbParam ){
                                  forceCreate=false;
                                  if (Array.isArray(PlaylistData)){
                                      var PlayListStr = PlaylistData.join(';');
                                      // dwmlog ("Process Favorites Data: "+JSON.stringify(FavData,null,4)+" gives List "+FavListStr,5);
                                      createOrSetState(AdapterId+".SonosAPI.Playlists",PlayListStr,forceCreate,{ type: 'string', name: "Sonos Playlist list"});
                                  } else {
                                      dwmlog("SonosAPI processPlaylists got invalid data: "+JSON.stringify(PlaylistData),2,"warn");
                                  }
                              }
                              

                              das härtet die beiden Funktionen gegen den falschen Datentyp, es wird dann eben eine Warnung ins Log geschrieben, aber die Exception passiert nicht mehr.
                              Ist irgendwie anscheinend ein Problem in der API selber. Wenns nur sporadisch auftritt, kann man's ignorieren, wie gesagt, die Synchronisierung von Playlists und Favoriten passiert einmal pro Minute.

                              L 1 Antwort Letzte Antwort
                              0
                              • D dwm

                                @LJSven
                                Das sind die Sonos-Favoriten und die Sonos Playlists die da abgefragt werden, und zwar jede Minute einmal. Insofern ist da kein Gerät dafür verantwortlich, das kommt vom "Gesamtsystem Sonos". Trotzdem sollte die API natürlich den richtigen Datentyp liefern.
                                Ich hab jetzt mal ein Update hochgeladen, mit folgenden Änderungen:

                                function processFavorites(FavData, cbParam ){
                                    forceCreate=false;
                                    if (Array.isArray(FavData)){
                                        var FavListStr = FavData.join(';');
                                        // dwmlog ("Process Favorites Data: "+JSON.stringify(FavData,null,4)+" gives List "+FavListStr,5);
                                        createOrSetState(AdapterId+".SonosAPI.FavList",FavListStr,forceCreate,{ type: 'string', name: "Sonos Favorites list"});
                                    } else {
                                        dwmlog("SonosAPI processFavorites got invalid data: "+JSON.stringify(FavData),2,"warn");
                                    }
                                }
                                
                                function processPlaylists(PlaylistData, cbParam ){
                                    forceCreate=false;
                                    if (Array.isArray(PlaylistData)){
                                        var PlayListStr = PlaylistData.join(';');
                                        // dwmlog ("Process Favorites Data: "+JSON.stringify(FavData,null,4)+" gives List "+FavListStr,5);
                                        createOrSetState(AdapterId+".SonosAPI.Playlists",PlayListStr,forceCreate,{ type: 'string', name: "Sonos Playlist list"});
                                    } else {
                                        dwmlog("SonosAPI processPlaylists got invalid data: "+JSON.stringify(PlaylistData),2,"warn");
                                    }
                                }
                                

                                das härtet die beiden Funktionen gegen den falschen Datentyp, es wird dann eben eine Warnung ins Log geschrieben, aber die Exception passiert nicht mehr.
                                Ist irgendwie anscheinend ein Problem in der API selber. Wenns nur sporadisch auftritt, kann man's ignorieren, wie gesagt, die Synchronisierung von Playlists und Favoriten passiert einmal pro Minute.

                                L Offline
                                L Offline
                                LJSven
                                schrieb am zuletzt editiert von
                                #252

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

                                @LJSven
                                Das sind die Sonos-Favoriten und die Sonos Playlists die da abgefragt werden, und zwar jede Minute einmal. Insofern ist da kein Gerät dafür verantwortlich, das kommt vom "Gesamtsystem Sonos". Trotzdem sollte die API natürlich den richtigen Datentyp liefern.
                                Ich hab jetzt mal ein Update hochgeladen, mit folgenden Änderungen:

                                function processFavorites(FavData, cbParam ){
                                    forceCreate=false;
                                    if (Array.isArray(FavData)){
                                        var FavListStr = FavData.join(';');
                                        // dwmlog ("Process Favorites Data: "+JSON.stringify(FavData,null,4)+" gives List "+FavListStr,5);
                                        createOrSetState(AdapterId+".SonosAPI.FavList",FavListStr,forceCreate,{ type: 'string', name: "Sonos Favorites list"});
                                    } else {
                                        dwmlog("SonosAPI processFavorites got invalid data: "+JSON.stringify(FavData),2,"warn");
                                    }
                                }
                                
                                function processPlaylists(PlaylistData, cbParam ){
                                    forceCreate=false;
                                    if (Array.isArray(PlaylistData)){
                                        var PlayListStr = PlaylistData.join(';');
                                        // dwmlog ("Process Favorites Data: "+JSON.stringify(FavData,null,4)+" gives List "+FavListStr,5);
                                        createOrSetState(AdapterId+".SonosAPI.Playlists",PlayListStr,forceCreate,{ type: 'string', name: "Sonos Playlist list"});
                                    } else {
                                        dwmlog("SonosAPI processPlaylists got invalid data: "+JSON.stringify(PlaylistData),2,"warn");
                                    }
                                }
                                

                                das härtet die beiden Funktionen gegen den falschen Datentyp, es wird dann eben eine Warnung ins Log geschrieben, aber die Exception passiert nicht mehr.
                                Ist irgendwie anscheinend ein Problem in der API selber. Wenns nur sporadisch auftritt, kann man's ignorieren, wie gesagt, die Synchronisierung von Playlists und Favoriten passiert einmal pro Minute.

                                Wo finde ich das Update? Wie mache ich das?

                                1 Antwort Letzte Antwort
                                0
                                • D Offline
                                  D Offline
                                  dwm
                                  schrieb am zuletzt editiert von
                                  #253

                                  In meinem Github Repository...
                                  https://github.com/dwm66/iobroker-scripts/tree/master/SonosAPI

                                  Einfach Script mit neuer Version ersetzen.

                                  L 1 Antwort Letzte Antwort
                                  0
                                  • R Offline
                                    R Offline
                                    rehmosch
                                    schrieb am zuletzt editiert von
                                    #254

                                    Servus,

                                    wie kann ich das Album-Cover auf der Sonos mit VIS aktualisieren? Oder wie kann ich VIS alle 5 Sekunden aktualisieren lassen? Das neue Album-Cover ist ja als Datenpunkt da und die Daten haben sich geändert, aber VIS ändert nichts, jedoch bei Spotify klappt es ;(

                                    Soll ich es über einen eigenen Datenpunkt triggern? Danke

                                    RP4/Conbee II/Pihilips Hue/HarmonyHub/Sonos/Alexa/Aqara Sensoren/Tradfri/ZigbeeThermostate/Xiaomi Saugroboter/Smarte Türklingel & Briefkasten ...

                                    1 Antwort Letzte Antwort
                                    0
                                    • D dwm

                                      In meinem Github Repository...
                                      https://github.com/dwm66/iobroker-scripts/tree/master/SonosAPI

                                      Einfach Script mit neuer Version ersetzen.

                                      L Offline
                                      L Offline
                                      LJSven
                                      schrieb am zuletzt editiert von LJSven
                                      #255

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

                                      In meinem Github Repository...
                                      https://github.com/dwm66/iobroker-scripts/tree/master/SonosAPI

                                      Einfach Script mit neuer Version ersetzen.

                                      Okay, erledigt - der Fehler oder das Warning ist bisher noch nicht wieder aufgetreten.

                                      Andere Frage: Wenn der "PlaybackState" auf STOPPED geht, bleibt der "PlaybackStateSimple" auf true - ist das korrekt? Ausserdem springt der "playbackState" nach ca. 3 Minuten wieder um auf "PLAYING", wenn ich den Wert über die VIS ändere.

                                      1 Antwort Letzte Antwort
                                      0
                                      • D Offline
                                        D Offline
                                        dwm
                                        schrieb am zuletzt editiert von
                                        #256

                                        Seltsames Verhalten.
                                        Im Prinzip ist das so verdrahtet, dass der PlaybackStateSimple auf false geht, wenn der PlaybackState nicht "PLAYING" ist.

                                        Wenn man den PlaybackStateSimple auf "true" setzt, sollte eine "PLAY" Action ausgeführt werden, bei false ein "PAUSE".

                                        Was ich mir grad vorstellen könnte ist, dass das System durcheinanderkommt, wenn man die Kommandos sehr schnell hintereinander absetzt.

                                        1 Antwort Letzte Antwort
                                        0
                                        • Q Qlink

                                          Hi Leute,

                                          ich hab die Sonos-http-api Installation jetzt auch erfolgreich unter Windows hinbekommen inkl. Autostart.

                                          Die Installationsschritte sind eigentlich fast identisch zu den oben genannten.

                                          node-sonos-http-api-master.zip von github herunterladen und nach C:\ioBroker\node_modules\node-sonos-http-api-master bzw. eurem iobroker Verzeichnis entpacken

                                          wie beschrieben mittels npm installieren

                                          den autostart habe ich mit pm2 hinbekommen:
                                          pm2 von github laden und ebenfalls wie sonos-http-api installieren https://github.com/Unitech/pm2

                                          dann autostart-sonos-http-api.bat erstellen und in einem beliebigen verzeichnis ablegen
                                          in das .bat file folgendens cmd einfügen

                                          pm2 start c:\iobroker\node_modules\node-sonos-http-api-master\server.js -x --name "sonos-api"
                                          

                                          Nun nur noch mittels Windows Task Scheduler eine neue Task erstellen, bei Trigger "at startup" und bei Action "start program" mit verweis auf das erstellte .bat file

                                          und fertig

                                          Beste Grüße

                                          surfer09S Offline
                                          surfer09S Offline
                                          surfer09
                                          schrieb am zuletzt editiert von surfer09
                                          #257

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

                                          Hi Leute,

                                          ich hab die Sonos-http-api Installation jetzt auch erfolgreich unter Windows hinbekommen inkl. Autostart.

                                          Die Installationsschritte sind eigentlich fast identisch zu den oben genannten.

                                          node-sonos-http-api-master.zip von github herunterladen und nach C:\ioBroker\node_modules\node-sonos-http-api-master bzw. eurem iobroker Verzeichnis entpacken

                                          wie beschrieben mittels npm installieren

                                          den autostart habe ich mit pm2 hinbekommen:
                                          pm2 von github laden und ebenfalls wie sonos-http-api installieren https://github.com/Unitech/pm2

                                          dann autostart-sonos-http-api.bat erstellen und in einem beliebigen verzeichnis ablegen
                                          in das .bat file folgendens cmd einfügen

                                          pm2 start c:\iobroker\node_modules\node-sonos-http-api-master\server.js -x --name "sonos-api"
                                          

                                          Nun nur noch mittels Windows Task Scheduler eine neue Task erstellen, bei Trigger "at startup" und bei Action "start program" mit verweis auf das erstellte .bat file

                                          und fertig

                                          Beste Grüße

                                          Danke für deine Anleitung! Ich habe das Ganze so installiert, wie du beschildert hast, allerdings funktioniert die Batch-Datei bei mir nicht. Meldung: "Der Befehl pm2 ist entweder falsch geschrieben, oder konnte nicht gefunden werden".
                                          Pm2 habe ich ebenfalls in den node_modules Ordner meiners IO-Brokers installiert.

                                          Aktuell starte ich die API immer manuell und das funktioniert dann scheinbar auch. Das muss ich aber nach jedem Neustart ausführen.. Wäre besser, wenn das doch automatisch ginge...

                                          API-start.jpg

                                          Gruß surfer ;-)

                                          IO-Broker Master/Slave auf Windows 11 64bit, NPM 10.9.4, Node 22.21.1 js-controller 7.0.7

                                          Q 1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

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

                                          895

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe