Updating an Old Music & Sound Intercom System with Skybell HD (Part 2 of 2) (or How to Have Skybell Ring a Virtual Doorbell Using Skybell Sniffer)

Introduction

In the first part of this two part post, I described how I used an old Music & Sound intercom system to power a Skybell HD without having to install a special adapter or a new transformer. This second part will describe how to have the Skybell ring a “virtual doorbell” by causing the Skybell button push to play a doorbell sound over speakers. This is an alternative to hard wiring the Skybell to an analog or electronic doorbell as intended by Skybell or using a service like IFTTT which results in a rather long delay between button push and response.

As background, when the button is pressed on the Skybell or when motion is detected, Skybell sends a message over Wifi through your router to the Skybell computers outside of your home network. While the messages can’t be read as they are encrypted, routers that allow ssh logins can run a tcpdump command to monitor network traffic and detect the button press. Once the button press is detected, a script can be triggered to play a sound file or perform any other action. This method results in a much quicker response time than monitoring Skybell’s cloud servers or using IFTTT.

Pre-Requisites

You will need the following to setup a virtual doorbell with Skybell:

  • A linux server running on your home network ( I use a Raspberry Pi)
  • A router which permits ssh logins (I have a router running dd-wrt firmware which permits ssh)

Installation

  1. Install Skybell Sniffer

  2. Install the Simple Skybell Sniffer following these instructions. This is a slight modification I made to a portion of a Skybell plugin to Homebridge which was developed by Thoukydides. My modification doesn’t require Homebridge and simply is intended to run as a service on a linux systemd based server (e.g., debian). The Skybell Sniffer is a systemd service which runs a tcpdump on your router through an ssh command. The service monitors the tcpdump output and then runs the command you specify when it detects a message indicating that the Skybell button has been pressed. Since the message is detected before it leaves your network, the response time is much quicker (1 to 2 seconds) then having to rely on IFTTT or having to monitor Skybell’s cloud service. as of 5-23-21, I have updated Simple Skybell Sniffer to Release 0.30 which now works with Mikrotik routers as well as routers such as those flashed DD-WRT firmware which accept ssh logins.

    Once Skybell Sniffer is setup and running, we need to set up the action part of the process. The simplest action would be to play an MP3 file of a doorbell ringing and play that over a speaker connected to your Raspberry Pi through the 3.5 mm jack or through blue tooth. However, I have a number of Google Assistant minis and a few Chromecast audio devices throughout my house and I wanted to cast the doorbell sound over those devices. After some research I discovered harperreed’s Google Home Notifier Webservice. This service allows one to cast an mp3 file on any Google Assistant or Chromecast Audio device on your network. It also allows you to have Google Asssistant say any text you want, e.g., “You have a visitor at the door”, however I have found this service to be unreliable at times so I haven’t included it in this write-up but it is explained in the Google Home Notifier readme.

     

  3. Install Google Home Notifier

  4. [NOTE/UPDATE: I no longer use the Google Home Notifier as it was unreliable. I now use skybell-sniff to run a script that publishes an mqtt topic to Home Assistant. See this revised github post (geekvisit/simple-skybell sniffer) here as well as further instructions in this skybell-actions.sh file on github – this method is much recommended over the below which seems to break every few days. I’m leaving the below only for those who want to try an alternative method or don’t want to install Home Assistant. ]

    I downloaded Google Home Notifier Webservice, renamed “main.py” to “gnotify.py”, edited gnotify.py to specify the name of the Google Assistant device I wanted the doorbell to play on (e.g., “Living Room Mini”), downloaded a doorbell.mp3 sound file that I found on the web and placed it in the “static” subfolder, and then followed the “getting started” instructions to install:

    To have the Google Notifier start up each time the Raspberry Pi boots, I added the following to my crontab:

     

  5. Specify Doorbell Action

  6. I then edited the Skybell Sniffer “skybell-actions.sh” script (path is contained in the last line of /etc/default/skybell-sniff) to add the action I wanted to perform on the press of the door bell – playing the doorbell mp3 file I downloaded:

