From 280aa06346fa2c6d160881e7a98a191e5f89329c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20Skytt=C3=A4?= Date: Mon, 28 Oct 2019 09:46:44 +0200 Subject: [PATCH 1/2] Update SSDP integration manifest --- docs/creating_integration_manifest.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/creating_integration_manifest.md b/docs/creating_integration_manifest.md index 4f2b9c70ad6..bccc5d88f2f 100644 --- a/docs/creating_integration_manifest.md +++ b/docs/creating_integration_manifest.md @@ -96,21 +96,21 @@ If your integration supports discovery via [Zeroconf](https://en.wikipedia.org/w ## SSDP -If your integration supports discovery via [SSDP](https://en.wikipedia.org/wiki/Simple_Service_Discovery_Protocol), you can add the type to your manifest. If the user has the `ssdp` integration loaded, it will load the `ssdp` step of your integration's config flow when it is discovered. We support SSDP discovery by ST, manufacturer and device type. Your integration is discovered if any of the specified info is found. It's up to your config flow to filter out duplicates. +If your integration supports discovery via [SSDP](https://en.wikipedia.org/wiki/Simple_Service_Discovery_Protocol), you can add the type to your manifest. If the user has the `ssdp` integration loaded, it will load the `ssdp` step of your integration's config flow when it is discovered. We support SSDP discovery by ST, and all data in UPnP device description. The manifest value is a list of matcher dictionaries, your integration is discovered if all items of any of the specified matchers are found in the SSDP/UPnP data. It's up to your config flow to filter out duplicates. ```json5 { - "ssdp": { + "ssdp": [{ "st": [ "roku:ecp" ], "manufacturer": [ "Roku" ], - "device_type": [ + "deviceType": [ "urn:roku-com:device:player:1-0" ] - } + }] } ``` From c4a3c55086fbcb808a4155712c797cbb0438de18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20Skytt=C3=A4?= Date: Tue, 29 Oct 2019 23:38:52 +0200 Subject: [PATCH 2/2] Update/fix example --- docs/creating_integration_manifest.md | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/docs/creating_integration_manifest.md b/docs/creating_integration_manifest.md index bccc5d88f2f..1a23f43acf6 100644 --- a/docs/creating_integration_manifest.md +++ b/docs/creating_integration_manifest.md @@ -98,19 +98,17 @@ If your integration supports discovery via [Zeroconf](https://en.wikipedia.org/w If your integration supports discovery via [SSDP](https://en.wikipedia.org/wiki/Simple_Service_Discovery_Protocol), you can add the type to your manifest. If the user has the `ssdp` integration loaded, it will load the `ssdp` step of your integration's config flow when it is discovered. We support SSDP discovery by ST, and all data in UPnP device description. The manifest value is a list of matcher dictionaries, your integration is discovered if all items of any of the specified matchers are found in the SSDP/UPnP data. It's up to your config flow to filter out duplicates. +The following example has one matcher consisting of three items, all of which must match for discovery to happen by this config. + ```json5 { - "ssdp": [{ - "st": [ - "roku:ecp" - ], - "manufacturer": [ - "Roku" - ], - "deviceType": [ - "urn:roku-com:device:player:1-0" - ] - }] + "ssdp": [ + { + "st": "roku:ecp", + "manufacturer": "Roku", + "deviceType": "urn:roku-com:device:player:1-0" + } + ] } ```