Wat is Airsonos?
AirSonos is een server die AirPlay toevoegt aan je Sonos apparaten in je netwerk.
Credits voor Stephen. Hij heeft AirSonos gemaakt:
https://github.com/stephen/airsonos
Inleiding
Sonos is een multi-room wireless HiFi systeem welke te bedienen is vanuit de Sonos app. Deze kan draaien op Android, IOS en Windows.
Ik heb sinds kort een Sonos Playbar. Deze is aangesloten op de TV met een optische kabel. Ik merkte dat ik de Airplay functie mis die niet in de Sonos App zit. Ik wil middels Airplay muziek vanaf Youtube en eventueel andere apps kunnen streamen naar de Sonos. Sonos heeft deze functionaliteit standaard dus niet. Om dit toe te voegen kun je bijvoorbeeld een Airport express gebruiken en deze met de audio port verbinden. Ik heb geen Airport express, maar wel een aantal Intel nuc’s en een Synology Nas, welke 24/7 draaien. AirSonos kun je op Mac, Windows en Linux installeren. Er zijn ook artikelen over Synology Nas waar AirSonos op kan draaien.
In mijn geval ga ik voor de installatie op een Linux VM binnen mijn Hyper-V omgeving.
Installatie Ubuntu 14
Ik heb gekozen voor Ubuntu 14.0.4 als operating system. Mijn vm heeft 512 mb geheugen, 2 vCPU’s en 12 gb disk. Ik monitor deze vm de komende weken met Check_MK, zodat ik kan zien wat voor resources deze machine gebruikt. Ik denk dat je met minder geheugen uit de voeten kunt.
Tijdens de installatie kies ik voor standaard features + openssh-server.
Na de installatie stel ik de netwerksettings en dns settings in. Ik installeer de laatste dist-upgrade en updates en voeg NTP, check_mk agent en salt-minion toe. Dit is mijn standaard, kies daarin je eigen standaard.
Installatie AirSonos
AirSonos draait op Nodejs. Hierbij de installatie van de prerequisites:
sudo apt-get install libavahi-compat-libdnssd-dev libasound2-dev
sudo apt-get install git
sudo apt-get install node
sudo apt-get install nodejs-legacy
sudo apt-get install npm
Nu de installatie van AirSonos zelf:
sudo npm install airsonos -g
=== Update 20-07-2017 ===
Er moet helaas nog wel een regeltje aangepast worden in logicalDevice.js, omdat de discovery anders niet werkt.
sudo nano /usr/local/lib/node_modules/airsonos/node_modules/sonos/lib/logicalDevice.js
Zoeken (Ctrl+w)
if (device.name === ‘BRIDGE’ || device.name === ‘BOOST’) return; // devices to ignore in search
Maak daarvan:
if (device.coordinator === ‘false’ || device.name === ‘BRIDGE’ || device.name === ‘BOOST’) return; // devices to ignore in search
=== Einde update ===
AirSonos werkt nu. Type maar in: airsonos
Er wordt nu gezocht naar je Sonos apparatuur en vanaf je mobiele device kun je muziek streamen. Maar om nu airsonos op deze manier te laten draaien… Nee, je wilt dit natuurlijk als service laten draaien, zodat je er geen omkijken naar hebt. Na een herstart wil je ook dat AirSonos meteen weer draait natuurlijk.
AirSonos as a service
sudo adduser –no-create-home –disabled-login airsonos
sudo apt-get install daemontools daemontools-run
sudo mkdir /etc/service/airsonos
sudo nano /etc/service/airsonos/run
plak deze inhoud in run:
#!/bin/sh
exec setuidgid airsonos sh -c ‘
exec airsonos
‘
sudo chmod a+x /etc/service/airsonos/run
sudo initctl start svscan
AirSonos deamon service bedienen
sudo svc -du /etc/service/airsonos
(herstart airsonos)
sudo svc -d /etc/service/airsonos
(stopt airsonos)
sudo svc -u /etc/service/airsonos
(start airsonos)
Tot slot
Ik merkt vanaf Itunes vanaf mijn Surface een goede performance. Vanuit Youtube was dit niet altijd het geval. Ik heb daarom toch de playbar op de bekabeling aangesloten. Ik merk nu geen haperingen meer. Ook als je de sonos app gebruikt dien je het beste eerst even airplay weer uit te zetten op je mobiele device. Let er ook op dat je latency hebt van een paar seconde. Het is dus niet bedoeld om een film te kijken op je mobieltje met synchroon geluid. Daarvoor zul je echt naar andere oplossingen moeten kijken. En wie weet werkt dat wel met de Airport Express… Dat is voor mij onbekend.
Ik hoop dat gebruikers van Sonos, welke toch de airplay functionaliteit willen hebben hier iets aan hebben. Er is genoeg informatie te vinden over hoe je dit werkend kunt krijgen op Raspberry Pi’s en Synology’s, wat deze functie dus op een goedkope manier kan toevoegen.
Mocht je nog vragen hebben: info@blonkit.nl of twitter @marcoblonk