diff --git a/source/_dashboards/clock.markdown b/source/_dashboards/clock.markdown index e46deac1691e..cf201a7625d7 100644 --- a/source/_dashboards/clock.markdown +++ b/source/_dashboards/clock.markdown @@ -29,6 +29,8 @@ Clock Size: description: Adjusts the size of the text allowing a wider range of use with different types of dashboards. Defaults to small. Display Seconds: description: Shows seconds alongside the clock, providing the time format is in a 12-hour format. +No Background: + description: Removes the background of the clock card. Time Format: description: Allows the time format to be changed on a per-card level. Defaults to the user profile setting. Time Zone: diff --git a/source/_dashboards/conditional.markdown b/source/_dashboards/conditional.markdown index c3db5117a0f2..b808f271eaac 100644 --- a/source/_dashboards/conditional.markdown +++ b/source/_dashboards/conditional.markdown @@ -198,9 +198,31 @@ users: type: list {% endconfiguration %} +### Location + +Specify the visibility of the card based on the current user's current location. The location is based on the state of the `person` entity associated with the current user. If the current user does not have a `person` entity, this condition will always resolve to false. + +```yaml +condition: location +locations: + - home + - Home Neigborhood +``` + +{% configuration %} +condition: + required: true + description: "`location`" + type: string +locations: + required: true + description: A list of zones, which if any match the current state of the `person`, will cause this condition to be true. + type: list +{% endconfiguration %} + ### And -Specify that both conditions must be met. +Specify that all conditions must be met. ```yaml condition: and @@ -248,4 +270,27 @@ conditions: type: list {% endconfiguration %} +### Not + +Specify that at least one of the conditions must not be met. + +```yaml +condition: not +conditions: + - condition: numeric_state + above: 0 + - condition: user + users: + - 581fca7fdc014b8b894519cc531f9a04 +``` +{% configuration %} +condition: + required: true + description: "`not`" + type: string +conditions: + required: false + description: List of conditions to check. See [available conditions](#conditions-options). + type: list +{% endconfiguration %} diff --git a/source/_dashboards/energy.markdown b/source/_dashboards/energy.markdown index 0d9219c8a77f..3b4e698293b2 100644 --- a/source/_dashboards/energy.markdown +++ b/source/_dashboards/energy.markdown @@ -259,8 +259,9 @@ title: type: string layout: required: false - description: "`vertical` or `horizontal`. Determines the orientation (flow direction) of the card" + description: "`vertical`, `horizontal` or `auto`. Determines the orientation (flow direction) of the card. `auto` changes it based on the screen size." type: string + default: auto group_by_area: required: false description: Whether to group the devices by area diff --git a/source/_dashboards/todo-list.markdown b/source/_dashboards/todo-list.markdown index 0ba350db3f00..bae5752cd4a7 100644 --- a/source/_dashboards/todo-list.markdown +++ b/source/_dashboards/todo-list.markdown @@ -76,6 +76,11 @@ display_order: description: "Optionally sorts the items in the to-do list for display. Options are: `none`: Show the list in its original order. `alpha_asc`: Sort the list in alphabetical order. `alpha_desc`: Sort the list in reverse alphabetical order. `duedate_asc`: Sort the list by due date (soonest first). `duedate_desc`: Sort the list by reverse due date (soonest last)." type: string default: "none" +item_tap_action: + required: false + description: "Defines the behavior when an item's body is clicked. Options are: `edit` (opens the edit dialog), `toggle` (marks or unmarks the item as completed, hiding the edit dialog)." + type: string + default: "edit" {% endconfiguration %} ### Examples diff --git a/source/_docs/blueprint/selectors.markdown b/source/_docs/blueprint/selectors.markdown index d914b288ef28..691f7b5afc77 100644 --- a/source/_docs/blueprint/selectors.markdown +++ b/source/_docs/blueprint/selectors.markdown @@ -1414,7 +1414,7 @@ would return ["Green"] and in the last example it returns ["g"]. ## State selector The state selector shows a list of states for a provided entity of which -one can be selected. +one or more can be selected. ![Screenshot of an state selector](/images/blueprints/selector-state.png) @@ -1427,10 +1427,16 @@ hide_states: description: The states to exclude from the list of options type: list required: false +multiple: + description: > + Allows selecting multiple states. If set to `true`, the resulting value of + this selector will be a list instead of a single string value. + type: boolean + default: false {% endconfiguration %} The output of this selector is the select state (not the translated or -prettified name shown in the frontend). +prettified name shown in the frontend), or a list of states if `multiple` is true. For example: `heat_cool`. diff --git a/source/_integrations/airos.markdown b/source/_integrations/airos.markdown index 9c885dc21077..3633ed581d86 100644 --- a/source/_integrations/airos.markdown +++ b/source/_integrations/airos.markdown @@ -15,14 +15,19 @@ ha_integration_type: device ha_quality_scale: bronze --- -Ubiquiti's [UISP](https://techspecs.ui.com/uisp/wireless) (Ubiquity Internet Service Provider) product line includes various devices designed for interconnecting locations. This integration provides monitoring capabilities for devices running the airOS opearting system. +Ubiquiti UISP-range of [wireless](https://techspecs.ui.com/uisp/wireless) products offer a comprehensive suite of devices specifically designed for interconnecting various locations. As long as these airOS devices can 'see' each other without any (or limited) obstructions like buildings or trees, a stable and high-bandwidth "beam" can be established. Even their most cost-effective devices can achieve up to 450 Mbps real TCP/IP throughput and maintain reliable links up 10km range! -There is currently support for the following device types within Home Assistant: +A common use-case is establishing wireless PtP or PtMP links between buildings, remote sites, neighbours or even your shed. This is highly advantageous when traditional fiber-optic or copper network cabling is either impractical or the distance is too far for copper cabling. With LoS between airOS devices, a stable and high-bandwidth "beam" can be established, eliminating any need for additional infrastructure. This can be an improvement over extending your WiFi coverage using meshing of Access Points, as meshing potentially reduces the capacity and performance of your WiFi network. +There is currently support for the following platforms within Home Assistant: + +- [Binary sensor](#binary-sensor) - [Sensor](#sensor) +This integration allows users to pull network metrics and statuses directly into their Home Assistant dashboards, enabling advanced automation, notifications, and comprehensive network oversight within their smart home ecosystem. + {% note %} -Ubiquiti UISP products cannot be managed from their popular [UniFi](/integrations/unifi/) software. They are typically configured using a web browser, the UISP Mobile App, or the UISP Cloud/Self-Hosted platform. +Ubiquiti UISP products cannot be managed from their popular [UniFi](/integrations/unifi/) software. They are typically configured using a web browser, the UISP Mobile App, or the UISP platform (either Cloud or [Self-Hosted](https://help.uisp.com/hc/en-us/articles/22591008678039-UISP-First-Time-Setup-Installation). {% endnote %} ## Prerequisites @@ -33,32 +38,80 @@ This integration only supports devices running airOS 8 and already configured us ## Supported devices -### airOS 8 +### airOS firmware 8 -While there is no known limitation to which devices running airOS 8 are supported, success has been reported on: +While there is no known limitation to which devices running airOS firmware version 8 are supported, success has been reported on: -- PowerBeam 5AC gen2 -- Nanostation 5AC (LOCO5AC) +- Nanostation 5AC Loco (Loco5AC) +- PowerBeam 5AC (PBE-5AC-Gen2) -## Sensor +Do you have a device that works? We’d love to hear [your experience](#feedback_section) so we can add it to this list! + +## Operating roles + +Depending on the device's placement, it will be configured as either an 'Access Point' (AP) acting as the central device or a 'Station' connecting as a client. An AP can have multiple stations connected to it, whereas a station typically connects to only a single AP. + +For stations in particular, they can operate in either a 'Bridge' or 'Router' role: + +- In 'Bridge' mode, the default and most common configuration + + - The airOS device simply bridges the wireless and wired connections. In simplistic terms, it functions as a transparent network cable, making it invisible to the devices on both the station and AP sides. + - This mode is ideal for extending a network's reach without introducing new subnets or managing additional routing. + +- In 'Router' mode, the airOS device + + - Acts as a small router, performing NAT as well as providing DHCP services for devices connected to its LAN port. + - Can also be configured as a PPPoE client, authenticating with a central PPPoE server to receive its IP address, gateway, and other network settings. + +The choice between Bridge and Router mode depends on the network architecture and whether the device is intended to extend an existing network (Bridge) or create a new subnet (Router). + +## Binary sensor + +### Port forwarding + +Active if any port forwarding is enabled when operating in 'router' mode. + +### DHCP client + +Active if the device configured to use DHCP for its network settings, inactive if IP address is statically assigned. + +### DHCP server + +Active if the device itself is configured and acting as a DHCP server. + +### DHCPv6 server + +Active if the device itself is configured and acting as a DHCP server for IPv6. + +### PPPoE -This integration exposes the following sensor entities for your airOS devices: +Active if the device is configured for PPPoE and the PPPoE link state is active. + +## Sensor ### Network Role -Indicates the role of the device in your network, either 'bridge' or 'router'. +Indicates the role of the device in your network, either 'bridge' or 'router' (see [operating roles](#operating-roles) for more information. -### Wireless Frequency +### Wireless Role -The base frequency set for this device. +Indicates the role of the device in relation to your wireless network, either 'Access point' or 'Station'. ### Wireless Mode -ndicates the device's role in the wireless link, typically 'ap-ptp' (Access Point Point-to-Point) or 'sta-ptp' (Station Point-to-Point). +Indicates the mode your device is in 'point-to-point' just two devices connecting to eachother or 'point-to-multipoint' for multiple devices connecting to this device. + +### Wireless Distance + +The reported distance between your devices. + +### Wireless Frequency + +The base frequency set for this device. ### Wireless SSID -The SSID (wireless network name) used by this device. +The SSID (i.e. the wireless network name) used by this device. ### Download capacity & Upload capacity @@ -70,12 +123,49 @@ These sensors show the actual data transfer rate (receive and transmit) for this ### Antenna gain -Performance in decibels of the devices antenna. See [Gain](https://en.wikipedia.org/wiki/Gain_(antenna)) on Wikipedia. +Performance in dB for the device antenna. See [Gain](https://en.wikipedia.org/wiki/Gain_(antenna)) on Wikipedia. + +### Uptime + +Time since the device was last started. ## Data updates Data is polled from devices every 60 seconds. +## Examples + +### Detect link degradation + +As both stations need to maintain LoS between each other, the greater their distance, the more likely something will occasionally obstruct the path. A construction site crane might be in the way, or your local window cleaners might have slightly tapped your Access Point, causing its antenna to become misaligned. While the link might still be operational, it will definitely not be providing the capacity it had before. This automation example will notify you of an unexpected change in your link's capacity bandwidth. + +This automation triggers when either the download or upload capacity reported by your NanoStation drops significantly below its expected performance level. + +```yaml +automation: + alias: 'UISP NanoStation Link Capacity Warning' + triggers: + - trigger: numeric_state + entity_id: + - sensor.nanostation_5ac_access_point_download_capacity + - sensor.nanostation_5ac_access_point_upload_capacity + for: + hours: 0 + minutes: 5 + seconds: 0 + above: 360000 + conditions: [] + actions: + - action: notify.send_message + metadata: {} + data: + message: "Point-to-Point capacity loss, please check your wireless links" + target: + entity_id: notify.notifier +``` + +The above currently caters for a 25% degradation of 450 Mbit/s. If you want to consider your actual capacity in a dynamic approach, we suggest looking into the [Statistics](/integrations/statistics/) integration. + ## Troubleshooting ### Accessing the local device @@ -88,6 +178,21 @@ If you need to configure the device directly, you can find the link to your devi ### Adjusting the update interval -Please note that the [default intervals](#data-updates) are considered best practice. Updating too frequently may induce considerable load on your bridge(s) resulting in unexpected results or missing data. +Please note that the [default interval](#data-updates) is considered best practice. Updating too frequently may induce considerable load on your bridge(s) resulting in unexpected results or missing data. {% include common-tasks/define_custom_polling.md %} + +### Diagnostic data + +If you need to create an issue to report a bug or want to inspect diagnostic data, use the below method to retrieve diagnostics: + +1. Go to {% my integrations title="**Settings** > **Devices & services**" %}, and select your integration and device. +2. On the integration entry, select the {% icon "mdi:dots-vertical" %}. + - Then, select **Download diagnostics** and a JSON file will be downloaded. +3. You can inspect the downloaded file or, when requested, upload it to your issue report. + +## Removing the integration + +This integration follows standard integration removal. No extra steps are required within Home Assistant or on your devices running airOS. + +{% include integrations/remove_device_service.md %} diff --git a/source/_integrations/airq.markdown b/source/_integrations/airq.markdown index ffd77f9a3d54..399d12190844 100644 --- a/source/_integrations/airq.markdown +++ b/source/_integrations/airq.markdown @@ -14,6 +14,7 @@ ha_domain: airq ha_config_flow: true ha_platforms: - sensor + - number ha_integration_type: hub --- @@ -96,6 +97,10 @@ After the integration has been initialized, the user can configure any of the fo - **Clip negative values**. Default: `on`. For baseline calibration purposes, certain sensor values may briefly become negative. The default behavior is to clip such values to 0. +## LED Control + +In addition to sensor readings, this integration exposes the brightness of the device’s LED strips as a `number` entity named `number._led_brightness`. You can set the brightness (0–100) manually from the Overview panel or in automations. Setting it to 0 will turn the LEDs off. + ## Troubleshooting For troubleshooting or when reporting an issue, please enable [debug logging](/docs/configuration/troubleshooting/#debug-logs-and-diagnostics) and restart the integration. As soon as the issue reoccurs stop the debug logging, which will trigger the download of the debug log file. diff --git a/source/_integrations/alexa_devices.markdown b/source/_integrations/alexa_devices.markdown index 147d58615694..1b5ebfe626df 100644 --- a/source/_integrations/alexa_devices.markdown +++ b/source/_integrations/alexa_devices.markdown @@ -49,8 +49,6 @@ This integration requires multifactor authentication using an authentication app {% include integrations/config_flow.md %} {% configuration_basic %} - country: - description: The country of your Amazon account. username: description: The email address of your Amazon account. password: @@ -59,12 +57,6 @@ This integration requires multifactor authentication using an authentication app description: One-time password via Authenticator App. {% endconfiguration_basic %} -{% note %} -When trying to set up the integration, the form may show the message "Cannot connect". -This means that the specified country may need a special setting. -Open a issue with all details to investigate -{% endnote %} - ## Examples ### Automation: Announce welcome when you arrive home @@ -106,18 +98,6 @@ This integration requires multifactor authentication using an authentication app ### Can’t set up the integration -#### Symptom: "Wrong Country" - -When trying to set up the integration, the form shows the message "Wrong Country". - -##### Description - -This means that the settings in your Amazon account are not aligned to the country you specified. -To fix it, please go to (replace XX with your country domain. For example **co.uk**): - -- "Kindle payment": check your default address is in your country -- "Country/Region": check your country - #### Symptom: "Not found" When trying to set up the integration, the form shows the message "Not found". diff --git a/source/_integrations/awair.markdown b/source/_integrations/awair.markdown index 1d34999af952..af120d19dc75 100644 --- a/source/_integrations/awair.markdown +++ b/source/_integrations/awair.markdown @@ -38,6 +38,7 @@ The integration will fetch data from each device. The following sensors are supp - Temperature - Humidity +- Absolute humidity - Carbon dioxide - Total volatile organic compounds - PM2.5 density diff --git a/source/_integrations/enphase_envoy.markdown b/source/_integrations/enphase_envoy.markdown index 18ab15d7f4c7..96dbe1f8304d 100644 --- a/source/_integrations/enphase_envoy.markdown +++ b/source/_integrations/enphase_envoy.markdown @@ -91,7 +91,7 @@ This integration follows standard integration removal. No extra steps are requir ## Capabilities -This integration offers various entities depending on the configuration of your Enphase system. The Envoy can communicate with Enphase IQ micro-inverters, Enphase ACB and IQ batteries, Enphase Ensemble Enpower switch and load shedding relays and Enphase compatible generators. +This integration offers various entities depending on the configuration of your Enphase system. The Envoy can communicate with Enphase IQ micro-inverters, Enphase ACB and IQ batteries, Enphase Ensemble Enpower switch and load shedding relays, Enphase compatible generators and the IQ Meter Collar. {% note %} @@ -242,6 +242,8 @@ When the Envoy Metered is equipped with a [net-consumption CT](#current-transfor - **Envoy SN Lifetime net energy consumption**: Lifetime energy consumed / imported from the grid in Wh, default display in MWh. - **Envoy SN Lifetime net energy production**: Lifetime energy produced / exported to the grid in Wh, default display in MWh. +When using an IQ Metered Collar, the net-consumption CT's are integrated in the collar. + When used with [multiphase CT phase data](#ct-aggregate-and-phase-data), disabled phase entities are available as well. #### Grid Balanced import/export sensor entities @@ -408,6 +410,32 @@ The names of entities and devices are derived from the load_name configured in t
Envoy Enpower dry-contact entities.
+### IQ Meter Collar data + +The IQ Meter Collar has the net-consumption CT integrated. The CT data is reported in the [net-consumption data](#net-consumption-ct-sensor-entities) and [grid sensors](#grid-sensor-entities). In addition the status of the collar is available in entities. + +#### Collar status entities + +- **Collar SN Grid state**: Grid connection status, on_grid / off_grid / synchronizing / manual override active. +- **Collar SN MID State**: Status of enphase Microgrid Interconnection Device, open / close. +- **Collar SN Temperature**: Current temperature in degrees C or F, based on your localization. +- **Collar SN Last reported**: Time when Envoy received last update from the collar device. +- **Collar SN Communicating**: Communication status of the collar, Connected / Disconnected. This is a diagnostics entity. + +### C6 Combiner Controller data + +The Enphase C6 combiner controller (C6CC) provides some status information to the Envoy which are available in entities. + +#### C6CC status entities + +- **C6CC SN Last reported**: Time when Envoy received last update from the combiner device. +- **C6CC SN Communicating**: Communication status of C6 Combiner, Connected / Disconnected. This is a diagnostics entity. + +
+ envoy collar and c6cc +
Envoy IQ Metered Collar and C6 Combiner Controller entities.
+
+ ## Data polling interval All data is collected in one coordinated collection cycle and sourced from a limited set of endpoints on the Envoy. For example, three different values sourced from the same endpoint are not pulled in three different requests but provided from the same single request. This method minimizes the number of requests to the Envoy. The local REST API of the Envoy is used. Only when the 1-year valid token is to expire, 1 month before due data, a new token is requested from the Enphase Enlighten website. diff --git a/source/_integrations/fyta.markdown b/source/_integrations/fyta.markdown index a391e4f19263..5b233edcc509 100644 --- a/source/_integrations/fyta.markdown +++ b/source/_integrations/fyta.markdown @@ -101,6 +101,8 @@ For plant measurements, the following status scale is applied: - High - Too High +For the measurement sensors (light, moisture, salinity, and temperature), the maximal/minimal values that define the ranges of what is considered acceptable and good for the plant are saved as an extra attribute of the sensor. For example: Below 10 it's too cold, that could be the minimum acceptable. 15 could be the minimum of the good range. Between 15 and 30 is perfect. 30 would be maximum good and 35 would be the maximum acceptable. Above 35 it's too hot. These values can be used for automations or visualizations on the dashboard. + ## Data updates The integration fetches data from the device every 4 minutes. diff --git a/source/_integrations/habitica.markdown b/source/_integrations/habitica.markdown index 9b636037460e..cad6b0c8adfc 100644 --- a/source/_integrations/habitica.markdown +++ b/source/_integrations/habitica.markdown @@ -161,6 +161,24 @@ If you've unlocked the class system, button controls for casting player and part - **Rest in the Inn**: When enabled, allows your character to rest in the inn in Habitica, pausing damage dealt from dailies and quest bosses. +## Party + +If you’re part of a party, the integration creates a device with these entities. + +- **Boss health**: The total health of the quest boss. +- **Boss health remaining**: The remaining health of the quest boss. +- **Collected quest items**: Displays the total number of items collected. Attributes include a breakdown of each required item type, showing both collected and required amounts. +- **Group leader**: The username of your party's leader. +- **Member count**: The current number of members in your party. +- **Quest**: Shows the name of the current quest your party is engaged in. +- **Quest boss**: The name and image of the foe your party is currently battling. + +{% note %} + +Certain entities are only available depending on whether you are in a boss quest or a collect quest. + +{% endnote %} + ## Actions ### Action `habitica.cast_skill` diff --git a/source/_integrations/homeassistant_connect_zbt2.markdown b/source/_integrations/homeassistant_connect_zbt2.markdown new file mode 100644 index 000000000000..ab8b7899a33a --- /dev/null +++ b/source/_integrations/homeassistant_connect_zbt2.markdown @@ -0,0 +1,24 @@ +--- +title: Home Assistant Connect ZBT-2 +description: Home Assistant Connect ZBT-2 provides hardware information for the hardware configuration page. +ha_release: 2025.9 +ha_category: + - Other + - Update +ha_codeowners: + - '@home-assistant/core' +ha_domain: homeassistant_connect_zbt2 +ha_integration_type: hardware +ha_config_flow: true +ha_platforms: + - update +--- + +The Home Assistant Connect ZBT-2 integration provides hardware information for the hardware configuration page. + +For documentation on the Home Assistant Connect ZBT-2, please visit the [documentation page](https://support.nabucasa.com/hc/en-us/categories/24734620813469). +If you are looking to buy one, please visit the [product page](https://home-assistant.io/connectzbt2) + +## Configuration + +This integration is not user configurable. diff --git a/source/_integrations/homee.markdown b/source/_integrations/homee.markdown index 2d882d8c378b..0e2ba87673e1 100644 --- a/source/_integrations/homee.markdown +++ b/source/_integrations/homee.markdown @@ -17,6 +17,7 @@ ha_category: - Switch - Valve ha_config_flow: true +ha_zeroconf: true ha_release: 2025.2 ha_iot_class: Local Push ha_codeowners: diff --git a/source/_integrations/homekit.markdown b/source/_integrations/homekit.markdown index 8338f889af69..27be6c3e4a6a 100644 --- a/source/_integrations/homekit.markdown +++ b/source/_integrations/homekit.markdown @@ -194,6 +194,14 @@ homekit: description: The `entity_id` of a `sensor` entity to use as the temperature sensor of the air purifier accessory. required: false type: string + linked_valve_duration: + description: The `entity_id` of an `input_number` entity to use as the default run time of a valve switch (switch type `faucet`, `shower`, `sprinkler`, or `valve`), or valve accessory. Minimum value `300` seconds. Maximum value `3600` seconds. Step size `300` seconds. Changes in HomeKit will change the sensor state (and vice versa). + required: false + type: string + linked_valve_end_time: + description: The `entity_id` of a `sensor` (timestamp) entity to use for calculating the remaining time of a valve switch (switch type `faucet`, `shower`, `sprinkler`, or `valve`), or valve accessory. The end time has to be maintained in Home Assistant. HomeKit will not update the state of this sensor. + required: false + type: string low_battery_threshold: description: Minimum battery level before the accessory starts reporting a low battery. required: false @@ -450,10 +458,10 @@ The following integrations are currently supported: | sensor | CarbonMonoxideSensor | All sensors that have `carbon_monoxide` as their `device_class` | | sensor | CarbonDioxideSensor | All sensors that have `co2` as part of their `entity_id` or `carbon_dioxide` as their `device_class` | | sensor | LightSensor | All sensors that have `lm` or `lx` as their `unit_of_measurement` or `illuminance` as their `device_class` | -| switch | Switch | Represented as a switch by default but can be changed by using `type` within `entity_config`. | +| switch | Switch | Represented as a switch by default but can be changed by using `type` within `entity_config`. Valve switches (type `faucet`, `shower`, `sprinkler`, or `valve`) can be linked with `linked_valve_duration` and `linked_valve_end_time`. | | water_heater | WaterHeater | All `water_heater` devices. | | device_automation | DeviceTriggerAccessory | All devices that support triggers. | -| valve | Valve | All `valve` devices. | +| valve | Valve | All `valve` devices can be linked with `linked_valve_duration` and `linked_valve_end_time`. | # Device triggers diff --git a/source/_integrations/husqvarna_automower.markdown b/source/_integrations/husqvarna_automower.markdown index 36f1c50ed1ac..94d62a266843 100644 --- a/source/_integrations/husqvarna_automower.markdown +++ b/source/_integrations/husqvarna_automower.markdown @@ -6,6 +6,7 @@ ha_category: - Button - Calendar - Device tracker + - Event - Lawn Mower - Number - Select @@ -22,6 +23,7 @@ ha_platforms: - calendar - device_tracker - diagnostics + - event - lawn_mower - number - select @@ -108,6 +110,7 @@ The integration will create the following binary sensors: The integration will create the following buttons: - **Confirm Error** (if available): For confirming minor mower errors. +- **Reset cutting blade usage time** (if available): Resets the cutting blade usage time. - **Sync clock**: Syncs the clock of the mower with the time set in Home Assistant. ### Calendar @@ -118,6 +121,30 @@ The integration will create a calendar entity for all mowers. The calendar shows The integration will create a device tracker entity to show the position of the mower. +### Event (if available) + +- Shows the last error as event. +- Includes additional context: `severity`, `latitude`, `longitude`, and `date_time`. + +#### Example attributes + +| Attribute | Description | +|---------------|----------------------------------------| +| `event_type` | Error code (for example, `tilt_error`) | +| `severity` | Error severity (for example, `error`, `warning`) | +| `latitude` | Latitude where the error occurred | +| `longitude` | Longitude where the error occurred | +| `date_time` | Timestamp of the error | + +#### Use cases + +- Send a notification when the mower is lifted or stuck. +- Show last error location on a map + +{% note %} +The entity will only be created when a new message is received. If a mower hasn’t reported any errors yet, the entity won't show up. +{% endnote %} + ### Lawn mower The integration will create a lawn mower entity to control the mower. This entity can: diff --git a/source/_integrations/huum.markdown b/source/_integrations/huum.markdown index 78cbc17fc353..e1ce541f853e 100644 --- a/source/_integrations/huum.markdown +++ b/source/_integrations/huum.markdown @@ -5,6 +5,7 @@ ha_category: - Binary sensor - Climate - Light + - Number ha_release: 2024.2 ha_iot_class: Cloud Polling ha_codeowners: @@ -16,6 +17,7 @@ ha_platforms: - binary_sensor - climate - light + - number ha_integration_type: integration --- @@ -50,3 +52,8 @@ The climate entity controls the sauna heater and offers the following capabiliti ### Light - **Light**: Sauna light control (on or off). + +### Number + +- **Humidity**: Control steamer duty cycle (0-10) to adjust sauna humidity. + diff --git a/source/_integrations/inkbird.markdown b/source/_integrations/inkbird.markdown index 65b3a0d29014..dcf7c16cf11e 100644 --- a/source/_integrations/inkbird.markdown +++ b/source/_integrations/inkbird.markdown @@ -30,6 +30,7 @@ Integrates [INKBIRD](https://www.inkbird.com/) devices into Home Assistant. - [INKBIRD Bluetooth Hygrometer Thermometer ITH-13-B](https://inkbird.com/products/bluetooth-hygrometer-thermometer-ith-13-b) - [INKBIRD Bluetooth Hygrometer Thermometer ITH-21-B](https://inkbird.com/products/bluetooth-hygrometer-thermometer-ith-21-b) - [INKBIRD Bluetooth Wireless 4-in-1 Air Quality Monitor IAM-T1](https://inkbird.com/collections/air-quality-monitors/products/smart-indoor-air-quality-monitor-iam-t1) +- [INKBIRD Bluetooth 3-in-1 Indoor Air Quality Monitor IAM-T2](https://inkbird.com/products/bluetooth-3-in-1-indoor-air-quality-monitor-iam-t2) - [Nutrichef Smart Wireless Grill Thermometer](https://nutrichefkitchen.com/products/pwirbbq40) - [Nutrichef Smart Bluetooth BBQ Grill Thermometer](https://nutrichefkitchen.com/products/pwirbbq80-1) diff --git a/source/_integrations/letpot.markdown b/source/_integrations/letpot.markdown index e8d40ed83556..ae130d278fda 100644 --- a/source/_integrations/letpot.markdown +++ b/source/_integrations/letpot.markdown @@ -3,6 +3,7 @@ title: LetPot description: Instructions on how to integrate LetPot hydroponic gardens into Home Assistant. ha_category: - Binary sensor + - Select - Sensor - Switch - Time @@ -15,6 +16,7 @@ ha_domain: letpot ha_integration_type: hub ha_platforms: - binary_sensor + - select - sensor - switch - time @@ -79,6 +81,17 @@ Additionally, binary sensors for possible issues are available: Binary sensors for issues are disabled by default. If you want to use them, you need to enable them first. See the [enabling or disabling entities](/common-tasks/general/#enabling-or-disabling-entities) documentation for information on how to do this. {% endimportant %} +#### Selects + +- **Light mode**: Set the built-in light mode to fruits/flowers (red and white LEDs enabled) or veggies/herbs (red, white and blue LEDs enabled). + +Depending on device support, more selects are available: + +- **Light brightness**: Set the built-in light brightness to low or high. + - Available for LetPot Air devices, and some LetPot SE devices which support changing the brightness. +- **Temperature unit on display**: Set the temperature unit for the temperature shown on the device's display. + - Available for LetPot Max devices, excluding devices with a serial number starting with `LPH63`. + #### Sensors For LetPot Max devices, the following sensors are available: diff --git a/source/_integrations/linear_garage_door.markdown b/source/_integrations/linear_garage_door.markdown deleted file mode 100644 index 224241c30e38..000000000000 --- a/source/_integrations/linear_garage_door.markdown +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: Linear Garage Door -description: Control Linear garage doors -ha_release: '2023.12' -ha_category: - - Cover - - Light -ha_iot_class: Cloud Polling -ha_config_flow: true -ha_codeowners: - - '@IceBotYT' -ha_domain: linear_garage_door -ha_platforms: - - cover - - diagnostics - - light -ha_integration_type: integration ---- - -{% warning %} -This integration is now deprecated and will be removed in 2025.8.0. -Please use the new [Nice G.O.](/integrations/nice_go) integration instead to avoid disruption. - -For more information, refer to the [Nice G.O. migration documentation](https://na.niceforyou.com/features/nice-go-app/#migration). -{% endwarning %} - -The Linear integration lets you control Linear garage doors through Home Assistant. Device names in Home Assistant are generated based on the names defined in your Linear mobile app. - -## Prerequisites - -This integration is for garage doors connected to the cloud by Wi-Fi using the Linear mobile app. - -{% include integrations/config_flow.md %} - -## Cover - -Garage doors linked to your Linear account will appear as covers. - -## Light - -Lights on your garage door will appear as lights. diff --git a/source/_integrations/mastodon.markdown b/source/_integrations/mastodon.markdown index f606ec06e265..a5ea676728e1 100644 --- a/source/_integrations/mastodon.markdown +++ b/source/_integrations/mastodon.markdown @@ -16,6 +16,7 @@ ha_platforms: - sensor ha_integration_type: service ha_config_flow: true +ha_quality_scale: bronze --- The `mastodon` platform uses [Mastodon](https://joinmastodon.org/) to post status updates and get account statistics. diff --git a/source/_integrations/mercury_nz.markdown b/source/_integrations/mercury_nz.markdown deleted file mode 100644 index 2ad15fe82a04..000000000000 --- a/source/_integrations/mercury_nz.markdown +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: Mercury NZ Limited -description: Get energy usage from Mercury NZ Limited using the Opower integration -ha_category: - - Energy - - Sensor -ha_release: 2023.8 -ha_domain: mercury_nz -ha_integration_type: virtual -ha_supporting_domain: opower -ha_supporting_integration: Opower -ha_codeowners: - - '@tronikos' -ha_config_flow: true -ha_platforms: - - sensor -ha_iot_class: Cloud Polling ---- - -{% include integrations/supported_brand.md %} diff --git a/source/_integrations/miele.markdown b/source/_integrations/miele.markdown index 5bcfa5e47a14..d57cef93c732 100644 --- a/source/_integrations/miele.markdown +++ b/source/_integrations/miele.markdown @@ -151,7 +151,7 @@ Climate entities are used to control target temperatures in refrigerators, freez - **Operation state**: - **Status**: Represents the current operation state of the device. The default entity name is just the appliance type. For example, "Dishwasher". - - **Program**: Shows the currently active program. + - **Program**: Shows the currently active program. On coffee machines, the program sensor also provides an extra state attribute `profile` in order to distinguish which profile is in use on the machine. - **Program phase**: Shows the current phase in the running program. - **Program type**: Shows the current program type. - **Spin speed**: Shows the spin speed selected for the current washing machine program. @@ -244,6 +244,30 @@ actions: {% endraw %} {% enddetails %} +### Set program and start washing machine + +Load your washing machine and manually activate mobile start or remote control mode on the machine. + +{% details "Example YAML configuration" %} + +{% raw %} + +```yaml +alias: "Wash cottons early in the morning" +description: "Set cottons program and start washing machine early in the morning" +triggers: + - trigger: time + at: "04:00:00" +actions: + - action: miele.set_program + data: + device_id: + program_id: 1 +``` + +{% endraw %} +{% enddetails %} + ## Data updates This integration uses server-sent events from the Miele API to receive live updates from the appliances. diff --git a/source/_integrations/number.markdown b/source/_integrations/number.markdown index 4450b475058a..0cb18cb533cc 100644 --- a/source/_integrations/number.markdown +++ b/source/_integrations/number.markdown @@ -40,7 +40,7 @@ The following device classes are supported for numbers: - **None**: Generic number. This is the default and doesn't need to be set. - **absolute_humidity**: Absolute humidity in g/m³, mg/m³. -- **apparent_power**: Apparent power in VA. +- **apparent_power**: Apparent power in mVA or VA. - **aqi**: Air Quality Index (unitless). - **area**: Area in m², cm², km², mm², in², ft², yd², mi², ac, ha - **atmospheric_pressure**: Atmospheric pressure in cbar, bar, hPa, mmHg, inHg, kPa, mbar, Pa or psi @@ -77,7 +77,7 @@ The following device classes are supported for numbers: - **precipitation_intensity**: Precipitation intensity in in/d, in/h, mm/d or mm/h - **pressure**: Pressure in Pa, kPa, hPa, bar, cbar, mbar, mmHg, inHg or psi - **reactive_energy**: Reactive energy in varh or kvarh -- **reactive_power**: Reactive power in var or kvar +- **reactive_power**: Reactive power in mvar, var, or kvar - **signal_strength**: Signal strength in dB or dBm - **sound_pressure**: Sound pressure in dB or dBA - **speed**: Generic speed in ft/s, in/d, in/h, in/s, km/h, kn, m/s, mph, mm/d, or mm/s diff --git a/source/_integrations/onewire.markdown b/source/_integrations/onewire.markdown index be33f9dfd27f..2705356ad9a8 100644 --- a/source/_integrations/onewire.markdown +++ b/source/_integrations/onewire.markdown @@ -34,6 +34,7 @@ Each 1-wire component data sheet describes the different properties the componen | Family | Device | Physical Quantity | | -------|:-----|:-----| +| 05 | [DS2405](https://datasheets.maximintegrated.com/en/ds/DS2405.pdf) | 1 sensed [4](#note_4) | | 12 | [DS2406](https://datasheets.maximintegrated.com/en/ds/DS2406.pdf) | 2 sensed (sensed.A/B) [4](#note_4) | | 29 | [DS2408](https://datasheets.maximintegrated.com/en/ds/DS2408.pdf) | 8 sensed (sensed.0-7) [4](#note_4) | | 3A | [DS2413](https://datasheets.maximintegrated.com/en/ds/DS2413.pdf) | 2 sensed (sensed.A/B) [4](#note_4) | diff --git a/source/_integrations/opower.markdown b/source/_integrations/opower.markdown index fb34295f4dc0..2b78e111a0c2 100644 --- a/source/_integrations/opower.markdown +++ b/source/_integrations/opower.markdown @@ -43,14 +43,12 @@ More than 175 utilities use Opower. Currently only the following utilities are s - PECO Energy Company (PECO) - Potomac Electric Power Company (Pepco) - Glendale Water and Power (GWP) -- Mercury NZ Limited - National Grid US subsidiaries - National Grid Massachusetts - National Grid NY Long Island - National Grid NY Metro - National Grid NY Upstate - Pacific Gas & Electric (PG&E) - > **Note:** Currently only works with PG&E accounts created **before June 2025** that do not require multi-factor authentication (MFA). - Portland General Electric (PGE) - Puget Sound Energy (PSE) - Sacramento Municipal Utility District (SMUD) @@ -88,6 +86,11 @@ When using Opower with any of the Exelon subsidiaries, such as BGE, ComEd, PECO, Before proceeding, make sure you understand the security implications of disabling 2FA. Log onto the website, select **Don't use 2FA** and **Don't ask me again**. If you have already enabled 2FA, you most likely cannot disable it, which unfortunately means you cannot use this integration. +### Pacific Gas & Electric (PG&E) + +The integration properly supports Multi-Factor Authentication (MFA) for PG&E via either email or phone. +You will be asked to re-authenticate via MFA every 180 days. + {% include integrations/config_flow.md %} ## Sensors diff --git a/source/_integrations/ping.markdown b/source/_integrations/ping.markdown index 2bbd6fb8e453..4057531e364b 100644 --- a/source/_integrations/ping.markdown +++ b/source/_integrations/ping.markdown @@ -59,6 +59,7 @@ The integration exposes the different round trip times milliseconds as entities: - `Round Trip Time Average` - the average round trip time - `Round Trip Time Minimum` - the shortest round trip time - `Round Trip Time Maximum` - the longest round trip time +- `Jitter` - the variation in round trip times **These entities are disabled by default and can be enabled in the UI if needed.** diff --git a/source/_integrations/playstation_network.markdown b/source/_integrations/playstation_network.markdown index dac26b9a0b8e..05c7fe94c455 100644 --- a/source/_integrations/playstation_network.markdown +++ b/source/_integrations/playstation_network.markdown @@ -105,6 +105,10 @@ After adding a friend, a new device will be created with the following entities: - **Avatar**: Displays the friend's current avatar. - **Now playing**: Displays the current game title image if the friend is playing a game. +### Notifier + +- **Direct message**: Sends a private message to your friend through the PlayStation Network. + ## Data updates This integration retrieves data from the PlayStation Network every 30 seconds to ensure timely updates. diff --git a/source/_integrations/qbus.markdown b/source/_integrations/qbus.markdown index e56314e01b14..df3d57020956 100644 --- a/source/_integrations/qbus.markdown +++ b/source/_integrations/qbus.markdown @@ -2,17 +2,21 @@ title: Qbus description: Instructions on how to integrate your Qbus installation with Home Assistant. ha_category: + - Binary sensor - Climate - Cover - Hub - Light - Scene + - Sensor - Switch ha_platforms: + - binary_sensor - climate - cover - light - scene + - sensor - switch ha_iot_class: Local Push ha_codeowners: @@ -48,10 +52,12 @@ There is currently support for the following **Qbus** products within Home Assis ## Available entities +- **Binary sensor**: display values from weather stations and controller information. - **Climate**: manage thermostats by setting temperature and choosing presets. - **Cover**: operate covers with support for actions like open, close, stop, position adjustment, and tilt — depending on your setup. - **Light**: control dimmer lights, allowing both on/off functionality and brightness adjustment. - **Scene**: activate predefined scenes. +- **Sensor**: display sensor values from devices like gauges, humidity sensors, thermostats, ventilation, and weather stations. - **Switch**: toggle on/off outputs. ## Removing the integration diff --git a/source/_integrations/reolink.markdown b/source/_integrations/reolink.markdown index 49e6b3d43f93..0d4b9e529d6e 100644 --- a/source/_integrations/reolink.markdown +++ b/source/_integrations/reolink.markdown @@ -71,7 +71,7 @@ If an entity listed below has an asterisk (*) next to its name, it means it is d If an entity listed below has a plus (+) next to its name, it means this entity supports push updates. These entities will have almost instant state changes. For redundancy, the state of all entities is also polled every 60 seconds. For entities without a plus (+), this is the only update method. Therefore, a device's state change can take up to 60 seconds to be reflected in Home Assistant. -An exception is the firmware update entity, which is polled every 12 hours. +An exception is the firmware update entity, which is polled every 24 hours. Another exception are battery cameras, most {% term entities %} are still {% term polling polls %} every 60 seconds. However, the entities that would cause the camera to wake from sleep will only be polled during the following events: - The camera wakes by itself (PIR event) and the last update was more than 1 hour ago. @@ -341,7 +341,7 @@ Depending on the supported features of the camera ([see specifications of the ca ### Update entity -An update entity is available that checks for firmware updates every 12 hours. +An update entity is available that checks for firmware updates every 24 hours. Updates are checked both through the camera API and directly from the [Reolink download center](https://reolink.com/download-center/). Therefore the update entity in Home Assistant can find and install a firmware update from the [Reolink download center](https://reolink.com/download-center/) while the Reolink app/windows/web client does not always find this update. diff --git a/source/_integrations/russound_rio.markdown b/source/_integrations/russound_rio.markdown index 1041f6f6db0e..36e1acd1be76 100644 --- a/source/_integrations/russound_rio.markdown +++ b/source/_integrations/russound_rio.markdown @@ -107,6 +107,10 @@ data: media_content_id: "1,8" ``` +## Browsing media + +The Russound RIO integration allows you to browse saved presets from your dashboard. + ## Troubleshooting ### There is a delay on getting the current status diff --git a/source/_integrations/sensor.markdown b/source/_integrations/sensor.markdown index 45c414951696..01e491e56978 100644 --- a/source/_integrations/sensor.markdown +++ b/source/_integrations/sensor.markdown @@ -49,7 +49,7 @@ The following device classes are supported for sensors: - **None**: Generic sensor. This is the default and doesn't need to be set. - **absolute_humidity**: Absolute humidity in g/m³, mg/m³. -- **apparent_power**: Apparent power in VA. +- **apparent_power**: Apparent power in mVA or VA. - **aqi**: Air Quality Index (unitless). - **area**: Area in m², cm², km², mm², in², ft², yd², mi², ac, ha - **atmospheric_pressure**: Atmospheric pressure in cbar, bar, hPa, mmHg, inHg, kPa, mbar, Pa or psi @@ -88,7 +88,7 @@ The following device classes are supported for sensors: - **precipitation_intensity**: Precipitation intensity in in/d, in/h, mm/d or mm/h - **pressure**: Pressure in Pa, kPa, hPa, bar, cbar, mbar, mmHg, inHg or psi - **reactive_energy**: Reactive energy in varh or kvarh -- **reactive_power**: Reactive power in var or kvar +- **reactive_power**: Reactive power in mvar, var, or kvar - **signal_strength**: Signal strength in dB or dBm - **sound_pressure**: Sound pressure in dB or dBA - **speed**: Generic speed in ft/s, in/d, in/h, in/s, km/h, kn, m/s, mph, mm/d, or mm/s diff --git a/source/_integrations/sleep_as_android.markdown b/source/_integrations/sleep_as_android.markdown new file mode 100644 index 000000000000..59308aa72569 --- /dev/null +++ b/source/_integrations/sleep_as_android.markdown @@ -0,0 +1,211 @@ +--- +title: Sleep as Android +description: Instructions on how to integrate Sleep as Android with Home Assistant. +ha_category: + - Event + - Sensor +ha_iot_class: Local push +ha_release: 2025.9 +ha_config_flow: true +ha_codeowners: + - '@tr4nt0r' +ha_domain: sleep_as_android +ha_integration_type: integration +ha_platforms: + - event + - sensor +ha_quality_scale: silver +--- + +The **Sleep as Android** {% term integration %} connects the Sleep as Android app to Home Assistant, allowing you to trigger automations based on alarm clock or sleep cycle events. + +## About Sleep as Android + +[**Sleep as Android**](https://sleep.urbandroid.org/) is a smart alarm clock with sleep cycle tracking capabilities and numerous other features to analyze and improve sleeping habits. It is available exclusively for Android devices and can be downloaded from [Google Play](https://play.google.com/store/apps/details?id=com.urbandroid.sleep). + +## How you can use this integration + +The Sleep as Android integration allows you to trigger sleep-related automations. You can trigger actions when sleep tracking starts or stops, such as dimming the lights or adjusting thermostat settings. Alarm events allow you to respond to snoozing or dismissing alarms — like starting a morning routine or sending a notification if the alarm was skipped. Additionally, you can react to specific sleep phases or sound detections (for example, snoring or baby crying), or monitor critical conditions such as sleep apnea. + +## Prerequisites + +This integration uses webhooks to receive events from Sleep as Android. By default, webhook triggers can only be accessed from devices on the same network as Home Assistant. If you want to receive events while away from your home network, remote access must be enabled, either by adding a [remote URL](/docs/configuration/remote/) or via [Nabu Casa Cloud](https://www.nabucasa.com/config/webhooks/). + +Steps to set up the integration: + +1. Preferably, open Home Assistant on the device you want to connect to the Sleep as Android integration and initiate the setup. +2. You will be presented a URL during the setup process. Mark the URL and copy it to the clipboard. +3. Open the Sleep as Android app and go to {% icon "mdi:cog" %} **Settings** > **Services** > **Automation** > **Webhooks**. +4. Turn on the switch to enable webhooks and paste the webhook URL from your clipboard into the URL field. + +{% note %} + +To receive updates from Sleep as Android while away from home, your Home Assistant instance must be remotely accessible. +You can enable this by configuring a remote URL for Home Assistant or by using Home Assistant Cloud. + +When setting up the Sleep as Android integration, the webhook is created using your external or cloud URL if remote access is available at that time. +If your instance is not remotely accessible during setup, the webhook will use your internal URL instead. +In this case, you will need to manually update the webhook to use your remote URL once remote access is configured. + +{% endnote %} + +{% tip %} + +If you scroll to the top and select **Events**, you can individually select and deselect the events the Sleep as Android app should trigger. + +{% endtip %} + +{% include integrations/config_flow.md %} + +## Sensors + +- **Next alarm**: The scheduled time of your upcoming alarm. +- **Alarm label**: The label or description assigned to the next alarm. + +## Events + +The integration offers various event entities that will display the most recent events from Sleep as Android. + +### Alarm clock + +Events related to the alarm clock feature. + +| Event type | Description | +| ------------------- | -------------------------- | +| `alert_dismiss` | Alarm dismissed | +| `alert_start` | Alarm started | +| `rescheduled` | Alarm rescheduled | +| `skip_next` | Alarm skipped | +| `snooze_clicked` | Snoozing | +| `snooze_canceled` | Snoozing canceled | + +### Smart wake-up + +Events related to the smart wake-up feature. + +| Event type | Description | +| ------------------------- | -------------------------- | +| `before_smart_period` | 45min before smart wake-up | +| `smart_period` | Smart wake-up started | + +### User notifications + +Events related to user notifications. + +| Event type | Description | +| ------------------------- | --------------- | +| `wake_up_check` | Wake-up check | +| `show_skip_next_alarm` | Skip next alarm | +| `time_to_bed_alarm_alert` | Time to bed | + +### Sleep health + +Events related to sleep health. + +| Event type | Description | +| ------------- | ---------------------- | +| `antisnoring` | Anti-snoring triggered | +| `apnea_alarm` | Sleep apnea detected | + +### Lullaby + +Events related to the Lullaby feature. + +| Event type | Description | +| ------------- | ------------------------------- | +| `start` | Lullaby started playing | +| `stop` | Lullaby stopped playing | +| `volume_down` | Lullaby started lowering volume | + +### Sleep phase + +Events when entering a new sleep phase. + +| Event type | Description | +| ------------- | ----------- | +| `awake` | Woke up | +| `deep_sleep` | Deep sleep | +| `light_sleep` | Light sleep | +| `not_awake` | Fell asleep | +| `rem` | REM sleep | + +{% warning %} + +Be cautious when automating based on sleep phase events, especially deep and light sleep, as these can trigger lots of events throughout the night, and they may not precisely correlate with the resulting sleep graph as Sleep as Android can only detect phases reliably using whole-night data. + +{% endwarning %} + +### Sleep tracking + +Events related to the sleep tracking feature. + +| Event type | Description | +| ---------- | ---------------- | +| `paused` | Tracking paused | +| `resumed` | Tracking resumed | +| `started` | Tracking started | +| `stopped` | Tracking stopped | + +### Sound recognition + +Events triggered when a specific sound is detected during sleep tracking. + +| Event type | Description | +| ---------- | -------------------- | +| `baby` | Baby crying | +| `cough` | Coughing or sneezing | +| `laugh` | Laughter | +| `snore` | Snoring | +| `talk` | Talking | + +## Automation + +Here’s an example automation: when your Sleep as Android alarm starts ringing, your bedroom blinds will automatically open. + +{% raw %} + +```yaml +alias: Open window blinds on Alarm +triggers: + - trigger: state + entity_id: + - event.sleep_as_android_alarm_clock + attribute: event_type + to: alert_start + not_from: unavailable +conditions: + - condition: state + entity_id: person.user1 + state: home +actions: + - action: cover.open_cover + target: + entity_id: cover.bedroom_blinds +mode: single +``` + +{% endraw %} + +## Data updates + +This integration receives push updates from the Sleep as Android app whenever an event is triggered. If no events occur, the displayed data may become outdated. + +## Known limitations + +- If Home Assistant is unreachable when an event is pushed, for example when you are away from your home network without remote access, the Sleep as Android integration will miss the update. The app does not retry sending it. + +- The integration does not support controlling the Sleep as Android app, such as setting alarm times or turning off alarms. + +## Troubleshooting + +The **Sleep as Android** integration receives updates via a push from your Sleep as Android app to a webhook. If you encounter issues, verify that your Home Assistant is reachable from your mobile phone. + +In any case, when reporting an issue, please enable [debug logging](/docs/configuration/troubleshooting/#debug-logs-and-diagnostics), restart the integration, and as soon as the issue reoccurs, stop the debug logging again (*download of debug log file will start automatically*). Further, if still possible, please also download the [diagnostics](/integrations/diagnostics) data. If you have collected the debug log and the diagnostics data, provide them with the issue report. + +## Removing the integration + +This integration can be removed by following these steps: + +{% include integrations/remove_device_service.md %} + +4. Open the Sleep as Android app and go to {% icon "mdi:cog" %} **Settings** > **Services** > **Automation** > **Webhooks**. Turn off webhooks and remove the URL. diff --git a/source/_integrations/smarla.markdown b/source/_integrations/smarla.markdown index c38154d5e261..3c8122d02e0b 100644 --- a/source/_integrations/smarla.markdown +++ b/source/_integrations/smarla.markdown @@ -3,6 +3,7 @@ title: Swing2Sleep Smarla description: Instructions on connecting Swing2Sleep Smarla to Home Assistant. ha_category: - Number + - Sensor - Switch ha_iot_class: Cloud Push ha_release: 2025.6 @@ -14,6 +15,7 @@ ha_integration_type: device ha_config_flow: true ha_platforms: - number + - sensor - switch ha_quality_scale: bronze --- @@ -45,6 +47,10 @@ This component will set up the following entities: | `swing_active` | `switch` | Turns the cradle’s oscillation on or off. | | `smart_mode` | `switch` | Enables or disables automatic intensity control. | | `intensity` | `number` | Sets the intensity level (range: `0` to `100`). | +| `amplitude` | `sensor` | Displays the current measured amplitude of the oscillation. | +| `period` | `sensor` | Displays the current measured period of the oscillation. | +| `activity` | `sensor` | Displays the current measured activity level. | +| `swing_count` | `sensor` | Displays the total number of swings. | ## Removing the integration diff --git a/source/_integrations/snapcast.markdown b/source/_integrations/snapcast.markdown index 252e4d52b0f4..998306275cff 100644 --- a/source/_integrations/snapcast.markdown +++ b/source/_integrations/snapcast.markdown @@ -38,23 +38,6 @@ Restore a previously taken snapshot of one or more speakers. | ---------------------- | -------- | ----------- | | `entity_id` | no | String or list of `entity_id`s that should have their snapshot restored. -### Action `snapcast.join` - -Group players together under a single group. - -| Data attribute | Optional | Description | -| ---------------------- | -------- | ----------- | -| `master` | no | Entity ID of the player to synchronize to. -| `entity_id` | yes | String or list of `entity_id`s to join to the master. - -### Action `snapcast.unjoin` - -Remove one or more speakers from their group of speakers. - -| Data attribute | Optional | Description | -| ---------------------- | -------- | ----------- | -| `entity_id` | no | String or list of `entity_id`s to separate from their coordinator speaker. - ### Action `snapcast.set_latency` Set the latency of a speaker. diff --git a/source/_integrations/solarlog.markdown b/source/_integrations/solarlog.markdown index 7a32c8c3b5f8..b24b963d0858 100644 --- a/source/_integrations/solarlog.markdown +++ b/source/_integrations/solarlog.markdown @@ -100,8 +100,13 @@ The following additional sensor becomes available: | Name | Unit | Description | |-----------------------|--------|:-------------------------------------------| +| charge_level | % | Current charge level of battery.* | +| charging_power | W | Current power charging battery.* | +| discharging_power | W | Current power discharging battery.* | | self_consumption_year | kWh | Annual self-consumed solar power. | +*Only available, if battery connected to solarlog. + In addition, information from devices connected to the Solar-Log device becomes available. The following additional sensors become available (all values are per inverter/device): | Name | Unit | Description | diff --git a/source/_integrations/sonos.markdown b/source/_integrations/sonos.markdown index 7cae6b2e9bc8..52eec562cb69 100644 --- a/source/_integrations/sonos.markdown +++ b/source/_integrations/sonos.markdown @@ -30,7 +30,7 @@ The `sonos` integration allows you to control your [Sonos](https://www.sonos.com ## Feature controls & sensors -Speaker-level controls are exposed as `number` or `switch` entities. Additionally, various `sensor` and `binary_sensor` entities are provided. +Speaker-level controls are exposed as `number`, `select` or `switch` entities. Additionally, various `sensor` and `binary_sensor` entities are provided. ### Controllable features @@ -45,6 +45,14 @@ Speaker-level controls are exposed as `number` or `switch` entities. Additionall - **Home theater devices**: Audio Input Format - **Voice-enabled devices**: Microphone Enabled +### Select + +The following select entities are created: + +- **Dialog Level** + Lets you set the dialog mode on your **Sonos Arc Ultra** soundbar. You can choose from None, Low, Medium, High, or Max. + + ### Battery support notes Battery sensors are fully supported for the `Sonos Roam` and `Sonos Move` devices on S2 firmware. `Sonos Move` speakers still on S1 firmware are supported but may update infrequently. diff --git a/source/_integrations/switchbot_cloud.markdown b/source/_integrations/switchbot_cloud.markdown index bb1b639a7d90..52ea4e6f276d 100644 --- a/source/_integrations/switchbot_cloud.markdown +++ b/source/_integrations/switchbot_cloud.markdown @@ -4,6 +4,7 @@ description: Instructions on how to set up SwitchBot Devices. ha_category: - Binary Sensor - Button + - Cover - Fan - Hub - Light @@ -23,6 +24,7 @@ ha_domain: switchbot_cloud ha_platforms: - binary_sensor - button + - cover - climate - light - fan @@ -56,6 +58,14 @@ Please note, device names configured in the SwitchBot app are transferred into H - [Plug Mini (HomeKit Enabled)](https://www.switch-bot.com/products/switchbot-plug-mini-homekit-enabled) - Plug (Wi-Fi only, only available in Japan) +### Cover + +- [Curtain (WoCurtain)](https://switch-bot.com/pages/switchbot-curtain) (version 1 & 2) +- [Curtain 3 (WoCtn3)](https://switch-bot.com/pages/switchbot-curtain-3) +- [Blind Tilt (WoBlindTilt)](https://switch-bot.com/pages/switchbot-blind-tilt) +- [Roller Shade](https://www.switch-bot.com/products/switchbot-roller-shade) +- [Garage Door Opener](https://www.switch-bot.com/products/switchbot-garage-door-opener) + ### Lights - [LED Strip Light 3](https://www.switch-bot.com/products/switchbot-led-strip-light-3) @@ -134,6 +144,51 @@ Features: Features: - turn on or off +### Cover + +#### Curtain + +Features: +- open/close/pause +- set position +- get position +- get battery level +- get calibration state + +#### Curtain 3 + +Features: +- open/close/pause +- set position +- get position +- get battery level +- get calibration state + +#### Blind Tilt + +Features: +- close up/close down +- set position +- get position +- get battery level +- get calibration state + +#### Roller Shade + +Features: +- open/close +- set position +- get position +- get battery level +- get calibration state + +#### Garage Door Opener + +Features: +- open/close +- set position +- get position +- get calibration state ### Sensors diff --git a/source/_integrations/telegram_bot.markdown b/source/_integrations/telegram_bot.markdown index be334db9ef3f..2012656affa1 100644 --- a/source/_integrations/telegram_bot.markdown +++ b/source/_integrations/telegram_bot.markdown @@ -144,6 +144,26 @@ Chat ID: description: ID representing the user or group chat to which messages can be sent. {% endconfiguration_basic %} +## Notifiers + +This integration will add a notify {% term entity %} for each configured chat ID. +You can use the `notify.send_message` action to publish notifications. + +{% details "Example YAML configuration" %} + +{% raw %} + +```yaml +action: notify.send_message +data: + message: "Reminder: Have you considered frogs?" + entity_id: notify.telegram_bot_chat +``` + +{% endraw %} + +{% enddetails %} + ## Notification actions Available actions: `send_message`, `send_photo`, `send_video`, `send_animation`, `send_voice`, `send_sticker`, `send_document`, `send_location`, `edit_message`, `edit_caption`, `edit_replymarkup`, `answer_callback_query`, `delete_message`, `leave_chat` and `set_message_reaction`. @@ -445,6 +465,13 @@ Sets the bot's reaction for a given message. ## Telegram notification platform +{% warning %} + +The notification platform has been marked as legacy and might be deprecated in the future. +Please use [notifiers](./#notifiers) instead. + +{% endwarning %} + The [`telegram` notification platform](/integrations/telegram) requires the `telegram_bot` integration to work with, and it's designed to generate a customized shortcut (`notify.USERNAME`) to send notifications (messages, photos, documents, and locations) to a particular `chat_id` with the old syntax, allowing backward compatibility. The data attributes `parse_mode`, `disable_notification`, `message_tag`, `disable_web_page_preview`, and `message_thread_id` are also supported. The required YAML configuration now reduces to: @@ -468,10 +495,17 @@ args: "" from_first: "" from_last: "" user_id: "" +id: "" chat_id: "" chat: "" date: "" message_thread_id: "" +bot: + config_entry_id: "" + id: "" + first_name: "" + last_name: "" + username: "" ``` Any other message not starting with `/` will be processed as simple text, firing a `telegram_text` event on the event bus with the following `event_data`: @@ -481,10 +515,16 @@ text: "some text received" from_first: "" from_last: "" user_id: "" +id: "" chat_id: "" -chat: "" date: "" message_thread_id: "" +bot: + config_entry_id: "" + id: "" + first_name: "" + last_name: "" + username: "" ``` If the message is sent from a [press from an inline button](https://core.telegram.org/bots#inline-keyboards-and-on-the-fly-updating), for example, a callback query is received, and Home Assistant will fire a `telegram_callback` event with: @@ -498,6 +538,12 @@ user_id: "" id: "" chat_instance: "" chat_id: "" +bot: + config_entry_id: "" + id: "" + first_name: "" + last_name: "" + username: "" ``` ### Configuration samples diff --git a/source/_integrations/template.markdown b/source/_integrations/template.markdown index 43431e6d7ba7..8f1f4a006d92 100644 --- a/source/_integrations/template.markdown +++ b/source/_integrations/template.markdown @@ -308,6 +308,11 @@ alarm_control_panel: description: Defines an action to run when the alarm is disarmed. required: false type: action + optimistic: + description: Flag that defines if the alarm control panel works in optimistic mode. When enabled, the alarm control panel's state will update immediately when a new option is chosen through the UI or service calls, without waiting for the template defined in `state` to update. When disabled (default), the alarm control panel will only update when the `state` template returns a new value. + required: false + type: boolean + default: false state: description: "Defines a template to set the state of the alarm panel. Only the states `armed_away`, `armed_home`, `armed_night`, `armed_vacation`, `arming`, `disarmed`, `pending`, `triggered` and `unavailable` are used." required: false @@ -828,14 +833,19 @@ fan: required: true type: map keys: - oscillating: - description: "Defines a template to get the osc state of the fan. Valid values: `true`, `false`." - required: false - type: template direction: description: "Defines a template to get the direction of the fan. Valid values: `forward`, `reverse`." required: false type: template + optimistic: + description: Flag that defines if the fan works in optimistic mode. When enabled, the fan's state will update immediately when a new option is chosen through the UI or service calls, without waiting for the template defined in `state` to update. When disabled (default), the fan will only update when the `state` template returns a new value. + required: false + type: boolean + default: false + oscillating: + description: "Defines a template to get the oscillation state of the fan. Valid values: `true`, `false`." + required: false + type: template percentage: description: Defines a template to get the speed percentage of the fan. required: false @@ -1197,6 +1207,11 @@ light: required: false type: template default: optimistic + optimistic: + description: Flag that defines if the light works in optimistic mode. When enabled, the light's state will update immediately when a new option is chosen through the UI or service calls, without waiting for the template defined in `state` to update. When disabled (default), the light will only update when the `state` template returns a new value. + required: false + type: boolean + default: false rgb: description: Defines a template to get the RGB color of the light. Must render a tuple or a list (red, green, blue). required: false @@ -1441,13 +1456,14 @@ lock: required: false type: action optimistic: - description: Flag that defines if the lock works in optimistic mode. + description: Flag that defines if the lock works in optimistic mode. When enabled, the lock's state will update immediately when a new option is chosen through the UI or service calls, without waiting for the template defined in `state` to update. When disabled (default), the lock will only update when the `state` template returns a new value. required: false type: boolean default: false state: description: Defines a template to set the state of the lock. Valid output values from the template are `locked`, `unlocked`, `open`, `locking`, `unlocking`, `opening`, and `jammed`, which are directly mapped to the corresponding states. In addition, `true` and `on` are valid as synonyms to `locked` while `false` and `off` are valid as synonyms to `unlocked`. - required: true + required: false + default: optimistic type: template unlock: description: Defines an action to run when the lock is unlocked. @@ -1626,7 +1642,7 @@ number: type: template default: 0.0 optimistic: - description: Flag that defines if number works in optimistic mode. When enabled, the number's state will update immediately when changed through the UI or service calls, without waiting for the template defined in `state` to update. When disabled (default), the number will only update when the `state` template returns a new value. + description: Flag that defines if the number works in optimistic mode. When enabled, the number's state will update immediately when changed through the UI or service calls, without waiting for the template defined in `state` to update. When disabled (default), the number will only update when the `state` template returns a new value. required: false type: boolean default: false @@ -1726,7 +1742,7 @@ select: type: map keys: optimistic: - description: Flag that defines if select works in optimistic mode. When enabled, the select's state will update immediately when a new option is chosen through the UI or service calls, without waiting for the template defined in `state` to update. When disabled (default), the select will only update when the `state` template returns a new value. + description: Flag that defines if the select works in optimistic mode. When enabled, the select's state will update immediately when a new option is chosen through the UI or service calls, without waiting for the template defined in `state` to update. When disabled (default), the select will only update when the `state` template returns a new value. required: false type: boolean default: false @@ -1980,6 +1996,11 @@ switch: required: true type: map keys: + optimistic: + description: Flag that defines if the switch works in optimistic mode. When enabled, the switch's state will update immediately when a new option is chosen through the UI or service calls, without waiting for the template defined in `state` to update. When disabled (default), the switch will only update when the `state` template returns a new value. + required: false + type: boolean + default: false state: description: Defines a template to set the state of the switch. If not defined, the switch will optimistically assume all commands are successful. required: false @@ -2155,6 +2176,11 @@ vacuum: description: Defines an action to run when the vacuum is given a locate command. required: false type: action + optimistic: + description: Flag that defines if the vacuum works in optimistic mode. When enabled, the vacuum's state will update immediately when a new option is chosen through the UI or service calls, without waiting for the template defined in `state` to update. When disabled (default), the vacuum will only update when the `state` template returns a new value. + required: false + type: boolean + default: false pause: description: Defines an action to run when the vacuum is paused. required: false @@ -2174,6 +2200,7 @@ vacuum: state: description: "Defines a template to get the state of the vacuum. Valid value: `docked`/`cleaning`/`idle`/`paused`/`returning`/`error`" required: false + default: optimistic type: template stop: description: Defines an action to run when the vacuum is stopped. diff --git a/source/_integrations/togrill.markdown b/source/_integrations/togrill.markdown new file mode 100644 index 000000000000..1571e6de3a5c --- /dev/null +++ b/source/_integrations/togrill.markdown @@ -0,0 +1,65 @@ +--- +title: ToGrill Bluetooth BBQ thermometers +description: Control and monitor your ToGrill compatible BBQ thermometers. +ha_iot_class: Local Push +ha_config_flow: true +ha_release: '2025.9' +ha_category: + - Event + - Sensor + - Number +ha_domain: togrill +ha_bluetooth: true +ha_platforms: + - event + - sensor + - number +ha_integration_type: device +ha_codeowners: + - '@elupus' +ha_quality_scale: bronze +--- + +The ToGrill {% term integration %} allows you to connect your ToGrill compatible Bluetooth grill thermometer. + +{% tip %} + +The recommended way to connect the device to Home Assistant is by using an [ESPHome Bluetooth Proxy](https://esphome.io/projects/?type=bluetooth), as they provide the best experience. + +{% endtip %} + +{% include integrations/config_flow.md %} + +Home Assistant will display a list of addresses of the available desks, and you just need to select the one you want to add. Repeat the process to add more than one desk. + +{% note %} +When the Home Assistant integration is active, it will take exclusive control over the device and block access by other controllers like the standard smart phone applications. +{% endnote %} + +## Known working devices + +Many ToGrill compatible devices exist from many different vendors. Only a subset has been tested successfully. These are known to work. Other detected devices may work or may not work as expected. + +| Device | Model | +|----------------------------------|--------| +| Rubicson - BBQ probe thermometer | Pro-05 | + +## Events + +**Probe X**: The most recently triggered alarm or event on the probe. The following event types are expected: `alarm`, `acknowledge`, `disconnected`. + +## Sensors + +**Probe X**: The current temperature of the given temperature probe +**Battery**: The current battery level of the device. + +## Numbers + +**Target X**: The target temperature of the given temperature probe. Set value to 0 to disable target alarm. +**Alarm interval**: The interval in minutes between successive alarms. + +## Removing the integration + +This integration follows standard integration removal. No extra steps are required. + +{% include integrations/remove_device_service.md %} diff --git a/source/_integrations/tuya.markdown b/source/_integrations/tuya.markdown index 635a8276d1ba..a3485cfd400d 100644 --- a/source/_integrations/tuya.markdown +++ b/source/_integrations/tuya.markdown @@ -17,6 +17,7 @@ ha_category: - Siren - Switch - Vacuum + - Valve ha_iot_class: Cloud Push ha_release: 0.74 ha_config_flow: true @@ -43,6 +44,7 @@ ha_platforms: - siren - switch - vacuum + - valve ha_dhcp: true ha_integration_type: hub --- diff --git a/source/_integrations/vacuum.mqtt.markdown b/source/_integrations/vacuum.mqtt.markdown index 9356c1a03d2c..05130c5afc73 100644 --- a/source/_integrations/vacuum.mqtt.markdown +++ b/source/_integrations/vacuum.mqtt.markdown @@ -208,14 +208,14 @@ set_fan_speed_topic: required: false type: string state_topic: - description: "The MQTT topic subscribed to receive state messages from the vacuum. Messages received on the `state_topic` must be a valid JSON dictionary, with a mandatory `state` key and optionally `battery_level` and `fan_speed` keys as shown in the [example](#configuration-example)." + description: "The MQTT topic subscribed to receive state messages from the vacuum. Messages received on the `state_topic` must be a valid JSON dictionary, with a mandatory `state` key and optionally `fan_speed` keys as shown in the [example](#configuration-example)." required: false type: string supported_features: - description: "List of features that the vacuum supports (possible values are `start`, `stop`, `pause`, `return_home`, `battery`, `status`, `locate`, `clean_spot`, `fan_speed`, `send_command`)." + description: "List of features that the vacuum supports (possible values are `start`, `stop`, `pause`, `return_home`, `status`, `locate`, `clean_spot`, `fan_speed`, `send_command`)." required: false type: [string, list] - default: "`start`, `stop`, `return_home`, `status`, `battery`, `clean_spot`" + default: "`start`, `stop`, `return_home`, `status`, `clean_spot`" unique_id: description: An ID that uniquely identifies this vacuum. If two vacuums have the same unique ID, Home Assistant will raise an exception. Required when used with device-based discovery. required: false @@ -234,7 +234,6 @@ mqtt: - pause - stop - return_home - - battery - status - locate - clean_spot @@ -312,7 +311,6 @@ MQTT payload: ```json { - "battery_level": 61, "state": "docked", "fan_speed": "off" } diff --git a/source/_integrations/yolink.markdown b/source/_integrations/yolink.markdown index 9d3888052c6f..b4c434131286 100644 --- a/source/_integrations/yolink.markdown +++ b/source/_integrations/yolink.markdown @@ -24,6 +24,7 @@ ha_platforms: - light - lock - number + - select - sensor - siren - switch @@ -102,6 +103,8 @@ The integration is tested and verified for the following devices from YoLink: - YS8015-UC (X3 Outdoor Temperature & Humidity Sensor) - YS8017-UC (Thermometer) - YS8023-UC (Hygrometer Thermometer) +- YS4102-UC (Sprinkler) +- YS4103-UC (Sprinkler Timer) ## Actions diff --git a/source/_redirects b/source/_redirects index 96b72be83663..8c8f4f5a22a1 100644 --- a/source/_redirects +++ b/source/_redirects @@ -586,6 +586,7 @@ layout: null /integrations/lirc /more-info/removed-integration 301 /integrations/life360 /more-info/removed-integration 301 /integrations/lifx_legacy /more-info/removed-integration 301 +/integrations/linear_garage_door /more-info/removed-integration 301 /integrations/linksys_ap /more-info/removed-integration 301 /integrations/linky /more-info/removed-integration 301 /integrations/liveboxplaytv /more-info/removed-integration 301 @@ -598,6 +599,7 @@ layout: null /integrations/mailbox /more-info/removed-integration 301 /integrations/mazda /more-info/removed-integration 301 /integrations/mcp23017 /more-info/removed-integration 301 +/integrations/mercury_nz /more-info/removed-integration 301 /integrations/mhz19 /more-info/removed-integration 301 /integrations/myq /blog/2023/11/06/removal-of-myq-integration/ 301 /integrations/miflora /integrations/xiaomi_ble diff --git a/source/dashboards/features.markdown b/source/dashboards/features.markdown index 592a7561eccb..22cb4343ecbd 100644 --- a/source/dashboards/features.markdown +++ b/source/dashboards/features.markdown @@ -42,6 +42,28 @@ Features can be enabled on the following cards: ![Screen recording showing how you can now reorder the HVAC modes on the thermostat shown in a tile card.](/images/blog/2024-05/tile-card-reorder-features.gif) +## History chart + +Widget that displays the history of a [sensor](/integrations/sensor) or [binary_sensor](/integrations/binary_sensor). + +

