diff --git a/source/_dashboards/energy.markdown b/source/_dashboards/energy.markdown index 151621e31bda..30aa7e114f63 100644 --- a/source/_dashboards/energy.markdown +++ b/source/_dashboards/energy.markdown @@ -40,6 +40,26 @@ type: energy-date-selection The energy usage graph card shows the amount of energy your house has consumed, and from what source this energy came. It will also show the amount of energy your have returned to the grid. +### YAML configuration + +The following YAML options are available + +{% configuration %} +type: + required: true + description: "`energy-usage-graph`" + type: string +collection_key: + required: false + description: "Collection key to use for the card. This links the card to a specific energy dashboard collection. Defaults to `energy_dashboard`." + type: string + default: energy_dashboard +title: + required: false + description: When defined, shows a card header with the title string and total energy consumed chip. + type: string +{% endconfiguration %} + ### Example ```yaml @@ -55,6 +75,26 @@ type: energy-usage-graph The solar production graph card shows the amount of energy your solar panels have produced per source, and if setup and available the forecast of the solar production. +### YAML configuration + +The following YAML options are available + +{% configuration %} +type: + required: true + description: "`energy-solar-graph`" + type: string +collection_key: + required: false + description: "Collection key to use for the card. This links the card to a specific energy dashboard collection. Defaults to `energy_dashboard`." + type: string + default: energy_dashboard +title: + required: false + description: When defined, shows a card header with the title string and total solar produced chip. + type: string +{% endconfiguration %} + ### Example ```yaml @@ -70,6 +110,22 @@ type: energy-solar-graph The gas consumption graph card shows the amount of gas consumed per source. +{% configuration %} +type: + required: true + description: "`energy-gas-graph`" + type: string +collection_key: + required: false + description: "Collection key to use for the card. This links the card to a specific energy dashboard collection. Defaults to `energy_dashboard`." + type: string + default: energy_dashboard +title: + required: false + description: When defined, shows a card header with the title string and total gas consumed chip. + type: string +{% endconfiguration %} + ### Example ```yaml @@ -85,6 +141,26 @@ type: energy-gas-graph The water consumption graph card shows the amount of water consumed per source. +### YAML configuration + +The following YAML options are available + +{% configuration %} +type: + required: true + description: "`energy-water-graph`" + type: string +collection_key: + required: false + description: "Collection key to use for the card. This links the card to a specific energy dashboard collection. Defaults to `energy_dashboard`." + type: string + default: energy_dashboard +title: + required: false + description: When defined, shows a card header with the title string and total water consumed chip. + type: string +{% endconfiguration %} + ### Example ```yaml diff --git a/source/_dashboards/weather-forecast.markdown b/source/_dashboards/weather-forecast.markdown index 60afe852fd6c..6439b3960410 100644 --- a/source/_dashboards/weather-forecast.markdown +++ b/source/_dashboards/weather-forecast.markdown @@ -34,6 +34,8 @@ Forecast type: description: Select the forecast to display between "Daily", "Hourly" and "Twice daily". Secondary Info Attribute: description: Here you can specify a secondary attribute to show under the current temperature. Ex. Extrema, Precipitation, Humidity. If not set, it will default to Extrema (High/Low) if available, if not available then Precipitation and if precipitation isn't available then Humidity. +Round temperature: + description: Check this if you would like to round all temperature values in the card to its nearest integer. Theme: description: Name of any loaded theme to be used for this card. For more information about themes, see the [frontend documentation](/integrations/frontend/). {% endconfiguration_basic %} @@ -82,6 +84,11 @@ secondary_info_attribute: description: Which attribute to display under the temperature. type: string default: Defaults to `extrema` if available, if not available then `precipitation` and if precipitation isn't available then `humidity`. +round_temperature: + required: false + description: Round temperature values to the closest integer. + type: boolean + default: false theme: required: false description: Override the used theme for this card with any loaded theme. For more information about themes, see the [frontend documentation](/integrations/frontend/). diff --git a/source/_integrations/airobot.markdown b/source/_integrations/airobot.markdown index ed680e3ae929..34303194f181 100644 --- a/source/_integrations/airobot.markdown +++ b/source/_integrations/airobot.markdown @@ -42,15 +42,30 @@ The integration can be automatically discovered via DHCP when the thermostat is {% configuration_basic %} Host: description: "The hostname or IP address of your Airobot thermostat. You can find it in your router settings, or use the hostname format `airobot-thermostat-t01xxxxxx` (replace `t01xxxxxx` with your Device ID in lowercase)." -Username: +Device ID: description: "The thermostat Device ID (e.g., T01XXXXXX). You can find this in the thermostat menu under **Connectivity** > **Mobile app** screen. This is the same credential used to pair the mobile app." Password: description: "The thermostat password. You can find this in the thermostat menu under **Connectivity** > **Mobile app** screen. This is the same credential used to pair the mobile app." {% endconfiguration_basic %} +## Reconfiguration + +If you need to update the connection settings for your thermostat (such as changing the IP address, Device ID, or password), you can reconfigure the integration without removing and re-adding it: + +1. Go to {% my integrations title="**Settings** > **Devices & services**" %}. +2. On the **Airobot** integration, select the three-dot menu and choose **Reconfigure**. +3. Update the connection settings as needed. +4. Select **Submit** to save the new settings. + +This is useful when: + +- Your thermostat's IP address has changed (for example, after a router restart or a DHCP lease renewal). +- You need to update the Device ID or password. +- You want to switch between IP address and hostname. + ## Supported functionality -The **Airobot** integration provides climate control functionality with comprehensive temperature management and preset modes. +The **Airobot** integration provides climate control functionality with comprehensive temperature management and preset modes, as well as detailed sensor monitoring. ### Climate @@ -70,10 +85,41 @@ The thermostat is represented as a climate entity with the following capabilitie - **Away**: Use the AWAY temperature setpoint (typically lower for energy savings) - **Boost**: Temporarily boost heating for 1 hour, then return to the previous mode +### Sensors + +The integration provides the following sensor entities to monitor your thermostat and environment: + +#### Environmental sensors + +- **Air temperature**: The measured air temperature in the room (in °C). +- **Floor temperature**: The measured floor temperature (in °C). Only available if a floor temperature sensor is connected to the thermostat. +- **Humidity**: The measured relative humidity in the room (in %). +- **Carbon dioxide**: The measured carbon dioxide concentration in the room (in ppm). Only available if the thermostat has the optional carbon dioxide sensor. +- **Air quality index**: The calculated air quality index based on carbon dioxide levels. Only available if the thermostat has the optional carbon dioxide sensor. + +#### Diagnostic sensors + +The following diagnostic sensors are disabled by default. You can enable them in the entity settings if needed: + +- **Device uptime**: The time (in hours) since the thermostat was last restarted. +- **Heating uptime**: The cumulative time (in hours) the heating has been active since the thermostat was last restarted. + +#### System sensors + +- **Errors**: The current error count on the thermostat. A value of 0 indicates normal operation. + ## Data updates The **Airobot** integration {% term polling polls %} data from the thermostat every 30 seconds. This interval matches the thermostat's internal measurement cycle, ensuring efficient data synchronization without overwhelming the device. +## Known limitations + +- **Local API only**: The integration only supports the local REST API. Cloud-based control through the Airobot cloud service is not supported. +- **Manual API enablement**: The local REST API must be manually enabled on the thermostat before the integration can connect. It is disabled by default for security reasons. +- **Firmware requirements**: Only firmware version 1.8 or later is supported. Older firmware versions do not provide the local REST API. +- **Heating only**: The thermostat is designed for floor heating control only and does not support cooling modes. +- **Optional sensors**: carbon dioxide and floor temperature sensors are only available if the corresponding hardware is installed in your thermostat model. + ## Troubleshooting ### Cannot connect to thermostat diff --git a/source/_integrations/airpatrol.markdown b/source/_integrations/airpatrol.markdown new file mode 100644 index 000000000000..6ca98402ad93 --- /dev/null +++ b/source/_integrations/airpatrol.markdown @@ -0,0 +1,67 @@ +--- +title: Airpatrol +description: Instructions on how to integrate Airpatrol air conditioning controllers into Home Assistant. +ha_category: + - Climate +ha_release: 2026.1 +ha_iot_class: Cloud Polling +ha_config_flow: true +ha_codeowners: + - '@antondalgren' +ha_domain: airpatrol +ha_platforms: + - climate +ha_integration_type: integration +ha_quality_scale: bronze +--- + + +The **Airpatrol** {% term integration %} allows you to control air conditioning units through [Airpatrol](https://www.airpatrol.com/) devices in Home Assistant. + + +## Prerequisites + + +{% important %} +Your Airpatrol WiFi unit must be configured via the native Airpatrol application prior to being useable with this integration. This includes setting up the Wi-Fi connection and any initial device configuration. +{% endimportant %} + + +{% include integrations/config_flow.md %} + + +{% configuration_basic %} +Email: + description: The email to your account with the Airpatrol application. +Password: + description: The password to your account with the Airpatrol application. +{% endconfiguration_basic %} + + +## Supported functionality + + +### Climate + + +The integration will create a climate entity for each air conditioning system found. The climate entity allows you to control: + + +- **HVAC mode**: Set the operation mode, such as off, heat, and cool. +- **Target temperature**: Set the desired temperature for heating or cooling. +- **Fan mode**: Control the fan speed (if supported by your system). + + +## Known limitations + + +Some features may not be available depending on your specific Airpatrol model and firmware version. Check the Airpatrol documentation for your specific device to understand available features. This integration has only been tested with **Airpatrol WiFi v5**. + + +## Removing the integration + + +This integration follows standard integration removal, no extra steps are required. + + +{% include integrations/remove_device_service.md %} \ No newline at end of file diff --git a/source/_integrations/bang_olufsen.markdown b/source/_integrations/bang_olufsen.markdown index fc51f5b0ba2c..45d7d9a0c378 100644 --- a/source/_integrations/bang_olufsen.markdown +++ b/source/_integrations/bang_olufsen.markdown @@ -77,8 +77,7 @@ A number of features are available through the media player entity: #### Mozart device controls -Event entities are created for each of the physical controls on your device. These controls usually have their own behaviors, so using them for automations is not always ideal. - +Event entities are created for each of the available physical controls on your device. These controls usually have their own behaviors, so using them for automations is not always ideal. Available event entities: - Bluetooth (Not available on Beosound Premiere) @@ -100,7 +99,13 @@ All of these event entities support the following event types: - Very long press - Release of very long press -All devices except the [Beoconnect Core](https://www.bang-olufsen.com/en/dk/accessories/beoconnect-core) support device controls. +##### Button variations + +Many devices have the same button layout, but not all of them. These are the differences: + +- The [Beoconnect Core](https://www.bang-olufsen.com/en/dk/accessories/beoconnect-core) does not support device controls. +- The [Beosound A9 5th gen](https://www.bang-olufsen.com/en/dk/speakers/beosound-a9) and the [Beosound Premiere](https://www.bang-olufsen.com/en/dk/soundbars/beosound-premiere) do not have Bluetooth or Microphone buttons +- The [Beosound A5](https://www.bang-olufsen.com/en/dk/speakers/beosound-a5) does not have a Microphone button #### Beoremote One @@ -566,12 +571,20 @@ WebSocket notifications received from the device are fired as events in Home Ass To find Deezer playlist, album URIs, and user IDs for Deezer flows, the Deezer website has to be accessed. When navigating to an album, the URL will look something like: , and this needs to be converted to: `album:ALBUM_ID` and the same applies to playlists, which have the format: `playlist:PLAYLIST_ID`. -Additionally a Deezer user ID can be found at by selecting the active user in a web browser. +Deezer user IDs can be found at by selecting the active user in a web browser. + +Additionally, Deezer IDs for currently playing tracks can be found in the `media_content_id` attribute in the `media_player` entity. ### Getting Tidal URIs Tidal playlists, album URIs and track IDs are available via the Tidal website. When navigating to an album, the URL will look something like , and this needs to be converted to `album:ALBUM_ID`. The same applies to playlists, which have the format `playlist:PLAYLIST_ID`. Individual tracks can be found by sharing the track and selecting the `Copy track link` method, which should yield a link of the format , this can be played by extracting the track id `TRACK_ID`. +Additionally, Tidal IDs for currently playing tracks can be found in the `media_content_id` attribute in the `media_player` entity. + +### Getting B&O Radio station IDs + +Radio station IDs for currently playing stations can be found in the `media_content_id` attribute in the `media_player` entity. + ### Beolink Discovered devices and devices in an active Beolink experience are available in the properties of the media_player entity. A device is represented by its friendly name and JID, used for connecting devices. diff --git a/source/_integrations/egauge.markdown b/source/_integrations/egauge.markdown new file mode 100644 index 000000000000..665d4d64c11e --- /dev/null +++ b/source/_integrations/egauge.markdown @@ -0,0 +1,121 @@ +--- +title: eGauge +description: eGauge Energy Monitors +ha_release: 2026.1 +ha_category: Energy +ha_quality_scale: bronze +ha_iot_class: Local Polling +ha_codeowners: + - '@neggert' +ha_domain: egauge +ha_integration_type: device +related: + - url: https://www.egauge.net/ + title: eGauge Home +--- + +The **eGauge** {% term integration %} is used to integrate with [eGauge energy monitors](https://www.egauge.net). eGauge provides energy monitors for residential and commercial applications. They are commonly used with solar energy installations. The eGauge integration can expose sensor readings from eGauge devices into Home Assistant, including energy meters that work with the Energy Dashboard. + +## Supported devices + +This integration supports all eGauge energy monitors running firmware version 4.2 or newer. For instructions on how to check and upgrade the firmware on eGauge devices, see the [eGauge knowledge base](https://kb.egauge.net/configuration/how-to-check-and-upgrade-firmware). + +## Prerequisites + +### Creating a read-only user account for Home Assistant + +This setup is optional but recommended as a security best practice. + +1. Go to your eGauge's web dashboard. +2. Select **Settings**, then **Access Control**. +3. Add a new user with privileges set to **Allowed to view all data and settings**. +4. Select **Save**. +5. Select **Change Password** to create a password for the new account. + +### Configuring eGauge registers + +This setup is optional, but required for integration with the Energy Dashboard. + +While eGauge meters are usually configured to measure net usage, Home Assistant needs separate sensors for energy consumed and generated. This section describes how to configure your eGauge to produce these measurements for common installations. + +Consult the [eGauge Configuration Guide](https://www.egauge.net/media/support/docs/config-guide.pdf) or ask your installer to determine which type of installation you have. First, follow the basic configuration instructions in the guide. Then, you'll need to create `grid_in` and `grid_out` registers for use with Home Assistant. Note that you can name these whatever you want; you'll select them in the Energy Dashboard configuration screen. + +#### Split-phase back-fed + +In this installation, solar inverters are wired into your electrical panel. + +- `grid_in = [= ] max(0, $"grid")` +- `grid_out = [= ] max(0, -$"grid")` + +#### Direct-feed + +In this installation, solar inverters feed directly into the grid. + +- `grid_in = [= ] max(0, $"grid"-$"solar")` +- `grid_out = [= ] max(0, $"solar"-$"grid")` + +#### Other installations + +For prerequisites of other installation types, consult the [eGauge configuration guide](https://www.egauge.net/media/support/docs/config-guide.pdf). + +{% include integrations/config_flow.md %} + +{% configuration_basic %} +Host: + description: "The hostname or IP address of your eGauge device." +Username: + description: "Username that Home Assistant should use to access your eGauge device. This user must have permission to view data and settings." +Password: + description: "The password for the configured user." +Uses an SSL certificate: + description: "Use SSL for a secure connection to the eGauge device. Leave this on if you're not sure." +Verify SSL certificate: + description: "Verify that the eGauge device's SSL certificate is signed by a trusted certificate authority. By default, eGauge devices use a self-signed certificate, so leave this off unless you've uploaded a custom certificate to your eGauge." +{% endconfiguration_basic %} + +## Supported functionality + +The **eGauge** integration provides the following entities: + +### Sensors + +- **Power and energy**: Each power register on the eGauge will appear as two Home Assistant sensors: one reporting current power and the other reporting cumulative total energy usage. + +### Data updates + +The **eGauge** integration {% term polling polls %} the device every 30 seconds. + +## Known limitations + +- The integration currently only supports power registers. +- The integration is currently read-only and cannot modify settings on the eGauge device. + +## Troubleshooting + +### Can’t set up the device + +#### Symptom: "Failed to connect" + +When trying to set up the integration, the form shows the message "Failed to connect". + +##### Resolution + +This means that Home Assistant cannot find an eGauge device at the configured host. Double-check the hostname or IP address and make sure it can be reached from your Home Assistant server. You can also check to ensure that Verify SSL certificate is turned off or that the eGauge has been configured with a custom certificate signed by a certificate authority that the Home Assistant server trusts. + +#### Symptom: "Invalid authentication" + +When trying to set up the integration, the form shows the message "Invalid authentication". + +##### Resolution + +This means that Home Assistant failed to authenticate using the provided username and password. Double-check that the provided credentials are correct and that the configured user has permission to view data and settings. + +### Unexpected sensor values + +Check that your eGauge registers are configured correctly for your installation. + +## Removing the integration + +This integration follows standard integration removal. + +{% include integrations/remove_device_service.md %} diff --git a/source/_integrations/fressnapf_tracker.markdown b/source/_integrations/fressnapf_tracker.markdown new file mode 100644 index 000000000000..9c84fa8ff442 --- /dev/null +++ b/source/_integrations/fressnapf_tracker.markdown @@ -0,0 +1,61 @@ +--- +title: Fressnapf Tracker +description: Instructions on how to integrate Fressnapf GPS Trackers into Home Assistant. +ha_category: + - Presence detection +ha_iot_class: Cloud Polling +ha_release: 2026.1 +ha_config_flow: true +ha_codeowners: + - '@eifinger' +ha_domain: fressnapf_tracker +ha_platforms: + - binary_sensor + - device_tracker + - light + - sensor + - switch +ha_integration_type: device +--- + +The **Fressnapf Tracker** {% term integration %} allows you to integrate [Fressnapf GPS Trackers](https://tracker.fressnapf.de/) into Home Assistant. + +You can use this integration to track the location of your pets and monitor their activity in Home Assistant. + +## Supported functionality + +### Entities + +The **Fressnapf Tracker** integration provides the following entities. + +- **Device tracker** + - **Description**: Shows the current location of your pet. +- **Battery** + - **Description**: Shows the current battery level of your tracker. +- **Charging status** + - **Description**: Indicates whether the tracker is currently charging. +- **Flashlight** + - **Description**: Allows you to turn on the flashlight of the tracker to help locate your pet in the dark. +- **Sleep mode** + - **Description**: Allows you to control the sleep mode of the tracker to conserve battery. + +## Prerequisites + +You have to use the mobile app to add the trackers to your Fressnapf Tracker account. +The phone number you used to register can then be used to set up the integration. + +During the setup, you will receive a verification code via SMS to confirm your identity. + +{% include integrations/config_flow.md %} + +## Defining a custom polling interval + +The **Fressnapf Tracker** {% term polling polls %} data from the cloud every 15 minutes. + +{% include common-tasks/define_custom_polling.md %} + +## 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/gentex_homelink.markdown b/source/_integrations/gentex_homelink.markdown new file mode 100644 index 000000000000..5b090c0ed9da --- /dev/null +++ b/source/_integrations/gentex_homelink.markdown @@ -0,0 +1,40 @@ +--- +title: HomeLink +description: Instructions on how to set up your HomeLink devices with Home Assistant. +ha_category: + - Binary sensor +ha_release: 2026.1 +ha_iot_class: Cloud Push +ha_config_flow: true +ha_codeowners: + - '@niaexa' + - '@ryanjones-gentex' +ha_domain: gentex_homelink +ha_platforms: + - binary_sensor +ha_integration_type: integration +ha_quality_scale: bronze +--- + +The **HomeLink** {% term integration %} allows you to integrate your [HomeLink](https://homelink.com) devices in Home Assistant. The HomeLink app allows [HomeLink](https://homelink.com) owners to trigger smart home routines in a variety of cloud-based home automation platforms from the comfort of their vehicle. When you arrive home, one HomeLink button press can adjust the thermostat, turn on lights, disarm the security system, unlock the door, and begin playing your favorite music. + +## Prerequisites + +HomeLink is only compatible with HomeLink devices accessible via the HomeLink App. To prepare for an integration with Home Assistant: + +{% include integrations/config_flow.md %} + +## Configuration + +{% configuration_basic %} +Email: + description: "The email for your HomeLink account." +Password: + description: "The password for your HomeLink account." +{% endconfiguration_basic %} + +## Removing the integration + +This integration follows standard integration removal. + +{% include integrations/remove_device_service.md %} diff --git a/source/_integrations/gios.markdown b/source/_integrations/gios.markdown index ca06ca8ad404..f840272ca0a4 100644 --- a/source/_integrations/gios.markdown +++ b/source/_integrations/gios.markdown @@ -22,8 +22,6 @@ The `gios` integration uses the [GIOŚ](http://powietrze.gios.gov.pl/pjp/current {% configuration_basic %} Measuring station: description: "Select a measuring station from the list." -Name: - description: "Service name in Home Assistant, by default, this is the name of your Home Assistant instance. For example `Home`." {% endconfiguration_basic %} ## Removing the integration diff --git a/source/_integrations/growatt_server.markdown b/source/_integrations/growatt_server.markdown index d104236257c4..a3b46992173b 100644 --- a/source/_integrations/growatt_server.markdown +++ b/source/_integrations/growatt_server.markdown @@ -143,6 +143,102 @@ These controls directly modify your inverter's operational settings. Only change - **AC charge** - **Description**: Enable or disable AC charging +## Actions + +The integration provides the following actions for managing Time-of-Use (TOU) battery schedules on MIN inverters: + +### Action `growatt_server.update_time_segment` + +Configure individual time segments (1-9) with battery operation mode, time range, and enable/disable state for automated battery charging and discharging schedules. + +{% important %} +This action modifies your inverter's TOU scheduling settings. Incorrect configuration may affect your battery's charging/discharging behavior and energy costs. Ensure you understand your electricity tariff structure before making changes. +{% endimportant %} + +**Data attributes:** + +- **device_id** *(string, optional)*: The device ID of the inverter. Required only when multiple devices are present +- **segment_id** *(integer, required)*: Time segment number (1-9) +- **batt_mode** *(string, required)*: Energy priority mode for the system: + - `load_first`: Prioritize powering home loads from available energy sources (solar/battery), discharge battery when needed to meet home consumption + - `battery_first`: Prioritize charging the battery from available sources (solar/grid) + - `grid_first`: Prioritize exporting energy to grid from available sources (solar/battery), will discharge battery for grid export + + {% note %} + The battery mode controls when and why discharge occurs. The actual discharge rate is controlled by the **Discharge power** number entity (0-100%). + {% endnote %} +- **start_time** *(time, required)*: Start time for the segment (HH:MM format) +- **end_time** *(time, required)*: End time for the segment (HH:MM format) +- **enabled** *(boolean, required)*: Whether this time segment is active + +### Action `growatt_server.read_time_segments` + +Read the current configuration of all 9 time segments from the inverter. This action returns the complete TOU schedule configuration. + +**Data attributes:** + +- **device_id** *(string, optional)*: The device ID of the MIN inverter. Required only when multiple devices are present + +## Examples + +### Off-peak charging schedule + +Charge the battery during cheap electricity hours (e.g., midnight to 6 AM): + +```yaml +action: growatt_server.update_time_segment +data: + segment_id: 1 + batt_mode: "battery_first" + start_time: "00:00" + end_time: "06:00" + enabled: true + # For multiple devices, add device_id: "MIN12345" +``` + +{% note %} +Remember to also set the **Charge power** number entity (0-100%) to control the charging power rate during this time period. +{% endnote %} + +### Peak hour export schedule + +Export battery power to grid during expensive electricity hours (e.g., 4 PM to 8 PM): + +```yaml +action: growatt_server.update_time_segment +data: + segment_id: 2 + batt_mode: "grid_first" + start_time: "16:00" + end_time: "20:00" + enabled: true +``` + +{% note %} +Remember to also set the **Discharge power** number entity (0-100%) to control the discharge power rate during this time period. +{% endnote %} + +### Daytime home priority schedule + +Prioritize home consumption during typical usage hours (e.g., 6 AM to 10 PM): + +```yaml +action: growatt_server.update_time_segment +data: + segment_id: 3 + batt_mode: "load_first" + start_time: "06:00" + end_time: "22:00" + enabled: true +``` + +### Reading current TOU configuration + +Check your current time segment settings: + +```yaml +action: growatt_server.read_time_segments +``` ## Troubleshooting ### Account locked or authentication failing diff --git a/source/_integrations/hikvision.markdown b/source/_integrations/hikvision.markdown index 93324967a454..c2d11837b663 100644 --- a/source/_integrations/hikvision.markdown +++ b/source/_integrations/hikvision.markdown @@ -11,7 +11,8 @@ ha_domain: hikvision ha_platforms: - binary_sensor ha_integration_type: integration -ha_quality_scale: legacy +ha_quality_scale: bronze +ha_config_flow: true --- The Hikvision Binary Sensor is a platform that parses the event stream of a @@ -21,9 +22,8 @@ camera/nvr events to Home Assistant as binary sensors with either an "off" or The platform will automatically add all sensors to Home Assistant that are configured within the camera/nvr interface to "Notify the surveillance center" -as a trigger. If you would like to hide a sensor type you can do so by either -unchecking "Notify the surveillance center" in the camera configuration or by -using the "ignored" customize option detailed below. +as a trigger. If you would like to hide a sensor type you can do so by +unchecking "Notify the surveillance center" in the camera configuration. {% important %} In order for the sensors to work the hikvision user must have the 'Remote: Notify Surveillance Center/Trigger Alarm Output' permission which can be enabled from the user management section of the web interface. If authentication issues persist after permissions are verified, try accessing using an admin user. Certain devices will only authenticate with an admin account despite permissions being set correctly. @@ -74,71 +74,7 @@ This platform also was confirmed to work with the following Hikvison-based NVRS - N46PCK (Annke H800 4K NVR) - N48PAW (Annke 4K NVR) -## Configuration - -To enable this sensor, -add the following lines are required in your {% term "`configuration.yaml`" %} file: - -```yaml -binary_sensor: - - platform: hikvision - host: IP_ADDRESS - username: user - password: pass -``` - -{% configuration %} -host: - description: The IP address of the camera you would like to connect to. - required: true - type: string -username: - description: The username to authenticate with. - required: true - type: string -password: - description: The password to authenticate with. - required: true - type: string -name: - description: > - The name you would like to give the camera in Home Assistant, - defaults to name defined in the camera. - required: false - type: string -port: - description: The port to connect to the camera on. - required: false - type: integer - default: 80 -ssl: - description: "`true` if you want to connect with HTTPS. Be sure to set the port also." - required: false - type: boolean - default: false -customize: - description: > - This attribute contains sensor-specific override values. - Only sensor name needs defined: - required: false - type: map - keys: - ignored: - description: > - Ignore this sensor completely. It won't be shown in - the Web Interface and no events are generated for it. - required: false - type: boolean - default: false - delay: - description: > - Specify the delay to wait after a sensor event ends before notifying - Home Assistant in seconds. This is useful to catch multiple quick trips - in one window without the state toggling on and off. - required: false - type: integer - default: 5 -{% endconfiguration %} +{% include integrations/config_flow.md %} ### Supported types @@ -166,40 +102,8 @@ Supported sensor/event types are: - Exiting Region - Entering Region -## Examples - -Example of a configuration in your {% term "`configuration.yaml`" %} -that utilizes the customize options for a camera: - -```yaml -binary_sensor: - - platform: hikvision - host: 192.168.X.X - port: 80 - ssl: false - username: user - password: pass - customize: - motion: - delay: 30 - line_crossing: - ignored: true -``` +## Removing the integration -Example of a configuration in your {% term "`configuration.yaml`" %} -that utilizes the customize options for a nvr: - -```yaml -binary_sensor: - - platform: hikvision - host: 192.168.X.X - port: 80 - ssl: false - username: user - password: pass - customize: - motion_1: - delay: 30 - field_detection_2: - ignored: true -``` +This integration follows standard integration removal. + +{% include integrations/remove_device_service.md %} diff --git a/source/_integrations/knx.markdown b/source/_integrations/knx.markdown index ed987e802bb7..040301ee20b5 100644 --- a/source/_integrations/knx.markdown +++ b/source/_integrations/knx.markdown @@ -62,6 +62,7 @@ There is currently support for the following device types within Home Assistant: - [Climate](#climate) - [Cover](#cover) - [Date](#date) +- [DateTime](#datetime) - [Fan](#fan) - [Light](#light) - [Notify](#notify) @@ -1267,6 +1268,10 @@ Dates that have a `state_address` configured request their current state from th DPT 11.001 covers the range 1990 to 2089. Year values outside of this range are not allowed. {% endnote %} +Date entities can be created from the frontend in the KNX panel or via YAML. + +{% details "Configuration of KNX date entities via YAML" %} + ```yaml # Example configuration.yaml entry knx: @@ -1319,6 +1324,8 @@ entity_category: default: None {% endconfiguration %} +{% enddetails %} + ## DateTime The KNX datetime platform allows to send datetime values to the KNX bus and update its state from received telegrams. It can optionally respond to read requests from the KNX bus. @@ -1334,6 +1341,10 @@ System timezone is used as DPT 19.001 doesn't provide timezone information. Year values outside of the range 1900 to 2155 are invalid. {% endnote %} +Datetime entities can be created from the frontend in the KNX panel or via YAML. + +{% details "Configuration of KNX datetime entities via YAML" %} + ```yaml # Example configuration.yaml entry knx: @@ -1386,6 +1397,8 @@ entity_category: default: None {% endconfiguration %} +{% enddetails %} + ## Fan The KNX fan integration is used to control KNX fans. Following control types are supported: @@ -2321,6 +2334,10 @@ Times that have a `state_address` configured request their current state from th The `day` field of the time telegram will always be set to 0 (`no day`). {% endnote %} +Time entities can be created from the frontend in the KNX panel or via YAML. + +{% details "Configuration of KNX time entities via YAML" %} + ```yaml # Example configuration.yaml entry knx: @@ -2373,6 +2390,8 @@ entity_category: default: None {% endconfiguration %} +{% enddetails %} + ## Weather The KNX weather platform is used as an interface to KNX weather stations. diff --git a/source/_integrations/lamarzocco.markdown b/source/_integrations/lamarzocco.markdown index 8c8716411a79..c721f1ed0dc7 100644 --- a/source/_integrations/lamarzocco.markdown +++ b/source/_integrations/lamarzocco.markdown @@ -55,12 +55,17 @@ Password: {% configuration_basic %} Use Bluetooth: description: Allows you to manually disable Bluetooth communication with the machine (if available). This can be used to avoid longer timeouts, e.g., when your machine is only sometimes in range. +Offline mode: + description: Allows you to enable the offline mode manually. Requires use of Bluetooth. Also see [Data updates](#data-updates). {% endconfiguration_basic %} ## Data updates By default, this integration will receive push updates from the cloud about its general status. If that is not possible it will query the cloud every 15 seconds for an update of general machine information, every 15 minutes for new statistics, every 30 minutes for updated schedules and every 8 hours for a firmware update. +If your host has access to a Bluetooth adapter and your machine is within range, the integration can request updates through Bluetooth. This Bluetooth mode starts automatically if internet access is not available, or when you enable the **offline mode** option. +In **offline mode**, most entities will become unavailable. Only those marked with in the table below ([Available platforms & entities](#available-platforms--entities)) will remain available. While in **offline mode**, Home Assistant requests an update from your machine every 60 seconds. + # Available platforms & entities {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} = La Marzocco Cloud @@ -83,6 +88,9 @@ By default, this integration will receive push updates from the cloud about its | **Preinfusion time** | Duration of preinfusion | `Linea Micra`, `Linea Mini`, `Linea Mini R` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} | only available when machine is in mode `Preinfusion` | | **Prebrew time on** | Duration which prebrew will be on | `Linea Micra`, `Linea Mini`, `Linea Mini R` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} | only available when machine is in mode `Prebrew` | | **Prebrew time off** | Duration which prebrew will wait | `Linea Micra`, `Linea Mini`, `Linea Mini R` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} | only available when machine is in mode `Prebrew` | +| **Brew by weight Dose 1** | Weight when the machine will stop while being in *Dose 1* for Brew by weight | `Linea Mini`, `Linea Mini R` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} | only available when machine is paired with a scale | +| **Brew by weight Dose 2** | Weight when the machine will stop while being in *Dose 2* for Brew by weight | `Linea Mini`, `Linea Mini R` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} | only available when machine is paired with a scale | + ## Switches @@ -126,6 +134,7 @@ By default, this integration will receive push updates from the cloud about its | **Prebrew/-infusion mode** | Whether to use prebrew, preinfusion, or neither | `Disabled`, `Prebrew`, `Preinfusion` | `Linea Micra`, `Linea Mini`, `GS3 AV` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} | | **Steam level** | The level your steam boiler should run at | `1`,`2`,`3` | `Linea Micra`, `Linea Mini R` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} | | **Smart standby mode** | The smart standby mode, that decides from which events the timer to standby will run. | `Last brewing`, `Power on` | `all` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} | +| **Brew by weight dose mode** | Select the brew by weight mode of your machine | `Continuous`, `Dose 1`, `Dose 2` | `Linea Mini`, `Linea Mini R` | {% icon "material-symbols:cloud-outline" title="La Marzocco Cloud" %} | ## Calendar diff --git a/source/_integrations/levoit.markdown b/source/_integrations/levoit.markdown new file mode 100644 index 000000000000..678d9f97fa6c --- /dev/null +++ b/source/_integrations/levoit.markdown @@ -0,0 +1,36 @@ +--- +title: Levoit +description: Connect and control your Levoit devices using the VeSync integration +ha_category: + - Fan + - Light + - Number + - Switch +ha_release: 2026.1 +ha_domain: levoit +ha_integration_type: virtual +ha_supporting_domain: vesync +ha_supporting_integration: VeSync +ha_codeowners: + - "@markperdue" + - "@webdjoe" + - "@thegardenmonkey" + - "@cdnninja" + - "@iprak" + - "@sapuseven" +ha_config_flow: true +ha_platforms: + - binary_sensor + - diagnostics + - fan + - humidifier + - light + - number + - select + - sensor + - switch + - update +ha_iot_class: Cloud Polling +--- + +{% include integrations/supported_brand.md %} diff --git a/source/_integrations/mealie.markdown b/source/_integrations/mealie.markdown index db7c2c954672..a0a24d38c666 100644 --- a/source/_integrations/mealie.markdown +++ b/source/_integrations/mealie.markdown @@ -63,6 +63,9 @@ The integration will create a calendar for every type of meal plan, which are up - Lunch - Dinner - Side +- Dessert +- Drink +- Snack ## Shopping Lists @@ -134,24 +137,24 @@ Import the recipe into Mealie from a URL. Set a mealplan on a specific date. -| Data attribute | Optional | Description | -|-------------------|----------|-----------------------------------------------------| -| `config_entry_id` | No | The ID of the Mealie config entry to get data from. | -| `date` | No | The date that should be filled. | -| `entry_type` | No | One of "breakfast", "lunch", "dinner", or "side". | -| `recipe_id` | Yes | The recipe to plan. | -| `note_title` | Yes | The title of the meal note. | -| `note_text` | Yes | The description of the meal note. | +| Data attribute | Optional | Description | +|-------------------|----------|--------------------------------------------------------------------------------| +| `config_entry_id` | No | The ID of the Mealie config entry to get data from. | +| `date` | No | The date that should be filled. | +| `entry_type` | No | One of "breakfast", "lunch", "dinner", "side", "drink", "dessert", or "snack". | +| `recipe_id` | Yes | The recipe to plan. | +| `note_title` | Yes | The title of the meal note. | +| `note_text` | Yes | The description of the meal note. | ### Action `mealie.set_random_mealplan` Set a random mealplan on a specific date. -| Data attribute | Optional | Description | -|-------------------|----------|-----------------------------------------------------| -| `config_entry_id` | No | The ID of the Mealie config entry to get data from. | -| `date` | No | The date that should be filled. | -| `entry_type` | No | One of "breakfast", "lunch", "dinner" or "side". | +| Data attribute | Optional | Description | +|-------------------|----------|--------------------------------------------------------------------------------| +| `config_entry_id` | No | The ID of the Mealie config entry to get data from. | +| `date` | No | The date that should be filled. | +| `entry_type` | No | One of "breakfast", "lunch", "dinner", "side", "drink", "dessert", or "snack". | {% tip %} You can get your `config_entry_id` by using actions within [Developer Tools](/docs/tools/dev-tools/), using one of the above actions and viewing the YAML. diff --git a/source/_integrations/nest.markdown b/source/_integrations/nest.markdown index 3bd6937892bf..6aefb395b105 100644 --- a/source/_integrations/nest.markdown +++ b/source/_integrations/nest.markdown @@ -690,7 +690,7 @@ from the SDM API. ##### Resolution -You can add or remove devices and permissions granted to Home Assistant in the Nest [Partner Connections Manager](https://nestservices.google.com/partnerconnections). Reload the Nest integration to make new devices available. See the [SDM API Troubleshooting](https://developers.google.com/nest/device-access/authorize#modify_account_permissions) documentation for more details. +You can manage the devices and permissions shared with Home Assistant in the Nest [Partner Connections Manager](https://nestservices.google.com/partnerconnections). Home Assistant automatically updates to reflect any changes you make. For more details, refer to the [SDM API Troubleshooting](https://developers.google.com/nest/device-access/authorize#modify_account_permissions) documentation. #### Symptom: Thermostats do not appear in Home Assistant or are unavailable @@ -698,7 +698,7 @@ There have been reports that Thermostats may not appear or are unavailable due t - Restart the Thermostat device. See [How to restart or reset a Nest thermostat](https://support.google.com/googlenest/answer/9247296) for more details. - In the official Nest app or on https://home.nest.com: Move the Thermostat to a different or fake/temporary room. -- Reload the integration in Home Assistant: Navigate to {% my integrations title="**Settings** > **Devices & services**" %}, select {% icon "mdi:dots-vertical" %} next to *Nest* and choose **Reload**. +- Home Assistant automatically updates to reflect any changes you make and will discover new devices that appear in the API. #### Symptom: Devices do not appear when the API is disabled diff --git a/source/_integrations/nintendo_parental_controls.markdown b/source/_integrations/nintendo_parental_controls.markdown index df58e752cf9f..7c46f9293a87 100644 --- a/source/_integrations/nintendo_parental_controls.markdown +++ b/source/_integrations/nintendo_parental_controls.markdown @@ -63,6 +63,15 @@ You will need: The **Nintendo Switch Parental Controls** integration provides the following entities. +#### Number + +- **Max screentime today** + - **Description**: Maximum amount of screentime to allow today, for unlimited screentime, set to `-1`. By setting this to `0` and turning the **Suspend software** switch on, you can 'lock' your Nintendo Switch. + +#### Select +- **Restriction mode** + - **Description**: Controls whether the same screen time limits are applied every day or if each day of the week has its own separate limit. + #### Sensors - **Used screen time** @@ -74,19 +83,14 @@ The **Nintendo Switch Parental Controls** integration provides the following ent - **Unit of measurement**: `minutes` - **Device class**: `duration` -#### Time - -- **Bedtime alarm** - - **Description**: A set bedtime for a given device, at this time, the Switch can either "lock" or show an alert in the top left corner. - #### Switch - **Suspend software** - **Description**: Enable to automatically suspend running software when the Bedtime alarm is reached or the maximum screen time is exceeded. Turn off to allow software to continue running past these limits. -#### Number +#### Time -- **Max screentime today** - - **Description**: Maximum amount of screentime to allow today, for unlimited screentime, set to `-1`. By setting this to `0` and turning the **Suspend software** switch on, you can 'lock' your Nintendo Switch. +- **Bedtime alarm** + - **Description**: A set bedtime for a given device, at this time, the Switch can either "lock" or show an alert in the top left corner. ## Actions diff --git a/source/_integrations/number.markdown b/source/_integrations/number.markdown index 139f78fe4002..f849b1e4c18b 100644 --- a/source/_integrations/number.markdown +++ b/source/_integrations/number.markdown @@ -89,7 +89,7 @@ The following device classes are supported for numbers: - **volatile_organic_compounds_parts**: Ratio of volatile organic compounds in ppm or ppb - **voltage**: Voltage in V, mV, µV, kV, MV - **volume**: Generic volume in L, mL, gal, fl. oz., m³, ft³, CCF, or MCF -- **volume_flow_rate**: Volume flow rate in m³/h, m³/min, m³/s, ft³/min, L/h, L/min, L/s, gal/h, gal/min, or mL/s +- **volume_flow_rate**: Volume flow rate in m³/h, m³/min, m³/s, ft³/min, L/h, L/min, L/s, gal/d, gal/h, gal/min, or mL/s - **volume_storage**: Generic stored volume in L, mL, gal, fl. oz., m³, ft³, CCF, or MCF - **water**: Water consumption in L, gal, m³, ft³, CCF, or MCF - **weight**: Generic mass in kg, g, mg, µg, oz, lb, or st diff --git a/source/_integrations/overseerr.markdown b/source/_integrations/overseerr.markdown index f75db5664aa7..5e39da7a9464 100644 --- a/source/_integrations/overseerr.markdown +++ b/source/_integrations/overseerr.markdown @@ -40,7 +40,7 @@ The latest version of Overseerr is supported by this integration. ## Supported functionality -The Overseerr intergation provides a couple of entities to Home Assistant. +The Overseerr integration provides a couple of entities to Home Assistant. Below is an overview of these entities. ### Events @@ -58,7 +58,10 @@ Relevant data about the request are stored in the attributes. ### Sensors -The integration also provides statistics for the requests stored in Overseerr. +The integration provides statistics for both requests and issues stored in Overseerr. + +#### Request sensors + There are sensors for: - Total requests - Movie requests @@ -68,28 +71,37 @@ There are sensors for: - Processing requests - Available requests +#### Issue sensors + +There are sensors for: + - Total issues + - Open issues + - Closed issues + - Video issues + - Audio issues + - Subtitle issues + ## Actions The Overseerr integration has the following actions: -- Get requests +### Request actions -### Action get requests +- `overseerr.get_requests` - Get a list of media requests -Get a list of media requests using `overseerr.get_requests`. +### Get requests -| Data attribute | Optional | Description | -|-------------------|----------|-------------------------------------------------------------| -| `config_entry_id` | No | The ID of the Overseerr config entry to get data from. | -| `status` | Yes | The status to filter the results on. | -| `sort_order` | Yes | The sort order to sort the results in (`added`/`modified`). | -| `requested_by` | Yes | Filter the requests based on the user ID of the requester. | +Get a list of media requests using the `overseerr.get_requests` action. + +- **config_entry_id** (*Required*): The ID of the Overseerr config entry to get data from. +- **status** (*Optional*): The status to filter the results on. +- **sort_order** (*Optional*): The sort order to sort the results in (`added`/`modified`). +- **requested_by** (*Optional*): Filter the requests based on the user ID of the requester. ## Use cases -The integration can be used to build automations to help and notify you of new media requests. -The provided actions can be used to provide extra context to voice assistants. +The integration can be used to build automations to help and notify you of new media requests and issues. ## Example automations @@ -124,6 +136,116 @@ actions: {% endraw %} {% enddetails %} +{% details "Send notification when open issues exceed threshold" %} + +{% raw %} + +```yaml +alias: "Notify when too many open issues" +description: "Alert when open issues in Overseerr exceed 10" +triggers: + - trigger: numeric_state + entity_id: + - sensor.overseerr_open_issues + above: 10 +actions: + - action: notify.mobile_app + data: + message: >- + Warning: {{ states('sensor.overseerr_open_issues') }} open issues in Overseerr! + title: "High Issue Count" +``` + +{% endraw %} +{% enddetails %} + +{% details "Track audio issues trend with statistics sensor" %} + +{% raw %} + +```yaml +alias: "Monitor audio issue trends" +description: "Create a statistics sensor to track audio issue trends over time" +sensor: + - platform: statistics + name: "Audio Issues Statistics" + entity_id: sensor.overseerr_audio_issues + state_characteristic: mean + max_age: + days: 7 + sampling_size: 100 +``` + +{% endraw %} +{% enddetails %} + +{% details "Alert when video issues spike" %} + +{% raw %} + +```yaml +alias: "Video issues spike alert" +description: "Notify when video issues increase significantly" +triggers: + - trigger: numeric_state + entity_id: + - sensor.overseerr_video_issues + above: 5 +actions: + - action: notify.mobile_app + data: + message: >- + Video issues are elevated: {{ states('sensor.overseerr_video_issues') }} issues detected + title: "Video Quality Alert" +``` + +{% endraw %} +{% enddetails %} + +{% details "Daily issue report" %} + +{% raw %} + +```yaml +alias: "Daily Overseerr issue summary" +description: "Send a daily report of all issue types" +triggers: + - trigger: time + at: "09:00:00" +conditions: + - condition: numeric_state + entity_id: sensor.overseerr_total_issues + above: 0 +actions: + - action: notify.mobile_app + data: + title: "Overseerr Daily Report" + message: >- + Total Issues: {{ states('sensor.overseerr_total_issues') }} + Open: {{ states('sensor.overseerr_open_issues') }} + Closed: {{ states('sensor.overseerr_closed_issues') }} + Video: {{ states('sensor.overseerr_video_issues') }} + Audio: {{ states('sensor.overseerr_audio_issues') }} + Subtitle: {{ states('sensor.overseerr_subtitle_issues') }} +``` + +{% endraw %} +{% enddetails %} + +{% details "Create dashboard badge for subtitle issues" %} + +{% raw %} + +```yaml +type: entity +entity: sensor.overseerr_subtitle_issues +name: Subtitle Issues +icon: mdi:subtitles +``` + +{% endraw %} +{% enddetails %} + ## Data updates When loading the integration, it will try to configure the webhook in Overseerr to give updates to Home Assistant. diff --git a/source/_integrations/ping.markdown b/source/_integrations/ping.markdown index 4057531e364b..10e962869e93 100644 --- a/source/_integrations/ping.markdown +++ b/source/_integrations/ping.markdown @@ -60,6 +60,7 @@ The integration exposes the different round trip times milliseconds as entities: - `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 +- `Packet loss` - the percentage of missed ICMP replies **These entities are disabled by default and can be enabled in the UI if needed.** diff --git a/source/_integrations/pooldose.markdown b/source/_integrations/pooldose.markdown index 318a239cb482..4784147e093e 100644 --- a/source/_integrations/pooldose.markdown +++ b/source/_integrations/pooldose.markdown @@ -3,6 +3,7 @@ title: SEKO PoolDose description: Connect your SEKO PoolDose water treatment system to Home Assistant. ha_category: - Binary sensor + - Number - Sensor - Switch - Water Management @@ -14,6 +15,7 @@ ha_codeowners: ha_domain: pooldose ha_platforms: - binary_sensor + - number - sensor - switch ha_integration_type: integration @@ -122,6 +124,26 @@ This integration provides the following entities. - **Unit**: mV - **ORP calibration slope**: ORP calibration slope value. - **Unit**: mV +- **Totalizer**: Total water volume accumulated. + - **Unit**: L, m³ + +### Numbers + +- **pH target**: Target pH value for automatic dosing control. +- **ORP target**: Target ORP (Redox) value for automatic dosing control. + - **Unit**: mV +- **Chlorine target**: Target chlorine concentration for automatic dosing control. + - **Unit**: ppm +- **pH overfeed alarm lower limit**: Lower threshold for pH overfeed detection. +- **pH overfeed alarm upper limit**: Upper threshold for pH overfeed detection. +- **ORP overfeed alarm lower limit**: Lower threshold for ORP overfeed detection. + - **Unit**: mV +- **ORP overfeed alarm upper limit**: Upper threshold for ORP overfeed detection. + - **Unit**: mV +- **Chlorine overfeed alarm lower limit**: Lower threshold for chlorine overfeed detection. + - **Unit**: ppm +- **Chlorine overfeed alarm upper limit**: Upper threshold for chlorine overfeed detection. + - **Unit**: ppm ### Switches diff --git a/source/_integrations/risco.markdown b/source/_integrations/risco.markdown index c23371676acf..7c2d032f3fe1 100644 --- a/source/_integrations/risco.markdown +++ b/source/_integrations/risco.markdown @@ -90,9 +90,20 @@ And in the reverse direction: | Arm Away | Arm | | Arm Home | Partial Arm | -## Supported platforms: +## Supported platforms - [Alarm control panel](/integrations/alarm_control_panel/) - [Binary sensor](/integrations/binary_sensor/) - [Sensor](/integrations/sensor/) - [Switch](/integrations/switch/) + +## Actions + +### Set time + +The `risco.set_time` action enables you to set the time of a panel on a local connection. + +| Data attribute | Required | Description | +| ----------------- | -------- | ------------------------------------------------------------------------------------------ | +| `config_entry_id` | yes | The config entry ID of the alarm panel. | +| `time` | no | The time to send to the alarm panel. Leave it empty to use the Home Assistant system time. | diff --git a/source/_integrations/route_b_smart_meter.markdown b/source/_integrations/route_b_smart_meter.markdown index b09f647792e7..c81485637199 100644 --- a/source/_integrations/route_b_smart_meter.markdown +++ b/source/_integrations/route_b_smart_meter.markdown @@ -30,6 +30,7 @@ Ensure that your power supply is not a bulk power supply for an apartment buildi 1. Compatible USB dongles (tested with): - Wi-SUN USB dongle from [Ratoc Systems](https://www.ratocsystems.com/products/wisun/usb-wisun/rs-wsuha/). - Wi-SUN Module RL7023 Stick-D/DSS from [Tessera Technology Inc.](https://www.tessera.co.jp/product/rfmodul/rl7023stick-d_dss.html). + - Wi-SUN Module RL7023 Stick-D/IPS from [Tessera Technology Inc.](https://www.tessera.co.jp/product/rfmodul/rl7023stick-d_ips.html) (Production ended). 2. [B Route credentials from your utility company](#obtaining-b-route-credentials). 3. Smart meter: - A smart meter that supports the B Route protocol. diff --git a/source/_integrations/saunum.markdown b/source/_integrations/saunum.markdown index e9f7819af0a3..c885a2d28935 100644 --- a/source/_integrations/saunum.markdown +++ b/source/_integrations/saunum.markdown @@ -108,6 +108,21 @@ The **Saunum** integration provides the following entities for controlling and m - **Description**: Control the sauna lighting if light is connected to the control unit. - **Features**: Turn the sauna light on or off. +### Sensor + +- **Temperature** + - **Description**: Current temperature inside the sauna. + - **Unit**: °C (Celsius) or °F (Fahrenheit) depending on your Home Assistant unit system. + +- **Heater elements active** + - **Description**: Number of active heating elements (0-3). + - **Use case**: Monitor heating intensity and power consumption. + +- **On time** + - **Description**: Total accumulated operating time of the Leil touch screen control panel since last restart. + - **Unit**: Seconds + - **Note**: This sensor is disabled by default. Enable it in the entity settings if you want to track usage statistics. + ## Supported devices The following devices are known to be supported by the integration: diff --git a/source/_integrations/sensor.markdown b/source/_integrations/sensor.markdown index f94ffc42c02c..7c7049341ba7 100644 --- a/source/_integrations/sensor.markdown +++ b/source/_integrations/sensor.markdown @@ -101,7 +101,7 @@ The following device classes are supported for sensors: - **volatile_organic_compounds_parts**: Ratio of volatile organic compounds in ppm or ppb - **voltage**: Voltage in V, mV, µV, kV, MV - **volume**: Generic volume in L, mL, gal, fl. oz., m³, ft³, CCF, or MCF -- **volume_flow_rate**: Volume flow rate in m³/h, m³/min, m³/s, ft³/min, L/h, L/min, L/s, gal/h, gal/min, or mL/s +- **volume_flow_rate**: Volume flow rate in m³/h, m³/min, m³/s, ft³/min, L/h, L/min, L/s, gal/d, gal/h, gal/min, or mL/s - **volume_storage**: Generic stored volume in L, mL, gal, fl. oz., m³, ft³, CCF, or MCF - **water**: Water consumption in L, gal, m³, ft³, CCF, or MCF - **weight**: Generic mass in kg, g, mg, µg, oz, lb, or st diff --git a/source/_integrations/shelly.markdown b/source/_integrations/shelly.markdown index 080b9ae81c38..7ae887a819a6 100644 --- a/source/_integrations/shelly.markdown +++ b/source/_integrations/shelly.markdown @@ -386,6 +386,58 @@ Trigger reboot of device. - Reboot - triggers the reboot +## Actions + +The integration provides the following actions for non-sleeping Gen2+ devices: + +### Action: Get KVS value + +The `shelly.get_kvs_value` action is used to get a value from the device's Key-Value Storage. The retrieved value can be text, a number, a boolean, a null value, a dictionary, or a list. + +- **Data attribute**: `device_id` + - **Description**: The ID of the Shelly device to get the KVS value from. + - **Optional**: No +- **Data attribute**: `key` + - **Description**: The name of the key for which the KVS value will be retrieved. + - **Optional**: No + +### Action: Set KVS value + +The `shelly.set_kvs_value` action is used to set a value in the device's Key-Value Storage. + +- **Data attribute**: `device_id` + - **Description**: The ID of the Shelly device to set the KVS value. + - **Optional**: No +- **Data attribute**: `key` + - **Description**: The name of the key under which the KVS value will be stored. + - **Optional**: No +- **Data attribute**: `value` + - **Description**: Value to set. The value can be text, a number, a boolean, a null value, a dictionary, or a list. + - **Optional**: No + +### Example: Creating a sensor for the KVS value + +The following example creates a temperature sensor that will retrieve a temperature value from the KVS for the key `my_temperature_value` every 10 minutes. + +```yaml +# Example configuration.yaml entry +template: + - trigger: + - platform: time_pattern + minutes: /10 + action: + - action: shelly.get_kvs_value + data: + device_id: e4c0e031f68a8fbe08c50eda5e189a70 + key: my_temperature_value + response_variable: temperature_variable + sensor: + - name: My temperature + state: "{{ temperature_variable.value }}" + unit_of_measurement: °C + device_class: temperature +``` + ## Shelly Thermostatic Radiator Valve (TRV) Shelly TRV generates 2 entities that can be used to control the device behavior: `climate` and `number`. diff --git a/source/_integrations/squeezebox.markdown b/source/_integrations/squeezebox.markdown index d20dd3e44c87..61e2eb55ed68 100644 --- a/source/_integrations/squeezebox.markdown +++ b/source/_integrations/squeezebox.markdown @@ -176,12 +176,21 @@ The integration provides the following functionality: ### Binary sensors -- **Needs restart** - - **Description**: Server Service needs to be restarted (typically, this is needed to apply updates). +- **Alarm active** + - **Description**: One of the alarms on the Squeezebox player is currently going off. + +- **Alarm snoozed** + - **Description**: One of the alarms on the Squeezebox player is currently active but snoozed. In this case the "Alarm active" binary sensor will be in state OFF. + +- **Alarm upcoming** + - **Description**: The Squeezebox player has an alarm scheduled within the next 24 hours. - **Library rescan** - **Description**: The music library is currently being scanned by LMS (depending on the type of scan, some content may be unavailable). +- **Needs restart** + - **Description**: Server Service needs to be restarted (typically, this is needed to apply updates). + ### Buttons - **Preset 1 ... Preset 6** diff --git a/source/_integrations/sun.markdown b/source/_integrations/sun.markdown index 83458cc391ed..eabbb0efa1e7 100644 --- a/source/_integrations/sun.markdown +++ b/source/_integrations/sun.markdown @@ -98,7 +98,6 @@ The sensors are also available as attributes on the `sun.sun` entity for backwar | Next midnight | Date and time of the next solar midnight (in UTC). | | Elevation | Solar elevation. This is the angle between the sun and the horizon. Negative values mean the sun is below the horizon. | | Azimuth | Solar azimuth. The angle is shown clockwise from north. | -| `rising` | True if the Sun is currently rising, after solar midnight and before solar noon. | ## Binary sensors diff --git a/source/_integrations/switchbot.markdown b/source/_integrations/switchbot.markdown index a8b554958053..1590fb7cd3f3 100644 --- a/source/_integrations/switchbot.markdown +++ b/source/_integrations/switchbot.markdown @@ -63,7 +63,24 @@ Please note, device names configured in the SwitchBot app are not transferred in Some SwitchBot devices need to be configured within the app before being controlled by Home Assistant, such as calibrating the cover open/close limits or pairing two covers to move together. +### Add mode +Before adding SwitchBot devices over Bluetooth, confirm whether your Bluetooth adapter is set to **Active** or **Passive** mode in the Bluetooth integration configuration. + +- To open the Bluetooth integration settings, go to {% my integrations title="**Settings** > **Devices & services**" %} and select **Integrations**, then find and open the **Bluetooth** integration to check the adapter mode. + +- Active mode + - Devices are normally discovered automatically. + - If a device is not discovered automatically: + - For devices with a physical button, press and hold the button to enter pairing mode. + - For devices without a button, power-cycle the device to trigger pairing mode. + - If the device still cannot be discovered, try syncing devices from your SwitchBot account by selecting the **SwitchBot** integration and signing in. + +- Passive mode + - Devices cannot be discovered via local Bluetooth scanning and must be synchronized through your SwitchBot account. + - To sync devices from your account, go to {% my integrations title="**Settings** > **Devices & services**" %}, open **Integrations**, select **SwitchBot**, select the integration to open the login window, and sign in. If the local Bluetooth scan detects devices that are linked to your SwitchBot account and within range, you can add them after signing in. + +If you still cannot add a device, make sure it is powered on, within Bluetooth range, and not connected to another app. If necessary, follow the manufacturer's reset instructions or consult SwitchBot support. ### Adding encrypted SwitchBot devices diff --git a/source/_integrations/telegram_bot.markdown b/source/_integrations/telegram_bot.markdown index 4ff41d66179d..fc72ac3bcc6a 100644 --- a/source/_integrations/telegram_bot.markdown +++ b/source/_integrations/telegram_bot.markdown @@ -228,7 +228,6 @@ Send a photo. | `parse_mode` | yes | Parser for the message text: `markdownv2`, `html`, `markdown` or `plain_text`. | | `disable_notification` | yes | True/false for send the message silently. iOS users and web users will not receive a notification, Android users will receive a notification with no sound. Defaults to False. | | `verify_ssl` | yes | True/false for checking the SSL certificate of the server for HTTPS URLs. Defaults to True. | -| `timeout` | yes | Timeout for sending photo in seconds. Will help with timeout errors (poor internet connection, etc) | | `resize_keyboard` | yes | True/false for resizing the keyboard vertically for optimal fit. Defaults to False. | | `one_time_keyboard` | yes | True/false for hiding the keyboard as soon as it’s been used. The keyboard will still be available, but clients will automatically display the usual letter-keyboard in the chat - the user can press a special button in the input field to see the custom keyboard again. Defaults to False. | | `keyboard` | yes | List of rows of commands, comma-separated, to make a custom keyboard. `[]` to reset to no custom keyboard. Example: `["/command1, /command2", "/command3"]` | @@ -256,7 +255,6 @@ Send a video. | `parse_mode` | yes | Parser for the message text: `markdownv2`, `html`, `markdown` or `plain_text`. | | `disable_notification` | yes | True/false to send the message silently. iOS users and web users will not receive a notification. Android users will receive a notification with no sound. Defaults to False. | | `verify_ssl` | yes | True/false for checking the SSL certificate of the server for HTTPS URLs. Defaults to True. | -| `timeout` | yes | Timeout for sending video in seconds. Will help with timeout errors (poor internet connection, etc) | | `resize_keyboard` | yes | True/false for resizing the keyboard vertically for optimal fit. Defaults to False. | | `one_time_keyboard` | yes | True/false for hiding the keyboard as soon as it’s been used. The keyboard will still be available, but clients will automatically display the usual letter-keyboard in the chat - the user can press a special button in the input field to see the custom keyboard again. Defaults to False. | | `keyboard` | yes | List of rows of commands, comma-separated, to make a custom keyboard. `[]` to reset to no custom keyboard. Example: `["/command1, /command2", "/command3"]` | @@ -283,7 +281,6 @@ Send an animation. | `parse_mode` | yes | Parser for the message text: `markdownv2`, `html`, `markdown` or `plain_text`. | | `disable_notification` | yes | True/false to send the message silently. iOS users and web users will not receive a notification. Android users will receive a notification with no sound. Defaults to False. | | `verify_ssl` | yes | True/false for checking the SSL certificate of the server for HTTPS URLs. Defaults to True. | -| `timeout` | yes | Timeout for sending video in seconds. Will help with timeout errors (poor internet connection, etc) | | `resize_keyboard` | yes | True/false for resizing the keyboard vertically for optimal fit. Defaults to False. | | `one_time_keyboard` | yes | True/false for hiding the keyboard as soon as it’s been used. The keyboard will still be available, but clients will automatically display the usual letter-keyboard in the chat - the user can press a special button in the input field to see the custom keyboard again. Defaults to False. | | `keyboard` | yes | List of rows of commands, comma-separated, to make a custom keyboard. `[]` to reset to no custom keyboard. Example: `["/command1, /command2", "/command3"]` | @@ -310,7 +307,6 @@ Send a voice message. | `target` | yes | An array of pre-authorized chat_ids or user_ids to send the notification to. Defaults to the first allowed chat_id. | | `disable_notification` | yes | True/false to send the message silently. iOS users and web users will not receive a notification. Android users will receive a notification with no sound. Defaults to False. | | `verify_ssl` | yes | True/false for checking the SSL certificate of the server for HTTPS URLs. Defaults to True. | -| `timeout` | yes | Timeout for sending voice in seconds. Will help with timeout errors (poor internet connection, etc) | | `resize_keyboard` | yes | True/false for resizing the keyboard vertically for optimal fit. Defaults to False. | | `one_time_keyboard` | yes | True/false for hiding the keyboard as soon as it’s been used. The keyboard will still be available, but clients will automatically display the usual letter-keyboard in the chat - the user can press a special button in the input field to see the custom keyboard again. Defaults to False. | | `keyboard` | yes | List of rows of commands, comma-separated, to make a custom keyboard. `[]` to reset to no custom keyboard. Example: `["/command1, /command2", "/command3"]` | @@ -337,7 +333,6 @@ Send a sticker. | `target` | yes | An array of pre-authorized chat_ids or user_ids to send the notification to. Defaults to the first allowed chat_id. | | `disable_notification` | yes | True/false for send the message silently. iOS users and web users will not receive a notification, Android users will receive a notification with no sound. Defaults to False. | | `verify_ssl` | yes | True/false for checking the SSL certificate of the server for HTTPS URLs. Defaults to True. | -| `timeout` | yes | Timeout for sending photo in seconds. Will help with timeout errors (poor internet connection, etc) | | `resize_keyboard` | yes | True/false for resizing the keyboard vertically for optimal fit. Defaults to False. | | `one_time_keyboard` | yes | True/false for hiding the keyboard as soon as it’s been used. The keyboard will still be available, but clients will automatically display the usual letter-keyboard in the chat - the user can press a special button in the input field to see the custom keyboard again. Defaults to False. | | `keyboard` | yes | List of rows of commands, comma-separated, to make a custom keyboard. `[]` to reset to no custom keyboard. Example: `["/command1, /command2", "/command3"]` | @@ -365,7 +360,6 @@ Send a document. | `parse_mode` | yes | Parser for the message text: `markdownv2`, `html`, `markdown` or `plain_text`. | | `disable_notification` | yes | True/false for send the message silently. iOS users and web users will not receive a notification, Android users will receive a notification with no sound. Defaults to False. | | `verify_ssl` | yes | True/false for checking the SSL certificate of the server for HTTPS URLs. Defaults to True. | -| `timeout` | yes | Timeout for sending document in seconds. Will help with timeout errors (poor internet connection, etc) | | `resize_keyboard` | yes | True/false for resizing the keyboard vertically for optimal fit. Defaults to False. | | `one_time_keyboard` | yes | True/false for hiding the keyboard as soon as it’s been used. The keyboard will still be available, but clients will automatically display the usual letter-keyboard in the chat - the user can press a special button in the input field to see the custom keyboard again. Defaults to False. | | `keyboard` | yes | List of rows of commands, comma-separated, to make a custom keyboard. `[]` to reset to no custom keyboard. Example: `["/command1, /command2", "/command3"]` | @@ -411,7 +405,6 @@ Send a poll. | `allows_multiple_answers` | yes | True/false for if the poll allows multiple answers, defaults to False. | | `open_period` | yes | Amount of time in seconds the poll will be active after creation, 5-600. | | `disable_notification` | yes | True/false for send the message silently. iOS users and web users will not receive a notification, Android users will receive a notification with no sound. Defaults to False. | -| `timeout` | yes | Timeout for sending voice in seconds. Will help with timeout errors (poor internet connection, etc) | | `reply_to_message_id` | yes | Mark the message as a reply to a previous message. In `telegram_callback` handling, for example, you can use {% raw %}`{{ trigger.event.data.message.message_id }}`{% endraw %} | | `message_thread_id` | yes | Send the message to a specific topic or thread.| @@ -452,7 +445,6 @@ Edit a previously sent message media in a conversation. | `config_entry_id` | yes | The config entry representing the Telegram bot to edit the message media. Required if you have multiple Telegram bots.| | `message_id` | no | ID of the message to edit. When reacting to a pressed button, the ID of the origin message is in: {% raw %}`{{ trigger.event.data.message.message_id }}`{% endraw %}. You can use `"last"` to refer to the last message sent to `chat_id`. | | `chat_id` | no | The ID of the chat in which you want to edit the message media. | -| `timeout` | yes | Timeout for sending the media in seconds. Will help with timeout errors (poor internet connection, etc) | | `media_type` | no | The media type: `animation`, `audio`, `document`, `photo`, or `video`. | | `url` | no | Remote path to the media. | | `file` | no | Local path to the media. | diff --git a/source/_integrations/velbus.markdown b/source/_integrations/velbus.markdown index 5a708dbceb82..101989f4be9b 100644 --- a/source/_integrations/velbus.markdown +++ b/source/_integrations/velbus.markdown @@ -93,6 +93,15 @@ password: The pushbutton LEDs of input modules are disabled by default. These can be enabled from the **Devices** panel in the **Configuration** page of the web interface. {% endnote %} +### VLP file import + +{% note %} +This step is optional. +{% endnote %} + +In the next step of the configuration, you have the option to import a Velbus VLP configuration file. This is the configuration file that you can export from the VelbusLink software. +This will eliminate the need for a scan of the bus and will create all devices and entities based on the configuration file. + ## Actions - `velbus.sync clock`: Synchronize Velbus time to local clock. - `velbus.scan`: Scan the bus for new devices. diff --git a/source/_integrations/vivotek.markdown b/source/_integrations/vivotek.markdown index 90c36f0c2fe0..a1192e9a719e 100644 --- a/source/_integrations/vivotek.markdown +++ b/source/_integrations/vivotek.markdown @@ -11,97 +11,39 @@ ha_domain: vivotek ha_platforms: - camera ha_integration_type: integration -related: - - docs: /docs/configuration/ - title: Configuration file -ha_quality_scale: legacy +ha_config_flow: true --- The **VIVOTEK** camera {% term integration %} allows you to integrate a VIVOTEK IP camera into Home Assistant. Home Assistant will serve the images via its server, making it possible to view your IP cameras while outside of your network. The endpoint is `/api/camera_proxy/camera.[name]`. -## Configuration +{% include integrations/config_flow.md %} -To enable this camera in your installation, add the following to your {% term "`configuration.yaml`" %} file. -{% include integrations/restart_ha_after_config_inclusion.md %} - -```yaml -# Example configuration.yaml entry -camera: - - platform: vivotek - ip_address: IP_ADDRESS - username: USERNAME - password: PASSWORD -``` - -{% configuration %} +{% configuration_basic %} ip_address: - description: "The IP address of your camera, e.g., `192.168.1.2`." - required: true - type: string + description: The IP address of your camera, e.g., `192.168.1.2`. +port: + description: The port number. name: - description: This parameter allows you to override the name of your camera. - required: false - default: VIVOTEK Camera - type: string + description: The name of your camera. username: description: The username for accessing your camera. - required: true - type: string password: description: The password for accessing your camera. - required: true - type: string authentication: - description: "Type for authenticating the requests `basic` or `digest`." - required: false - default: basic - type: string + description: "Type for authenticating the requests with `basic` or `digest`." security_level: description: The security level of the user accessing your camera. This could be `admin` or `viewer`. - required: false - default: admin - type: string ssl: description: Enable or disable SSL. Set to false to use an HTTP-only camera. - required: false - default: false - type: boolean verify_ssl: description: Enable or disable SSL certificate verification. Set to false to use an HTTP-only camera, or you have a self-signed SSL certificate and haven't installed the CA certificate to enable verification. - required: false - default: true - type: boolean framerate: description: The number of frames-per-second (FPS) of the stream. Can cause heavy traffic on the network and/or heavy load on the camera. - required: false - default: 2 - type: integer stream_path: - description: This parameter allows you to override the stream path. - required: false - default: live.sdp - type: string -{% endconfiguration %} - -### Advanced configuration - -```yaml -# Example configuration.yaml entry -camera: - - platform: vivotek - name: Front door camera - ip_address: 192.168.1.2 - ssl: true - username: !secret fd_camera_username - password: !secret fd_camera_pwd - authentication: digest - security_level: admin - verify_ssl: false - framerate: 5 - stream_path: live2.sdp -``` + description: This parameter allows you to override the stream path. The default is `live.sdp`. +{% endconfiguration_basic %} ### Actions diff --git a/source/_integrations/web_rtc.markdown b/source/_integrations/web_rtc.markdown new file mode 100644 index 000000000000..244a96a2bc51 --- /dev/null +++ b/source/_integrations/web_rtc.markdown @@ -0,0 +1,63 @@ +--- +title: WebRTC +description: Instructions on how to configure the WebRTC integration for Home Assistant. +ha_category: + - Other +ha_release: '2026.1' +ha_quality_scale: internal +ha_domain: web_rtc +ha_codeowners: + - '@home-assistant/core' +ha_integration_type: system +--- + +The **WebRTC** {% term integration %} is an internal integration that provides WebRTC functionality for camera streaming in Home Assistant. It is automatically set up when needed and does not require any manual configuration. + +## Advanced configuration + +To configure your own STUN and TURN servers, add the following to your {% term "`configuration.yaml`" %} file: + +```yaml +# Example configuration.yaml entry +web_rtc: +``` + +{% configuration %} +web_rtc: + description: Enables the WebRTC integration. Only allowed once. + required: true + type: map + keys: + ice_servers: + description: List of STUN and TURN server configurations. + required: true + type: list + keys: + url: + description: STUN or TURN server URLs. This can either be a single URL or a list of URLs. + required: true + type: string + username: + description: Username for TURN server authentication. + required: false + type: string + credential: + description: Credential for TURN server authentication. + required: false + type: string +{% endconfiguration %} + +### Configuration example + +```yaml +# Example configuration.yaml entry with custom STUN and TURN servers +web_rtc: + ice_servers: + # Add an entry for each STUN or TURN server + - url: + - "stun:stun.example.com:19302" + - "stun:stun2.example.com:12345" + - url: "turn:turn.domain.com" + username: "username" + credential: "abc123" +``` diff --git a/source/_integrations/xbox.markdown b/source/_integrations/xbox.markdown index 9e7aca9d525e..d95db1ef0d36 100644 --- a/source/_integrations/xbox.markdown +++ b/source/_integrations/xbox.markdown @@ -43,6 +43,12 @@ The Home Assistant Xbox {% term integration %} lets you monitor and control Xbox {% include integrations/config_flow.md %} +## Track online status of friends + +The **Xbox integration** allows tracking the online status, activity, and other information of your friends. To add a friend, go to {% my integration domain="xbox" title="**Settings** > **Devices & services** > **Xbox**" %} and select **{% icon "mdi:plus" %} Add friend**. + +Once added, a new device will appear with the same set of entities available for your own Xbox account, allowing you to track your friend’s activity. + ## Supported devices - Xbox One (S/X) @@ -262,7 +268,7 @@ elements: ## Binary sensor -The Xbox binary sensor platform automatically keeps track of your "**Favorite** friends". In your friends list, select **Change friendship > Favorite** to have that person automatically pulled into Home Assistant. +The **Xbox binary sensor platform** automatically tracks the online status and activity of your own account as well as your friends. | Entity Name | Description | | -------------------------------- | ---------------------------------------------------------------------- | @@ -272,7 +278,7 @@ The Xbox binary sensor platform automatically keeps track of your "**Favorite** ## Sensor -Just like the binary sensors, the Xbox sensor platform automatically keeps track of your "**Favorite** friends". +Similar to binary sensors, the **Xbox sensor platform** monitors your account and friends, providing detailed information about their activity and achievements. | Entity Name | Description | | ---------------- | -------------------------------------------------------------------------- | @@ -284,12 +290,19 @@ Just like the binary sensors, the Xbox sensor platform automatically keeps track | **Last online** | Displays the last time the friend was active online. | | **In party** | Shows the number of people in the user’s party chat if they are currently in one. | | **Now playing** | Shows the title of the game currently being played. Additional details such as a short description, genre, developer, age rating, and achievement progress are available in the entity's attributes. | + +### Storage sensors + +These sensors track the storage on your own **Xbox consoles** and connected storage devices. + +| Entity Name | Description | +| ---------------- | -------------------------------------------------------------------------- | | **Total space: *{name}*** | Reports the total storage capacity of the device. A separate sensor is created for each Xbox console and connected internal and external storage device. | | **Free space: *{name}*** | Reports the available (unused) storage space on the device. A separate sensor is created for each Xbox console and connected internal and external storage device. | ## Image -For your account and each of your favorite friends, several image entities are available: +For your account and each of your friends, several image entities are available: | Entity Name | Description | | ---------------- | -------------------------------------------------------------------------------------- | diff --git a/source/common-tasks/os.markdown b/source/common-tasks/os.markdown index f5a316421f59..c5387a94b14b 100644 --- a/source/common-tasks/os.markdown +++ b/source/common-tasks/os.markdown @@ -133,5 +133,21 @@ For more information, refer to the [Labs documentation](/integrations/labs). {% include common-tasks/commandline.md %} +## Enable duplicate log file + +By default, Home Assistant Core logs are sent to the Systemd Journal, which can be read using the [`ha core logs` command](/common-tasks/os/#home-assistant-via-the-command-line). If you need logs to also be written to a file (`/config/home-assistant.log`), you can enable the duplicated log file option using the [command line](/common-tasks/os/#home-assistant-via-the-command-line): + +```bash +ha core options --duplicate-log-file=true +ha core restart +``` + +To disable it: + +```bash +ha core options --duplicate-log-file=false +ha core restart +``` + {% include common-tasks/enable_i2c.md %}