The Basics
Date: 26-Jul-2020
The Core Architecture
Any computer system , at its basic is something which takes some input, and spits out some output. What the input and output would look like is dependent on what the system is designed for.
With such an architecture in mind, I think the first order of things would be to elaborate on the basics of the home automation system at which we are aiming at.
Input:
I definitely want the system to recognise my voice and to act on my voice commands, like the way an alexa or google-home works. But this is not something prebuilt which I am getting at. So I would be teaching it things step by step, just like teaching language to a child. So I would need a API to interact with as well while it is learning the ropes about understanding human language. Since I would love to have some handle of the system even from a remote location, we are definitely looking at a HTTPS-API. A chat-ops , built on top of such an API would be the best outcome. I would also need it to visually take inputs, this would help it to build more context-sensitive actions.
CPU:
Now this, in my opinion is a complicated piece. I am rooting for a distributed architecture of inexpensive devices. For my use case, the devices are going to be a set of Raspberry-Pi-4 The reason for choosing Raspberry PI shall be elaborated in another Post. This would be the humble abode of Alfred, my home automation system.

OUTPUT:
This is where sky is really the limit. I want Alfred to achieve so many things. But let me list down the tasks which I have in mind now. This is like a child's wishlist. So let me pen down some of them. The tasks would then give me what Alfred needs to "actually" do to achieve those tasks.
- Light control for the entire house.
- Use google and answer our silly questions we ask the system.
- Control the fans.
- Alert us about weather or news which would interest us.
In tech specs, this means that I would need it to interface with one or many Zigbee devices and reach out to multiple google-api's or something similar. For keeping things simple, I am thinking of having zigbee gateways to control my zigbee devices. It needs to have a speaker output and possibly a way to stream video to my TV.
CONCLUSION:
So we now have the basics about what would be my input and output. Now the next stage is to figure out how to make the CPU make the inputs translate into outputs.

Comments
Post a Comment