This commit is contained in:
Ron Klinkien
2025-02-08 18:18:15 +00:00
parent c94104443d
commit 83e8e52d72
5 changed files with 27 additions and 14 deletions

View File

@@ -178,7 +178,7 @@ action:
mode: single
```
### Examples on how to test services from HA GUI
### Examples on how to test actions from HA GUI
#### Add Body Composition
@@ -189,10 +189,10 @@ data:
weight: 87
bmi: 25.5
bone_mass: 4.8
...
```
See the action template for other available values to add
NOTE: You need to enable Weight entity
NOTE: You need to enable the Weight entity
#### Set Active Gear

View File

@@ -17,6 +17,7 @@ from homeassistant.const import CONF_PASSWORD, CONF_USERNAME
from homeassistant.core import HomeAssistant
from homeassistant.exceptions import ConfigEntryNotReady
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
import requests
from .const import (
DATA_COORDINATOR,
@@ -196,19 +197,29 @@ class GarminConnectDataUpdateCoordinator(DataUpdateCoordinator):
)
_LOGGER.debug("Gear data fetched: %s", gear)
gear_defaults = await self.hass.async_add_executor_job(
self.api.get_gear_defaults, summary[Gear.USERPROFILE_ID]
)
_LOGGER.debug("Gear defaults data fetched: %s", gear_defaults)
except (KeyError, TypeError, ValueError, ConnectionError) as err:
_LOGGER.debug("Error while fetching Gear data: %s", err)
# Gear stats data
try:
tasks: list[Awaitable] = [
self.hass.async_add_executor_job(self.api.get_gear_stats, gear_item[Gear.UUID])
for gear_item in gear
]
gear_stats = await asyncio.gather(*tasks)
_LOGGER.debug("Gear stats data fetched: %s", gear_stats)
gear_defaults = await self.hass.async_add_executor_job(
self.api.get_gear_defaults, summary[Gear.USERPROFILE_ID]
)
_LOGGER.debug("Gear defaults data fetched: %s", gear_defaults)
except (KeyError, TypeError, ValueError, ConnectionError) as err:
_LOGGER.debug("Gear data is not available: %s", err)
except (
KeyError,
TypeError,
ValueError,
ConnectionError,
requests.exceptions.HTTPError,
) as err:
_LOGGER.debug("Error while fetching Gear stats data: %s", err)
# Sleep score data
try:

View File

@@ -8,5 +8,5 @@
"iot_class": "cloud_polling",
"issue_tracker": "https://github.com/cyberjunky/home-assistant-garmin_connect/issues",
"requirements": ["garminconnect>=0.2.24"],
"version": "0.2.29"
"version": "0.2.30"
}

View File

@@ -239,13 +239,16 @@ class GarminConnectSensor(CoordinatorEntity, SensorEntity):
"last_synced": self.coordinator.data["lastSyncTimestampGMT"],
}
# Only add the last 5 activities for performance reasons
if self._type == "lastActivities":
attributes["last_activities"] = self.coordinator.data[self._type]
activities = self.coordinator.data.get(self._type, [])
sorted_activities = sorted(activities, key=lambda x: x["activityId"])
attributes["last_activities"] = sorted_activities[-5:]
if self._type == "lastActivity":
attributes = {**attributes, **self.coordinator.data[self._type]}
# Only show the last 10 badges for performance reasons
# Only add the last 10 badges for performance reasons
if self._type == "badges":
badges = self.coordinator.data.get(self._type, [])
sorted_badges = sorted(badges, key=lambda x: x["badgeEarnedDate"])

View File

@@ -1,2 +1 @@
# homeassistant==2024.4.1
homeassistant==2025.1.4