How to Make an Old Speaker Smart Again

Stefan Grinsted
Smart Home, DIY, IoT
Illustration: © IoT For All

The thing with Google Chromecast is, you still need an amplifier to power the speakers. Those can consume a lot of power even when not playing music. So while the Chromecast allows you to control the music it plays smartly, you still need to use a remote or a physical switch to turn the amplifier on and off. That’s not very smart — not Smart Home smart anyway.

This is the problem I had with my old repurposed AVR, a Denon AVR 1807, from a time before HDMI. I used it for our living room lamp, but I would need a remote to turn it on whenever I wanted to play music. To make matters worse, I had hidden the amp in a way that required me to tiptoe and point the remote in a certain direction at just the right angle. Imagine me explaining how to do this to my wife. She could never do it, and I always had to whenever she wanted to listen to music. And guess how often we forgot to turn it off after the music stopped… almost always.

One of my smart home automation setup’s first applications was to replace the remote control with a smart plug and have it turn the amp on and off as the music started or stopped playing from the Chromecast. Even before I switched from Mozilla IoT Gateway to Home Assistant (separate article about that coming soon)

Gadgets to Make Your Old Amplifier Smarter

  1. Chromecast Audio connected to your old amplifier
  2. Smart Plug (I used IKEA’s, but you could use any Smart Plug that works with Home Assistant)
  3. Gateway (or not, if your Smart Plug uses WiFi — I use the Dresden Electronics Conbee II USB dongle as a Zigbee Controller)

Prerequisites:

  • The amplifier must be able to turn on from power loss. My old one thankfully returns to “on”-state after cutting and restoring power. I’m aware that some models go to standby after power loss regardless of what state they were in before. If yours does that, this method, unfortunately, will not work for you.
  • Both the Smart Plug and Chromecast Audio device are set up in Home Assistant*

* This can be done with the Chromecast plugin from the UI and through whichever Gateway integration you have the plug connected through (whether IKEA, Philips Hue, or deCONZ for Conbee)

Turn an Inexpensive IKEA Plug Into a Smart Remote Control for an Old Amp

In Home Assistant, I set up a simple automation (YAML code in the bottom).

Give it a name and description that suits your needs. I gave mine

Name: AMP — Living Room Control
Description: Turn amplifier on/off as music plays/stops
Mode: Restart

The mode needs to be “Restart,” which is important when you use delays to, e.g., turn off the amp after a certain amount of time. The restart mode will restart the sequence of events, including the delay it’s waiting for, in case the music starts playing again.

Image for post
Automation Header from Home Assistant automation configuration

In the Trigger section, you need to put a State trigger and listen for state changes on your Chromecast entity. You don’t need to put any value in the “from” or “to,” as we take care of the particular state in the actions.

Image for post
Triggers section from Home Assistant automation configuration

Last, the interesting part, the actions. Here you need to choose between the states that your Chromecast changes to.

I used two Options for my Choose block:

Option 1 — Music plays, and the Amp is off

When the music starts playing and the amp is off, turn it on.

Option 1, Music plays, and the Amp is off: Turn on the amp.
Option 1 of the Choose block in the Actions section of the Home Assistant automation

Option 2 — Chromecast turns off, and the amp is still on

I found this the simplest condition for the Chromecast Audio. It automatically turns from “paused” to “off” after 20 minutes. And to set a condition for that is quite simple.

Option 2, Chromecast turns off and the amp is still on: Turn off the amp.
Option 2 of the Choose block in the Actions section of the Home Assistant automation

As an alternative, you can use “paused” and add in a delay of your choosing. e.g., 5 minutes before calling the switch.turn_off service. Remember the mode should be “restart” in case music starts playing before the delay is over.

Option 2B, Chromecast pauses, and the amp is still on: Delay 5 minutes, then turn off the amp.
Option 2B of the Choose block in the Actions section of the Home Assistant automation

That’s it! You now have single automation to make your old amp smart with Chromecast, plus a Smart Plug and Home Assistant.