55 Commits

Author SHA1 Message Date
Erik Montnemery
0c2485bc03
Freeze integration entity descriptions (#105984)
Co-authored-by: J. Nick Koston <nick@koston.org>
2023-12-18 16:28:13 -10:00
Allen Porter
64c9aa0cff
Update Fitbit to avoid a KeyError when restingHeartRate is not present (#103872)
* Update Fitbit to avoid a KeyError when `restingHeartRate` is not present

* Explicitly handle none response values
2023-11-12 12:49:49 -08:00
Allen Porter
fe482af561
Add modernized fitbit battery level sensor (#102500)
* Add modernized fitbit battery level sensor

* Use entity names for existing battery sensors

* Use icon from device class

* Update homeassistant/components/fitbit/strings.json

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* Update tests with lower case naming

* Swap the names of the device battery sensors

* Revert "Swap the names of the device battery sensors"

This reverts commit c9516f6d06d77a27c5d7528cdbaa69153546bbbb.

* Update homeassistant/components/fitbit/sensor.py

Co-authored-by: Jan Vaníček <janvanicek@post.cz>

* Improve typing

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
Co-authored-by: Jan Vaníček <janvanicek@post.cz>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2023-11-02 10:22:27 +01:00
Allen Porter
d75f1b2b3e
Fix bug in fitbit credential import for expired tokens (#103024)
* Fix bug in fitbit credential import on token refresh

* Use stable test ids

* Update homeassistant/components/fitbit/sensor.py

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

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2023-10-29 14:26:10 -07:00
Allen Porter
8703621c64
Improve fitbit oauth import robustness (#102833)
* Improve fitbit oauth import robustness

* Improve sensor tests and remove unnecessary client check

* Fix oauth client id/secret config key checks

* Add executor for sync call
2023-10-28 17:20:44 +02:00
Allen Porter
c4f562ff6a
Reduce unnecessary fitbit RPCs on startup (#102504)
* Reduce unnecessary fitbit RPCs on startup

* Update comment about racing user profile rpcs
2023-10-21 22:00:40 -07:00
Allen Porter
d78ee96e2a
Update fitbit device fetch to use a data update coordinator (#101619)
* Add a fitbit device update coordinator

* Remove unnecessary debug output

* Update comments

* Update fitbit coordinator exception handling and test coverage

* Handle reauth failures in other sensors

* Fix scope changes after rebase.
2023-10-09 08:12:59 +02:00
Allen Porter
7d202f78f5
Add fitbit nutrition sensors (#101626)
* Add fitbit nutrition sensors

* Add test coverage for unit systems
2023-10-08 10:09:26 +02:00
Allen Porter
c7d533d427
Update fitbit error handling (#101304)
* Update fitbit error handling

* Update exceptions to inherit HomeAssistantError and add reason code

* Revert config flow exception mapping hack
2023-10-05 22:38:15 -07:00
Allen Porter
74b3c5c690
Modernize fitbit sensors (#101179)
* Improve fitbit sensors with state class and entiy category

* Revert sensor format changes
2023-10-02 16:56:46 +02:00
Allen Porter
bd2fee289d
Update Fitbit integration to allow UI based configuration (#100897)
* Cleanup fitbit sensor API parsing

* Remove API code that is not used yet

* Configuration flow for fitbit

* Code cleanup after manual review

* Streamline code for review

* Use scopes to determine which entities to enable

* Use set for entity comparisons

* Apply fitbit string pr feedback

* Improve fitbit configuration flow error handling

* Apply suggestions from code review

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>

* Fix typo in more places

* Revert typing import

* Revert custom domain back to default

* Add additional config flow tests

* Add         breaks_in_ha_version to repair issues

* Update homeassistant/components/fitbit/api.py

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

* Increase test coverage for token refresh success case

* Add breaks_in_ha_version for sensor issue

* Apply suggestions from code review

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

* Simplify translations, issue keys, and token refresh

* Config flow test improvements

* Simplify repair issue creation on fitbit import

* Remove unused strings

---------

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2023-09-30 16:56:39 -07:00
Allen Porter
822251a642
Update fitbit client to use asyncio (#100933) 2023-09-26 07:50:42 -07:00
Allen Porter
18f29993c5
Simplify fitbit unit system and conversions (#100825)
* Simplify fitbit unit conversions

* Use enum values in unit system schema

* Use fitbit unit system enums
2023-09-25 20:08:59 -04:00
Allen Porter
66ebb479ea
Rewrite fitbit sensor API response value parsing (#100782)
* Cleanup fitbit sensor API parsing

* Remove API code that is not used yet

* Remove dead code for battery levels

Small API parsing cleanup

* Address PR feedback

* Update homeassistant/components/fitbit/sensor.py

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

---------

Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
2023-09-24 22:37:48 +02:00
Joost Lekkerkerker
123cf07920
Clean up fitbit const (#95545) 2023-07-22 13:07:34 +02:00
Franck Nijhof
3e85a29b86
Move overlapping pylint rules to ruff, disable mypy overlap (#94359) 2023-06-27 17:42:46 +02:00
epenet
50f908ce2d
Use load_json_object in fitbit (#88585)
* Use load_json_object in fitbit

* Remove unnecessary cast
2023-03-01 07:44:29 +01:00
epenet
ba23816a0c
Inverse json import logic (#88099)
* Fix helpers and util

* Adjust components

* Move back errors

* Add report

* mypy

* mypy

* Assert deprecation messages

* Move test_json_loads_object

* Adjust tests

* Fix rebase

* Adjust pylint plugin

* Fix plugin

* Adjust references

* Adjust backup tests
2023-02-16 11:37:57 +01:00
Carlos Cristobal
8bb5763ea0
Fix Fitbit state for values over 999 (#85251)
* Remove comma thousands formatting

* Add calorie and bpm to units

* Updating device and state classes

* Revert "Updating device and state classes"

This reverts commit ae77cf3cd74bf3e09ac70a0a4be4a73e0f7d3223.

* Revert "Add calorie and bpm to units"

This reverts commit 7d82bb1c1231ef4c45ca08dda5d30d10c9a0c0a0.

* Removing unnecessary formatting
2023-01-06 14:12:41 +01:00
Franck Nijhof
cb13418bab
String formatting and max line length - Part 2 (#84393) 2022-12-22 11:38:59 +01:00
epenet
62d22d7a2d
Refactor fitbit descriptions to use device classes (#83936) 2022-12-13 21:49:41 +01:00
epenet
c717fd19de
Move attribution to standalone attribute [e-g] (#80513) 2022-10-18 10:04:54 +02:00
epenet
1445e08090
Replace is_metric with is METRIC_SYSTEM (#80262) 2022-10-14 12:22:11 +02:00
Nathan Broadbent
1907b87666
Add unique ID to fitbit (#79587)
* Set unique ID for fitbit sensors, including the user ID

* Remove fitbit_ from unique ids (see: https://developers.home-assistant.io/docs/entity_registry_index/#unique-id)

* change fitbit user_profile type to dict[str, Any]

* Fitbit: define a default unique ID, and add battery info if present

* No need for trailing _battery in unique ID, since it already contains "devices/battery_"
2022-10-04 14:28:00 +02:00
Nathan Broadbent
9d2ba7c008
Use constant in fitbit messages (#79586)
Use FITBIT_CONFIG_FILE constant in configurator messages and buttons
2022-10-04 12:13:40 +02:00
Martin Hjelmare
c05905ebda
Remove callback decorator from coroutine functions (#75626)
* Remove callback decorator from coroutine functions

* Remove some more callback decorators
2022-07-22 19:09:02 +02:00
epenet
81461832c3
Import configurator (#64211)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-01-18 10:18:37 -08:00
Martin Hjelmare
ff530dce0d Fix fitbit no SSL URL handling (#62270) 2021-12-18 15:00:07 +01:00
Marc Mueller
184e0d7fdf
Use assignment expressions 26 (#58187) 2021-10-22 11:31:17 +02:00
Jason Nader
628e59ff11
Clarify that only HTTPS can be used in fitbit (#57116) 2021-10-13 08:45:59 -07:00
Marc Mueller
fed5f5e3b9
Use EntityDescription - fitbit (#55925) 2021-09-23 20:08:47 +02:00
Erik Montnemery
6de6a5dc14
Move temperature conversions to sensor base class (3/8) (#54469)
* Move temperature conversions to entity base class (3/8)

* Fix FritzBox sensor

* Fix tests
2021-08-12 14:23:56 +02:00
Michael
8c5c8ed153
Add strict type annotations to fitbit (#50740)
* add strict type annotations

* cast json_load()

* apply suggestions

* move SCAN_INTERVAL back to platform file

* apply suggestion

* apply suggestion

* apply suggestions

* rename to PARENT_PLATFORM_SCHEMA
2021-05-21 13:33:54 +01:00
Vincent Le Bourlot
219ad5cd9e
Fix fitbit RuntimeError: I/O must be done in the executor (#50058) 2021-05-05 09:19:51 +02:00
Erik Montnemery
339a56e434
Migrate integrations f-h to extend SensorEntity (#48212) 2021-03-22 19:45:17 +01:00
Erik Montnemery
af4d06b12e
Update integrations f-i to override extra_state_attributes() (#47757) 2021-03-11 16:57:47 +01:00
czechmark
16364636d1
Update fitbit battery status (#42980)
* Read the device_status in order to update the fitbit battery

* Read the device_status in order to update the fitbit battery
2020-11-13 23:10:04 +01:00
Colin Frei
13b6fe2bba
Fix fitbit current URL not available while configuring (#40547)
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2020-09-27 23:19:46 +02:00
Colin Frei
5fd059a3b6
Use correct URL for Fitbit callbacks (#39823) 2020-09-09 20:19:37 +02:00
springstan
d2b1918e9c
Drop UNIT_ prefix for percentage constant (#39383) 2020-09-05 21:09:14 +02:00
springstan
9311b02369
Use LENGTH_FEET constant (#34053) 2020-06-10 21:38:29 +02:00
Quentame
1855c91988
Use CONF_CLIENT_ID & CONF_CLIENT_SECRET from homeassistant.const (#36233)
* Use CONF_CLIENT_ID & CONF_CLIENT_SECRET from homeassistant.const

* Fix pylint

* Use in tests

* Search for "client_id"

* Fix tests

* Fix test

* Fix test
2020-05-30 17:27:20 +02:00
Franck Nijhof
e3e3a113e9
async_get_url -> get_url (#35382) 2020-05-08 21:53:28 +02:00
Franck Nijhof
2223592486
Add get_url helper, deprecate base_url (#35224) 2020-05-08 02:29:47 +02:00
springstan
f1a0ca7cd3
Add and use percentage constant (#32094)
* Add and use percentage constant

* Fix pylint error and broken test
2020-02-28 11:46:48 -08:00
springstan
ad102b3840
Use f-strings in integrations starting with "F"and"G" (#32150)
* Use f-strings in integrations starting with F

* Use f-strings in tests for integrations starting with F

* Use f-strings in integrations starting with G

* Use f-strings in tests for integrations starting with G

* Fix pylint error

* Fix broken test
2020-02-24 17:54:20 -08:00
Ville Skyttä
496bd3dddf
Add and use more unit constants (#32122)
* Add and use speed constants

* Add and use meter based volume and area constants

* Add and use more mass unit constants

* Add and use concentration unit constants

* Add and use watts per square meter constant

* Use more time constants

* Use more data constants
2020-02-24 17:52:14 -08:00
springstan
a85808e325
Add and use time related constants (#32065)
* Add and use time related constants

* Sort time constants and reuse them in data rate constants

* Fix greeneyemonitor import

* Fix greeneyemonitor import V2

* Fix failing here_travel_time test

* Add TIME_MONTHS and TIME_YEARS

* Use TIME_MINUTES in opentherm_gw and isy994

* Add and use TIME_MILLISECONDS

* Change inconsistent ones

* Add TIME_MICROSECONDS and TIME_WEEKS

* Use constants in apcupsd and travisci

* Fix import error in upnp sensor.py

* Fix isy994 sensor.py using TIME_YEARS

* Fix dyson tests

* Use TIME_SECONDS in more places

* Use TIME_DAYS in google wifi
2020-02-23 22:09:24 +02:00
Bas Nijholt
ca0fad2cbb Sort imports according to PEP8 for components starting with "F" (#29766) 2019-12-09 14:14:40 +01:00
Quentame
0965e358ea Move imports in fitbit component (#27820) 2019-10-17 17:14:53 -07:00