Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
a01db6f
Add Google Air Quality integration (#39107)
Thomas55555 Nov 26, 2025
16f1047
Fix Anglian water docs (#41994)
pantherale0 Nov 27, 2025
7c4170a
Fix Essent documentation to specify Dynamic Contracts (Not variable) …
jaapp Nov 27, 2025
006a4e4
Add support gallons per day as a unit of volume flow rate (#42008)
StaleLoafOfBread Nov 27, 2025
511ddcc
Remove 'rising' sensor from sun.markdown (#42036)
karwosts Dec 1, 2025
d829993
Add media content ID documentation to Bang & Olufsen (#41777)
mj23000 Dec 1, 2025
39533cd
energyID Docs (#37472)
Molier Dec 1, 2025
466451f
Add sensor for water totalizer (#42027)
lmaertin Dec 1, 2025
f3271ac
Add reconfig flow to Airobot integration (#42018)
mettolen Dec 1, 2025
6cde61a
Add documentation to sensor entities for Saunum integration (#41990)
mettolen Dec 1, 2025
8617862
Add integration fressnapf_tracker (#42014)
eifinger Dec 2, 2025
39b4e98
Add sensor platform to fressnapf_tracker (#42048)
eifinger Dec 2, 2025
46cd13b
Vivotek add config flow (#41395)
HarlemSquirrel Dec 2, 2025
bfcc7e7
add binary_sensor platform to fressnapf_tracker (#42054)
eifinger Dec 2, 2025
8ec4253
Pooldose Docs: add number platform (#42080)
lmaertin Dec 2, 2025
5b2609d
Mention that the date, datetime and time entities can be configured f…
Abestanis Dec 3, 2025
d49735d
Add round temperature option to weather forecast (#42056)
flixlix Dec 3, 2025
49cb156
Add docs for levoit virtual integration (#42039)
timmo001 Dec 3, 2025
f63c15e
HA versions: add reference to Labs (#42103)
c0ffeeca7 Dec 3, 2025
22cf5ae
Floors and areas: reorder (#42115)
c0ffeeca7 Dec 3, 2025
0357bac
Remove areas dashboard, add home dashboard (#42120)
c0ffeeca7 Dec 3, 2025
dae69f1
remove deep_sleep binary_sensor from fressnapf_tracker (#42119)
eifinger Dec 4, 2025
72e0a5c
Merge branch 'current' into next
frenck Dec 4, 2025
da4c330
add light platform to fressnapf_tracker (#42123)
eifinger Dec 4, 2025
f7721cb
Add switch platform to fressnapf_tracker (#42146)
eifinger Dec 4, 2025
bcac20c
Add webRTC integration (#42044)
balloob Dec 5, 2025
2b5ce56
Add documentation for the squeezebox alarm binary sensors (#41338)
wollew Dec 5, 2025
eb9a614
Update documentation with button restrictions in Bang & Olufsen (#42147)
mj23000 Dec 5, 2025
5e0c7ad
Add HomeLink docs (#37098)
ryanjones-gentex Dec 5, 2025
1a9600c
Add packet loss sensor to Ping integration (#42182)
mib1185 Dec 6, 2025
896f563
Add documentation for sensor entities to Airobot integration (#42140)
mettolen Dec 6, 2025
5cf541a
Add documentation for egauge integration (#41490)
neggert Dec 8, 2025
ce70692
Remove timeout parameter for Telegram bot actions (#41488)
hanwg Dec 9, 2025
17e523a
Document title options for energy graphs (#42501)
karwosts Dec 10, 2025
4f24f78
add documentation for the VLP file import (#42522)
cereal2nd Dec 12, 2025
6b3ae50
Add information about Shelly actions (#42046)
bieniu Dec 13, 2025
d1c6be2
Add brew by weight controls to lamarzocco (#42368)
zweckj Dec 14, 2025
ea8c1a9
Adds documentation for airpatrol integration (#40160)
antondalgren Dec 15, 2025
b429148
Add new Mealie meal plan types to calendar and services (#42562)
andrew-codechimp Dec 15, 2025
88de042
Risco - Add set_time service description (#37613)
FredericMa Dec 15, 2025
8c765c1
Add documentation for La Marzocco offline mode (#42582)
zweckj Dec 16, 2025
b11fe69
Update Nest documentation to add dynamic device behavior (#42573)
allenporter Dec 16, 2025
67ef18e
Remove 'Name' field from config flow in gios (#41588)
mik-laj Dec 16, 2025
ea9bb34
Risco - Fix typo: 'location' should be 'local' (#42587)
FredericMa Dec 16, 2025
359824d
Clarification on the method of adding the Switchbot device in BLE int…
zerzhang Dec 16, 2025
71b7204
Add documentation for managing Time-of-Use (TOU) schedule for Growatt…
johanzander Dec 16, 2025
3c2f082
Adjust to changed subentry functionality in Xbox integration (#42166)
tr4nt0r Dec 16, 2025
5cb1edf
Nintendo: Add documentation for select platform (#42604)
pantherale0 Dec 17, 2025
ba4b1de
Update Hikvision docs to config flow (#42613)
ptarjan Dec 17, 2025
c19ccb4
Add removal instructions to Hikvision integration (#42617)
ptarjan Dec 17, 2025
2592134
Document duplicate-log-file option (#42625)
abmantis Dec 17, 2025
9ebd9e4
Document Overseerr issue management features (#42494)
AmGarera Dec 18, 2025
42bea1d
Add USB dongle option for Smart Meter B Route integration
SeraphicRav Dec 18, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
76 changes: 76 additions & 0 deletions source/_dashboards/energy.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand All @@ -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
Expand All @@ -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
Expand Down
7 changes: 7 additions & 0 deletions source/_dashboards/weather-forecast.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -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 %}
Expand Down Expand Up @@ -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/).
Expand Down
50 changes: 48 additions & 2 deletions source/_integrations/airobot.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand All @@ -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
Expand Down
67 changes: 67 additions & 0 deletions source/_integrations/airpatrol.markdown
Original file line number Diff line number Diff line change
@@ -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 %}
21 changes: 17 additions & 4 deletions source/_integrations/bang_olufsen.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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

Expand Down Expand Up @@ -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: <https://www.deezer.com/en/album/ALBUM_ID>, 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 <https://www.deezer.com/en/profile/USER_ID> by selecting the active user in a web browser.
Deezer user IDs can be found at <https://www.deezer.com/en/profile/USER_ID> 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 <https://listen.tidal.com/album/ALBUM_ID/>, 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 <https://tidal.com/browse/track/TRACK_ID?u>, 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.
Expand Down
Loading