diff --git a/docs/creating_integration_manifest.md b/docs/creating_integration_manifest.md index dbc42eed..0237d36c 100644 --- a/docs/creating_integration_manifest.md +++ b/docs/creating_integration_manifest.md @@ -108,12 +108,25 @@ It is also possible to use a public git repository to install a requirement. Th If your integration supports discovery via [Zeroconf](https://en.wikipedia.org/wiki/Zero-configuration_networking), you can add the type to your manifest. If the user has the `zeroconf` integration loaded, it will load the `zeroconf` step of your integration's config flow when it is discovered. +Zeroconf is a list so you can specify multiple types to match on. + ```json { "zeroconf": ["_googlecast._tcp.local."] } ``` +Certain zeroconf types are very generic (i.e., `_printer._tcp.local.`, `_axis-video._tcp.local.` or `_http._tcp.local`). In such cases you should include a name or MAC address filter: + +```json +{ + "zeroconf": [ + {"type":"_axis-video._tcp.local.","macaddress":"00408C*"}, + {"type":"_axis-video._tcp.local.","name":"Example*"}, + ] +} +``` + ## 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, 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.