Wednesday, November 26, 2014

Using Phones as DIY Sonos

TL;DR - Just get Plex.

I have spent an unnecessarily unfortunate amount of time trying to achieve a few tech things in my house. For cheap.
For years I used an HP Microserver as an htpc, although its limits of directly playing 1080p video (native) via VGA was the most prominent problem.
Then the Amazon Fire TV (AFTV) came out, and since I have been a Prime member from inception, I gave it a shot.
It's perfect. Netflix has never been a problem as my TV has it built in, even a button on the remote just for Netflix. But now I have Prime video, for what it's worth (not much), and way more importantly: XBMC/Kodi. I consider Kodi to be the perfect solution for the modern media enthusiast.

On the AFTV, I can use the Fire remote, my iPad, or my phone to control Kodi. The Microserver now sits in a different room, resolved to NAS and file serving duties. It streams 1080p just fine to the AFTV over wifi.

So one problem solved: a good, silent HTPC that allowed dubious media and was wife friendly (dubious media meaning Icefilms, Genesis, and the like. Although my wife refuses to watch CAMs and has issues with TS)

The next problem I have dealt with since 2010 is the concept of the "smart speaker," which Sonos has perfected. My parents have a few of the speakers, and it works great for them. I'm too cheap, and wanted an alternative that didn't have restrictions.
In 2010, I used an Asus router with usb capabilities, after seeing this video, to re-flash to linux for streaming. The problems with that option were cache and memory sizes, but another problem that has prevented most fixes: controlling the speaker from a different device. It ultimately failed: great for streaming WYEP and DroneZone, not good for local media on a grand scale.
Target recently sold a bunch of Android phones (ZTE Zinger) for $10 each. Without a SIM card, they work as Android-oriented iPod touches. I picked some up hoping to figure out a good upnp/DLNA setup. Upnp essentially acts as a common language between devices so that each device can see which media and files are on the other.



Through all of this, there were two hurdles that free apps couldn't get around: room designation and volume control.

1) Bubbleupnp was tested as the most reliable server app on these phones. My iPad, using a DLNA app, was able to find the Microserver and "fling" media to the Zinger. The problems with bubble are that volume control is broken, and the free app only allows 30 minutes of music to be streamed before it stops. Also the app seemed to turn itself off and not be discoverable after a period of time.

2) These phones are the same model. Most free DLNA server apps create a server with the name "ZTE Server."  There was no way to delineate which room I was sending audio to. Bubbleupnp allowed me to change the name of each phone so that I could name each phone as "living room", "kitchen", etc.

Not being able to control the volume from my couch proved to be too cumbersome, and so I ditched the setup.

Plex is having a sale on its mobile apps at the time of this writing. The desktop software is free.

I tried Plex for the current speaker problem, and it does everything I need. The mobile app allows each Zinger phone to have its own name. The mobile app allows me to control what media is going where, and allows me to control the volume.

So my end setup now looks like this in text:
Microserver with movies and music - uses PS3 Media Server as UPNP server for Kodi; also Plex which is the ultimate solution for a cheap Sonos. Connected directly to wifi router (wireless N)

iPad's and real phones - use Plex app as remote control to choose songs from Microserver, and choose which Zinger phone receives audio.

ZTE Zingers - Android phones connected via headphone jack to various speakers throughout the house, using Plex app.

To anyone else trying to concoct a DIY smart sound system, just spend the money on Plex mobile apps with cheap phones. The best part of this is that you don't need to use linux, you don't need to do anything complex. Plex works for itself.
To get Kodi on the FireTV? That will take a little more knowledge, but isn't that bad

LIMITATIONS:
  • Unlike Sonos, there still isn't an obvious way to have music streamed and stopped/started in different rooms seamlessly.
  • I'm trying to figure out an easy way to get the Zingers to be in an always listening state. I do have to wake them up to get Plex to re-connect with the home network.
  • I did not try Squeezebox or any other proprietary Server/Client setup. Please comment if you have had success with any.

No comments: