Sonos webcontroller interface howto
-
- Forfatter
- Indlæg: 794
- Tilmeldt: 21. jan 2007, 17:45
- Geografisk sted: Christianshavn
Sonos webcontroller interface howto
Det er ret irriterende at man ikke kan bruge Sonos controlleren på Linux uden at skulle finde sig i Wine og det fact at den fra tid til anden holder op med at virke under Wine.
Men så var det jeg stødte på Sonos controller webinterfacet http://www.purple.org/sonos/, som med lidt fingernemhed kan installeres på en linuxbox - eller bedre - en linuxbox på loftet. Så kan man tilgå Sonos gennem en browser gennem http://maskine:8001
For dem med Sonos og Ubuntu er her en lille howto baseret på mine erfaringer og siderne http://omegasales.wordpress.com/2012/05/07/running-sonos-on-linux-laptop-andor-server/ og http://www.snille.net/downloads/howtos/How%20to%20install%20Sonos%20Web%20controller.txt.
1. Installer de pakker som sonosweb kræver (her Ubuntu 12.04)
sudo apt-get install libuser-perl liblwp-useragent-determined-perl libhttp-daemon-perl libxml-simple-perl libhtml-template-perl libsoap-lite-perl libdata-dump-perl
2. Hent sonosweb og pak ud
wget http://www.purple.org/sonos/sonosweb-0.72.tar.gz
tar xvf sonosweb-0.72.tar.gz
3. Ret 2 fejl i sonos.pl
cd sonos
gedit sonos.pl
# gå til omkring linje 1800 og erstat
foreach my $queue (@{@{$main::ZONES{$zone}->{QUEUE}}}) {
# med
foreach my $queue (@{$main::ZONES{$zone}->{QUEUE}}) {
# gå til omkring linje 1275 og erstat
next if ($device->{LOCATION} !~ /xml\/zone_player.xml/);
# med
next if ($device->friendlyName !~ /Sonos/);
next if (!($device->friendlyName !~ /Sonos BRIDGE/));
next if (!($device->friendlyName !~ /Sonos DOCK/));
gem og luk
4. konfigurér sonosweb
./sonos.pl -config
Jeg har bare tastet <enter> og acceptereret standard indstillinger
5. start sonosweb controller webservicen i baggrunden på en maskine i en screen-session - denne session kan man komme ud af ved at skriver "ctrl-a" "d" og komme tilbage til med screen -R
sudo apt-get install screen
screen
./sonos.pl
ctrl-a d
6. Nyd det udmærkede web interface på http://maskinenavn:8001
Men så var det jeg stødte på Sonos controller webinterfacet http://www.purple.org/sonos/, som med lidt fingernemhed kan installeres på en linuxbox - eller bedre - en linuxbox på loftet. Så kan man tilgå Sonos gennem en browser gennem http://maskine:8001
For dem med Sonos og Ubuntu er her en lille howto baseret på mine erfaringer og siderne http://omegasales.wordpress.com/2012/05/07/running-sonos-on-linux-laptop-andor-server/ og http://www.snille.net/downloads/howtos/How%20to%20install%20Sonos%20Web%20controller.txt.
1. Installer de pakker som sonosweb kræver (her Ubuntu 12.04)
sudo apt-get install libuser-perl liblwp-useragent-determined-perl libhttp-daemon-perl libxml-simple-perl libhtml-template-perl libsoap-lite-perl libdata-dump-perl
2. Hent sonosweb og pak ud
wget http://www.purple.org/sonos/sonosweb-0.72.tar.gz
tar xvf sonosweb-0.72.tar.gz
3. Ret 2 fejl i sonos.pl
cd sonos
gedit sonos.pl
# gå til omkring linje 1800 og erstat
foreach my $queue (@{@{$main::ZONES{$zone}->{QUEUE}}}) {
# med
foreach my $queue (@{$main::ZONES{$zone}->{QUEUE}}) {
# gå til omkring linje 1275 og erstat
next if ($device->{LOCATION} !~ /xml\/zone_player.xml/);
# med
next if ($device->friendlyName !~ /Sonos/);
next if (!($device->friendlyName !~ /Sonos BRIDGE/));
next if (!($device->friendlyName !~ /Sonos DOCK/));
gem og luk
4. konfigurér sonosweb
./sonos.pl -config
Jeg har bare tastet <enter> og acceptereret standard indstillinger
5. start sonosweb controller webservicen i baggrunden på en maskine i en screen-session - denne session kan man komme ud af ved at skriver "ctrl-a" "d" og komme tilbage til med screen -R
sudo apt-get install screen
screen
./sonos.pl
ctrl-a d
6. Nyd det udmærkede web interface på http://maskinenavn:8001
Claus Gårde Henriksen / Jeg bruger ikke Ubuntu / Debian Stable 12
-
- Indlæg: 359
- Tilmeldt: 23. jan 2009, 21:14
- IRC nickname: naucher
- Geografisk sted: Aabenraa
Re: Sonos webcontroller interface howto
Jeg forstår vist ikke helt, hvad og hvordan ...:
Jeg når fint til at hente og udpakke med:
Det går også udmærket at få lavet de to ændringer i filen ~/Sonos/sonos.pl
Men så knækker filmen for mig.
Hvad mener du med
Hvordan og hvad? Hvilken kommando? ...for det er vel stadig terminalkommandoer, der menes?
Derefter installerer jeg screen med
Men den næste linje:
.. giver ikke rigtigt mening for mig.
Måske pga. af ovenstående, får jeg blot "Ude af stand ..." fra FireFox, når jeg prøver at tilgå siden http://maskinnavn:8001
Jeg når fint til at hente og udpakke med:
Kode: Vælg alt
wget http://www.purple.org/sonos/sonosweb-0.72.tar.gz
tar xvf sonosweb-0.72.tar.gz
Det går også udmærket at få lavet de to ændringer i filen ~/Sonos/sonos.pl
Men så knækker filmen for mig.
Hvad mener du med
4. konfigurér sonosweb
./sonos.pl -config
Hvordan og hvad? Hvilken kommando? ...for det er vel stadig terminalkommandoer, der menes?
Derefter installerer jeg screen med
Kode: Vælg alt
sudo apt-get install screen
screen
Men den næste linje:
Kode: Vælg alt
./sonos.pl
Måske pga. af ovenstående, får jeg blot "Ude af stand ..." fra FireFox, når jeg prøver at tilgå siden http://maskinnavn:8001
De bedste hilsner
Naucher
Begejstret Bruger
Lenovo Thinkpad L15 (årg. 2023) | 16,0 GB RAM | 400 GB disk || Ubuntu 23.10
Lenovo Thinkpad S540 (årg. 2014) | 8,0 GB RAM | 400 GB disk || Ubuntu 22.04LTS
Naucher
Begejstret Bruger
Lenovo Thinkpad L15 (årg. 2023) | 16,0 GB RAM | 400 GB disk || Ubuntu 23.10
Lenovo Thinkpad S540 (årg. 2014) | 8,0 GB RAM | 400 GB disk || Ubuntu 22.04LTS
-
- Admin
- Indlæg: 20878
- Tilmeldt: 15. nov 2009, 15:04
- IRC nickname: AJenbo
- Geografisk sted: Vanløse, København
Re: Sonos webcontroller interface howto
Har du husket at udpakke den tar.gz du hentede hvor du finder sonos.pl og navigere til mappen så du kan køre det?
-
- Indlæg: 359
- Tilmeldt: 23. jan 2009, 21:14
- IRC nickname: naucher
- Geografisk sted: Aabenraa
Re: Sonos webcontroller interface howto
Ja, jeg har hentet og udpakket. Jeg har også lavet de nævnte ændringer i sonos.pl
Men når du skriver: "køre det" Hvad mener du så? Hvordan "kører man"?
Men når du skriver: "køre det" Hvad mener du så? Hvordan "kører man"?
De bedste hilsner
Naucher
Begejstret Bruger
Lenovo Thinkpad L15 (årg. 2023) | 16,0 GB RAM | 400 GB disk || Ubuntu 23.10
Lenovo Thinkpad S540 (årg. 2014) | 8,0 GB RAM | 400 GB disk || Ubuntu 22.04LTS
Naucher
Begejstret Bruger
Lenovo Thinkpad L15 (årg. 2023) | 16,0 GB RAM | 400 GB disk || Ubuntu 23.10
Lenovo Thinkpad S540 (årg. 2014) | 8,0 GB RAM | 400 GB disk || Ubuntu 22.04LTS
-
- Admin
- Indlæg: 20878
- Tilmeldt: 15. nov 2009, 15:04
- IRC nickname: AJenbo
- Geografisk sted: Vanløse, København
Re: Sonos webcontroller interface howto
Man køre sonos.pl ved at skrive ./sonos.pl i terimnalen mens man er i mappen, og så sammen med det parameter som er nævnt i guiden for at opnå det ønskede resultat.
-
- Indlæg: 359
- Tilmeldt: 23. jan 2009, 21:14
- IRC nickname: naucher
- Geografisk sted: Aabenraa
Re: Sonos webcontroller interface howto
OK - den havde jeg så ikke lige fanget.
Men desværre giver kommandoen: ... eller samme fejlmelding, nemlig:
Linje 5 i filen skriver: use UPnP::ControlPoint;
Linje 14 skriver: use HTTP::Daemon;
Linje 728 er en tom/blank linje
Hvad/hvor går det galt for mig?
Men desværre giver kommandoen:
Kode: Vælg alt
./sonos.pl
Kode: Vælg alt
./sonos.pl -config
Can't locate XML/Parser/Lite.pm in @INC (you may need to install the XML::Parser::Lite module) (@INC contains: . ./UPnP/lib /etc/perl /usr/local/lib/perl/5.18.2 /usr/local/share/perl/5.18.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.18 /usr/share/perl/5.18 /usr/local/lib/site_perl) at UPnP/lib/UPnP/Common.pm line 728.
BEGIN failed--compilation aborted at UPnP/lib/UPnP/Common.pm line 728.
Compilation failed in require at UPnP/lib/UPnP/ControlPoint.pm line 14.
BEGIN failed--compilation aborted at UPnP/lib/UPnP/ControlPoint.pm line 14.
Compilation failed in require at ./sonos.pl line 5.
BEGIN failed--compilation aborted at ./sonos.pl line 5.
Linje 5 i filen skriver: use UPnP::ControlPoint;
Linje 14 skriver: use HTTP::Daemon;
Linje 728 er en tom/blank linje
Hvad/hvor går det galt for mig?
De bedste hilsner
Naucher
Begejstret Bruger
Lenovo Thinkpad L15 (årg. 2023) | 16,0 GB RAM | 400 GB disk || Ubuntu 23.10
Lenovo Thinkpad S540 (årg. 2014) | 8,0 GB RAM | 400 GB disk || Ubuntu 22.04LTS
Naucher
Begejstret Bruger
Lenovo Thinkpad L15 (årg. 2023) | 16,0 GB RAM | 400 GB disk || Ubuntu 23.10
Lenovo Thinkpad S540 (årg. 2014) | 8,0 GB RAM | 400 GB disk || Ubuntu 22.04LTS
-
- Admin
- Indlæg: 20878
- Tilmeldt: 15. nov 2009, 15:04
- IRC nickname: AJenbo
- Geografisk sted: Vanløse, København
Re: Sonos webcontroller interface howto
Se om det her er hvad der mangler:
Kode: Vælg alt
perl -MCPAN -e 'install HTTP::Daemon'
perl -MCPAN -e 'install UPnP::ControlPoint'
perl -MCPAN -e 'install XML::Parser::Lite'
-
- Indlæg: 359
- Tilmeldt: 23. jan 2009, 21:14
- IRC nickname: naucher
- Geografisk sted: Aabenraa
Re: Sonos webcontroller interface howto
Tilsyneladende ikke helt - desværre
Skal man køre de tre kommandoer som sudo?
Når jeg kører får jeg dette output:
Derefter kører jeg og får:
Til sidst kører jeg og får:
Under første kommando står bl.a. noget med:
Betyder det noget?
Hvordan gør man? ... for sådan lige umiddelbart giver disse kommandoer kun fejlmeldinger som resultat.
Under anden kommando står der, at UPnP::ControlPoint ikke kan installeres, men at man måske skal køre
Hvordan gør man? ... for sådan lige umiddelbart giver denne kommando kun en fejlmelding som resultat.
Under sidste kommando står der bl.a. noget med, at YAML mangler, samt at der mangler noget "make"?
Hvordan så nu?
Skal man køre de tre kommandoer som sudo?
Når jeg kører
Kode: Vælg alt
perl -MCPAN -e 'install HTTP::Daemon'
CPAN.pm requires configuration, but most of it can be done automatically.
If you answer 'no' below, you will enter an interactive dialog for each configuration option instead.
Would you like to configure as much as possible automatically? [yes] yes
<install_help>
Warning: You do not have write permission for Perl library directories.
To install modules, you need to configure a local Perl library directory or escalate your privileges. CPAN can help you by bootstrapping the local::lib module or by configuring itself to use 'sudo' (if available). You may also resolve this problem manually if you need to customize your setup.
What approach do you want? (Choose 'local::lib', 'sudo' or 'manual')
[local::lib] sudo
Autoconfigured everything but 'urllist'.
Now you need to choose your CPAN mirror sites. You can let me pick mirrors for you, you can select them from a list or you can enter them by hand.
Would you like me to automatically choose some CPAN mirror sites for you? (This means connecting to the Internet) [yes] yes
Trying to fetch a mirror list from the Internet
Fetching with LWP:
http://www.perl.org/CPAN/MIRRORED.BY
Looking for CPAN mirrors near you (please be patient)
.......................... done!
New urllist
http://www.pirbot.com/mirrors/cpan/
http://kvin.lv/pub/CPAN/
http://mirror.tje.me.uk/pub/mirrors/ftp.cpan.org/
Autoconfiguration complete.
commit: wrote '/home/naucher/.cpan/CPAN/MyConfig.pm'
You can re-run configuration any time with 'o conf init' in the CPAN shell
Fetching with LWP:
http://www.pirbot.com/mirrors/cpan/authors/01mailrc.txt.gz
Reading '/home/naucher/.cpan/sources/authors/01mailrc.txt.gz'
............................................................................DONE
Fetching with LWP:
http://www.pirbot.com/mirrors/cpan/modules/02packages.details.txt.gz
Reading '/home/naucher/.cpan/sources/modules/02packages.details.txt.gz'
Database was generated on Fri, 02 Jan 2015 10:53:21 GMT
..............
New CPAN.pm version (v2.05) available.
[Currently running version is v2.00]
You might want to try
install CPAN
reload cpan
to both upgrade CPAN.pm and run the new version without leaving the current session.
..............................................................DONE
Fetching with LWP:
http://www.pirbot.com/mirrors/cpan/modules/03modlist.data.gz
Reading '/home/naucher/.cpan/sources/modules/03modlist.data.gz'
DONE
Writing /home/naucher/.cpan/Metadata
HTTP::Daemon is up to date (6.01).
Derefter kører jeg
Kode: Vælg alt
perl -MCPAN -e 'install UPnP::ControlPoint'
Reading '/home/naucher/.cpan/Metadata'
Database was generated on Fri, 02 Jan 2015 10:53:21 GMT
Warning: Cannot install UPnP::ControlPoint, don't know what it is.
Try the command
i /UPnP::ControlPoint/
to find objects with matching identifiers.
Til sidst kører jeg
Kode: Vælg alt
perl -MCPAN -e 'install XML::Parser::Lite'
Reading '/home/naucher/.cpan/Metadata'
Database was generated on Fri, 02 Jan 2015 10:53:21 GMT
Running install for module 'XML::Parser::Lite'
Running make for P/PH/PHRED/XML-Parser-Lite-0.72.tar.gz
Fetching with LWP:
http://www.pirbot.com/mirrors/cpan/authors/id/P/PH/PHRED/XML-Parser-Lite-0.72.tar.gz
Fetching with LWP:
http://www.pirbot.com/mirrors/cpan/authors/id/P/PH/PHRED/CHECKSUMS
Checksum for /home/naucher/.cpan/sources/authors/id/P/PH/PHRED/XML-Parser-Lite-0.72.tar.gz ok
CPAN.pm: Building P/PH/PHRED/XML-Parser-Lite-0.72.tar.gz
Checking if your kit is complete...
Looks good
Writing Makefile for XML::Parser::Lite
Writing MYMETA.yml and MYMETA.json
cp lib/XML/Parser/Lite.pm blib/lib/XML/Parser/Lite.pm
Manifying blib/man3/XML::Parser::Lite.3pm
PHRED/XML-Parser-Lite-0.72.tar.gz
/usr/bin/make -- OK
'YAML' not installed, will not store persistent state
Running make test
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/07-xmlrpc_payload.t .. ok
t/26-xmlrpc.t .......... ok
t/27-xmlparserlite.t ... ok
t/37-mod_xmlrpc.t ...... Undefined subroutine &XMLRPC::Test::Server::run_for called at t/37-mod_xmlrpc.t line 16.
# Looks like your test exited with 255 before it could output anything.
t/37-mod_xmlrpc.t ...... Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 17/17 subtests
t/Lite.t ............... ok
Test Summary Report
-------------------
t/37-mod_xmlrpc.t (Wstat: 65280 Tests: 0 Failed: 0)
Non-zero exit status: 255
Parse errors: Bad plan. You planned 17 tests but ran 0.
Files=5, Tests=69, 4 wallclock secs ( 0.04 usr 0.01 sys + 0.39 cusr 0.06 csys = 0.50 CPU)
Result: FAIL
Failed 1/5 test programs. 0/69 subtests failed.
make: *** [test_dynamic] Fejl 255
PHRED/XML-Parser-Lite-0.72.tar.gz
/usr/bin/make test -- NOT OK
//hint// to see the cpan-testers results for installing this module, try:
reports PHRED/XML-Parser-Lite-0.72.tar.gz
Running make install
make test had returned bad status, won't install without force
Under første kommando står bl.a. noget med:
Kode: Vælg alt
install CPAN
reload cpan
Hvordan gør man? ... for sådan lige umiddelbart giver disse kommandoer kun fejlmeldinger som resultat.
Under anden kommando står der, at UPnP::ControlPoint ikke kan installeres, men at man måske skal køre
Kode: Vælg alt
i /UPnP::ControlPoint/
Hvordan gør man? ... for sådan lige umiddelbart giver denne kommando kun en fejlmelding som resultat.
Under sidste kommando står der bl.a. noget med, at YAML mangler, samt at der mangler noget "make"?
Hvordan så nu?
De bedste hilsner
Naucher
Begejstret Bruger
Lenovo Thinkpad L15 (årg. 2023) | 16,0 GB RAM | 400 GB disk || Ubuntu 23.10
Lenovo Thinkpad S540 (årg. 2014) | 8,0 GB RAM | 400 GB disk || Ubuntu 22.04LTS
Naucher
Begejstret Bruger
Lenovo Thinkpad L15 (årg. 2023) | 16,0 GB RAM | 400 GB disk || Ubuntu 23.10
Lenovo Thinkpad S540 (årg. 2014) | 8,0 GB RAM | 400 GB disk || Ubuntu 22.04LTS
-
- Admin
- Indlæg: 20878
- Tilmeldt: 15. nov 2009, 15:04
- IRC nickname: AJenbo
- Geografisk sted: Vanløse, København
Re: Sonos webcontroller interface howto
Ja, det var min fejl det skulle være med sudo
Siden det er perl der snakker tror jeg den mener noget i stil med:
Men Perl er ikke min stærke side.
Kode: Vælg alt
sudo perl -MCPAN -e 'install HTTP::Daemon'
sudo perl -MCPAN -e 'install UPnP::ControlPoint'
sudo perl -MCPAN -e 'install XML::Parser::Lite'
Siden det er perl der snakker tror jeg den mener noget i stil med:
Kode: Vælg alt
sudo perl -MCPAN -e 'i /UPnP::ControlPoint/'
Men Perl er ikke min stærke side.
-
- Indlæg: 359
- Tilmeldt: 23. jan 2009, 21:14
- IRC nickname: naucher
- Geografisk sted: Aabenraa
Re: Sonos webcontroller interface howto
Tja - det hjalp ... lidt ...
De første to kommandoer gik fint (iflg. terminalens respons)
Men den sidste giver fortsat dette output:
Der er tilsyneladende noget med, at 'YAML' ikke er installeret, samt en fejl i linie 16 ?
Kommandoen gav blot dette:
De første to kommandoer gik fint (iflg. terminalens respons)
Men den sidste
Kode: Vælg alt
sudo perl -MCPAN -e 'install XML::Parser::Lite'
Reading '/home/naucher/.cpan/Metadata'
Database was generated on Fri, 02 Jan 2015 10:53:21 GMT
Running install for module 'XML::Parser::Lite'
Running make for P/PH/PHRED/XML-Parser-Lite-0.72.tar.gz
Checksum for /home/naucher/.cpan/sources/authors/id/P/PH/PHRED/XML-Parser-Lite-0.72.tar.gz ok
CPAN.pm: Building P/PH/PHRED/XML-Parser-Lite-0.72.tar.gz
Checking if your kit is complete...
Looks good
Writing Makefile for XML::Parser::Lite
Writing MYMETA.yml and MYMETA.json
cp lib/XML/Parser/Lite.pm blib/lib/XML/Parser/Lite.pm
Manifying blib/man3/XML::Parser::Lite.3pm
PHRED/XML-Parser-Lite-0.72.tar.gz
/usr/bin/make -- OK
'YAML' not installed, will not store persistent state
Running make test
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/07-xmlrpc_payload.t .. ok
t/26-xmlrpc.t .......... ok
t/27-xmlparserlite.t ... ok
t/37-mod_xmlrpc.t ...... Undefined subroutine &XMLRPC::Test::Server::run_for called at t/37-mod_xmlrpc.t line 16.
# Looks like your test exited with 255 before it could output anything.
t/37-mod_xmlrpc.t ...... Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 17/17 subtests
t/Lite.t ............... ok
Test Summary Report
-------------------
t/37-mod_xmlrpc.t (Wstat: 65280 Tests: 0 Failed: 0)
Non-zero exit status: 255
Parse errors: Bad plan. You planned 17 tests but ran 0.
Files=5, Tests=69, 3 wallclock secs ( 0.04 usr 0.01 sys + 0.35 cusr 0.02 csys = 0.42 CPU)
Result: FAIL
Failed 1/5 test programs. 0/69 subtests failed.
make: *** [test_dynamic] Fejl 255
PHRED/XML-Parser-Lite-0.72.tar.gz
/usr/bin/make test -- NOT OK
//hint// to see the cpan-testers results for installing this module, try:
reports PHRED/XML-Parser-Lite-0.72.tar.gz
Running make install
make test had returned bad status, won't install without force
Der er tilsyneladende noget med, at 'YAML' ikke er installeret, samt en fejl i linie 16 ?
Kommandoen
Kode: Vælg alt
sudo perl -MCPAN -e 'i /UPnP::ControlPoint/'
Så det var nok ikke helt korrekt!?syntax error at -e line 1, at EOF
Execution of -e aborted due to compilation errors.
De bedste hilsner
Naucher
Begejstret Bruger
Lenovo Thinkpad L15 (årg. 2023) | 16,0 GB RAM | 400 GB disk || Ubuntu 23.10
Lenovo Thinkpad S540 (årg. 2014) | 8,0 GB RAM | 400 GB disk || Ubuntu 22.04LTS
Naucher
Begejstret Bruger
Lenovo Thinkpad L15 (årg. 2023) | 16,0 GB RAM | 400 GB disk || Ubuntu 23.10
Lenovo Thinkpad S540 (årg. 2014) | 8,0 GB RAM | 400 GB disk || Ubuntu 22.04LTS
-
- Admin
- Indlæg: 20878
- Tilmeldt: 15. nov 2009, 15:04
- IRC nickname: AJenbo
- Geografisk sted: Vanløse, København
Re: Sonos webcontroller interface howto
Jeg ville prøve med XML:: Parker eller Parser::Lite og hvis det ikke løser det bliver du nok nød til at Google lidt på hvordan man installerer den pakke