I have been involved in home automation for more than 20 years, designing, manufacturing, installing, testing, configuring and integrating different technologies. Throughout these years I have been assembling a fairly complete and complex home automation system, using various technologies. Today I am going to present it to you from a bird's eye view, so that you can get an idea, going in depth in other articles dedicated to each sub-system.
Broadly speaking, my home automation system includes the following main elements (I'm sure I'm forgetting some, because there are many):
As my main home control software I use HomeSeer software on a small dedicated low power PC with no fans. This software (really complete) takes care of the main automations, time schedules, scenes, speech synthesis, etc. It is also in charge of communications with the ZWave devices installed in the house (switches, dimmers, interior door sensors, temperature, humidity and lighting sensors, etc, etc).
Node-RED is very useful IBM software and I use it mainly to integrate different technologies, like middleware. We could say that it is the «communication concentrate» of the different systems of the house. It is like a protocol translator and is also responsible for storing information in databases to later, for example, create graphs with that data. For example, when HomeSeer detects that the alarm has gone off, apart from performing different actions on devices that have to do with security and notifications by means of voice synthesis (depending on the type of alarm in question, the time at that has jumped, the people who are at home at that time, etc.) give the order to Node-RED to send us a message by Telegram with all the details of what has happened.
Node-RED is also responsible for receiving the data by radio frequency from some of the sensors installed in the house, through a special receiver connected to one of its USB ports, and communicating this data to HomeSeer or sending it through MQTT. Many sensors, such as electricity and gas consumption, temperatures, bluetooth sniffers, etc. They send their data to Node-RED for it to process and send the information where appropriate (HomeSeer, databases, other devices, etc).
A very important advantage of Nodered is that it requires very few resources to function. I have it installed on a Raspberry PI 3, which it shares with the MQTT server, and a few other services, and it has power to spare.
Mosquitto is the house's MQTT server and is installed on a Raspberry PI 3, which it shares with Node-RED. It receives MQTT messages from all the devices in the house and forwards them to those who subscribe to them.
There is little more to say about him. He does his important work in silence and does not give problems or ask for food.
It is the main database, where long-term data from all sensors and systems is stored. It is installed in a Raspberry PI 2 and works great.
WeeWX is the weather station software (a Davis Vantage Pro 2 connected to one of the usb ports of the Raspberry PI 2 in which it is installed) and is responsible for the storage of weather data, its processing and consolidation, and its sending to the web server (a VPS hosted by the Strato company) where the station's meteorological web resides. With the help of the Meteotemplate package, create the beautiful pages that you can see in the Meteo section of this website.
Grafana is the program that is in charge of creating the graphics and data panels of the home automation system. It is installed in a Docker container on one of the NAS (a Synology).
It is the perfect complement for the visualization of the data stored in the InfluxDB database of all sensors and systems.
OpenTherm gateway (OTGW)
OpenTherm gateway (OTGW) is the device connected to the gas boiler that provides heating and hot water to the home. It allows access to boiler data, programming, status, usage statistics, and perform actions such as changing the desired temperature from the home automation system based on needs, house occupation, weather data, etc. always trying to save on the gas bill by providing an adequate level of comfort to the inhabitants of the house.
Sharing the PC with HomeSeer, there is a software that communicates with the boiler and sends its data through MQTT to the rest of the systems. It is also capable of receiving orders, through MQTT, for the control of the boiler.
OpenSprinkler is a programmer and controller of eight irrigation zones, controlled by HomeSeer, which controls the irrigation of outdoor plants, calculating their needs based on meteorological data, always trying to save water and maintain an optimal level of health of the plants. It is 100% automated so that it is even capable of using the weather forecast to decide to cancel watering if it is going to rain in the next few hours and the plant is going to hold.
Blue Iris: Running in a VMWare virtual machine of the main PC, this video surveillance software receives the images from all the cameras installed in the house, processes and stores them, detecting, for example, movement in the images, which communicates to HomeSeer, to perform certain actions related to comprehensive security, combining the data with that provided by the alarm and other sensors.
Within the elements that make up the electrical energy management of the home, this system, part of the OpenEnergyMonitor project, is in charge of reading the electricity consumption data, directly in the electrical panel of the four main circuits of the home (Total, air conditioning , kitchen power, and power plugs) and communicate them to Nodered, which in turn sends them to the database for storage and to the rest of the system for intelligent use (for example, if energy consumption is very high, you can turn off the air conditioner or other high-energy household items to prevent the limiter from tripping).
The home alarm is a Visonic Powermax Pro, a wireless, autonomous and independent system that works without depending on the rest of the home automation system. On the HomeSeer PC, and sharing it with him, a small software called Visonic Driver, communicates with it and provides data on its status, detections, alarms, etc. to the rest of the system by sending them through MQTT. In addition, the system can arm the alarm, disarm it, etc. In this way, we can also access the information, arm and disarm the alarm, etc. from the control panels, mobile phones and tablets (and even from the TV in the house).
This has been a small presentation of the "brain" of the house. Of course, in addition to these smart items, there is an army of sensors and actuators providing information and executing orders. In another post I will talk about some of them.