Commit Graph

270 Commits (fa61ad072d6f30d3b1e5ad9e8c280edec4aee1a6)

Author SHA1 Message Date
J. Nick Koston 4f18f0d902
Fix setup timings when config entry platform loads are not awaited (#113959)
* Move setup time logging into the context manager

We were fetching the time twice but since the context
manager already has the timing, move it there

* remove log setup assertions from integration test

* tweak logging to give us better data for tracking issues

* redundant

* adjust

* preen

* fixes

* adjust

* make api change internal so nobody uses it

* coverage

* fix test

* fix more tests

* coverage

* more tests assuming internal calls

* fix more

* adjust

* adjust

* fix axis tests

* fix broadlink -- it does not call async_forward_entry_setup

* missed some

* remove useless patch

* rename, detect it both ways

* clear

* debug

* try to fix

* handle phase finishing out while paused

* where its set does not need to know its late as that is an implemenation detail of setup

* where its set does not need to know its late as that is an implemenation detail of setup

* tweak

* simplify

* reduce complexity

* revert order change as it makes review harder

* revert naming changes as it makes review harder

* improve comment

* improve debug

* late dispatch test

* test the other way as well

* Update setup.py

* Update setup.py

* Update setup.py

* simplify

* reduce
2024-03-23 15:26:38 -04:00
Robert Svensson f2879e6f39
Break out UniFi platform registration to its own class (#112514) 2024-03-09 09:18:23 +01:00
Marc Mueller 32f3f46542
Add empty line after module docstring (2) [tests.components] (#112737) 2024-03-08 19:16:21 +01:00
Marc Mueller 87165c0d6e
Add empty line after module docstring [tests t-z] (#112712) 2024-03-08 14:44:56 +01:00
Robert Svensson 7c9891fff9
Break out UniFi config handling to own class (#111325) 2024-03-05 21:36:26 +01:00
Robert Svensson ab4750c2ea
Remove unnecessary access to UniFi hub object in tests (#112275)
* Remove unnecessary access to UniFi hub object

* Split strings

* Skip + on concatenating f-strings

* Use single quotes inside double quotes
2024-03-05 08:23:17 +01:00
Robert Svensson efc89cd34f
Unifi websocket manager (#111041)
* Move hub into .hub.hub

* Move websocket to own module

* Minor shuffle
2024-02-24 16:20:59 -05:00
Robert Svensson 2f026ca963
Unifi rename controller to hub (#110976)
* Rename controller.py to hub.py

* Rename UniFiController to UnifiHub

* Rename controller instances into hub

* Rename controller to hub in tests

* Rename aiounifi Controller references to api

* Update strings

* Rename test_controller test_hub

* Narrow scope of test_remove_sensors
2024-02-20 08:51:22 +01:00
Jan-Philipp Benecke 22e62f42e6
Use entity & device registry fixtures in unifi tests (#110889) 2024-02-18 23:47:10 +01:00
wittypluck 7d24ae88e6
Mark Unifi bandwidth sensors as unavailable when client disconnects (#109812)
* Set sensor as unavailable instead of resetting value to 0 on disconnect

* Update unit test on unavailable bandwidth sensor
2024-02-06 18:33:10 +01:00
Marc Mueller 8b0c9d3d18
Use builtin TimeoutError [t-z] (#109683) 2024-02-05 12:20:36 +01:00
Robert Svensson f1392f8519
Try to reconnect to UniFi on 403 (#109067) 2024-01-29 21:39:15 +01:00
J. Nick Koston fb62b6f01e
Fix unifi test_tracked_clients test (#108638)
Fix unifi test_tracked_clients client

This test relied on the sensor platform getting set up and creating
the device before the device_tracker platform was setup since the
device_tracker platform will disable the entity because there is
not matching device entry for it via

4ee6735cbb/homeassistant/components/device_tracker/config_entry.py (L336)

There is no guarantee the sensor platform will get set up before
the device tracker platform so the test was subject to a race
where it would fail if the device tracker platform was setup first
2024-01-22 08:35:24 +01:00
wittypluck d94421e1a4
Reset UniFi bandwidth sensor when client misses heartbeat (#104522)
* Reset UniFi bandwidth sensor when client misses heartbeat

* Fix initialization sequence

* Code simplification: remove heartbeat_timedelta, unique_id and tracker logic

* Add unit tests

* Remove unused _is_connected attribute

* Remove redundant async_initiate_state

* Make is_connected_fn optional, heartbeat detection will only happen if not None

* Add checks on is_connected_fn
2024-01-14 15:19:43 +01:00
Joseph Block 1271f16385
Add Unifi device state for additional diagnostics (#105138)
* Add device state for additional diagnostics

* Add state test and fix existing tests

* Utilize IntEnum and dict for state lookup

* Update aiounifi to v68
2023-12-16 08:38:21 +01:00
Erik Montnemery 6908497c3d
Add minor version to config entries (#105479) 2023-12-12 08:44:35 +01:00
Jan-Philipp Benecke b5785003a3
Migrate unifi tests to use freezegun (#105343) 2023-12-09 12:55:40 +01:00
Robert Svensson 6271fe333d
Rework some UniFi unique IDs (#104390) 2023-11-24 11:18:55 +01:00
Robert Svensson d78c0bd948
Handle 403 errors in UniFi (#104387)
UniFi handle 403 error
2023-11-23 20:25:26 +01:00
Robert Svensson edf18df0e6
Add PoE power cycle button to UniFi integration (#104332) 2023-11-22 07:02:49 +01:00
Robert Svensson f1fd8a0d2b
Bump aiounifi to v66 (#104336) 2023-11-22 07:02:13 +01:00
Robert Svensson 40817dabbf
Bump aiounifi to v64 (#102700) 2023-10-24 20:27:42 -05:00
Robert Svensson 721c45b7a3
Rework UniFi client configuration (#99483) 2023-10-22 23:39:54 +02:00
wittypluck b79eae2e94
Update Unifi bandwidth sensors (#101598)
* Change bandwidth sensors device class, state class, unit of measurement, icon

* Reformat imports

* Reformat imports

* Revert suggested_unit_of_measurement. Add unit tests.
2023-10-22 17:14:49 +02:00
Robert Svensson 01b5854968
Rework UniFi websocket (#100614)
* Rework websocket management

* remove unnecessary fixture

* Remove controller from mock_unifi_websocket

* Mock api.login in reconnect method

* Remove unnecessary edits

* Minor clean up

* Bump aiounifi to v63

* Wait on task cancellation
2023-09-27 10:56:24 +02:00
Robert Svensson 7b00265cfe
Remove legacy UniFi PoE client clean up (#100318) 2023-09-13 20:14:03 +02:00
Robert Svensson d8445a79fc
UniFi streamline loading platforms (#100071)
* Streamline loading platforms

* Move platform registration logic to UnifiController class
2023-09-11 15:55:27 +02:00
Robert Svensson cf47a6c515
Add UniFi device uptime and temperature sensors (#99307)
* Add UniFi device uptime and temperature sensors

* Add native_unit_of_measurement to temperature
Remove seconds and milliseconds from device uptime
2023-09-09 11:12:44 +02:00
Robert Svensson b0e40d95ad
Bump aiounifi to v61 (#99686)
* Bump aiounifi to v61

* Alter a test to cover the upstream change
2023-09-05 21:13:28 +02:00
J. Nick Koston 80d2309896
Switch async_track_time_interval to use async_call_later internally (#99220) 2023-08-28 13:56:22 -05:00
Robert Svensson 5e5193eeb5
Rework UniFi Network Controller device and add software version (#99136)
Rework Network Controller device and add software version
2023-08-27 17:07:38 +02:00
Robert Svensson 71bf782b22
Improve UniFi PoE control by queueing commands together (#99114)
* Working draft without timer

* Clean up
Improve tests

* Use async_call_later
2023-08-27 16:58:48 +02:00
Robert Svensson 45efe29262
Bump aiounifi to v58 (#99103) 2023-08-26 18:27:45 -05:00
Marc Mueller 72e6f79086
Replace remaining utcnow calls + add ruff check (#97964) 2023-08-25 03:23:43 +02:00
Robert Svensson d0d160f11c
Unifi add port forward control to switch platform (#98309) 2023-08-21 22:01:44 +02:00
Robert Svensson 9e42451934
UniFi refactor using site data (#98549)
* Clean up

* Simplify admin verification

* Streamline using sites in config_flow

* Bump aiounifi
2023-08-18 22:44:59 +02:00
Chris 5b6a7edd8d
Add Unifi outlet switches for PDU devices (#98320)
Updates the Unifi outlet switching feature to support PDU devices
2023-08-13 20:06:12 +02:00
Chris 87753bdb82
Add UniFi power stats for PDU overall AC outlet metrics (#98217) 2023-08-12 18:12:59 +02:00
Chris fe1f617a35
Add unifi power stats for PDU outlets (#98081)
Adds support for power stats for PDU outlets.
2023-08-10 18:25:03 +02:00
Erik Montnemery 05ac67eba2
Adjust unifi tests which create devices (#98211) 2023-08-10 18:24:42 +02:00
Franck Nijhof 868a5f377f
Ruff: isort don't split imports based on trailing comma (#98162) 2023-08-10 14:27:03 +02:00
Robert Svensson 02c27d8ad2
UniFi WLAN availability affected by WLAN enabled (#98020) 2023-08-09 18:52:35 +02:00
Robert Svensson e43ad1c6a0
Add restart device to UniFi button platform (#97642)
* Add restart device to UniFi Button platform

* Add tests for button platform

* Small corrections
2023-08-05 20:07:20 +02:00
Robert Svensson 66cb407e4f
Improve counting of UniFi WLAN Clients sensor (#97785) 2023-08-04 19:22:46 +02:00
Robert Svensson 89069bb9b8
Add WLAN clients reporting to UniFi Sensor platform (#97234) 2023-07-26 08:00:17 +02:00
Robert Svensson 8d6c4e3306
Add controls to enable and disable a UniFi WLAN (#97204) 2023-07-25 14:01:57 +02:00
Robert Svensson 06f97679ee
Add WLAN QR code support to UniFi Image platform (#97171) 2023-07-25 10:11:48 +02:00
Erik Montnemery fbbdebee47
Correct unifi device info (#96483) 2023-07-13 12:14:31 -04:00
Ville Skyttä 1ce74ba25c
Import `util.dt` as `dt_util` in `components/[t-z]*` (#93763) 2023-05-29 23:00:43 +02:00
Robert Svensson 09109d093e
Allow UniFi control PoE passthrough properly (#92028) 2023-04-26 09:16:18 +02:00
Robert Svensson 0d7711f787
Fix UniFi client tracker host_name missing (#91188) 2023-04-11 11:56:55 +02:00
epenet 7b3a932cd9
Remove incorrect constant usage in test (#91198) 2023-04-11 10:00:17 +02:00
Nerdix d539bddabc
Correct handling if WIFI combine suffix is "None" (#90528)
* Correct handling of "None" WIFI combine suffix

* Update tests/components/unifi/test_config_flow.py

Co-authored-by: Robert Svensson <Kane610@users.noreply.github.com>

* Update tests/components/unifi/test_config_flow.py

Co-authored-by: Robert Svensson <Kane610@users.noreply.github.com>

---------

Co-authored-by: Robert Svensson <Kane610@users.noreply.github.com>
2023-04-03 09:47:08 +02:00
epenet 69a46d4002
Adjust pylint plugin for components fixtures (#90217)
* Adjust pylint plugin for components fixtures

* Adjust components

* Use MagicMock

* Adjust

* Use None
2023-03-26 15:21:19 +02:00
Robert Svensson ee74e21541
Rework UniFi wireless client "wired bug" logic (#89757) 2023-03-24 10:06:09 +01:00
Robert Svensson 8564768d9e
UniFi library controls add/update signalling (#89525)
* Library controls add/update signalling

* Remove add/remove signalling

* Remove unifi_entity_base and unifi_client to make mypy pass
2023-03-11 20:14:39 +01:00
Robert Svensson 288a4203ab
Make client tracker use common UniFi entity class (#84942)
* Make client tracker use common UniFi entity class

* Fix tests

* Fix mypy

* Remove legacy data

* Fix comment: skip else use return

* Minor change

* Remove missed stuff from previous rebase

* Import async_device_available_fn from entities.py rather than specifying it in device_tracker

* Avoid using asserts

* Keep explicit parenthesis for readability

* Allow loading entities on option changes
2023-03-11 06:23:49 +01:00
Robert Svensson 9ff45ca013
Allow loading UniFi entities on config options change (#88762)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2023-03-06 16:08:14 +01:00
epenet 9a5f88f55f
Add type hints to integration tests (part 23) (#88235) 2023-02-17 16:40:46 +01:00
Franck Nijhof ed79265843
Enable Ruff PT006 (#88165)
* Enable Ruff PT006

* Adjust existing cases

* Fix tests

* Remove unneeded parentheses
2023-02-15 14:09:50 +01:00
Erik Montnemery cc564026fa
Move EntityCategory to homeassistant.const (#87792)
* Move EntityCategory to homeassistant.const

* Fix more imports
2023-02-09 20:15:37 +01:00
epenet 278050a73f
Add type hints to integration tests (t-z) (#87707) 2023-02-08 19:10:53 +01:00
Robert Hillis d5b2062774
Disable uptime sensor by default in Unifi (#87484)
Disable Uptime sensor by default in Unifi
2023-02-05 19:28:28 +01:00
Robert Svensson f56f391f81
Remove legacy constant from UniFi (#84947) 2023-01-01 20:03:14 +01:00
Robert Svensson 60de2a82c7
Make device tracker use common UniFi entity class (#84786) 2022-12-30 22:27:45 +01:00
Robert Svensson e33cea9ff7
Add PoE power sensor to UniFi integration (#84314)
* Add PoE power sensor to UniFi integration

* Add unit of power

* Only update state if value has changed

* Remove stale print

* Subscribe to specific sensor to remove unnecessary state changes

Co-authored-by: J. Nick Koston <nick@koston.org>
2022-12-29 22:55:00 +01:00
Robert Svensson de5c7b0414
Rework UniFi device tracker to utilizing entity description (#81979)
* Rework UniFi device tracker to utilizing entity description

* Use bound

* Fix review comments from other PR
2022-12-28 22:29:11 +01:00
Robert Svensson 360f36eb71
Unifi use entity description with sensors (#81930)
* Move bandwidth sensors

* Add uptime sensor

* Use bound

* Fix review comments from other PR
2022-12-14 20:54:33 +01:00
Robert Svensson af6338343e
Remove (2021) backwards supporting functionality from UniFi (#81981) 2022-11-16 12:49:10 +01:00
Robert Svensson 23bed25e52
Remove old UniFi POE client implementation (#81749)
Remove all references to POE client implementation
2022-11-08 07:48:54 +01:00
Robert Svensson 3444d2af1a
UniFi switch entity description (#81680)
* Consolidate switch entities to one class

* Move turn on/off into UnifiSwitchEntity

* Add event subscription
Remove storing entity for everything but legacy poe switch

* Only one entity class

* Improve generics naming

* Rename loader to description

* Improve control_fn naming

* Move wrongfully placed method that should only react to dpi apps being emptied

* Improve different methods

* Minor renaming and sorting

* Mark callbacks properly
2022-11-08 07:38:31 +01:00
Robert Svensson 115a1ceea0
Rewrite UniFi block client switch (#80969)
* Refactor UniFi block client switch entities

* Use new switch loader

* Rename lambdas

* Use is_on rather than _attr_is_on when applicable
2022-10-25 22:36:51 +02:00
Robert Svensson 03bf37e12c
Refactor UniFi DPI switch entities (#80761)
* Refactor UniFi DPI switch entities

* Remove dpi presence from items_added
2022-10-23 22:42:24 +02:00
Robert Svensson 0444dd71a6
Refactor UniFi outlet switches (#80738)
* Rewrite UniFi outlet switches

* Bump aiounifi to v41

* Remove devices from items_added input
2022-10-23 20:28:45 +02:00
Robert Svensson 92eaa539b6
Simplify mocking UniFi websocket (#80652)
* Simplify mocking UniFi websocket

* Fix one more
2022-10-20 19:37:13 +02:00
Robert Svensson d0ed4b1ff2
Replace constants with enums in UniFi (#80637)
Replace constants with enums
Fix bad imports
2022-10-20 00:10:01 +03:00
Robert Svensson 04cdcad7f8
Expose UniFi PoE ports as individual switches (#80566)
* Add simple PoE control switches

* Add basic tests

* Complete testing

* Dont use port.up as part of available

* Bump aiounifi to v40
2022-10-19 19:54:40 +02:00
Robert Svensson bfd12730f2
Bump aiounifi to v35 (#79040)
* Update imports
Replace constants with enums

* Import new request objects

* Bump aiounifi to v35
2022-09-25 20:08:56 +02:00
Erik Montnemery 3d723bddf8
Use mock_restore_cache in tests (#77298) 2022-08-25 09:28:53 +02:00
Jelte Zeilstra 5e10716dd8
Do not access hass.data in unifi test (#75348)
* Do not access hass.data in test

* Process review feedback
2022-07-23 12:42:43 +02:00
Robert Svensson 3144d179e0
Make UniFi utilise forward_entry_setups (#74835) 2022-07-18 10:39:38 -05:00
Jelte Zeilstra 514e826fed
Add install UniFi device update feature (#75302)
* Add install UniFi device update feature

* Add tests for install UniFi device update feature

* Fix type error

* Process review feedback

* Process review feedback
2022-07-16 20:39:11 +02:00
Franck Nijhof 7cd68381f1
Search/replace RESULT_TYPE_* by FlowResultType enum (#74642) 2022-07-07 19:57:36 +03:00
J. Nick Koston 1dd9e705f2
Switch dispatcher to use async_run_hass_job (#74514)
* Switch dispatcher to use async_run_hass_job

- Since we already wrap all the callbacks in catch_log_exception
  we can use async_run_hass_job here

- The overhead of wrapping the call in a call_soon, queuing it
  and running it later usually exceeds the overhead of running
  the job itself

* fix size change during iteration

* fix out of order send

* fix missing mocking in unifi test

* Fix Legrand Home+ Control updating entities before the coordinator update had finished

* stray debug
2022-07-07 10:39:05 -05:00
epenet f33151ff8b
Adjust config-flow type hints in unifi (#72411)
* Adjust config-flow type hints in unifi

* Use mapping

* Use mapping

* Fix tests

* Fix tests

* Revert "Use mapping"

This reverts commit 126fedc848.
2022-05-24 21:42:11 +02:00
Robert Svensson dc0d065901
Fix UniFi device tracker on controllers only reporting events (#72240)
Add events to UniFi client tracker in case controller does not report proper data
2022-05-24 16:06:30 +02:00
Franck Nijhof c3d19f3827
Clean up accessing device_registry helpers via hass (#72031) 2022-05-17 12:22:15 -07:00
Jelte Zeilstra 75058e63a4
Create Update entities for Ubiquiti network devices (#71700)
Co-authored-by: Robert Svensson <Kane610@users.noreply.github.com>
2022-05-13 09:17:41 +02:00
Robert Svensson 63e3095062
Abort UniFi Network options flow if integration is not setup (#71128) 2022-05-01 21:00:38 +02:00
Robert Svensson 46c2bd0eb0
Tweak UniFi client tracker (#67129) 2022-02-23 09:26:46 -10:00
Robert Svensson 69ac59ce73
Redact host address in UniFi diagnostics (#65379) 2022-02-01 09:52:56 -08:00
Paulus Schoutsen b05b4c4b38
Simplify unifi cleanup logic (#65345) 2022-02-01 07:22:12 +01:00
Robert Svensson da355438aa
Reconnect client service tried to connect even if device didn't exist (#65082) 2022-01-28 08:33:31 -08:00
Robert Svensson 046f0a706f
Add outlets to UniFi switch platform (#64859)
* Add outlets to UniFi switch platform

* Outlet shouldn't have entity category set
2022-01-25 07:49:02 +01:00
Robert Svensson a15bdbbc4a
UniFi events aren't reliable for device tracker usage, use last_seen instead (#64147) 2022-01-24 15:11:33 +01:00
Robert Svensson 597fca9072
Make UniFi bandwidth sensors be about current transfer rather than total transfer (#64701) 2022-01-24 13:50:54 +01:00
Robert Svensson 7e20e555dd
Redact usernames in UniFi diagnostics (#64794) 2022-01-23 23:11:06 +01:00
Robert Svensson 20072140c6
Add diagnostics support to UniFi Network integration (#64640)
* Add diagnostics support to UniFi Network integration

* Remove system info

* Add test data before trying to redact sensitive information

* Redact sensitive information from config_entry.data

* Redact a lot of different parts of the device descriptions
Redact mac addresses in such a way its possible to still view topology
2022-01-23 13:44:43 +01:00
Robert Svensson 86d32b3440
Expose UniFi controller configuration url from discovered entry (#64514) 2022-01-20 09:34:54 +01:00
Robert Svensson bc7624b417
Fix UniFi remove client service if time stamps are not integers (#63998)
* Only calculate total time if first and last seen are ints, else remove client

* Update homeassistant/components/unifi/services.py

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>

* Update homeassistant/components/unifi/services.py

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2022-01-13 08:15:40 +01:00