That was it. The system works fairly well and I have been using it for several months.

There are several advantages and disadvantages to this setup over a hard wired connection to a real doorbell as set forth in the Skybell documentation:

Advantages:

  • No separate analog or electronic doorbell required
  • Infinite actions, sounds, and notifications be triggered

Disadvantages:

  • Requires a full time Raspberry Pi to be running ( I don’t find this to be a problem as the pi is low in electricity usage and I already use one for HomeAssistant, I do recommend the Raspberry Pi 3 on up as the prior versions are less stable. I have found the 3 to be rock solid.)
  •  

  • Relatively complicated – several things can go wrong – wifi could fail, the Pi could fail, the PI could be unplugged, the software programs could stop, someone could turn off or down the speaker and/or Google Assistant/Chromecast Audio device

Despite the disadvantages, I have found this system to work relatively well over the course of several months. The biggest issue has been some instability in the google notifier but I believe I have ironed those out in the scripts. If the doorbell does appear to fail,then simply restart your google notifier by executing the following commands:

TIP: Configure your router so that the Google Home or Chromecast Device you are casting to is assigned a static IP based on the mac address shown in the Google Home app. This will solve an issue where the device may intermittently go offline.

Updating an Old Music & Sound Intercom System with Skybell HD (Part 1 of 2)

?

Skybell is a video doorbell similar to Ring. These devices are intended to be hooked up to existing doorbell systems. Most traditional wired doorbells have a transformer that drops the high voltage/high amp of household current to lower voltage and amps compatible with your doorbell chime whether analog or electronic. The two wires coming out near the exterior doorbell button lead to the transformer – so for the Skybell you normally need only to detach the wires from your doorbell button and attach them to the Skybell. That way when you push the Skybell button it not only sends an alert to your smart phone but also rings your normal doorbell.
 
 

The Problem – Skybell is Not Compatible with Intercom Systems

 
 
 
Unfortunately our house was equipped with an old 1980’s style Music & Sound intercom system. I had previously equipped the system with a Google ChromeCast audio so I can wirelesssly cast audio from my smartphone to all the rooms in the house using the M&S speaker system. I removed the radio/intercom unit from the wall, tucked the Chromecast to the side of the internal unit, and cabled the wired out the back behind the sheetrock to the outlet below. The 3.5m audio connector plugged into the internal RCA “aux” plug. I also attached a Google Home Mini on the wall above it and a tablet nearby (see my previous post).
 

 
The M&S Intercom has wires leading from the central intercom unit to speakers in each individual room of the house. In addition, wires from the doorbell button run from the front door through the attic, across the house, and down into the wall, coming into the unit and attaching to the chime. See orange and red wires below:

One would think that one could attach the doorside ends of the orange and red wires (now connected to the doorbell button) to the Skybell. But that doesn’t work, as first they won’t power the Skybell, and second, the Skybell button won’t trigger the chime. Watch this video for an explanation as to why intercom type doorbell buttons do not work with Ring or Skybell (I would suggest that you may want to just read the comments and save some time). Skybell does sell a chime adapter but it doesn’t work for Nucom or Music & Sound type intercoms. In fact Skybell has an explicit statement on its site that the Skybell is not compatible with intercom systems.

DANGER: THIS POST IS FOR EXPLANATORY PURPOSES ONLY TO ILLUSTRATE ONE WAY A SKYBELL WAS INSTALLED. DO NOT ATTEMPT THIS WITHOUT CHECKING WITH A QUALIFIED ELECTRICIAN AND CHECKING WITH LOCAL BUILDING CODE. WIRES AND TRANSFORMER MUST BE OF SUFFICIENT CAPACITY; WRONGLY SIZED, CONFIGURED, OR WIRED SYSTEMS COULD CAUSE FIRE OR EXPLOSION. EACH INTERCOM SYSTEM AND TRANSFORMER IS DIFFERENT AND MOST LIKELY WILL BE DIFFERENT THEN MINE. IT IS VERY POSSIBLE YOUR TRANSFORMER MAY DESTROY YOUR SKYBELL!! ALWAYS TURN POWER OFF FROM THE SWITCHBOX BEFORE WORKING ON ANY POWERED SYSTEMS!ANY ATTEMPT TO FOLLOW THIS POST IS DONE AT YOUR OWN RISK.

 
 