+ Screenshot of the tile card with the history chart feature for a numeric entity + Screenshot of the tile card with the history chart feature for a non-numeric entity + Screenshots of the tile card with the history chart feature +

+ +```yaml +features: + - type: "history-chart" +``` + +{% configuration features %} +type: + required: true + description: "`history-chart`" + type: string +{% endconfiguration %} + ## Alarm modes Widget that displays buttons to arm and disarm an [alarm](/integrations/alarm_control_panel). @@ -74,6 +96,27 @@ modes: type: list {% endconfiguration %} +## Bar gauge + +Widget that displays the state of a numeric [sensor](/integrations/sensor), with unit of measurement %, as a horizontal bar. + +

+ Screenshot of the tile card with the bar gauge feature + Screenshots of the tile card with the bar gauge feature +

+ +```yaml +features: + - type: "bar-gauge" +``` + +{% configuration features %} +type: + required: true + description: "`bar-gauge`" + type: string +{% endconfiguration %} + ## Button Widget that displays buttons to control [button](/integrations/button) or [script](/integrations/script). @@ -322,6 +365,69 @@ type: type: string {% endconfiguration %} +## Date + +Widget that displays a button to select a date using the date picker dialog for the [date](/integrations/date), [datetime](/integrations/datetime), and [input datetime](/integrations/input_datetime) entities. + +

