One of my reasons for liking the amplipi is the ability to avoid interaction with cloud services and listening device in the home. I’ve played with OpenHAB and similar projects, but they are overkill for what I need, and everything needs to be simple for the Mrs. and guests to interact with. I’m also curious what others are planning with their systems, so please share.
I suspect the intention of the amplipi interface is not to coordinate all sorts of other activities, but I am wondering if there is any callback support on certain activities or how I can achieve my goals with the least moving parts. I suspect I will be deploying another device as a controller for things like simple rotary controls that I can wire up to alter the volume in a given room. I’ll just describe here what I intend to deploy and would appreciate any feedback. Perhaps some will spark feature requests if others see the value as well.
HaspONE or similar in the kitchen. It would be nice to have full control from one hardwired location, and that HaspONE device looks like a good choice. I’d like to be able to choose programming and alter volume from one location. I assume such a device is programmable such that it can just use the aplipi API. This would also talk to my tuner for changing the radio station. It would be great if I could do that from the web app if any callbacks are supported from presets. I have a tuner input via RCA connectors, but I’d like to have several tuner inputs, each from the same line input source, but with a change to the tuning which I could do via an IR emitter or RS232 to my Rotel tuner.
simple rotary volume controls in each room. Stateless, but can alter the volume up or down from where it is now. These could be simple or smart, but need wiring either way so once I find a good solution I’ll post more. Simple would be signal back to a raspberry pi which could then make the api calls, or smart could be connected via PoE and then make the call directly.
outdoor over-ride and kill switch. Specific action needed to un-mute the yard speakers with auto shutoff after a certain hour. I live in a dense urban environment and don’t want to annoy the neighbors too much, at least not on accident.
rotary phone controller which will allow my old wall mounted rotary phone to send pulses (converted to tones) to an asterisk server which can then make api calls to amplipi. Just for fun.
The easiest way to interface with AmpliPi over the network is with python, there is currently a python client used as a building block for our in-progress HA integration.
As for a room display, we are currently looking into customizing some of the new sonoff displays to use as an interface to AmpliPi. There is currently an effort to redo their firmware and integrate them with HA, we would like to use those efforts to bootstrap out own integration (without any HA connection).
A more near term display solution might be making your own display based on the awesome work of kjk2010 here.
As for your external controls, I would recommend using a pi/linux sbc to allow for easy modification in python, but there is also the POE touchscreen above running on an esp32 that sends commands to the AmpliPi. I expect that either these could be easily wired to a dimmer switch or an e-stop.
All of this sounds like fun! Best of luck with all of your customization. Feel free to keep us up to date here on your progress.
Something I have been helping with recently might be of interest to this topic. Check out https://oxrs.io. The docs are a WIP and no where near complete but hopefully it will give you the gist.
Basically we are trying to build a rack mounted eco-system of devices for local automation. The State Monitor firmware (written by me) allows you to monitor up to 128 inputs via a 32 port board like this. Each RJ45 port supports up to 4 input channels.
The idea is you run CAT5/6 from your rack to each light switch location. You can then use cheap switches, push buttons, or rotary encoders, and the State Monitor firmware will monitor each input and publish events to MQTT for downstream systems to use.
I am planning to use rotary encoders in my wall switches for AmpliPi volume control. Happy to answer any questions. I realise this is probably a bit more complex than you are after, but the premise is pretty close.
I am building a new house and will be using this system throughout…
I have the rotary encoder working on a raspberry pi which then calls the API to change the volume or mute the sound for one zone. I intend to mount rotary encoders in 3 or 4 rooms to have a local, physical volume/mute control.
I like the look of the projects you referenced, and picked up some RJ-45 jacks (LINK-PP LPJ0011BBNL) to solder onto a small PCB with the rotary encoder to put behind the switch plates.
I can probably just wire those back to a pi but maybe the project you propose would make that easier and neater. Does oxrs and the SmartHouse breakout just extend/expamd/mux the GPIO ports? The docs are still a bit sparse.
Yeah the project is still in its infancy. The idea is your switches/buttons/encoders are wired back to the central controller over CAT6, so cheap and easy. The controller then has an ESP32 which monitors the signals from the ends of the CAT6 (using MCP23017 I/O extenders so we can monitor 128 devices on a single I2C bus).
The firmware I have written then decodes the signals it receives and generates MQTT messages, which you can subscribe to in something like NodeRED and link up to whatever you like - in your case the AmpliPi API.
So the short answer is yes - the system extends/expands the IO from a single ESP32 to allow monitoring of up to 128 inputs. But it also adds built-in decoding of rotary encoder signals and generates simple up and down MQTT events, as you rotate.