Skip to content

Commit bbdc415

Browse files
authored
Merge branch 'next' into frenck-2026-0414
2 parents 8e523ca + 19a3fa0 commit bbdc415

10 files changed

Lines changed: 339 additions & 75 deletions

File tree

source/_integrations/duco.markdown

Lines changed: 33 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ ha_platforms:
1515
- sensor
1616
ha_integration_type: hub
1717
ha_quality_scale: bronze
18+
ha_dhcp: true
1819
ha_zeroconf: true
1920
---
2021

@@ -37,16 +38,31 @@ Compatible DucoBox models:
3738
- DucoBox Energy Comfort / Energy Comfort Plus
3839
- DucoBox Energy Premium
3940

41+
### Supported sensor modules
42+
43+
The following sensor module types are supported:
44+
45+
- **BOX**: The main ventilation box; provides fan control, ventilation state, and Wi-Fi signal strength.
46+
- **UCCO2**: Wall-mounted CO₂ sensor unit; provides CO₂ concentration and CO₂ air quality index.
47+
- **BSRH**: Humidity sensor module installed in the duct inlet of the DucoBox, wired directly to the PCB via cable; provides relative humidity and humidity air quality index.
48+
- **UCRH**: Wireless humidity sensor module; provides relative humidity and humidity air quality index.
49+
50+
### Unsupported sensor modules
51+
52+
The following sensor module types are discovered but not yet supported:
53+
54+
- **UC**: Universal control unit (no sensor data exposed)
55+
- **UCBAT**: Battery-powered sensor module
56+
- **VLV**: Valve actuator
57+
58+
When Home Assistant discovers a node with an unsupported type, it logs a warning and skips that node. All other nodes continue to work normally.
59+
4060
## Prerequisites
4161

4262
- A Duco ventilation box with a DUCO Connectivity Board connected to your local network.
4363

4464
{% include integrations/config_flow.md %}
4565

46-
Your Duco ventilation box can be automatically discovered on your network when the device is connected and powered on. When Home Assistant discovers a new Duco device, it appears as a notification in the UI. Select the notification to complete the setup.
47-
48-
If automatic discovery does not work, you can manually add the integration by providing the IP address or hostname.
49-
5066
{% configuration_basic %}
5167
Host:
5268
description: "The IP address or hostname of your DUCO Connectivity Board on the local network, for example `192.168.1.10`. Only needed when setting up the integration manually."
@@ -56,9 +72,10 @@ Host:
5672

5773
The Duco system consists of multiple nodes. Each node appears as a separate device in Home Assistant, connected to the main ventilation box:
5874

59-
- **BOX** — the main DucoBox (fan control, ventilation state)
60-
- **UCCO2** — a wireless CO₂ sensor module
61-
- **BSRH** — a humidity sensor module installed inside the DucoBox
75+
- **BOX**: The main DucoBox (fan control, ventilation state)
76+
- **UCCO2**: A wall-mounted control unit with a built-in CO₂ sensor
77+
- **BSRH**: A humidity sensor module installed in the duct inlet of the DucoBox
78+
- **UCRH**: A wireless humidity sensor module
6279

6380
### Fan
6481

@@ -74,7 +91,7 @@ The following actions are available:
7491
- **Speed 100%**: High speed manual override.
7592
- **Auto preset**: Same as speed 0%; hands control back to Duco.
7693

77-
When an external device (for example a CO₂ sensor or an RF wall switch) triggers a timed speed override on the Duco box, Home Assistant reflects the current ventilation level as a percentage. These timed states cannot be set from Home Assistant; writing a speed always uses the permanent manual mode (a continuous override with no time limit).
94+
When a connected wall unit (such as a UCCO2) triggers a timed speed override on the Duco box, Home Assistant reflects the current ventilation level as a percentage. These timed states cannot be set from Home Assistant; writing a speed always uses the permanent manual mode (a continuous override with no time limit).
7895

7996
### Sensors
8097

@@ -94,7 +111,7 @@ Available for CO₂ sensor modules. Shows the current CO₂ concentration in par
94111

95112
#### Humidity
96113

97-
Available for humidity sensor modules (BSRH). Shows the current relative humidity in percent.
114+
Available for humidity sensor modules (BSRH, UCRH). Shows the current relative humidity in percent.
98115

99116
#### CO₂ air quality index
100117

@@ -109,7 +126,7 @@ Indoor air quality ranges for CO₂:
109126

110127
#### Humidity air quality index
111128

112-
Available for humidity sensor modules (BSRH). Shows the humidity air quality score as a percentage (0–100%). This entity is disabled by default.
129+
Available for humidity sensor modules (BSRH, UCRH). Shows the humidity air quality score as a percentage (0–100%). This entity is disabled by default.
113130

