Commit Graph

62 Commits (130e7317bcf19b4458ed11939705d3c731410dc8)

Author SHA1 Message Date
J. Nick Koston 6e727a49bf
Remove unused constant in dhcp (#124605) 2024-08-25 20:58:20 -07:00
epenet 97f6b578c8
Enforce namespace import in core (#118235) 2024-05-27 14:03:00 +02:00
J. Nick Koston ca5ed274cb
Deprecate calling async_listen and async_listen_once with run_immediately (#115169) 2024-04-08 10:07:54 -10:00
Marc Mueller 3c5089bc3f
Update import for EventStateChangedData [a-h] (#114899) 2024-04-04 11:48:36 -10:00
J. Nick Koston 40ce2011be
Run dhcp listeners with run_immediately (#113726)
Neither of these need a call_soon
2024-03-18 10:16:20 -04:00
J. Nick Koston e293afe46e
Bump aiodhcpwatcher to 1.0.0 (#113469) 2024-03-14 14:16:19 -10:00
Marc Mueller 25237e0377
Replace EventType with Event [a-g] (#112739) 2024-03-08 19:35:17 +01:00
Marc Mueller 0e3945ca6c
Add empty line after module docstring [d-f] (#112698) 2024-03-08 14:15:26 +01:00
J. Nick Koston d40bd0f6c8
Fix dhcp delaying shutdown (#112670) 2024-03-07 23:37:43 -05:00
J. Nick Koston b3452dc3f3
Refactor dhcp to move all mac formatting into the client processor (#110509) 2024-02-13 19:12:38 -06:00
J. Nick Koston 122ac059bc
Convert dhcp watcher to asyncio (#109938) 2024-02-08 22:23:42 -06:00
J. Nick Koston 73589015c3
Improve scalability of DHCP matchers (#109406) 2024-02-04 16:50:08 -06:00
J. Nick Koston 54f460b7c9
Improve performance of dhcp on high activity networks (#105884)
* Improve performance of dhcp on high activity networks

Most of the overhead was constructing IPAddress objects
which is solved with https://github.com/bdraco/cached-ipaddress

* fix test

* fix: bump

* bump again

* lets do it on the correct branch
2023-12-21 20:36:09 +01:00
J. Nick Koston 235914c63a
Improve performance of dhcp integration client processing (#106137)
We were using run_callback_threadsafe here which has the overhead
of creating a future and waiting for the result when we throw
it away.
2023-12-21 09:28:04 +01:00
Ville Skyttä 24b1e01d71
Update Ruff to 0.1.8, avoid linter/formatter conflicts (#106080)
* Disable Ruff rules that may conflict with the formatter

* Upgrade Ruff to 0.1.8

- https://github.com/astral-sh/ruff/releases/tag/v0.1.7
- https://github.com/astral-sh/ruff/releases/tag/v0.1.8

* Format with Ruff 0.1.8
2023-12-20 23:55:09 +01:00
J. Nick Koston 06c7f0959c
Update dhcp to use stdlib ipaddress methods (#100625) 2023-09-20 11:54:24 +02:00
Ville Skyttä 3b4774d9ed
Remove unnnecessary pylint configs from components/[a-d]* (#98911) 2023-08-24 00:54:02 +02:00
Marc Mueller 797a9c1ead
Improve `async_track_state_added/removed_domain` callback typing (#97126) 2023-07-24 09:11:41 +02:00
Erik Montnemery 7539cf25be
Don't require passing identifiers to DeviceRegistry.async_get_device (#96479)
* Require keyword arguments to DeviceRegistry.async_get_device

* Update tests

* Update tests

* Don't enforce keyword arguments
2023-07-13 13:39:25 -04:00
Erik Montnemery ef68f2c3ff
Add empty config schema to integrations d-h (#93645) 2023-05-29 21:00:08 +02:00
epenet c01b1eb013
Adjust async_track_time_interval name argument (#90838)
Adjust async_track_time_interval naming
2023-04-05 10:58:02 -04:00
J. Nick Koston 0cc9b2e803
Use slots for discovery dataclasses (#90751) 2023-04-04 12:44:59 +02:00
J. Nick Koston 02ef7d445d
Allow passing an optional name to async_track_time_interval (#90244)
* Allow passing an optional name to async_track_time_interval

This is the same idea as passing a name to asyncio.create_task which
makes it easier to track down bugs

* more

* short

* still cannot find it

* add a few more

* test
2023-03-25 10:11:14 -04:00
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