diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a14702c --- /dev/null +++ b/.gitignore @@ -0,0 +1,34 @@ +# dependencies (bun install) +node_modules + +# output +out +dist +*.tgz + +# code coverage +coverage +*.lcov + +# logs +logs +_.log +report.[0-9]_.[0-9]_.[0-9]_.[0-9]_.json + +# dotenv environment variable files +.env +.env.development.local +.env.test.local +.env.production.local +.env.local + +# caches +.eslintcache +.cache +*.tsbuildinfo + +# IntelliJ based IDEs +.idea + +# Finder (MacOS) folder config +.DS_Store diff --git a/bun.lock b/bun.lock new file mode 100644 index 0000000..48138ba --- /dev/null +++ b/bun.lock @@ -0,0 +1,30 @@ +{ + "lockfileVersion": 1, + "workspaces": { + "": { + "name": "abissinskiy", + "dependencies": { + "home-assistant-js-websocket": "^9.5.0", + }, + "devDependencies": { + "@types/bun": "latest", + }, + "peerDependencies": { + "typescript": "^5", + }, + }, + }, + "packages": { + "@types/bun": ["@types/bun@1.2.13", "", { "dependencies": { "bun-types": "1.2.13" } }, "sha512-u6vXep/i9VBxoJl3GjZsl/BFIsvML8DfVDO0RYLEwtSZSp981kEO1V5NwRcO1CPJ7AmvpbnDCiMKo3JvbDEjAg=="], + + "@types/node": ["@types/node@22.15.17", "", { "dependencies": { "undici-types": "~6.21.0" } }, "sha512-wIX2aSZL5FE+MR0JlvF87BNVrtFWf6AE6rxSE9X7OwnVvoyCQjpzSRJ+M87se/4QCkCiebQAqrJ0y6fwIyi7nw=="], + + "bun-types": ["bun-types@1.2.13", "", { "dependencies": { "@types/node": "*" } }, "sha512-rRjA1T6n7wto4gxhAO/ErZEtOXyEZEmnIHQfl0Dt1QQSB4QV0iP6BZ9/YB5fZaHFQ2dwHFrmPaRQ9GGMX01k9Q=="], + + "home-assistant-js-websocket": ["home-assistant-js-websocket@9.5.0", "", {}, "sha512-gCBX0ulIPW3o5EhYxyNKgztBwNIs7u4hypZ+rcWir65wjLKL3b5uDx1jzU7RceyuANxvVKwBVLNujBeFohjnUw=="], + + "typescript": ["typescript@5.8.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ=="], + + "undici-types": ["undici-types@6.21.0", "", {}, "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ=="], + } +} diff --git a/entities.json b/entities.json new file mode 100644 index 0000000..d7090f3 --- /dev/null +++ b/entities.json @@ -0,0 +1,3794 @@ +{ + "update.home_assistant_supervisor_update": { + "entity_id": "update.home_assistant_supervisor_update", + "state": "off", + "attributes": { + "auto_update": true, + "display_precision": 0, + "installed_version": "2025.05.0", + "in_progress": false, + "latest_version": "2025.05.0", + "release_summary": null, + "release_url": "https://github.com/home-assistant/supervisor/releases/tag/2025.05.0", + "skipped_version": null, + "title": "Home Assistant Supervisor", + "update_percentage": null, + "entity_picture": "https://brands.home-assistant.io/hassio/icon.png", + "friendly_name": "Home Assistant Supervisor Update", + "supported_features": 1 + }, + "context": { + "id": "01JV2T7CAW09Q4E2ESTKAR1R8H", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-09T22:31:02.028Z", + "last_updated": "2025-05-12T17:56:01.500Z" + }, + "update.home_assistant_core_update": { + "entity_id": "update.home_assistant_core_update", + "state": "off", + "attributes": { + "auto_update": false, + "display_precision": 0, + "installed_version": "2025.5.1", + "in_progress": false, + "latest_version": "2025.5.1", + "release_summary": null, + "release_url": "https://www.home-assistant.io/latest-release-notes/", + "skipped_version": null, + "title": "Home Assistant Core", + "update_percentage": null, + "entity_picture": "https://brands.home-assistant.io/homeassistant/icon.png", + "friendly_name": "Home Assistant Core Update", + "supported_features": 11 + }, + "context": { + "id": "01JTVJRS4C2VA8B3QZXF9CHAN2", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-09T22:31:02.028Z", + "last_updated": "2025-05-09T22:31:02.028Z" + }, + "update.matter_server_update": { + "entity_id": "update.matter_server_update", + "state": "off", + "attributes": { + "auto_update": true, + "display_precision": 0, + "installed_version": "7.0.0", + "in_progress": false, + "latest_version": "7.0.0", + "release_summary": null, + "release_url": null, + "skipped_version": null, + "title": "Matter Server", + "update_percentage": null, + "entity_picture": "/api/hassio/addons/core_matter_server/icon", + "friendly_name": "Matter Server Update", + "supported_features": 25 + }, + "context": { + "id": "01JTVTS3Q6Z7PCJ7MGYSBWDJ4Q", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-09T22:31:02.029Z", + "last_updated": "2025-05-10T00:51:01.478Z" + }, + "update.openthread_border_router_update": { + "entity_id": "update.openthread_border_router_update", + "state": "off", + "attributes": { + "auto_update": true, + "display_precision": 0, + "installed_version": "2.13.0", + "in_progress": false, + "latest_version": "2.13.0", + "release_summary": null, + "release_url": null, + "skipped_version": null, + "title": "OpenThread Border Router", + "update_percentage": null, + "entity_picture": "/api/hassio/addons/core_openthread_border_router/icon", + "friendly_name": "OpenThread Border Router Update", + "supported_features": 25 + }, + "context": { + "id": "01JTVTS3Q75VCQCCEW343Q41Y7", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-09T22:31:02.029Z", + "last_updated": "2025-05-10T00:51:01.479Z" + }, + "update.piper_update": { + "entity_id": "update.piper_update", + "state": "off", + "attributes": { + "auto_update": true, + "display_precision": 0, + "installed_version": "1.5.2", + "in_progress": false, + "latest_version": "1.5.2", + "release_summary": null, + "release_url": null, + "skipped_version": null, + "title": "Piper", + "update_percentage": null, + "entity_picture": "/api/hassio/addons/core_piper/icon", + "friendly_name": "Piper Update", + "supported_features": 25 + }, + "context": { + "id": "01JTVJRS4EER6YKGJH474EDKRQ", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-09T22:31:02.030Z", + "last_updated": "2025-05-09T22:31:02.030Z" + }, + "update.openwakeword_update": { + "entity_id": "update.openwakeword_update", + "state": "off", + "attributes": { + "auto_update": true, + "display_precision": 0, + "installed_version": "1.10.0", + "in_progress": false, + "latest_version": "1.10.0", + "release_summary": null, + "release_url": null, + "skipped_version": null, + "title": "openWakeWord", + "update_percentage": null, + "friendly_name": "openWakeWord Update", + "supported_features": 25 + }, + "context": { + "id": "01JTVJRS4E3JR0N23021K6ZYR7", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-09T22:31:02.030Z", + "last_updated": "2025-05-09T22:31:02.030Z" + }, + "update.file_editor_update": { + "entity_id": "update.file_editor_update", + "state": "off", + "attributes": { + "auto_update": true, + "display_precision": 0, + "installed_version": "5.8.0", + "in_progress": false, + "latest_version": "5.8.0", + "release_summary": null, + "release_url": null, + "skipped_version": null, + "title": "File editor", + "update_percentage": null, + "entity_picture": "/api/hassio/addons/core_configurator/icon", + "friendly_name": "File editor Update", + "supported_features": 25 + }, + "context": { + "id": "01JTVJRS4EBQC3161H55M82YMN", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-09T22:31:02.030Z", + "last_updated": "2025-05-09T22:31:02.030Z" + }, + "update.terminal_ssh_update": { + "entity_id": "update.terminal_ssh_update", + "state": "off", + "attributes": { + "auto_update": false, + "display_precision": 0, + "installed_version": "9.17.0", + "in_progress": false, + "latest_version": "9.17.0", + "release_summary": null, + "release_url": null, + "skipped_version": null, + "title": "Terminal & SSH", + "update_percentage": null, + "entity_picture": "/api/hassio/addons/core_ssh/icon", + "friendly_name": "Terminal & SSH Update", + "supported_features": 25 + }, + "context": { + "id": "01JTVJRS4FPKNDX0TDR5HF0YXD", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-09T22:31:02.031Z", + "last_updated": "2025-05-09T22:31:02.031Z" + }, + "update.get_hacs_update": { + "entity_id": "update.get_hacs_update", + "state": "off", + "attributes": { + "auto_update": false, + "display_precision": 0, + "installed_version": "1.3.1", + "in_progress": false, + "latest_version": "1.3.1", + "release_summary": null, + "release_url": null, + "skipped_version": null, + "title": "Get HACS", + "update_percentage": null, + "entity_picture": "/api/hassio/addons/cb646a50_get/icon", + "friendly_name": "Get HACS Update", + "supported_features": 25 + }, + "context": { + "id": "01JTVJRS4GTWW9HKR0FE8V87ZG", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-09T22:31:02.032Z", + "last_updated": "2025-05-09T22:31:02.032Z" + }, + "update.music_assistant_server_beta_update": { + "entity_id": "update.music_assistant_server_beta_update", + "state": "off", + "attributes": { + "auto_update": true, + "display_precision": 0, + "installed_version": "2.6.0b6", + "in_progress": false, + "latest_version": "2.6.0b6", + "release_summary": null, + "release_url": null, + "skipped_version": null, + "title": "Music Assistant Server (beta)", + "update_percentage": null, + "entity_picture": "/api/hassio/addons/d5369777_music_assistant_beta/icon", + "friendly_name": "Music Assistant Server (beta) Update", + "supported_features": 25 + }, + "context": { + "id": "01JTVJRS4GHCM5MD2GDDAQ7H2Y", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-09T22:31:02.032Z", + "last_updated": "2025-05-09T22:31:02.032Z" + }, + "update.home_assistant_operating_system_update": { + "entity_id": "update.home_assistant_operating_system_update", + "state": "off", + "attributes": { + "auto_update": false, + "display_precision": 0, + "installed_version": "15.2", + "in_progress": false, + "latest_version": "15.2", + "release_summary": null, + "release_url": "https://github.com/home-assistant/operating-system/releases/tag/15.2", + "skipped_version": null, + "title": "Home Assistant Operating System", + "update_percentage": null, + "entity_picture": "https://brands.home-assistant.io/homeassistant/icon.png", + "friendly_name": "Home Assistant Operating System Update", + "supported_features": 11 + }, + "context": { + "id": "01JTVJRS4GMRPJVPANQS68ZW00", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-09T22:31:02.032Z", + "last_updated": "2025-05-09T22:31:02.032Z" + }, + "conversation.home_assistant": { + "entity_id": "conversation.home_assistant", + "state": "2025-05-09T01:47:49.868980+00:00", + "attributes": { + "friendly_name": "Home Assistant", + "supported_features": 1 + }, + "context": { + "id": "01JTVJS2FHFN4G4AAHQQMS7VA8", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-09T22:31:11.601Z", + "last_updated": "2025-05-09T22:31:11.601Z" + }, + "sensor.backup_backup_manager_state": { + "entity_id": "sensor.backup_backup_manager_state", + "state": "idle", + "attributes": { + "options": [ + "idle", + "create_backup", + "blocked", + "receive_backup", + "restore_backup" + ], + "device_class": "enum", + "friendly_name": "Backup Backup Manager state" + }, + "context": { + "id": "01JTVJTH020Y9KTSE4WRSDTQWC", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-09T22:31:59.234Z", + "last_updated": "2025-05-09T22:31:59.234Z" + }, + "sensor.backup_next_scheduled_automatic_backup": { + "entity_id": "sensor.backup_next_scheduled_automatic_backup", + "state": "unknown", + "attributes": { + "device_class": "timestamp", + "friendly_name": "Backup Next scheduled automatic backup" + }, + "context": { + "id": "01JTVJS3MJ26JHYN6K05H0PV4E", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-09T22:31:12.786Z", + "last_updated": "2025-05-09T22:31:12.786Z" + }, + "sensor.backup_last_successful_automatic_backup": { + "entity_id": "sensor.backup_last_successful_automatic_backup", + "state": "unknown", + "attributes": { + "device_class": "timestamp", + "friendly_name": "Backup Last successful automatic backup" + }, + "context": { + "id": "01JTVJS3MJTRY3NJ9E2072RYVJ", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-09T22:31:12.786Z", + "last_updated": "2025-05-09T22:31:12.786Z" + }, + "input_select.material_you_scheme_ac38f2590bf14c4d9e1944851b25d848": { + "entity_id": "input_select.material_you_scheme_ac38f2590bf14c4d9e1944851b25d848", + "state": "monochrome", + "attributes": { + "options": [ + "tonalspot", + "content", + "fidelity", + "expressive", + "fruitsalad", + "rainbow", + "vibrant", + "neutral", + "monochrome", + " " + ], + "editable": true, + "icon": "mdi:palette-advanced", + "friendly_name": "Material You Scheme Name Seth" + }, + "context": { + "id": "01JTVJSBF2Y0CZCG24009MDNK3", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-09T22:31:20.802Z", + "last_updated": "2025-05-09T22:31:20.802Z" + }, + "person.seth": { + "entity_id": "person.seth", + "state": "home", + "attributes": { + "editable": true, + "id": "seth", + "device_trackers": [ + "device_tracker.pixel_9_pro_xl" + ], + "latitude": 36.061263, + "longitude": -79.4886861, + "gps_accuracy": 0, + "source": "device_tracker.pixel_9_pro_xl", + "user_id": "ac38f2590bf14c4d9e1944851b25d848", + "friendly_name": "Seth" + }, + "context": { + "id": "01JV450Z7ZB283KHXHZ73NWVG7", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-13T00:41:21.586Z", + "last_updated": "2025-05-13T06:24:00.255Z" + }, + "person.rebecca": { + "entity_id": "person.rebecca", + "state": "home", + "attributes": { + "editable": true, + "id": "rebecca", + "device_trackers": [ + "device_tracker.iphone" + ], + "latitude": 36.06116949595703, + "longitude": -79.48886578125264, + "gps_accuracy": 8, + "source": "device_tracker.iphone", + "user_id": "bf4581f0359c4a96b055290bb3063c31", + "friendly_name": "Rebecca" + }, + "context": { + "id": "01JV2HAWY0BX2V41V6TBM9GHGE", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-09T22:31:20.803Z", + "last_updated": "2025-05-12T15:20:39.616Z" + }, + "person.easton": { + "entity_id": "person.easton", + "state": "not_home", + "attributes": { + "editable": true, + "id": "easton", + "device_trackers": [ + "device_tracker.pixel_6_pro" + ], + "latitude": 32.8970331, + "longitude": -97.3520508, + "gps_accuracy": 14, + "source": "device_tracker.pixel_6_pro", + "user_id": "651a82dde43449b98a1ca0349404c3e5", + "friendly_name": "Easton" + }, + "context": { + "id": "01JTVJTFT9XXJYRTZFYDBQT67M", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-09T22:31:20.804Z", + "last_updated": "2025-05-09T22:31:58.025Z" + }, + "input_number.material_you_contrast_ac38f2590bf14c4d9e1944851b25d848": { + "entity_id": "input_number.material_you_contrast_ac38f2590bf14c4d9e1944851b25d848", + "state": "1.0", + "attributes": { + "initial": null, + "editable": true, + "min": -1, + "max": 1, + "step": 0.1, + "mode": "slider", + "icon": "mdi:contrast-circle", + "friendly_name": "Material You Contrast Level Seth" + }, + "context": { + "id": "01JTVWNKNRCF6RH0Z4H09EBVKM", + "parent_id": null, + "user_id": "ac38f2590bf14c4d9e1944851b25d848" + }, + "last_changed": "2025-05-10T01:24:03.897Z", + "last_updated": "2025-05-10T01:24:03.897Z" + }, + "zone.home_away_from_home": { + "entity_id": "zone.home_away_from_home", + "state": "0", + "attributes": { + "latitude": 32.89700660735692, + "longitude": -97.35209056743089, + "radius": 14, + "passive": false, + "persons": [], + "editable": true, + "icon": "mdi:home", + "friendly_name": "Home away from home" + }, + "context": { + "id": "01JTVV1N7CKB9GRSXHWKVA8H7W", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-09T22:31:20.805Z", + "last_updated": "2025-05-10T00:55:41.548Z" + }, + "input_boolean.material_you_styles_ac38f2590bf14c4d9e1944851b25d848": { + "entity_id": "input_boolean.material_you_styles_ac38f2590bf14c4d9e1944851b25d848", + "state": "on", + "attributes": { + "editable": true, + "icon": "mdi:material-design", + "friendly_name": "Material You Style Upgrades Seth" + }, + "context": { + "id": "01JTVVPTY667QGYHY653HCKZPS", + "parent_id": null, + "user_id": "ac38f2590bf14c4d9e1944851b25d848" + }, + "last_changed": "2025-05-10T01:07:15.527Z", + "last_updated": "2025-05-10T01:07:15.527Z" + }, + "zone.home": { + "entity_id": "zone.home", + "state": "2", + "attributes": { + "latitude": 36.06117497080855, + "longitude": -79.4888560473919, + "radius": 21, + "passive": false, + "persons": [ + "person.rebecca", + "person.seth" + ], + "editable": true, + "icon": "mdi:home", + "friendly_name": "Home" + }, + "context": { + "id": "01JV3HDJDKPPZ5XNKNJZRJEJ96", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-13T00:41:21.587Z", + "last_updated": "2025-05-13T00:41:21.587Z" + }, + "sun.sun": { + "entity_id": "sun.sun", + "state": "below_horizon", + "attributes": { + "next_dawn": "2025-05-13T09:44:41.345747+00:00", + "next_dusk": "2025-05-14T00:44:29.836109+00:00", + "next_midnight": "2025-05-14T05:14:18+00:00", + "next_noon": "2025-05-13T17:14:18+00:00", + "next_rising": "2025-05-13T10:13:38.841631+00:00", + "next_setting": "2025-05-14T00:15:27.072615+00:00", + "elevation": -33.65, + "azimuth": 17.15, + "rising": true, + "friendly_name": "Sun" + }, + "context": { + "id": "01JV44F6MWDF2PVAZ67HJ0R46X", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-13T00:18:37.777Z", + "last_updated": "2025-05-13T06:14:18.012Z" + }, + "sensor.sun_next_dawn": { + "entity_id": "sensor.sun_next_dawn", + "state": "2025-05-13T09:44:41+00:00", + "attributes": { + "device_class": "timestamp", + "friendly_name": "Sun Next dawn" + }, + "context": { + "id": "01JV1Y5D03140Q1X2DVJYPHGM4", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-12T09:45:36.515Z", + "last_updated": "2025-05-12T09:45:36.515Z" + }, + "sensor.sun_next_dusk": { + "entity_id": "sensor.sun_next_dusk", + "state": "2025-05-14T00:44:29+00:00", + "attributes": { + "device_class": "timestamp", + "friendly_name": "Sun Next dusk" + }, + "context": { + "id": "01JV3HHNGH0V9AJAR53YK06C1V", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-13T00:43:35.825Z", + "last_updated": "2025-05-13T00:43:35.825Z" + }, + "sensor.sun_next_midnight": { + "entity_id": "sensor.sun_next_midnight", + "state": "2025-05-14T05:14:18+00:00", + "attributes": { + "device_class": "timestamp", + "friendly_name": "Sun Next midnight" + }, + "context": { + "id": "01JV411B0RVJRZ6NYGNCFTXWMB", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-13T05:14:18.008Z", + "last_updated": "2025-05-13T05:14:18.008Z" + }, + "sensor.sun_next_noon": { + "entity_id": "sensor.sun_next_noon", + "state": "2025-05-13T17:14:18+00:00", + "attributes": { + "device_class": "timestamp", + "friendly_name": "Sun Next noon" + }, + "context": { + "id": "01JV2QV0G11PNZZ9309JZ9XXZT", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-12T17:14:19.009Z", + "last_updated": "2025-05-12T17:14:19.009Z" + }, + "sensor.sun_next_rising": { + "entity_id": "sensor.sun_next_rising", + "state": "2025-05-13T10:13:38+00:00", + "attributes": { + "device_class": "timestamp", + "friendly_name": "Sun Next rising" + }, + "context": { + "id": "01JV1ZT94JGVKS3NXFWNQNSJNQ", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-12T10:14:29.266Z", + "last_updated": "2025-05-12T10:14:29.266Z" + }, + "sensor.sun_next_setting": { + "entity_id": "sensor.sun_next_setting", + "state": "2025-05-14T00:15:27+00:00", + "attributes": { + "device_class": "timestamp", + "friendly_name": "Sun Next setting" + }, + "context": { + "id": "01JV3FWM6HRPDXNAC02V3X25JV", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-13T00:14:37.777Z", + "last_updated": "2025-05-13T00:14:37.777Z" + }, + "input_text.material_you_base_color_ac38f2590bf14c4d9e1944851b25d848": { + "entity_id": "input_text.material_you_base_color_ac38f2590bf14c4d9e1944851b25d848", + "state": "#000000", + "attributes": { + "editable": true, + "min": 0, + "max": 9, + "pattern": null, + "mode": "text", + "icon": "mdi:palette", + "friendly_name": "Material You Base Color Seth" + }, + "context": { + "id": "01JTVJT5SWEY9KEGG7BRZXHGNN", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-09T22:31:47.772Z", + "last_updated": "2025-05-09T22:31:47.772Z" + }, + "fan.ceiling": { + "entity_id": "fan.ceiling", + "state": "on", + "attributes": { + "friendly_name": "Ceiling Fan", + "supported_features": 48 + }, + "context": { + "id": "01JV1909YSZ3JKFHRR5HX2P5G4", + "parent_id": null, + "user_id": "651a82dde43449b98a1ca0349404c3e5" + }, + "last_changed": "2025-05-12T03:35:50.339Z", + "last_updated": "2025-05-12T03:35:50.339Z" + }, + "sensor.electricity_maps_co2_intensity": { + "entity_id": "sensor.electricity_maps_co2_intensity", + "state": "203.0", + "attributes": { + "state_class": "measurement", + "country_code": "US-CAR-DUK", + "unit_of_measurement": "gCO2eq/kWh", + "attribution": "Data provided by Electricity Maps", + "friendly_name": "Electricity Maps CO2 intensity" + }, + "context": { + "id": "01JV43RVFTCJ9BS8QH37X0FC7A", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-13T06:02:05.690Z", + "last_updated": "2025-05-13T06:02:05.690Z" + }, + "sensor.electricity_maps_grid_fossil_fuel_percentage": { + "entity_id": "sensor.electricity_maps_grid_fossil_fuel_percentage", + "state": "27.73", + "attributes": { + "state_class": "measurement", + "country_code": "US-CAR-DUK", + "unit_of_measurement": "%", + "attribution": "Data provided by Electricity Maps", + "friendly_name": "Electricity Maps Grid fossil fuel percentage" + }, + "context": { + "id": "01JV43RVFTW53AW6YV7ZDEWEBB", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-13T06:02:05.690Z", + "last_updated": "2025-05-13T06:02:05.690Z" + }, + "binary_sensor.pixel_9_pro_xl_high_accuracy_mode": { + "entity_id": "binary_sensor.pixel_9_pro_xl_high_accuracy_mode", + "state": "on", + "attributes": { + "icon": "mdi:crosshairs-gps", + "friendly_name": "Pixel 9 Pro XL High accuracy mode" + }, + "context": { + "id": "01JV3HDJD58GY18201J45SJ4JS", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-13T00:41:21.573Z", + "last_updated": "2025-05-13T00:41:21.573Z" + }, + "device_tracker.pixel_9_pro_xl": { + "entity_id": "device_tracker.pixel_9_pro_xl", + "state": "home", + "attributes": { + "source_type": "gps", + "latitude": 36.061263, + "longitude": -79.4886861, + "gps_accuracy": 0, + "altitude": 154, + "course": 0, + "speed": 0, + "vertical_accuracy": 0, + "friendly_name": "Pixel 9 Pro XL" + }, + "context": { + "id": "01JV450Z7Y8R1MYTS1NCE6JJGC", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-13T06:24:00.254Z", + "last_updated": "2025-05-13T06:24:00.254Z" + }, + "sensor.pixel_9_pro_xl_accent_color": { + "entity_id": "sensor.pixel_9_pro_xl_accent_color", + "state": "#5E5E5E", + "attributes": { + "rgb_color": [ + 94, + 94, + 94 + ], + "icon": "mdi:palette", + "friendly_name": "Pixel 9 Pro XL Accent color" + }, + "context": { + "id": "01JV3HDJDEXZ61XNV2QVPG05YT", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-13T00:41:21.582Z", + "last_updated": "2025-05-13T00:41:21.582Z" + }, + "sensor.pixel_9_pro_xl_geocoded_location": { + "entity_id": "sensor.pixel_9_pro_xl_geocoded_location", + "state": "191 Lodgepole Ln, Burlington, NC 27215, USA", + "attributes": { + "administrative_area": "North Carolina", + "country": "United States", + "iso_country_code": "US", + "locality": "Burlington", + "location": [ + 36.0611746, + -79.4888476 + ], + "name": "191", + "phone": "null", + "postal_code": "27215", + "premises": "null", + "sub_administrative_area": "Alamance County", + "sub_locality": "null", + "sub_thoroughfare": "191", + "thoroughfare": "Lodgepole Lane", + "url": "null", + "icon": "mdi:map", + "friendly_name": "Pixel 9 Pro XL Geocoded location" + }, + "context": { + "id": "01JV3HDJDFZ1CX52QD8TWZ0NPB", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-13T00:41:21.583Z", + "last_updated": "2025-05-13T00:41:21.583Z" + }, + "sensor.pixel_9_pro_xl_high_accuracy_update_interval": { + "entity_id": "sensor.pixel_9_pro_xl_high_accuracy_update_interval", + "state": "5", + "attributes": { + "unit_of_measurement": "seconds", + "icon": "mdi:timer", + "friendly_name": "Pixel 9 Pro XL High accuracy update interval" + }, + "context": { + "id": "01JV3HDJDGPWJMJ330457WYXDK", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-13T00:41:21.584Z", + "last_updated": "2025-05-13T00:41:21.584Z" + }, + "binary_sensor.iphone_focus": { + "entity_id": "binary_sensor.iphone_focus", + "state": "off", + "attributes": { + "icon": "mdi:moon-waning-crescent", + "friendly_name": "iPhone Focus" + }, + "context": { + "id": "01JTVJTEEXQ2C2F1GE789X3NQA", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-09T22:31:56.637Z", + "last_updated": "2025-05-09T22:31:56.637Z" + }, + "device_tracker.iphone": { + "entity_id": "device_tracker.iphone", + "state": "home", + "attributes": { + "source_type": "gps", + "battery_level": 100, + "latitude": 36.06116949595703, + "longitude": -79.48886578125264, + "gps_accuracy": 8, + "altitude": 187.40776901245118, + "vertical_accuracy": 30, + "friendly_name": "iPhone" + }, + "context": { + "id": "01JV2HAXP0B9W8F7FPB3VXDXMP", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-12T15:20:40.384Z", + "last_updated": "2025-05-12T15:20:40.384Z" + }, + "sensor.iphone_activity": { + "entity_id": "sensor.iphone_activity", + "state": "Automotive", + "attributes": { + "Confidence": "High", + "Types": [ + "Automotive" + ], + "icon": "mdi:car", + "friendly_name": "iPhone Activity" + }, + "context": { + "id": "01JV3NJNJDEHN0G9CX15B9XM4P", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-13T01:54:02.957Z", + "last_updated": "2025-05-13T01:54:02.957Z" + }, + "sensor.iphone_distance": { + "entity_id": "sensor.iphone_distance", + "state": "893", + "attributes": { + "unit_of_measurement": "m", + "icon": "mdi:hiking", + "friendly_name": "iPhone Distance" + }, + "context": { + "id": "01JV3NJNJE600TNYPTZ5ZKQECM", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-13T01:54:02.958Z", + "last_updated": "2025-05-13T01:54:02.958Z" + }, + "sensor.iphone_battery_level": { + "entity_id": "sensor.iphone_battery_level", + "state": "55", + "attributes": { + "unit_of_measurement": "%", + "device_class": "battery", + "icon": "mdi:battery-50", + "friendly_name": "iPhone Battery Level" + }, + "context": { + "id": "01JV3NJNJHC2TG4Z61T6XWXYBD", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-13T01:54:02.961Z", + "last_updated": "2025-05-13T01:54:02.961Z" + }, + "sensor.iphone_battery_state": { + "entity_id": "sensor.iphone_battery_state", + "state": "Not Charging", + "attributes": { + "Low Power Mode": false, + "icon": "mdi:battery-50", + "friendly_name": "iPhone Battery State" + }, + "context": { + "id": "01JV3NJNJJRDKH8V1959MZNBNP", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-12T15:20:39.624Z", + "last_updated": "2025-05-13T01:54:02.962Z" + }, + "sensor.iphone_floors_descended": { + "entity_id": "sensor.iphone_floors_descended", + "state": "2", + "attributes": { + "unit_of_measurement": "floors", + "icon": "mdi:stairs-down", + "friendly_name": "iPhone Floors Descended" + }, + "context": { + "id": "01JV3NJNJF0PF4YY7N9NEJB1Z7", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-13T01:54:02.959Z", + "last_updated": "2025-05-13T01:54:02.959Z" + }, + "sensor.iphone_floors_ascended": { + "entity_id": "sensor.iphone_floors_ascended", + "state": "2", + "attributes": { + "unit_of_measurement": "floors", + "icon": "mdi:stairs-up", + "friendly_name": "iPhone Floors Ascended" + }, + "context": { + "id": "01JV3NJNJF0TJ5YKZ3RMXC4T66", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-13T01:54:02.959Z", + "last_updated": "2025-05-13T01:54:02.959Z" + }, + "sensor.iphone_storage": { + "entity_id": "sensor.iphone_storage", + "state": "45.30", + "attributes": { + "Available": "42.71 GB", + "Available (Important)": "64.19 GB", + "Available (Opportunistic)": "57.72 GB", + "Total": "127.42 GB", + "unit_of_measurement": "% available", + "icon": "mdi:database", + "friendly_name": "iPhone Storage" + }, + "context": { + "id": "01JV3P888ZGQKYFHBJZKESJ9BF", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-13T01:54:02.962Z", + "last_updated": "2025-05-13T02:05:50.239Z" + }, + "sensor.iphone_ssid": { + "entity_id": "sensor.iphone_ssid", + "state": "Not Connected", + "attributes": { + "icon": "mdi:wifi-off", + "friendly_name": "iPhone SSID" + }, + "context": { + "id": "01JTVQ83W2GX4KRPCBX7MWN2QT", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-09T23:49:18.850Z", + "last_updated": "2025-05-09T23:49:18.850Z" + }, + "sensor.iphone_steps": { + "entity_id": "sensor.iphone_steps", + "state": "1301", + "attributes": { + "unit_of_measurement": "steps", + "icon": "mdi:walk", + "friendly_name": "iPhone Steps" + }, + "context": { + "id": "01JV3NJNJGEC5HTBJNX57BMKVK", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-13T01:54:02.960Z", + "last_updated": "2025-05-13T01:54:02.960Z" + }, + "sensor.iphone_average_active_pace": { + "entity_id": "sensor.iphone_average_active_pace", + "state": "1", + "attributes": { + "unit_of_measurement": "m/s", + "icon": "mdi:speedometer", + "friendly_name": "iPhone Average Active Pace" + }, + "context": { + "id": "01JV3EYDWGV6EBMXVB101ETWDG", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-12T23:58:08.272Z", + "last_updated": "2025-05-12T23:58:08.272Z" + }, + "sensor.iphone_bssid": { + "entity_id": "sensor.iphone_bssid", + "state": "Not Connected", + "attributes": { + "icon": "mdi:wifi-off", + "friendly_name": "iPhone BSSID" + }, + "context": { + "id": "01JTVQ83W61F7XAZZZG4R3EM53", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-09T23:49:18.854Z", + "last_updated": "2025-05-09T23:49:18.854Z" + }, + "sensor.iphone_connection_type": { + "entity_id": "sensor.iphone_connection_type", + "state": "Wi-Fi", + "attributes": { + "icon": "mdi:wifi", + "friendly_name": "iPhone Connection Type" + }, + "context": { + "id": "01JV3BN3XBGCB2KZASN5TA0TYD", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-12T23:00:37.419Z", + "last_updated": "2025-05-12T23:00:37.419Z" + }, + "sensor.iphone_sim_2": { + "entity_id": "sensor.iphone_sim_2", + "state": "--", + "attributes": { + "Allows VoIP": true, + "Carrier ID": "0000000100000002", + "Carrier Name": "--", + "ISO Country Code": "--", + "Mobile Country Code": "65535", + "Mobile Network Code": "65535", + "icon": "mdi:sim", + "friendly_name": "iPhone SIM 2" + }, + "context": { + "id": "01JTVJTEF5H6S4QZ6HX75RAA40", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-09T22:31:56.645Z", + "last_updated": "2025-05-09T22:31:56.645Z" + }, + "sensor.iphone_sim_1": { + "entity_id": "sensor.iphone_sim_1", + "state": "--", + "attributes": { + "Allows VoIP": true, + "Carrier ID": "0000000100000001", + "Carrier Name": "--", + "Current Radio Technology": "Long-Term Evolution (LTE)", + "ISO Country Code": "--", + "Mobile Country Code": "65535", + "Mobile Network Code": "65535", + "icon": "mdi:sim", + "friendly_name": "iPhone SIM 1" + }, + "context": { + "id": "01JV3G9PCP5BBCX6PPYDNDCBAH", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-09T22:31:56.646Z", + "last_updated": "2025-05-13T00:21:46.006Z" + }, + "sensor.iphone_geocoded_location": { + "entity_id": "sensor.iphone_geocoded_location", + "state": "191 Lodgepole Ln\nBurlington NC 27215\nUnited States", + "attributes": { + "Administrative Area": "NC", + "Areas Of Interest": "N/A", + "Country": "United States", + "Inland Water": "N/A", + "ISO Country Code": "US", + "Locality": "Burlington", + "Location": [ + 36.06116949595703, + -79.48886578125264 + ], + "Name": "191 Lodgepole Ln", + "Ocean": "N/A", + "Postal Code": "27215", + "Sub Administrative Area": "Alamance County", + "Sub Locality": "N/A", + "Sub Thoroughfare": "191", + "Thoroughfare": "Lodgepole Ln", + "Time Zone": "America/New_York", + "Zones": [ + "Home" + ], + "icon": "mdi:map", + "friendly_name": "iPhone Geocoded Location" + }, + "context": { + "id": "01JV2HAX3ME0A2JH7T399RFTFF", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-09T22:31:56.646Z", + "last_updated": "2025-05-12T15:20:39.796Z" + }, + "sensor.iphone_last_update_trigger": { + "entity_id": "sensor.iphone_last_update_trigger", + "state": "Background Fetch", + "attributes": { + "icon": "mdi:cellphone-wireless", + "friendly_name": "iPhone Last Update Trigger" + }, + "context": { + "id": "01JV3EYDWKBE59P6PBKHA8S2ZS", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-12T23:58:08.275Z", + "last_updated": "2025-05-12T23:58:08.275Z" + }, + "sensor.iphone_app_version": { + "entity_id": "sensor.iphone_app_version", + "state": "2025.3", + "attributes": { + "icon": "mdi:cellphone", + "friendly_name": "iPhone App Version" + }, + "context": { + "id": "01JTVJTEF7YXDH6K9M9FHQASHH", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-09T22:31:56.647Z", + "last_updated": "2025-05-09T22:31:56.647Z" + }, + "sensor.iphone_location_permission": { + "entity_id": "sensor.iphone_location_permission", + "state": "Authorized when in use", + "attributes": { + "icon": "mdi:map", + "friendly_name": "iPhone Location permission" + }, + "context": { + "id": "01JTVJTEF7H32VMX835DWE8AA0", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-09T22:31:56.647Z", + "last_updated": "2025-05-09T22:31:56.647Z" + }, + "sensor.iphone_audio_output": { + "entity_id": "sensor.iphone_audio_output", + "state": "Built-in Speaker", + "attributes": { + "icon": "mdi:volume-high", + "friendly_name": "iPhone Audio Output" + }, + "context": { + "id": "01JV0DYZ20KX3D88YCTPY6KM36", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-11T19:43:13.984Z", + "last_updated": "2025-05-11T19:43:13.984Z" + }, + "device_tracker.pixel_6_pro": { + "entity_id": "device_tracker.pixel_6_pro", + "state": "not_home", + "attributes": { + "source_type": "gps", + "latitude": 32.8970331, + "longitude": -97.3520508, + "gps_accuracy": 14, + "altitude": 179, + "course": 0, + "speed": 0, + "vertical_accuracy": 1, + "friendly_name": "Pixel 6 Pro" + }, + "context": { + "id": "01JTVJTEF9QSHQ9DXZW2CZ9AC1", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-09T22:31:56.649Z", + "last_updated": "2025-05-09T22:31:56.649Z" + }, + "sensor.pixel_6_pro_battery_level": { + "entity_id": "sensor.pixel_6_pro_battery_level", + "state": "46", + "attributes": { + "state_class": "measurement", + "unit_of_measurement": "%", + "device_class": "battery", + "icon": "mdi:battery-charging-40", + "friendly_name": "Pixel 6 Pro Battery level" + }, + "context": { + "id": "01JV3CV8M8M01W5FPQQVV5ZBFE", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-12T23:21:27.432Z", + "last_updated": "2025-05-12T23:21:27.432Z" + }, + "sensor.pixel_6_pro_battery_state": { + "entity_id": "sensor.pixel_6_pro_battery_state", + "state": "charging", + "attributes": { + "options": [ + "charging", + "discharging", + "full", + "not_charging" + ], + "device_class": "enum", + "icon": "mdi:battery-plus", + "friendly_name": "Pixel 6 Pro Battery state" + }, + "context": { + "id": "01JV3B2ECK9MXXSGXH5GJV98DQ", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-12T22:50:25.555Z", + "last_updated": "2025-05-12T22:50:25.555Z" + }, + "sensor.pixel_6_pro_charger_type": { + "entity_id": "sensor.pixel_6_pro_charger_type", + "state": "ac", + "attributes": { + "options": [ + "ac", + "usb", + "wireless", + "dock", + "none" + ], + "device_class": "enum", + "icon": "mdi:power-plug", + "friendly_name": "Pixel 6 Pro Charger type" + }, + "context": { + "id": "01JV3B2ECMD5A71RN34PBHS412", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-12T22:50:25.556Z", + "last_updated": "2025-05-12T22:50:25.556Z" + }, + "tts.google_translate_en_com": { + "entity_id": "tts.google_translate_en_com", + "state": "2025-05-10T01:22:24.511783+00:00", + "attributes": { + "friendly_name": "Google Translate en com" + }, + "context": { + "id": "01JTVWJJKZ62VGFYDVGHYGNNSM", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-10T01:22:24.511Z", + "last_updated": "2025-05-10T01:22:24.511Z" + }, + "weather.forecast_home": { + "entity_id": "weather.forecast_home", + "state": "rainy", + "attributes": { + "temperature": 19.5, + "dew_point": 19.4, + "temperature_unit": "°C", + "humidity": 98, + "cloud_coverage": 100, + "uv_index": 0, + "pressure": 29.97, + "pressure_unit": "inHg", + "wind_bearing": 122.9, + "wind_speed": 18.4, + "wind_speed_unit": "km/h", + "visibility_unit": "km", + "precipitation_unit": "mm", + "attribution": "Weather forecast from met.no, delivered by the Norwegian Meteorological Institute.", + "friendly_name": "Forecast Home", + "supported_features": 3 + }, + "context": { + "id": "01JV44SJJ852XHDS3SZN692YEG", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-12T08:16:57.897Z", + "last_updated": "2025-05-13T06:19:57.896Z" + }, + "update.intex_spa_update": { + "entity_id": "update.intex_spa_update", + "state": "off", + "attributes": { + "auto_update": false, + "display_precision": 0, + "installed_version": "0.4.0", + "in_progress": false, + "latest_version": "0.4.0", + "release_summary": null, + "release_url": "https://github.com/mathieu-mp/homeassistant-intex-spa/releases/0.4.0", + "skipped_version": null, + "title": null, + "update_percentage": null, + "entity_picture": "https://brands.home-assistant.io/_/intex_spa/icon.png", + "friendly_name": "Intex Spa update", + "supported_features": 23 + }, + "context": { + "id": "01JTVJTEJYAD552VNZ0Z5Y2ZCT", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-09T22:31:56.766Z", + "last_updated": "2025-05-09T22:31:56.766Z" + }, + "update.material_you_utilities_material_design_3_color_theme_generation_and_component_modification_update": { + "entity_id": "update.material_you_utilities_material_design_3_color_theme_generation_and_component_modification_update", + "state": "off", + "attributes": { + "auto_update": false, + "display_precision": 0, + "installed_version": "1.0.16", + "in_progress": false, + "latest_version": "1.0.16", + "release_summary": null, + "release_url": "https://github.com/Nerwyn/material-you-utilities/releases/1.0.16", + "skipped_version": null, + "title": null, + "update_percentage": null, + "friendly_name": "Material You Utilities - Material Design 3 Color Theme Generation and Component Modification update", + "supported_features": 23 + }, + "context": { + "id": "01JV15A1240FR8NXM59SPPEV21", + "parent_id": null, + "user_id": "ac38f2590bf14c4d9e1944851b25d848" + }, + "last_changed": "2025-05-12T02:31:15.820Z", + "last_updated": "2025-05-12T02:31:15.830Z" + }, + "update.hacs_update": { + "entity_id": "update.hacs_update", + "state": "off", + "attributes": { + "auto_update": false, + "display_precision": 0, + "installed_version": "2.0.5", + "in_progress": false, + "latest_version": "2.0.5", + "release_summary": null, + "release_url": "https://github.com/hacs/integration/releases/2.0.5", + "skipped_version": null, + "title": null, + "update_percentage": null, + "entity_picture": "https://brands.home-assistant.io/_/hacs/icon.png", + "friendly_name": "HACS update", + "supported_features": 23 + }, + "context": { + "id": "01JTVJTEK00EE2ZGJNVWGSXFW7", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-09T22:31:56.768Z", + "last_updated": "2025-05-09T22:31:56.768Z" + }, + "update.material_you_theme_a_fully_featured_implementation_of_material_design_3_update": { + "entity_id": "update.material_you_theme_a_fully_featured_implementation_of_material_design_3_update", + "state": "off", + "attributes": { + "auto_update": false, + "display_precision": 0, + "installed_version": "4.0.6", + "in_progress": false, + "latest_version": "4.0.6", + "release_summary": null, + "release_url": "https://github.com/Nerwyn/material-you-theme/releases/4.0.6", + "skipped_version": null, + "title": null, + "update_percentage": null, + "friendly_name": "Material You Theme - A Fully Featured Implementation of Material Design 3 update", + "supported_features": 23 + }, + "context": { + "id": "01JTVK284PHNR9JZ8KCKGPFTJN", + "parent_id": null, + "user_id": "ac38f2590bf14c4d9e1944851b25d848" + }, + "last_changed": "2025-05-09T22:36:14.142Z", + "last_updated": "2025-05-09T22:36:14.144Z" + }, + "update.alarm_com_update": { + "entity_id": "update.alarm_com_update", + "state": "off", + "attributes": { + "auto_update": false, + "display_precision": 0, + "installed_version": "v3.0.14", + "in_progress": false, + "latest_version": "v3.0.14", + "release_summary": null, + "release_url": "https://github.com/pyalarmdotcom/alarmdotcom/releases/v3.0.14", + "skipped_version": null, + "title": null, + "update_percentage": null, + "entity_picture": "https://brands.home-assistant.io/_/alarmdotcom/icon.png", + "friendly_name": "Alarm.com update", + "supported_features": 23 + }, + "context": { + "id": "01JTVJTEK2CBH25MW8SA5PXA62", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-09T22:31:56.770Z", + "last_updated": "2025-05-09T22:31:56.770Z" + }, + "update.material_symbols_update": { + "entity_id": "update.material_symbols_update", + "state": "off", + "attributes": { + "auto_update": false, + "display_precision": 0, + "installed_version": "2025.04.11", + "in_progress": false, + "latest_version": "2025.04.11", + "release_summary": null, + "release_url": "https://github.com/beecho01/material-symbols/releases/2025.04.11", + "skipped_version": null, + "title": null, + "update_percentage": null, + "entity_picture": "https://brands.home-assistant.io/_/material_symbols/icon.png", + "friendly_name": "Material Symbols update", + "supported_features": 23 + }, + "context": { + "id": "01JTVJTEK24R7HDT52139P3BC0", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-09T22:31:56.770Z", + "last_updated": "2025-05-09T22:31:56.770Z" + }, + "conversation.google_generative_ai": { + "entity_id": "conversation.google_generative_ai", + "state": "2025-04-26T17:59:04.370277+00:00", + "attributes": { + "friendly_name": "Google Generative AI", + "supported_features": 1 + }, + "context": { + "id": "01JTVJTEK7H7RKC6BE33KQH943", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-09T22:31:56.775Z", + "last_updated": "2025-05-09T22:31:56.775Z" + }, + "conversation.chatgpt": { + "entity_id": "conversation.chatgpt", + "state": "unknown", + "attributes": { + "friendly_name": "ChatGPT", + "supported_features": 1 + }, + "context": { + "id": "01JTVJTEKDCXVT9923NGJE4VC2", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-09T22:31:56.781Z", + "last_updated": "2025-05-09T22:31:56.781Z" + }, + "button.wake_on_lan_6c_24_08_d8_81_cc": { + "entity_id": "button.wake_on_lan_6c_24_08_d8_81_cc", + "state": "2025-05-06T14:40:32.334462+00:00", + "attributes": {}, + "context": { + "id": "01JTVJTEKG6XTQRNAF5M97GQZK", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-09T22:31:56.784Z", + "last_updated": "2025-05-09T22:31:56.784Z" + }, + "media_player.this_device": { + "entity_id": "media_player.this_device", + "state": "unavailable", + "attributes": { + "device_class": "speaker", + "icon": "mdi:speaker", + "friendly_name": "This Device", + "supported_features": 7796671 + }, + "context": { + "id": "01JTVX6ZDQNK3PWS8GBWF5NX8W", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-10T01:33:32.983Z", + "last_updated": "2025-05-10T01:33:32.983Z" + }, + "todo.shopping_list": { + "entity_id": "todo.shopping_list", + "state": "1", + "attributes": { + "friendly_name": "Shopping List", + "supported_features": 15 + }, + "context": { + "id": "01JTVJTEMTW88T6T9X3PPMYF4J", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-09T22:31:56.826Z", + "last_updated": "2025-05-09T22:31:56.826Z" + }, + "binary_sensor.rpi_power_status": { + "entity_id": "binary_sensor.rpi_power_status", + "state": "off", + "attributes": { + "device_class": "problem", + "icon": "mdi:raspberry-pi", + "friendly_name": "RPi Power status" + }, + "context": { + "id": "01JTVJTEN6RH1F16E0WGGQ26PN", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-09T22:31:56.838Z", + "last_updated": "2025-05-09T22:31:56.838Z" + }, + "media_player.60_crystal_uhd": { + "entity_id": "media_player.60_crystal_uhd", + "state": "off", + "attributes": { + "source_list": [ + "TV", + "HDMI" + ], + "device_class": "tv", + "friendly_name": "60" Crystal UHD", + "supported_features": 24509 + }, + "context": { + "id": "01JV3X7VQ86BPK109P56KKZXPM", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-13T04:07:57.416Z", + "last_updated": "2025-05-13T04:07:57.416Z" + }, + "remote.60_crystal_uhd": { + "entity_id": "remote.60_crystal_uhd", + "state": "off", + "attributes": { + "friendly_name": "60" Crystal UHD", + "supported_features": 0 + }, + "context": { + "id": "01JV3X7VQ8059ZDPPEB69EW031", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-13T04:07:57.416Z", + "last_updated": "2025-05-13T04:07:57.416Z" + }, + "button.switchbot_hub_2_identify": { + "entity_id": "button.switchbot_hub_2_identify", + "state": "2025-04-24T16:44:09.021917+00:00", + "attributes": { + "device_class": "identify", + "friendly_name": "SwitchBot Hub 2 Identify" + }, + "context": { + "id": "01JTWAV3VWDMQKFX3K3WP4PPEJ", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-10T05:31:44.380Z", + "last_updated": "2025-05-10T05:31:44.380Z" + }, + "switch.closet": { + "entity_id": "switch.closet", + "state": "off", + "attributes": { + "device_class": "outlet", + "friendly_name": "Light" + }, + "context": { + "id": "01JV190GJGBVK739TJ9XT2BSX2", + "parent_id": null, + "user_id": "651a82dde43449b98a1ca0349404c3e5" + }, + "last_changed": "2025-05-12T03:35:56.380Z", + "last_updated": "2025-05-12T03:35:56.380Z" + }, + "switch.ceiling": { + "entity_id": "switch.ceiling", + "state": "on", + "attributes": { + "device_class": "outlet", + "friendly_name": "Fan" + }, + "context": { + "id": "01JV1909YSZ3JKFHRR5HX2P5G4", + "parent_id": null, + "user_id": "651a82dde43449b98a1ca0349404c3e5" + }, + "last_changed": "2025-05-12T03:35:50.338Z", + "last_updated": "2025-05-12T03:35:50.338Z" + }, + "sensor.hub_2_tempsensor_temperature": { + "entity_id": "sensor.hub_2_tempsensor_temperature", + "state": "22.5", + "attributes": { + "state_class": "measurement", + "unit_of_measurement": "°C", + "device_class": "temperature", + "friendly_name": "Hub 2 TempSensor Temperature" + }, + "context": { + "id": "01JV455RT054APE0XBMBBRH9SY", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-13T06:26:37.504Z", + "last_updated": "2025-05-13T06:26:37.504Z" + }, + "sensor.hub_2_humisensor_humidity": { + "entity_id": "sensor.hub_2_humisensor_humidity", + "state": "54.0", + "attributes": { + "state_class": "measurement", + "unit_of_measurement": "%", + "device_class": "humidity", + "friendly_name": "Hub 2 HumiSensor Humidity" + }, + "context": { + "id": "01JV44QJKFN09DF51DVYFJSF9H", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-13T06:18:52.399Z", + "last_updated": "2025-05-13T06:18:52.399Z" + }, + "button.corner_identify": { + "entity_id": "button.corner_identify", + "state": "unknown", + "attributes": { + "device_class": "identify", + "friendly_name": "Corner Identify" + }, + "context": { + "id": "01JTWAV3WKRVYMAG3DB67HZDVY", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-10T05:31:44.403Z", + "last_updated": "2025-05-10T05:31:44.403Z" + }, + "light.corner": { + "entity_id": "light.corner", + "state": "on", + "attributes": { + "min_color_temp_kelvin": 2000, + "max_color_temp_kelvin": 6535, + "min_mireds": 153, + "max_mireds": 500, + "supported_color_modes": [ + "color_temp", + "hs", + "xy" + ], + "color_mode": "hs", + "brightness": 25, + "color_temp_kelvin": null, + "color_temp": null, + "hs_color": [ + 344.409, + 84.646 + ], + "rgb_color": [ + 255, + 39, + 95 + ], + "xy_color": [ + 0.622, + 0.274 + ], + "friendly_name": "Corner", + "supported_features": 32 + }, + "context": { + "id": "01JV2T7Y1QN1T7YS3ZGYEPH3HD", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-12T17:56:19.612Z", + "last_updated": "2025-05-12T17:56:19.639Z" + }, + "number.corner_on_level": { + "entity_id": "number.corner_on_level", + "state": "255", + "attributes": { + "min": 0, + "max": 255, + "step": 1, + "mode": "box", + "friendly_name": "Corner On level" + }, + "context": { + "id": "01JTWAV3WQFM9RTT8J5D3JEREQ", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-10T05:31:44.407Z", + "last_updated": "2025-05-10T05:31:44.407Z" + }, + "select.corner_power_on_behavior_on_startup": { + "entity_id": "select.corner_power_on_behavior_on_startup", + "state": "previous", + "attributes": { + "options": [ + "on", + "off", + "toggle", + "previous" + ], + "friendly_name": "Corner Power-on behavior on startup" + }, + "context": { + "id": "01JTWAV3WR13QJFZKVDXRC6ZA2", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-10T05:31:44.408Z", + "last_updated": "2025-05-10T05:31:44.408Z" + }, + "button.door_identify": { + "entity_id": "button.door_identify", + "state": "unknown", + "attributes": { + "device_class": "identify", + "friendly_name": "Door Identify" + }, + "context": { + "id": "01JTWAV3WW3Y39TAA901CKHCQ8", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-10T05:31:44.412Z", + "last_updated": "2025-05-10T05:31:44.412Z" + }, + "light.door": { + "entity_id": "light.door", + "state": "on", + "attributes": { + "min_color_temp_kelvin": 2000, + "max_color_temp_kelvin": 6535, + "min_mireds": 153, + "max_mireds": 500, + "supported_color_modes": [ + "color_temp", + "hs", + "xy" + ], + "color_mode": "hs", + "brightness": 25, + "color_temp_kelvin": null, + "color_temp": null, + "hs_color": [ + 344.409, + 84.646 + ], + "rgb_color": [ + 255, + 39, + 95 + ], + "xy_color": [ + 0.622, + 0.274 + ], + "friendly_name": "Door", + "supported_features": 32 + }, + "context": { + "id": "01JV2T7Y1DEEFM5ER385W2574E", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-12T17:56:19.629Z", + "last_updated": "2025-05-12T17:56:19.629Z" + }, + "number.door_on_level": { + "entity_id": "number.door_on_level", + "state": "255", + "attributes": { + "min": 0, + "max": 255, + "step": 1, + "mode": "box", + "friendly_name": "Door On level" + }, + "context": { + "id": "01JTWAV3X0NV7N36RY92VK6FB4", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-10T05:31:44.416Z", + "last_updated": "2025-05-10T05:31:44.416Z" + }, + "select.door_power_on_behavior_on_startup": { + "entity_id": "select.door_power_on_behavior_on_startup", + "state": "previous", + "attributes": { + "options": [ + "on", + "off", + "toggle", + "previous" + ], + "friendly_name": "Door Power-on behavior on startup" + }, + "context": { + "id": "01JTWAV3X1CSTV3JK38GVT614M", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-10T05:31:44.417Z", + "last_updated": "2025-05-10T05:31:44.417Z" + }, + "button.dresser_identify": { + "entity_id": "button.dresser_identify", + "state": "2025-04-24T17:34:56.601607+00:00", + "attributes": { + "device_class": "identify", + "friendly_name": "Dresser Identify" + }, + "context": { + "id": "01JTWAV3X5YVCMH0GCCQKW0J3H", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-10T05:31:44.421Z", + "last_updated": "2025-05-10T05:31:44.421Z" + }, + "light.dresser": { + "entity_id": "light.dresser", + "state": "on", + "attributes": { + "min_color_temp_kelvin": 2000, + "max_color_temp_kelvin": 6535, + "min_mireds": 153, + "max_mireds": 500, + "supported_color_modes": [ + "color_temp", + "hs", + "xy" + ], + "color_mode": "hs", + "brightness": 25, + "color_temp_kelvin": null, + "color_temp": null, + "hs_color": [ + 344.409, + 84.646 + ], + "rgb_color": [ + 255, + 39, + 95 + ], + "xy_color": [ + 0.622, + 0.274 + ], + "friendly_name": "Dresser", + "supported_features": 32 + }, + "context": { + "id": "01JV2T7Y1HKJJBHE35RJCNKMB9", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-12T17:56:19.633Z", + "last_updated": "2025-05-12T17:56:19.633Z" + }, + "number.dresser_on_level": { + "entity_id": "number.dresser_on_level", + "state": "255", + "attributes": { + "min": 0, + "max": 255, + "step": 1, + "mode": "box", + "friendly_name": "Dresser On level" + }, + "context": { + "id": "01JTWAV3XAGWCKZGZM55NV1JV7", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-10T05:31:44.426Z", + "last_updated": "2025-05-10T05:31:44.426Z" + }, + "select.dresser_power_on_behavior_on_startup": { + "entity_id": "select.dresser_power_on_behavior_on_startup", + "state": "previous", + "attributes": { + "options": [ + "on", + "off", + "toggle", + "previous" + ], + "friendly_name": "Dresser Power-on behavior on startup" + }, + "context": { + "id": "01JTWAV3XD6Y2ZT23D0KJ1V0AW", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-10T05:31:44.429Z", + "last_updated": "2025-05-10T05:31:44.429Z" + }, + "button.bed_identify": { + "entity_id": "button.bed_identify", + "state": "unknown", + "attributes": { + "device_class": "identify", + "friendly_name": "Bed Identify" + }, + "context": { + "id": "01JTWAV3XGFRQ0KNK1ZX2DSC5K", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-10T05:31:44.432Z", + "last_updated": "2025-05-10T05:31:44.432Z" + }, + "light.bed": { + "entity_id": "light.bed", + "state": "on", + "attributes": { + "min_color_temp_kelvin": 2000, + "max_color_temp_kelvin": 6535, + "min_mireds": 153, + "max_mireds": 500, + "supported_color_modes": [ + "color_temp", + "hs", + "xy" + ], + "color_mode": "hs", + "brightness": 25, + "color_temp_kelvin": null, + "color_temp": null, + "hs_color": [ + 344.409, + 84.646 + ], + "rgb_color": [ + 255, + 39, + 95 + ], + "xy_color": [ + 0.622, + 0.274 + ], + "friendly_name": "Bed", + "supported_features": 32 + }, + "context": { + "id": "01JV2T7Y1NEK4NJ1CC05VF0M9E", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-12T17:56:19.613Z", + "last_updated": "2025-05-12T17:56:19.637Z" + }, + "number.bed_on_level": { + "entity_id": "number.bed_on_level", + "state": "255", + "attributes": { + "min": 0, + "max": 255, + "step": 1, + "mode": "box", + "friendly_name": "Bed On level" + }, + "context": { + "id": "01JTWAV3XNZF9M7K7HMRPYGS60", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-10T05:31:44.437Z", + "last_updated": "2025-05-10T05:31:44.437Z" + }, + "select.bed_power_on_behavior_on_startup": { + "entity_id": "select.bed_power_on_behavior_on_startup", + "state": "previous", + "attributes": { + "options": [ + "on", + "off", + "toggle", + "previous" + ], + "friendly_name": "Bed Power-on behavior on startup" + }, + "context": { + "id": "01JTWAV3XQNBNF2NRMG1ZQF422", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-10T05:31:44.439Z", + "last_updated": "2025-05-10T05:31:44.439Z" + }, + "update.essentials_a19_a60": { + "entity_id": "update.essentials_a19_a60", + "state": "off", + "attributes": { + "auto_update": false, + "display_precision": 0, + "installed_version": "4.1.3", + "in_progress": false, + "latest_version": "4.1.3", + "release_summary": null, + "release_url": null, + "skipped_version": null, + "title": null, + "update_percentage": null, + "device_class": "firmware", + "friendly_name": "Loft Firmware", + "supported_features": 23 + }, + "context": { + "id": "01JTWAV3XWTKFKC8F942N7KEA5", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-10T05:31:44.444Z", + "last_updated": "2025-05-10T05:31:44.444Z" + }, + "button.essentials_a19_a60_identify": { + "entity_id": "button.essentials_a19_a60_identify", + "state": "unknown", + "attributes": { + "device_class": "identify", + "friendly_name": "Loft Identify" + }, + "context": { + "id": "01JTWAV3XY5XDW4541GM9JFQ9D", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-10T05:31:44.446Z", + "last_updated": "2025-05-10T05:31:44.446Z" + }, + "light.essentials_a19_a60": { + "entity_id": "light.essentials_a19_a60", + "state": "on", + "attributes": { + "min_color_temp_kelvin": 2127, + "max_color_temp_kelvin": 6535, + "min_mireds": 153, + "max_mireds": 470, + "supported_color_modes": [ + "color_temp", + "hs", + "xy" + ], + "color_mode": "color_temp", + "brightness": 115, + "color_temp_kelvin": 6535, + "color_temp": 153, + "hs_color": [ + 54.768, + 1.6 + ], + "rgb_color": [ + 255, + 255, + 251 + ], + "xy_color": [ + 0.325, + 0.333 + ], + "friendly_name": "Light", + "supported_features": 32 + }, + "context": { + "id": "01JV3FWM6KFSFMK77T2P0PWHG0", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-13T00:14:38.851Z", + "last_updated": "2025-05-13T00:14:38.851Z" + }, + "number.essentials_a19_a60_on_level": { + "entity_id": "number.essentials_a19_a60_on_level", + "state": "115", + "attributes": { + "min": 0, + "max": 255, + "step": 1, + "mode": "box", + "friendly_name": "Loft On level" + }, + "context": { + "id": "01JTWAV3Y442PNSR7M4V9B63GG", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-10T05:31:44.452Z", + "last_updated": "2025-05-10T05:31:44.452Z" + }, + "number.essentials_a19_a60_on_off_transition_time": { + "entity_id": "number.essentials_a19_a60_on_off_transition_time", + "state": "0.0", + "attributes": { + "min": 0, + "max": 65534, + "step": 0.1, + "mode": "box", + "unit_of_measurement": "s", + "friendly_name": "Loft On/Off transition time" + }, + "context": { + "id": "01JTWAV3Y5DBJC7FEZX2QDVK20", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-10T05:31:44.453Z", + "last_updated": "2025-05-10T05:31:44.453Z" + }, + "select.essentials_a19_a60_power_on_behavior_on_startup": { + "entity_id": "select.essentials_a19_a60_power_on_behavior_on_startup", + "state": "on", + "attributes": { + "options": [ + "on", + "off", + "toggle", + "previous" + ], + "friendly_name": "Loft Power-on behavior on startup" + }, + "context": { + "id": "01JTWAV3Y7V06TM15EC5HYSPTV", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-10T05:31:44.455Z", + "last_updated": "2025-05-10T05:31:44.455Z" + }, + "wake_word.openwakeword": { + "entity_id": "wake_word.openwakeword", + "state": "unknown", + "attributes": { + "friendly_name": "openwakeword" + }, + "context": { + "id": "01JTVJTEWB4P9A539EVX7SCY1Z", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-09T22:31:57.067Z", + "last_updated": "2025-05-09T22:31:57.067Z" + }, + "tts.piper": { + "entity_id": "tts.piper", + "state": "2025-05-10T01:22:15.611839+00:00", + "attributes": { + "friendly_name": "piper" + }, + "context": { + "id": "01JTVWJ9XWSKHCC21FY01KJAVE", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-10T01:22:15.612Z", + "last_updated": "2025-05-10T01:22:15.612Z" + }, + "update.home_assistant_skyconnect_92d1917a_firmware": { + "entity_id": "update.home_assistant_skyconnect_92d1917a_firmware", + "state": "off", + "attributes": { + "auto_update": false, + "display_precision": 0, + "installed_version": "2.4.4.0", + "in_progress": false, + "latest_version": "2.4.4.0", + "release_summary": "Initial release with the new firmware builder. This firmware is identical to the firmware bundled with the OpenThread Border Router addon.", + "release_url": "https://github.com/NabuCasa/silabs-firmware-builder/releases/tag/v2025.04.04-1", + "skipped_version": null, + "title": "OpenThread RCP", + "update_percentage": null, + "device_class": "firmware", + "entity_picture": "https://brands.home-assistant.io/_/homeassistant_sky_connect/icon.png", + "friendly_name": "Home Assistant SkyConnect (92d1917a) Firmware", + "supported_features": 5 + }, + "context": { + "id": "01JTVJTEY4XGN08W19FQXPB7SX", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-09T22:31:57.124Z", + "last_updated": "2025-05-09T22:31:57.124Z" + }, + "climate.hot_tub": { + "entity_id": "climate.hot_tub", + "state": "off", + "attributes": { + "hvac_modes": [ + "heat", + "off" + ], + "min_temp": 50, + "max_temp": 104, + "target_temp_step": 1, + "current_temperature": 93, + "temperature": 93, + "icon": "mdi:pool-thermometer", + "friendly_name": "Hot tub ", + "supported_features": 385 + }, + "context": { + "id": "01JV09C1C1M76V6DD18HFMEG6N", + "parent_id": null, + "user_id": "651a82dde43449b98a1ca0349404c3e5" + }, + "last_changed": "2025-05-11T06:24:04.099Z", + "last_updated": "2025-05-11T18:23:00.066Z" + }, + "switch.hot_tub_power": { + "entity_id": "switch.hot_tub_power", + "state": "on", + "attributes": { + "icon": "mdi:power-plug-outline", + "friendly_name": "Hot tub Power" + }, + "context": { + "id": "01JTVJTEYR3XSNT6156V0VWA94", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-09T22:31:57.144Z", + "last_updated": "2025-05-09T22:31:57.144Z" + }, + "switch.hot_tub_filter": { + "entity_id": "switch.hot_tub_filter", + "state": "off", + "attributes": { + "icon": "mdi:air-filter", + "friendly_name": "Hot tub Filter" + }, + "context": { + "id": "01JTZ07N04DC9E8CF5V8EE0VWH", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-11T06:24:04.100Z", + "last_updated": "2025-05-11T06:24:04.100Z" + }, + "switch.hot_tub_jets": { + "entity_id": "switch.hot_tub_jets", + "state": "off", + "attributes": { + "icon": "mdi:weather-windy", + "friendly_name": "Hot tub Jets" + }, + "context": { + "id": "01JTVJTEYS7ADD8QZWPQ34GP0Z", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-09T22:31:57.145Z", + "last_updated": "2025-05-09T22:31:57.145Z" + }, + "switch.hot_tub_bubbles": { + "entity_id": "switch.hot_tub_bubbles", + "state": "off", + "attributes": { + "icon": "mdi:chart-bubble", + "friendly_name": "Hot tub Bubbles" + }, + "context": { + "id": "01JTXKVTKMZ6CAC1275G5BP98B", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-10T17:28:39.284Z", + "last_updated": "2025-05-10T17:28:39.284Z" + }, + "switch.hot_tub_sanitizer": { + "entity_id": "switch.hot_tub_sanitizer", + "state": "off", + "attributes": { + "icon": "mdi:recycle-variant", + "friendly_name": "Hot tub Sanitizer" + }, + "context": { + "id": "01JTVTVXEDX6KRVHN39SB1NGGH", + "parent_id": null, + "user_id": "ac38f2590bf14c4d9e1944851b25d848" + }, + "last_changed": "2025-05-10T00:52:33.935Z", + "last_updated": "2025-05-10T00:52:33.935Z" + }, + "sensor.hot_tub_error": { + "entity_id": "sensor.hot_tub_error", + "state": "none", + "attributes": { + "device_class": "intex_spa__error", + "icon": "mdi:alert-circle-check-outline", + "friendly_name": "Hot tub Error" + }, + "context": { + "id": "01JTVJTEYWZ6ZD2D3N2QSD4F8M", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-09T22:31:57.148Z", + "last_updated": "2025-05-09T22:31:57.148Z" + }, + "sensor.hot_tub_error_description": { + "entity_id": "sensor.hot_tub_error_description", + "state": "none", + "attributes": { + "device_class": "intex_spa__error_description", + "icon": "mdi:alert-circle-check-outline", + "friendly_name": "Hot tub Error Description" + }, + "context": { + "id": "01JTVJTEYXXSN1WXDD26N1Z88H", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-09T22:31:57.149Z", + "last_updated": "2025-05-09T22:31:57.149Z" + }, + "automation.loft_sunrise": { + "entity_id": "automation.loft_sunrise", + "state": "on", + "attributes": { + "id": "1745965286884", + "last_triggered": "2025-05-12T10:14:29.254879+00:00", + "mode": "single", + "current": 0, + "friendly_name": "Loft sunrise" + }, + "context": { + "id": "01JV1ZT9463BGYPXHM77ZMVA97", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-09T22:31:57.166Z", + "last_updated": "2025-05-12T10:14:29.346Z" + }, + "automation.loft_sunset": { + "entity_id": "automation.loft_sunset", + "state": "on", + "attributes": { + "id": "1745965360415", + "last_triggered": "2025-05-13T00:14:37.779705+00:00", + "mode": "single", + "current": 0, + "friendly_name": "Loft sunset" + }, + "context": { + "id": "01JV3FWM6KFSFMK77T2P0PWHG0", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-09T22:31:57.166Z", + "last_updated": "2025-05-13T00:14:37.926Z" + }, + "automation.new_automation": { + "entity_id": "automation.new_automation", + "state": "off", + "attributes": { + "id": "1746310670774", + "last_triggered": "2025-05-03T23:26:30.281818+00:00", + "mode": "single", + "current": 0, + "friendly_name": "New automation" + }, + "context": { + "id": "01JTVJTEZEFMB2B8BY7RNB5K9Z", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-09T22:31:57.166Z", + "last_updated": "2025-05-09T22:31:57.166Z" + }, + "automation.seth_leave_home": { + "entity_id": "automation.seth_leave_home", + "state": "on", + "attributes": { + "id": "1746817767119", + "last_triggered": null, + "mode": "single", + "current": 0, + "friendly_name": "Seth: Leave Home" + }, + "context": { + "id": "01JTVJTEZF8F9NRW3TD1EK2ZXC", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-09T22:31:57.167Z", + "last_updated": "2025-05-09T22:31:57.167Z" + }, + "alarm_control_panel.panel": { + "entity_id": "alarm_control_panel.panel", + "state": "armed_home", + "attributes": { + "code_format": "number", + "changed_by": null, + "code_arm_required": true, + "uncleared_issues": "False", + "friendly_name": "Panel", + "supported_features": 3 + }, + "context": { + "id": "01JV3XRE8KV96SE9H40FWYC16T", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-13T04:17:00.691Z", + "last_updated": "2025-05-13T04:17:00.691Z" + }, + "binary_sensor.diningroom_window": { + "entity_id": "binary_sensor.diningroom_window", + "state": "off", + "attributes": { + "displayStateText": "Closed", + "device_class": "window", + "friendly_name": "Diningroom Window" + }, + "context": { + "id": "01JTVJTFGV1CA2627C6TSHEMKG", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-09T22:31:57.723Z", + "last_updated": "2025-05-09T22:31:57.723Z" + }, + "binary_sensor.front_door": { + "entity_id": "binary_sensor.front_door", + "state": "off", + "attributes": { + "displayStateText": "Closed", + "device_class": "door", + "friendly_name": "Front Door" + }, + "context": { + "id": "01JTVJTFH2Z9GHWDK1AZG89V8P", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-09T22:31:57.730Z", + "last_updated": "2025-05-09T22:31:57.730Z" + }, + "binary_sensor.garage_door": { + "entity_id": "binary_sensor.garage_door", + "state": "off", + "attributes": { + "displayStateText": "Closed", + "device_class": "door", + "friendly_name": "Garage Door" + }, + "context": { + "id": "01JTVJTFH8DFA5RS74NDWHWT1W", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-09T22:31:57.736Z", + "last_updated": "2025-05-09T22:31:57.736Z" + }, + "binary_sensor.kitchen_window": { + "entity_id": "binary_sensor.kitchen_window", + "state": "off", + "attributes": { + "displayStateText": "Closed", + "device_class": "window", + "friendly_name": "Kitchen Window" + }, + "context": { + "id": "01JTVJTFHE93J7QFD5FFTS3906", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-09T22:31:57.742Z", + "last_updated": "2025-05-09T22:31:57.742Z" + }, + "binary_sensor.livingroom_left_window": { + "entity_id": "binary_sensor.livingroom_left_window", + "state": "off", + "attributes": { + "displayStateText": "Closed", + "device_class": "window", + "friendly_name": "Livingroom Left Window" + }, + "context": { + "id": "01JTVJTFHMPKNB3Q0F9K37K0KA", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-09T22:31:57.748Z", + "last_updated": "2025-05-09T22:31:57.748Z" + }, + "binary_sensor.livingroom_right_window": { + "entity_id": "binary_sensor.livingroom_right_window", + "state": "off", + "attributes": { + "displayStateText": "Closed", + "device_class": "window", + "friendly_name": "Livingroom Right Window" + }, + "context": { + "id": "01JV2TJB4HKQGH3HSXDB66BCRE", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-12T18:02:00.721Z", + "last_updated": "2025-05-12T18:02:00.721Z" + }, + "binary_sensor.office_left_window": { + "entity_id": "binary_sensor.office_left_window", + "state": "off", + "attributes": { + "displayStateText": "Closed", + "device_class": "window", + "friendly_name": "Office Left Window" + }, + "context": { + "id": "01JTVJTFJ29BX8B0R30JQ9C1DY", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-09T22:31:57.762Z", + "last_updated": "2025-05-09T22:31:57.762Z" + }, + "binary_sensor.office_right_window": { + "entity_id": "binary_sensor.office_right_window", + "state": "off", + "attributes": { + "displayStateText": "Closed", + "device_class": "window", + "friendly_name": "Office Right Window" + }, + "context": { + "id": "01JTVJTFJ8WYB8HFNGMTGSY7W7", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-09T22:31:57.768Z", + "last_updated": "2025-05-09T22:31:57.768Z" + }, + "binary_sensor.sliding_door": { + "entity_id": "binary_sensor.sliding_door", + "state": "off", + "attributes": { + "displayStateText": "Closed", + "device_class": "door", + "friendly_name": "Sliding Door" + }, + "context": { + "id": "01JV2TJB4ZHPE0KWZVDYX4CYCS", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-12T18:02:00.735Z", + "last_updated": "2025-05-12T18:02:00.735Z" + }, + "binary_sensor.stairs_window": { + "entity_id": "binary_sensor.stairs_window", + "state": "off", + "attributes": { + "displayStateText": "Closed", + "device_class": "window", + "friendly_name": "Stairs Window" + }, + "context": { + "id": "01JTVJTFJN8QGE797VJDNMF8GZ", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-09T22:31:57.781Z", + "last_updated": "2025-05-09T22:31:57.781Z" + }, + "binary_sensor.panel_malfunction": { + "entity_id": "binary_sensor.panel_malfunction", + "state": "off", + "attributes": { + "device_class": "problem", + "friendly_name": "Panel Malfunction" + }, + "context": { + "id": "01JTZ38K5JHBNET53KVS1ZEKWN", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-11T07:17:00.722Z", + "last_updated": "2025-05-11T07:17:00.722Z" + }, + "binary_sensor.garage_door_malfunction": { + "entity_id": "binary_sensor.garage_door_malfunction", + "state": "off", + "attributes": { + "device_class": "problem", + "friendly_name": "Garage Door Malfunction" + }, + "context": { + "id": "01JTZ38K5K3FDTYJWTBSNJR35S", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-11T07:17:00.723Z", + "last_updated": "2025-05-11T07:17:00.723Z" + }, + "binary_sensor.lamp_switch_malfunction": { + "entity_id": "binary_sensor.lamp_switch_malfunction", + "state": "off", + "attributes": { + "device_class": "problem", + "friendly_name": "Lamp Switch Malfunction" + }, + "context": { + "id": "01JTZ38K5KYMMD0NX2E5Y0RG36", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-11T07:17:00.723Z", + "last_updated": "2025-05-11T07:17:00.723Z" + }, + "binary_sensor.front_door_malfunction": { + "entity_id": "binary_sensor.front_door_malfunction", + "state": "off", + "attributes": { + "device_class": "problem", + "friendly_name": "Front Door Malfunction" + }, + "context": { + "id": "01JTZ38K5KSWXH8XTR0V3T3ATZ", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-11T07:17:00.723Z", + "last_updated": "2025-05-11T07:17:00.723Z" + }, + "binary_sensor.diningroom_window_malfunction": { + "entity_id": "binary_sensor.diningroom_window_malfunction", + "state": "off", + "attributes": { + "device_class": "problem", + "friendly_name": "Diningroom Window Malfunction" + }, + "context": { + "id": "01JTZ38K5K5SH3H2VKPJDTMVC9", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-11T07:17:00.723Z", + "last_updated": "2025-05-11T07:17:00.723Z" + }, + "binary_sensor.front_door_malfunction_2": { + "entity_id": "binary_sensor.front_door_malfunction_2", + "state": "off", + "attributes": { + "device_class": "problem", + "friendly_name": "Front Door Malfunction" + }, + "context": { + "id": "01JTZ38K5K0FA4XPG6D1ZXP054", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-11T07:17:00.723Z", + "last_updated": "2025-05-11T07:17:00.723Z" + }, + "binary_sensor.garage_door_malfunction_2": { + "entity_id": "binary_sensor.garage_door_malfunction_2", + "state": "off", + "attributes": { + "device_class": "problem", + "friendly_name": "Garage Door Malfunction" + }, + "context": { + "id": "01JTZ38K5K2S062VSNJHJ89H6F", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-11T07:17:00.723Z", + "last_updated": "2025-05-11T07:17:00.723Z" + }, + "binary_sensor.kitchen_window_malfunction": { + "entity_id": "binary_sensor.kitchen_window_malfunction", + "state": "off", + "attributes": { + "device_class": "problem", + "friendly_name": "Kitchen Window Malfunction" + }, + "context": { + "id": "01JTZ38K5KPZAVWN8RJGXHAR58", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-11T07:17:00.723Z", + "last_updated": "2025-05-11T07:17:00.723Z" + }, + "binary_sensor.livingroom_left_window_malfunction": { + "entity_id": "binary_sensor.livingroom_left_window_malfunction", + "state": "off", + "attributes": { + "device_class": "problem", + "friendly_name": "Livingroom Left Window Malfunction" + }, + "context": { + "id": "01JTZ38K5M9PTP6CWV3YTRM3NH", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-11T07:17:00.724Z", + "last_updated": "2025-05-11T07:17:00.724Z" + }, + "binary_sensor.livingroom_right_window_malfunction": { + "entity_id": "binary_sensor.livingroom_right_window_malfunction", + "state": "off", + "attributes": { + "device_class": "problem", + "friendly_name": "Livingroom Right Window Malfunction" + }, + "context": { + "id": "01JTZ38K5MDGJYV1SH43E6CG3B", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-11T07:17:00.724Z", + "last_updated": "2025-05-11T07:17:00.724Z" + }, + "binary_sensor.office_left_window_malfunction": { + "entity_id": "binary_sensor.office_left_window_malfunction", + "state": "off", + "attributes": { + "device_class": "problem", + "friendly_name": "Office Left Window Malfunction" + }, + "context": { + "id": "01JTZ38K5MWWM4457R5FCPYBW7", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-11T07:17:00.724Z", + "last_updated": "2025-05-11T07:17:00.724Z" + }, + "binary_sensor.office_right_window_malfunction": { + "entity_id": "binary_sensor.office_right_window_malfunction", + "state": "off", + "attributes": { + "device_class": "problem", + "friendly_name": "Office Right Window Malfunction" + }, + "context": { + "id": "01JTZ38K5MM8Z10WR33FZP6M6E", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-11T07:17:00.724Z", + "last_updated": "2025-05-11T07:17:00.724Z" + }, + "binary_sensor.sliding_door_malfunction": { + "entity_id": "binary_sensor.sliding_door_malfunction", + "state": "off", + "attributes": { + "device_class": "problem", + "friendly_name": "Sliding Door Malfunction" + }, + "context": { + "id": "01JTZ38K5MN00BGS60FYA2KWME", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-11T07:17:00.724Z", + "last_updated": "2025-05-11T07:17:00.724Z" + }, + "binary_sensor.stairs_window_malfunction": { + "entity_id": "binary_sensor.stairs_window_malfunction", + "state": "off", + "attributes": { + "device_class": "problem", + "friendly_name": "Stairs Window Malfunction" + }, + "context": { + "id": "01JTZ38K5MAFW9EF866KD1A9KJ", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-11T07:17:00.724Z", + "last_updated": "2025-05-11T07:17:00.724Z" + }, + "binary_sensor.downstairs_thermostat_malfunction": { + "entity_id": "binary_sensor.downstairs_thermostat_malfunction", + "state": "off", + "attributes": { + "device_class": "problem", + "friendly_name": "Downstairs Thermostat Malfunction" + }, + "context": { + "id": "01JTZ38K5MRXN76251H8N6343Q", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-11T07:17:00.724Z", + "last_updated": "2025-05-11T07:17:00.724Z" + }, + "binary_sensor.upstairs_thermostat_malfunction": { + "entity_id": "binary_sensor.upstairs_thermostat_malfunction", + "state": "off", + "attributes": { + "device_class": "problem", + "friendly_name": "Upstairs Thermostat Malfunction" + }, + "context": { + "id": "01JTZ38K5NG4EB25YXPGXX2ZK6", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-11T07:17:00.725Z", + "last_updated": "2025-05-11T07:17:00.725Z" + }, + "lock.front_door": { + "entity_id": "lock.front_door", + "state": "locked", + "attributes": { + "code_format": "^\\d+$", + "friendly_name": "Front Door", + "supported_features": 0 + }, + "context": { + "id": "01JV0V1W1XD3WGRGD0TG84GXWH", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-11T23:32:00.701Z", + "last_updated": "2025-05-11T23:32:00.701Z" + }, + "cover.garage_door": { + "entity_id": "cover.garage_door", + "state": "closed", + "attributes": { + "device_class": "garage", + "friendly_name": "Garage Door", + "supported_features": 3 + }, + "context": { + "id": "01JV19JS1QJBF9NHNGBYRVGXDG", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-12T03:45:54.743Z", + "last_updated": "2025-05-12T03:45:54.743Z" + }, + "light.lamp_switch": { + "entity_id": "light.lamp_switch", + "state": "off", + "attributes": { + "supported_color_modes": [ + "onoff" + ], + "color_mode": null, + "brightness": null, + "friendly_name": "Lamp Switch", + "supported_features": 1 + }, + "context": { + "id": "01JTZ38K5PEPS504F0HKW19AYF", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-11T07:17:00.726Z", + "last_updated": "2025-05-11T07:17:00.726Z" + }, + "button.panel_debug": { + "entity_id": "button.panel_debug", + "state": "unknown", + "attributes": { + "icon": "mdi:bug", + "friendly_name": "Panel Debug" + }, + "context": { + "id": "01JTZ38K5PTYPZ4075HVRAB7DG", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-11T07:17:00.726Z", + "last_updated": "2025-05-11T07:17:00.726Z" + }, + "button.garage_door_debug": { + "entity_id": "button.garage_door_debug", + "state": "unknown", + "attributes": { + "icon": "mdi:bug", + "friendly_name": "Garage Door Debug" + }, + "context": { + "id": "01JTZ38K5PWVX0KGD1FV002SQQ", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-11T07:17:00.726Z", + "last_updated": "2025-05-11T07:17:00.726Z" + }, + "button.lamp_switch_debug": { + "entity_id": "button.lamp_switch_debug", + "state": "unknown", + "attributes": { + "icon": "mdi:bug", + "friendly_name": "Lamp Switch Debug" + }, + "context": { + "id": "01JTZ38K5P8VCGKQ35EPM8FMJG", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-11T07:17:00.726Z", + "last_updated": "2025-05-11T07:17:00.726Z" + }, + "button.front_door_debug": { + "entity_id": "button.front_door_debug", + "state": "unknown", + "attributes": { + "icon": "mdi:bug", + "friendly_name": "Front Door Debug" + }, + "context": { + "id": "01JTZ38K5P1XR1BK8KBHEQJPY8", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-11T07:17:00.726Z", + "last_updated": "2025-05-11T07:17:00.726Z" + }, + "button.diningroom_window_debug": { + "entity_id": "button.diningroom_window_debug", + "state": "unknown", + "attributes": { + "icon": "mdi:bug", + "friendly_name": "Diningroom Window Debug" + }, + "context": { + "id": "01JTZ38K5P9G69DKCVD6TDXK3N", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-11T07:17:00.726Z", + "last_updated": "2025-05-11T07:17:00.726Z" + }, + "button.front_door_debug_2": { + "entity_id": "button.front_door_debug_2", + "state": "unknown", + "attributes": { + "icon": "mdi:bug", + "friendly_name": "Front Door Debug" + }, + "context": { + "id": "01JTZ38K5P0QZER7F66SD0KG6X", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-11T07:17:00.726Z", + "last_updated": "2025-05-11T07:17:00.726Z" + }, + "button.garage_door_debug_2": { + "entity_id": "button.garage_door_debug_2", + "state": "unknown", + "attributes": { + "icon": "mdi:bug", + "friendly_name": "Garage Door Debug" + }, + "context": { + "id": "01JTZ38K5QM2ZN2S8T2F07E2BP", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-11T07:17:00.727Z", + "last_updated": "2025-05-11T07:17:00.727Z" + }, + "button.kitchen_window_debug": { + "entity_id": "button.kitchen_window_debug", + "state": "unknown", + "attributes": { + "icon": "mdi:bug", + "friendly_name": "Kitchen Window Debug" + }, + "context": { + "id": "01JTZ38K5QMK7BMRXG39ZB482M", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-11T07:17:00.727Z", + "last_updated": "2025-05-11T07:17:00.727Z" + }, + "button.livingroom_left_window_debug": { + "entity_id": "button.livingroom_left_window_debug", + "state": "unknown", + "attributes": { + "icon": "mdi:bug", + "friendly_name": "Livingroom Left Window Debug" + }, + "context": { + "id": "01JTZ38K5QZZ1AZBZQRTF9Q77H", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-11T07:17:00.727Z", + "last_updated": "2025-05-11T07:17:00.727Z" + }, + "button.livingroom_right_window_debug": { + "entity_id": "button.livingroom_right_window_debug", + "state": "unknown", + "attributes": { + "icon": "mdi:bug", + "friendly_name": "Livingroom Right Window Debug" + }, + "context": { + "id": "01JTZ38K5QF18EYNPYA7YJDD79", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-11T07:17:00.727Z", + "last_updated": "2025-05-11T07:17:00.727Z" + }, + "button.office_left_window_debug": { + "entity_id": "button.office_left_window_debug", + "state": "unknown", + "attributes": { + "icon": "mdi:bug", + "friendly_name": "Office Left Window Debug" + }, + "context": { + "id": "01JTZ38K5Q41YP2HBBGA8H1VC4", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-11T07:17:00.727Z", + "last_updated": "2025-05-11T07:17:00.727Z" + }, + "button.office_right_window_debug": { + "entity_id": "button.office_right_window_debug", + "state": "unknown", + "attributes": { + "icon": "mdi:bug", + "friendly_name": "Office Right Window Debug" + }, + "context": { + "id": "01JTZ38K5QB4RKDFPW2182Y4D3", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-11T07:17:00.727Z", + "last_updated": "2025-05-11T07:17:00.727Z" + }, + "button.sliding_door_debug": { + "entity_id": "button.sliding_door_debug", + "state": "unknown", + "attributes": { + "icon": "mdi:bug", + "friendly_name": "Sliding Door Debug" + }, + "context": { + "id": "01JTZ38K5Q6XXNPJ9Y7YE94P2R", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-11T07:17:00.727Z", + "last_updated": "2025-05-11T07:17:00.727Z" + }, + "button.stairs_window_debug": { + "entity_id": "button.stairs_window_debug", + "state": "unknown", + "attributes": { + "icon": "mdi:bug", + "friendly_name": "Stairs Window Debug" + }, + "context": { + "id": "01JTZ38K5Q7S4SRH3PRCJZG7EX", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-11T07:17:00.727Z", + "last_updated": "2025-05-11T07:17:00.727Z" + }, + "button.downstairs_thermostat_debug": { + "entity_id": "button.downstairs_thermostat_debug", + "state": "unknown", + "attributes": { + "icon": "mdi:bug", + "friendly_name": "Downstairs Thermostat Debug" + }, + "context": { + "id": "01JTZ38K5QSBPC09TH51RGB43Q", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-11T07:17:00.727Z", + "last_updated": "2025-05-11T07:17:00.727Z" + }, + "button.upstairs_thermostat_debug": { + "entity_id": "button.upstairs_thermostat_debug", + "state": "unknown", + "attributes": { + "icon": "mdi:bug", + "friendly_name": "Upstairs Thermostat Debug" + }, + "context": { + "id": "01JTZ38K5RJZ9MCXWPJ3X7DBRA", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-11T07:17:00.728Z", + "last_updated": "2025-05-11T07:17:00.728Z" + }, + "climate.downstairs_thermostat": { + "entity_id": "climate.downstairs_thermostat", + "state": "cool", + "attributes": { + "hvac_modes": [ + "off", + "heat", + "cool", + "heat_cool", + "fan_only" + ], + "min_temp": 50, + "max_temp": 99, + "target_temp_step": 1, + "fan_modes": [ + "auto", + "on" + ], + "current_temperature": 71, + "temperature": 71, + "target_temp_high": null, + "target_temp_low": null, + "fan_mode": "auto", + "friendly_name": "Downstairs Thermostat", + "supported_features": 11 + }, + "context": { + "id": "01JV2NDHN33M8KJSND00NR2NR3", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-11T07:17:00.732Z", + "last_updated": "2025-05-12T16:32:00.675Z" + }, + "climate.upstairs_thermostat": { + "entity_id": "climate.upstairs_thermostat", + "state": "cool", + "attributes": { + "hvac_modes": [ + "off", + "heat", + "cool", + "heat_cool", + "fan_only" + ], + "min_temp": 50, + "max_temp": 99, + "target_temp_step": 1, + "fan_modes": [ + "auto", + "on" + ], + "current_temperature": 68, + "temperature": 68, + "target_temp_high": null, + "target_temp_low": null, + "fan_mode": "auto", + "friendly_name": "Upstairs Thermostat", + "supported_features": 11 + }, + "context": { + "id": "01JTZ38K5YQYWW39TF7EPFWPPS", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-11T07:17:00.734Z", + "last_updated": "2025-05-11T07:17:00.734Z" + }, + "switch.wake_on_lan": { + "entity_id": "switch.wake_on_lan", + "state": "off", + "attributes": { + "friendly_name": "RIGGED Power" + }, + "context": { + "id": "01JV0F76YNZJRGR5X9MK8C4TAW", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-09T22:31:58.014Z", + "last_updated": "2025-05-11T20:05:12.789Z" + }, + "media_player.bubbleupnp_pixel_9_pro_xl": { + "entity_id": "media_player.bubbleupnp_pixel_9_pro_xl", + "state": "unavailable", + "attributes": { + "device_class": "speaker", + "icon": "mdi:speaker", + "friendly_name": "BubbleUPnP (Pixel 9 Pro XL)", + "supported_features": 7796287 + }, + "context": { + "id": "01JV3GYSYZ4F8DPEM9C24FJFH1", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-13T00:33:17.791Z", + "last_updated": "2025-05-13T00:33:17.791Z" + }, + "sensor.pixel_9_pro_xl_steps_sensor": { + "entity_id": "sensor.pixel_9_pro_xl_steps_sensor", + "state": "3521", + "attributes": { + "state_class": "total_increasing", + "unit_of_measurement": "steps", + "icon": "mdi:walk", + "friendly_name": "Pixel 9 Pro XL Steps sensor" + }, + "context": { + "id": "01JV41D4TEN2JZXEM47D388ATQ", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-13T05:20:44.878Z", + "last_updated": "2025-05-13T05:20:44.878Z" + }, + "sensor.eve_energy_20ebu4101_power": { + "entity_id": "sensor.eve_energy_20ebu4101_power", + "state": "unavailable", + "attributes": { + "restored": true, + "state_class": "measurement", + "device_class": "power", + "friendly_name": "Power", + "supported_features": 0, + "unit_of_measurement": "W" + }, + "context": { + "id": "01JTW1RBQ9MYMPZWG5BQ0WABBY", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-10T02:50:57.114Z", + "last_updated": "2025-05-10T02:52:56.937Z" + }, + "sensor.eve_energy_20ebu4101_voltage": { + "entity_id": "sensor.eve_energy_20ebu4101_voltage", + "state": "unavailable", + "attributes": { + "restored": true, + "state_class": "measurement", + "device_class": "voltage", + "friendly_name": "Voltage", + "supported_features": 0, + "unit_of_measurement": "V" + }, + "context": { + "id": "01JTW1RBQA7D1AQZ2PH41569WW", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-10T02:50:57.114Z", + "last_updated": "2025-05-10T02:52:56.938Z" + }, + "sensor.eve_energy_20ebu4101_energy": { + "entity_id": "sensor.eve_energy_20ebu4101_energy", + "state": "unavailable", + "attributes": { + "restored": true, + "state_class": "total_increasing", + "device_class": "energy", + "friendly_name": "Energy", + "supported_features": 0, + "unit_of_measurement": "kWh" + }, + "context": { + "id": "01JTW1RBQAGCV1VPP1CB2WBPXA", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-10T02:50:57.114Z", + "last_updated": "2025-05-10T02:52:56.938Z" + }, + "sensor.eve_energy_20ebu4101_current": { + "entity_id": "sensor.eve_energy_20ebu4101_current", + "state": "unavailable", + "attributes": { + "restored": true, + "state_class": "measurement", + "device_class": "current", + "friendly_name": "Current", + "supported_features": 0, + "unit_of_measurement": "A" + }, + "context": { + "id": "01JTW1RBQAS0783VKQ7ZWAC8A0", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-10T02:50:57.115Z", + "last_updated": "2025-05-10T02:52:56.938Z" + }, + "sensor.eve_energy_20ebu4101_power_3": { + "entity_id": "sensor.eve_energy_20ebu4101_power_3", + "state": "unavailable", + "attributes": { + "restored": true, + "state_class": "measurement", + "device_class": "power", + "friendly_name": "Power", + "supported_features": 0, + "unit_of_measurement": "W" + }, + "context": { + "id": "01JTWAV3M3J801QPFFGGWWKKF5", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-10T05:29:56.309Z", + "last_updated": "2025-05-10T05:31:44.131Z" + }, + "sensor.eve_energy_20ebu4101_voltage_3": { + "entity_id": "sensor.eve_energy_20ebu4101_voltage_3", + "state": "unavailable", + "attributes": { + "restored": true, + "state_class": "measurement", + "device_class": "voltage", + "friendly_name": "Voltage", + "supported_features": 0, + "unit_of_measurement": "V" + }, + "context": { + "id": "01JTWAV3M3H7SWKEWAR0SQRRJK", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-10T05:29:56.309Z", + "last_updated": "2025-05-10T05:31:44.131Z" + }, + "sensor.eve_energy_20ebu4101_energy_3": { + "entity_id": "sensor.eve_energy_20ebu4101_energy_3", + "state": "unavailable", + "attributes": { + "restored": true, + "state_class": "total_increasing", + "device_class": "energy", + "friendly_name": "Energy", + "supported_features": 0, + "unit_of_measurement": "kWh" + }, + "context": { + "id": "01JTWAV3M38Z80KFNWRV13P7NJ", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-10T05:29:56.310Z", + "last_updated": "2025-05-10T05:31:44.131Z" + }, + "sensor.eve_energy_20ebu4101_current_3": { + "entity_id": "sensor.eve_energy_20ebu4101_current_3", + "state": "unavailable", + "attributes": { + "restored": true, + "state_class": "measurement", + "device_class": "current", + "friendly_name": "Current", + "supported_features": 0, + "unit_of_measurement": "A" + }, + "context": { + "id": "01JTWAV3M3XZ21AKJ26PMZS0DW", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-10T05:29:56.310Z", + "last_updated": "2025-05-10T05:31:44.131Z" + }, + "sensor.floor_fans_current_2": { + "entity_id": "sensor.floor_fans_current_2", + "state": "2.4", + "attributes": { + "state_class": "measurement", + "unit_of_measurement": "A", + "device_class": "current", + "friendly_name": "Floor Fans Current" + }, + "context": { + "id": "01JV4584QEKWSJ6SKN17Z47Y4E", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-13T06:27:55.246Z", + "last_updated": "2025-05-13T06:27:55.246Z" + }, + "sensor.floor_fans_energy_2": { + "entity_id": "sensor.floor_fans_energy_2", + "state": "21.47", + "attributes": { + "state_class": "total_increasing", + "unit_of_measurement": "kWh", + "device_class": "energy", + "friendly_name": "Floor Fans Energy" + }, + "context": { + "id": "01JV4578DQYR9VQW539MYJW7DM", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-13T06:27:26.263Z", + "last_updated": "2025-05-13T06:27:26.263Z" + }, + "switch.floor_fans": { + "entity_id": "switch.floor_fans", + "state": "on", + "attributes": { + "device_class": "outlet", + "friendly_name": "Floor Fans" + }, + "context": { + "id": "01JV19N5AC2VJX388J76SH311S", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-12T03:47:12.844Z", + "last_updated": "2025-05-12T03:47:12.844Z" + }, + "fan.floor_fans": { + "entity_id": "fan.floor_fans", + "state": "unavailable", + "attributes": { + "friendly_name": "Floor Fans", + "supported_features": 48 + }, + "context": { + "id": "01JTXV66WGED03Y7KMTDRWMSAX", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-10T19:36:39.568Z", + "last_updated": "2025-05-10T19:36:39.568Z" + }, + "button.floor_fans_identify": { + "entity_id": "button.floor_fans_identify", + "state": "unknown", + "attributes": { + "device_class": "identify", + "friendly_name": "Floor Fans Identify (1)" + }, + "context": { + "id": "01JTXV66WJ7GT2P3516JBNFK47", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-10T19:36:39.570Z", + "last_updated": "2025-05-10T19:36:39.570Z" + }, + "sensor.floor_fans_power_2": { + "entity_id": "sensor.floor_fans_power_2", + "state": "287.299", + "attributes": { + "state_class": "measurement", + "unit_of_measurement": "W", + "device_class": "power", + "friendly_name": "Floor Fans Power" + }, + "context": { + "id": "01JV4584Q9SCKFANEE1NK6E54N", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-13T06:27:55.241Z", + "last_updated": "2025-05-13T06:27:55.241Z" + }, + "select.floor_fans_power_on_behavior_on_startup": { + "entity_id": "select.floor_fans_power_on_behavior_on_startup", + "state": "previous", + "attributes": { + "options": [ + "on", + "off", + "toggle", + "previous" + ], + "friendly_name": "Floor Fans Power-on behavior on startup" + }, + "context": { + "id": "01JTXV66WS5YCKV95DPADESZM5", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-10T19:36:39.577Z", + "last_updated": "2025-05-10T19:36:39.577Z" + }, + "sensor.floor_fans_voltage_2": { + "entity_id": "sensor.floor_fans_voltage_2", + "state": "122.599", + "attributes": { + "state_class": "measurement", + "unit_of_measurement": "V", + "device_class": "voltage", + "friendly_name": "Floor Fans Voltage" + }, + "context": { + "id": "01JV45A55KAKNSRV6QHYVJ38G8", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-13T06:29:01.235Z", + "last_updated": "2025-05-13T06:29:01.235Z" + }, + "update.floor_fans_firmware": { + "entity_id": "update.floor_fans_firmware", + "state": "off", + "attributes": { + "auto_update": false, + "display_precision": 0, + "installed_version": "3.5.0", + "in_progress": false, + "latest_version": "3.5.0", + "release_summary": null, + "release_url": null, + "skipped_version": null, + "title": null, + "update_percentage": null, + "device_class": "firmware", + "friendly_name": "Floor Fans Firmware", + "supported_features": 23 + }, + "context": { + "id": "01JTXV674EZPV4EANCEEE91J1T", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-10T19:36:39.822Z", + "last_updated": "2025-05-10T19:36:39.822Z" + }, + "sensor.valve_index_current_4": { + "entity_id": "sensor.valve_index_current_4", + "state": "0.0", + "attributes": { + "state_class": "measurement", + "unit_of_measurement": "A", + "device_class": "current", + "friendly_name": "Valve Index Current" + }, + "context": { + "id": "01JV375WWXZYPQEG5YX3PMTY92", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-12T21:42:24.413Z", + "last_updated": "2025-05-12T21:42:24.413Z" + }, + "sensor.valve_index_energy_4": { + "entity_id": "sensor.valve_index_energy_4", + "state": "0.0", + "attributes": { + "state_class": "total_increasing", + "unit_of_measurement": "kWh", + "device_class": "energy", + "friendly_name": "Valve Index Energy" + }, + "context": { + "id": "01JTXV6P50ME8D7AZ5T448365J", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-10T19:36:55.200Z", + "last_updated": "2025-05-10T19:36:55.200Z" + }, + "button.valve_index_identify_2": { + "entity_id": "button.valve_index_identify_2", + "state": "unknown", + "attributes": { + "device_class": "identify", + "friendly_name": "Valve Index Identify (1)" + }, + "context": { + "id": "01JTXV6P57TSYYFQ80RTQMBDZ4", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-10T19:36:55.207Z", + "last_updated": "2025-05-10T19:36:55.207Z" + }, + "sensor.valve_index_power_4": { + "entity_id": "sensor.valve_index_power_4", + "state": "0.0", + "attributes": { + "state_class": "measurement", + "unit_of_measurement": "W", + "device_class": "power", + "friendly_name": "Valve Index Power" + }, + "context": { + "id": "01JV1CZ5Q13YX2WNKVRR8QTSH0", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-12T04:45:06.657Z", + "last_updated": "2025-05-12T04:45:06.657Z" + }, + "select.valve_index_power_on_behavior_on_startup_2": { + "entity_id": "select.valve_index_power_on_behavior_on_startup_2", + "state": "previous", + "attributes": { + "options": [ + "on", + "off", + "toggle", + "previous" + ], + "friendly_name": "Valve Index Power-on behavior on startup" + }, + "context": { + "id": "01JTXV6P5C8VEY5BTHBV3Y8MFJ", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-10T19:36:55.212Z", + "last_updated": "2025-05-10T19:36:55.212Z" + }, + "switch.valve_index_2": { + "entity_id": "switch.valve_index_2", + "state": "off", + "attributes": { + "device_class": "outlet", + "friendly_name": "Valve Index" + }, + "context": { + "id": "01JV1CXHCYSST95HF4CTDC2NVW", + "parent_id": null, + "user_id": "ac38f2590bf14c4d9e1944851b25d848" + }, + "last_changed": "2025-05-12T04:44:13.280Z", + "last_updated": "2025-05-12T04:44:13.280Z" + }, + "sensor.valve_index_voltage_4": { + "entity_id": "sensor.valve_index_voltage_4", + "state": "122.4", + "attributes": { + "state_class": "measurement", + "unit_of_measurement": "V", + "device_class": "voltage", + "friendly_name": "Valve Index Voltage" + }, + "context": { + "id": "01JV458FHJ3ZJG60XF27D15PHT", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-13T06:28:06.322Z", + "last_updated": "2025-05-13T06:28:06.322Z" + }, + "update.valve_index_firmware_2": { + "entity_id": "update.valve_index_firmware_2", + "state": "off", + "attributes": { + "auto_update": false, + "display_precision": 0, + "installed_version": "3.5.0", + "in_progress": false, + "latest_version": "3.5.0", + "release_summary": null, + "release_url": null, + "skipped_version": null, + "title": null, + "update_percentage": null, + "device_class": "firmware", + "friendly_name": "Valve Index Firmware", + "supported_features": 23 + }, + "context": { + "id": "01JTXV6PCDNRJ59EAZSEX9GQ99", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-10T19:36:55.437Z", + "last_updated": "2025-05-10T19:36:55.437Z" + }, + "sensor.pixel_9_pro_xl_sleep_segment": { + "entity_id": "sensor.pixel_9_pro_xl_sleep_segment", + "state": "10440000.0", + "attributes": { + "end": 1747040935925, + "start": 1747030495925, + "status": "successful", + "unit_of_measurement": "ms", + "device_class": "duration", + "icon": "mdi:sleep", + "friendly_name": "Pixel 9 Pro XL Sleep segment" + }, + "context": { + "id": "01JV3HDJDHED2NRFECTK7Z625C", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-13T00:41:21.585Z", + "last_updated": "2025-05-13T00:41:21.585Z" + }, + "sensor.pixel_9_pro_xl_sleep_confidence": { + "entity_id": "sensor.pixel_9_pro_xl_sleep_confidence", + "state": "84", + "attributes": { + "state_class": "measurement", + "light": 2, + "motion": 1, + "timestamp": 1747117584000, + "unit_of_measurement": "%", + "icon": "mdi:sleep", + "friendly_name": "Pixel 9 Pro XL Sleep confidence" + }, + "context": { + "id": "01JV455CSX24MAHWV55W7E1S1J", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-13T06:26:25.213Z", + "last_updated": "2025-05-13T06:26:25.213Z" + }, + "binary_sensor.pixel_9_pro_xl_interactive": { + "entity_id": "binary_sensor.pixel_9_pro_xl_interactive", + "state": "off", + "attributes": { + "icon": "mdi:cellphone-off", + "friendly_name": "Pixel 9 Pro XL Interactive" + }, + "context": { + "id": "01JV456V85HR1CFPVBH4FM422B", + "parent_id": null, + "user_id": null + }, + "last_changed": "2025-05-13T06:27:12.773Z", + "last_updated": "2025-05-13T06:27:12.773Z" + } +} \ No newline at end of file diff --git a/index.ts b/index.ts new file mode 100644 index 0000000..a88a4ae --- /dev/null +++ b/index.ts @@ -0,0 +1,25 @@ +import { + Auth, + createConnection, + subscribeEntities, + createLongLivedTokenAuth, +} from "home-assistant-js-websocket"; + +const auth = createLongLivedTokenAuth( + "http://172.16.206.123:8123", + "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiI5MGYyNDk3MDVkMTQ0ZTNjODQ0MDZlMWFkMjQ5NTgwZSIsImlhdCI6MTc0NzExNzM0NiwiZXhwIjoyMDYyNDc3MzQ2fQ.zbbyX-RsgtNV8TOIboc0Kk1YZvWMi5LQMwrf9rkv_SM", +); + +const connection = await createConnection({ auth }); + +subscribeEntities(connection, (entities) => { + const fatherSleep = getTimeAsleep(parseFloat(entities["sensor.pixel_9_pro_xl_sleep_segment"]?.state || "0")); +}); + +const getTimeAsleep = (ms: number) => { + + const minutes = ((ms / 1000 / 60) % 60); + const hours = ((ms / 1000 / 60 / 60) % 24); + + return { minutes, hours }; +}; \ No newline at end of file diff --git a/package.json b/package.json new file mode 100644 index 0000000..58ff34e --- /dev/null +++ b/package.json @@ -0,0 +1,15 @@ +{ + "name": "abissinskiy", + "module": "index.ts", + "type": "module", + "private": true, + "devDependencies": { + "@types/bun": "latest" + }, + "peerDependencies": { + "typescript": "^5" + }, + "dependencies": { + "home-assistant-js-websocket": "^9.5.0" + } +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..9c62f74 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,28 @@ +{ + "compilerOptions": { + // Environment setup & latest features + "lib": ["ESNext"], + "target": "ESNext", + "module": "ESNext", + "moduleDetection": "force", + "jsx": "react-jsx", + "allowJs": true, + + // Bundler mode + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "verbatimModuleSyntax": true, + "noEmit": true, + + // Best practices + "strict": true, + "skipLibCheck": true, + "noFallthroughCasesInSwitch": true, + "noUncheckedIndexedAccess": true, + + // Some stricter flags (disabled by default) + "noUnusedLocals": false, + "noUnusedParameters": false, + "noPropertyAccessFromIndexSignature": false + } +}