114131
Indoor air quality ranges for humidity:
115132

@@ -228,8 +245,8 @@ The integration {% term polling polls %} the Duco box every 30 seconds. If you a
228245
229246
## Known limitations
230247
231-
- The Duco box enforces a rate limit of approximately 200 write requests per day (HTTP 429, error code 18). The integration handles this gracefully, and the firmware resets the quota automatically around midnight.
232-
- Timed speed overrides set by external devices (such as an RF wall switch or a CO₂ sensor) cannot be triggered from Home Assistant. They are read-only: the current ventilation level is shown as a percentage, but setting a speed from Home Assistant always uses the permanent manual mode (a continuous override with no time limit).
248+
- The Duco box enforces a rate limit of 200 write requests per day. When the limit is reached, the integration shows a notification and stops sending write requests until the quota resets automatically around midnight.
249+
- Timed speed overrides set by a connected wall unit (such as a UCCO2) cannot be triggered from Home Assistant. They are read-only: the current ventilation level is shown as a percentage, but setting a speed from Home Assistant always uses the permanent manual mode (a continuous override with no time limit).
233250
- When you deregister a sensor module via the Duco app or firmware, the node disappears from the Duco API and Home Assistant removes it automatically on the next data update. However, a BSRH humidity sensor that is physically disconnected from the box PCB (rather than deregistered via software) is not treated as deregistered by the firmware. Its node remains in the API indefinitely, so its entities will stay in Home Assistant until you deregister it through the Duco app.
234251
235252
## Troubleshooting
@@ -239,7 +256,7 @@ The integration {% term polling polls %} the Duco box every 30 seconds. If you a
239256
If your Duco ventilation box is not automatically discovered:
240257
241258
- Ensure the device is powered on and connected to the same network as Home Assistant.
242-
- Check that mDNS/Bonjour traffic is not blocked by your router or firewall.
259+
- Check that mDNS/Bonjour traffic is not blocked by your router or firewall. If it is, the integration can still discover the device automatically via DHCP the next time the device renews its IP address lease.
243260
- Verify the device name shows as "DUCO [MAC address]" in your router's device list or network scanner.
244261
- Manually add the integration using the device's IP address if discovery continues to fail.
245262
@@ -264,15 +281,13 @@ Home Assistant cannot reach the Duco box at the configured address. This can hap
264281

265282
#### Symptom
266283

267-
Setting the fan speed or preset mode fails with an error like:
284+
Setting the fan speed or preset mode fails with a notification in the Home Assistant UI:
268285

269-
```text
270-
Failed to set ventilation state: DucoError('Duco API error (429): {"Code":18,"Result":"FAILED"}')
271-
```
286+
> The Duco device has reached its daily write limit. Try again tomorrow.
272287

273288
#### Description
274289

275-
The Duco box enforces a write rate limit of 200 write requests per day. When the limit is reached, the box rejects further write requests with a 429 error until the quota resets around midnight.
290+
The Duco box enforces a write rate limit of 200 write requests per day. When the limit is reached, the box rejects further write requests until the quota resets around midnight.
276291

277292
#### Resolution
278293

source/_integrations/html5.markdown

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -213,18 +213,29 @@ When using a relative path for an image or icon URL, the path is resolved relati
213213

214214
{% endnote %}
215215

216-
### Dismiss
216+
### Action: Dismiss message
217217

218-
You can dismiss notifications by using `html5.dismiss` action like so:
218+
You can dismiss notifications using the `html5.dismiss_message` action.
219+
220+
- **Data attribute**: `tag`
221+
- **Description**: The tag of the notifications to dismiss. If not specified, all notifications to the selected devices will be dismissed.
222+
- **Optional**: Yes
223+
224+
{% details "Example YAML configuration" %}
225+
226+
{% raw %}
219227

220228
```yaml
221-
target: ['my phone']
229+
action: html5.dismiss_message
222230
data:
223-
tag: notification_tag
231+
tag: message-group-1
232+
target:
233+
entity_id: notify.my_desktop
224234
```
225235

226-
If no target is provided, it dismisses for all.
227-
If no tag is provided, it dismisses all notifications.
236+
{% endraw %}
237+
238+
{% enddetails %}
228239

229240
## Automating notification events
230241

source/_integrations/knx.markdown

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -617,7 +617,9 @@ type:
617617

618618
### Entity exposures
619619

