Commit Graph

81 Commits (13386fc41b502aeb992c9c6a72874c9fc6b30364)

Author SHA1 Message Date
Marc Mueller 84618fa831
Use assignment expressions 30 (#58714) 2021-10-30 16:33:42 +02: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 b86e19143d
Prevent event loop delay / instability from discovery (#57463) 2021-10-13 08:37:14 -07: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 1325b38256
Handle case where location_name is set to "" for zeroconf (#54880) 2021-08-20 14:33:23 -07:00
J. Nick Koston 6d0ce814e7
Add new network apis to reduce code duplication (#54832) 2021-08-18 12:33:26 -05:00
J. Nick Koston 5d19575a84
Exclude global scope IPv6 when setting up zeroconf interfaces (#54632) 2021-08-18 09:00:09 -07:00
Ville Skyttä 939fde0a50
ConfigType and async_setup/setup type hint improvements (#54739) 2021-08-18 13:22:05 +02: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 25229a9670
Allow zeroconf name change if there is another Home Assistant running on the local network (#53476)
* Allow zeroconf name change if there is another Home Assistant running on the local network

* Remove unused try/except
2021-07-26 09:27:49 +02:00
Simone Chemelli 75f7d3d696
Replace util.get_local_ip in favor of components.network.async_get_source_ip() - part 1 (#52980) 2021-07-22 08:12:33 -10: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 e37256570c
Add missing return type in zeroconf (#50847) 2021-05-18 22:49:10 -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 909a20b36d
Use async zeroconf registration functions (#50168) 2021-05-11 11:03:36 -05:00
Ville Skyttä 153d6e891e
Use config_entries.SOURCE_* constants (#49631) 2021-04-25 11:27:40 +02:00
Marc Mueller f1d48ddfe3
Update pylint to 2.8.0 (#49637) 2021-04-24 14:39:24 -10: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
Ruslan Sayfutdinov 82c94826fb
Enable strict typing for zeroconf (#48450)
* Enable strict typing for zeroconf

* Fix lutron_caseta

* Fix pylint warning

* Fix tests

* Fix xiaomi_aqara test

* Add __init__.py in homeassistant.generated module

* Restore add_job with type: ignore
2021-03-30 06:48:04 -10:00
J. Nick Koston da7fd8a294
Listen on the default interface by default for zeroconf (#48302) 2021-03-24 15:04:55 -10:00
Franck Nijhof 6932cf9534
Use contextlib.suppress where possible (#48189) 2021-03-23 14:36:43 +01:00
Marc Mueller 4cb7718192
Update typing 16 (#48087) 2021-03-18 22:58:19 +01: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
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 d0d0403664
Add zeroconf/homekit/ssdp discovery support for custom components (#38466)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2020-08-05 15:50:56 +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
Paulus Schoutsen 9ac1475251
Simplify logger integration (#37780)
Co-authored-by: J. Nick Koston <nick@koston.org>
2020-07-13 10:20:18 -07:00
Franck Nijhof 4950cbee1c
Fix iOS app crashing on None values in Zeroconf service info (#36490) 2020-06-05 12:43:58 -07:00
Erik Montnemery c7e97f0cf8
Bump zeroconf, pychromecast. Log if zeroconf.get_service_info fails. (#36185) 2020-05-27 07:31:26 -04:00
Erik Montnemery b136390647
Reset zeroconf log level (#36002) 2020-05-23 11:29:13 -05:00
J. Nick Koston b0578018cb
Use a single service browser for zeroconf discovery (#35997) 2020-05-23 18:05:41 +02:00
Franck Nijhof ee92d64088
Add UUID to ZeroConf service info (#35623) 2020-05-20 08:37:32 +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