Removing the Intercom from The Wall

 
 
After a lot of thought, I decided to do some exploring. I turned the power off, and removed the intercom unit from the wall.  The unit was fitted into a green metal cabinet fixed to the wall. In the right rear corner of the cabinet there was a corner that was encased with a small solid metal removable box to which an electrical plug was attached.

 

 

 


 
 

The Transformer

 
 
I removed the plug, removed the screws holding the sides of the transformer box in place, and revealed the transformer.

The transformer was stamped secondary power “20V 24VA”. This meant that it was 20 Volts AC (or 20VAC) with 24 Volt Amps. To get amps you divide 24VA/20VAC and get 1.2 amps. I’m not an electrician but this fit the power requirements of the Skybell which required 10-36 VAC (my transformer was 24VA so was within range) and 10VA – so max amp requirement was 10VA/10VAC or 1 AMP.

How to hook to the transformer across the house from the door ? I could have installed new wiring. But the wires connected to the chimes were of sufficient guage, and there would be no need for the old doorbell button or chimes any longer.
 
 

Rewiring the Doorbell Wires

With ALL POWER OFF, I unhooked the ends of the orange and yellow wires from the doorbell chimes, pulled the red wires out of the transformer plug (the end on the radio side of the transformer box), connected the one red from the transformer to the yellow wire, and the second red from the transformer to the orange wire, and inserted each wire set back into the plug holes that the red wires came from. Now we had sufficient power connected to the front door.

I then went outside, pulled the old outside intercom/door bell mechanism out of the wall, cut the orange and yellow wires off the doorbell button, and connected them to the Skybell. I did this only after verifying with a multimeter that the voltage and amps were correct.

 

The skybell works like a charm.

 

 

 

 
However there remains a problem – the inside door chimes no longer work, the Skybell is only being powered. While it can send notifications to our smartphones, it is not able to trigger the chimes. In Part 2, I explain the software side of getting a doorbell to ring inside the house to my Google Home Minis and Chromecast Audio receivers using a Raspberry Pi, Google Notifier  and Skybell Sniffer.

Continued in Part 2 ...

No Notifications on Android ? Try Changing Your Phone’s Wifi DNS

Android Notification Photo by Jamie Street on UnsplashAndroid Notification Photo by Jamie Street on Unsplash

It seems ever since my Android phone updated to Oreo I have been missing many notifications. I would be on my home network and when I left home, my wifi would switch to data and my phone would start going off with delayed notifications I should have received when I was on my home’s wifi. I finally found what seems to be the fix. After fiddling with the Wifi Settings I discovered that by changing the DNS to Google’s own (8.8.8.8. and 8.8.4.4) the notifications would work on WIFI.

  1. Long Press on your Wifi Wireless SSID Name
  2. A menu should pop up, select “Modify Network”
  3. It will show you several options – SCROLL down on the dialog (mine only appeared to show Password and Proxy Settings, I had to scroll to see the DHCP settings)
  4. Under IP Settings, select the down arrow and change from “DHCP” to “Static”
  5. Change “IP Address” to a free available ip address on your network. If you don’t know what to do here then google it or check your router settings. It will be something like 192.168.0.120. The first 3 groups of numbers should match the ip address of your router, the 4th group is a number that hasn’t been assigned by your router yet to a device on your network.
  6. Change “DNS 1” to 8.8.8.8 and “DNS 2” to 8.8.4.4
  7. Click “Save”. That’s it. You may have to disable and re-enable the wifi on your phone but you should now be getting notifications.
  8. I later found an explanation and guide on Quora that also explains the steps. See this list of steps which has screen shots.