+ Screenshot of the tile card with the date feature + Screenshot of the tile card with the date feature +

+ +```yaml +features: + - type: "date" +``` + +{% configuration features %} +type: + required: true + description: "`date`" + type: string +{% endconfiguration %} + +## Fan direction + +Widget that displays controls to change direction for a [fan](/integrations/fan). + +

+ Screenshot of the tile card with the fan direction feature + Screenshot of the tile card with the fan direction feature +

+ +```yaml +features: + - type: "fan-direction" +``` + +{% configuration features %} +type: + required: true + description: "`fan-direction`" + type: string +{% endconfiguration %} + +## Fan oscillate + +Widget that displays controls to change oscillation state for a [fan](/integrations/fan). + +

+ Screenshot of the tile card with the fan oscillate feature + Screenshot of the tile card with the fan oscillate feature +

+ +```yaml +features: + - type: "fan-oscillate" +``` + +{% configuration features %} +type: + required: true + description: "`fan-oscillate`" + type: string +{% endconfiguration %} + ## Fan preset modes Widget that displays buttons or icons to control the preset mode for a [fan](/integrations/fan). @@ -546,6 +652,27 @@ type: type: string {% endconfiguration %} +## Media player playback controls + +Widget that displays playback controls for a [media player](/integrations/media_player). + +

