A command that can be executed within Home Assistant is called an action. Examples include turning on a light, changing the color of a light, turning on the heating and many more. Actions can be found in many places within Home Assistant, however they are most commonly found within scripts and automation.
An add-on is a third party program or app, which can be added to Home Assistant in order to extend its functionality. There are add-ons that are officially supported and additional third party add-ons. Add-ons are added to Home Assistant using the Add-ons store, which can be found on the settings menu. Some useful examples include the File Editor and Google Drive backup add-ons.
Automations are a powerful component of Home Assistant, which can be used to link triggers to actions. Automations can also include an optional condition, which prevents the automation from triggering the action under certain conditions.
A simple example of an automation could be a switch turning on a smart bulb. The trigger is the switch being pressed and the action is the light turning on.
An option condition could be that the automation only triggers the action when the sun is below the horizon. The sun integration would therefore be the condition. In this example, Home Assistant would prevent the light being turned on during daylight hours, potentially saving energy and reducing your energy bill.
Home Assistant has several ways that it can back up your data. It has a local backup system that can keep backups stored on your Home Assistant server, which can be used if you want to roll back to previous settings.
In addition to this you can download local backups via your browser to store on a different computer, in the event that your Home Assistant server needs to be repaired or migrated to a different machine.
Home Assistant also offers other methods for backing up, such as the third party Google Drive backup add-on, which allows you to automatically back up your Home Assistant configuration to your Google Drive.
Cards are part of the Home Assistant Lovelace user interface and they appear on the Home Assistant dashboard. Each card can display a variety of information including controls such as switches and buttons, data from various integrations and entities, pictures, video and other visual information.
By default cards are added to the dashboard automatically, however it is possible to create your own cards once you have taken manual control of the dashboard.
For example an automation that turns on a smart bulb when a switch is pressed could have a condition added so that the automation only fires the action when the sun is below the horizon. This would prevent the light being turned on during daylight hours.
Home Assistant Core
The Home Assistant Core is the main computer program that makes Home Assistant function. It is written in a computer programming language called Python, which allows it to be run on many different choices of hardware and operating systems. For example Home Assistant Core can be run on a Windows PC, Linux PC or a single board computer such as the Raspberry Pi.
Home Assistant Core is also one of the three main components that make up the complete Home Assistant solution. In many cases the core program will be installed alongside Home Assistant Supervisor and Home Assistant OS, in order to provide full functionality.
Home Assistant dashboards are an easy way for users to manage their home using their browser or mobile phone. Dashboards can be accessed using the main sidebar menu or mobile app.
Each dashboard has a series of cards, which can be used to display a wide range of information about your home. Cards can also feature controls that you can interact with, such as switches and sliders.
Under default settings dashboards are managed automatically by Home Assistant and cards will be created for the various integrations, entities and devices that are added. It is also possible to override automatic control of the dashboard and create your own layouts.
Data serialization is the process of converting data structures or objects in a programming language into a format that can be easily stored, transmitted or shared across different systems or platforms. The serialized data can be in the form of a byte stream, a text file or a binary file.
Serialization is used to transfer data between different applications, across a network or to store data persistently in a file or database. By serializing data, it can be easily transmitted and reconstructed on the receiving end without losing its original structure and content.
Serialization is a common technique in modern programming and is supported by most programming languages and platforms. Examples of popular serialization formats include JSON, XML, YAML, and Protocol Buffers.
Devices usually represent a physical device that has entities within Home Assistant. For example a smart plug may features two entities, one entity for turning the power to the plug on and off, as well as one entity for sensing whether the switch on the plug has been pressed. Both of these entities fall under a device, which represents the smart plug.
A disk image is usually a single file which represents the entire contents of a disk. A disk image file is most commonly used to copy an entire disk so that a backup can easily be stored, or the disk can be easily replicated.
Disk image files can be stored on another disk and they can also be downloaded and transferred, just like any other files. Disk images can be stored on a cloud service, allowing them to be easily backed up remotely.
Entities within Home Assistant are used to monitor physical properties or to control other entities. Each entity has a data point that is the main point of interest, which is referred to as the state.
For example the state of a light entity will either be on or off, which represents whether or not the light is turned on or off. The state can be manipulated using a service, which can be triggered by something such as an automation.
Entities can also have attributes, which contain further data points relevant to the entity. For example the light entity has a state of either on or off, and in addition can have attributes such as color and brightness. The state and attributes are all stored within their respective entity.
Flashing is the process of loading a low-level computer program on to a piece of hardware, which usually features a microcontroller. Many smart home devices, such as smart bulbs or thermostats make use of microcontrollers in order to function. When we update the software that these devices use to function, we use the process of flashing to transfer the new software from a computer to the device.
Flashing is usually carried out simply by using a USB cable. In some cases it is also possible to flash devices over the air (OTA), which means they can be flashed wirelessly. Other devices may need additional hardware in order to be flashed, such as a USB to serial adapter board.
Focused Learning Environment
Smart Home Study offers its users a focused learning environment. When beginning or returning to a course, you are taken to classroom mode, which removes all of the standard website menus and replaces them with course navigation and course progress information.
Our focused learning environment is provided by LearnDash, one of the best in the business when it comes to eLearning. Smart Home Study uses the LearnDash focused learning environment in order to deliver you the best online learning experience.
GitHub is a platform which developers use to host, develop and collaborate on software projects. It is a thriving community and key tool, especially within the open source community.
For non-developers, GitHub is still a very valuable resource, as there are many useful open source projects available. Home Assistant uses GitHub for both its development and also as a means to make the files available for everyone to download.
Home Assistant is a home automation software solution, which is provided free of charge as open source software. Home Assistant has the ability to act as the central control for many different home automation devices and services, with a focus on privacy and security. It can be accessed with any browser, or by using a mobile app for either Android or iOS. Home Assistant can be run on a variety of different hardware, such as a computer, single board computer or dedicated smart home hub such as the Home Assistant Yellow.
Integrations link and unite Home Assistant with many tools, services, and other things. Such an integration consists of all the logic that handles implementations specific to vendors and devices, such as authentication or unique protocols, and brings them into Home Assistant in a uniform manner.
Internet Protocol (IP) addresses are numerical labels given to individual computers or devices in order to identify them on a network. IP addresses can be assigned to devices on a local network as well as being used to identify devices and networking on the internet.
IP addresses consist of a 32-bit number, which is commonly written as four decimal numbers separated by a decimal point (period). Each of the four decimal numbers range between 0 and 255. This type of address is known as an IPv4 address.
Due to the growth of the internet an the depletion of IPv4 addresses, IPv6 addresses have been introduced which utilize a 128-bit number instead. The deployment of IPv6 addresses has been ongoing since the mid-2000s but is not commonplace.
Linux is an operating system, just like Windows, iOS, and Mac OS. Linux is the operating system that runs one of the world’s most widely used platforms, Android. A desktop or laptop’s operating system is a piece of software that controls all of the hardware resources connected to it.
Simply explained, the operating system controls how your software and hardware communicate with one another. The operating system (OS) is necessary for the software to run.
Lovelace is the original codename for the updated Home Assistant user interface, which is now known as the dashboard. Lovelace utilizes the web browser in order to display the Home Assistant graphical user interface, allowing Home Assistant to be accessed by any device that supports a browser or one of the available mobile apps.
Micro SD Card
Micro SD cards are a form of Secure Digital (SD) memory card, which come in a smaller form factor. They are commonly found on smaller devices such as mobile phones and single board computers.
The Raspberry Pi single board computer, which is the most common hardware used to run Home Assistant, makes use of a Micro SD card to store both the application data and configuration for Home Assistant and the Home Assistant operating system.
There are a variety of different Micro SD cards available, with different read/write speeds and memory sizes. Modern Micro SD cards can now store over 1 Terabyte (TB) of data, although such cards can be expensive. The minimum requirement for Home Assistant is currently 32 Gigabytes (GB) with A2 classification.
NUC is an abbreviation for New Unit of Computing, which is a small form factor computer produced by Intel and it is designed to give the full desktop experience.
NUC computers are ideal for more complex Home Assistant builds requiring more processing power, such as when IP camera networks are integrated. NUCs are smaller and quieter than their full-sized PC counterparts, making them easier to install or store somewhere within the home. For example they can easily be placed on a desk next to the router or even behind the TV.
NUC has also become a broader blanket term for small form factor PC and may in some cases be used to describe more affordable clones of the original Intel NUC product.
Open-source software is computer software that has been made available under a license that gives users the freedom to use, examine, modify, and share the program and its source code with anyone and for any reason.
Home Assistant OS
Home Assistant Operating System (OS), formally known as HassOS is a minimalistic operating system designed to run on embedded devices such as single board computers, like the Raspberry Pi. It can also be run on virtual machines.
The purpose of Home Assistant OS is to provide a lightweight environment that can run Home Assistant. This allows much better use of the more limited computing resources available on embedded systems and single board computers.
The Raspberry Pi is a popular single board computer that was originally designed for educating students. Since it’s conception it has gained huge popularity and has been used for many different purposes.
Home Assistant can be run on a Raspberry Pi, which makes an ideal choice of hardware due to its compact form factor and affordable price. Raspberry Pi is the recommended choice for newcomers to Home Assistant, however it can easily be replaced should something more powerful be required at a later date.
If you are looking to get started with Home Assistant on Raspberry Pi, we offer a free course that will teach you everything that you need to know to get Home Assistant up and running. Click here to get started!
A relay is a switch that is controlled electronically, which usually consists of a mechanical switch that is actuated by an electromagnet. This allows a higher power electrical current to be switched by a lower power signal.
Relays are very useful in smart homes as they allow the high power AC mains electricity found in the home to be controlled by a low power signal supplied from a low power device, such as a small wireless receiver like Zigbee.
Relays allow Home Assistant to take control of many different appliances. They can be used to switch lights, garage door opening devices, electric blinds and any other device that uses mains power. Relays are commonly found in smart plugs, smart switches and any smart appliance that uses the mains electricity in the home.
Scenes within Home Assistant store a group of entity states that can be recalled at any time. Scenes can be fired manually from the Home Assistant dashboard, however most commonly they are fired using an automation action.
A good example of a scene could be a group of lights within a room in the house. Seperate scenes could be created for different moods, which hold information about each light, such as the color and brightness. Calling the scenes will simultaneously change all of the lights to all of the values stored within the scene.
This makes it easy to tie many actions to a single trigger. For example a single press of a switch could switch on all lights in the room, change their colors and set their brightness values. This is achieved by using an automation to trigger the scene when the switch is pressed.
Scripts are a component of Home Assistant which can be used to trigger a sequence of events. For example a script could turn on the lights, pause for some specified amount of time and then boil the kettle.
Scripts appear in their associated dashboard card and can be triggered directly from the dashboard by clicking the trigger button. They can also be triggered by automations, which is done by setting the script as the automation action.
Home Assistant Server
The hardware chosen to run Home Assistant can be referred to as the Home Assistant server. The Home Assistant server is usually a seperate device to the device used to access Home Assistant.
For example the Home Assistant server can be a single board computer, or standard computer that runs continuously and does not feature any input or output devices, such as a monitor, keyboard or mouse.
The Home Assistant dashboard is accessed remotely, usually by a computer or tablet within the home, using a standard web browser. The dashboard can also be accessed by an iOS or Android mobile app. The Home Assistant server provides the dashboard over a network connection.
The Home Assistant server can also be accessed outside of the home using the internet, however additional configuration is required in order to make this connection secure.
There are two meanings for service when referring to Home Assistant;
A service can be a service provided by a third party, such as Spotify music streaming or Netflix, which can be integrated and controlled by Home Assistant. For a list of compatible services, see the integrations page on the official website.
A service is also a software function within Home Assistant, which carries out a specific task. For example the
light.turn_on service can be used to switch the state of a light entity to the on state.
Single Board Computer
A single board computer (SBC) is a small form factor computer, commonly about the size of a credit card, which can provide an experience close to that of a full sized desktop computer.
SBCs usually feature the same common ports, such as USB, Ethernet and HDMI, which allow computer peripherals to be connected. SBCs can run operating systems that provide a graphical user interface and are commonly derivatives of Linux.
Smart Home Hub
A smart home hub is a dedicated hardware device used for hosting smart home control software, such as Home Assistant. Smart home hubs are usually smaller than full sized computers, commonly about the size of a WiFi router.
Smart home hubs are similar to single board computers and often use a single board computer for the central processing, storage and peripheral management. However in addition they commonly feature additional hardware necessary for the smart home, such as Zigbee and Z-Wave radio modules, Ethernet ports, as well as additional USB and SSD storage.
In computer science, a protocol is a set of guidelines or instructions for transferring data between computers and other electronic devices. Information communication between computers requires an established agreement regarding the information’s structure and how each side will send and receive it.
A service set identifier (SSID) is a string of characters that is used to identify a Wi-Fi network. An SSID can also be simply called a network name. When several separate networks run in the same physical location, this name enables stations to connect to the preferred network.
The state holds the main information of interest within an entity. For example a light entity state defines whether or not the light entity is either on or off.
Entities can hold additional information that is necessary for full functionality of the entity. For example a light entity can also have a brightness or color value. However these additional data points within an entity are secondary to the state and are referred to as attributes.
A stimulus is something that triggers an event to happen. A stimulus in Home Assistant is usually referred to as a trigger.
The purpose of the Home Assistant Supervisor is to manage the Home Assistant Core. It can monitor the Core and perform necessary housekeeping tasks, such as software updates. I also manages the installation of Home Assistant addons, which can be managed by the user via the Home Assistant UI. Note that the supervisor must be installed in order for the add-ons store to be present in the UI.
The Home Assistant Supervisor is bundled with all installations that use the Home Assistant OS. It is also bundled with the Home Assistant Supervised installation for Debian Linux. In addition it can be installed on any Linux system using Docker.
Triggers are an event which takes place within Home Assistant, which can be used to fire an action. Triggers make up the initial part of an automation within Home Assistant and they can be provided by different events, such as when an entity changes state.
A simple example of a trigger could be a switch entity changing from the off state to the on state. Assigning this trigger to an automation would cause the assigned action to occur upon the trigger firing, providing that any optional automation conditions are met.
Home Assistant User Interface
The Home Assistant User Interface (UI) is the graphical display which provides access to all of the Home Assistant functions. It is also known as Lovelace and can be accessed by connecting to the Home Assistant server using any device with a compatible web browser.
The Home Assistant UI provides access to all of the necessary tools, such as the developer tools and settings menus, which are necessary in order to configure Home Assistant.
A virtual machine (VM) is generally a software simulation of a computer system that runs within a containerized environment on a host computer system. The computer system that runs the virtual machine is known as the host, whilst the system being virtualized is known as the guest.
The host and guest systems can be based on the same operating system, or different operating systems can be emulated. For example it is possible to run an instance of Windows under a Mac OS host. This would allow both Mac and PC applications to be executed on the same machine.
In some cases it may be applicable to run the same operating system on both the host and guest. This allows for a seperate sandbox environment to be created for testing or security purposes.
The optimal way to run Home Assistant on a full sized computer (rather than a single board computer) is to create a virtual machine in order to run the Home Assistant OS or Debian, a flavour of Linux that is required in order to run Home Assistant.
If you are a newcomer to Home Assistant and the concept of a virtual machine still sounds a little complex, starting with a single board computer such as Raspberry Pi would provide an easier introduction to Home Assistant.
WiFi is a wireless technology that links computers, tablets, cellphones, and other devices to a local computer network. This allows the devices on the network to share information, including those devices that may be linked to the network by cable.
WiFi is commonly used to access this internet, which is achieved by providing the local network with internet access, usually by means of a wired connection to a router on the network.
WiFi can also be used to link compatible smart home devices to Home Assistant within the home.
YAML is a data serialization language that is often used for writing configuration files. One of the main benefits of YAML is that it is human-readable.
YAML is used to configure many different things in Home Assistant and it can be written within Home Assistant using the File Editor, available in the add-ons store. YAML can be added to the configuration.yaml file in order to create custom configurations within Home Assistant.
It is important to note that over the years, Home Assistant developers have moved away from requiring YAML to be written in order to configure things within Home Assistant. The addition of the editor has meant that it is no longer necessary to write YAML in order to generate automations and scenes.
Zigbee is a wireless protocol that enables smart devices such as light bulbs, sockets, plugs, smart locks, motion sensors, and door sensors to communicate with one another over a personal area network (PAN).
In order to use Zigbee compatible devices with Home Assistant, a Zigbee radio must be added to the Home Assistant server. This is commonly a USB dongle that simply plugs into a spare USB port on the Home Assistant server.