How it works

Learn how AssistantComputerControl works behind the scenes

This little article is for those, who wish to know what's behind the software; how it works.

AssistantComputerControl (or ACC for short) is designed to be the middleman between an virtual assistant like Google Home or Amazon Alexa, and your computer. The software itself has nothing to do with any of the assistants - all it does is execute commands like, shutting down your computer, locking or restarting it; the rest is handled by IFTTT and a cloud service (native support for Dropbox, Google Drive and OneDrive). Together, these three services brings your voice-commands, to your computer.

Without a service like IFTTT, ACC wouldn't be in contact with your assistant, and without a cloud service like Dropbox, ACC wouldn't know if the assistant wanted to "interact". The default setup, and the original purpose of ACC, is to do it exactly like this, requiring IFTTT and one of the mentioned cloud services to work.

What ACC essentially does, is;

  1. Listen for new .txt files at a specific folder
  2. Read the file
  3. Check if the contents match with a supported action
  4. Execute the action if recognized

There's not much more to it (functional-wise). The simplicity of this software, and the way it's designed, allows for a lot of customization, "hacking" and user-changes. You could use the software for something completely different than virtual assistants, you could make ACC listen for new files in any other cloud service or use some other service instead of IFTTT - the list of posibilities goes on.

More technical (code-stuff)

ACC is...

  • Open source on GitHub!
  • Written in C# using Visual Studio as IDE & the built in WinForms (not WPF) for the UI
  • Has a few web-scripts (HTML) behind it as well, for a better UI (used in the "Getting started" guide and "Test actions" UI)
  • Uses a webserver to checking & hosting updates, all written in PHP & Json
  • Awesome ;)

This is opensource software, and all code is available here on GitHub, and may be used in any way the user likes. Bug-reports, feature requests or suggestions are always very welcome!