audioengine-a5-controller
audioengine-a5-controller copied to clipboard
Discrete "off" codes?
Hi @chatziko
I ran into this project by accident, but it looks amazing. Bravo for figuring this out. Sorry to interrupt you.
I was an A5 owner as well and later moved to the HD6. I love these speakers, but trying to integrate them into Home Assistant has been a pain—mainly because of the lack of discrete power on/off or mute on/off codes. It seems you encountered the same problem! I wonder if this mod would similarly be adaptable to the HD6.
From your README I still wasn't sure if this would bring excplicit on & off commands? It seems like the answer is yes but before I even begin to attempt this (my soldering skills are not great) I just wanted to ask...
Indeed the are no discrete on/off codes (annoying), but there is a little trick that you can use: VOL_DOWN actually causes the speaker to awake/unmute! So an OFF command can be implemented as VOL_DOWN + wait 1 second + POWER, which works no matter if the speaker is initially on or off.
My controller actually implements a "reset" operation that brings the speaker to a known state, no matter which state it starts from. This is achieved with VOL_DOWN + wait 1sec + 50 x VOL_DOWN. This results in an awake state with volume 0, from which we can easily bring the speaker to any desired state.
If you have the time go for it and feel free to ask for advice. It's pretty rewarding when you finally make it work! :smile: If you only care about on/off btw you can do it with an IR transmitter. Controlling the volume accurately will be trickier though cause IR is not super accurate (my controller uses the rotary encoder for volume).
You should check the kostas branch btw, it has more recent code (just a bit tailored to my setup). I'll try to extract the generic parts to the master branch if I find some time.
Clarification: my controller does expose discrete on/off commands to HA, and also allows to set the volume to any precise value. The speaker itself does not have on/off commands, so my controller needs to do the "reset" trick, to start from a known initial state.
Thank you for the reply! I will pin this for a nice summer project. Either way I will reach out and keep you posted.