Commit Graph

39 Commits (255f35b979aacaf9b3382d148e397ba38c1eb4fe)

Author SHA1 Message Date
Erik Montnemery c4afc33fc5
Add abc.ABC to classes with abstract methods (#83546) 2022-12-08 17:50:36 +01:00
epenet b5402f9b57
Import device tracker constants from root (#78242) 2022-09-12 20:50:44 -04:00
J. Nick Koston c975146146
Reduce discovery integration matching overhead (#77194) 2022-08-23 10:35:20 -04:00
Marc Mueller 1a8ccfeb56
Use device_tracker SourceType enum [a-g] (#75963) 2022-07-31 15:51:04 +02:00
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 076fe97110
Strict typing for dhcp (#67361) 2022-02-28 18:49:44 -10:00
Martin Hjelmare d9abd5efea
Fix dhcp None hostname (#67289)
* Fix dhcp None hostname

* Test handle None hostname
2022-02-26 19:37:24 +01:00
J. Nick Koston a18d4c51ff
Ensure dhcp can still discover new devices from device trackers (#66822)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2022-02-19 09:01:34 -06:00
J. Nick Koston f069a37f7d
Allow integrations to request dhcp discovery flows for registered devices (#66528) 2022-02-15 11:02:52 -06:00
J. Nick Koston adbc0e5955
Prevent multiple dhcp flows from being started for the same device/domain (#65753) 2022-02-05 10:59:22 -06:00
epenet 2f8d99bf5d
Remove integrations from mypy ignored modules (part 2) (#64367)
* Adjust dhcp

* Adjust growatt_server

* Adjust habitica

* Adjust home_connect

* Adjust iaqualink

* Adjust incomfort

* Adjust input_number

* Adjust ipp

* Adjust mypy_config

* Unindent input-number

* Fix type hint in home_connect

Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-01-19 09:00:09 +01:00
epenet da7c5f4722
Break long lines in discovery_info (#61431) 2021-12-10 12:48:47 +01: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 38153b015f
Enable warnings for DhcpServiceInfo (#60750)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-01 05:56:54 -10:00
epenet 0f2e39adee
Add get method to DhcpServiceInfo (#60527)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-29 05:11:36 -10:00
Marc Mueller 25f8d4a189
Upgrade pylint to 2.12.1 (#60375) 2021-11-26 00:13:27 +01:00
epenet 560546f65e
Use dataclass for DhcpServiceInfo (#60136)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-23 13:35:53 +01:00
epenet 476a59d248
Adjust async_step_dhcp signature for strict typing (#59751)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-16 12:19:50 +01:00
J. Nick Koston b86e19143d
Prevent event loop delay / instability from discovery (#57463) 2021-10-13 08:37:14 -07:00
J. Nick Koston be8724a6f8
Do all of dhcp scapy startup in the executor (#57392) 2021-10-10 00:00:28 -07:00
J. Nick Koston 2ed35debdc
Fix dhcp discovery matching due to deferred imports (#56814) 2021-09-29 23:50:21 -05:00
J. Nick Koston ff1b39cda6
Fix circular import of scapy in dhcp (#56040)
* Fix circular import of scapy in dhcp

* Tweak import, add comment

* Tweak import, add comment

* pylint
2021-09-10 10:04:54 +02:00
Erik Montnemery dd7dea9a3f
Make scapy imports in DHCP local (#55647) 2021-09-06 10:10:27 -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 6a5dcf0869
Handle dhcp packets without a hostname (#52882)
* Handle dhcp packets without a hostname

- Since some integrations only match on OUI we want to
  make sure they still see devices that do not request
  a specific hostname

* Update tests/components/dhcp/test_init.py

* Update homeassistant/components/dhcp/__init__.py

Co-authored-by: Franck Nijhof <git@frenck.dev>

Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-07-12 17:25:16 +02:00
J. Nick Koston 91821fa6ad
Name the dhcp watcher thread (#49144)
When getting py-spy reports, it is helpful to get thread names
to make it easier to track down issues.
2021-04-13 12:29:30 +02:00
J. Nick Koston f91de1c8b9
Add support for capturing renewals to dhcp discovery (#48242) 2021-03-30 15:41:12 +02:00
J. Nick Koston 2ff94c8ed9
Add additional data source to dhcp (#48430) 2021-03-28 09:47:28 -10:00
J. Nick Koston 958c4764f7
Handle routers that convert hostnames to lowercase in dhcp (#48429)
Some routers will lowercase all the hostnames. Since we
already lowercase hostnames for matching purposes, we now
pass the lowercased hostname to the integration.

Currently only roomba cared about this, and has been adjusted.
2021-03-28 11:23:06 +02:00
J. Nick Koston 1dd35ff059
Catch dhcp setup permission errors sooner (#47639)
This solves an unexpected thread exception on macs when running as
a user intead of root
2021-03-08 15:15:22 -08:00
J. Nick Koston 01e73911d6
Do not listen for dhcp packets if the filter cannot be setup (#46006) 2021-02-05 00:36:55 +01:00
J. Nick Koston b9f9de0c1d
dhcp does not need promisc mode. Disable it in scapy (#46018) 2021-02-04 23:39:44 +01:00
J. Nick Koston e8cda598ac
Fix memory leak in dhcp integration (#45378)
* Fix memory leak in dhcp integration

Passing the L2socket to AsyncSniffer caused a memory
leak on some systems. To ensure we can create a socket,
we do a test creation before starting AsyncSniffer
since the sniffer will create it in another thread
and we cannot see any permission error otherwise.

* Update tests

* space

* do not store packets
2021-01-21 08:26:58 +01:00
J. Nick Koston 3ae527c158
Switch dhcp to use async sniff for faster shutdown (#45339)
* Switch dhcp to use async sniff for faster shutdown

* Do not actually start the thread since we do not know when it will finish starting
2021-01-19 20:49:49 +01:00
Robert Svensson 07c3981de7
Use methods available to verify link local address (#45309) 2021-01-19 09:15:41 +01:00
J. Nick Koston fbc98b1291
Make DHCP discovery ignore self assigned ip addresses (#45256) 2021-01-17 10:35:02 +01:00
J. Nick Koston 5e01b828af
Discover devices from device_trackers with router sources (#45160)
* Discover devices from device_trackers with router sources

* Update homeassistant/components/dhcp/__init__.py

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>

* fix stop being called on the wrong context

* clean

* move it to base

* cleanup was too agressive

* Update homeassistant/components/dhcp/__init__.py

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>

* coverage

* revert legacy changes

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-01-16 01:01:37 +01:00
J. Nick Koston 7fada806af
Downgrade dhcp log message error message when running without CAP_NET_RAW (#45157) 2021-01-14 10:46:15 -10:00
J. Nick Koston da677f7d5a
Add support for discovery via DHCP (#45087)
* Add support for discovery via DHCP

* additional tesla ouis

* merge tests

* dhcp test

* merge requirements test

* dhcp test

* dhcp discovery

* dhcp discovery

* pylint

* pylint

* pylint

* fix

* Add matching tests

* 100% cover

* cleanup

* fix codespell

* Update exception handling

* remove unneeded comment

* fix options handling exception

* fix options handling exception
2021-01-14 09:09:08 +01:00