Updating device and state classes

This commit is contained in:
Carlos Cristobal
2023-01-05 19:06:25 +00:00
parent 7d82bb1c12
commit ae77cf3cd7

View File

@@ -13,6 +13,8 @@ from homeassistant.const import (
CONF_CLIENT_ID, CONF_CLIENT_ID,
CONF_CLIENT_SECRET, CONF_CLIENT_SECRET,
PERCENTAGE, PERCENTAGE,
UnitOfEnergy,
UnitOfFrequency,
UnitOfLength, UnitOfLength,
UnitOfMass, UnitOfMass,
UnitOfTime, UnitOfTime,
@@ -25,7 +27,9 @@ ATTR_LAST_SAVED_AT: Final = "last_saved_at"
ATTR_DURATION: Final = "duration" ATTR_DURATION: Final = "duration"
ATTR_DISTANCE: Final = "distance" ATTR_DISTANCE: Final = "distance"
ATTR_ENERGY: Final = "calories"
ATTR_ELEVATION: Final = "elevation" ATTR_ELEVATION: Final = "elevation"
ATTR_FREQUENCY: Final = "bpm"
ATTR_HEIGHT: Final = "height" ATTR_HEIGHT: Final = "height"
ATTR_WEIGHT: Final = "weight" ATTR_WEIGHT: Final = "weight"
ATTR_BODY: Final = "body" ATTR_BODY: Final = "body"
@@ -60,46 +64,57 @@ FITBIT_RESOURCES_LIST: Final[tuple[FitbitSensorEntityDescription, ...]] = (
FitbitSensorEntityDescription( FitbitSensorEntityDescription(
key="activities/activityCalories", key="activities/activityCalories",
name="Activity Calories", name="Activity Calories",
native_unit_of_measurement="cal", native_unit_of_measurement=UnitOfEnergy.CALORIE,
icon="mdi:fire", icon="mdi:fire",
device_class=SensorDeviceClass.ENERGY,
state_class=SensorStateClass.TOTAL_INCREASING,
), ),
FitbitSensorEntityDescription( FitbitSensorEntityDescription(
key="activities/calories", key="activities/calories",
name="Calories", name="Calories",
native_unit_of_measurement="cal", native_unit_of_measurement=UnitOfEnergy.CALORIE,
icon="mdi:fire", icon="mdi:fire",
device_class=SensorDeviceClass.ENERGY,
state_class=SensorStateClass.TOTAL_INCREASING,
), ),
FitbitSensorEntityDescription( FitbitSensorEntityDescription(
key="activities/caloriesBMR", key="activities/caloriesBMR",
name="Calories BMR", name="Calories BMR",
native_unit_of_measurement="cal", native_unit_of_measurement=UnitOfEnergy.CALORIE,
icon="mdi:fire", icon="mdi:fire",
device_class=SensorDeviceClass.ENERGY,
state_class=SensorStateClass.TOTAL_INCREASING,
), ),
FitbitSensorEntityDescription( FitbitSensorEntityDescription(
key="activities/distance", key="activities/distance",
name="Distance", name="Distance",
unit_type="distance", native_unit_of_measurement=UnitOfLength.MILES,
icon="mdi:map-marker", icon="mdi:map-marker",
device_class=SensorDeviceClass.DISTANCE, device_class=SensorDeviceClass.DISTANCE,
state_class=SensorStateClass.TOTAL_INCREASING,
), ),
FitbitSensorEntityDescription( FitbitSensorEntityDescription(
key="activities/elevation", key="activities/elevation",
name="Elevation", name="Elevation",
unit_type="elevation", native_unit_of_measurement=UnitOfLength.FEET,
icon="mdi:walk", icon="mdi:walk",
device_class=SensorDeviceClass.DISTANCE, device_class=SensorDeviceClass.DISTANCE,
state_class=SensorStateClass.TOTAL_INCREASING,
), ),
FitbitSensorEntityDescription( FitbitSensorEntityDescription(
key="activities/floors", key="activities/floors",
name="Floors", name="Floors",
native_unit_of_measurement="floors", native_unit_of_measurement="floors",
icon="mdi:walk", icon="mdi:walk",
state_class=SensorStateClass.TOTAL_INCREASING,
), ),
FitbitSensorEntityDescription( FitbitSensorEntityDescription(
key="activities/heart", key="activities/heart",
name="Resting Heart Rate", name="Resting Heart Rate",
native_unit_of_measurement="bpm", native_unit_of_measurement=UnitOfFrequency.BPM,
icon="mdi:heart-pulse", icon="mdi:heart-pulse",
device_class=SensorDeviceClass.FREQUENCY,
state_class=SensorStateClass.MEASUREMENT,
), ),
FitbitSensorEntityDescription( FitbitSensorEntityDescription(
key="activities/minutesFairlyActive", key="activities/minutesFairlyActive",
@@ -107,6 +122,7 @@ FITBIT_RESOURCES_LIST: Final[tuple[FitbitSensorEntityDescription, ...]] = (
native_unit_of_measurement=UnitOfTime.MINUTES, native_unit_of_measurement=UnitOfTime.MINUTES,
icon="mdi:walk", icon="mdi:walk",
device_class=SensorDeviceClass.DURATION, device_class=SensorDeviceClass.DURATION,
state_class=SensorStateClass.TOTAL_INCREASING,
), ),
FitbitSensorEntityDescription( FitbitSensorEntityDescription(
key="activities/minutesLightlyActive", key="activities/minutesLightlyActive",
@@ -114,6 +130,7 @@ FITBIT_RESOURCES_LIST: Final[tuple[FitbitSensorEntityDescription, ...]] = (
native_unit_of_measurement=UnitOfTime.MINUTES, native_unit_of_measurement=UnitOfTime.MINUTES,
icon="mdi:walk", icon="mdi:walk",
device_class=SensorDeviceClass.DURATION, device_class=SensorDeviceClass.DURATION,
state_class=SensorStateClass.TOTAL_INCREASING,
), ),
FitbitSensorEntityDescription( FitbitSensorEntityDescription(
key="activities/minutesSedentary", key="activities/minutesSedentary",
@@ -121,6 +138,7 @@ FITBIT_RESOURCES_LIST: Final[tuple[FitbitSensorEntityDescription, ...]] = (
native_unit_of_measurement=UnitOfTime.MINUTES, native_unit_of_measurement=UnitOfTime.MINUTES,
icon="mdi:seat-recline-normal", icon="mdi:seat-recline-normal",
device_class=SensorDeviceClass.DURATION, device_class=SensorDeviceClass.DURATION,
state_class=SensorStateClass.TOTAL_INCREASING,
), ),
FitbitSensorEntityDescription( FitbitSensorEntityDescription(
key="activities/minutesVeryActive", key="activities/minutesVeryActive",
@@ -128,44 +146,53 @@ FITBIT_RESOURCES_LIST: Final[tuple[FitbitSensorEntityDescription, ...]] = (
native_unit_of_measurement=UnitOfTime.MINUTES, native_unit_of_measurement=UnitOfTime.MINUTES,
icon="mdi:run", icon="mdi:run",
device_class=SensorDeviceClass.DURATION, device_class=SensorDeviceClass.DURATION,
state_class=SensorStateClass.TOTAL_INCREASING,
), ),
FitbitSensorEntityDescription( FitbitSensorEntityDescription(
key="activities/steps", key="activities/steps",
name="Steps", name="Steps",
native_unit_of_measurement="steps", native_unit_of_measurement="steps",
icon="mdi:walk", icon="mdi:walk",
state_class=SensorStateClass.TOTAL_INCREASING,
), ),
FitbitSensorEntityDescription( FitbitSensorEntityDescription(
key="activities/tracker/activityCalories", key="activities/tracker/activityCalories",
name="Tracker Activity Calories", name="Tracker Activity Calories",
native_unit_of_measurement="cal", native_unit_of_measurement=UnitOfEnergy.CALORIE,
icon="mdi:fire", icon="mdi:fire",
device_class=SensorDeviceClass.ENERGY,
state_class=SensorStateClass.TOTAL_INCREASING,
), ),
FitbitSensorEntityDescription( FitbitSensorEntityDescription(
key="activities/tracker/calories", key="activities/tracker/calories",
name="Tracker Calories", name="Tracker Calories",
native_unit_of_measurement="cal", native_unit_of_measurement=UnitOfEnergy.CALORIE,
icon="mdi:fire", icon="mdi:fire",
device_class=SensorDeviceClass.ENERGY,
state_class=SensorStateClass.TOTAL_INCREASING,
), ),
FitbitSensorEntityDescription( FitbitSensorEntityDescription(
key="activities/tracker/distance", key="activities/tracker/distance",
name="Tracker Distance", name="Tracker Distance",
unit_type="distance", native_unit_of_measurement=UnitOfLength.MILES,
icon="mdi:map-marker", icon="mdi:map-marker",
device_class=SensorDeviceClass.DISTANCE, device_class=SensorDeviceClass.DISTANCE,
state_class=SensorStateClass.TOTAL_INCREASING,
), ),
FitbitSensorEntityDescription( FitbitSensorEntityDescription(
key="activities/tracker/elevation", key="activities/tracker/elevation",
name="Tracker Elevation", name="Tracker Elevation",
unit_type="elevation", native_unit_of_measurement=UnitOfLength.FEET,
icon="mdi:walk", icon="mdi:walk",
device_class=SensorDeviceClass.DISTANCE, device_class=SensorDeviceClass.DISTANCE,
state_class=SensorStateClass.TOTAL_INCREASING,
), ),
FitbitSensorEntityDescription( FitbitSensorEntityDescription(
key="activities/tracker/floors", key="activities/tracker/floors",
name="Tracker Floors", name="Tracker Floors",
native_unit_of_measurement="floors", native_unit_of_measurement="floors",
icon="mdi:walk", icon="mdi:walk",
state_class=SensorStateClass.TOTAL_INCREASING,
), ),
FitbitSensorEntityDescription( FitbitSensorEntityDescription(
key="activities/tracker/minutesFairlyActive", key="activities/tracker/minutesFairlyActive",
@@ -173,6 +200,7 @@ FITBIT_RESOURCES_LIST: Final[tuple[FitbitSensorEntityDescription, ...]] = (
native_unit_of_measurement=UnitOfTime.MINUTES, native_unit_of_measurement=UnitOfTime.MINUTES,
icon="mdi:walk", icon="mdi:walk",
device_class=SensorDeviceClass.DURATION, device_class=SensorDeviceClass.DURATION,
state_class=SensorStateClass.TOTAL_INCREASING,
), ),
FitbitSensorEntityDescription( FitbitSensorEntityDescription(
key="activities/tracker/minutesLightlyActive", key="activities/tracker/minutesLightlyActive",
@@ -180,6 +208,7 @@ FITBIT_RESOURCES_LIST: Final[tuple[FitbitSensorEntityDescription, ...]] = (
native_unit_of_measurement=UnitOfTime.MINUTES, native_unit_of_measurement=UnitOfTime.MINUTES,
icon="mdi:walk", icon="mdi:walk",
device_class=SensorDeviceClass.DURATION, device_class=SensorDeviceClass.DURATION,
state_class=SensorStateClass.TOTAL_INCREASING,
), ),
FitbitSensorEntityDescription( FitbitSensorEntityDescription(
key="activities/tracker/minutesSedentary", key="activities/tracker/minutesSedentary",
@@ -187,6 +216,7 @@ FITBIT_RESOURCES_LIST: Final[tuple[FitbitSensorEntityDescription, ...]] = (
native_unit_of_measurement=UnitOfTime.MINUTES, native_unit_of_measurement=UnitOfTime.MINUTES,
icon="mdi:seat-recline-normal", icon="mdi:seat-recline-normal",
device_class=SensorDeviceClass.DURATION, device_class=SensorDeviceClass.DURATION,
state_class=SensorStateClass.TOTAL_INCREASING,
), ),
FitbitSensorEntityDescription( FitbitSensorEntityDescription(
key="activities/tracker/minutesVeryActive", key="activities/tracker/minutesVeryActive",
@@ -194,12 +224,14 @@ FITBIT_RESOURCES_LIST: Final[tuple[FitbitSensorEntityDescription, ...]] = (
native_unit_of_measurement=UnitOfTime.MINUTES, native_unit_of_measurement=UnitOfTime.MINUTES,
icon="mdi:run", icon="mdi:run",
device_class=SensorDeviceClass.DURATION, device_class=SensorDeviceClass.DURATION,
state_class=SensorStateClass.TOTAL_INCREASING,
), ),
FitbitSensorEntityDescription( FitbitSensorEntityDescription(
key="activities/tracker/steps", key="activities/tracker/steps",
name="Tracker Steps", name="Tracker Steps",
native_unit_of_measurement="steps", native_unit_of_measurement="steps",
icon="mdi:walk", icon="mdi:walk",
state_class=SensorStateClass.TOTAL_INCREASING,
), ),
FitbitSensorEntityDescription( FitbitSensorEntityDescription(
key="body/bmi", key="body/bmi",
@@ -218,7 +250,7 @@ FITBIT_RESOURCES_LIST: Final[tuple[FitbitSensorEntityDescription, ...]] = (
FitbitSensorEntityDescription( FitbitSensorEntityDescription(
key="body/weight", key="body/weight",
name="Weight", name="Weight",
unit_type="weight", native_unit_of_measurement=UnitOfMass.POUNDS,
icon="mdi:human", icon="mdi:human",
state_class=SensorStateClass.MEASUREMENT, state_class=SensorStateClass.MEASUREMENT,
device_class=SensorDeviceClass.WEIGHT, device_class=SensorDeviceClass.WEIGHT,
@@ -226,8 +258,9 @@ FITBIT_RESOURCES_LIST: Final[tuple[FitbitSensorEntityDescription, ...]] = (
FitbitSensorEntityDescription( FitbitSensorEntityDescription(
key="sleep/awakeningsCount", key="sleep/awakeningsCount",
name="Awakenings Count", name="Awakenings Count",
native_unit_of_measurement="times awaken", native_unit_of_measurement="times awakened",
icon="mdi:sleep", icon="mdi:sleep",
state_class=SensorStateClass.TOTAL_INCREASING,
), ),
FitbitSensorEntityDescription( FitbitSensorEntityDescription(
key="sleep/efficiency", key="sleep/efficiency",
@@ -242,6 +275,7 @@ FITBIT_RESOURCES_LIST: Final[tuple[FitbitSensorEntityDescription, ...]] = (
native_unit_of_measurement=UnitOfTime.MINUTES, native_unit_of_measurement=UnitOfTime.MINUTES,
icon="mdi:sleep", icon="mdi:sleep",
device_class=SensorDeviceClass.DURATION, device_class=SensorDeviceClass.DURATION,
state_class=SensorStateClass.TOTAL_INCREASING,
), ),
FitbitSensorEntityDescription( FitbitSensorEntityDescription(
key="sleep/minutesAsleep", key="sleep/minutesAsleep",
@@ -249,6 +283,7 @@ FITBIT_RESOURCES_LIST: Final[tuple[FitbitSensorEntityDescription, ...]] = (
native_unit_of_measurement=UnitOfTime.MINUTES, native_unit_of_measurement=UnitOfTime.MINUTES,
icon="mdi:sleep", icon="mdi:sleep",
device_class=SensorDeviceClass.DURATION, device_class=SensorDeviceClass.DURATION,
state_class=SensorStateClass.TOTAL_INCREASING,
), ),
FitbitSensorEntityDescription( FitbitSensorEntityDescription(
key="sleep/minutesAwake", key="sleep/minutesAwake",
@@ -256,6 +291,7 @@ FITBIT_RESOURCES_LIST: Final[tuple[FitbitSensorEntityDescription, ...]] = (
native_unit_of_measurement=UnitOfTime.MINUTES, native_unit_of_measurement=UnitOfTime.MINUTES,
icon="mdi:sleep", icon="mdi:sleep",
device_class=SensorDeviceClass.DURATION, device_class=SensorDeviceClass.DURATION,
state_class=SensorStateClass.TOTAL_INCREASING,
), ),
FitbitSensorEntityDescription( FitbitSensorEntityDescription(
key="sleep/minutesToFallAsleep", key="sleep/minutesToFallAsleep",
@@ -263,6 +299,7 @@ FITBIT_RESOURCES_LIST: Final[tuple[FitbitSensorEntityDescription, ...]] = (
native_unit_of_measurement=UnitOfTime.MINUTES, native_unit_of_measurement=UnitOfTime.MINUTES,
icon="mdi:sleep", icon="mdi:sleep",
device_class=SensorDeviceClass.DURATION, device_class=SensorDeviceClass.DURATION,
state_class=SensorStateClass.TOTAL_INCREASING,
), ),
FitbitSensorEntityDescription( FitbitSensorEntityDescription(
key="sleep/startTime", key="sleep/startTime",
@@ -275,6 +312,7 @@ FITBIT_RESOURCES_LIST: Final[tuple[FitbitSensorEntityDescription, ...]] = (
native_unit_of_measurement=UnitOfTime.MINUTES, native_unit_of_measurement=UnitOfTime.MINUTES,
icon="mdi:hotel", icon="mdi:hotel",
device_class=SensorDeviceClass.DURATION, device_class=SensorDeviceClass.DURATION,
state_class=SensorStateClass.TOTAL_INCREASING,
), ),
) )
@@ -299,6 +337,8 @@ FITBIT_MEASUREMENTS: Final[dict[str, dict[str, str]]] = {
ATTR_LIQUIDS: UnitOfVolume.FLUID_OUNCES, ATTR_LIQUIDS: UnitOfVolume.FLUID_OUNCES,
ATTR_BLOOD_GLUCOSE: f"{UnitOfMass.MILLIGRAMS}/dL", ATTR_BLOOD_GLUCOSE: f"{UnitOfMass.MILLIGRAMS}/dL",
ATTR_BATTERY: "", ATTR_BATTERY: "",
ATTR_ENERGY: UnitOfEnergy.CALORIE,
ATTR_FREQUENCY: UnitOfFrequency.BPM,
}, },
"en_GB": { "en_GB": {
ATTR_DURATION: UnitOfTime.MILLISECONDS, ATTR_DURATION: UnitOfTime.MILLISECONDS,
@@ -310,6 +350,8 @@ FITBIT_MEASUREMENTS: Final[dict[str, dict[str, str]]] = {
ATTR_LIQUIDS: UnitOfVolume.MILLILITERS, ATTR_LIQUIDS: UnitOfVolume.MILLILITERS,
ATTR_BLOOD_GLUCOSE: "mmol/L", ATTR_BLOOD_GLUCOSE: "mmol/L",
ATTR_BATTERY: "", ATTR_BATTERY: "",
ATTR_ENERGY: UnitOfEnergy.CALORIE,
ATTR_FREQUENCY: UnitOfFrequency.BPM,
}, },
"metric": { "metric": {
ATTR_DURATION: UnitOfTime.MILLISECONDS, ATTR_DURATION: UnitOfTime.MILLISECONDS,
@@ -321,6 +363,8 @@ FITBIT_MEASUREMENTS: Final[dict[str, dict[str, str]]] = {
ATTR_LIQUIDS: UnitOfVolume.MILLILITERS, ATTR_LIQUIDS: UnitOfVolume.MILLILITERS,
ATTR_BLOOD_GLUCOSE: "mmol/L", ATTR_BLOOD_GLUCOSE: "mmol/L",
ATTR_BATTERY: "", ATTR_BATTERY: "",
ATTR_ENERGY: UnitOfEnergy.CALORIE,
ATTR_FREQUENCY: UnitOfFrequency.BPM,
}, },
} }