* 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
* 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>
* 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
* 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
* 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
* 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>
* 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
* 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>
* Convert persistent notification tests to async
* Create/dismiss persistent notifications in exposed functions, not service calls
* Fix notify persistent_notification
* Remove setting up persistent_notification
* Drop more setups
* Empty methods
* Undeprecate sync methods because too big task
* Fix setup clearing notifications
* Fix a bunch of tests
* Fix more tests
* Uno mas
* Test persistent notification events
* Clean up stale comment
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
* Fix left over comments from #56717 - no need to keep UNIFI_SERVICES if we control it is only called while UNIFI_DOMAIN is empty
* Fix late comments as well
* Improve service tests
* mock.called_with was not reliable
* 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
* 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
* 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
* 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
* 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
* 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>
* 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>
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.
* 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>
* Improve client tracker to be more comprehensible and streamlined
Improve block switches
Improve tests
* Small clean up
* Add descriptions on ssid test
* Improve test
* Make polling default off, only POE clients left to verify
* Minor improvements
* On removal cancel scheduled updates
* POE works without polling now
* Combine else and if to an elif
* Move removal of sensor entities into a base class
* Fix martins comments on sensors
* Reflect sensor changes on device_tracker platform
* Reflect sensor changes on switch platform
* Improve layering
* Make sure to clean up entity and device registry when removing entities
* Fix martins comments
* Allow disable wired bug work around
* Move small improvements from closed PR #34065
* Fix failing test
* Add new test
* Some extra logging
* Harmonize log outputs
* Add config flow string
* Fix Balloobs comments
* Rewrite UniFi integration to use push messaging
* Add signalling for new clients/devices
* Update list of known wireless clients when we get events of them connecting
* Reconnection logic for websocket
* Fix failing tests
* Bump requirement to v12
* Add new tests
* Update homeassistant/components/unifi/controller.py
Co-Authored-By: Martin Hjelmare <marhje52@gmail.com>