diff --git a/source/_docs/asterisk_mbox.markdown b/source/_docs/asterisk_mbox.markdown deleted file mode 100644 index e91f229f961..00000000000 --- a/source/_docs/asterisk_mbox.markdown +++ /dev/null @@ -1,104 +0,0 @@ ---- -title: "Asterisk Voicemail server installation" -description: "Instructions on how to integrate your existing Asterisk voicemail within Home Assistant." ---- - -Asterisk Voicemail integration allows Home Assistant to view, listen to and delete voicemails from a Asterisk voicemail mailbox. - -There are two components to the integration: - -- A server that runs on the Asterisk PBX host and communicates over an open port. -- A client which can request information from the server. - -Both parts are necessary for Asterisk voicemail integration. - -The server installation is documented below. The client is [integrated inside Home Assistant](/integrations/asterisk_mbox) - -{% note %} -Currently this module can only monitor a single Asterisk PBX mailbox. -{% endnote %} - -### Prerequisites - -Before beginning make sure that you have the following: - -- A functional Asterisk PBX setup which is using the default `voicemail` application. -- Both Home Assistant and Asterisk PBX running on the same LAN (or the same server). -- The Asterisk PBX server has Python 3.5 or newer installed. -- Administrator access on the Asterisk PBX (for Python module installation). -- Account access to the `asterisk` user that runs the Asterisk PBX software. - -### Installation - -1. Apply for a Google API key to enable speech-transcription services - -2. Install the `asterisk_mbox_server` Python module: - - ```bash - pip3 install asterisk_mbox_server - ``` - -3. Create a configuration file for the server - - As the `asterisk` user create an `asterisk_mbox.ini` file. You can place this in any directory you choose, but the recommended location is `/etc/asterisk/asterisk_mbox.ini`. - - ```ini - [default] - host = IP_ADDRESS - port = PORT - password = PASSWORD - mbox_path = PATH_TO_VOICEMAIL_FILES - cache_file = PATH_TO_CACHE_FILE - google_key = GOOGLE_API_KEY - cdr = mysql+pymysql://:@localhost/asterisk/cdr - - ``` - - - `host` (*Optional*): The IP address to listen on for client requests. This defaults to all IP addresses on the server. To listen only locally, choose `127.0.0.1` - - `port` (*Optional*): The port to listen on for client requests. Defaults to 12345. - - `password` (*Required*): A password shared between client and server. Use only alphanumeric characters and spaces - - `mbox_path` (*Required*): The path to the storage location of mailbox files. This is typically `/var/spool/asterisk/voicemail/default//` - - `cache_file` (*Required*): A fully-qualified path to a file that can be written by the server containing transcriptions of voicemails. Example: `/var/spool/asterisk/transcription.cache` - - `google_key` (*Required*): Your 40 characters Google API key. - - `cdr` (*Optional*): Where to find CDR data. Supports various SQL databases as well as a file log. Configuring the CDR will enable the `asterisk_cdr` platform. - - Once complete, ensure this file is only accessible by the Asterisk user: - - ```bash - sudo chown asterisk:asterisk /etc/asterisk/asterisk_mbox.ini - sudo chmod 600 /etc/asterisk/asterisk_mbox.ini - ``` - -4. Interactively start the server to verify it is functioning - - ```bash - sudo -u asterisk asterisk_mbox_server -v --cfg /etc/asterisk/asterisk_mbox.ini - ``` - - Now complete the [Home Assistant configuration](/integrations/asterisk_mbox) and verify that Home Assistant can communicate with the server - - You can use `Ctrl-c` to terminate the server when done testing - -5. Configure the server to start automatically - - Copy the following code into `/etc/systemd/system/asterisk_mbox.service`: - ```ini - [Unit] - Description=Asterisk PBX voicemail server for Home Assistant - Wants=network.target - After=network.target - - [Service] - Type=simple - User=asterisk - Group=asterisk - ExecStart=/usr/local/bin/asterisk-mbox-server --cfg /etc/asterisk/asterisk_mbox.ini - Restart=on-failure - - [Install] - WantedBy=multi-user.target - ``` - -{% note %} -This assumes that your Asterisk PBX server is using `systemd` for init handling. If not, you will need to create the appropriate configuration files yourself. -{% endnote %} diff --git a/source/_docs/configuration/templating.markdown b/source/_docs/configuration/templating.markdown index f372f08d6cb..929cefe8400 100644 --- a/source/_docs/configuration/templating.markdown +++ b/source/_docs/configuration/templating.markdown @@ -1091,6 +1091,38 @@ While Jinja natively supports the conversion of an iterable to a `list`, it does Note that, in Home Assistant, to convert a value to a `list`, a `string`, an `int`, or a `float`, Jinja has built-in functions with names that correspond to each type. +### Iterating multiple objects + +The `zip()` function can be used to iterate over multiple collections in one operation. + +{% raw %} + +```text +{% set names = ['Living Room', 'Dining Room'] %} +{% set entities = ['sensor.living_room_temperature', 'sensor.dining_room_temperature'] %} +{% for name, entity in zip(names, entities) %} + The {{ name }} temperature is {{ states(entity) }} +{% endfor %} +``` + +{% endraw %} + +`zip()` can also unzip lists. + +{% raw %} + +```text +{% set information = [ + ('Living Room', 'sensor.living_room_temperature'), + ('Dining Room', 'sensor.dining_room_temperature') +] %} +{% set names, entities = zip(*information) %} +The names are {{ names | join(', ') }} +The entities are {{ entities | join(', ') }} +``` + +{% endraw %} + ### Functions and filters to process raw data These functions are used to process raw value's in a `bytes` format to values in a native Python type or vice-versa. @@ -1284,7 +1316,7 @@ For actions, command templates are defined to format the outgoing MQTT payload t {% note %} -Example command template: +**Example command template with JSON data:** With given value `21.9` template {% raw %}`{"temperature": {{ value }} }`{% endraw %} renders to: @@ -1298,6 +1330,14 @@ Additional the MQTT entity attributes `entity_id`, `name` and `this` can be used {% endnote %} +**Example command template with raw data:** + +When a command template renders to a valid `bytes` literal, then MQTT will publish this data as raw data. In other cases, a string representation will be published. So: + +- Template {% raw %}`{{ "16" }}`{% endraw %} renders to payload encoded string `"16"`. +- Template {% raw %}`{{ 16 }}`{% endraw %} renders to payload encoded string `"16"`. +- Template {% raw %}`{{ pack(0x10, ">B") }}`{% endraw %} renders to a raw 1 byte payload `0x10`. + ## Some more things to keep in mind ### `entity_id` that begins with a number diff --git a/source/_integrations/airgradient.markdown b/source/_integrations/airgradient.markdown index e843a783f00..cfc40711a6b 100644 --- a/source/_integrations/airgradient.markdown +++ b/source/_integrations/airgradient.markdown @@ -17,6 +17,7 @@ ha_platforms: - select - sensor - switch + - update ha_integration_type: device ha_zeroconf: true --- diff --git a/source/_integrations/amcrest.markdown b/source/_integrations/amcrest.markdown index c886a1df065..3a729edae66 100644 --- a/source/_integrations/amcrest.markdown +++ b/source/_integrations/amcrest.markdown @@ -292,7 +292,7 @@ elements: bottom: 50px tap_action: action: call-service - action: amcrest.ptz_control + service: amcrest.ptz_control service_data: entity_id: camera.lakehouse movement: up @@ -304,7 +304,7 @@ elements: bottom: 0px tap_action: action: call-service - action: amcrest.ptz_control + service: amcrest.ptz_control service_data: entity_id: camera.lakehouse movement: down @@ -316,7 +316,7 @@ elements: bottom: 25px tap_action: action: call-service - action: amcrest.ptz_control + service: amcrest.ptz_control service_data: entity_id: camera.lakehouse movement: left @@ -328,7 +328,7 @@ elements: bottom: 25px tap_action: action: call-service - action: amcrest.ptz_control + service: amcrest.ptz_control service_data: entity_id: camera.lakehouse movement: right @@ -340,7 +340,7 @@ elements: bottom: 50px tap_action: action: call-service - action: amcrest.ptz_control + service: amcrest.ptz_control service_data: entity_id: camera.lakehouse movement: left_up @@ -352,7 +352,7 @@ elements: bottom: 50px tap_action: action: call-service - action: amcrest.ptz_control + service: amcrest.ptz_control service_data: entity_id: camera.lakehouse movement: right_up @@ -364,7 +364,7 @@ elements: bottom: 0px tap_action: action: call-service - action: amcrest.ptz_control + service: amcrest.ptz_control service_data: entity_id: camera.lakehouse movement: left_down @@ -376,7 +376,7 @@ elements: bottom: 0px tap_action: action: call-service - action: amcrest.ptz_control + service: amcrest.ptz_control service_data: entity_id: camera.lakehouse movement: right_down @@ -388,13 +388,13 @@ elements: right: 25px tap_action: action: call-service - action: amcrest.ptz_control + service: amcrest.ptz_control service_data: entity_id: camera.lakehouse movement: zoom_in hold_action: action: call-service - action: amcrest.ptz_control + service: amcrest.ptz_control data: entity_id: camera.lakehouse movement: zoom_out diff --git a/source/_integrations/apsystems.markdown b/source/_integrations/apsystems.markdown index 9aeee5b468e..8c155974c8f 100644 --- a/source/_integrations/apsystems.markdown +++ b/source/_integrations/apsystems.markdown @@ -18,20 +18,42 @@ ha_codeowners: - '@SonnenladenGmbH' --- -The **APsystems** {% term integration %} allows you to read the data from your [APsystems EZ1](https://emea.apsystems.com/diy/ez1/) microinverter. It also allows you to set the output limit to any number between 30 and 800 watts. -The following data is provided by the integration: +The **APsystems** {% term integration %} allows you to read the data from your [APsystems EZ1](https://emea.apsystems.com/diy/ez1/) microinverter. It also allows you to set the output limit to anything above 30 watts. + +## Sensors + +### Numerical sensors + +| Sensor ID | Unit | Description +|---|---| ---| +| total_power | W | Total current output of the inverter +| lifetime_production_p1 | kWh | Lifetime production of first input +| lifetime_production_p2 | kWh | Lifetime production of second input +| lifetime_production | kWh | Lifetime production of both inputs combined +| total_power_p1 | W | Current input on first input +| total_power_p2 | W | Current input on second input +| today_production | kWh | Today's production of both inputs combined +| today_production_p1 | kWh | Today's production of first input +| today_production_p2 | kWh | Today's production of second input + +### Binary sensors + +| Sensor ID | Description +|---|---| +| off_grid_status | On when the inverter is not connected to the power grid +| dc_1_short_circuit_error_status | Short circuit detected on first input +| dc_2_short_circuit_error_status | Short circuit detected on second input +| output_fault_status | Output because of any error deactivated + +## Settings + +| Setting ID | Type | Description +|---|---|---| +| inverter_status | switch | Enables or disables the inverter's output +| output_limit | number | Sets the max output of the inverter -- Lifetime production (Per input and in total) -- Current production (Per input and in total) -- Today's production (Per input and in total) -- Short circuit error status (per input) -- Off grid status -- Output status -The following data can be set by the integration: -- Maximal output in watts -- Inverter status (on or off) ## Prerequisites diff --git a/source/_integrations/aquacell.markdown b/source/_integrations/aquacell.markdown index edd0ea9f44e..1f884148aaa 100644 --- a/source/_integrations/aquacell.markdown +++ b/source/_integrations/aquacell.markdown @@ -1,5 +1,5 @@ --- -title: Aquacell +title: AquaCell description: Instructions on how to integrate AquaCell with Home Assistant. ha_category: - Sensor @@ -17,10 +17,12 @@ ha_integration_type: device AquaCell is a water-softening device. The **AquaCell** {% term integration %} allows you to monitor your AquaCell device in Home Assistant. You will need your Aquacell account information as used in the **AquaCell** app. +This integration also supports **Harvey** softeners. + {% include integrations/config_flow.md %}
-This integration only works with AquaCell devices which have an i-Lid and are configured through the 'Mijn AquaCell' mobile app. +This integration only works with AquaCell or Harvey devices which have an i-Lid and are configured through the 'Mijn AquaCell' or 'My Harvey' mobile app.
## Sensors diff --git a/source/_integrations/aranet.markdown b/source/_integrations/aranet.markdown index 10bd5e16891..67397f2502a 100644 --- a/source/_integrations/aranet.markdown +++ b/source/_integrations/aranet.markdown @@ -28,5 +28,6 @@ The Aranet integration will automatically discover devices once the [Bluetooth]( - [Aranet2](https://aranet.com/products/aranet2/) - [Aranet4](https://aranet.com/products/aranet4/) - [Aranet Radiation](https://aranet.com/products/aranet-radiation-sensor/) +- [Aranet Radon Plus](https://aranet.com/products/aranet-radon-sensor) The Aranet integration requires that your Aranet device is updated to at least firmware version 1.2.0 and has the "Smart Home integration" feature enabled. Both of these can be done within the settings portion of the Aranet Home mobile application on both Android and iOS. diff --git a/source/_integrations/artsound.markdown b/source/_integrations/artsound.markdown new file mode 100644 index 00000000000..05311b87fac --- /dev/null +++ b/source/_integrations/artsound.markdown @@ -0,0 +1,17 @@ +--- +title: ArtSound +description: Connect and control your ArtSound media players using the LinkPlay integration +ha_release: 2024.9 +ha_category: + - Media player +ha_domain: artsound +ha_integration_type: virtual +works_with: + - linkplay +--- + +The **ArtSound** {% term integration %} allows users to control their ArtSound media players through the **LinkPlay** {% term integration %}. + +[Learn more about LinkPlay in Home Assistant.](/integrations/linkplay/) + +{% include integrations/supported_brand.md %} diff --git a/source/_integrations/chacon_dio.markdown b/source/_integrations/chacon_dio.markdown index 06df560d3d9..0bbcbc645af 100644 --- a/source/_integrations/chacon_dio.markdown +++ b/source/_integrations/chacon_dio.markdown @@ -3,6 +3,7 @@ title: Chacon Dio description: Instructions on how to integrate your Chacon Dio devices within Home Assistant. ha_category: - Cover + - Switch ha_release: 2024.8 ha_iot_class: Cloud Push ha_config_flow: true @@ -11,15 +12,17 @@ ha_codeowners: ha_domain: chacon_dio ha_platforms: - cover + - switch ha_integration_type: integration --- [Chacon Dio devices](https://chacon.com/en/) are connected home devices that can be controlled via RF 433 MHz or Wi-Fi. This {% term integrations %} gives you access to the Wi-Fi connection so that Home Assistant can list your Chacon Dio devices and interact with them in real time, the same way the vendor's smartphone application does. -There is currently support for the following information within Home Assistant: +There is currently support for the following device types within Home Assistant: -- Cover devices (get statuses, move up, down, stop, and move to a given percentage) +- [Cover](#cover) +- [Switch](#switch) ## Prerequisites @@ -30,6 +33,25 @@ You will need to use the standalone app for this device to register a username a {% include integrations/config_flow.md %} +## Cover + +The cover platform integrates Chacon Dio devices to manage covers (like the REV-SHUTTER model) into Home Assistant, enabling control of the following: + +- get the **state** of the cover (connected or not, position and current movement) +- **Open/close/stop** the cover +- **Set position** of the cover (0-100%) + +## Switch + +The switch platform integrates Chacon Dio devices to manage switches (like the REV-SWITCH model) into Home Assistant, enabling control of the following: + +- get the **state** of the switch (connected or not and on/off state) +- **Turn on/off** the switch + +## Actions + +In rare cases, such as Wi-Fi interruptions, you may need to manually update the state of your devices. You can use the `homeassistant.update_entity` action to refresh the device state manually. + ## Tips You can use the [group integration](/integrations/group) to group entities as the application proposes (for example covers of the first floor). diff --git a/source/_integrations/coinbase.markdown b/source/_integrations/coinbase.markdown index 0f98291d6c1..e6fad373c00 100644 --- a/source/_integrations/coinbase.markdown +++ b/source/_integrations/coinbase.markdown @@ -18,7 +18,7 @@ ha_integration_type: integration The `coinbase` integration lets you access account balances and exchange rates from [Coinbase](https://coinbase.com). -You will need to obtain an API key from the API section in Coinbase's [User Settings](https://www.coinbase.com/settings/api) to use this integration. You need to select the account wallet or wallets (e.g. "BTC Wallet") that you wish to show in Home Assistant and give read access to `wallet:accounts` in order for the integration to access relevant data. It is worth noting that once you close the New API Key popup on Coinbase you will not be able to see the API Secret again. +You will need to obtain an API key from the API section in Coinbase's [User Settings](https://www.coinbase.com/settings/api) to use this integration. Your API key and secret should be of the form `organizations/XXXXX/apiKeys/XXXXX` and `-----BEGIN EC PRIVATE KEY-----\nXXXXXXXXXXXXXXXXX\n-----END EC PRIVATE KEY-----\n` respectively. When creating your API key, it is highly recommended to ensure that only the **View** box is ticked in the **API restrictions** section. {% include integrations/config_flow.md %} diff --git a/source/_integrations/drop_connect.markdown b/source/_integrations/drop_connect.markdown index f770e1f5704..d8abe554a9d 100644 --- a/source/_integrations/drop_connect.markdown +++ b/source/_integrations/drop_connect.markdown @@ -37,6 +37,7 @@ There is currently support for the following DROP products within Home Assistant - **Pump Controller**: smart replacement for an FSG pressure switch. - **RO Filter**: reverse osmosis drinking water filtration. - **Salt Sensor**: alerts when the salt level in the softener brine tank is low. +- **Alert**: monitors both the water level in a sump pit and electrical power to the sump pump. ### Prerequisites diff --git a/source/_integrations/fujitsu_fglair.markdown b/source/_integrations/fujitsu_fglair.markdown new file mode 100644 index 00000000000..b3a6628b751 --- /dev/null +++ b/source/_integrations/fujitsu_fglair.markdown @@ -0,0 +1,36 @@ +--- +title: Fujitsu FGLair +description: Control your Fujitsu heat pump or air conditioner that uses the FGLair app +ha_category: + - Climate +ha_release: 2024.9 +ha_domain: fujitsu_fglair +ha_integration_type: integration +ha_codeowners: + - '@crevetor' +ha_config_flow: true +ha_platforms: + - climate +ha_iot_class: "Cloud Polling" +--- + +The {{ page.title }} {% term integration %} provides support for Fujitsu heat pumps and air conditioners that use the FGLair app. +To find out which app to use for your heat pump, check [the Fujitsu FGLair FAQ](https://www.fujitsu-general.com/global/support/faq/airstage-mobile/0127.html). + +## Prerequisites + +First, set up your device in the FGLair app before using this integration. +To configure this integration, you will need the credentials (login and password) used to connect to the FGLair application. + +{% include integrations/config_flow.md %} + +## Climate + +This integration supports the following functionalities (if the devices support them): + +- [`set_hvac_mode`](/integrations/climate/#action-climateset_hvac_mode) +- [`target temperature`](/integrations/climate#action-climateset_temperature) +- [`turn on/off`](/integrations/climate#action-climateturn_on) +- [`fan mode`](/integrations/climate#action-climateset_fan_mode) +- [`swing mode`](/integrations/climate#action-climateset_swing_mode) + diff --git a/source/_integrations/homematicip_cloud.markdown b/source/_integrations/homematicip_cloud.markdown index 4dc697d794e..5b5b696539a 100644 --- a/source/_integrations/homematicip_cloud.markdown +++ b/source/_integrations/homematicip_cloud.markdown @@ -219,6 +219,7 @@ Executable by all users: - `homematicip_cloud.deactivate_eco_mode`: Deactivates the eco mode immediately. - `homematicip_cloud.deactivate_vacation`: Deactivates the vacation mode immediately. - `homematicip_cloud.set_active_climate_profile`: Set the active climate profile index. +- `homematicip_cloud.set_home_cooling_mode`: Enable or disable cooling for the home. Executable by administrators or within the context of an automation: - `homematicip_cloud.dump_hap_config`: Dump the configuration of the Homematic IP Access Point(s). @@ -318,6 +319,16 @@ action: entity_id: switch.livingroom ``` +Enable (or disable) Cooling mode for the entire home. Disabling Cooling mode will revert to Heating. + +```yaml +... +action: + action: homematicip_cloud.set_home_cooling_mode + data: + cooling: True + accesspoint_id: 3014xxxxxxxxxxxxxxxxxxxx +``` ## Additional info diff --git a/source/_integrations/husqvarna_automower.markdown b/source/_integrations/husqvarna_automower.markdown index ed7364cb4f1..9dba15565df 100644 --- a/source/_integrations/husqvarna_automower.markdown +++ b/source/_integrations/husqvarna_automower.markdown @@ -107,7 +107,7 @@ The integration will create the following binary sensors: ### Button (if available) -The integration will create a button entity for confirming minor mower errors. This entity is disabled by default. You have to enable it manually. The API can't detect if the mower has the capability to confirm minor errors remotely. Before enabling this function, refer to the mower documentation. +The integration will create a button entity for confirming minor mower errors. ### Device tracker (if available) diff --git a/source/_integrations/ista_ecotrend.markdown b/source/_integrations/ista_ecotrend.markdown index 254958515c7..04de97bf231 100644 --- a/source/_integrations/ista_ecotrend.markdown +++ b/source/_integrations/ista_ecotrend.markdown @@ -34,3 +34,37 @@ The **ista EcoTrend** integration exposes the last monthly readings as sensors. - **Water costs**: estimated costs in EUR Not all values may be available in your ista EcoTrend account. Cost estimation is an optional service that has to be booked by your property manager. Therefore, the cost sensors are deactivated by default. + +## Long-term statistics + +The **ista EcoTrend** integration allows you to import all your historical consumption readings from your ista EcoTrend account into long-term statistic entities. These entities can be displayed in your Home Assistant energy dashboard, providing a comprehensive view of your consumption data over time. + +### Identifying ista EcoTrend statistic entities + +The statistic entities imported via this integration have a `ista_ecotrend:` prefix. This prefix helps you identify and distinguish these entities from other sensor statistics when setting up the long-term statistics in the energy dashboard. + +### Setting up long-term statistics in the energy dashboard + +To set up the **ista EcoTrend** long-term statistics in your Home Assistant energy dashboard, follow these steps: + +- **Access the energy configuration panel** + - Go to the [energy configuration panel](https://my.home-assistant.io/redirect/config_energy/) of your Home Assistant instance. + + [![Open your Home Assistant instance and show your energy configuration panel.](https://my.home-assistant.io/badges/config_energy.svg)](https://my.home-assistant.io/redirect/config_energy/) + +- **Add heating energy usage** + - Go to **Gas consumption**. + - Select **Add gas source**. + - Choose your **Heating energy** entity (for example, `ista_ecotrend:luxemburger_str_1_heating_energy`). + - For cost tracking, select the **Use an entity tracking the total costs** option. + - Select the corresponding **Heating costs** entity (for example, `ista_ecotrend:luxemburger_str_1_heating_cost`). +- **Add hot water energy usage** + - To track hot water energy usage and costs (for example, `ista_ecotrend:luxemburger_str_1_hot_water_energy` and `ista_ecotrend:luxemburger_str_1_hot_water_cost`), repeat the above steps for your **Hot water energy** and **Hot water costs** entities. +- **Add hot water consumption** + - Go to **Water consumption**. + - Select **Add water source**. + - Choose the **Hot water** entity (for example, `ista_ecotrend:luxemburger_str_1_hot_water`). + - For cost tracking, select the **Use an entity tracking the total costs** option. + - Select the corresponding **Hot water costs** entity (for example, `ista_ecotrend:luxemburger_str_1_hot_water_cost`). +- **Add water consumption** + - To track cold water consumption and costs (for example, `ista_ecotrend:luxemburger_str_1_water` and `ista_ecotrend:luxemburger_str_1_water_cost`), repeat the above steps for your **Water** and **Water costs** entities. diff --git a/source/_integrations/knx.markdown b/source/_integrations/knx.markdown index e742753c20e..9760f21cf40 100644 --- a/source/_integrations/knx.markdown +++ b/source/_integrations/knx.markdown @@ -791,29 +791,28 @@ knx: ``` `operation_mode_frost_protection_address` / `operation_mode_night_address` / `operation_mode_comfort_address` / `operation_mode_standby_address` are not necessary if `operation_mode_address` is specified. -If the actor doesn't support explicit state group objects the `*_state_address` can be configured with the same group address as the writeable `*_address`. The read flag for the `*_state_address` group object has to be set in ETS to support initial reading e.g., when starting Home Assistant. The following values are valid for the `heat_cool_address` and the `heat_cool_state_address`: - `0` (cooling) - `1` (heating) -The following values are valid for the Home Assistant [Climate](/integrations/climate/) `hvac_mode` attribute. Supported values for your KNX thermostats can be specified via `controller_modes` configuration variable: +Supported HVAC modes for your KNX thermostats are found automatically. This can be overridden by using the `controller_modes` configuration variable. The following values are valid controller modes: -- `off` (maps internally to `HVAC_MODE_OFF` within Home Assistant) -- `auto` (maps internally to `HVAC_MODE_AUTO` within Home Assistant) -- `heat` (maps internally to `HVAC_MODE_HEAT` within Home Assistant) -- `cool` (maps internally to `HVAC_MODE_COOL` within Home Assistant) -- `fan_only` (maps internally to `HVAC_MODE_FAN_ONLY` within Home Assistant) -- `dehumidification` (maps internally to `HVAC_MODE_DRY` within Home Assistant) +- `off` +- `auto` +- `heat` +- `cool` +- `fan_only` +- `dehumidification` -The following presets are valid for the Home Assistant [Climate](/integrations/climate/) `preset_mode` attribute. Supported values for your KNX thermostats can be specified via `operation_modes` configuration variable: +Supported preset modes for your KNX thermostats are found automatically. This can be overridden by using the `operation_modes` configuration variable. The following values are valid operation modes: -- `auto` (maps to `none` of the Home Assistant [Climate](/integrations/climate/) `preset_mode` attribute) -- `comfort` (maps to `comfort` of the Home Assistant [Climate](/integrations/climate/) `preset_mode` attribute) -- `standby` (maps to `away` of the Home Assistant [Climate](/integrations/climate/) `preset_mode` attribute) -- `economy` (maps to `sleep` of the Home Assistant [Climate](/integrations/climate/) `preset_mode` attribute) -- `building_protection` (maps to `eco` of the Home Assistant [Climate](/integrations/climate/) `preset_mode` attribute) +- `auto` +- `comfort` +- `standby` +- `economy` +- `building_protection` {% configuration %} name: @@ -918,11 +917,11 @@ operation_mode_standby_address: required: false type: [string, list] operation_modes: - description: Overrides the supported operation modes. Provide the supported `preset_mode` values for your device. + description: Overrides the supported operation modes. Provide the supported `preset_modes` value for your device. required: false type: list controller_modes: - description: Overrides the supported controller modes. Provide the supported `hvac_mode` values for your device. + description: Overrides the supported controller modes. Provide the supported `hvac_modes` value for your device. required: false type: list default_controller_mode: diff --git a/source/_integrations/manual.markdown b/source/_integrations/manual.markdown index 2d795a6fa99..e08e4c85ac3 100644 --- a/source/_integrations/manual.markdown +++ b/source/_integrations/manual.markdown @@ -34,6 +34,10 @@ name: required: false type: string default: HA Alarm +unique_id: + description: Create a unique id for the entity. + required: false + type: string code: description: > If defined, specifies a code to enable or disable the alarm in the frontend. @@ -147,6 +151,7 @@ In the configuration example below: alarm_control_panel: - platform: manual name: Home Alarm + unique_id: a_very_unique_id code: "1234" arming_time: 30 delay_time: 20 diff --git a/source/_integrations/mastodon.markdown b/source/_integrations/mastodon.markdown index e90b1e3b70a..fa7e597b420 100644 --- a/source/_integrations/mastodon.markdown +++ b/source/_integrations/mastodon.markdown @@ -10,7 +10,9 @@ ha_codeowners: ha_domain: mastodon ha_iot_class: Cloud Push ha_platforms: + - diagnostics - notify + - sensor ha_integration_type: service ha_config_flow: true --- @@ -24,6 +26,10 @@ If you want to grant only required accesses, uncheck all checkboxes then check o {% include integrations/config_flow.md %} +## Sensors + +The integration will create sensors for the Mastodon account showing total followers, following, and posts. + ## Notifications The integration will create a `notify` action matching the name of the integration entry. diff --git a/source/_integrations/motion_blinds.markdown b/source/_integrations/motion_blinds.markdown index 3bc41561610..14dd9a1d411 100644 --- a/source/_integrations/motion_blinds.markdown +++ b/source/_integrations/motion_blinds.markdown @@ -10,6 +10,7 @@ ha_codeowners: - '@starkillerOG' ha_config_flow: true ha_platforms: + - button - cover - sensor ha_dhcp: true @@ -95,6 +96,12 @@ In the official Bloc Blinds app go to settings (three bars > gear icon), go to t Click the about page of the connector app 5 times to get the key ([iOS app](https://apps.apple.com/us/app/connector/id1344058317), [Android app](https://play.google.com/store/apps/details?id=com.smarthome.app.connector)). +## Favorite position + +A **Go to favorite position** button entity allows you to move the blind to its favorite position. For this entity to show up, you first need to set the blind's favorite position in the mobile app, using a remote or physical buttons on the blind. Refer to the manual of your specific blind for instructions. + +The **Set current position as favorite** button entity allows you to change the favorite position. For this to work, the blind first needs to be put in programming mode by shortly pressing the reset button on the blind. It will start stepping (moving a small bit up-down repeatedly). You can then use the **Set current position as favorite** entity. After you are done, shortly press the reset button again to exit the programming mode. + ## Top Down Bottom Up (TDBU) blinds TDBU blinds consist of two bars controlled by two motors designated by Top and Bottom with fabric in between. diff --git a/source/_integrations/mqtt.markdown b/source/_integrations/mqtt.markdown index 8244df55fc5..ccb9af6d7c7 100644 --- a/source/_integrations/mqtt.markdown +++ b/source/_integrations/mqtt.markdown @@ -119,6 +119,15 @@ MQTT (aka MQ Telemetry Transport) is a machine-to-machine or "Internet of Things Your first step to get MQTT and Home Assistant working is to choose a broker. +The easiest option is to install the official Mosquitto Broker add-on. You can choose to set up and configure this add-on automatically when you set up the MQTT integration. Home Assistant will automatically generate and assign a safe username and password, and no further attention is required. This also works if you have already set up this add-on yourself in advance. +You can set up additional logins for your MQTT devices and services using the [Mosquitto add-on configuration](https://my.home-assistant.io/create-link/?redirect=supervisor_addon&addon=core_mosquitto). + +{% important %} +When MQTT is set up with the official Mosquitto MQTT broker add-on, the broker's credentials are generated and kept secret. If the official Mosquitto MQTT broker needs to be re-installed, make sure you save a copy of the add-on user options, like the additional logins. After re-installing the add-on, the MQTT integration will automatically update the new password for the re-installed broker. It will then reconnect automatically. +{% endimportant %} + + Alternatively, you can use a different MQTT broker that you configure yourself, ensuring it is compatible with Home Assistant. + ## Setting up a broker While public MQTT brokers are available, the easiest and most private option is running your own. @@ -1085,10 +1094,19 @@ The MQTT integration will register the `mqtt.publish` action, which allows publi | ---------------------- | -------- | ------------------------------------------------------------ | | `topic` | no | Topic to publish payload to. | | `payload` | no | Payload to publish. | +| `evaluate_payload` | yes | If a `bytes` literal in `payload` should be evaluated to publish raw data. (default: false)| | `qos` | yes | Quality of Service to use. (default: 0) | | `retain` | yes | If message should have the retain flag set. (default: false) | -### Publish action data examples + +{% note %} +When `payload` is rendered from [template](/docs/configuration/templating/#using-templates-with-the-mqtt-integration) in a YAML script or automation, and the template renders to a `bytes` literal, the outgoing MQTT payload will only be sent as `raw` data, if the `evaluate_payload` option flag is set to `true`. +{% endnote %} + +{% important %} +You must include either `topic` or `topic_template`, but not both. If providing a payload, you need to include either `payload` or `payload_template`, but not both. +{% endimportant %} + ```yaml topic: homeassistant/light/1/command diff --git a/source/_integrations/nest.markdown b/source/_integrations/nest.markdown index a7dab259747..10bfd6fb3b9 100644 --- a/source/_integrations/nest.markdown +++ b/source/_integrations/nest.markdown @@ -5,6 +5,7 @@ ha_category: - Camera - Climate - Doorbell + - Event - Hub - Media source - Sensor @@ -20,6 +21,7 @@ ha_platforms: - camera - climate - diagnostics + - event - sensor ha_integration_type: integration --- @@ -31,6 +33,7 @@ There is currently support for the following device types within Home Assistant: - [Climate](#climate) - [Sensor](#sensor) - [Camera](#camera) +- [Event](#event) Cameras and doorbells use [Automation and device triggers](#automation-and-device-triggers) for events and a [media source](#media-source) for capturing media images on supported devices. Other device types like Smoke and CO Alarms or Security systems are not currently supported by the SDM API. @@ -260,6 +263,8 @@ Home Assistant supports all SDM API features. However, every Camera or Doorbell - **RTSP**: These devices have an HLS stream served by the Home Assistant Core. These cameras support server-side `camera` actions like stream recording or image preview. See [Low Latency HLS](/integrations/stream#ll-hls) as a great option to enable to reduce stream latency. - **WebRTC**: These devices support direct browser to camera communication and a super low latency stream. A [Picture Glance Card](/dashboards/picture-glance/) can show the live stream in the grid with the *Camera View* set to `live` (not recommended for battery-powered cameras). `camera` actions like stream recording are *not supported*. +Given a camera named `Front Yard`, then the camera is created with a name such as `camera.front_yard`. + {% note %} This feature is enabled by the following permissions: @@ -269,10 +274,10 @@ This feature is enabled by the following permissions: {% endnote %} +All cameras also expose event entities for automation. Some camera models also +support capturing media (snapshots or clips) through device triggers. The table below summarizes the [supported SDM API features](https://developers.google.com/nest/device-access/supported-devices) for each device. -All cameras have motion and person triggers, however only some support capturing snapshots for events. The table below summarizes the [Supported SDM API features](https://developers.google.com/nest/device-access/supported-devices) for each device. - -| Device | Live Stream | Triggers / Events | Media Source
for Triggers / Events | +| Device | Live stream | Event entities / triggers | Media source
for triggers | | -------------------------------------------------------------------------------- | :---------------: | :--------------------------------: | :------------------------------------: | | Nest Cam (indoor, wired)
Nest Cam (outdoor, battery) | WebRTC | Motion
Person | N/A | | Nest Cam Indoor
Nest Cam IQ Indoor
Nest Cam IQ Outdoor
Nest Cam Outdoor | RTSP
Recording | Motion
Person
Sound | Snapshot (jpg) | @@ -282,13 +287,26 @@ All cameras have motion and person triggers, however only some support capturing | Nest Doorbell (wired, 2nd gen) | WebRTC | Motion
Person
Chime | Clip Preview (mp4, gif) | | Nest Hub Max | RTSP
Recording | Motion
Person
Sound
| Snapshot (jpg) | -Given a camera named `Front Yard` then the camera is created with a name such as `camera.front_yard`. +## Event -## Automation and device triggers +All doorbells and cameras support event entities. See the [Event](https://www.home-assistant.io/integrations/event/) integration documentation for more about how to use event entities in automations. + +There are two classes of event entities that are available based on the above camera features: + +- `motion` for cameras that support any of the event types `camera_motion`, `camera_person`, or `camera_sound` +- `doorbell` for all cameras that are doorbells and support `doorbell_chime` events + +Nest event entities are updated immediately when an event message is received +without waiting for any media to be fetched. See Device Triggers for media support. + +## Device Triggers The Nest integration provides [device triggers](/docs/automation/trigger/#device-triggers) to enable automation in Home Assistant. You should review the [Automating Home Assistant](/getting-started/automation/) getting started guide on automations or the [Automation](/docs/automation/) documentation for full details. +Device triggers will wait to fire after any media associated with the event is downloaded. Use an +event entity for immediate notifications without media. + {% my automations badge %} ![Screenshot Device Triggers](/images/integrations/nest/device_triggers.png) @@ -305,13 +323,18 @@ This is an example of what the `nest_event` payload looks like for a Device Trig "type": "doorbell_chime", "timestamp": "2022-01-26T04:56:54.031000+00:00", "nest_event_id": "EXAMPLE_EVENT_ID", + "attachment": { + "image": "/api/nest/event_media/DEVICE_ID/EVENT_ID/thumbnail", + "video": "/api/nest/event_media/DEVICE_ID/EVENT_ID", + } "zones": ["Zone 1"], }, } ``` - `device_id`: The Home Assistant device identifier for the camera -- `nest_event_id`: is an opaque identifier that can be used with the Media Source Attachments described below for supported cameras. +- `nest_event_id`: is an opaque identifier that identifies the event. +- `attachment`: May be present if the device supports snapshots or clips and depends on the device's capabilities. This is a URL where media can be fetched from the media source. - `zones`: Zones triggering the event if available. Zones are configured in the Google Home App, though not supported by all cameras. Events in the area outside of a named zone will be an empty zone name. {% enddetails %} @@ -327,7 +350,7 @@ This feature is enabled by the following permissions: - *Other permissions and notification settings in the Nest or Google Home apps*. {% endnote %} -### Google Home App Notification Settings +## Google Home App Notification Settings The Google Home App Notifications settings control not only which notifications are sent to your phone, but also what gets published to the Pub/Sub feed. @@ -346,7 +369,6 @@ If you are still not getting notifications, you can read this [troubleshooting g {% details "Google Home App Notification Settings" %} - | Google Home App Setting | Notes | | ------------------------ | :---------------------------------------------------------------------: | | Notifications: Push | Required for any detection event to be published | @@ -362,7 +384,7 @@ If you are still not getting notifications, you can read this [troubleshooting g The Nest [media source](/integrations/media_source) platform allows you to browse clips for recent camera events. Home Assistant is not intended to be a Network Video Recorder (NVR) platform, however, basic support for capturing recent events is supported. -The table above describes which devices support event image snapshots or 10-frame mp4 video clips for recent events. +The table above describes which devices support image snapshots or 10-frame mp4 video clips. ### Media Attachments @@ -372,7 +394,7 @@ The Media Source APIs can be used in [Companion App Attachments](https://compani - `/api/nest/event_media/DEVICE_ID/EVENT_ID/thumbnail`: A thumbnail preview of the media, which supports image snapshots (jpg) or clip previews (gif) depending on the camera type. -You can use the event payload fields `device_id` and `event_id` in an [automation](/getting-started/automation/) to send a notification from an [actions](/getting-started/automation-action/) as shown in the examples below. +You can use the Nest Device Trigger payload fields `attachment.image` or `attachment.video`in an [automation](/getting-started/automation/) to send a notification from an [actions](/getting-started/automation-action/) as shown in the examples below. {% details "Example Action: Clip Preview (mp4) attachment for iOS" %} @@ -386,10 +408,8 @@ data: message: Doorbell Pressed title: Someone pressed the doorbell data: - image: >- - /api/nest/event_media/{{ trigger.event.data.device_id }}/{{ trigger.event.data.nest_event_id }}/thumbnail - video: >- - /api/nest/event_media/{{ trigger.event.data.device_id }}/{{ trigger.event.data.nest_event_id }} + image: {{ trigger.event.data.attachment.image }} + video: {{ trigger.event.data.attachment.video }} mode: single ``` @@ -409,8 +429,7 @@ data: message: Doorbell Pressed title: Someone pressed the doorbell data: - image: >- - /api/nest/event_media/{{ trigger.event.data.device_id }}/{{ trigger.event.data.nest_event_id }}/thumbnail + image: {{ trigger.event.data.attachment.image }} ``` {% endraw %} @@ -429,8 +448,7 @@ data: message: Doorbell Pressed title: Someone pressed the doorbell data: - image: >- - /api/nest/event_media/{{ trigger.event.data.device_id }}/{{ trigger.event.data.nest_event_id }}/thumbnail + image: {{ trigger.event.data.attachment.image }} ``` {% endraw %} diff --git a/source/_integrations/nice_go.markdown b/source/_integrations/nice_go.markdown new file mode 100644 index 00000000000..b26348d53e4 --- /dev/null +++ b/source/_integrations/nice_go.markdown @@ -0,0 +1,46 @@ +--- +title: Nice G.O. +description: Control Nice G.O. garage doors +ha_release: '2024.9' +ha_category: + - Cover + - Event + - Light + - Switch +ha_iot_class: Cloud Push +ha_config_flow: true +ha_codeowners: + - '@IceBotYT' +ha_domain: nice_go +ha_platforms: + - cover + - diagnostics + - event + - light + - switch +ha_integration_type: integration +--- + +The **Nice G.O.** {% term integration %} lets you control Nice G.O. garage doors through Home Assistant. Device names in Home Assistant are generated based on the names defined in your Nice G.O. mobile app. + +## Prerequisites + +Make sure you have a working account with the Nice G.O. app and have your email and password ready. + +{% include integrations/config_flow.md %} + +## Cover + +Garage doors linked to your Nice G.O. account will appear as covers. + +## Event + +The barrier obstructed event entity will be triggered whenever the barrier gets obstructed. This could be triggered by anything that results in the closure being unsuccessful. This may include beam block during closure, beam block before closure, and an object in the way. + +## Light + +Lights on your garage door will appear as lights. + +## Switch + +A switch for turning vacation mode on and off will be made available for each device. Vacation mode prevents the operation of the door from physical control points such as a wall station, wireless keypad, remote control, or HomeLink. It can still be controlled from Home Assistant. diff --git a/source/_integrations/ollama.markdown b/source/_integrations/ollama.markdown index 5770c475bbc..ca226ba54fe 100644 --- a/source/_integrations/ollama.markdown +++ b/source/_integrations/ollama.markdown @@ -45,6 +45,8 @@ Instructions: Control Home Assistant: description: If the model is allowed to interact with Home Assistant. It can only control or provide information about entities that are [exposed](/voice_control/voice_remote_expose_devices/) to it. This feature is considered experimental and see [Controlling Home Assistant](#controlling-home-assistant) below for details on model limitations. +Context window size: + description: "The context window size is the number of tokens the model can take as input. Home Assistant defaults to 8k, which is larger than the default value in Ollama Server (2k), and you may adjust it based on the maximum context size of the specific model used. A larger value will better support larger homes with more entities, and smaller values may lower Ollama server RAM usage." Max history messages: description: Maximum number of messages to keep for each conversation (0 = no limit). Limiting this value will cause older messages in a conversation to be dropped. diff --git a/source/_integrations/opower.markdown b/source/_integrations/opower.markdown index 6979a117aee..9d4f620ac7c 100644 --- a/source/_integrations/opower.markdown +++ b/source/_integrations/opower.markdown @@ -41,6 +41,7 @@ More than 175 utilities use Opower. Currently only the following utilities are s - PECO Energy Company (PECO) - Potomac Electric Power Company (Pepco) - Mercury NZ Limited +- National Grid NY Upstate - Pacific Gas & Electric (PG&E) - Portland General Electric (PGE) - Puget Sound Energy (PSE) diff --git a/source/_integrations/prometheus.markdown b/source/_integrations/prometheus.markdown index d4c88d88655..8fa1bb1287f 100644 --- a/source/_integrations/prometheus.markdown +++ b/source/_integrations/prometheus.markdown @@ -209,4 +209,4 @@ For example: Metrics are exported only for the following domains: -`automation`, `binary_sensor`, `climate`, `cover`, `counter`, `device_tracker`, `fan`, `humidifier`, `input_boolean`, `input_number`, `light`, `lock`, `number`, `person`, `sensor`, `update`, `switch` +`alarm_control_panel`, `automation`, `binary_sensor`, `climate`, `cover`, `counter`, `device_tracker`, `fan`, `humidifier`, `input_boolean`, `input_number`, `light`, `lock`, `number`, `person`, `sensor`, `switch`, `update` diff --git a/source/_integrations/reolink.markdown b/source/_integrations/reolink.markdown index ead874547cc..a2cf9a8eab7 100644 --- a/source/_integrations/reolink.markdown +++ b/source/_integrations/reolink.markdown @@ -178,6 +178,15 @@ Depending on the supported features of the camera, select entities are added for **Play quick reply messages**/**Auto quick reply messages** can be recorded in the Reolink phone app where a name is also supplied. New or updated quick reply messages will be loaded into Home Assistant at the start of the integration. When adding new quick reply messages, please restart the Reolink integration. +### Action reolink.play_chime + +To play a ringtone on a Reolink chime, the `reolink.play_chime` action can be used. + +| Data attribute | Optional | Description | +| ---------------------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------- | +| `device_id` | no | List of device ids of the Reolink Chimes to control. For example, `- 12a34b56c7d8ef9ghijklm0n1op2345q`. | +| `ringtone` | no | The ringtone to play. For example `operetta`. | + ## Siren entities If the camera supports a siren, a siren entity will be created. diff --git a/source/_integrations/russound_rio.markdown b/source/_integrations/russound_rio.markdown index 4b1b81636c9..3ce410b3bde 100644 --- a/source/_integrations/russound_rio.markdown +++ b/source/_integrations/russound_rio.markdown @@ -6,6 +6,7 @@ ha_category: ha_release: 0.49 ha_iot_class: Local Push ha_domain: russound_rio +ha_quality_scale: silver ha_platforms: - media_player ha_codeowners: diff --git a/source/_integrations/sensor.mqtt.markdown b/source/_integrations/sensor.mqtt.markdown index ddd77a03d00..8f8bc9927b4 100644 --- a/source/_integrations/sensor.mqtt.markdown +++ b/source/_integrations/sensor.mqtt.markdown @@ -165,6 +165,10 @@ object_id: description: Used instead of `name` for automatic generation of `entity_id` required: false type: string +options: + description: List of allowed sensor state value. An empty list is not allowed. The sensor's `device_class` should be set to `enum`. Cannot be used together with `state_class` or `unit_of_measurement`. + required: false + type: list payload_available: description: The payload that represents the available state. required: false diff --git a/source/_integrations/shelly.markdown b/source/_integrations/shelly.markdown index d29db29ce0d..1447b9e0b0b 100644 --- a/source/_integrations/shelly.markdown +++ b/source/_integrations/shelly.markdown @@ -73,7 +73,7 @@ The list below will help you diagnose and fix the problem: ## Shelly device configuration (generation 2 and 3) -Generation 2 and 3 devices use the `RPC` protocol to communicate with the integration. **Battery operated devices** (even if USB connected) need manual outbound WebSocket configuration, Navigate to the local IP address of your Shelly device, **Settings** >> **Connectivity** >> **Outbound WebSocket** and check the box **Enable Outbound WebSocket**, under server enter the following address: +Generation 2 and 3 devices use the `RPC` protocol to communicate with the integration. **Battery-operated devices** (even if USB connected) may need manual outbound WebSocket configuration if Home Assistant cannot correctly determine your instance's internal URL or the outbound WebSocket was previously configured for a different Home Assistant instance. In this case, navigate to the local IP address of your Shelly device, **Settings** >> **Connectivity** >> **Outbound WebSocket** and check the box **Enable Outbound WebSocket**, under server enter the following address: `ws://` + `Home_Assistant_local_ip_address:Port` + `/api/shelly/ws` (for example: `ws://192.168.1.100:8123/api/shelly/ws`), click **Apply** to save the settings. In case your installation is set up to use SSL encryption (HTTP**S** with certificate), an additional `s` needs to be added to the WebSocket protocol, too, so that it reads `wss://` (for example: `wss://192.168.1.100:8123/api/shelly/ws`). diff --git a/source/_integrations/smlight.markdown b/source/_integrations/smlight.markdown new file mode 100644 index 00000000000..2301075153d --- /dev/null +++ b/source/_integrations/smlight.markdown @@ -0,0 +1,47 @@ +--- +title: SMLIGHT SLZB +description: The SMLIGHT SLZB integration allows users to monitor and manage their SMLIGHT SLZB-06x devices from directly within Home Assistant. +ha_category: + - Sensor +ha_release: 2024.9 +ha_iot_class: Local Polling +ha_config_flow: true +ha_domain: smlight +ha_zeroconf: true +ha_platforms: + - sensor +ha_codeowners: + - '@tl-sl' +ha_integration_type: device +--- + +The [SMLIGHT](https://smlight.tech) SLZB-06x Ethernet Zigbee coordinators +provide a convenient way to add Zigbee to your smart home setup. + +The **SMLIGHT SLZB** {% term integration %} allows users to monitor and manage their SLZB-06x devices +directly from within Home Assistant and to directly access many of the +features found in the SMLIGHT web UI. You can also use these in your automations. + +## Prerequisites + +You need a supported SLZB-06 adapter. + + This integration has been tested with the following devices: + +- [SLZB-06](https://smlight.tech/product/slzb-06) +- [SLZB-06M](https://smlight.tech/product/slzb-06m) +- [SLZB-06p7](https://smlight.tech/product/slzb-06p7) +- [SLZB-06p10](https://smlight.tech/product/slzb-06p10/) + +{% include integrations/config_flow.md %} + +## Integration entities + +The following sensors will be created: + +- **Core Temperature** - Temperature of core ESP32 +- **Zigbee Temperature** - Temperature of Zigbee CC2652 or EFR32 chip +- **Core Uptime** - Uptime of Core device +- **Zigbee Uptime** - Uptime of Zigbee connection to ZHA/Z2M +- **RAM Usage** - Monitor RAM Usage +- **FS Usage** - Monitor filesystem usage diff --git a/source/_integrations/sonos.markdown b/source/_integrations/sonos.markdown index b86a2ff9801..5a5e439eea0 100644 --- a/source/_integrations/sonos.markdown +++ b/source/_integrations/sonos.markdown @@ -342,6 +342,47 @@ Force start playing the queue, allows switching from another stream (such as rad | `entity_id` | yes | String or list of `entity_id`s that will start playing. It must be the coordinator if targeting a group. | `queue_position` | yes | Position of the song in the queue to start playing from, starts at 0. +### Action `sonos.get_queue` + +Returns the media_players queue. + +| Data attribute | Optional | Description | +| ---------------------- | -------- | ----------- | +| `entity_id` | no | media_player entity id. | + +This example script does the following: get the queue, loop through in reverse order, and remove media containing the words "holiday". + +{% raw %} + +```yaml + - action: sonos.get_queue + target: + entity_id: media_player.living_room + response_variable: queue + - variables: + queue_len: '{{ queue["media_player.living_room"] | length }}' + - repeat: + sequence: + - variables: + title: '{{ queue["media_player.living_room"][queue_len - repeat.index]["media_title"].lower() }}' + album: '{{ queue["media_player.living_room"][queue_len - repeat.index]["media_album_name"].lower() }}' + position: '{{ queue_len - repeat.index }}' + - if: + - '{{ "holiday" in title or "holiday" in album }}' + then: + - action: sonos.remove_from_queue + target: + entity_id: media_player.living_room + data: + queue_position: '{{position}}' + until: + - condition: template + value_template: '{{queue_len == repeat.index}}' + +``` + +{% endraw %} + ### Action `sonos.remove_from_queue` Removes an item from the queue. diff --git a/source/_integrations/swiss_public_transport.markdown b/source/_integrations/swiss_public_transport.markdown index dd666ccf961..50ec1f6787b 100644 --- a/source/_integrations/swiss_public_transport.markdown +++ b/source/_integrations/swiss_public_transport.markdown @@ -25,6 +25,21 @@ The [Stationboard](https://transport.opendata.ch/examples/stationboard.html) web The public timetables are coming from [Swiss public transport](https://transport.opendata.ch/). -### Defining a custom polling interval +## Actions + +The Swiss public transport integration has the following action: + +- `swiss_public_transport.fetch_connections` + +### Action `swiss_public_transport.fetch_connections` + +Fetch the connections for a specific instance. + +| Data attribute | Optional | Description | +|------------------------|----------|----------------------------------------------------------| +| `config_entry_id` | No | The ID of the Swiss public transport config entry to get data from. For example, in YAML: `config_entry_id: zurich_geneva` or in UI `Instance: zurich_geneva`)| +| `limit` | Yes | The number of connections to fetch. (default: 3, range: [1,15])| + +## Defining a custom polling interval {% include common-tasks/define_custom_polling.md %} diff --git a/source/_integrations/technove.markdown b/source/_integrations/technove.markdown index 140bdc3cbfd..f524bae9633 100644 --- a/source/_integrations/technove.markdown +++ b/source/_integrations/technove.markdown @@ -64,3 +64,4 @@ The {% term integration %} adds the following switch: | Name | Description | | ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Auto-charge mode | When enabled, vehicles will start charging automatically when plugged in. When turned off, charging will need to be manually started each time a vehicle is plugged in. Note: Disabling auto-charge mode does not interrupt an ongoing charging session. | +| Charging enabled | When enabled, vehicles will be able to charge. Disable it to stop a vehicle from charging. Note: This switch can only be used when auto-charge mode is disabled. | diff --git a/source/_integrations/template.markdown b/source/_integrations/template.markdown index c51f0797b49..d055e8733a4 100644 --- a/source/_integrations/template.markdown +++ b/source/_integrations/template.markdown @@ -41,7 +41,9 @@ related: The `template` integration allows creating entities which derive their values from other data. This is done by specifying [templates](/docs/configuration/templating/) for properties of an entity, like the name or the state. -Sensors, binary (on/off) sensors, buttons, images, numbers and selects are covered on this page. For other types, please see the specific pages: +Sensors, binary (on/off) sensors, buttons, images, numbers, and selects are covered on this page. They can be configured using [UI](#configuration) or [YAML](#yaml-configuration) file. + +For other types, please see the specific pages: - [Alarm control panel](/integrations/alarm_control_panel.template/) - [Cover](/integrations/cover.template/) @@ -52,16 +54,6 @@ Sensors, binary (on/off) sensors, buttons, images, numbers and selects are cover - [Vacuum](/integrations/vacuum.template/) - [Weather](/integrations/weather.template/) -Sensor, binary sensor, button, image and select can be configured using [UI](#ui-configuration) or [YAML](#yaml-configuration) file. - -Number template entities are defined in your YAML configuration files under the `template:` key and cannot be configured via the UI. You can define multiple configuration blocks as a list. Each block defines sensor/binary sensor/number/select entities and can contain an optional update trigger. - -_For old sensor/binary sensor configuration format, [see below](#legacy-binary-sensor-configuration-format)._ - -## UI configuration - -Sensor template, binary sensor template, button template, image template and select template can be configured using the user interface at **{% my helpers title="Settings > Devices & services > Helpers" %}**. Select the **+ Add helper** button and then select the **{% my config_flow_start domain=page.ha_domain title=page.title %}** helper. - {% include integrations/config_flow.md %} {% important %} @@ -76,6 +68,10 @@ If you need more specific features for your use case, the manual [YAML-configura ## YAML configuration +Entities (sensors, binary sensors, buttons, images, numbers, and selections) are defined in your YAML configuration files under the `template:` key. You can define multiple configuration blocks as a list. Each block defines sensor/binary sensor/number/select entities and can contain an optional update trigger. + +_For old sensor/binary sensor configuration format, [see below](#legacy-binary-sensor-configuration-format)._ + ### State-based template binary sensors, buttons, images, numbers, selects and sensors Template entities will by default update as soon as any of the referenced data in the template updates. diff --git a/source/_integrations/tesla_fleet.markdown b/source/_integrations/tesla_fleet.markdown index c78d6080fa0..6986c29560e 100644 --- a/source/_integrations/tesla_fleet.markdown +++ b/source/_integrations/tesla_fleet.markdown @@ -17,6 +17,7 @@ ha_platforms: - device_tracker - diagnostics - sensor +ha_quality_scale: gold ha_integration_type: integration --- @@ -26,6 +27,14 @@ The Tesla Fleet API {% term integration %} exposes various sensors from Tesla ve You must have a [Tesla](https://tesla.com) account and a Tesla vehicle, PowerWall, Solar, or Wall Connector, and must not have disabled the [My Home Assistant](/integrations/my/) integration. +{% details "Use a custom OAuth application" %} + +The integration has a built-in OAuth application that will be suitable for most users. However, you can [create your own application](https://developer.tesla.com/dashboard) for the Tesla Fleet API and configure it as an [application credential](https://my.home-assistant.io/redirect/application_credentials). When creating the application, you must set `https://my.home-assistant.io/redirect/oauth` as the redirect URL. + +You will be prompted to pick your custom application credential when creating a Tesla Fleet config entry. + +{% enddetails %} + {% include integrations/config_flow.md %} ## Scopes diff --git a/source/_integrations/todoist.markdown b/source/_integrations/todoist.markdown index 1bcda711422..6aadec01444 100644 --- a/source/_integrations/todoist.markdown +++ b/source/_integrations/todoist.markdown @@ -190,6 +190,8 @@ Here are two example JSON payloads resulting in the same task: - **project** (*Optional*): The project to put the task in. +- **section** (*Optional*): The section within the project to add the task to. + - **labels** (*Optional*): Any labels you want to add to the task, separated by commas. - **assignee** (*Optional*): A member's username of a shared project to assign this task to. You find the username formatted as bold text in the collaborator menu of a shared project. diff --git a/source/_integrations/touchline_sl.markdown b/source/_integrations/touchline_sl.markdown new file mode 100644 index 00000000000..58b611cb627 --- /dev/null +++ b/source/_integrations/touchline_sl.markdown @@ -0,0 +1,29 @@ +--- +title: Roth Touchline SL +description: Instructions on how to integrate Roth Touchline SL within Home Assistant. +ha_category: + - Climate +ha_release: 2024.9 +ha_iot_class: Cloud Polling +ha_domain: touchline_sl +ha_platforms: + - climate +ha_integration_type: integration +--- + +The **Roth Touchline SL** climate integration enables you to control [Roth Touchline SL](https://www.roth-uk.com/products/control-systems/roth-touchliner-sl-wireless-system) underfloor heating systems. + +## Prerequisites + +You must have an account registered with the [Roth Touchline SL dashboard](https://roth-touchlinesl.com/login). + +{% include integrations/config_flow.md %} + +## Entities + +The integration will present each Roth Touchline SL zone as a climate entity, which can: + +- Display the current temperature +- Display the current humidity +- Set a target temperature +- Assign to a configured "Global Schedule" using Home Assistant climate entity presets. diff --git a/source/_integrations/vesync.markdown b/source/_integrations/vesync.markdown index 2b9649b6501..dda689e0de3 100644 --- a/source/_integrations/vesync.markdown +++ b/source/_integrations/vesync.markdown @@ -62,6 +62,7 @@ This {% term integration %} supports devices controllable by the VeSync App. Th - Core 300S: Smart True HEPA Air Purifier - Core 400S: Smart True HEPA Air Purifier - Core 600S: Smart True HEPA Air Purifier +- EverestAir: Smart Air Purifier - Vital 100S Smart True HEPA Air Purifier (LAP-V102S-WUS) - Vital 200S Smart True HEPA Air Purifier (LAP-V201S-WUS) - LEVOIT Smart Wifi Air Purifier (LV-PUR131S) @@ -97,11 +98,11 @@ itself. Note that prior versions of the {% term integration %} exposed these as ## Fan & air quality sensors All VeSync air purifiers expose the remaining filter lifetime, and some also expose air quality measurements. -| Sensor | Description | Example | -| --------------------------------------- | ------------------------------------------------------------------ | ------- | -| `filter_life` | Remaining percentage of the filter. (LV-PUR131S, Core200S/300s/400s/600s) | 142 | +| Sensor | Description | Example | +| ----------------------- | -------------------------------------------------------------------------------------- | --------- | +| `filter_life` | Remaining percentage of the filter. (LV-PUR131S, Core200S/300s/400s/600s/EverestAir) | 142 | | `air_quality` | The current air quality reading. (LV-PUR131S, Core300s/400s/600s) | excellent | -| `pm2_5` | The current air quality reading. (Core300s/400s/600s) | 8 | +| `pm2_5` | The current air quality reading. (Core300s/400s/600s/EverestAir) | 8 | ## Fan exposed attributes diff --git a/source/_redirects b/source/_redirects index d0a994ebf33..698ca6579dc 100644 --- a/source/_redirects +++ b/source/_redirects @@ -499,6 +499,7 @@ layout: null /integrations/arduino /more-info/removed-integration 301 /integrations/asterisk_cdr /more-info/removed-integration 301 /integrations/asterisk_mbox /more-info/removed-integration 301 +/_docs/asterisk_mbox.markdown /more-info/removed-integration 301 /integrations/bbb_gpio /more-info/removed-integration 301 /integrations/bh1750 /more-info/removed-integration 301 /integrations/binary_sensor.mychevy /more-info/removed-integration 301