An IoT-Based Smart Home Automation System
An IoT-Based Smart Home Automation System
[email protected]
* Correspondence: [email protected]; Tel.: +40-723729955
Abstract: Home automation has achieved a lot of popularity in recent years, as day-to-day life is
getting simpler due to the rapid growth of technology. Almost everything has become digitalized
and automatic. In this paper, a system for interconnecting sensors, actuators, and other data sources
with the purpose of multiple home automations is proposed. The system is called qToggle and
works by leveraging the power of a flexible and powerful Application Programming Interface (API),
which represents the foundation of a simple and common communication scheme. The devices used
by qToggle are usually sensors or actuators with an upstream network connection implementing
the qToggle API. Most devices used by qToggle are based on ESP8266/ESP8285 chips and/or on
Raspberry Pi boards. A smartphone application has been developed that allows users to control a
series of home appliances and sensors. The qToggle system is user friendly, flexible, and can be
further developed by using different devices and add-ons.
Figure 1. An IoT-based smart home depicting the use of smart sensing devices for different pur-
poses.
Several home automation systems involved with IoT have been proposed by aca-
demic researchers in the literature in the last decade. In wireless-based home automation
systems, different technologies have been used, each of them with their pros and cons. For
example, Bluetooth-based automation [4–6] is low cost, fast, and easy to be installed, but
it is limited to short distances. GSM and ZigBee are widely used wireless technologies as
well. GSM provides long-range communication at the cost of a mobile plan of the service
provider that operates in the area. Zigbee [7–12] is a wireless mesh network standard that
is designed to be low-cost and with low power consumption, targeted at battery-powered
devices in wireless control and monitoring applications. However, it has a low data speed,
low transmission, as well as low network stability, and has a high maintenance cost. Wi-
Fi technology is used in [9,11–18]. The advantages of Wi-Fi technology over ZigBee or Z-
Wave are related to price, complexity (meaning simplicity), and accessibility. First, Wi-Fi-
enabled smart devices are usually cheap. In addition, it is easier to find do-it-yourself de-
vices that use Wi-Fi, resulting a less expensive option. Second, Wi-Fi is already a necessity
and it is in most homes, so it is easier to buy devices that are already Wi-Fi-enabled. Fi-
nally, Wi-Fi is characterized by simplicity, meaning that a user must connect only a mini-
mal number of devices for a home automation setup. Since it is very common, the invest-
ment on extra hardware is avoided; a user only needs the basic setup for a home automa-
tion system. However, Wi-Fi is not designed to create mesh networks, it consumes ten
times more energy than similar devices using ZigBee, Z-Wave, or Bluetooth for example,
and many Wi-Fi routers can only allow up to thirty devices connected at once. As com-
pared to Ethernet, Wi-Fi brings several advantages, including the easy connection and
access of multiple devices, the expandability (adding new devices without the hassle of
additional wiring), lower cost, or single access point requirement. The cons include lim-
ited distance to cover (a Wi-Fi network with standard equipment can be limited in range
through walls and other obstructions in a standard home), the number of devices can be
limited, there is interference and complex propagation effects, obstacles can block the Wi-
Fi signal and affect the devices connected to it, and there are connection speed (the fastest
speed of Wi-Fi is much slower than a wired network), Internet security, and privacy is-
sues. Low-cost, open source hardware components, such as Arduino and Raspberry Pi
microcontroller unit (MCU) boards, and a combination of sensors have been very used in
the home automation domain. Home automations using Arduino boards are proposed in
[3,19–23]. Arduino is highly flexible, open source, not expensive, and easy to program
[19]. In addition, the existence of a large and active community of users is a great plus.
However, Arduino is not designed to handle the large complexity that comes with
Sensors 2021, 21, 3784 3 of 23
advanced projects. For more advanced and real-time projects, Raspberry Pi is a better op-
tion. Raspberry Pi is an exciting technological development that is much cheaper than any
desktop computer or mobile device [24]. Most of the software and projects done on Rasp-
berry Pi are open source and are maintained by online user communities, which are al-
ways excited about new projects. When developing software on Raspberry Pi, Python is
the language of choice, since it is relatively simple (fewer lines and less complexity) com-
pared to other programming languages. In addition to its low price, Raspberry Pi is en-
ergy efficient and does not require any cooling systems. Smart home automations with
Raspberry Pi are proposed in [9,12,15,25,26]. ESP8266 chips are low-price Wi-Fi modules
that are perfectly suited for projects in the IoT field. ESP8266 is a single core processor that
runs at 80 MHz. ESP8266 chips were used for home automations-related projects in
[9,21,27–30]. A features comparison for home automation system published in scientific
papers, in the last ten years, is presented in Table 1.
Another category of home automation systems is represented by commercial plat-
forms, such as Qivicon, Domintell, Loxone, or HomeSeer. They offer a wide range of smart
home devices, from multiple vendors, different communications protocols for wired
(Domintell) and wireless (Qivicon) transmissions, or both (HomeSeer and Loxone), and
multiple automations such as a locking system, controlling temperature, lightning system,
environmental system, video surveillance (only Qivicon and HomeSeer), or anti-intru-
sion. All solutions provide a mobile app for controlling the systems. Pricewise, it depends
on the size of the house, the number of devices to be installed, and the needs of the user.
According to [9], the minimum cost comes between 1800 and 2600 euros.
Table 1. Features comparison for home automation system published in the last 10 years.
Home Automa-
Communication Controller User Interface Applications
tion System
[4] Bluetooth PIC mobile app control indoor appliances
control appliances indoor and outdoor,
[5] Bluetooth Arduino mobile app
within short range
[6] Bluetooth, GSM PIC mobile app control appliances indoor and outdoor
[7] ZigBee, Ethernet Arduino MEGA mobile app control appliances indoor
Control panel
X10, Serial, EIB, 32-bit ARM mi-
[8] (touch pad), indoor automation solution
ZigBee, Bluetooth, crocontroller
desktop based
Raspberry PI, controlling humidity, temperature, lumi-
[9] Wi-Fi, ZigBee
NodeMCU nosity, movement, and current
Laptop/PC control of indoor appliances but not ac-
[10] ZigBee mobile app
server tually implemented
[11] ZigBee, Wi-Fi Linux board GUI interface control HVAC appliances
web-based, mo- remote control of appliances (IP cams,
[12] ZigBee, Wi-Fi, Ethernet Raspberry PI
bile app smart plugs)
control indoor appliances, monitor the
[13] Wi-Fi TI-CC3200 MCU mobile app
soil moisture
[14] Wi-Fi NodeMCU web-based control indoor appliances
[15] Bluetooth, Wi-Fi Raspberry PI mobile app control indoor appliances
web-based, mo-
[16] Wi-Fi Arduino mega control of indoor appliances
bile app
web-based, mo-
[17] Wi-Fi PC server security, energy management
bile app
[18] Wi-Fi, IR PC server mobile app control of indoor appliances
Sensors 2021, 21, 3784 4 of 23
Currently, a great variety of open source home automation systems exist [37–42].
OpenHAB [37] and Home Assistant [38] are two of the strongest players in the open
source home automation community, sharing a similar vision and integrating many de-
vices. However, openHAB requires knowledge regarding how to insert commands to in-
tegrate devices; it is complex and time consuming. Home Assistant, on the other hand, is
more user friendly, but it requires a significant configuration effort. Mobile apps seem less
flexible and quite complicated and complex, especially for beginners. Domoticz [39] de-
livers a decent number of features; its configuration is mostly done through the web in-
terface, and plugins are used to extend its functionality. Unfortunately, the interface itself
is not extremely intuitive. Domoticz is quite limited in terms of supported devices and
configurations. Calaos [40] and Jeedom [41] are two French players in the open source
home automation community. Unfortunately, the communities and forums are predomi-
nantly French, which can be a barrier to worldwide adoption. A feature comparison of the
Sensors 2021, 21, 3784 5 of 23
most relevant open-source home automation platforms is presented in Table 2. The plat-
forms can be differentiated, among others, in terms of the development language, the API,
the amount of implemented protocols and plugins, and the amount and type of documen-
tations. Of course, these are not the only options available. The authors of [19] present a
detailed comparison of fifteen open-source platforms.
The purpose of this paper is to present qToggle, which is a system designed and de-
veloped for multiple home/building automations, including access control and security,
appliances control (lights, thermostats, AC, and other appliances), irrigations, and power
and energy management. This paper represents an extension of [43]. In [43], we proposed
a building automation solution to reduce the exposure and transmission of COVID-19
during the pandemic situation in workspaces by avoiding touching certain objects and
surfaces and for helping managing buildings during an emergency. In this paper, we have
focused on smart homes applications, in general, not in a pandemic situation.
What makes our proposal different from others is highlighted in Table 1: it is differ-
ent in terms of the technologies used, the controllers, the type of communication, the user
interface, and most of all the applications regarding what solutions it can offer in terms of
a smart home. The communication technology represents a key point to achieve successful
operation in a home automation system. In many papers in the literature, the authors
combine several communication technologies; for example, the authors use either a wired
or a wireless technology to connect the sensors with the nodes, a wireless technology to
send data from nodes to storage centers, etc. Ethernet and/or a Wi-Fi local network are
usually enough for a working qToggle setup. Most low-cost devices for IoT usually sup-
port Wi-Fi, and most households are able to provide enough wireless coverage with sev-
eral low-cost devices. The best node and the selection of the processor (controller) for an
IoT-based home automation system are chosen considering the necessities and the char-
acteristics a user wants for the system. Even if most automation systems presented in the
literature use Arduino boards, the Raspberry family are frequently used as well, since
they are more potent than the Arduino boards and have powerful computing abilities that
Sensors 2021, 21, 3784 6 of 23
allow the implementation of more demanding software and algorithms. Hence, we chose
the Raspberry Pi board for the proposed system. Our system has not only a research scope,
but we intended to develop a system that can be successfully used in practice and as well
as monetized in the future. The microcontroller used for the proposed system is the
ESP8266 chip, due to its size, ultralow power consumption, powerful on-board pro-
cessing, and storage.
Most systems do not have access to the power grid or may only receive power during
a given time period. The use of solar energy reduces the energetic costs, which is an ad-
vantage for home automation systems. Starting this year, the qToggle system proposed in
this paper will be using solar energy thanks to the photovoltaic panels installed, so the
energy consumption will not be an issue.
qToggle is built around a flexible and powerful API (we have defined the API from
the ground up), allowing various types of devices to work together. qToggle provides a
simple language for the IoT by using the JavaScript Object Notation (JSON) data format,
which is defined by RFC 7159. Turning on a light bulb should be as easy as PATCH-ing a
URL, while obtaining the temperature from a sensor requires a simple GET request. The
idea behind qToggle is to control programmable systems having a Transmission Control
Protocol/Internet Protocol (TCP/IP) stack via simple HTTP requests. For example, these
systems can be single-board computers or TCP/IP-enabled microcontrollers. qToggle aims
to propose a standard that allows managing, provisioning, and communicating to differ-
ent devices. qToggle does not attempt to reinvent the wheel, but it makes use of the exist-
ing and widely used technologies, such as RESTful APIs on the top of HTTP, passing over
data encoded as JSON.
Features that make qToggle special are the following:
• A unitary and consistent solution that integrates all required features;
• Device provisioning and management;
• The firmware update over the same unique API used by all devices;
• The use of expressions allows intelligent and complex rules to be implemented be-
tween various sensors and actuators inside a network;
• Hierarchical master-slave topology that offers flexibility and scalability;
• User data do not leave the premises of the local network, a cloud connection not be-
ing needed (for security and privacy reasons);
• The integrated web app works well on all major platforms (both desktop and mobile):
Android, iOS, Windows, Linux, or macOS.
The main part of the home automation system based on IoT is the microcontroller.
The ESP 8266 Wi-Fi module represents a set of efficient highly integrated wireless Systems
on Chip (SoCs), which provides a complete and standalone Wi-Fi network solution. The
ESP8266EX version is one of the most integrated Wi-Fi chips in the industry. In addition
to its Wi-Fi functionalities, ESP8266EX integrates an enhanced version of L106 Diamond
series 32-bit processor from Tensilica (company based in Silicon Valley, in the semicon-
ductor domain), with on-chip SRAM. ESP8266EX has seventeen GPIO pins, which can be
assigned to various functions by programming the appropriate registers, two power pins,
one ground pin, reset pin, and two clock pins. The devices used by qToggle are usually
sensors or actuators with an upstream network connection. Keeping the device firmware
updated is probably one of the most essential tasks, and it is often neglected when dealing
with a large number of devices. qToggle facilitates this task by allowing updates of the
firmware very simply for devices of different types and models. The qToggle API is an
intuitive HTTP API that enables remote controlling of basic hardware ports, such as
GPIOs or analog-to-digital converters (ADC).
The idea behind qToggle is to control programmable systems having a TCP/IP stack
via simple HTTP requests. For example, these systems can be single-board computers or
TCP/IP-enabled microcontrollers. API functions are grouped into the following catego-
ries:
• Device management—general status and configuration of the device;
• Port management—port information and configuration;
• Port values—reading and writing values from and to ports;
• Notifications—event notifications;
• Reverse API calls—API calls via reverse HTTP requests.
API specifications may seem quite complex, offering a wide range of functionalities
and use cases. However, most of them are optional, and only a small set of functions are
mandatory for a qToggle implementation.
The qToggle ecosystem is composed of a qToggleServer, qToggleOS, espQToggle,
add-ons, and other tools and packages that are specific to certain setups and use cases.
The main component is qToggleServer, which is written in Python. It acts as a hub and
provides the user-friendly web app. qToggleOS is an operating system (OS) ready to be
used with Raspberry Pi boards and runs qToggleServer. espQToggle is a custom firmware
for ESP8266/ESP8285 devices and implements the qToggle API. Finally, add-ons are op-
tional pieces of software that enhance the functionality of qToggleServer. A device used
by qToggle will describe itself, indicating its configuration, its supported optional func-
tionalities, and what ports it exposes. Each port, in its turn, will describe itself, indicating
its identifier, type, configuration, and so on. By combining master–slave relationships be-
tween simple devices and hubs in a network, a complex tree topology is obtained. Thus,
a large number of smart devices can be easily managed, as shown in Figure 2. The type of
communication in Figure 2 is Wi-fi or Ethernet. Consumers could operate at any level in
the hierarchy, thus limiting the access inside the network to any desired subtree.
Sensors 2021, 21, 3784 8 of 23
From a developer point of view, qToggle offers add-ons that are an easy and conven-
ient way of packaging optional functionalities, which are usually tied to a specific device
or service. Add-ons can be published or be kept private, depending on the developer’s
needs and licensing requirements. The entire source code is completely opensource [45],
so one can easily understand how it works, may propose changes or may even join the
team. In addition, we provide documentation on using and further developing qToggle
for new devices or use cases.
Regarding the security, qToggle uses a series of best practices that are often found in
nowadays web-based applications. HTTPS is employed for when a client from the outside
(the Internet) talks to the hub. It ensures encryption, authenticity of the hub, and integrity
of the HTTP messages. Plain HTTP is used only locally, inside the premises, between the
hub and its controlled devices. A TLS certificate is used in conjunction with HTTPS to
ensure the security goals mentioned above; Let’s Encrypt is used to generate and renew
the TLS certificates. This process is done automatically on the hub, upon certificate expiry.
Remote (administrative) access on the hub is done via SSH. The SSH protocol uses ECDSA
(or similar) private/public key pairs for authentication and encryption. Alternatively, the
administrator password defined on the hub may be used to log in remotely with username
and password.
The API defines three roles that dictate the permissions of an API request: adminis-
trator, normal user, and view-only user. API requests use the JSON Web Token (JWT)
defined by RFC 7519 to supply authentication data. A shared secret (called password)
ensures the authenticity of the caller. The secret is hashed with a salt before used to sign
the JWT token to prevent compromising the original password. Reply attacks are pre-
vented by using the current timestamp as a nonce included in the JWT.
Alternatively, we could have used HTTP Basic Authentication, HTTP Digest Authen-
tication, or a cookie-based session management with a conventional login form. Basic Au-
thentication is insecure when transmitted over unencrypted channels, while Digest Au-
thentication is unnecessarily complicated and requires exchanging multiple messages.
The cookie/session-based method is prone to session stealing attacks and may also be in-
secure on unencrypted channels.
The embedded Over-the-Air (OTA) mechanism (firmware update) ensures that the
hub as well as its attached devices always run the latest available version, thus allowing
us to quickly bring security patches in case a vulnerability is discovered.
(a) (b)
Figure 3. Logging in for the first time on qToggleServer (a) and setting used and password (b).
(a) (b)
Figure 4. Creating panels (a) and groups of panels (b).
Sensors 2021, 21, 3784 11 of 23
(a) (b)
Figure 5. Working with widgets: dashboard layout (a), widget properties (b).
(a) (b)
Figure 6. Adding, removing (a) and configuring ports (b).
Sensors 2021, 21, 3784 12 of 23
(a) (b)
Figure 7. Adding, removing (a) and configuring slave devices (b).
qToggle app is linked with the qToggleServer package. This means that users will get
an app update whenever they update their qToggleServer installation. Since qToggle is a
web app, the update process is done automatically by the browser, when the user reopens
or refreshes the app. The user can either close it and reopen it, or he/she can use the pull-
to-refresh function to make sure the app is up to date. The code and documentation for
qToggle can be found on Github [45].
same heating requirements), and, finally, the ability to enable scheduling (lower the tem-
perature during the day, when nobody is home, or during vacation). In this way, manual
adjustments are eliminated to save time and effort.
(b)
(a) (c)
Figure 8. Controlling indoor temperatures with qToggle app (a) together with smart termostats (b)
and (c).
This case study home is provided with nine smart thermostats. Thanks to tempera-
ture sensors, the heat system will start only when the temperature falls under a set value
(this value is set on qToggle app, for each room). For this project, six Smart Wi-Fi Touch
Thermostat Temperature Wireless Controllers, connected to the power line (shown in Fig-
ure 8b) and three Eqiva’s eq-3 Bluetooth smart thermostats, which run on batteries,
(shown in Figure 8c) have been used.
The A/C can be controlled to turn on and off without using the remote, by using the
qToggle app. This task can be done using a smart plug for the A/C machine. Controlling
the degrees is a feature that can be very easily implemented in qToggle, if necessary, and
it will look similar to the case of thermostats.
qToggle app, or using Google Home assistant and the voice command “turn on/off the
light in ... room”. qToggle is compatible with Amazon Alexa as well. The devices used for
controlling the lights are Sonoff Touch with one, two, or three channels.
(a) (b)
Figure 9. Switching on and off the lights in a house with qToggle app (a) and the Sonoff Touch device (b).
and upstream equipment. For this case study, the PV power inverters are from the follow-
ing brand manufacturers: Fronius for PV1 (see Figure 10b) and MPPSolar for PV2 (see
Figure 10c).
(a)
(b) (c)
Figure 10. Monitoring the energy with qToggle (a) and the two invertors: Fronius Symo (b) and
Mppsolar (c).
Solar energy can also be stored in batteries. When using batteries of a relatively large
capacity, the energy accumulated over the day can be consumed during the night or dur-
ing rainy days. Systems with smaller capacities may only be used as a backup, in case of
grid outages, being able to supply the house with energy for a limited number of hours.
An inverter that is capable of switching between grid, solar, and battery energy sources,
depending on various configurable conditions, is called a hybrid inverter. MPPSolar is
such a hybrid inverter.
The aim for monitoring the power is to see how much energy the house is using and
to become more aware of the energy use and, thus, of the money spent. An electricity
monitor also helps identify any high energy appliance accidentally left switched on. More-
over, an important goal of power monitoring is the detection of abnormal conditions in
voltage when the electrical network is undersized, and there are a lot of voltage variations.
A smart power meter allows a continuous monitoring of all the important parameters
Sensors 2021, 21, 3784 16 of 23
when it comes to electricity: active, reactive, or apparent power, power factor, current,
voltage, frequency, and total energy consumption. The device is based on ESP8266 and
integrates a high current switch that can be used to remotely cut off energy supply, in case
of an emergency. Figure 11 presents how the power is monitored using qToggle.
We consider that voltage monitoring is essential because the actual voltage supplied
by the grid operator often varies from its nominal value, possibly causing faults to the
electrical equipment. The chart (shown in Figure 11a) as well as its underlying historical
data may serve as proof in case of appliance damage. The excess of solar produced power
can be either used for household electrical necessities or it can be injected into the grid.
Hence, we have the total house power (shown in Figure 11b) , as well as the consumed
and injected grid power (shown in Figure 11c,d).
(a) (b)
(c) (d)
Figure 11. An example of monitoring the power with qToggle: AC Input Voltage (a); House Power (b); Gris Consumed
Power (c); Grid Produced Power (d).
(a) (b)
Figure 12. Access control (a) and security (b) with qToggle.
The home security system consists of a master control panel, the keypad (when not
using the qToggle app), motion sensors, and the siren. The qToggle app is provided with
the options to arm and disarm the security system, as shown in Figure 12b. Arming and
disarming can be performed by voice commands as well, using Google Assistant/smart
watch. We have also implemented the Sleep option, which can be used during the night
and arms only the ground floor of a house, for security reasons. If motion is detected
downstairs during the night, the alarm will trigger. Arming and Disarming, using Sleep
mode, can be done manually, using the qToggle app, but also using an extra light switch,
placed upstairs (for more comfort). The alarm system used in this case study is a Paradox
MG5050 alarm. A custom integration module has been developed using a Raspberry Pi
board to be able to control the alarm unit remotely.
(a)
(b)
Figure 13. Controlling the irrigation system with qToggle (a) and the YL 69 sensor (b).
In the automatic case, without sensors, the user is able to set schedules, by turning
on the Enable schedule button. The adjustments can be made on the last four slides in the
app: Morning factor, Evening factor, Morning time, and Evening time. The user is able to
select the time in the morning and evening when the irrigation should start but also select
the amount of water by adjusting the Morning/Evening factor. A time-controlled sprin-
klers system not only eliminates the chore of hand watering but also saves water, time,
energy, and of course money. The sensors and actuators used for the presented case study,
along with their main characteristics are shown in Table 3. Of course, in the arhitecture of
qToggle, any kind of sensor or actuator can be used.
Sensors 2021, 21, 3784 19 of 23
Table 3. Sensors and actuators used by qToggle for this case study.
The communication architecture for this case study is shown in Figure 14.
The qToggle architecture for this case study is composed of a Master hub connected
to the house LAN and six hubs connected to the Master hub:
• Upstairs hub—controls lightning and HVAC systems upstairs
• Downstairs hub—controls lighting and temperatures downstairs
• Power hub—in charge with energy and power monitoring
• Garage hub—controls lights, temperature, and access
• Alarm controller—motion monitoring and alarm system control
• Irrigation controller—controls the irrigation system in the garden
Sensors 2021, 21, 3784 20 of 23
The communication between the Master hub and the other hubs is done wirelessly
except with the Garage hub and the Power hub, which is wired.
Interoperability and communication between devices is achieved by adopting a sin-
gle, unitary, and extensible API across all devices that are part of a qToggle system.
For logging purposes, we use the Python logging module that captures logging from
all modules and sends it to a log file, which is used for auditing and debugging purposes,
if needed. System-level logs are gathered in the same manner into dedicated log files.
Moreover, all log files are rotated on size and age conditions, so that we do not acci-
dentally run out of storage due to excessive logging.
Events are actually inputs whose values change. These inputs are usually mapped to
physical ports whose logic state may change, but they can also be virtual ports, which are
obtained as combinations of other inputs, using Excel-like expressions.
the firmware also allows leveraging the full power of each device, customizing it per each
user’s needs and providing critical security updates, while unifying the API. We take us-
ers’ privacy very seriously, and in qToggle, user data never leaves the premises (i.e., the
home local network). Not being in control of the firmware of all devices, other platforms
must rely on OEM or vendor-provided firmware, which often employs data communica-
tion via a 3rd party cloud service. Probably one of the biggest differences between qToggle
and its competitors is that our target audience includes users without a technical back-
ground, who prefer intuitive, off-the-shelf solutions with minimal setup requirements and
a smooth learning curve. qToggle provides a PWA (progressive web app). The advantages
of a PWA include the fact that updates are immediate (not being served via App Store or
Play Store) and there is one single code base shared among all platforms. Finally, maybe
the most important thing is that we have provided a solution that can be used successfully
in reality.
The future will bring an increase in terms of sensor products, as well as devices, thus
automating every aspect of our home life. A feature that will be soon added to qToggle is
monitoring the air humidity. Extreme humidity levels can cause mold and result in cost
damage. A high humidity causes condensation and mold; a low humidity increases the
risk of respiratory illnesses and allows viruses and germs to multiply. Thus, a humidity
sensor will protect buildings and belongings by monitoring humidity levels, and it could
be programmed to alert the customer in case the indoor humidity fluctuates to undesira-
ble levels.
Another future task will be the integration of video surveillance in qToggle. We have
already developed a video surveillance OS for single board computers, so that a user can
manage their video cameras very easily, in the browser. The system (called MotionEye)
has become very popular in the open source world, with 50 releases on Github, and more
than 650,000 downloads since 2014.
Author Contributions: Conceptualization, C.C., C.S.-C. and B.-P.B.; methodology, C.C. and B.-P.B.;
software, C.C. and B.-P.B.; validation, C.C., C.S.-C. and B.-P.B.; formal analysis, C.C., C.S.-C. and B.-
P.B.; investigation, B.-P.B.; resources, C.S.-C.; writing—original draft preparation, C.S.-C.; writing—
review and editing, C.C. and B.-P.B.; supervision, C.C., C.S.-C. and B.-P.B.; project administration,
C.C. All authors have read and agreed to the published version of the manuscript.
Funding: This research received no external funding.
Institutional Review Board Statement: Not applicable.
Informed Consent Statement: Not applicable.
Conflicts of Interest: The authors declare no conflict of interest.
Abbreviations
The following abbreviations are used in this manuscript:
References
1. El-Hajj, M.; Fadlallah, A.; Chamoun, M.; Serhrouchni, A. A Survey of Internet of Things (IoT) Authentication Schemes. Sensors
2019, 19, 1141, doi:10.3390/s19051141.
2. Spadacini, M.; Savazzi, S.; Nicoli, M. Wireless home automation networks for indoor surveillance: Technologies and experi-
ments. EURASIP J. Wirel. Commun. Netw. 2014, 2014, 6, doi:10.1186/1687-1499-2014-6.
3. Lee, K.-M.; Teng, W.-G.; Hou, T.-W. Point-n-Press: An Intelligent Universal Remote Control System for Home Appliances. IEEE
Trans. Autom. Sci. Eng. 2016, 13, 1308–1317, doi:10.1109/tase.2016.2539381.
4. Puri, V.; Nayyar, A. Real time smart home automation based on PIC microcontroller, Bluetooth and Android technology. In
Proceedings of the 3rd International Conference on Computing for Sustainable Global Development (INDIACom), New Del-
hi, India, 16–18 March 2016; pp. 1478–1484.
5. Asadullah, M.; Ullah, K. Smart home automation system using Bluetooth technology. In Proceedings of the 2017 International
Conference on Innovations in Electrical Engineering and Computational Technologies (ICIEECT), Karachi, Pakistan, 5–7 April
2017; pp. 1–6.
6. Anandhavalli, D.; Mubina, N.S.; Bharath, P. Smart Home Automation Control Using Bluetooth and GSM. Int. J. Inf. Futur. Res.
2015, 2; 2547–2552.
7. Baraka, K.; Ghobril, M.; Malek, S.; Kanj, R.; Kayssi, A. Low Cost Arduino/Android-Based Energy-Efficient Home Automation
System with Smart Task Scheduling. In Proceedings of the 2013 5th International Conference on Computational Intelligence,
Communication Systems and Networks, Madrid, Spain, 5–7 June 2013; pp. 296–301.
8. Zamora-Izquierdo, M.A.; Santa, J.; Gomez-Skarmeta, A.F. An Integral and Networked Home Automation Solution for Indoor
Ambient Intelligence. IEEE Pervasive Comput. 2010, 9, 66–77, doi:10.1109/mprv.2010.20.
9. Froiz-Míguez, I.; Fernández-Caramés, T.M.; Fraga-Lamas, P.; Castedo, L. Design, Implementation and Practical Evaluation of
an IoT Home Automation System for Fog Computing Applications Based on MQTT and ZigBee-WiFi Sensor Nodes. Sensors
2018, 18, 2660.
10. Li, Z.M.; Song, M.; Gao, L. Design of Smart Home System Based on Zigbee. Appl. Mech. Mater. 2014, 635–637, 1086–1089, doi:
10.4028/www.scientific.net/amm.635-637.1086.
11. Vivek, G.; Sunil, M. Enabling IOT services using WIFI-ZigBee gateway for a home automation system. In Proceedings of the
2015 IEEE International Conference on Research in Computational Intelligence and Communication Networks (ICRCICN), Kol-
kata, India, 20–22 November 2015; pp. 77–80.
12. Huang, F.-L.; Tseng, S.-Y. Predictable smart home system integrated with heterogeneous network and cloud computing. In
Proceedings of the 2016 International Conference on Machine Learning and Cybernetics (ICMLC), Jeju, Korea, 10–13 July 2016;
Volume 2, pp. 649–653.
13. Kodali, R.K.; Jain, V.; Bose, S.; Boppana, L. IoT based smart security and home automation system. In Proceedings of the 2016
International Conference on Computing, Communication and Automation (ICCCA), Noida, India, 29–30 April 2016; pp. 1286–
1289.
14. Singh, U.; Ansari, M.A. Smart Home Automation System Using Internet of Things. In Proceedings of the 2019 2nd International
Conference on Power Energy, Environment and Intelligent Control (PEEIC), Noida, India, 18–19 October 2019; pp. 144–149.
15. Davidovic, B.; Labus, A. A smart home system based on sensor technology. Facta Univ. Ser. Electron. Energetics 2016, 29, 451–
460, doi:10.2298/fuee1603451d.
16. Jabbar, W.A.; Kian, T.K.; Ramli, R.M.; Zubir, S.N.; Zamrizaman, N.S.M.; Balfaqih, M.; Shepelev, V.; Alharbi, S. Design and
Fabrication of Smart Home with Internet of Things Enabled Automation System. IEEE Access 2019, 7, 144059–144074,
doi:10.1109/access.2019.2942846.
17. Bhatt, A.; Patoliya, J. Cost effective digitization of home appliances for home automation with low-power WiFi devices. In
Proceedings of the 2016 2nd International Conference on Advances in Electrical, Electronics, Information, Communication and
Bio-Informatics (AEEICB), Chennai, India, 27–28 February 2016; pp. 643–648.
18. Yan, W.; Wang, Q.; Gao, Z.; Zhenwei, G. Smart home implementation based on Internet and WiFi technology. In Proceedings
of the 34th Chinese Control Conference (CCC), Hangzhou, China, 28–30 July 2015; pp. 9072–9077.
19. Shafana, A.R.F.; Aridharshan, A. Android based automation and security system for smart homes. Int. J. Comput. Sci. Inf. Technol.
2017, 5, 26–30.
20. Howedi, A.; Jwaid, A. Design and implementation prototype of a smart house system at low cost and multi-functional. In
Proceedings of the 2016 Future Technologies Conference (FTC), San Francisco, CA, USA, 6–7 December 2016; pp. 876–884.
21. Gunputh, S.; Murdan, A.P.; Oree, V. Design and implementation of a low-cost Arduino-based smart home system. In Proceed-
ings of the 2017 IEEE 9th International Conference on Communication Software and Networks (ICCSN), Guangzhou, China,
6–8 May 2017; pp. 1491–1495.
22. David, N.; Chima, A.; Ugochukwu, A.; Obinna, E. Design of a home automation system using Arduino. Int. J. Sci. Eng. Res. 2015,
6, 795–801.
23. Imran, S.S.; Vignesh, J.; Singh, V.K.; Prasath, D.T.A. Smart Home automation based on IoT using Arduino mega. In Proceedings
of the International Conference on Current Research in Engineering Science and Technology (ICCREST-2016), Hyderabad, In-
dia, 25–27 October 2016; pp. 2348–8379.
24. Upton, E.; Halfacree, G. Raspberry Pi User Guide, 4th ed.; John Wiley and Sons Ltd.: Hoboken, NJ, USA, 2016.
Sensors 2021, 21, 3784 23 of 23
25. Patchava, V.; Kandala, H.B.; Babu, P.R. A Smart Home Automation technique with Raspberry Pi using IoT. In Proceedings of
the 2015 International Conference on Smart Sensors and Systems (IC-SSS), Bangalore, India, 21–23 December 2015; pp. 1–4.
26. Ozeer, U.; Letondeur, L.; Ottogalli, F.-G.; Salaun, G.; Vincent, J.-M. Designing and Implementing Resilient IoT Applications in
the Fog: A Smart Home Use Case. In Proceedings of the 2019 22nd Conference on Innovation in Clouds, Internet and Networks
and Workshops (ICIN), Paris, France, 19–21 February 2019; pp. 230–232.
27. Kodali, R.K.; Soratkal, S. MQTT based home automation system using ESP. In Proceedings of the 2016 IEEE Region 10 Human-
itarian Technology Conference (R10-HTC), Agra, India, 21–23 December 2016; pp. 1–5.
28. Syafa’Ah, L.; Minarno, A.E.; Sumadi, F.D.S.; Rahayu, D.A.P. ESP 8266 for Control and Monitoring in Smart Home Application.
In Proceedings of the 2019 International Conference on Computer Science, Information Technology, and Electrical Engineering
(ICOMITEE), Jember, Indonesia, 16–17 October 2019; pp. 123–128.
29. Makhanya, S.P.; Dogo, E.M.; Nwulu, N.I.; Damisa, U. A Smart Switch Control System Using ESP8266 Wi-Fi Module Integrated
with an Android Application. In Proceedings of the 2019 IEEE 7th International Conference on Smart Energy Grid Engineering
(SEGE), Oshawa, ON, Canada, 12–14 August 2019; pp. 125–128.
30. Jabbar, W.A.; Alsibai, M.H.; Amran, N.S.S.; Mahayadin, S.K. Design and Implementation of IoT-Based Automation System for
Smart Home. In Proceedings of the International Symposium on Networks, Computers and Communications (ISNCC), Rome,
Italy, 19–21 June 2018; pp. 1–6.
31. Gupta, P.; Chhabra, J. IoT based Smart Home design using power and security management. In Proceedings of the 2016 Inter-
national Conference on Innovation and Challenges in Cyber Security (ICICCS-INBUSH), Noida, India, 3–5 February 2016; pp.
6–10.
32. Badabaji, S.; Nagaraju, V.S. An IoT Based Smart Home Service System. Int. J. Pure Appl. Math. 2018, 119, 4659–4667.
33. Ganesh, E. Implementation of IOT Architecture for SMART HOME using GSM Technology. Int. J. Comput. Tech. 2017, 4, 42–48.
34. Kaur, S.; Singh, R.; Khairwal, N.; Jain, P. Home Automation and Security System. ACII 2016, 3, 17–23, doi:10.5121/acii.2016.3303.
35. Nedelcu, A.-V.; Sandu, F.; Machedon-Pisu, M.; Alexandru, M.; Ogrutan, P. Wireless-based remote monitoring and control of
intelligent buildings. In Proceedings of the 2009 IEEE International Workshop on Robotic and Sensors Environments, Lecco,
Italy, 6–7 November 2009; pp. 47–52.
36. Fernández-Caramés, T.M. An Intelligent Power Outlet System for the Smart Home of the Internet of Things. Int. J. Distrib. Sens.
Networks 2015, 11, 214805, doi:10.1155/2015/214805.
37. OpenHAB. Available online: http://www.openhab.org (accessed on 23 December 2020).
38. Home-Assistant Official Web Page. Available online: http://wwww.home-assistant.io (accessed on 13 January 2021).
39. Domoticz Official Web Page. Available online: http://domoticz.com (accessed on 13 January 2021).
40. Calaos Official Web Page. Available online: https://calaos.fr/en/ (accessed on 13 January 2021).
41. Jeedom Official Web Page. Available online: https://www.jeedom.com (accessed on 13 January 2021).
42. Fehm Official Web Page. Available online: http://www.fhem.de/fhem.html (accessed on 13 January 2020).
43. Stolojescu-Crisan, C.; Crisan, C.; Butunoi, B.P. IoT Based Intelligent Building Applications in the Context of COVID-19 Pan-
demic. In Proceedings of the International Symposium on Electronics and Telecommunications (ISETC), Timisoara, Romania,
5–6 November 2020.
44. Shahajan, M.; Islam, G.M.J.; Das, S.K.; Islam, S.; Islam, M.; Islam, K.K. Internet of Things (IoT) based automatic electrical energy
meter billing system. J. Electron. Commun. Eng. 2019, 14, 39–50.
45. qToggle Project. Available online: https://github.com/qtoggle/qtoggleserver (accessed on 15 May 2021).