From fe9ae0d8bd725b9db1e09aea7e24509367bb5de8 Mon Sep 17 00:00:00 2001 From: Manu <4445816+tr4nt0r@users.noreply.github.com> Date: Sat, 5 Oct 2024 21:27:42 +0200 Subject: [PATCH] Add sensors for gems and mystic hourglasses to Habitica integration (#127651) Add sensors for gems and mystic hourglasses --- homeassistant/components/habitica/icons.json | 6 ++++++ homeassistant/components/habitica/sensor.py | 21 +++++++++++++++++++ .../components/habitica/strings.json | 6 ++++++ 3 files changed, 33 insertions(+) diff --git a/homeassistant/components/habitica/icons.json b/homeassistant/components/habitica/icons.json index 662cf1d84a5..db025c26060 100644 --- a/homeassistant/components/habitica/icons.json +++ b/homeassistant/components/habitica/icons.json @@ -56,6 +56,12 @@ "gold": { "default": "mdi:sack" }, + "gems": { + "default": "mdi:diamond-stone" + }, + "trinkets": { + "default": "mdi:timer-sand" + }, "class": { "default": "mdi:sword", "state": { diff --git a/homeassistant/components/habitica/sensor.py b/homeassistant/components/habitica/sensor.py index fed1375c893..ccf1e998049 100644 --- a/homeassistant/components/habitica/sensor.py +++ b/homeassistant/components/habitica/sensor.py @@ -63,6 +63,8 @@ class HabitipySensorEntity(StrEnum): DAILIES = "dailys" TODOS = "todos" REWARDS = "rewards" + GEMS = "gems" + TRINKETS = "trinkets" SENSOR_DESCRIPTIONS: tuple[HabitipySensorEntityDescription, ...] = ( @@ -129,6 +131,25 @@ SENSOR_DESCRIPTIONS: tuple[HabitipySensorEntityDescription, ...] = ( device_class=SensorDeviceClass.ENUM, options=["warrior", "healer", "wizard", "rogue"], ), + HabitipySensorEntityDescription( + key=HabitipySensorEntity.GEMS, + translation_key=HabitipySensorEntity.GEMS, + value_fn=lambda user: user.get("balance", 0) * 4, + suggested_display_precision=0, + native_unit_of_measurement="gems", + ), + HabitipySensorEntityDescription( + key=HabitipySensorEntity.TRINKETS, + translation_key=HabitipySensorEntity.TRINKETS, + value_fn=( + lambda user: user.get("purchased", {}) + .get("plan", {}) + .get("consecutive", {}) + .get("trinkets", 0) + ), + suggested_display_precision=0, + native_unit_of_measurement="⧖", + ), ) diff --git a/homeassistant/components/habitica/strings.json b/homeassistant/components/habitica/strings.json index c9f0829215e..8d435a5e108 100644 --- a/homeassistant/components/habitica/strings.json +++ b/homeassistant/components/habitica/strings.json @@ -76,6 +76,12 @@ "gold": { "name": "Gold" }, + "gems": { + "name": "Gems" + }, + "trinkets": { + "name": "Mystic hourglasses" + }, "class": { "name": "Class", "state": {