Commit Graph

84 Commits

Author SHA1 Message Date
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
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
Marc Mueller
8b0fdd6fd2 Use asyncio.timeout [s-z] (#98452) 2023-08-15 14:34:18 +02:00
Erik Montnemery
fbbdebee47 Correct unifi device info (#96483) 2023-07-13 12:14:31 -04:00
Robert Svensson
a0b6da33ab Strict typing of UniFi integration (#90278)
* Fix typing of UniFi controller

* Strict typing of unifi.__init__

* Strict typing of UniFi config_flow

* Strict typing of UniFi switch

* Strict typing UniFi sensor

* Strict typing UniFi device tracker

* Strict typing of UniFi

* Fix library issues related to typing
2023-03-26 09:57:13 +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
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
Robert Svensson
b4a3a663cf Simplify adding unifi entities (#88571) 2023-02-25 08:18:49 -08:00
Franck Nijhof
5e81d28116 Update black to 23.1.0 (#87188) 2023-02-02 18:35:24 +01:00
Robert Svensson
7729a5cf8a Bump aiounifi to v44 (#86381)
fixes undefined
2023-01-22 19:34:48 +01:00
Robert Svensson
a75bad3a83 Move add Device tracker entities to UniFi controller (#84883) 2023-01-03 20:59:28 +01:00
Robert Svensson
28eda7d1f0 Move add Update entities to UniFi controller (#84477) 2022-12-30 21:58:23 +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
13e2bb1e22 Improve loading UniFi switch entities (#80910) 2022-10-25 19:26:56 +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
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
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
Robert Svensson
3144d179e0 Make UniFi utilise forward_entry_setups (#74835) 2022-07-18 10:39:38 -05: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
epenet
a63e5c7ded Add type hints for config entry update listeners (#65412) 2022-02-02 03:36:04 -06: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
59cea56e17 Fix reconnect rather than reauth when both HA and UniFi controller restarts at the same time (#63994) 2022-01-12 15:08:04 -08:00
Robert Svensson
e37456fb36 Move DPI Group logic to UniFi switch platform (#58761)
* Library has normalized management of DPI apps and groups, move logic to UniFi integration

* Bump dependency to v29

* Use a generator instead of a list - Pylint

* Minor improvements

* Improve doc strings
2022-01-12 17:11:05 +01:00
Michael
90e52cd3ad Use relative imports [S-Z] (#61576) 2021-12-13 09:39:13 +01:00
Marc Mueller
b79b35abb5 Use platform enum (7) [T-Z] (#60948)
Co-authored-by: Joakim Sørensen <hi@ludeeus.dev>
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2021-12-04 14:10:01 +01:00
Christopher Bailey
5a72c9f7c3 Rename various usages of UniFi to better identify only UniFi Network (#59568)
* Renames various usages of UniFi to better indentify only UniFi Network

* Apply suggestions from code review

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

* Missed renames

* Updates more locations

* Removes instances of application/controller

* Missed a spot

* Updates all UniFi Controller instances

* Fixes typo

* Reverts changes to translations

Co-authored-by: Robert Svensson <Kane610@users.noreply.github.com>
2021-11-26 22:44:49 +01:00
J. Nick Koston
10d6247fee Bump to aiohttp 3.8.0 (#58974) 2021-11-04 10:07:50 -05:00
Robert Svensson
b8cf6513d9 Address late review of unifi (#58080)
* Fix late comment from 57570

* Remove other references to legacy ways
2021-10-20 10:59:07 +02:00
J. Nick Koston
4b74c57285 Reduce config entry setup/unload boilerplate T-U (#49786) 2021-04-27 22:19:57 +02:00
Robert Svensson
63616a9e36 Use config_entry.on_unload rather than local listener implementation in UniFi (#49496) 2021-04-20 08:50:42 -10:00
J. Nick Koston
4cd7f9bd8b Raise ConfigEntryAuthFailed during setup or coordinator update to start reauth (#48962) 2021-04-09 19:41:29 -10:00
Robert Svensson
6ce96dcb63 Don't care about DPI entries when looking for clients to be restored from UniFi (#48579)
* DPI switches shouldnt be restored, they're not part of clients to be restored

* Only care about Block and POE switch entries
2021-04-01 18:02:28 +02:00
Marc Mueller
b67b9b94f9 Update typing 13 (#48077) 2021-03-18 14:43:52 +01:00
Robert Svensson
50d3aae418 Improve restoring UniFi POE entity state (#47148)
* Improve restoring data and better handling when the restore data is empty
Improve readability of some logic related to POE clients

* There is no need to check clients_all in Switch platform

* Add better tests when restoring state

* Port except handling shouldn't be needed anymore

* Walrusify get_last_state
2021-03-05 22:09:05 +01:00
Robert Svensson
793929f2ea Increase test coverage of UniFi integration (#46347)
* Increase coverage of init

* Increase coverage of config_flow

* Improve coverage of controller

* Minor improvement to switch test

* Fix review comment

* Mock websocket class

* Replace the rest of the old websocket event tests

* Improve websocket fixture for cleaner tests

* Fix typing

* Improve connection state signalling based on Martins feedback

* Improve tests of reconnection_mechanisms based on Martins review comments

* Fix unload entry

* Fix isort issue after rebase

* Fix martins comment on not using caplog

* Fix wireless clients test

* Fix martins comments on wireless clients test
2021-03-05 21:28:41 +01:00
Quentame
198ecb0945 Uniformize platform setup (#47101)
* A platform is not a component

* Fix dynalite

* SUPPORTED_PLATFORMS --> PLATFORMS

* In tests

* In tests 2

* Fix SmartThings

* Fix ZHA test

* Fix Z-Wave

* Revert Z-Wave

* Use PLATFORMS const in ambient_station

* Fix ihc comment
2021-03-02 21:43:59 +01:00
Robert Svensson
618fcda821 Simplify UniFi entry configuration data (#45759)
* Simplify configuration structure by removing the controller key

* Fix flake8

* Fix review comments

* Don't use migrate_entry mechanism to flatten configuration
Keep legacy configuration when creating new entries as well
2021-02-06 21:32:18 +01:00
Robert Svensson
0d620eb7c3 Add unique id to UniFi config entries using the unique id of the site it is controlling (#45737)
* Add unique id to UniFi config entries using the unique id of the site it is controlling

* Fix failing test
2021-02-05 19:38:08 +01:00
Robert Svensson
83a75b02ea Code quality improvements to UniFi integration (#45794)
* Do less inside try statements

* Replace controller id with config entry id since it doesn't serve a purpose anymore

* Improve how controller connection state is communicated in the client and device tracker
Remove the need to disable arguments-differ lint

* Remove broad exception handling from config flow
I'm not sure there ever was a reason for this more than to catch all exceptions

* Replace site string with constant for SSDP title_placeholders

* Unload platforms in the defacto way

* Noone reads the method descriptions

* Improve file descriptions
2021-02-01 17:55:16 +01:00
J. Nick Koston
536e835b39 Switch frequently used unifi controller properties to attributes (#45365) 2021-01-20 16:58:02 -06:00
Robert Svensson
da4404e8cf Introduce reauthentication flow to UniFi integration (#45360)
* Improve site selection

* Reauth flow and tests
Add **kwargs to mock_aiohttp_client create_session to support inputting verify_ssl and cookie_jar

* Update homeassistant/components/unifi/config_flow.py

Co-authored-by: J. Nick Koston <nick@koston.org>

* Minor improvements

* Improve coverage

Co-authored-by: J. Nick Koston <nick@koston.org>
2021-01-20 22:10:40 +01:00
J. Nick Koston
41e7d960ee Use dispatcher for unifi heartbeat tracking (#45211)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-01-17 03:10:52 +01:00
J. Nick Koston
b450d4c135 Improve unifi performance with many devices (#45006)
With 250 clients, there were about 18000 timers updated every
minute. To avoid this, we check which entities should be set
to not_home only once every second.
2021-01-10 20:12:21 +01:00
Robert Svensson
9651d1bcfa Support more errors to better do retries in UniFi (#44108) 2020-12-10 21:25:50 +01:00
springstan
d5efb3e3de Remove temporary variable by only retrieving needed value (#42522) 2020-11-29 00:44:25 +01:00
Jason Hunter
5a4c1dbcc4 Add DPI Restriction switch to UniFi integration (#42499)
* initial implementation for controlling DPI restrictions

* address PR review comments and add DataUpdateCoordinator

* fix existing tests against new lib version

* add tests for DPI switches

* bump aiounifi

* listen to events instead of polling

* fix tests

* remove useless test

* bump aiounifi

* rename device to UniFi Controller per PR feedback
2020-11-03 08:36:37 +01:00
timkoers
46b86f4a2f Add UniFi Uptime sensor (#40058)
* Added UniFi Uptime sensor

Added the UniFi uptime data as a sensor. Untested.

* Update sensor.py

Updated code as a result of the tests.

* Changed timestamp format and device class

Converted state to iso timestamp and changed device class to DEVICE_CLASS_TIMESTAMP.

* Updated unit of measurement to None

* Added import

* Update homeassistant/components/unifi/sensor.py

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

* Removed whitespace

* Added the uptime sensors option to the config flow

* All the unit tests should be there now

* Whoops

* Fixed translation

* Properly formatted the code

* Flake8 really has angel eyes

* Black should also be satisfied now

* Should have satisfied all static code analysis tools

* Fixed add uptime sensor function

* Fixed overintendation

* Fixed unit tests

* Made a spelling mistake during editing of unit tests

* Test verifies if utc time is correct

* Converted to iso format

* Converted unit test to iso format

* Unit test sensor json had the wrong uptime name

* Added options_updated handler

* Fixed remove sensors unit test

* Update homeassistant/components/unifi/sensor.py

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

* Update homeassistant/components/unifi/sensor.py

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

* Update test_device_tracker.py

Removed uptime from the devices

* Fixed black formatting issue

* I think the code coverage should be good now

* Trying to add the sensors again

* Using signals to hopefully trigger the controller to add them again

* Forgot import

* Sorted components

* fixed isort comments

* Removed CLASS and DEVICE_CLASS

* Added TYPE again

* Removed double underscores

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
Co-authored-by: Robert Svensson <Kane610@users.noreply.github.com>
2020-09-18 19:33:37 +02:00