add sleep_stage
This commit is contained in:
parent
f30a3bdb89
commit
2f47b68778
29
main.py
29
main.py
@ -287,6 +287,33 @@ class GadgetbridgeMQTT:
|
||||
except Exception as e:
|
||||
logger.debug(f"Sleep query failed: {e}")
|
||||
|
||||
# Sleep Stage Data (current stage)
|
||||
try:
|
||||
cursor.execute(
|
||||
"""
|
||||
SELECT STAGE, TIMESTAMP
|
||||
FROM XIAOMI_SLEEP_STAGE_SAMPLE
|
||||
WHERE DEVICE_ID = ?
|
||||
ORDER BY TIMESTAMP DESC
|
||||
LIMIT 1
|
||||
""",
|
||||
(self.device_id,)
|
||||
)
|
||||
row = cursor.fetchone()
|
||||
if row:
|
||||
stage_code, stage_timestamp = row
|
||||
|
||||
stage_names = {
|
||||
0: "awake", 1: "light_sleep", 2: "deep_sleep",
|
||||
3: "rem_sleep", 4: "deep_sleep_v2", 5: "light_sleep_v2"
|
||||
}
|
||||
|
||||
data["sleep_stage"] = stage_names.get(stage_code, f"unknown_{stage_code}")
|
||||
data["sleep_stage_code"] = stage_code
|
||||
|
||||
except Exception as e:
|
||||
logger.debug(f"Sleep stage query failed: {e}")
|
||||
|
||||
# Weight (not device-specific, from scale)
|
||||
try:
|
||||
cursor.execute("SELECT WEIGHT_KG FROM MI_SCALE_WEIGHT_SAMPLE ORDER BY TIMESTAMP DESC LIMIT 1")
|
||||
@ -325,6 +352,8 @@ class GadgetbridgeMQTT:
|
||||
("calories", "Calories", "kcal", "mdi:fire", "total_increasing", None),
|
||||
("sleep_duration", "Sleep Duration", "h", "mdi:sleep", "measurement", None),
|
||||
("is_awake", "Is Awake", None, "mdi:power-sleep", None, None),
|
||||
("sleep_stage", "Sleep Stage", None, "mdi:sleep-cycle", "measurement", None),
|
||||
("sleep_stage_code", "Sleep Stage Code", None, "mdi:numeric", "measurement", None),
|
||||
("weight", "Weight", "kg", "mdi:scale-bathroom", "measurement", None),
|
||||
("server_time", "Last Update", None, "mdi:clock-outline", None, "timestamp"),
|
||||
]
|
||||
|
||||
Loading…
Reference in New Issue
Block a user