#!/usr/bin/env python3 import requests import urllib3 import datetime import csv urllib3.disable_warnings() import os HUE_IP = "10.0.0.134" # replace with your bridge IP HUE_APP_KEY = "${hue_app_key}" # local only HUE_DEVICE_ID = "31f58786-3242-4e88-b9ce-23f44ba27bbe" TEMPERATURE_LOG_DIR = "/opt/bootshorn/temperatures" response = requests.get( f"https://{HUE_IP}/clip/v2/resource/temperature", headers={"hue-application-key": HUE_APP_KEY}, verify=False, ) response.raise_for_status() data = response.json() for item in data["data"]: if item["id"] == HUE_DEVICE_ID: temperature = item["temperature"]["temperature"] temperature_date_string = item["temperature"]["temperature_report"]["changed"] temperature_date = datetime.datetime.fromisoformat(temperature_date_string).astimezone(datetime.timezone.utc) break print(f"@{temperature_date}: {temperature}°C") filename = temperature_date.strftime("%Y-%m-%d_00-00-00.000000%z") + ".log" logpath = os.path.join(TEMPERATURE_LOG_DIR, filename) with open(logpath, "a+", newline="") as logfile: writer = csv.writer(logfile) writer.writerow([temperature_date.strftime('%Y-%m-%d_%H-%M-%S.%f%z'), temperature])