Hi everyone, I wanted to share an exciting project I’ve been working on using Home Assistant, Node-RED, and Chromecast Audio. It’s a virtual grandfather clock that plays Winchester chimes on each quarter hour and strikes at the top of the hour. Here’s how I did it!Background I’ve been running Home Assistant for a while and using Amazon Alexa for whole-house text-to-speech, but I was tired of the stock voice and wanted more flexibility. After some research, I discovered Amazon Polly and the Michael voice, which I wanted to use for my system. I needed a way to broadcast sound throughout my house, so I decided to use Chromecast Audio tied into an ancient NuTone intercom system. The Chromecast Audio was the perfect fit since it’s supported by the media_player component in Home Assistant.Implementation 1. Chromecast Audio Setup I connected the Chromecast Audio to the intercom system and configured it in Home Assistant. I had to manually connect to its WiFi from my phone since the setup process kept hanging.2. Node-RED Flows I created a Node-RED flow to play the appropriate chime files at each quarter hour and the hourly chimes at the top of the hour. The chimes are stored in the .homeassistant/www directory and served by the local web server.3. Volume Control I found that playing the chimes at full volume was too loud, so I adjusted the volume using the media_player.volume_set service. I also implemented a keepalive mechanism to keep the Chromecast Audio from sleeping by playing a 2-second silent clip every two minutes.4. Action Flows I wrote an Action Flow called WaitIntercom to handle busy states and random back-offs before playing sound. This ensures smooth operation without conflicts.Challenges and Solutions - Chromecast Audio Sleep Mode The Chromecast Audio would sleep after a few minutes of inactivity. To solve this, I implemented a keepalive mechanism that plays a 2-second silent clip every two minutes. - Volume Reset Issues I encountered issues with the volume resetting after each call. I switched to using the node-red-contrib-cast module, which worked better for setting the volume.Files and Setup - Chime Files I used high-quality samples from Freesound and renamed them for easy access. These include hourly chimes and quarter-hour chimes.- Silent Clip I used a 2-second silent clip from GitHub for the keepalive mechanism.Node-RED Modules - node-red-contrib-actionflows for creating reusable modules.- node-red-contrib-cast for better volume control and Chromecast interaction.Final Thoughts This project has been a lot of fun and a great learning experience. It’s amazing how Home Assistant, Node-RED, and Chromecast Audio can come together to create something so nostalgic and functional. I hope this guide helps others who want to create their own virtual grandfather clock!If anyone has questions or suggestions, feel free to reach out. Happy tinkering! ![]()