I am not having much luck with my cable internet service. It comes and goes, at odd times, and was hard to log. So, I created a speedtest, that logs results to Thingspeak. (Let me know if you would like to see a how-to on that!) I am always wondering what my current download speed is, and forever pulling up ThingSpeak to check it. I asked Alexa, on my Amazon Echo, if she could tell me.
No, she said. So I taught her.
This project uses the Alexa Skills kit to read data from ThingSpeak, and report out the last result. My data can be seen at ThingSpeak channel 91147.
As you can see, it's not been a good week for my ISP. We see that our channel 91147 has a field 2 that gives download speed. Through the ThingSpeak API we can see what our last result was with the following URL:
https://api.thingspeak.com/channels/91147/fields/2/last
Ok, we have the data. Now we need to get that over to our Echo through an Alexa Skill.
We're not going to teach you about the Alexa Skills Kit and Amazon Lambda service in this project, but you can learn it fairly well through the Hackster Tutorial video:
Once you go through that tutorial, you will have Amazon Alexa Skills Kit access trough https://developer.amazon.com/ and Lambda access through AWS.
Got that? Good! You can now paste in the code in this project to get up and running, but getting responses about MY download speeds.
Alexa, ask speed test, what is my internet speed?
Tune the code for your needs. Perhaps you have a nice ThingSpeak data element you would like to ask Alexa About! If you check the Lambda code, you will see the spot to change Channel and Field -
# Change these elements to point to your data
channel = 91147
field = 2
#
Change those elements to yours, and Voila! Note! you will want your channel to be public. Read the API Docs on how to change the Link variable to pull data from a private channel.
Let me know how you do, and what great things you can get Alexa to tell you about.
Comments