Commit Graph

287 Commits (71e8c79cadfb770b3e87c8796dc3b70965662f5a)

Author SHA1 Message Date
Robert Svensson b4f6325278
Use fixtures in UniFi switch tests (#118831) 2024-06-04 21:01:03 +02:00
Robert Svensson c2e245f9d4
Use fixtures in UniFi update tests (#118818) 2024-06-04 21:00:50 +02:00
epenet 20b5aa3e0e
Move entity_registry_enabled_by_default to decorator [q-z] (#118793) 2024-06-04 13:38:32 +02:00
Robert Svensson 3232fd0eaf
Improve UniFi config flow tests (#118587)
* Use proper fixtures in config flow tests

* Improve rest of config flow tests

* Small improvement

* Rename fixtures
2024-06-01 00:27:53 +02:00
Robert Svensson a7938091bf
Use fixtures to setup UniFi config entries (#118126) 2024-05-26 16:30:22 +02:00
Robert Svensson fa815234be
Make UniFi use runtime data (#117457) 2024-05-14 21:04:26 +02:00
Erik Montnemery 90a50c162d
Use MockConfigEntry in unifi tests (#117238) 2024-05-11 11:11:53 +02:00
wittypluck 7a10959e58
Use websocket client to test device removal in Unifi (#116309)
* Use websocket client to test device removal from registry

* Rename client to ws_client to avoid confusion with Unifi clients

* Use remove_device helper
2024-05-01 08:46:03 +02:00
Kim de Vos b69f589c30
Add bandwidth sensor for unifi device ports (#115362) 2024-04-22 22:39:46 +02:00
Robert Svensson 83370a5bde
Remove sensor exposing UniFi WLAN password (#115929) 2024-04-21 20:27:44 +02:00
wittypluck 1c0c0bb0bc
Allow manual delete of stale Unifi device from UI (#115267)
* Allow manual delete of stale device from UI

* Add unit tests for remove_config_entry_device
2024-04-21 11:08:39 +02:00
Kim de Vos f23e48f373
Add sensor for CPU and memory utilization for unifi device (#114986)
Add system stats to unifi device sensors
2024-04-08 19:29:54 +02:00
Joost Lekkerkerker f3ba713289
Use FlowResultType enum in config flow tests N-Z (#114682)
Use FlowResultType enum in config flow tests
2024-04-03 09:53:20 +02:00
Joost Lekkerkerker 2ef0521d3d
Use is in enum comparison in config flow tests U-Z (#114677)
* Use right enum expression U-Z

* Fix
2024-04-02 23:09:56 +02:00
Bruno Henrique 9f9a141112
Add UniFi WLAN Password sensor (#114419)
* Adding UniFi WLAN Password Sensor

* Adding UniFi WLAN Password Sensor

* Adding UniFi WLAN Password Sensor

* Adding UniFi WLAN Password Sensor

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

* Adding UniFi WLAN Password Sensor

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

* Adding UniFi WLAN Password Sensor

* Adding UniFi WLAN Password Sensor

* Adding UniFi WLAN Password Sensor

---------

Co-authored-by: Robert Svensson <Kane610@users.noreply.github.com>
2024-03-30 19:49:33 +01:00
Bruno Henrique 53f262095c
Add UniFi WLAN regenerate password button (#114422)
* Adding UniFi WLAN Change Password Button

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

* Adding UniFi WLAN Regenerate Password Button

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

---------

Co-authored-by: Robert Svensson <Kane610@users.noreply.github.com>
2024-03-30 15:53:23 +01:00
Joost Lekkerkerker 6bb4e7d62c
Bump ruff to 0.3.4 (#112690)
Co-authored-by: Sid <27780930+autinerd@users.noreply.github.com>
Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
Co-authored-by: J. Nick Koston <nick@koston.org>
2024-03-26 00:02:16 +01:00
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