From b0bc277a8dba2c1f68e398595401a516ff84e1b9 Mon Sep 17 00:00:00 2001 From: c0ffeeca7 Date: Thu, 8 Aug 2024 11:10:35 +0200 Subject: [PATCH] Matter device update: add screenshot - rename to OTA update, to align with wording used by other integrations --- source/_integrations/matter.markdown | 11 +++++++++-- .../integrations/matter/matter_ota_message.png | Bin 0 -> 26645 bytes 2 files changed, 9 insertions(+), 2 deletions(-) create mode 100644 source/images/integrations/matter/matter_ota_message.png diff --git a/source/_integrations/matter.markdown b/source/_integrations/matter.markdown index 74a06d0807cf..1255b1fce9b4 100644 --- a/source/_integrations/matter.markdown +++ b/source/_integrations/matter.markdown @@ -322,9 +322,16 @@ This section provides a bit more information on some of the categories: **IP addresses**: Typically more than one IPv6 address is shown: link local, unique local, and global unicast. In some cases a device also supports IPv4. In that case there will also be listed an IPv4 address here. -## Matter device updates +## Matter OTA device updates -The Matter standard supports OTA (Over-the-Air) updates optionally. Matter devices that support Matter updates will have an [update entity](/integrations/update). Furthermore, the CSA DCL (Distributed Compliance Ledger) stores firmware update information. Home Assistant reads firmware update information directly from the DCL to learn about available updates. By default, the integration checks every 12 hours for an update. If you want to force an update check, use the `homeassistant.update_entity` [action](/integrations/homeassistant/) with the update entity as the target. +The Matter protocol supports OTA (Over-the-Air) software updates. But the OTA software update is an optional feature for Matter devices, so not all Matter devices implement it. Home Assistant creates an update entity for every Matter device which does support Matter updates. + +The CSA operates a Distributed Compliance Ledger (DCL) which provides metadata for firmware updates. By default, the Matter update entities check the DCL every 12 hours for updates. If you want to force an update check, use the `homeassistant.update_entity` [action](/integrations/homeassistant/), with the update entity as the target. Currently, Eve and Nanoleaf are using the DCL to provide updates. It is expected that in future, more and more firmware updates become available through the DCL. + +

+Matter device OTA update message +Notification of an OTA update for a Matter device +

## Experiment with Matter using a ESP32 dev board diff --git a/source/images/integrations/matter/matter_ota_message.png b/source/images/integrations/matter/matter_ota_message.png new file mode 100644 index 0000000000000000000000000000000000000000..11ec08ccaa52ee9d6e940c95c5ddebd1cf5c57f3 GIT binary patch literal 26645 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 L