Commit Graph

39 Commits

Author SHA1 Message Date
Franck Nijhof
c3936e6f14 Replace isort with ruff (#94302) 2023-06-08 23:43:56 +02:00
Ville Skyttä
e949344dd9 Huawei LTE connection management cleanups (#85929)
* Disconnect rather than just logout at end of config flow

Neither the connection or the requests session will be reused, so
there's no reason just to logout. Do all of the connection closure
so we get all of huawei-lte-api's cleanups explicitly done.

* Name connect functions consistently, analoguous to disconnect
2023-05-16 20:34:03 +03:00
Franck Nijhof
ca1a12898c Enable Ruff D212 (#87347) 2023-02-03 23:08:48 +01:00
Ville Skyttä
c625051665 Improve Huawei LTE SSDP inclusion (#85572)
* Probe Huawei LTE API for device support on SSDP match

More or less as expected, the loosening of SSDP/UPnP data matches done
in #81643 started to yield false positives, as in #85402.

Coming up with robust matches solely based on the SSDP/UPnP data still
does not seem possible, so keep the matches as loose as they were made,
but additionally invoke a probe request on the API to determine if the
device looks like a supported one.

* Probe only after unique id checks

Prevents throwaway probes for discoveries already in progress.

* Fix SSDP result URL test, add missing assert on it
2023-01-12 06:47:38 +01:00
Ville Skyttä
f02b6f1119 Huawei LTE SSDP improvements (#81643)
* Recognize more SSDP friendly names as "ours"

* Trigger on SoyeaLink devices

* Pass discovered URL through context, it does not persist via user_input

* Use manufacturer from SSDP

* Actually use serial number if available, update URL for configured

* Remove heuristic friendly name filtering against non-LTE devices
2022-12-14 23:48:25 +01:00
Ville Skyttä
9b44cf0127 Add Huawei LTE reauth flow (#78005)
* Add Huawei LTE reauth flow

* Upgrade huawei-lte-api to 1.6.3, use LoginErrorInvalidCredentialsException
2022-10-07 12:24:09 +02:00
Ville Skyttä
e3433008a2 Upgrade huawei-lte-api to 1.6.0, adapt to it (#71041)
* Upgrade huawei-lte-api to 1.6.0, adapt to it

https://github.com/Salamek/huawei-lte-api/releases/tag/1.5
https://github.com/Salamek/huawei-lte-api/releases/tag/1.5.1
https://github.com/Salamek/huawei-lte-api/releases/tag/1.5.2
https://github.com/Salamek/huawei-lte-api/releases/tag/1.5.3
https://github.com/Salamek/huawei-lte-api/releases/tag/1.5.4
https://github.com/Salamek/huawei-lte-api/releases/tag/1.6

* Fix logout on config flow

Co-authored-by: Antonino Piazza <antpza@gmail.com>
2022-05-05 19:37:32 +03:00
Ville Skyttä
066128a53c Remove leftovers of Huawei LTE YAML config support (#68728) 2022-03-28 08:24:13 -07:00
Ville Skyttä
945028d43d Update Huawei LTE config entry data on successful reconfig (#68727) 2022-03-27 17:16:45 +02:00
epenet
d775c66194 Tidy up ssdp_location parsing (#60846)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-02 09:47:20 -08:00
epenet
1edc0a0560 Use dataclass properties in huawei_lte discovery (#60713)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-12-01 14:01:21 +01:00
epenet
ec1c52d945 Use dataclass for SsdpServiceInfo (#59931)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2021-11-29 06:10:07 -10:00
Ville Skyttä
91a2b96da0 Implement stable unique id for Huawei LTE, requires credentials on setup (#49878) 2021-07-11 21:25:00 -07:00
Michael
b1138b1aab Add constructor return type in integrations E-K (#50902) 2021-05-20 18:47:30 +03:00
Franck Nijhof
10d6dfd4ae Clean up connection classes in integrations H-L (#49891) 2021-04-30 21:02:53 -10:00
Ruslan Sayfutdinov
183220008d Rename FlowResultDict to FlowResult (#49847) 2021-04-29 13:40:51 +02:00
J. Nick Koston
3fa8ffa731 Enable mccabe complexity checks in flake8 (#49616)
Co-authored-by: Franck Nijhof <git@frenck.dev>
2021-04-25 12:38:40 +02:00
Ville Skyttä
c825f88888 Support wired clients in Huawei LTE device tracker (#48987) 2021-04-20 12:26:09 -10:00
Ruslan Sayfutdinov
7a9385d857 Explicitly define all methods in ConfigFlow (#49341) 2021-04-17 12:42:31 +02:00
Ruslan Sayfutdinov
80f66f301b Define data flow result type (#49260)
* Define data flow result type

* Revert explicit definitions

* Fix tests

* Specific mypy ignore
2021-04-15 07:17:07 -10:00
Ville Skyttä
4149cc9662 Huawei LTE cleanups (#48959) 2021-04-09 17:08:13 -07:00
Marc Mueller
2956eb0902 Update pylint to 2.7.3 (#48488)
* Update pylint to 2.7.3

* Add class-const-naming-style

* Remove unused-import message

* Additional cleanup
2021-03-29 18:02:56 -10:00
Marc Mueller
5cdd945f44 Update typing 08 (#48058) 2021-03-18 09:25:40 +01:00
Franck Nijhof
bc1daf1802 None optional hass typing in FlowHandler (#46462)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2021-02-13 13:21:37 +01:00
Franck Nijhof
dd8d4471ec Postponed evaluation of annotations for integrations (#46455) 2021-02-12 18:54:00 +01:00
Ville Skyttä
cf83c6bf00 Complete Huawei LTE type hints, make mypy check them (#41503) 2020-10-08 21:02:47 +02:00
Ville Skyttä
56f0a68c49 Add and fix some Huawei LTE type hints (#41196) 2020-10-05 11:21:48 +02:00
SNoof85
005898a0d9 Use reference strings in Huawei LTE (#41011)
* Update strings.json

* Update config_flow.py

* Update test_config_flow.py

* Update strings.json

* Update strings.json

* Update config_flow.py

* Update test_config_flow.py
2020-10-02 22:43:57 +02:00
Ville Skyttä
6ae9399237 Upgrade isort to 5.4.2 (#37939) 2020-08-29 08:23:55 +02:00
Ville Skyttä
7c5e852303 Improve detected Huawei LTE device name (#36772)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2020-06-22 21:49:05 -07:00
Ville Skyttä
0b7d2aa4d7 Add unique id to huawei_lte config entries (#36765) 2020-06-14 23:05:43 +02:00
Ville Skyttä
98ac84349c Fix Huawei LTE SMS recipient setting from options UI (#31117)
* Fix Huawei LTE SMS recipient setting from options UI

Refs https://github.com/home-assistant/home-assistant/issues/30827

* Use core interfaces in tests

* ...more
2020-01-25 13:09:43 +02:00
Ville Skyttä
c5a280c064 Huawei LTE: Fix YAML options overriding ones set from GUI (#30249)
Closes https://github.com/home-assistant/home-assistant/issues/30221
2019-12-28 16:27:49 +01:00
Ville Skyttä
a5c4508571 Make Huawei LTE notify service name configurable (#30208)
* Default Huawei LTE notify service name to notify.huawei_lte, make configurable

Closes https://github.com/home-assistant/home-assistant/issues/29409

* Set default notify service name for uninvoked options flow
2019-12-25 13:42:28 +02:00
Ville Skyttä
d236a19139 Include all SSDP data in discovery info (#28197)
* Include all SSDP data in discovery info

* Use UPnP device description as discovery info, inject some SSDP attrs

* Clean up attribute names

* Adapt existing SSDP flows to changed attribute names

* Prefix all SSDP UPnP attribute name constants with ATTR_UPNP, tweak a bit
2019-12-19 19:28:03 +02:00
Bas Nijholt
80c344d3a8 Sort imports according to PEP8 for huawei_lte (#29664) 2019-12-09 19:06:25 +01:00
Ville Skyttä
6a7b5657ac Support Huawei LTE SSDP discovery (#28214)
* Support Huawei LTE SSDP discovery

* Avoid KeyError on simultaneous user initiated flow

Co-Authored-By: Paulus Schoutsen <paulus@home-assistant.io>

* Format code

* Add already configured check

* Initialize context in test flows

* Move deviceType match to manifest

* Update generated.ssdp

* Add SSDP config flow test case

* Remove stale debug print from tests
2019-11-04 19:56:49 +02:00
Ville Skyttä
b904a2c5ad Handle Huawei LTE timeouts (#28465) 2019-11-02 21:28:38 -07:00
Ville Skyttä
fc09702cc3 Modernize Huawei LTE (#26675)
* Modernization rework

- config entry support, with override support from huawei_lte platform in YAML
- device tracker entity registry support
- refactor for easier addition of more features
- internal code cleanups

* Remove log level dependent subscription/data debug hack

No longer needed, because pretty much all keys from supported
categories are exposed as sensors.

Closes https://github.com/home-assistant/home-assistant/issues/23819

* Upgrade huawei-lte-api to 1.4.1

https://github.com/Salamek/huawei-lte-api/releases

* Add support for access without username and password

* Use subclass init instead of config_entries.HANDLERS

* Update huawei-lte-api to 1.4.3 (#27269)

* Convert device state attributes to snake_case

* Simplify scanner entity initialization

* Remove not needed hass reference from Router

* Return explicit None from unsupported old device tracker setup

* Mark unknown connection errors during config as such

* Drop some dead config flow code

* Run config flow sync I/O in executor

* Parametrize config flow login error tests

* Forward entry unload to platforms

* Async/sync fixups

* Improve data subscription debug logging

* Implement on the fly add of new and tracking of seen device tracker entities

* Handle device tracker entry unload cleanup in component

* Remove unnecessary _async_setup_lte, just have code in async_setup_entry

* Remove time tracker on unload

* Fix to not use same mutable default subscription set for all routers

* Pylint fixes

* Remove some redundant defensive device tracker code

* Add back explicit get_scanner None return, hush pylint

* Adjust approach to set system_options on entry create

* Enable some sensors on first add instead of disabling everything

* Fix SMS notification recipients default value

* Add option to skip new device tracker entities

* Fix SMS notification recipient option default

* Work around https://github.com/PyCQA/pylint/issues/3202

* Remove unrelated type hint additions

* Change async_add_new_entities to a regular function

* Remove option to disable polling for new device tracker entries
2019-10-24 19:31:49 +03:00