diff --git a/custom_components/garmin_connect/__init__.py b/custom_components/garmin_connect/__init__.py index ad24403..e66cd64 100644 --- a/custom_components/garmin_connect/__init__.py +++ b/custom_components/garmin_connect/__init__.py @@ -242,6 +242,15 @@ class GarminConnectDataUpdateCoordinator(DataUpdateCoordinator): else: _LOGGER.debug("No fitness age data found") + # Hyrdation data + hydration_data = await self.hass.async_add_executor_job( + self.api.get_hydration_data, today.isoformat() + ) + if hydration_data: + _LOGGER.debug("Hydration data fetched: %s", hydration_data) + else: + _LOGGER.debug("No hydration data found") + except GarminConnectAuthenticationError as err: _LOGGER.error( "Authentication error occurred during update: %s", err.response.text) @@ -343,6 +352,7 @@ class GarminConnectDataUpdateCoordinator(DataUpdateCoordinator): "sleepTimeSeconds": sleep_time_seconds, "hrvStatus": hrv_status, **fitnessage_data, + **hydration_data, } diff --git a/custom_components/garmin_connect/const.py b/custom_components/garmin_connect/const.py index b47943e..f797142 100644 --- a/custom_components/garmin_connect/const.py +++ b/custom_components/garmin_connect/const.py @@ -4,7 +4,7 @@ from datetime import timedelta from typing import NamedTuple from homeassistant.components.sensor import SensorDeviceClass, SensorStateClass -from homeassistant.const import PERCENTAGE, UnitOfLength, UnitOfMass, UnitOfTime +from homeassistant.const import PERCENTAGE, UnitOfLength, UnitOfMass, UnitOfTime, UnitOfVolume DOMAIN = "garmin_connect" DATA_COORDINATOR = "coordinator" @@ -689,6 +689,46 @@ GARMIN_ENTITY_LIST = { SensorStateClass.MEASUREMENT, True, ], + "valueInML": [ + "Hydration", + UnitOfVolume.MILLILITERS, + "mdi:water", + None, + SensorStateClass.MEASUREMENT, + True, + ], + "goalInML": [ + "Hydration Goal", + UnitOfVolume.MILLILITERS, + "mdi:water", + None, + SensorStateClass.MEASUREMENT, + True, + ], + "dailyAverageInML": [ + "Hydration Daily Average", + UnitOfVolume.MILLILITERS, + "mdi:water", + None, + SensorStateClass.MEASUREMENT, + True, + ], + "sweatLossInML": [ + "Hydration Sweat Loss", + UnitOfVolume.MILLILITERS, + "mdi:water", + None, + SensorStateClass.MEASUREMENT, + True, + ], + "activityIntakeInML": [ + "Hydration Activity Intake", + UnitOfVolume.MILLILITERS, + "mdi:water", + None, + SensorStateClass.MEASUREMENT, + True, + ], } GEAR_ICONS = { diff --git a/custom_components/garmin_connect/manifest.json b/custom_components/garmin_connect/manifest.json index bcab097..be01bf2 100644 --- a/custom_components/garmin_connect/manifest.json +++ b/custom_components/garmin_connect/manifest.json @@ -8,5 +8,5 @@ "iot_class": "cloud_polling", "issue_tracker": "https://github.com/cyberjunky/home-assistant-garmin_connect/issues", "requirements": ["garminconnect>=0.2.26"], - "version": "0.2.31-beta-02" + "version": "0.2.31-beta-03" }