Hey, all. Wanted to let everybody know that I've made good progress getting my new Amazon Echo Dot to control my OctoPrint printer. It was a pain at first trying to understand how Amazon does things but I think I've got it now.
There are about 22 intents for anything from starting a print to checking on the status. Additionally, I've installed two TP-Link power switches so that I can power on/off either the printer itself or the proxy that was required for all this.
I wrote a server called
octo-proxy which basically allows the printer to be proxied to the Internet in a safe manner. It runs on a headless Raspberry Pi Zero W single board computer. Inbound requests/commands from Amazon then are proxied to the printer and the responses returned back to be interpreted. It could be used with something other than Amazon to control it and I intend to create an external website concept later for this.
For an overview, it sort of looks like this (ASK = Skill, Lambda, FW = firewall, etc):
┌──────┐ ┌─────┐ ┌───┐ ┌────┐ ┌─────┐ ┌─────────┐ │ Echo │ ⇄ │ ASK │ ⇄ │ ƛ │ ⇄ │ FW │ ⇄ │ o-p │ ⇄ │ printer │ └──────┘ └─────┘ └───┘ └────┘ └─────┘ └─────────┘
It works quite well at the moment but I'll end up tweaking it a bit when I get more time. I gave a talk early this month and was able to remotely control the printer and stream the video as well.