+ Screenshot of the tile card with media player playback feature + Screenshot of the tile card with media player playback feature +

+ +```yaml +features: + - type: "media-player-playback" +``` + +{% configuration features %} +type: + required: true + description: "`media-player-playback`" + type: string +{% endconfiguration %} + ## Media player volume slider Widget that displays a slider to control the volume for a [media player](/integrations/media_player). @@ -715,6 +842,48 @@ commands: type: list {% endconfiguration %} +## Valve open/close + +Widget that displays buttons to open, close, or stop a [valve](/integrations/valve). + +

+ Screenshot of the tile card with open/close feature + Screenshot of the tile card with valve open/close feature +

+ +```yaml +features: + - type: "valve-open-close" +``` + +{% configuration features %} +type: + required: true + description: "`valve-open-close`" + type: string +{% endconfiguration %} + +## Valve position + +Widget that displays a slider to control the position for a [valve](/integrations/valve). + +

+ Screenshot of the tile card with the valve position feature + Screenshot of the tile card with the valve position feature +

+ +```yaml +features: + - type: "valve-position" +``` + +{% configuration features %} +type: + required: true + description: "`valve-position`" + type: string +{% endconfiguration %} + ## Water heater operation modes Widget that displays buttons to control the operation mode of a [water heater](/integrations/water_heater). diff --git a/source/images/dashboards/features/bar-gauge.png b/source/images/dashboards/features/bar-gauge.png new file mode 100644 index 000000000000..7dad15d5f7d5 Binary files /dev/null and b/source/images/dashboards/features/bar-gauge.png differ diff --git a/source/images/dashboards/features/date.png b/source/images/dashboards/features/date.png new file mode 100644 index 000000000000..8359ba146cbb Binary files /dev/null and b/source/images/dashboards/features/date.png differ diff --git a/source/images/dashboards/features/fan_direction.png b/source/images/dashboards/features/fan_direction.png new file mode 100644 index 000000000000..8889c240a0de Binary files /dev/null and b/source/images/dashboards/features/fan_direction.png differ diff --git a/source/images/dashboards/features/fan_oscillate.png b/source/images/dashboards/features/fan_oscillate.png new file mode 100644 index 000000000000..e72300bfb112 Binary files /dev/null and b/source/images/dashboards/features/fan_oscillate.png differ diff --git a/source/images/dashboards/features/history-chart-line.png b/source/images/dashboards/features/history-chart-line.png new file mode 100644 index 000000000000..5b19fc379e21 Binary files /dev/null and b/source/images/dashboards/features/history-chart-line.png differ diff --git a/source/images/dashboards/features/history-chart-timeline.png b/source/images/dashboards/features/history-chart-timeline.png new file mode 100644 index 000000000000..1f56921e1842 Binary files /dev/null and b/source/images/dashboards/features/history-chart-timeline.png differ diff --git a/source/images/dashboards/features/media_player_playback.png b/source/images/dashboards/features/media_player_playback.png new file mode 100644 index 000000000000..ef5d4ecd5d3f Binary files /dev/null and b/source/images/dashboards/features/media_player_playback.png differ diff --git a/source/images/dashboards/features/valve_open_close.png b/source/images/dashboards/features/valve_open_close.png new file mode 100644 index 000000000000..45df500b1c9a Binary files /dev/null and b/source/images/dashboards/features/valve_open_close.png differ diff --git a/source/images/dashboards/features/valve_position.png b/source/images/dashboards/features/valve_position.png new file mode 100644 index 000000000000..f107c44cec01 Binary files /dev/null and b/source/images/dashboards/features/valve_position.png differ diff --git a/source/images/integrations/enphase_envoy/enphase_envoy_collar_and_ccc_data.png b/source/images/integrations/enphase_envoy/enphase_envoy_collar_and_ccc_data.png new file mode 100644 index 000000000000..32d7f6371f83 Binary files /dev/null and b/source/images/integrations/enphase_envoy/enphase_envoy_collar_and_ccc_data.png differ