620-
Expose Home Assistant entities to share their state or attributes with the KNX bus. Home Assistant automatically sends the current value whenever it changes and responds to read requests on the KNX bus.
620+
Expose Home Assistant entities to share their state or attributes with the KNX bus. Home Assistant automatically sends the current value whenever it changes and responds to read requests on the KNX bus. This can be configured from the frontend in the KNX panel or via YAML.
621+
622+
{% details "Configuration of entity exposures via YAML" %}
621623

622624
{% raw %}
623625

@@ -710,6 +712,8 @@ respond_to_read:
710712
default: true
711713
{% endconfiguration %}
712714

715+
{% enddetails %}
716+
713717
## Entity platforms
714718

715719
### Common entity configuration options

source/_integrations/melcloud.markdown

Lines changed: 27 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -93,13 +93,35 @@ The system cannot be turned on/off through the `climate` entities.
9393

9494
The following attributes are available for `sensor` platform entities:
9595

96-
- Room temperature for each zone
97-
- Tank water temperature
98-
- Outside temperature - 1°C precision, polled every 1-2 hours.
96+
**Zone sensors** (per radiator zone):
97+
98+
- Room temperature
9999
- Zone flow temperature, polled every 1-2 hours
100-
- Zone flow return temperature, polled every 1-2 hours
100+
- Zone return temperature, polled every 1-2 hours
101101

102-
Unlike air-to-air devices, air-to-water devices do not report energy consumption in an easily accessible manner.
102+
**Device sensors:**
103+
104+
- Tank water temperature
105+
- Outside temperature – 1°C precision, polled every 1-2 hours
106+
- System flow temperature
107+
- System return temperature
108+
- Boiler flow temperature
109+
- Boiler return temperature
110+
- Mixing tank temperature
111+
- Condensing temperature
112+
- Heat pump frequency (compressor frequency in Hz)
113+
- Demand percentage
114+
- Daily heating energy:
115+
- Consumed
116+
- Produced
117+
- Daily cooling energy:
118+
- Consumed
119+
- Produced
120+
- Daily hot water energy:
121+
- Consumed
122+
- Produced
123+
124+
The daily energy sensors use the state class `total_increasing` and are compatible with the Energy Dashboard. Values reset at midnight in the MELCloud service timezone.
103125

104126
### Binary sensor
105127

source/_integrations/onedrive.markdown

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -94,17 +94,36 @@ This integration provides the following actions:
9494

9595
### Action `onedrive.upload`
9696

97-
You can use the `onedrive.upload` action to upload files from Home Assistant
98-
to OneDrive. For example, to upload `camera` snapshots.
97+
You can use the `onedrive.upload` action to upload one or more files from Home Assistant to OneDrive. For example, to upload `camera` snapshots.
9998

10099
{% details "Upload action details" %}
101100

102101
| Data attribute | Optional | Description | Example |
103102
| ---------------------- | -------- | ----------- | --------|
104-
| `filename` | no | Path to the file to upload. | /media/image.jpg |
105-
| `destination_folder` | no | Folder inside your `Apps/Home Assistant` app folder that is the destination for the uploaded content. Will be created if it does not exist. Supports subfolders. | Snapshots/2025 |
103+
| `filename` | no | One or more local file paths to upload. Accepts a single string or a list of strings. | /media/image.jpg |
104+
| `destination_folder` | no | Folder inside your `Apps/Home Assistant` app folder that is the destination for the uploaded files. Will be created if it does not exist. Supports subfolders. | Snapshots/2025 |
106105
| `config_entry_id` | no | The ID of the OneDrive config entry (the OneDrive you want to upload to). | a1bee602deade2b09bc522749bbce48e |
107106

107+
{% raw %}
108+
109+
```yaml
110+
# Upload a single file
111+
action: onedrive.upload
112+
data:
113+
filename: /media/image.jpg
114+
destination_folder: Snapshots/2025
115+
116+
# Upload multiple files
117+
action: onedrive.upload
118+
data:
119+
filename:
120+
- /media/image_1.jpg
121+
- /media/image_2.jpg
122+
destination_folder: Snapshots/2025
123+
```
124+
125+
{% endraw %}
126+
108127
{% enddetails %}
109128
110129
## Automations

source/_integrations/portainer.markdown

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,9 @@ There is currently support for the following device types within Home Assistant:
5353
### Buttons
5454

5555
- **Restart container**: Restarts the container.
56+
- **Pause container**: Pauses the container.
57+
- **Resume container**: Resumes the container.
58+
- **Recreate container**: Recreates the container by pulling the latest tagged image.
5659
- **Prune unused images**: Removes unused Docker images from the endpoint.
5760

5861
### Sensors

0 commit comments

Comments
 (0)