Commit Graph

65 Commits (85fdc562400211bbaab07233bd5e9a7c496ddb44)

Author SHA1 Message Date
epenet 141688e210
Cleanup ServiceInfo compatibility (#60540)
Co-authored-by: epenet <epenet@users.noreply.github.com>
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-05-09 14:17:48 +02:00
J. Nick Koston cec7e53302
Fix zeroconf tests (#71557) 2022-05-08 19:15:18 -07:00
J. Nick Koston ad1241a116
Fix missing patching of homekit matchers in zeroconf tests (#70141) 2022-04-16 16:41:10 +02:00
Steven Looman dbbb5655e5
Bump async-upnp-client to 0.25.0 (#66414)
Co-authored-by: J. Nick Koston <nick@koston.org>
2022-02-27 08:29:29 -10:00
Joshua Roys bc2cc42955
Don't abort zeroconf discovery for IPv6-only devices (#66455) 2022-02-13 15:24:23 -06:00
Joshua Roys 9134e5c844
Get discovered zeroconf IPv6 addresses (#65462) 2022-02-11 16:46:17 -06:00
J. Nick Koston ee375ff42d
Offer local control option when there are multiple zeroconf homekit matches (#62649) 2022-01-04 16:51:38 +01:00
J. Nick Koston 615872a5d1
Align zeroconf matching with ZeroconfServiceInfo (#62133) 2021-12-19 02:09:21 -06:00
epenet c05eca1c82
Remove log flooding prevention logic from discovery info (#61243)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-08 10:28:26 -10:00
epenet d64bf3cc6c
Use dataclass properties in Zeroconf tests (#61109)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-06 09:16:39 -10:00
epenet 37430e7c9e
Add get method to ZeroconfServiceInfo (#60528)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-29 17:37:55 +01:00
J. Nick Koston b75476e844
Add support for matching the zeroconf model property (#58922) 2021-11-07 07:44:15 -08:00
J. Nick Koston 5958e6a3f9
Ensure zeroconf uses the newest non-link local address in discovery (#58257) 2021-10-23 08:50:19 -10:00
J. Nick Koston 26f73779cc
Avoid enabling ipv6 dual stack for zeroconf on unsupported platforms (#56584) 2021-09-26 09:51:34 -07:00
J. Nick Koston 88e42a540e
Remove leftover debug prints in tests (#56409) 2021-09-19 12:43:02 +02:00
J. Nick Koston 1325b38256
Handle case where location_name is set to "" for zeroconf (#54880) 2021-08-20 14:33:23 -07:00
J. Nick Koston 5d19575a84
Exclude global scope IPv6 when setting up zeroconf interfaces (#54632) 2021-08-18 09:00:09 -07:00
J. Nick Koston 74a30af79b
Always set interfaces explicitly when IPv6 is present (#54268) 2021-08-09 21:13:55 +02:00
J. Nick Koston 5f790f6bd9
Fetch interface index from network integration instead of socket.if_nametoindex in zeroconf (#54152) 2021-08-06 09:15:35 -07:00
Yuxiang Zhu ce663f629c
Fix various zeroconf IPv6 compatibility issues (#53505) 2021-07-27 19:31:51 +02:00
J. Nick Koston 9f16e390f5
Deprecate IPv6 zeroconf setting in favor of the network integration (#51173) 2021-06-29 17:13:31 -10:00
J. Nick Koston 64661ee2b7
Add network configuration integration (#50874)
Co-authored-by: Ruslan Sayfutdinov <ruslan@sayfutdinov.com>
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-05-26 09:06:30 -07:00
J. Nick Koston f1d02bb137
Expand homekit zeroconf matching to use fnmatch (#50381) 2021-05-19 00:20:56 -05:00
J. Nick Koston 3cc3cacd08
Start ServiceBrowser as soon as possible in zeroconf (#50784)
Co-authored-by: Ruslan Sayfutdinov <ruslan@sayfutdinov.com>
2021-05-17 20:51:05 -07:00
J. Nick Koston dd3965e4e2
Ensure zeroconf does not generate config flows when matching attributes are missing (#50208)
If macaddress, name, or manufacturer were missing from the
discovery info, the matcher would accept instead of reject.
2021-05-11 21:24:42 -07:00
J. Nick Koston 3f547e58d7
Fix zeroconf test inadvertently matching strings that start with name (#49578)
* Fix zeroconf test inadvertently matching strings that start with name

* adjust

* adjust
2021-04-28 11:47:36 +02:00
J. Nick Koston cb4558c088
Autodetect zeroconf interface selection when not set (#49529) 2021-04-21 22:10:34 -07:00
J. Nick Koston 493bd4cdca
Add manufacturer matching support to zeroconf (#48810)
We plan on matching with _airplay which means we need
to able to limit to specific manufacturers to avoid
generating flows for integrations with the wrong
manufacturer
2021-04-08 09:03:10 -10:00
Paulus Schoutsen 46e593485e
Handle zeroconf updated events (#47683) 2021-03-09 10:14:00 -10:00
Paulus Schoutsen caf14b78d1
Homekit has two types (#44879) 2021-01-07 08:44:34 -10:00
Franck Nijhof 65cf2fcb6f
Drop asynctest (#44746) 2021-01-01 22:31:56 +01:00
Paulus Schoutsen c7bf7b32a2
Zeroconf lowercase (#44675) 2020-12-31 01:06:26 +01:00
J. Nick Koston 7b016063ca
Refactor zeroconf setup to be async (#39955)
* Refactor zeroconf setup to be async

Most of the setup was calling back to async because
we were setting up listeners.  Since we only need
to jump into the executor to create the zeroconf
instance, its much faster to setup in async.

In testing this cut the setup time in half
or better.

* partial revert to after_deps
2020-09-13 18:06:19 -05:00
J. Nick Koston 9389a7c9be
Limit zeroconf discovery to name/macaddress when provided (#39877)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2020-09-11 12:19:21 +02:00
J. Nick Koston 5a9246468e
Prevent invalid data from being passed to zeroconf (#39009) 2020-08-21 14:31:17 +02:00
J. Nick Koston 49478298cc
Ensure service browser does not collapse on bad dns names (#38851)
If a device on the network presented a bad name, zeroconf
would throw zeroconf.BadTypeInNameException and the service
browser would die off.  We now trap the exception and continue.
2020-08-13 22:00:39 -05:00
J. Nick Koston 444df4a7d2
Use the shared zeroconf instance when attempting to create another Zeroconf instance (#38744) 2020-08-12 16:08:33 +02:00
J. Nick Koston fdc5208d18
Prevent the zeroconf service browser from terminating when a device without any addresses is discovered. (#38094) 2020-07-22 20:21:57 -10:00
J. Nick Koston 5cf7b1b1bc
Ensure we do not start discovered flows until after the started event has fired (#38047)
* Ensure we do not start discovered flows until after the start event has fired

This change makes zeroconf and ssdp match discovery behavior of not
creating config flows until the start event has been fired.  This
prevents config flow creation/dependency installs for discovered
config flows from competing for cpu time during startup.

* Start discovery/service browser/ssdp when EVENT_HOMEASSISTANT_STARTED is fired instead of EVENT_HOMEASSISTANT_START
2020-07-21 14:18:43 -10:00
J. Nick Koston abe3e3094e
Provide workaround for missing/disabled/broken IPv6 (#37887) 2020-07-15 11:26:40 -07:00
J. Nick Koston bfbb2826bc
Fix homekit_controller discovery via zeroconf (#37725) 2020-07-13 17:45:05 -07:00
J. Nick Koston 5e65d8d3c3
Upgrade zeroconf to 0.27.1 (#36277) 2020-06-05 14:33:26 -07:00
J. Nick Koston b0578018cb
Use a single service browser for zeroconf discovery (#35997) 2020-05-23 18:05:41 +02:00
J. Nick Koston a42a654590
Fix reversed logic in zeroconf homekit pairing check (#35596)
* Fix reversed logic in zeroconf homekit pairing check

* s/server_info/service_info/
2020-05-14 18:58:40 +02:00
J. Nick Koston 16cc4aed06
Ensure homekit_controller recieves zeroconf c# updates (#35545)
* Ensure homekit_controller recieves zeroconf c# updates

If an integration has a homekit config flow step
homekit controller would not see updates for
devices that were paired with it and would not
rescan for changes.

* Only send updates to homekit controller if the device is paired

This avoids the device showing up a second time.

* remove debug

* fix refactor error
2020-05-12 14:59:29 -05:00
J. Nick Koston 3315c4c6c3
Pre-filter zeroconf service browser updates (#35518)
Each ServerBrowser currently runs in its own thread which
processes every A or AAAA record update per instance.

As the list of zeroconf names we watch for grows, each additional
ServiceBrowser would process all the A and AAAA updates on the network.

To avoid overwhemling the system we pre-filter here and only process
DNSPointers for the configured record name (type)
2020-05-11 18:30:15 -05:00
Paulus Schoutsen 9d83059f14
Allow zeroconf instance sharing (#35484) 2020-05-10 22:51:23 -07:00
J. Nick Koston 70b29dc823
Make interface_choice option effective (#35444)
I missed the second commit that actually makes this
work in the original merge.
2020-05-10 14:30:54 -05:00
J. Nick Koston 3219c380c7
Provide zeroconf option to bind to only the default interface (#35281)
By default zeroconf binds to every interface.
2020-05-06 09:16:59 -05:00
Paulus Schoutsen ec47216388
Use built-in test helpers on 3.8 (#34901) 2020-04-30 13:29:50 -07:00