- Action
- A action in Home Assistant is a method that can be performed. Actions are, for example, used to control devices and entities. For example, the
light.turn_on
action is used to turn on a light and themedia_player.play_media
action plays a media file on a media player entity. - Actions are not limited to controlling devices and entities. They can also be used to perform other things, like sending a notification, to start a script, or to query a service for information responding with data back.
- A sequential list of actions is also known as a script sequence.
- Learn more in the official Home Assistant documentation
- Action name
- A action name is the name of a action that can be performed to do an action. For example, the
light.turn_on
action is used to turn on a light and themedia_player.play_media
action plays a media file on a media player entity. - Learn more in the official Home Assistant documentation
- Action response
- An action response is a response that is returned by an action when it is performed. The response can contain data that is returned by the action. There are three types of actions: one that will return no response (the most common), one that has an optional response, and one that always has a response.
This is important to know, as for the ones without response, you are not allowed to set the
response_variable
option, while for the optional, that is allowed, and for the ones that always have a response, it is required.
- Action targets
- Action targets are the devices, entities, or areas that are targeted by a performing an action. The
target
action parameter is used for that. For example, calling thelight.turn_off
with the living room as a target to turn off all the lights in the living room area. Home Assistant will figure out which entities it needs to turn off based on the area that is targeted. - Not all action work with targets.
- Area
- An area in Home Assistant is a logical grouping of devices and entities that are meant to match areas (or rooms) in the physical world: your home. Areas are used to group devices and entities together in, for example, the living room. Areas give a better overview of your home and can be used to target actions to a specific area, like turning off all the lights in the living room.
- Learn more about areas in the official Home Assistant documentation
- Automation
- An automation in Home Assistant is a set of triggers and actions that are automatically performed when a trigger fires. For example, an automation can be created to automatically turn on the lights when a motion sensor detects motion. Automations are the heart of Home Assistant; it is what makes Home Assistant a home automation platform. It is the glue that binds all the other integrations together, it is what makes your home smart and comfortable. Automations can be shared in the community in the form of a Blueprint.
- Learn more in the official Home Assistant documentation
- Blueprint
- A blueprint in Home Assistant is a reusable automation or script, shared and created by the community, that can be imported into your Home Assistant instance. They are a great way to learn how to automate your home and an inspiration for new automation ideas, or just an easy way to get started. Blueprints are a great method to share your automation creations with others so that others can apply them to their own homes.
- Learn more in the official Home Assistant documentation
- Boolean
- A boolean is a data type that can only have two values:
true
orfalse
. - You mostly come across this term in Home Assistant when working with YAML. In YAML, boolean values can also be written as
yes
orno
; however, it is recommended to stick with justtrue
orfalse
. - Because
yes
andno
are boolean values in YAML, they might cause confusion when you meant to use a string value. For example,yes
is a boolean value, but"yes"
is a string value.
- Config entry
- A config entry in Home Assistant is a configuration for an integration. It is a technical term from the developer sources leaking into the user space, which may sometimes sound confusing. In short, it is the configuration you see on the integrations page. Most integrations can be set up multiple times (like adding two Hue bridges or multiple ESPHome devices). Each such “integration instance” is a config entry.
- This is sometimes referred to as “integration instance” or “integration entry”.
- Dashboard
- A dashboard in Home Assistant is a user interface that displays information and control entities in your home. Dashboards are used to create a user interface to control your home, such as turning on the lights or seeing the current temperature. Dashboards are fully customizable and can be created in many different ways. There is a vibrant community that shares their dashboards so that you can get inspiration and ideas for your own dashboard.
- You might come across the term “Lovelace”, which is the codename originally used for dashboards.
- Learn more in the official Home Assistant documentation
- Developer tools
- The developer tools in Home Assistant are a set of tools that can be used to inspect, debug and play with your Home Assistant instance. It may sound very technical, but don’t let that scare you. The developer tools can be used to, for example, inspect the state of entities, experiment with performing action, or test and debug your templates.
- Learn more in the official Home Assistant documentation
- Device
- A device in Home Assistant represents a physical device in your home, but a device can also represent a web service, like one that provides weather information. Devices are a logical grouping for entities. For example, a device that can measure temperature, humidity, and pressure will have three entities: a temperature sensor, a humidity sensor, and a pressure sensor. All three entities belong to the same device.
- Learn more in the official Home Assistant documentation
- Ectoplasm
- Ectoplasm is a term used in spiritualism to denote a substance or spiritual energy “exteriorized” by physical mediums. Or the more pop-culture version: the green goo that ghosts leave behind, like in Ghostbuster.
- Spook uses ectoplasm to add new scary advanced behavior to the functionality of Home Assistant. Internally in the source code of Spook, an ectoplasm is a module it can apply to a Home Assistant integration.
- Entity
- An entity in Home Assistant represents a single data point or single function, in most cases, of a device. Entities are used to monitor physical properties or to control the functions of devices. Entities are the basic building blocks of Home Assistant.
- Entities have a state, providing information about the current condition of the entity (like on or off, open or closed, temperature, etc.).
- There are different types of entities. For example, a light entity is used to control a light, a switch entity is used to control a switch, and a sensor entity is used to display a sensor value.
- Learn more in the official Home Assistant documentation
- Entity ID
- An entity ID in Home Assistant is a user-definable identifier for an Entity. It is used to reference the actual entity in, for example, automations, scripts, and dashboards. The entity ID is automatically generated by Home Assistant when an entity is created for the first time.
- Float
- A float is a datatype and is a more technical term for a number that can have a decimal point. For example,
2.5
is a float, but2
is a valid float value as well. - You mostly come across this term in Home Assistant when working with YAML. Floats (unlike strings) are not surrounded by quotes in YAML and are just written as is. For example,
2.5
is a float in YAML (thus handled as a numeric value), but"2.5"
is a string in YAML (thus handled as text). - Floats are often confused with integers. They look very much alike; the difference is that floats can have a decimal point, while integers cannot. This also means that all integers are floats, but not all floats are integers.
- Floor
- A floor in Home Assistant is a logical grouping of areas that are meant to match floors (or levels) in the physical world: your home. Floors are used to group areas together that are on the same floor in your home. Floors give a better overview of your home and can be used to target actions to a specific floor, like turning off all the lights on the first floor.
- Learn more about floors in the official Home Assistant documentation
- Helper
- A helper in Home Assistant is an Integration that provides a user input (for example, an input number, input boolean, input select, etc.) or consumes an existing Entity (or entities) as a data source to perform calculations with and return the result of that calculation as a new entity.
- Home Assistant
- Home Assistant is an amazing free and open-source home automation platform. Track and control all devices at home and automate control.
- Spook is a custom integration for Home Assistant.
- Visit the Home Assistant website
- Home Assistant Cloud
- The Home Assistant Cloud allows you to effortlessly use your Home Assistant with various cloud services like Amazon Alexa and Google Assistant but also provides remote access to your Home Assistant instance without having to deal with dynamic DNS, SSL certificates, and opening ports on your router.
The Home Assistant Cloud service is provided by Nabu Casa. The earnings from the services provided are used to fund Home Assistant development and related projects in the open home community. Please consider subscribing to the Home Assistant Cloud service to support the development of Home Assistant. 🙏- Learn more on the Nabu Casa website
- HACS
- Home Assistant Community Store. A third-party integrations store for Home Assistant. It provides custom integrations for Home Assistant that are not available in a standard Home Assistant installation. The Home Assistant project does not support these integrations.
- As the Spook integration does unsupported things, it is only available through HACS.
- Learn more on the HACS website
- Integer
- An integer is a datatype and is a more technical term for a number without a decimal point. For example,
2
is an integer, but2.5
is not. - You mostly come across this term in Home Assistant when working with YAML. Integers (unlike strings) are not surrounded by quotes in YAML and are just written as is. For example,
2
is an integer in YAML (thus handled as a number), but"2"
is a string in YAML (thus handled as text).
- Integration
- An integration in Home Assistant is a component that allows you to integrate a device or action with your Home Assistant installation. Home Assistant comes with well over a thousand integrations out of the box, but you can also install your own custom integrations.
- Custom integrations, however, are not supported by the Home Assistant project. They are not reviewed or tested by the Home Assistant development team and thus may negatively impact the stability of your Home Assistant instance.
- Spook 👻 is a custom integration for Home Assistant that is available via HACS.
- Label
- A label in Home Assistant can be freely created / be made up by you and used to create your own organizational structure by tagging devices, entities, or areas with one or more labels. Labels can be used to filter items shows in tables in the user interface, or to target actions in for example automations, or scripts.
- Learn more about labels in the official Home Assistant documentation
- List
A list is a datatype and is a more technical term for a collection of items. For example, a list of integers:
[1, 2, 3]
.You mostly come across this term in Home Assistant when working with YAML. Synonyms for lists are arrays and sequences. Although, a sequence in Home Assistant mostly refers to a list of actions.
Lists can be written in YAML in two ways. One is the square bracket syntax, like
["one", "two", "three"]
. The other method is the hyphen syntax, like- "one"
(which is the same as["one"]
). Having each item (prefix with a hyphen) on a new line. The latter is generally recommended; it is more expressive but improves readability. For example:brackets: ["one", "two", "three"] newlines: - "one" - "two" - "three"
- My Home Assistant
- My Home Assistant is a web service by the Home Assistant project that allows documentation and websites to link you to specific pages in your own Home Assistant instance. Learn more about it in the My Home Assistant FAQ.
- Performing actions
- Actions can be performed. Actions can be performed from, for example, as part of an automation or a script sequence.
- Actions are targeted toward specific devices, entities, or areas. For example, the calling the
light.turn_off
action to turn off all the lights in the living room area. - Learn more in the official Home Assistant documentation
- Repairs
- The repairs dashboard in Home Assistant is a place where detected issues with your Home Assistant instance are listed. It is recommended to check this dashboard regularly to ensure your Home Assistant instance is running smoothly. The provided issues are often accompanied with integrations or a link to the documentation to help you resolve the issue.
- Learn more in the official Home Assistant documentation
- Scene
- A scene in Home Assistant is a collection of entities and their states. Scenes are used to set a predefined state for a group of entities. For example, a scene can be used to set the lights in your living room to a specific color and brightness or to set your media player’s volume to a specific level and all restored to that stored state when the scene is activated.
- Scenes are probably (one of) the most underused features of Home Assistant, but they are actually really useful and can help a lot to reduce the complexity of your automations.
- Learn more in the official Home Assistant documentation
- Script
- A script in Home Assistant is a sequence of actions that are executed when the script is started or called via start by performing an action. Scripts are similar to automations but are not automatically executed when a trigger fires. Scripts are a great way to group a sequence of actions together that can be executed on demand and reused in multiple automations.
- Learn more in the official Home Assistant documentation
- Service
- A service in Home Assistant was an ambigous term in Home Assistant. It has been fully replaced by the Action.
- Service call
- A service call in Home Assistant has been renamed ans is now called performing an action.
- Sequence
- A sequence in Home Assistant is a list of actions that are executed in order. Sequences are used in automations and scripts to perform multiple actions in a specific order.
- Learn more in the official Home Assistant documentation
- String
- A string is a datatype that consists of a sequence of characters. Essentially, a string is a more technical term for: text.
- You mostly come across this term in Home Assistant when working with YAML. In YAML, the best practice for using strings (text) is by always surrounding them using quotes. For example,
"Hello World"
. This is not required, but it is a good practice to follow as it prevents you from running into issues with some special cases in YAML (for example, the textoff
without using quotes will not be considered a string but a boolean value).
- Influence of Spook
- A term to indicate/describe the Spook’s part in a particular feature of Home Assistant. In some cases, Spook adds completely new, previously non-existing features; in other cases, it might modify, extend, or improve existing features. Spook documents his influence, so you can easily see what features are available because of him.
- Template
- Templating is an advanced feature of Home Assistant that allows you to dynamically generate values using the Jinja2 template engine. The syntax used for templating comes very close to the concept of programming languages and will enable you to perform complex operations on data.
- Learn more in the official Home Assistant documentation
- Template engine
- The template engine in Home Assistant is a Jinja2 template engine, enrichted with an Home Assistant-specific extension. The engine is used to take a template, process it, and return the resulting value from it.
- Learn more in the official Home Assistant documentation
- Template filter function
- Filters are a special type of template function that can be used to modify the output of a template. For example, the
lower
filter can be used to convert a string to lowercase. For the syntax of filters, inspiration was probably taken from UNIX. The the idea is that you “pipe” a value, by adding a pipe character|
, through some filters to do something with it. For example,{{ "SPOOK" | lower }}
will outputspook
. You can also chain filters, for example,{{ "SPOOK" | lower | capitalize }}
will outputSpook
. - Most template functions can be used used as a filter as well.
- Learn more in the official Home Assistant documentation
- Learn more in the Jinja2 documentation
- Template function
- A template function is a function that can be used in a template. Template functions are used to perform operations on data. For example, the
now()
function returns the current date and time, and theis_state()
function checks if an entity is in a specific state. - Learn more in the official Home Assistant documentation
- Template function return type
- When a template function is used/called, it returns a value. The returned value can be of different types. For example, if it returns a numeric value, its return type might be a float. If it returns a true or false result, that would be a boolean value. There are many different types of values that can be returned.
- Learn more in the official Home Assistant documentation
- Template function return value
- A template function return value is the value that is returned by a template function when it was called/used. The return value can next be used in a next step, for example, to use as an in put for another template function. For example, the
now()
function returns the current date and time, and theis_state()
function returns a boolean value indicating if an entity is in a specific state. - Learn more in the official Home Assistant documentation
- Template test function
- Test functions are a special type of template function that can be used to check if a condition is true or false. Inside a template they use the
is
operator. For example3 is odd
will returnTrue
and3 is even
will returnFalse
. - Learn more in the official Home Assistant documentation
- Learn more in the Jinja2 documentation
- YAML
- The complex definition would be: YAML is a human-readable data-serialization language. But a more simplified explanation would be: It is a structure in which we can write configuration files that are readable for both humans and machines.
- It is the format Home Assistant uses to store its configuration and data. Opinions are divided on whether YAML is a good or bad format or hard or easy to use. The fact remains, is that Home Assistant uses it a lot, and it definitly worth while learning it. YAML itself really isn’t that complex, but it does have some quirks that you need to be aware of. The most complex part of using YAML with Home Assistant is not YAML itself but all the things you can do with it in Home Assistant.
- Don’t let it scare you. You’ll get the hang of it quickly.
- Read a tutorial on YAML