It’s oh so good to walk into the office and completely ignore the light switch. Hey Alexa, please please make it shine! I guess you are familiar by now with my WIFI light switch project (that I keep adding features to it). It just gained Alexa and NodeRED functionality. Perfect, but how to get the Alexa talking to the NodeRED running on a Raspberry Pi? Don’t worry, it’s not complicated.
Alexa and NodeRED
I will assume, that you know your way around the Amazon Echo and NodeRED at least a little bit. I won’t get into every detail but I will show you how to interact with the server and how to make my office bright.
Alexa, get ready!
Let’s start with the Alexa side of things. I found this to be the quickest option especially if you are near a computer. Go and visit:
Register an account, and take a look at the devices tab. There is an option there to add a new device. If you already have smart devices at home, call it something new and easily recognizable. ‘fridge’ will do! It’s unique enough, and I don’t expect you to own a smart fridge just yet.
Each device comes with possible toggles and states that we can pull using this service. For the sake of this example – I will focus on ON/OFF option. Feel free to experiment.
You are ready to add the Alexa skill now. Search for NodeRed skill in the Alexa app, enable it, then log in to the account you have just created. Once logged in, the app will start looking for connected devices. You will see your ‘fridge’ among them.
Raspberry Pi and NodeRED set up
To make the Alexa and NodeRED play together we have to add new nodes to the palette. Run this in terminal:
npm install node-red-contrib-alexa-home-skill
and reboot your NodeRed or Raspberry. You should see newly installed nodes available in the palette. Install the nodes and you will be able to use Alexa and NodeRed together. In the node set up add a new account and log in using the details from the Alexa skill. If you won’t see any devices – deploy the server and check the devices again – your ‘fridge’ should be available on the list.
In the node set up add a new account and log in using the details from the Alexa skill. If you won’t see any devices – deploy the server and check the devices again – your ‘fridge’ should be available on the list.
Hey, Alexa whats next?
Hey Alexa, turn the 'fridge' on.
Add a debug node to the Alexa-Home node to see how the msg.payload looks like. In my case, it’s a boolean value true/false. As my MQTT expect the bool value and the client ID I had to use 2 change nodes to pass the message in the correct format to my WiFi Light via MQTT.
The result is great: