So, you want to get started with the wonderful world of automation but don't know where to start? Well, lets take a look at what you need to kick things off.
There are quite a few different types of automation software, but essentially you are going to need at least to four things: a controller, the thing being controlled, a way to connect them and a learning mindset.
Depending on what you are looking for, this might be something like using terraform to control the build out of great platforms and services, or it could be as simple as using home assistant to control a light. Either way, you are going to have to put in some time to learn these platforms effectively, as well as research are these the right platforms for the job you want to do.
So, you are prepared to learn and you've researched your technology that the controller is going to run and you know what you are going to control. Great! The next thing you are going to need is a place to run that technology. Frequently, my projects are small scale, so I use rapsberry pi 4s to run them. In most cases, this is far more power than I need. The capacity you will need will be dictated by the technology and the amount of devices you need to control.
Controllers in general track what the controlled device is doing and in some cases keeping a log of changes over time. This information needs to stored somewhere and the the more devices means more connections. More connections mean more processing power to service those connections. The requirements of a controller managing an entire building with lights, HVAC, motion, etc would be very different to a terraform server that is used to just build a server every once in a while.
For the sake of progressing this article, well say you've made a choice of you controllers 'hardware' (you can change it later if necessary, and the hardware could be virtual). The next stages are to install the operating system you plan to use, alone with the technology. Since there is so much variation here and is way beyond the scope of this article, but these days, it's either pre-installed, on a USB device or SD card device.
So that's our controller built, and you should probably google for some first time start up tutorials for the technology. Please don't forget to patch your technology and Operating system on a regular basis.
So, we've got the controller all set up and we've got the device we want to control, so that's everything then right? Well, not quite. How do you connect the controller to the controlled device? This might be as simple as a network connection. It could be serial via a console port (this is great for initial setup of routers and switches using ansible) or it could be a specific radio protocol, like zigbee.
Whatever way, you need to be able to send and recieve data from the controlled device. When you can only recieve data, you can only monitor the device's status, and this may be ok for the type of device you have. Sensors, which tell you the way things are, work great with this, switches, not so much. Once all that is in place, you are ready to start off with automating stuff.
For me, automation is about learning new things and making my life simpler. Hopefully, once you have the basics in place for your new automation tool, you be able to learn something new which'll help you make your life simpler.