Ok, I feel extremely nerdy. Did you see the episode of The Big Bang where they program an IoT device to turn on a lamp by sending a signal all around the world before it gets back to the lamp to turn it on? Well, I was suddenly struck by the similarity when I got Alexa to turn on the Z-Wave light bulb in my desk lamp last night:
- “Alexa, turn on desk lamp”
- The voice command is picked up by the Alexa Show device on my desk and sent to Amazon cloud.
- Alexa Smart Home converts the audio command to a “turn on desk lamp” intent and routes it to my Alexa Smart Home skill running in an Amazon Lambda in the cloud.
- My Smart Home skill converts the intent and forwards a “turn on desk lamp” command to Particle.io.
- Particle.io publishes the command to my Photon IoT controllers, one of which is acting as a bridge from particle.io to MQTT.
- The Photon bridge reformats the command and publishes it to MQTT.
- The MQTT broker is running on a Mac Mini, which then forwards it to all other devices subscribing to MQTT.
- One of these MQTT subscribers is the smartthings-mqtt-bridge app running on the Mac Mini. It then receives the MQTT “turn on desk lamp” command, and forwards it to the Smartthings web hook over the internet.
- (Should I mention the Wifi to router to … Nah).
- The Smartthings server receives the command via web hook, routes it through a Groovy program running in Smartthings, and forwards the command to my Smartthings hub over the internet (and router to wifi, etc).
- My Smartthings hub then transmits the “turn on” command over Z-Wave radio to my desk lamp light bulb.
- And the light turns on.
Woohoo!