From d640590528c777872ffe7f660248213f6df49e5c Mon Sep 17 00:00:00 2001 From: David Kebler Date: Fri, 1 Jan 2021 11:00:49 -0800 Subject: [PATCH] added stone room added numberbox card --- .HA_VERSION | 2 +- .storage/auth | 200 +- .storage/core.config_entries | 83 +- .storage/core.device_registry | 88 +- .storage/core.entity_registry | 408 ++- .storage/core.restore_state | 1757 +++++------ ...user_data_99685dc45d9f40dc8183e11ce5128038 | 6 +- .storage/hacs.repositories | 2587 +++++++++++------ .storage/hacs/146194325.hacs | 22 +- .storage/hacs/150781994.hacs | 4 +- .storage/hacs/156434866.hacs | 2 +- .storage/hacs/167744584.hacs | 8 +- .storage/hacs/172733314.hacs | 10 +- .storage/hacs/190927524.hacs | 8 +- .storage/hacs/194140521.hacs | 8 +- .storage/hacs/200897141.hacs | 2 +- .storage/hacs/223008910.hacs | 4 +- .storage/hacs/261262884.hacs | 6 +- .storage/hacs/303101606.hacs | 20 +- .storage/hacs/304967918.hacs | 54 + .storage/hassio | 8 +- .storage/http | 4 +- .storage/lovelace.lovelace_main | 65 + .storage/lovelace.lovelace_weather | 4 +- .storage/lovelace_resources | 15 +- .storage/mobile_app | 75 +- .storage/person | 9 +- .vscode/settings.json | 5 + configuration.yaml | 6 +- {lovelace => dashboards}/_manual/closet.yaml | 0 {lovelace => dashboards}/_manual/lights.yaml | 0 {lovelace => dashboards}/_manual/temps.yaml | 0 {lovelace => dashboards}/_manual/weather.yaml | 0 .../dashboards.yaml => dashboards/config.yaml | 1 + {lovelace => dashboards}/manual.yaml | 0 {lovelace => dashboards}/panel.yaml | 0 packages/indoor_security_light.yaml | 2 +- packages/inside.yaml | 8 +- packages/outside.yaml | 8 +- packages/stone_room.yaml | 109 + www/community/button-card/button-card.js | 10 +- www/community/button-card/button-card.js.gz | Bin 24709 -> 27230 bytes .../numberbox-card/numberbox-card.js | 240 ++ www/{panels.yaml => panels.yaml.off} | 0 44 files changed, 3782 insertions(+), 2066 deletions(-) create mode 100644 .storage/hacs/304967918.hacs create mode 100644 .vscode/settings.json rename {lovelace => dashboards}/_manual/closet.yaml (100%) rename {lovelace => dashboards}/_manual/lights.yaml (100%) rename {lovelace => dashboards}/_manual/temps.yaml (100%) rename {lovelace => dashboards}/_manual/weather.yaml (100%) rename lovelace/dashboards.yaml => dashboards/config.yaml (82%) rename {lovelace => dashboards}/manual.yaml (100%) rename {lovelace => dashboards}/panel.yaml (100%) create mode 100644 packages/stone_room.yaml create mode 100644 www/community/numberbox-card/numberbox-card.js rename www/{panels.yaml => panels.yaml.off} (100%) diff --git a/.HA_VERSION b/.HA_VERSION index 9a6dac6..eb06c4c 100644 --- a/.HA_VERSION +++ b/.HA_VERSION @@ -1 +1 @@ -2020.12.1 \ No newline at end of file +2020.12.2 \ No newline at end of file diff --git a/.storage/auth b/.storage/auth index 22c4a0c..1041ccf 100644 --- a/.storage/auth +++ b/.storage/auth @@ -52,6 +52,16 @@ "is_active": true, "name": "test", "system_generated": false + }, + { + "id": "66bf1f45db524de88f93b2b50fb0584f", + "group_ids": [ + "system-admin" + ], + "is_owner": false, + "is_active": true, + "name": "Hass.io", + "system_generated": true } ], "groups": [ @@ -127,7 +137,7 @@ "access_token_expiration": 1800.0, "token": "552d438c538636357742acea47d8a022fcaab47c74a20435614f69540088948934d66767b0348eeec4c4de979691f12f3ce28c20c3854dfd0b5b263efd07f40f", "jwt_key": "0ed3886ff667ce6e5f17c621f1c8b8c1f14fe258f2669022c078f14e5e5c3906a8b37ad6c949aa6c1af800a5fbc94fd6e581de258a01c884e368cf6d0d5c741f", - "last_used_at": "2020-12-18T05:17:58.556455+00:00", + "last_used_at": "2021-01-01T07:42:37.242225+00:00", "last_used_ip": "172.30.32.2" }, { @@ -267,7 +277,7 @@ "access_token_expiration": 1800.0, "token": "67154748b468ae62cff3021f566ce8f1d94d89f7e223b3dfb8432226347f1e1f0ba05674e2e089fa98ee08add0be40d38e70f3af9dc74cf9dbb5f9e93d358cb0", "jwt_key": "50e901c4783bb84711838442d27a1ea4d44213eea590113bb1154bd69efc18d98cc8892287520a35a5154b087996bdeba2e131697f28bade44e8f5cc75fa6235", - "last_used_at": "2020-12-18T05:17:57.852541+00:00", + "last_used_at": "2021-01-01T18:56:21.652776+00:00", "last_used_ip": "10.0.0.2" }, { @@ -897,7 +907,7 @@ "access_token_expiration": 1800.0, "token": "d9cce9fda43a1711dd7e09f7b3c2a80492c2561e5db7972aff31ceaf68e330126c233b361e1c7aca06b56ed3a50c9ed4f8e4688d9d4c279a0e1d3a8ce544644a", "jwt_key": "a4020e6b1ddeb3f600eae73269a4eb31c917ab837f93101a42b587160743808dba65395ee57a6d3dc2bb62bea4fd1e25b19b2e16e8267889398ae904412bd399", - "last_used_at": "2020-12-18T17:02:57.020487+00:00", + "last_used_at": "2020-12-20T21:11:52.408466+00:00", "last_used_ip": "10.0.0.2" }, { @@ -911,7 +921,175 @@ "access_token_expiration": 1800.0, "token": "b803b3516fbf26d72b6d33f0c70e45370123c1e97e404c021645ca9ff900691e77578b0bfd47211c17f1308bc976b33e25077995803c7c1b20c9d6bd08d553c2", "jwt_key": "f03cdead1812714da6513f6ab8cb98e3698c2c787ca40934035b258a052d3b7287ca5c521b8cc6f49e40c9812eba1c4be66cdb9835b6c409916e29a10d232533", - "last_used_at": "2020-12-18T17:12:13.343453+00:00", + "last_used_at": "2021-01-01T18:14:18.113574+00:00", + "last_used_ip": "10.0.0.2" + }, + { + "id": "691b36380d314981ad40451fd8844a00", + "user_id": "99685dc45d9f40dc8183e11ce5128038", + "client_id": "https://ha.kebler.net/", + "client_name": null, + "client_icon": null, + "token_type": "normal", + "created_at": "2020-12-20T21:12:26.759053+00:00", + "access_token_expiration": 1800.0, + "token": "fdbe22ad115b20ca6178dd2629cb77a65abc09244a558515004b1ca646917cef98a3f0c4754358cf3270dc45f06ca76ae92cfad368bb73604c0cf8cf6f07be84", + "jwt_key": "7e272d1eeb849a77c7cbfa1b50c26aaf579a4431e1da7e3b40740f1709707310ba44c9e503c5c675d673efcd81333a5ca2bc5b7d08713c5ff8cabf1ff6282157", + "last_used_at": "2020-12-20T21:12:26.759780+00:00", + "last_used_ip": "10.0.0.2" + }, + { + "id": "6ef255f2d1d14b37b024951febe7a7e7", + "user_id": "99685dc45d9f40dc8183e11ce5128038", + "client_id": "https://ha.kebler.net/", + "client_name": null, + "client_icon": null, + "token_type": "normal", + "created_at": "2020-12-20T21:17:25.583298+00:00", + "access_token_expiration": 1800.0, + "token": "34ca3aa3f3d0a636106c01290a112904422f6100ef9ca5a59747947db458fe6401f87feed63c10d296d595477f518a82133939d10ac095dab256bcc33e478245", + "jwt_key": "8e3812405bdf2b4e6dc1522cc722a650d48bf08f15f786c67154f38793d236fefb8d6d65bf599fa78a75fab95632576904262e40445922b73b2294d94483e36a", + "last_used_at": "2020-12-20T21:17:25.583457+00:00", + "last_used_ip": "10.0.0.2" + }, + { + "id": "4c8430e66a2a4afab3f37b6ed1b07960", + "user_id": "99685dc45d9f40dc8183e11ce5128038", + "client_id": "https://ha.kebler.net/", + "client_name": null, + "client_icon": null, + "token_type": "normal", + "created_at": "2020-12-20T21:17:50.507856+00:00", + "access_token_expiration": 1800.0, + "token": "2588494e600e3b6b8036d839b67e76a23c267dccf1dbc6c94d32be971acf126ff94804c0bec662b80c999d649b641a6b00848bf06e6e1cc410883477ba111b09", + "jwt_key": "2d4e721c593411d064f765f7ac35b4e721d60448616ecd2382cb5aed318685a5f8955126c9ff8152abdc65e9b89b1206eaacd6c9aad3349d5da3491cafa3eb9f", + "last_used_at": "2020-12-20T21:17:50.508087+00:00", + "last_used_ip": "10.0.0.2" + }, + { + "id": "aba7d59351de495f86a7143e5b4602ab", + "user_id": "99685dc45d9f40dc8183e11ce5128038", + "client_id": "https://ha.kebler.net/", + "client_name": null, + "client_icon": null, + "token_type": "normal", + "created_at": "2020-12-20T21:20:05.531940+00:00", + "access_token_expiration": 1800.0, + "token": "79b7522680f2a839d2e0e9168f30bc5f2fe75bdcf13c0c2ac9f18a99d55d4450aef3f0753d058eec59d4c973f8fbe937c121283c1fe347bee9fb6d6eba3f49a7", + "jwt_key": "1814c801056e01298f2b0c5bcea8bcff3a4308beaf34c504859ae702403137b2c5a4fe6a045a9b87782e049b2ffd48b600e1386b2333c2dc559627178f8b07c0", + "last_used_at": "2020-12-23T18:03:28.519054+00:00", + "last_used_ip": "10.0.0.2" + }, + { + "id": "aa9702d1dc504aa6ac2ce8fb5764808f", + "user_id": "99685dc45d9f40dc8183e11ce5128038", + "client_id": "https://ha.kebler.net/", + "client_name": null, + "client_icon": null, + "token_type": "normal", + "created_at": "2020-12-20T21:20:34.118239+00:00", + "access_token_expiration": 1800.0, + "token": "138b6adea1e8a3b487796da3163c83513d7c4269295dfd54edc53d12dcbea050cc584d9cf206dafcb4f0d6d905b96fc4f989fbcf42ea1ebaddae23e1c2de250c", + "jwt_key": "f7a0e8a8f0123ea3ce03876f6a960e94bb4c773090ca8f8b2a095b78b99e00b3f4039bceb48fa46f78bb770e20bda1542cab2d9d5530dc8dda9e4aa27b5cbff2", + "last_used_at": "2020-12-20T21:20:34.118448+00:00", + "last_used_ip": "10.0.0.2" + }, + { + "id": "80f506020b4e43e9abcb141cb4c93dd9", + "user_id": "99685dc45d9f40dc8183e11ce5128038", + "client_id": "https://ha.kebler.net/", + "client_name": null, + "client_icon": null, + "token_type": "normal", + "created_at": "2020-12-20T21:21:00.508989+00:00", + "access_token_expiration": 1800.0, + "token": "fc393f58762101982850d6e3d9f0317cfbcb284efce694c6da6095c7d23a3f01849b8cdf87457737d35f23fec0d9853d7754847e352d2f7245525bb4add4d7c9", + "jwt_key": "29492c7321194223cf9a99586577f8e5d309c48e51bd8912a67c0538835da7775839ac30698ac1ecd3a7abba0ccaac6d37cd5faebaefa4d570f46f2ca12ce6b7", + "last_used_at": "2020-12-20T21:21:00.509176+00:00", + "last_used_ip": "10.0.0.2" + }, + { + "id": "17129cd1209048d3830c5545473b16cf", + "user_id": "99685dc45d9f40dc8183e11ce5128038", + "client_id": "https://home-assistant.io/android", + "client_name": null, + "client_icon": null, + "token_type": "normal", + "created_at": "2020-12-22T01:28:11.834773+00:00", + "access_token_expiration": 1800.0, + "token": "757bc443f34e5be80517de8299b2da68ec611d7904657cf3274218a87c12d23eca51e75554adb7e8cc4975fbe77cf986d985e2ab4b8456c04cc0296ae63d7b9f", + "jwt_key": "3ab5c600c6bbfb3e1dedb8d82ed0ca3869f7b5ecea8484d6b1d11a3be13f358ac6d4e98a74d5e617e4231cf3979cdf844b8d439717d13bee2a8d6d2332c5b8eb", + "last_used_at": "2020-12-22T15:44:21.403029+00:00", + "last_used_ip": "10.0.0.2" + }, + { + "id": "1eb21cd141bb4e30819e684f9214280a", + "user_id": "99685dc45d9f40dc8183e11ce5128038", + "client_id": "https://ha.kebler.net/", + "client_name": null, + "client_icon": null, + "token_type": "normal", + "created_at": "2020-12-22T19:13:49.769255+00:00", + "access_token_expiration": 1800.0, + "token": "a0ee724d9ba26e90bfa47518326f9e873daeefeaadec10a76cef944f77e525c324be6fa622979aade32209762fba88cf970801ad62d6f733424c8ac77e2fd8d2", + "jwt_key": "0e4dfe9cfd6bfcda77cd28404d859fd6a1a77ab2385b6403f177a4bbec76a3693ff888a6fd0576fe8907195306a749f67610801cc40124ec9cd813e86d725fdf", + "last_used_at": "2021-01-01T18:56:21.854612+00:00", + "last_used_ip": "10.0.0.2" + }, + { + "id": "c2bf0d6d66d04ccc925a74e6d148e013", + "user_id": "99685dc45d9f40dc8183e11ce5128038", + "client_id": "https://ha.kebler.net/", + "client_name": null, + "client_icon": null, + "token_type": "normal", + "created_at": "2020-12-26T16:30:41.536291+00:00", + "access_token_expiration": 1800.0, + "token": "42b3c49d9b4576bc4e619b22246df92e14d6118a42cc763b065cc16bb89091881d4404e598d81e5f23279f1a8b9005daebf3abf7295105c4d67babcfdeef183a", + "jwt_key": "9bd9db49c3e6b042cf8cf381d4524d0925d01706e4cb59307a0ad30f0c720f38f3876846377ebfdae7af6f06847902349a013abecb0bc35a5d2d287a1207b06b", + "last_used_at": "2020-12-26T16:30:41.536615+00:00", + "last_used_ip": "10.0.0.2" + }, + { + "id": "5f49eb2fd00b49e881173c8b2dc42b91", + "user_id": "99685dc45d9f40dc8183e11ce5128038", + "client_id": "https://ha.kebler.net/", + "client_name": null, + "client_icon": null, + "token_type": "normal", + "created_at": "2020-12-26T17:33:03.187972+00:00", + "access_token_expiration": 1800.0, + "token": "4701b65970cf212718d7f0e8432c0e0f9db6a53d612ae8b1fcd4eec43d585d5e12811baedad69d1c98e490af6991e53dcce5166c2ac5eb1ddfec27b3c1539d50", + "jwt_key": "d1c5d7e6de5b87e8cda403921c1c91815329d15ac86bef57097e0ebffad5508af0aae029d2199fc4e9b85ba9ed34b9d90aa20a2576a5a578efba799be24f6fe1", + "last_used_at": "2020-12-26T17:33:03.188120+00:00", + "last_used_ip": "10.0.0.2" + }, + { + "id": "298b529cfaf749198dc5aebab2d710df", + "user_id": "99685dc45d9f40dc8183e11ce5128038", + "client_id": "https://ha.kebler.net/", + "client_name": null, + "client_icon": null, + "token_type": "normal", + "created_at": "2021-01-01T03:37:51.762108+00:00", + "access_token_expiration": 1800.0, + "token": "3bfc140f4ff55430c87e788fde1afd3c8cf246b08903801a3f0f175b3c79ca91c27b97f56493f9664cd664bf421c9bbc5aac599da77db2bfac4895d093fe0cc7", + "jwt_key": "c9ba69b03fac1f31fb90289fee8475dfcf3b06d911f18a064c632a1a546852eeb12914d5109c9379e815262ba7cebfb3b3f7dfac916893e23d946aa8e0c6eed4", + "last_used_at": "2021-01-01T03:37:51.762223+00:00", + "last_used_ip": "10.0.0.2" + }, + { + "id": "204f607544c44e63bd5ba06752a1b870", + "user_id": "99685dc45d9f40dc8183e11ce5128038", + "client_id": "https://ha.kebler.net/", + "client_name": null, + "client_icon": null, + "token_type": "normal", + "created_at": "2021-01-01T17:14:37.251834+00:00", + "access_token_expiration": 1800.0, + "token": "b8ddaba40e51ef24631b25a035825799a0dce6e8e6526b8c31c93b77af93dbed026af3a45982c4e3577f52cb13eccf36c101f3e54b1c0cf165ee80977442067c", + "jwt_key": "37934f3b5cc3447c7ad56f0c6dae7a8d6a0ceeef41b8a4e1920754e22ac695a07e3333f6b00a898e27046bf7223e2e61d5e4cfef792807e4c8a3e9622e5a075d", + "last_used_at": "2021-01-01T18:56:20.018108+00:00", "last_used_ip": "10.0.0.2" }, { @@ -1067,6 +1245,20 @@ "jwt_key": "f18a94dfa0270259bb9deb169599deef12e2a948fcced55337c5b40688e8b08a87287b4eddcf982f6ec4097eea25d1708f3029cb9a987400fb6d61272fe08b4d", "last_used_at": "2020-05-04T17:12:36.668523+00:00", "last_used_ip": "10.0.0.3" + }, + { + "id": "b46d5b3818ba4da782b4da9faee7a9b9", + "user_id": "66bf1f45db524de88f93b2b50fb0584f", + "client_id": null, + "client_name": null, + "client_icon": null, + "token_type": "system", + "created_at": "2021-01-01T16:31:24.421780+00:00", + "access_token_expiration": 1800.0, + "token": "f1b7e74705250996e46cbd6002591a8c829fb40405d766cfc55a8f3caed3aa29b5e1616d4960bac3a8e181bc04dd135a59096161448640e8d49fa393d0b2be7d", + "jwt_key": "fa10f02042ee89cdfce1f1d396a42b73b0500c5214b5ebd09f42e43f88551ccc934e84c925d9adb90f56d3d2eb158aa5e2676b0f6352711af65601fe815a31ce", + "last_used_at": "2021-01-01T17:06:47.089483+00:00", + "last_used_ip": "172.30.32.2" } ] } diff --git a/.storage/core.config_entries b/.storage/core.config_entries index ff2b658..74a13f3 100644 --- a/.storage/core.config_entries +++ b/.storage/core.config_entries @@ -52,42 +52,6 @@ "connection_class": "local_push", "unique_id": null }, - { - "entry_id": "9436e71647e64581a19a2cc8172f9a35", - "version": 1, - "domain": "esphome", - "title": "inside_temp_humd", - "data": { - "host": "10.0.0.180", - "password": "", - "port": 6053 - }, - "options": {}, - "system_options": { - "disable_new_entities": false - }, - "source": "zeroconf", - "connection_class": "local_push", - "unique_id": "inside_temp_humd" - }, - { - "entry_id": "cf5266d3fa4a4824850935818193ac48", - "version": 1, - "domain": "esphome", - "title": "outside_temp_humd", - "data": { - "host": "10.0.0.222", - "password": "", - "port": 6053 - }, - "options": {}, - "system_options": { - "disable_new_entities": false - }, - "source": "user", - "connection_class": "local_push", - "unique_id": "outside_temp_humd" - }, { "entry_id": "3ed789ad543542018f094a6d3d209d9a", "version": 1, @@ -215,6 +179,53 @@ "source": "user", "connection_class": "cloud_poll", "unique_id": null + }, + { + "entry_id": "e3331a90c176db53203e617de248ec9e", + "version": 1, + "domain": "mobile_app", + "title": "Lenovo TB-X606F", + "data": { + "app_id": "io.homeassistant.companion.android", + "app_name": "Home Assistant", + "app_version": "3.0.2-full (521)", + "device_name": "Lenovo TB-X606F", + "manufacturer": "LENOVO", + "model": "Lenovo TB-X606F", + "os_name": "Android", + "os_version": "29", + "supports_encryption": false, + "app_data": { + "push_url": "https://mobile-apps.home-assistant.io/api/sendPush/android/v1", + "push_token": "eYx84w81T5yJ9Q26-sMBWu:APA91bHEockNh6OSntVWD9rFGWU-g3NFkV-ULRPgjhRSp_O-i2FR4xFd-xg1z83TTn5Xx6Bo99oz0q-NEnNPmMF7g4apHEvkWbg38PxHI_nLArWv2ClDpqYIJ0sssI2it4lzP98Da1Nr" + }, + "device_id": "61f299924dae5227", + "webhook_id": "dccd13d57c9e6da9b4ec0933cd84df31c2fe381961b578a52829ed31c4949573", + "user_id": "99685dc45d9f40dc8183e11ce5128038" + }, + "options": {}, + "system_options": { + "disable_new_entities": false + }, + "source": "registration", + "connection_class": "cloud_push", + "unique_id": "io.homeassistant.companion.android-61f299924dae5227" + }, + { + "entry_id": "af77dd99c573b3a23fc24b2f1054b90c", + "version": 1, + "domain": "tasmota", + "title": "Tasmota", + "data": { + "discovery_prefix": "tasmota/discovery" + }, + "options": {}, + "system_options": { + "disable_new_entities": false + }, + "source": "mqtt", + "connection_class": "local_push", + "unique_id": "tasmota" } ] } diff --git a/.storage/core.device_registry b/.storage/core.device_registry index ff7a1b3..16d2658 100644 --- a/.storage/core.device_registry +++ b/.storage/core.device_registry @@ -47,50 +47,6 @@ "name_by_user": null, "disabled_by": null }, - { - "config_entries": [ - "9436e71647e64581a19a2cc8172f9a35" - ], - "connections": [ - [ - "mac", - "84:f3:eb:3b:77:30" - ] - ], - "identifiers": [], - "manufacturer": "espressif", - "model": "PLATFORMIO_D1_MINI", - "name": "inside_temp_humd", - "sw_version": "1.15.3 (Nov 15 2020, 07:10:38)", - "entry_type": null, - "id": "1883f8cbd6b548b992e9a1974008f81f", - "via_device_id": null, - "area_id": null, - "name_by_user": null, - "disabled_by": null - }, - { - "config_entries": [ - "cf5266d3fa4a4824850935818193ac48" - ], - "connections": [ - [ - "mac", - "84:f3:eb:3b:84:92" - ] - ], - "identifiers": [], - "manufacturer": "espressif", - "model": "PLATFORMIO_D1_MINI", - "name": "outside_temp_humd", - "sw_version": "1.15.3 (Dec 16 2020, 15:18:17)", - "entry_type": null, - "id": "207200b764c24bb2ac697f37d7c8b4e2", - "via_device_id": null, - "area_id": null, - "name_by_user": null, - "disabled_by": null - }, { "config_entries": [ "b7c6f2ecbb0d48ce83a92d218b4e129c" @@ -178,6 +134,50 @@ "area_id": null, "name_by_user": null, "disabled_by": null + }, + { + "config_entries": [ + "e3331a90c176db53203e617de248ec9e" + ], + "connections": [], + "identifiers": [ + [ + "mobile_app", + "61f299924dae5227" + ] + ], + "manufacturer": "LENOVO", + "model": "Lenovo TB-X606F", + "name": "Lenovo TB-X606F", + "sw_version": "29", + "entry_type": null, + "id": "156bac68252bf0e9b52c41c992b92676", + "via_device_id": null, + "area_id": null, + "name_by_user": null, + "disabled_by": null + }, + { + "config_entries": [ + "af77dd99c573b3a23fc24b2f1054b90c" + ], + "connections": [ + [ + "mac", + "84:f3:eb:3b:84:92" + ] + ], + "identifiers": [], + "manufacturer": "Tasmota", + "model": "Generic", + "name": "Tasmota", + "sw_version": "9.2.0", + "entry_type": null, + "id": "96f92e495500e6b51b8afbfe8544eb9a", + "via_device_id": null, + "area_id": null, + "name_by_user": null, + "disabled_by": null } ], "deleted_devices": [] diff --git a/.storage/core.entity_registry b/.storage/core.entity_registry index 1e18f25..6e1021b 100644 --- a/.storage/core.entity_registry +++ b/.storage/core.entity_registry @@ -258,23 +258,6 @@ "original_name": "700T1C", "original_icon": null }, - { - "entity_id": "sensor.outside_temperature_2", - "config_entry_id": "f2587c6a3ce34da5a1209b077a39d931", - "device_id": "93560a2f0c64414e8c1a69dbbf3bf97f", - "area_id": null, - "unique_id": "ESPsensoroutside_temperature", - "platform": "mqtt", - "name": null, - "icon": null, - "disabled_by": null, - "capabilities": {}, - "supported_features": 0, - "device_class": null, - "unit_of_measurement": "\u00b0C", - "original_name": "Outside Temperature", - "original_icon": "mdi:thermometer" - }, { "entity_id": "sensor.outside_humidity_2", "config_entry_id": "f2587c6a3ce34da5a1209b077a39d931", @@ -292,74 +275,6 @@ "original_name": "Outside Humidity", "original_icon": "mdi:water-percent" }, - { - "entity_id": "sensor.inside_temperature", - "config_entry_id": "9436e71647e64581a19a2cc8172f9a35", - "device_id": "1883f8cbd6b548b992e9a1974008f81f", - "area_id": null, - "unique_id": "inside_temp_humdsensorinside_temperature", - "platform": "esphome", - "name": null, - "icon": null, - "disabled_by": null, - "capabilities": {}, - "supported_features": 0, - "device_class": null, - "unit_of_measurement": "\u00b0C", - "original_name": "Inside Temperature", - "original_icon": "mdi:thermometer" - }, - { - "entity_id": "sensor.inside_humidity", - "config_entry_id": "9436e71647e64581a19a2cc8172f9a35", - "device_id": "1883f8cbd6b548b992e9a1974008f81f", - "area_id": null, - "unique_id": "inside_temp_humdsensorinside_humidity", - "platform": "esphome", - "name": null, - "icon": null, - "disabled_by": null, - "capabilities": {}, - "supported_features": 0, - "device_class": null, - "unit_of_measurement": "%", - "original_name": "Inside Humidity", - "original_icon": "mdi:water-percent" - }, - { - "entity_id": "sensor.outside_temperature", - "config_entry_id": "cf5266d3fa4a4824850935818193ac48", - "device_id": "207200b764c24bb2ac697f37d7c8b4e2", - "area_id": null, - "unique_id": "outside_temp_humdsensoroutside_temperature", - "platform": "esphome", - "name": null, - "icon": null, - "disabled_by": null, - "capabilities": {}, - "supported_features": 0, - "device_class": null, - "unit_of_measurement": "\u00b0C", - "original_name": "Outside Temperature", - "original_icon": "mdi:thermometer" - }, - { - "entity_id": "sensor.outside_humidity", - "config_entry_id": "cf5266d3fa4a4824850935818193ac48", - "device_id": "207200b764c24bb2ac697f37d7c8b4e2", - "area_id": null, - "unique_id": "outside_temp_humdsensoroutside_humidity", - "platform": "esphome", - "name": null, - "icon": null, - "disabled_by": null, - "capabilities": {}, - "supported_features": 0, - "device_class": null, - "unit_of_measurement": "%", - "original_name": "Outside Humidity", - "original_icon": "mdi:water-percent" - }, { "entity_id": "sensor.700t1c_battery_level", "config_entry_id": "2872c3dbbf1246c2b7aab8c616984183", @@ -1770,6 +1685,329 @@ "unit_of_measurement": "pending update(s)", "original_name": "hacs", "original_icon": "hacs:hacs" + }, + { + "entity_id": "device_tracker.lenovo_tb_x606f", + "config_entry_id": "e3331a90c176db53203e617de248ec9e", + "device_id": "156bac68252bf0e9b52c41c992b92676", + "area_id": null, + "unique_id": "61f299924dae5227", + "platform": "mobile_app", + "name": null, + "icon": null, + "disabled_by": null, + "capabilities": {}, + "supported_features": 0, + "device_class": null, + "unit_of_measurement": null, + "original_name": "Lenovo TB-X606F", + "original_icon": null + }, + { + "entity_id": "sensor.lenovo_tb_x606f_battery_level", + "config_entry_id": "e3331a90c176db53203e617de248ec9e", + "device_id": "156bac68252bf0e9b52c41c992b92676", + "area_id": null, + "unique_id": "dccd13d57c9e6da9b4ec0933cd84df31c2fe381961b578a52829ed31c4949573_battery_level", + "platform": "mobile_app", + "name": null, + "icon": null, + "disabled_by": null, + "capabilities": {}, + "supported_features": 0, + "device_class": "battery", + "unit_of_measurement": "%", + "original_name": "Lenovo TB-X606F Battery Level", + "original_icon": "mdi:battery-40" + }, + { + "entity_id": "sensor.lenovo_tb_x606f_battery_state", + "config_entry_id": "e3331a90c176db53203e617de248ec9e", + "device_id": "156bac68252bf0e9b52c41c992b92676", + "area_id": null, + "unique_id": "dccd13d57c9e6da9b4ec0933cd84df31c2fe381961b578a52829ed31c4949573_battery_state", + "platform": "mobile_app", + "name": null, + "icon": null, + "disabled_by": null, + "capabilities": {}, + "supported_features": 0, + "device_class": null, + "unit_of_measurement": null, + "original_name": "Lenovo TB-X606F Battery State", + "original_icon": "mdi:battery-minus" + }, + { + "entity_id": "binary_sensor.lenovo_tb_x606f_is_charging", + "config_entry_id": "e3331a90c176db53203e617de248ec9e", + "device_id": "156bac68252bf0e9b52c41c992b92676", + "area_id": null, + "unique_id": "dccd13d57c9e6da9b4ec0933cd84df31c2fe381961b578a52829ed31c4949573_is_charging", + "platform": "mobile_app", + "name": null, + "icon": null, + "disabled_by": null, + "capabilities": {}, + "supported_features": 0, + "device_class": "plug", + "unit_of_measurement": null, + "original_name": "Lenovo TB-X606F Is Charging", + "original_icon": "mdi:power-plug-off" + }, + { + "entity_id": "sensor.lenovo_tb_x606f_charger_type", + "config_entry_id": "e3331a90c176db53203e617de248ec9e", + "device_id": "156bac68252bf0e9b52c41c992b92676", + "area_id": null, + "unique_id": "dccd13d57c9e6da9b4ec0933cd84df31c2fe381961b578a52829ed31c4949573_charger_type", + "platform": "mobile_app", + "name": null, + "icon": null, + "disabled_by": null, + "capabilities": {}, + "supported_features": 0, + "device_class": null, + "unit_of_measurement": null, + "original_name": "Lenovo TB-X606F Charger Type", + "original_icon": "mdi:power-plug" + }, + { + "entity_id": "sensor.lenovo_tb_x606f_battery_health", + "config_entry_id": "e3331a90c176db53203e617de248ec9e", + "device_id": "156bac68252bf0e9b52c41c992b92676", + "area_id": null, + "unique_id": "dccd13d57c9e6da9b4ec0933cd84df31c2fe381961b578a52829ed31c4949573_battery_health", + "platform": "mobile_app", + "name": null, + "icon": null, + "disabled_by": null, + "capabilities": {}, + "supported_features": 0, + "device_class": null, + "unit_of_measurement": null, + "original_name": "Lenovo TB-X606F Battery Health", + "original_icon": "mdi:battery-heart-variant" + }, + { + "entity_id": "input_number.stone_room_min_temp", + "config_entry_id": null, + "device_id": null, + "area_id": null, + "unique_id": "stone_room_min_temp", + "platform": "input_number", + "name": null, + "icon": null, + "disabled_by": null, + "capabilities": {}, + "supported_features": 0, + "device_class": null, + "unit_of_measurement": null, + "original_name": "Stone Room Minimum Set Temperature", + "original_icon": null + }, + { + "entity_id": "sensor.tasmota_ip", + "config_entry_id": "af77dd99c573b3a23fc24b2f1054b90c", + "device_id": "96f92e495500e6b51b8afbfe8544eb9a", + "area_id": null, + "unique_id": "84F3EB3B8492_status_sensor_status_sensor_status_ip", + "platform": "tasmota", + "name": null, + "icon": null, + "disabled_by": "integration", + "capabilities": null, + "supported_features": 0, + "device_class": null, + "unit_of_measurement": null, + "original_name": "Tasmota IP", + "original_icon": "mdi:ip-network" + }, + { + "entity_id": "sensor.tasmota_last_restart_time", + "config_entry_id": "af77dd99c573b3a23fc24b2f1054b90c", + "device_id": "96f92e495500e6b51b8afbfe8544eb9a", + "area_id": null, + "unique_id": "84F3EB3B8492_status_sensor_status_sensor_last_restart_time", + "platform": "tasmota", + "name": null, + "icon": null, + "disabled_by": "integration", + "capabilities": null, + "supported_features": 0, + "device_class": "timestamp", + "unit_of_measurement": null, + "original_name": "Tasmota Last Restart Time", + "original_icon": null + }, + { + "entity_id": "sensor.tasmota_wifi_connect_count", + "config_entry_id": "af77dd99c573b3a23fc24b2f1054b90c", + "device_id": "96f92e495500e6b51b8afbfe8544eb9a", + "area_id": null, + "unique_id": "84F3EB3B8492_status_sensor_status_sensor_status_link_count", + "platform": "tasmota", + "name": null, + "icon": null, + "disabled_by": "integration", + "capabilities": null, + "supported_features": 0, + "device_class": null, + "unit_of_measurement": null, + "original_name": "Tasmota WiFi Connect Count", + "original_icon": "mdi:counter" + }, + { + "entity_id": "sensor.tasmota_mqtt_connect_count", + "config_entry_id": "af77dd99c573b3a23fc24b2f1054b90c", + "device_id": "96f92e495500e6b51b8afbfe8544eb9a", + "area_id": null, + "unique_id": "84F3EB3B8492_status_sensor_status_sensor_status_mqtt_count", + "platform": "tasmota", + "name": null, + "icon": null, + "disabled_by": "integration", + "capabilities": null, + "supported_features": 0, + "device_class": null, + "unit_of_measurement": null, + "original_name": "Tasmota MQTT Connect Count", + "original_icon": "mdi:counter" + }, + { + "entity_id": "sensor.tasmota_restart_reason", + "config_entry_id": "af77dd99c573b3a23fc24b2f1054b90c", + "device_id": "96f92e495500e6b51b8afbfe8544eb9a", + "area_id": null, + "unique_id": "84F3EB3B8492_status_sensor_status_sensor_status_restart_reason", + "platform": "tasmota", + "name": null, + "icon": null, + "disabled_by": "integration", + "capabilities": null, + "supported_features": 0, + "device_class": null, + "unit_of_measurement": null, + "original_name": "Tasmota Restart Reason", + "original_icon": "mdi:information-outline" + }, + { + "entity_id": "sensor.tasmota_rssi", + "config_entry_id": "af77dd99c573b3a23fc24b2f1054b90c", + "device_id": "96f92e495500e6b51b8afbfe8544eb9a", + "area_id": null, + "unique_id": "84F3EB3B8492_status_sensor_status_sensor_status_rssi", + "platform": "tasmota", + "name": null, + "icon": null, + "disabled_by": "integration", + "capabilities": null, + "supported_features": 0, + "device_class": null, + "unit_of_measurement": "%", + "original_name": "Tasmota RSSI", + "original_icon": "mdi:access-point" + }, + { + "entity_id": "sensor.tasmota_signal", + "config_entry_id": "af77dd99c573b3a23fc24b2f1054b90c", + "device_id": "96f92e495500e6b51b8afbfe8544eb9a", + "area_id": null, + "unique_id": "84F3EB3B8492_status_sensor_status_sensor_status_signal", + "platform": "tasmota", + "name": null, + "icon": null, + "disabled_by": "integration", + "capabilities": null, + "supported_features": 0, + "device_class": "signal_strength", + "unit_of_measurement": "dB", + "original_name": "Tasmota Signal", + "original_icon": null + }, + { + "entity_id": "sensor.tasmota_ssid", + "config_entry_id": "af77dd99c573b3a23fc24b2f1054b90c", + "device_id": "96f92e495500e6b51b8afbfe8544eb9a", + "area_id": null, + "unique_id": "84F3EB3B8492_status_sensor_status_sensor_status_ssid", + "platform": "tasmota", + "name": null, + "icon": null, + "disabled_by": "integration", + "capabilities": null, + "supported_features": 0, + "device_class": null, + "unit_of_measurement": null, + "original_name": "Tasmota SSID", + "original_icon": "mdi:access-point-network" + }, + { + "entity_id": "switch.wemosstoneroom", + "config_entry_id": "af77dd99c573b3a23fc24b2f1054b90c", + "device_id": "96f92e495500e6b51b8afbfe8544eb9a", + "area_id": null, + "unique_id": "84F3EB3B8492_switch_relay_0", + "platform": "tasmota", + "name": null, + "icon": null, + "disabled_by": null, + "capabilities": null, + "supported_features": 0, + "device_class": null, + "unit_of_measurement": null, + "original_name": "wemosstoneroom", + "original_icon": null + }, + { + "entity_id": "sensor.tasmota_dht12_temperature", + "config_entry_id": "af77dd99c573b3a23fc24b2f1054b90c", + "device_id": "96f92e495500e6b51b8afbfe8544eb9a", + "area_id": null, + "unique_id": "84F3EB3B8492_sensor_sensor_DHT12_Temperature", + "platform": "tasmota", + "name": null, + "icon": null, + "disabled_by": null, + "capabilities": null, + "supported_features": 0, + "device_class": "temperature", + "unit_of_measurement": "\u00b0C", + "original_name": "Tasmota DHT12 Temperature", + "original_icon": null + }, + { + "entity_id": "sensor.tasmota_dht12_humidity", + "config_entry_id": "af77dd99c573b3a23fc24b2f1054b90c", + "device_id": "96f92e495500e6b51b8afbfe8544eb9a", + "area_id": null, + "unique_id": "84F3EB3B8492_sensor_sensor_DHT12_Humidity", + "platform": "tasmota", + "name": null, + "icon": null, + "disabled_by": null, + "capabilities": null, + "supported_features": 0, + "device_class": "humidity", + "unit_of_measurement": "%", + "original_name": "Tasmota DHT12 Humidity", + "original_icon": null + }, + { + "entity_id": "sensor.tasmota_dht12_dewpoint", + "config_entry_id": "af77dd99c573b3a23fc24b2f1054b90c", + "device_id": "96f92e495500e6b51b8afbfe8544eb9a", + "area_id": null, + "unique_id": "84F3EB3B8492_sensor_sensor_DHT12_DewPoint", + "platform": "tasmota", + "name": null, + "icon": null, + "disabled_by": null, + "capabilities": null, + "supported_features": 0, + "device_class": null, + "unit_of_measurement": "\u00b0C", + "original_name": "Tasmota DHT12 DewPoint", + "original_icon": "mdi:weather-rainy" } ] } diff --git a/.storage/core.restore_state b/.storage/core.restore_state index e1b4522..28be3f0 100644 --- a/.storage/core.restore_state +++ b/.storage/core.restore_state @@ -9,18 +9,361 @@ "attributes": { "editable": true, "id": "sysadmin", + "source": "person.sysadmin", "user_id": "99685dc45d9f40dc8183e11ce5128038", "friendly_name": "sysadmin" }, - "last_changed": "2020-12-18T05:17:54.331168+00:00", - "last_updated": "2020-12-18T05:17:56.976964+00:00", + "last_changed": "2021-01-01T18:56:18.793639+00:00", + "last_updated": "2021-01-01T18:56:18.793639+00:00", "context": { - "id": "17f6241f61119df207ebdedf9519647d", + "id": "99a95c3681f48633ddc13fc40adf626e", "parent_id": null, "user_id": null } }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" + "last_seen": "2021-01-01T18:56:23.416488+00:00" + }, + { + "state": { + "entity_id": "variable.irrigation_next_trigger", + "state": "00:00:00", + "attributes": { + "friendly_name": "Countdown to Next Scheduled Run", + "icon": "mdi:alarm" + }, + "last_changed": "2021-01-01T18:56:19.337254+00:00", + "last_updated": "2021-01-01T18:56:19.337254+00:00", + "context": { + "id": "4c16189beea03df5b0c56b322830c3e9", + "parent_id": null, + "user_id": null + } + }, + "last_seen": "2021-01-01T18:56:23.416488+00:00" + }, + { + "state": { + "entity_id": "variable.irrigation_next_trigger_dt", + "state": "", + "attributes": { + "friendly_name": "Next Scheduled Run at", + "icon": "mdi:alarm" + }, + "last_changed": "2021-01-01T18:56:19.337317+00:00", + "last_updated": "2021-01-01T18:56:19.337317+00:00", + "context": { + "id": "9dbdf43e8cf5160adbb1d7772fd58540", + "parent_id": null, + "user_id": null + } + }, + "last_seen": "2021-01-01T18:56:23.416488+00:00" + }, + { + "state": { + "entity_id": "variable.irrigation_next_schedule_name", + "state": "", + "attributes": { + "friendly_name": "Next Schedule to Run", + "icon": "mdi:calendar" + }, + "last_changed": "2021-01-01T18:56:19.337369+00:00", + "last_updated": "2021-01-01T18:56:19.337369+00:00", + "context": { + "id": "f52f400fcc063b49559444353a6e8e48", + "parent_id": null, + "user_id": null + } + }, + "last_seen": "2021-01-01T18:56:23.416488+00:00" + }, + { + "state": { + "entity_id": "variable.irrigation_running_names", + "state": "", + "attributes": { + "friendly_name": "Zones Running Now", + "icon": "mdi:view-list" + }, + "last_changed": "2021-01-01T18:56:19.337464+00:00", + "last_updated": "2021-01-01T18:56:19.337464+00:00", + "context": { + "id": "1d0c5451b3573fbcc5b870675425300d", + "parent_id": null, + "user_id": null + } + }, + "last_seen": "2021-01-01T18:56:23.416488+00:00" + }, + { + "state": { + "entity_id": "variable.irrigation_queue_names", + "state": "", + "attributes": { + "friendly_name": "Zones Queued to Run", + "icon": "mdi:view-list" + }, + "last_changed": "2021-01-01T18:56:19.337503+00:00", + "last_updated": "2021-01-01T18:56:19.337503+00:00", + "context": { + "id": "aaa24f9aa8b07ca4608090ba760d8c7d", + "parent_id": null, + "user_id": null + } + }, + "last_seen": "2021-01-01T18:56:23.416488+00:00" + }, + { + "state": { + "entity_id": "variable.irrigation_zone_1_schedule_countdown", + "state": "disabled", + "attributes": { + "icon": "mdi:timer-sand", + "friendly_name": "Countdown to Next Scheduled Run" + }, + "last_changed": "2021-01-01T18:56:19.337540+00:00", + "last_updated": "2021-01-01T18:56:19.337540+00:00", + "context": { + "id": "9104da4ba78963900409b75d253da569", + "parent_id": null, + "user_id": null + } + }, + "last_seen": "2021-01-01T18:56:23.416488+00:00" + }, + { + "state": { + "entity_id": "variable.irrigation_zone_1_schedule_next_dt", + "state": "disabled", + "attributes": { + "friendly_name": "Time of Next Scheduled Run", + "icon": "mdi:clock" + }, + "last_changed": "2021-01-01T18:56:19.337574+00:00", + "last_updated": "2021-01-01T18:56:19.337574+00:00", + "context": { + "id": "53ce04af67ca65a05d2039d74e2bc001", + "parent_id": null, + "user_id": null + } + }, + "last_seen": "2021-01-01T18:56:23.416488+00:00" + }, + { + "state": { + "entity_id": "variable.irrigation_zone_2_schedule_countdown", + "state": "disabled", + "attributes": { + "icon": "mdi:timer-sand", + "friendly_name": "Countdown to Next Scheduled Run" + }, + "last_changed": "2021-01-01T18:56:19.337609+00:00", + "last_updated": "2021-01-01T18:56:19.337609+00:00", + "context": { + "id": "31a3f1bb30341c49372c4fe9ab7bceb1", + "parent_id": null, + "user_id": null + } + }, + "last_seen": "2021-01-01T18:56:23.416488+00:00" + }, + { + "state": { + "entity_id": "variable.irrigation_zone_2_schedule_next_dt", + "state": "disabled", + "attributes": { + "friendly_name": "Time of Next Scheduled Run", + "icon": "mdi:clock" + }, + "last_changed": "2021-01-01T18:56:19.337641+00:00", + "last_updated": "2021-01-01T18:56:19.337641+00:00", + "context": { + "id": "952c0ec946ac66bf21ad6702a7a17e60", + "parent_id": null, + "user_id": null + } + }, + "last_seen": "2021-01-01T18:56:23.416488+00:00" + }, + { + "state": { + "entity_id": "variable.irrigation_zone_3_schedule_countdown", + "state": "disabled", + "attributes": { + "icon": "mdi:timer-sand", + "friendly_name": "Countdown to Next Scheduled Run" + }, + "last_changed": "2021-01-01T18:56:19.337674+00:00", + "last_updated": "2021-01-01T18:56:19.337674+00:00", + "context": { + "id": "332bdaa0d49489b633d87a36378085c1", + "parent_id": null, + "user_id": null + } + }, + "last_seen": "2021-01-01T18:56:23.416488+00:00" + }, + { + "state": { + "entity_id": "variable.irrigation_zone_3_schedule_next_dt", + "state": "disabled", + "attributes": { + "friendly_name": "Time of Next Scheduled Run", + "icon": "mdi:clock" + }, + "last_changed": "2021-01-01T18:56:19.337705+00:00", + "last_updated": "2021-01-01T18:56:19.337705+00:00", + "context": { + "id": "53be914a1a4b5b80b9d05cc3cf92e8e8", + "parent_id": null, + "user_id": null + } + }, + "last_seen": "2021-01-01T18:56:23.416488+00:00" + }, + { + "state": { + "entity_id": "variable.irrigation_zone_4_schedule_countdown", + "state": "disabled", + "attributes": { + "icon": "mdi:timer-sand", + "friendly_name": "Countdown to Next Scheduled Run" + }, + "last_changed": "2021-01-01T18:56:19.337744+00:00", + "last_updated": "2021-01-01T18:56:19.337744+00:00", + "context": { + "id": "25c5ec89f495be6d6cd671999767565b", + "parent_id": null, + "user_id": null + } + }, + "last_seen": "2021-01-01T18:56:23.416488+00:00" + }, + { + "state": { + "entity_id": "variable.irrigation_zone_4_schedule_next_dt", + "state": "disabled", + "attributes": { + "friendly_name": "Time of Next Scheduled Run", + "icon": "mdi:clock" + }, + "last_changed": "2021-01-01T18:56:19.337776+00:00", + "last_updated": "2021-01-01T18:56:19.337776+00:00", + "context": { + "id": "83ea8527272f150be89ce0c85247e9d8", + "parent_id": null, + "user_id": null + } + }, + "last_seen": "2021-01-01T18:56:23.416488+00:00" + }, + { + "state": { + "entity_id": "variable.irrigation_zone_5_schedule_countdown", + "state": "disabled", + "attributes": { + "icon": "mdi:timer-sand", + "friendly_name": "Countdown to Next Scheduled Run" + }, + "last_changed": "2021-01-01T18:56:19.337809+00:00", + "last_updated": "2021-01-01T18:56:19.337809+00:00", + "context": { + "id": "96c6fe221ed88f594accdf1dc2ee7eb6", + "parent_id": null, + "user_id": null + } + }, + "last_seen": "2021-01-01T18:56:23.416488+00:00" + }, + { + "state": { + "entity_id": "variable.irrigation_zone_5_schedule_next_dt", + "state": "disabled", + "attributes": { + "friendly_name": "Time of Next Scheduled Run", + "icon": "mdi:clock" + }, + "last_changed": "2021-01-01T18:56:19.337841+00:00", + "last_updated": "2021-01-01T18:56:19.337841+00:00", + "context": { + "id": "eb9ec7cb1104001e79ea52866facb4bc", + "parent_id": null, + "user_id": null + } + }, + "last_seen": "2021-01-01T18:56:23.416488+00:00" + }, + { + "state": { + "entity_id": "variable.irrigation_zone_6_schedule_countdown", + "state": "disabled", + "attributes": { + "icon": "mdi:timer-sand", + "friendly_name": "Countdown to Next Scheduled Run" + }, + "last_changed": "2021-01-01T18:56:19.337873+00:00", + "last_updated": "2021-01-01T18:56:19.337873+00:00", + "context": { + "id": "2b8a2976d7864fab988c971d3fc7a658", + "parent_id": null, + "user_id": null + } + }, + "last_seen": "2021-01-01T18:56:23.416488+00:00" + }, + { + "state": { + "entity_id": "variable.irrigation_zone_6_schedule_next_dt", + "state": "disabled", + "attributes": { + "friendly_name": "Time of Next Scheduled Run", + "icon": "mdi:clock" + }, + "last_changed": "2021-01-01T18:56:19.337905+00:00", + "last_updated": "2021-01-01T18:56:19.337905+00:00", + "context": { + "id": "43b89e7d61d820f5147458e2eb61e5f7", + "parent_id": null, + "user_id": null + } + }, + "last_seen": "2021-01-01T18:56:23.416488+00:00" + }, + { + "state": { + "entity_id": "variable.irrigation_zone_7_schedule_countdown", + "state": "disabled", + "attributes": { + "icon": "mdi:timer-sand", + "friendly_name": "Countdown to Next Scheduled Run" + }, + "last_changed": "2021-01-01T18:56:19.337938+00:00", + "last_updated": "2021-01-01T18:56:19.337938+00:00", + "context": { + "id": "db97b58e03221d3f954ad1d0a0b8134b", + "parent_id": null, + "user_id": null + } + }, + "last_seen": "2021-01-01T18:56:23.416488+00:00" + }, + { + "state": { + "entity_id": "variable.irrigation_zone_7_schedule_next_dt", + "state": "disabled", + "attributes": { + "friendly_name": "Time of Next Scheduled Run", + "icon": "mdi:clock" + }, + "last_changed": "2021-01-01T18:56:19.337969+00:00", + "last_updated": "2021-01-01T18:56:19.337969+00:00", + "context": { + "id": "cd0acce849314d166d2145115cf4b20b", + "parent_id": null, + "user_id": null + } + }, + "last_seen": "2021-01-01T18:56:23.416488+00:00" }, { "state": { @@ -34,15 +377,15 @@ "friendly_name": "Repeat Every", "icon": "mdi:repeat" }, - "last_changed": "2020-12-18T05:17:54.949119+00:00", - "last_updated": "2020-12-18T05:17:54.949119+00:00", + "last_changed": "2021-01-01T18:56:19.338044+00:00", + "last_updated": "2021-01-01T18:56:19.338044+00:00", "context": { - "id": "2e32122c06e7444dfb872970ffa1bec0", + "id": "971995d6ec0375f2a23bdceae673d8a2", "parent_id": null, "user_id": null } }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" + "last_seen": "2021-01-01T18:56:23.416488+00:00" }, { "state": { @@ -56,15 +399,15 @@ "friendly_name": "Repeat Every", "icon": "mdi:repeat" }, - "last_changed": "2020-12-18T05:17:54.949180+00:00", - "last_updated": "2020-12-18T05:17:54.949180+00:00", + "last_changed": "2021-01-01T18:56:19.338095+00:00", + "last_updated": "2021-01-01T18:56:19.338095+00:00", "context": { - "id": "578cd7dc7903f7900f82b9c41ad920c9", + "id": "63d7f76851a1806821985862aed25b7a", "parent_id": null, "user_id": null } }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" + "last_seen": "2021-01-01T18:56:23.416488+00:00" }, { "state": { @@ -78,15 +421,15 @@ "friendly_name": "Repeat Every", "icon": "mdi:repeat" }, - "last_changed": "2020-12-18T05:17:54.949230+00:00", - "last_updated": "2020-12-18T05:17:54.949230+00:00", + "last_changed": "2021-01-01T18:56:19.338140+00:00", + "last_updated": "2021-01-01T18:56:19.338140+00:00", "context": { - "id": "283db67c0ca125a4d1bfd57907ad6468", + "id": "8ff39329c5323791e5deaa9a166555b8", "parent_id": null, "user_id": null } }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" + "last_seen": "2021-01-01T18:56:23.416488+00:00" }, { "state": { @@ -100,15 +443,15 @@ "friendly_name": "Repeat Every", "icon": "mdi:repeat" }, - "last_changed": "2020-12-18T05:17:54.949277+00:00", - "last_updated": "2020-12-18T05:17:54.949277+00:00", + "last_changed": "2021-01-01T18:56:19.338232+00:00", + "last_updated": "2021-01-01T18:56:19.338232+00:00", "context": { - "id": "3ad9b93923b9e8b32901f799d6d4263c", + "id": "741f5c867973aa3d99c6ada5c277fe2f", "parent_id": null, "user_id": null } }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" + "last_seen": "2021-01-01T18:56:23.416488+00:00" }, { "state": { @@ -122,15 +465,15 @@ "friendly_name": "Repeat Every", "icon": "mdi:repeat" }, - "last_changed": "2020-12-18T05:17:54.949322+00:00", - "last_updated": "2020-12-18T05:17:54.949322+00:00", + "last_changed": "2021-01-01T18:56:19.338277+00:00", + "last_updated": "2021-01-01T18:56:19.338277+00:00", "context": { - "id": "229ad9582151606637060eba8ee23f2f", + "id": "cb6f3f3366e393e4ac36773c073f6a78", "parent_id": null, "user_id": null } }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" + "last_seen": "2021-01-01T18:56:23.416488+00:00" }, { "state": { @@ -144,15 +487,15 @@ "friendly_name": "Repeat Every", "icon": "mdi:repeat" }, - "last_changed": "2020-12-18T05:17:54.949367+00:00", - "last_updated": "2020-12-18T05:17:54.949367+00:00", + "last_changed": "2021-01-01T18:56:19.338320+00:00", + "last_updated": "2021-01-01T18:56:19.338320+00:00", "context": { - "id": "7ccd1a8b6b8c86be9e94032834ab11fe", + "id": "a25fcec661881d1e305c72aae749d607", "parent_id": null, "user_id": null } }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" + "last_seen": "2021-01-01T18:56:23.416488+00:00" }, { "state": { @@ -166,670 +509,15 @@ "friendly_name": "Repeat Every", "icon": "mdi:repeat" }, - "last_changed": "2020-12-18T05:17:54.949411+00:00", - "last_updated": "2020-12-18T05:17:54.949411+00:00", + "last_changed": "2021-01-01T18:56:19.338362+00:00", + "last_updated": "2021-01-01T18:56:19.338362+00:00", "context": { - "id": "498ff249040f62d5049cd167d4d74ace", + "id": "2a353b7b3e2990980777c741fe3bda12", "parent_id": null, "user_id": null } }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" - }, - { - "state": { - "entity_id": "variable.irrigation_next_trigger", - "state": "00:00:00", - "attributes": { - "friendly_name": "Countdown to Next Scheduled Run", - "icon": "mdi:alarm" - }, - "last_changed": "2020-12-18T05:17:54.959231+00:00", - "last_updated": "2020-12-18T05:17:54.959231+00:00", - "context": { - "id": "725971c458b413a1095d32fed45b90e3", - "parent_id": null, - "user_id": null - } - }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" - }, - { - "state": { - "entity_id": "variable.irrigation_next_trigger_dt", - "state": "", - "attributes": { - "friendly_name": "Next Scheduled Run at", - "icon": "mdi:alarm" - }, - "last_changed": "2020-12-18T05:17:54.959293+00:00", - "last_updated": "2020-12-18T05:17:54.959293+00:00", - "context": { - "id": "14cacdbf5cffaf4967e94ca72398124b", - "parent_id": null, - "user_id": null - } - }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" - }, - { - "state": { - "entity_id": "variable.irrigation_next_schedule_name", - "state": "", - "attributes": { - "friendly_name": "Next Schedule to Run", - "icon": "mdi:calendar" - }, - "last_changed": "2020-12-18T05:17:54.959338+00:00", - "last_updated": "2020-12-18T05:17:54.959338+00:00", - "context": { - "id": "6a647cfa4d0c05c730c49d57a71e8deb", - "parent_id": null, - "user_id": null - } - }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" - }, - { - "state": { - "entity_id": "variable.irrigation_running_names", - "state": "", - "attributes": { - "friendly_name": "Zones Running Now", - "icon": "mdi:view-list" - }, - "last_changed": "2020-12-18T05:17:54.959392+00:00", - "last_updated": "2020-12-18T05:17:54.959392+00:00", - "context": { - "id": "2337d6132f74bc2860e32ea8cfc0e00e", - "parent_id": null, - "user_id": null - } - }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" - }, - { - "state": { - "entity_id": "variable.irrigation_queue_names", - "state": "", - "attributes": { - "friendly_name": "Zones Queued to Run", - "icon": "mdi:view-list" - }, - "last_changed": "2020-12-18T05:17:54.959443+00:00", - "last_updated": "2020-12-18T05:17:54.959443+00:00", - "context": { - "id": "fce29098ec41c086b95c39cc0df0fde7", - "parent_id": null, - "user_id": null - } - }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" - }, - { - "state": { - "entity_id": "variable.irrigation_zone_1_schedule_countdown", - "state": "disabled", - "attributes": { - "icon": "mdi:timer-sand", - "friendly_name": "Countdown to Next Scheduled Run" - }, - "last_changed": "2020-12-18T05:17:54.959482+00:00", - "last_updated": "2020-12-18T05:17:54.959482+00:00", - "context": { - "id": "1b9e07f42a6f283baf9a87fa8e01e00e", - "parent_id": null, - "user_id": null - } - }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" - }, - { - "state": { - "entity_id": "variable.irrigation_zone_1_schedule_next_dt", - "state": "disabled", - "attributes": { - "friendly_name": "Time of Next Scheduled Run", - "icon": "mdi:clock" - }, - "last_changed": "2020-12-18T05:17:54.959525+00:00", - "last_updated": "2020-12-18T05:17:54.959525+00:00", - "context": { - "id": "c7f2feb6fd6a42c649033940dcd25715", - "parent_id": null, - "user_id": null - } - }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" - }, - { - "state": { - "entity_id": "variable.irrigation_zone_2_schedule_countdown", - "state": "disabled", - "attributes": { - "icon": "mdi:timer-sand", - "friendly_name": "Countdown to Next Scheduled Run" - }, - "last_changed": "2020-12-18T05:17:54.959564+00:00", - "last_updated": "2020-12-18T05:17:54.959564+00:00", - "context": { - "id": "156834a3be0ea9d51bbe41c1fa72dd62", - "parent_id": null, - "user_id": null - } - }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" - }, - { - "state": { - "entity_id": "variable.irrigation_zone_2_schedule_next_dt", - "state": "disabled", - "attributes": { - "friendly_name": "Time of Next Scheduled Run", - "icon": "mdi:clock" - }, - "last_changed": "2020-12-18T05:17:54.959600+00:00", - "last_updated": "2020-12-18T05:17:54.959600+00:00", - "context": { - "id": "08fdc8eb1ea43412944ec15e8dbddac5", - "parent_id": null, - "user_id": null - } - }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" - }, - { - "state": { - "entity_id": "variable.irrigation_zone_3_schedule_countdown", - "state": "disabled", - "attributes": { - "icon": "mdi:timer-sand", - "friendly_name": "Countdown to Next Scheduled Run" - }, - "last_changed": "2020-12-18T05:17:54.959637+00:00", - "last_updated": "2020-12-18T05:17:54.959637+00:00", - "context": { - "id": "8d899ea654151440e0db32f5861ea077", - "parent_id": null, - "user_id": null - } - }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" - }, - { - "state": { - "entity_id": "variable.irrigation_zone_3_schedule_next_dt", - "state": "disabled", - "attributes": { - "friendly_name": "Time of Next Scheduled Run", - "icon": "mdi:clock" - }, - "last_changed": "2020-12-18T05:17:54.959674+00:00", - "last_updated": "2020-12-18T05:17:54.959674+00:00", - "context": { - "id": "3cd0b15c9cecd439a26a851f9f547cd5", - "parent_id": null, - "user_id": null - } - }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" - }, - { - "state": { - "entity_id": "variable.irrigation_zone_4_schedule_countdown", - "state": "disabled", - "attributes": { - "icon": "mdi:timer-sand", - "friendly_name": "Countdown to Next Scheduled Run" - }, - "last_changed": "2020-12-18T05:17:54.959711+00:00", - "last_updated": "2020-12-18T05:17:54.959711+00:00", - "context": { - "id": "6d42ea9db1e89738199b3a860cd1cb63", - "parent_id": null, - "user_id": null - } - }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" - }, - { - "state": { - "entity_id": "variable.irrigation_zone_4_schedule_next_dt", - "state": "disabled", - "attributes": { - "friendly_name": "Time of Next Scheduled Run", - "icon": "mdi:clock" - }, - "last_changed": "2020-12-18T05:17:54.959747+00:00", - "last_updated": "2020-12-18T05:17:54.959747+00:00", - "context": { - "id": "2ea1263efbada02421267e7a5737e1e2", - "parent_id": null, - "user_id": null - } - }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" - }, - { - "state": { - "entity_id": "variable.irrigation_zone_5_schedule_countdown", - "state": "disabled", - "attributes": { - "icon": "mdi:timer-sand", - "friendly_name": "Countdown to Next Scheduled Run" - }, - "last_changed": "2020-12-18T05:17:54.959783+00:00", - "last_updated": "2020-12-18T05:17:54.959783+00:00", - "context": { - "id": "39c4269e109a79add400d1a9b59854af", - "parent_id": null, - "user_id": null - } - }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" - }, - { - "state": { - "entity_id": "variable.irrigation_zone_5_schedule_next_dt", - "state": "disabled", - "attributes": { - "friendly_name": "Time of Next Scheduled Run", - "icon": "mdi:clock" - }, - "last_changed": "2020-12-18T05:17:54.959820+00:00", - "last_updated": "2020-12-18T05:17:54.959820+00:00", - "context": { - "id": "6c57e203884f16b18488346251950d59", - "parent_id": null, - "user_id": null - } - }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" - }, - { - "state": { - "entity_id": "variable.irrigation_zone_6_schedule_countdown", - "state": "disabled", - "attributes": { - "icon": "mdi:timer-sand", - "friendly_name": "Countdown to Next Scheduled Run" - }, - "last_changed": "2020-12-18T05:17:54.959858+00:00", - "last_updated": "2020-12-18T05:17:54.959858+00:00", - "context": { - "id": "b019d74fd1add9e8b7c525bf3a58ef5f", - "parent_id": null, - "user_id": null - } - }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" - }, - { - "state": { - "entity_id": "variable.irrigation_zone_6_schedule_next_dt", - "state": "disabled", - "attributes": { - "friendly_name": "Time of Next Scheduled Run", - "icon": "mdi:clock" - }, - "last_changed": "2020-12-18T05:17:54.959893+00:00", - "last_updated": "2020-12-18T05:17:54.959893+00:00", - "context": { - "id": "687021d24aabde4f1ae65f0c7dc78fc9", - "parent_id": null, - "user_id": null - } - }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" - }, - { - "state": { - "entity_id": "variable.irrigation_zone_7_schedule_countdown", - "state": "disabled", - "attributes": { - "icon": "mdi:timer-sand", - "friendly_name": "Countdown to Next Scheduled Run" - }, - "last_changed": "2020-12-18T05:17:54.959930+00:00", - "last_updated": "2020-12-18T05:17:54.959930+00:00", - "context": { - "id": "aa5e04fab899c92ee8feae6ac161c5f3", - "parent_id": null, - "user_id": null - } - }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" - }, - { - "state": { - "entity_id": "variable.irrigation_zone_7_schedule_next_dt", - "state": "disabled", - "attributes": { - "friendly_name": "Time of Next Scheduled Run", - "icon": "mdi:clock" - }, - "last_changed": "2020-12-18T05:17:54.959969+00:00", - "last_updated": "2020-12-18T05:17:54.959969+00:00", - "context": { - "id": "af9361d20174b35f259fbab5cd80f0e4", - "parent_id": null, - "user_id": null - } - }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" - }, - { - "state": { - "entity_id": "input_boolean.irrigation_pump", - "state": "off", - "attributes": { - "editable": false, - "friendly_name": "Well Pump", - "icon": "mdi:water-pump" - }, - "last_changed": "2020-12-18T05:17:54.962316+00:00", - "last_updated": "2020-12-18T05:17:54.962316+00:00", - "context": { - "id": "0fd708a27b68e1e5995adde91a6abbb8", - "parent_id": null, - "user_id": null - } - }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" - }, - { - "state": { - "entity_id": "input_boolean.irrigation_enabled", - "state": "off", - "attributes": { - "editable": false, - "friendly_name": "Irrigation System Enabled", - "icon": "mdi:water" - }, - "last_changed": "2020-12-18T05:17:54.962399+00:00", - "last_updated": "2020-12-18T05:17:54.962399+00:00", - "context": { - "id": "2d6137085650f3bc302d1689f4b280a1", - "parent_id": null, - "user_id": null - } - }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" - }, - { - "state": { - "entity_id": "input_boolean.irrigation_zone_1_schedule_enabled", - "state": "off", - "attributes": { - "editable": false, - "friendly_name": "Schedule (enabled/disabled)" - }, - "last_changed": "2020-12-18T05:17:54.962461+00:00", - "last_updated": "2020-12-18T05:17:54.962461+00:00", - "context": { - "id": "fe0a9d1a5b907794c523f69226a5882c", - "parent_id": null, - "user_id": null - } - }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" - }, - { - "state": { - "entity_id": "input_boolean.irrigation_zone_1_state", - "state": "off", - "attributes": { - "editable": false, - "friendly_name": "Zone State (manual override)" - }, - "last_changed": "2020-12-18T05:17:54.962519+00:00", - "last_updated": "2020-12-18T05:17:54.962519+00:00", - "context": { - "id": "1037c945aeb41bbeb768790b50c5cc0d", - "parent_id": null, - "user_id": null - } - }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" - }, - { - "state": { - "entity_id": "input_boolean.irrigation_zone_2_schedule_enabled", - "state": "off", - "attributes": { - "editable": false, - "friendly_name": "Schedule (enabled/disabled)" - }, - "last_changed": "2020-12-18T05:17:54.962580+00:00", - "last_updated": "2020-12-18T05:17:54.962580+00:00", - "context": { - "id": "dff6185ba690fa5f6aaaa98e2512b857", - "parent_id": null, - "user_id": null - } - }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" - }, - { - "state": { - "entity_id": "input_boolean.irrigation_zone_2_state", - "state": "off", - "attributes": { - "editable": false, - "friendly_name": "Zone State (manual override)" - }, - "last_changed": "2020-12-18T05:17:54.962639+00:00", - "last_updated": "2020-12-18T05:17:54.962639+00:00", - "context": { - "id": "3c7f0f3bc2c937e4615adef81c3cd039", - "parent_id": null, - "user_id": null - } - }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" - }, - { - "state": { - "entity_id": "input_boolean.irrigation_zone_3_schedule_enabled", - "state": "off", - "attributes": { - "editable": false, - "friendly_name": "Schedule (enabled/disabled)" - }, - "last_changed": "2020-12-18T05:17:54.962701+00:00", - "last_updated": "2020-12-18T05:17:54.962701+00:00", - "context": { - "id": "f9cb68623b255284f705b178a9e5ce8a", - "parent_id": null, - "user_id": null - } - }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" - }, - { - "state": { - "entity_id": "input_boolean.irrigation_zone_3_state", - "state": "off", - "attributes": { - "editable": false, - "friendly_name": "Zone State (manual override)" - }, - "last_changed": "2020-12-18T05:17:54.962756+00:00", - "last_updated": "2020-12-18T05:17:54.962756+00:00", - "context": { - "id": "b620935bca56cb766cbe15fbb11483bb", - "parent_id": null, - "user_id": null - } - }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" - }, - { - "state": { - "entity_id": "input_boolean.irrigation_zone_4_schedule_enabled", - "state": "off", - "attributes": { - "editable": false, - "friendly_name": "Schedule (enabled/disabled)" - }, - "last_changed": "2020-12-18T05:17:54.962810+00:00", - "last_updated": "2020-12-18T05:17:54.962810+00:00", - "context": { - "id": "02099eef5b96b8c8179c6a1dd05dcdfc", - "parent_id": null, - "user_id": null - } - }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" - }, - { - "state": { - "entity_id": "input_boolean.irrigation_zone_4_state", - "state": "off", - "attributes": { - "editable": false, - "friendly_name": "Zone State (manual override)" - }, - "last_changed": "2020-12-18T05:17:54.962864+00:00", - "last_updated": "2020-12-18T05:17:54.962864+00:00", - "context": { - "id": "566777e368ebd2161989500148f5c80f", - "parent_id": null, - "user_id": null - } - }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" - }, - { - "state": { - "entity_id": "input_boolean.irrigation_zone_5_schedule_enabled", - "state": "off", - "attributes": { - "editable": false, - "friendly_name": "Schedule (enabled/disabled)" - }, - "last_changed": "2020-12-18T05:17:54.962917+00:00", - "last_updated": "2020-12-18T05:17:54.962917+00:00", - "context": { - "id": "cc10fcb93b91da345163a68e2dbd1df4", - "parent_id": null, - "user_id": null - } - }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" - }, - { - "state": { - "entity_id": "input_boolean.irrigation_zone_5_state", - "state": "off", - "attributes": { - "editable": false, - "friendly_name": "Zone State (manual override)" - }, - "last_changed": "2020-12-18T05:17:54.962969+00:00", - "last_updated": "2020-12-18T05:17:54.962969+00:00", - "context": { - "id": "d4d028e1813bd93ee43b94275d5d83bc", - "parent_id": null, - "user_id": null - } - }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" - }, - { - "state": { - "entity_id": "input_boolean.irrigation_zone_6_schedule_enabled", - "state": "off", - "attributes": { - "editable": false, - "friendly_name": "Schedule (enabled/disabled)" - }, - "last_changed": "2020-12-18T05:17:54.963023+00:00", - "last_updated": "2020-12-18T05:17:54.963023+00:00", - "context": { - "id": "e9c30505728cc9e0dbaaf13958017961", - "parent_id": null, - "user_id": null - } - }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" - }, - { - "state": { - "entity_id": "input_boolean.irrigation_zone_6_state", - "state": "off", - "attributes": { - "editable": false, - "friendly_name": "Zone State (manual override)" - }, - "last_changed": "2020-12-18T05:17:54.963078+00:00", - "last_updated": "2020-12-18T05:17:54.963078+00:00", - "context": { - "id": "0026d3cbc4a2bafba8807f53820818ca", - "parent_id": null, - "user_id": null - } - }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" - }, - { - "state": { - "entity_id": "input_boolean.irrigation_zone_7_schedule_enabled", - "state": "off", - "attributes": { - "editable": false, - "friendly_name": "Schedule (enabled/disabled)" - }, - "last_changed": "2020-12-18T05:17:54.963133+00:00", - "last_updated": "2020-12-18T05:17:54.963133+00:00", - "context": { - "id": "07e1430b970f901932a4e752e8c1b5f6", - "parent_id": null, - "user_id": null - } - }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" - }, - { - "state": { - "entity_id": "input_boolean.irrigation_zone_7_state", - "state": "off", - "attributes": { - "editable": false, - "friendly_name": "Zone State (manual override)" - }, - "last_changed": "2020-12-18T05:17:54.963187+00:00", - "last_updated": "2020-12-18T05:17:54.963187+00:00", - "context": { - "id": "8b30df43d94fcc5d94bfad23ade095d9", - "parent_id": null, - "user_id": null - } - }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" - }, - { - "state": { - "entity_id": "input_datetime.security_lights_interior_time_off", - "state": "22:30:00", - "attributes": { - "editable": false, - "has_date": false, - "has_time": true, - "hour": 22, - "minute": 30, - "second": 0, - "timestamp": 81000 - }, - "last_changed": "2020-12-18T05:17:54.970235+00:00", - "last_updated": "2020-12-18T05:17:54.970235+00:00", - "context": { - "id": "de72231b35d5400c8b53d561bd18c3b8", - "parent_id": null, - "user_id": null - } - }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" + "last_seen": "2021-01-01T18:56:23.416488+00:00" }, { "state": { @@ -846,15 +534,38 @@ "friendly_name": "Fan On Set Temperature (C)", "icon": "mdi:target" }, - "last_changed": "2020-12-18T05:17:54.970928+00:00", - "last_updated": "2020-12-18T05:17:54.970928+00:00", + "last_changed": "2021-01-01T18:56:19.380302+00:00", + "last_updated": "2021-01-01T18:56:19.380302+00:00", "context": { - "id": "fbb9fe312c1d46e50fbc6ffdcd35a825", + "id": "514230ace07cc7cdd6b38971f8810616", "parent_id": null, "user_id": null } }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" + "last_seen": "2021-01-01T18:56:23.416488+00:00" + }, + { + "state": { + "entity_id": "input_number.stone_room_min_temp", + "state": "37.0", + "attributes": { + "initial": null, + "editable": false, + "min": 34.0, + "max": 50.0, + "step": 1.0, + "mode": "box", + "friendly_name": "Stone Room Minimum Set Temperature" + }, + "last_changed": "2021-01-01T18:56:19.380381+00:00", + "last_updated": "2021-01-01T18:56:19.380381+00:00", + "context": { + "id": "2a6dc90e4a9a60e7cbd023f5a52f77e4", + "parent_id": null, + "user_id": null + } + }, + "last_seen": "2021-01-01T18:56:23.416488+00:00" }, { "state": { @@ -870,15 +581,15 @@ "friendly_name": "Duration in minutes", "icon": "mdi:timer-sand" }, - "last_changed": "2020-12-18T05:17:54.971005+00:00", - "last_updated": "2020-12-18T05:17:54.971005+00:00", + "last_changed": "2021-01-01T18:56:19.380441+00:00", + "last_updated": "2021-01-01T18:56:19.380441+00:00", "context": { - "id": "9b3a7d5e7326e9da572f45f1a6369ac7", + "id": "b364d34c272a1fcfc4b61005431a6a35", "parent_id": null, "user_id": null } }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" + "last_seen": "2021-01-01T18:56:23.416488+00:00" }, { "state": { @@ -894,15 +605,15 @@ "friendly_name": "Hour of Day", "icon": "mdi:clock" }, - "last_changed": "2020-12-18T05:17:54.971048+00:00", - "last_updated": "2020-12-18T05:17:54.971048+00:00", + "last_changed": "2021-01-01T18:56:19.380482+00:00", + "last_updated": "2021-01-01T18:56:19.380482+00:00", "context": { - "id": "a2b5bd473f0c6c8f6c21f485079f6508", + "id": "39b9184e2c6a7cfbdf96294e827690ce", "parent_id": null, "user_id": null } }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" + "last_seen": "2021-01-01T18:56:23.416488+00:00" }, { "state": { @@ -918,15 +629,15 @@ "friendly_name": "Minute of Day", "icon": "mdi:clock" }, - "last_changed": "2020-12-18T05:17:54.971086+00:00", - "last_updated": "2020-12-18T05:17:54.971086+00:00", + "last_changed": "2021-01-01T18:56:19.380524+00:00", + "last_updated": "2021-01-01T18:56:19.380524+00:00", "context": { - "id": "ac54261fb31bb0799c20cea72ee64221", + "id": "853c5c021dfd36721ce8c4eeb8745f27", "parent_id": null, "user_id": null } }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" + "last_seen": "2021-01-01T18:56:23.416488+00:00" }, { "state": { @@ -942,15 +653,15 @@ "friendly_name": "Duration in minutes", "icon": "mdi:timer-sand" }, - "last_changed": "2020-12-18T05:17:54.971139+00:00", - "last_updated": "2020-12-18T05:17:54.971139+00:00", + "last_changed": "2021-01-01T18:56:19.380576+00:00", + "last_updated": "2021-01-01T18:56:19.380576+00:00", "context": { - "id": "1641ea859ece283d4378c010aa24e69d", + "id": "4292da93a7271c2e13f433da42e6c6a6", "parent_id": null, "user_id": null } }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" + "last_seen": "2021-01-01T18:56:23.416488+00:00" }, { "state": { @@ -966,15 +677,15 @@ "friendly_name": "Hour of Day", "icon": "mdi:clock" }, - "last_changed": "2020-12-18T05:17:54.971176+00:00", - "last_updated": "2020-12-18T05:17:54.971176+00:00", + "last_changed": "2021-01-01T18:56:19.380613+00:00", + "last_updated": "2021-01-01T18:56:19.380613+00:00", "context": { - "id": "1f21bc86130517a142f062340ff1e75a", + "id": "3afa2669795f836cc7644b3239ac4fc6", "parent_id": null, "user_id": null } }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" + "last_seen": "2021-01-01T18:56:23.416488+00:00" }, { "state": { @@ -990,15 +701,15 @@ "friendly_name": "Minute of Day", "icon": "mdi:clock" }, - "last_changed": "2020-12-18T05:17:54.971210+00:00", - "last_updated": "2020-12-18T05:17:54.971210+00:00", + "last_changed": "2021-01-01T18:56:19.380647+00:00", + "last_updated": "2021-01-01T18:56:19.380647+00:00", "context": { - "id": "6cdff65eb12cebd03dc95e2056c9e87b", + "id": "79b09b33a264d32763a712ed59f94962", "parent_id": null, "user_id": null } }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" + "last_seen": "2021-01-01T18:56:23.416488+00:00" }, { "state": { @@ -1014,15 +725,15 @@ "friendly_name": "Duration in minutes", "icon": "mdi:timer-sand" }, - "last_changed": "2020-12-18T05:17:54.971259+00:00", - "last_updated": "2020-12-18T05:17:54.971259+00:00", + "last_changed": "2021-01-01T18:56:19.380695+00:00", + "last_updated": "2021-01-01T18:56:19.380695+00:00", "context": { - "id": "3595792adc14128855faded7f7b24ea8", + "id": "0aa31bb5bab164788d9650fdc544deaf", "parent_id": null, "user_id": null } }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" + "last_seen": "2021-01-01T18:56:23.416488+00:00" }, { "state": { @@ -1038,15 +749,15 @@ "friendly_name": "Hour of Day", "icon": "mdi:clock" }, - "last_changed": "2020-12-18T05:17:54.971295+00:00", - "last_updated": "2020-12-18T05:17:54.971295+00:00", + "last_changed": "2021-01-01T18:56:19.380730+00:00", + "last_updated": "2021-01-01T18:56:19.380730+00:00", "context": { - "id": "c73e671d1c40e42550a2d13a6368742d", + "id": "f51c34e7a2fe3581249a5f45c08ae72b", "parent_id": null, "user_id": null } }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" + "last_seen": "2021-01-01T18:56:23.416488+00:00" }, { "state": { @@ -1062,15 +773,15 @@ "friendly_name": "Minute of Day", "icon": "mdi:clock" }, - "last_changed": "2020-12-18T05:17:54.971329+00:00", - "last_updated": "2020-12-18T05:17:54.971329+00:00", + "last_changed": "2021-01-01T18:56:19.380763+00:00", + "last_updated": "2021-01-01T18:56:19.380763+00:00", "context": { - "id": "7c803c2bf81464ed1b3befaaa53d37d1", + "id": "eb36e59ec9b3d851fb652709c7f21e4d", "parent_id": null, "user_id": null } }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" + "last_seen": "2021-01-01T18:56:23.416488+00:00" }, { "state": { @@ -1086,15 +797,15 @@ "friendly_name": "Duration in minutes", "icon": "mdi:timer-sand" }, - "last_changed": "2020-12-18T05:17:54.971378+00:00", - "last_updated": "2020-12-18T05:17:54.971378+00:00", + "last_changed": "2021-01-01T18:56:19.380811+00:00", + "last_updated": "2021-01-01T18:56:19.380811+00:00", "context": { - "id": "5d2e87c8755e575f829babc978416219", + "id": "0ed264943c686e1e44fb86ba6454582d", "parent_id": null, "user_id": null } }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" + "last_seen": "2021-01-01T18:56:23.416488+00:00" }, { "state": { @@ -1110,15 +821,15 @@ "friendly_name": "Hour of Day", "icon": "mdi:clock" }, - "last_changed": "2020-12-18T05:17:54.971421+00:00", - "last_updated": "2020-12-18T05:17:54.971421+00:00", + "last_changed": "2021-01-01T18:56:19.380847+00:00", + "last_updated": "2021-01-01T18:56:19.380847+00:00", "context": { - "id": "f1281f152c1673d06147b1c13b61f307", + "id": "c86aa6622bdd23678bf563cce5304c3a", "parent_id": null, "user_id": null } }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" + "last_seen": "2021-01-01T18:56:23.416488+00:00" }, { "state": { @@ -1134,15 +845,15 @@ "friendly_name": "Minute of Day", "icon": "mdi:clock" }, - "last_changed": "2020-12-18T05:17:54.971456+00:00", - "last_updated": "2020-12-18T05:17:54.971456+00:00", + "last_changed": "2021-01-01T18:56:19.380880+00:00", + "last_updated": "2021-01-01T18:56:19.380880+00:00", "context": { - "id": "a1d690255230b79f60166d7635f84654", + "id": "22c1282b75671fdd2afa8d19bdc7c7ad", "parent_id": null, "user_id": null } }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" + "last_seen": "2021-01-01T18:56:23.416488+00:00" }, { "state": { @@ -1158,15 +869,15 @@ "friendly_name": "Duration in minutes", "icon": "mdi:timer-sand" }, - "last_changed": "2020-12-18T05:17:54.971505+00:00", - "last_updated": "2020-12-18T05:17:54.971505+00:00", + "last_changed": "2021-01-01T18:56:19.380927+00:00", + "last_updated": "2021-01-01T18:56:19.380927+00:00", "context": { - "id": "4a8bebbac744883b3399a430ab694037", + "id": "c7d1cce709e4f17d73028aaf9f74674f", "parent_id": null, "user_id": null } }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" + "last_seen": "2021-01-01T18:56:23.416488+00:00" }, { "state": { @@ -1182,15 +893,15 @@ "friendly_name": "Hour of Day", "icon": "mdi:clock" }, - "last_changed": "2020-12-18T05:17:54.971541+00:00", - "last_updated": "2020-12-18T05:17:54.971541+00:00", + "last_changed": "2021-01-01T18:56:19.380962+00:00", + "last_updated": "2021-01-01T18:56:19.380962+00:00", "context": { - "id": "0b4e61f5d2c953800a1d731e8b4d72ec", + "id": "e7a2c6a14bca5cb1edf835d75270b073", "parent_id": null, "user_id": null } }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" + "last_seen": "2021-01-01T18:56:23.416488+00:00" }, { "state": { @@ -1206,15 +917,15 @@ "friendly_name": "Minute of Day", "icon": "mdi:clock" }, - "last_changed": "2020-12-18T05:17:54.971576+00:00", - "last_updated": "2020-12-18T05:17:54.971576+00:00", + "last_changed": "2021-01-01T18:56:19.380995+00:00", + "last_updated": "2021-01-01T18:56:19.380995+00:00", "context": { - "id": "36c124917f969d8c9b38dd09e2efc9a3", + "id": "7bed6e9a13f1ee02905d2a8c51ef2c6e", "parent_id": null, "user_id": null } }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" + "last_seen": "2021-01-01T18:56:23.416488+00:00" }, { "state": { @@ -1230,15 +941,15 @@ "friendly_name": "Duration in minutes", "icon": "mdi:timer-sand" }, - "last_changed": "2020-12-18T05:17:54.971622+00:00", - "last_updated": "2020-12-18T05:17:54.971622+00:00", + "last_changed": "2021-01-01T18:56:19.381041+00:00", + "last_updated": "2021-01-01T18:56:19.381041+00:00", "context": { - "id": "b8d33d045ba20fcad969aa6c70355e81", + "id": "a75554290eb5c9156b1ba0ed9b1f584f", "parent_id": null, "user_id": null } }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" + "last_seen": "2021-01-01T18:56:23.416488+00:00" }, { "state": { @@ -1254,15 +965,15 @@ "friendly_name": "Hour of Day", "icon": "mdi:clock" }, - "last_changed": "2020-12-18T05:17:54.971657+00:00", - "last_updated": "2020-12-18T05:17:54.971657+00:00", + "last_changed": "2021-01-01T18:56:19.381075+00:00", + "last_updated": "2021-01-01T18:56:19.381075+00:00", "context": { - "id": "4d742d40cfe8599819053e573e1425f9", + "id": "97f8f749fecc3a8a9536903818758681", "parent_id": null, "user_id": null } }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" + "last_seen": "2021-01-01T18:56:23.416488+00:00" }, { "state": { @@ -1278,15 +989,15 @@ "friendly_name": "Minute of Day", "icon": "mdi:clock" }, - "last_changed": "2020-12-18T05:17:54.971690+00:00", - "last_updated": "2020-12-18T05:17:54.971690+00:00", + "last_changed": "2021-01-01T18:56:19.381108+00:00", + "last_updated": "2021-01-01T18:56:19.381108+00:00", "context": { - "id": "6c2d6a8e49367b7fdf9f7dc0246ba3cc", + "id": "2a3170b4e217716534750233db4b02b4", "parent_id": null, "user_id": null } }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" + "last_seen": "2021-01-01T18:56:23.416488+00:00" }, { "state": { @@ -1302,15 +1013,15 @@ "friendly_name": "Duration in minutes", "icon": "mdi:timer-sand" }, - "last_changed": "2020-12-18T05:17:54.971737+00:00", - "last_updated": "2020-12-18T05:17:54.971737+00:00", + "last_changed": "2021-01-01T18:56:19.381154+00:00", + "last_updated": "2021-01-01T18:56:19.381154+00:00", "context": { - "id": "3e7280d07d951128d8d71a1924a1301b", + "id": "e9e943c1b6da80709f29143b4f1a209d", "parent_id": null, "user_id": null } }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" + "last_seen": "2021-01-01T18:56:23.416488+00:00" }, { "state": { @@ -1326,15 +1037,15 @@ "friendly_name": "Hour of Day", "icon": "mdi:clock" }, - "last_changed": "2020-12-18T05:17:54.971771+00:00", - "last_updated": "2020-12-18T05:17:54.971771+00:00", + "last_changed": "2021-01-01T18:56:19.381188+00:00", + "last_updated": "2021-01-01T18:56:19.381188+00:00", "context": { - "id": "523be4fee3e6e3bea4e4807fe9176aaa", + "id": "dd633a8148953c7ed7ba8c69e8275129", "parent_id": null, "user_id": null } }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" + "last_seen": "2021-01-01T18:56:23.416488+00:00" }, { "state": { @@ -1350,76 +1061,389 @@ "friendly_name": "Minute of Day", "icon": "mdi:clock" }, - "last_changed": "2020-12-18T05:17:54.971804+00:00", - "last_updated": "2020-12-18T05:17:54.971804+00:00", + "last_changed": "2021-01-01T18:56:19.381221+00:00", + "last_updated": "2021-01-01T18:56:19.381221+00:00", "context": { - "id": "431abf6f03ebdd22712b0dd3223cabfe", + "id": "e0e34901712fc039dacb1558d7b805df", "parent_id": null, "user_id": null } }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" + "last_seen": "2021-01-01T18:56:23.416488+00:00" + }, + { + "state": { + "entity_id": "input_boolean.irrigation_pump", + "state": "off", + "attributes": { + "editable": false, + "friendly_name": "Well Pump", + "icon": "mdi:water-pump" + }, + "last_changed": "2021-01-01T18:56:19.382085+00:00", + "last_updated": "2021-01-01T18:56:19.382085+00:00", + "context": { + "id": "7da77943bb36ad4a9d3ad7209c72d259", + "parent_id": null, + "user_id": null + } + }, + "last_seen": "2021-01-01T18:56:23.416488+00:00" + }, + { + "state": { + "entity_id": "input_boolean.irrigation_enabled", + "state": "off", + "attributes": { + "editable": false, + "friendly_name": "Irrigation System Enabled", + "icon": "mdi:water" + }, + "last_changed": "2021-01-01T18:56:19.382150+00:00", + "last_updated": "2021-01-01T18:56:19.382150+00:00", + "context": { + "id": "fc129cd1b0c051284c03923b3221d3b4", + "parent_id": null, + "user_id": null + } + }, + "last_seen": "2021-01-01T18:56:23.416488+00:00" + }, + { + "state": { + "entity_id": "input_boolean.irrigation_zone_1_schedule_enabled", + "state": "off", + "attributes": { + "editable": false, + "friendly_name": "Schedule (enabled/disabled)" + }, + "last_changed": "2021-01-01T18:56:19.382260+00:00", + "last_updated": "2021-01-01T18:56:19.382260+00:00", + "context": { + "id": "2b206df20264b99131ce0cae0b6dac72", + "parent_id": null, + "user_id": null + } + }, + "last_seen": "2021-01-01T18:56:23.416488+00:00" + }, + { + "state": { + "entity_id": "input_boolean.irrigation_zone_1_state", + "state": "off", + "attributes": { + "editable": false, + "friendly_name": "Zone State (manual override)" + }, + "last_changed": "2021-01-01T18:56:19.382312+00:00", + "last_updated": "2021-01-01T18:56:19.382312+00:00", + "context": { + "id": "e137d0bb59a421ea509dcbb722bf34a9", + "parent_id": null, + "user_id": null + } + }, + "last_seen": "2021-01-01T18:56:23.416488+00:00" + }, + { + "state": { + "entity_id": "input_boolean.irrigation_zone_2_schedule_enabled", + "state": "off", + "attributes": { + "editable": false, + "friendly_name": "Schedule (enabled/disabled)" + }, + "last_changed": "2021-01-01T18:56:19.382370+00:00", + "last_updated": "2021-01-01T18:56:19.382370+00:00", + "context": { + "id": "30f57d63f51bd0a8f3a7d6feb1157a59", + "parent_id": null, + "user_id": null + } + }, + "last_seen": "2021-01-01T18:56:23.416488+00:00" + }, + { + "state": { + "entity_id": "input_boolean.irrigation_zone_2_state", + "state": "off", + "attributes": { + "editable": false, + "friendly_name": "Zone State (manual override)" + }, + "last_changed": "2021-01-01T18:56:19.382437+00:00", + "last_updated": "2021-01-01T18:56:19.382437+00:00", + "context": { + "id": "ab0a1084e20be804b5dfe7e410060058", + "parent_id": null, + "user_id": null + } + }, + "last_seen": "2021-01-01T18:56:23.416488+00:00" + }, + { + "state": { + "entity_id": "input_boolean.irrigation_zone_3_schedule_enabled", + "state": "off", + "attributes": { + "editable": false, + "friendly_name": "Schedule (enabled/disabled)" + }, + "last_changed": "2021-01-01T18:56:19.382496+00:00", + "last_updated": "2021-01-01T18:56:19.382496+00:00", + "context": { + "id": "407e135e14917aed43ccba3cbdf2d27b", + "parent_id": null, + "user_id": null + } + }, + "last_seen": "2021-01-01T18:56:23.416488+00:00" + }, + { + "state": { + "entity_id": "input_boolean.irrigation_zone_3_state", + "state": "off", + "attributes": { + "editable": false, + "friendly_name": "Zone State (manual override)" + }, + "last_changed": "2021-01-01T18:56:19.382569+00:00", + "last_updated": "2021-01-01T18:56:19.382569+00:00", + "context": { + "id": "2eadfd0ffadba50bcf2798ab8970ef62", + "parent_id": null, + "user_id": null + } + }, + "last_seen": "2021-01-01T18:56:23.416488+00:00" + }, + { + "state": { + "entity_id": "input_boolean.irrigation_zone_4_schedule_enabled", + "state": "off", + "attributes": { + "editable": false, + "friendly_name": "Schedule (enabled/disabled)" + }, + "last_changed": "2021-01-01T18:56:19.382625+00:00", + "last_updated": "2021-01-01T18:56:19.382625+00:00", + "context": { + "id": "a5f0b49e041c2613885ffcf66521e410", + "parent_id": null, + "user_id": null + } + }, + "last_seen": "2021-01-01T18:56:23.416488+00:00" + }, + { + "state": { + "entity_id": "input_boolean.irrigation_zone_4_state", + "state": "off", + "attributes": { + "editable": false, + "friendly_name": "Zone State (manual override)" + }, + "last_changed": "2021-01-01T18:56:19.382672+00:00", + "last_updated": "2021-01-01T18:56:19.382672+00:00", + "context": { + "id": "ece91ee61d2a7acb09728dffcee46279", + "parent_id": null, + "user_id": null + } + }, + "last_seen": "2021-01-01T18:56:23.416488+00:00" + }, + { + "state": { + "entity_id": "input_boolean.irrigation_zone_5_schedule_enabled", + "state": "off", + "attributes": { + "editable": false, + "friendly_name": "Schedule (enabled/disabled)" + }, + "last_changed": "2021-01-01T18:56:19.382718+00:00", + "last_updated": "2021-01-01T18:56:19.382718+00:00", + "context": { + "id": "123a7d872f5217bec8ba3866ebb46251", + "parent_id": null, + "user_id": null + } + }, + "last_seen": "2021-01-01T18:56:23.416488+00:00" + }, + { + "state": { + "entity_id": "input_boolean.irrigation_zone_5_state", + "state": "off", + "attributes": { + "editable": false, + "friendly_name": "Zone State (manual override)" + }, + "last_changed": "2021-01-01T18:56:19.382764+00:00", + "last_updated": "2021-01-01T18:56:19.382764+00:00", + "context": { + "id": "9b823b797654a2732a63559343e830d9", + "parent_id": null, + "user_id": null + } + }, + "last_seen": "2021-01-01T18:56:23.416488+00:00" + }, + { + "state": { + "entity_id": "input_boolean.irrigation_zone_6_schedule_enabled", + "state": "off", + "attributes": { + "editable": false, + "friendly_name": "Schedule (enabled/disabled)" + }, + "last_changed": "2021-01-01T18:56:19.382810+00:00", + "last_updated": "2021-01-01T18:56:19.382810+00:00", + "context": { + "id": "a98fe0b7f9a3920f3a5367c27b885fcd", + "parent_id": null, + "user_id": null + } + }, + "last_seen": "2021-01-01T18:56:23.416488+00:00" + }, + { + "state": { + "entity_id": "input_boolean.irrigation_zone_6_state", + "state": "off", + "attributes": { + "editable": false, + "friendly_name": "Zone State (manual override)" + }, + "last_changed": "2021-01-01T18:56:19.382856+00:00", + "last_updated": "2021-01-01T18:56:19.382856+00:00", + "context": { + "id": "d6618fdfb7a65d2feddb9befdad14a17", + "parent_id": null, + "user_id": null + } + }, + "last_seen": "2021-01-01T18:56:23.416488+00:00" + }, + { + "state": { + "entity_id": "input_boolean.irrigation_zone_7_schedule_enabled", + "state": "off", + "attributes": { + "editable": false, + "friendly_name": "Schedule (enabled/disabled)" + }, + "last_changed": "2021-01-01T18:56:19.382901+00:00", + "last_updated": "2021-01-01T18:56:19.382901+00:00", + "context": { + "id": "82d8036936787230e5593d66fe02d8e2", + "parent_id": null, + "user_id": null + } + }, + "last_seen": "2021-01-01T18:56:23.416488+00:00" + }, + { + "state": { + "entity_id": "input_boolean.irrigation_zone_7_state", + "state": "off", + "attributes": { + "editable": false, + "friendly_name": "Zone State (manual override)" + }, + "last_changed": "2021-01-01T18:56:19.382951+00:00", + "last_updated": "2021-01-01T18:56:19.382951+00:00", + "context": { + "id": "74d52aef666a2b6e70708ee6572c9d3a", + "parent_id": null, + "user_id": null + } + }, + "last_seen": "2021-01-01T18:56:23.416488+00:00" + }, + { + "state": { + "entity_id": "input_datetime.security_lights_interior_time_off", + "state": "22:30:00", + "attributes": { + "editable": false, + "has_date": false, + "has_time": true, + "hour": 22, + "minute": 30, + "second": 0, + "timestamp": 81000 + }, + "last_changed": "2021-01-01T18:56:19.383051+00:00", + "last_updated": "2021-01-01T18:56:19.383051+00:00", + "context": { + "id": "5c3c08f7387b0f3579056c03de4a8698", + "parent_id": null, + "user_id": null + } + }, + "last_seen": "2021-01-01T18:56:23.416488+00:00" }, { "state": { "entity_id": "automation.system_set_custom_theme_at_startup", "state": "on", "attributes": { - "last_triggered": "2020-12-18T05:17:57.026979+00:00", + "last_triggered": "2021-01-01T17:07:08.682628+00:00", "mode": "single", "current": 0, "id": "themestartup", "friendly_name": "System - Set Custom Theme at Startup" }, - "last_changed": "2020-12-18T05:17:55.242289+00:00", - "last_updated": "2020-12-18T05:17:57.028823+00:00", + "last_changed": "2021-01-01T18:56:19.536980+00:00", + "last_updated": "2021-01-01T18:56:19.536980+00:00", "context": { - "id": "62231eb719e1e214ab0e50c2670bdb07", + "id": "f10a267a5305844b50e01434e3755f11", "parent_id": null, "user_id": null } }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" + "last_seen": "2021-01-01T18:56:23.416488+00:00" }, { "state": { "entity_id": "automation.restart_notification", "state": "on", "attributes": { - "last_triggered": "2020-12-18T05:17:57.027100+00:00", + "last_triggered": "2021-01-01T17:07:08.682755+00:00", "mode": "single", "current": 0, "friendly_name": "Restart Notification" }, - "last_changed": "2020-12-18T05:17:55.242894+00:00", - "last_updated": "2020-12-18T05:18:00.762974+00:00", + "last_changed": "2021-01-01T18:56:19.537091+00:00", + "last_updated": "2021-01-01T18:56:19.537091+00:00", "context": { - "id": "63bc6bfec1715b0f19cf4a3a4da50c40", + "id": "1aa23358b4852d0f42720102df135cd5", "parent_id": null, "user_id": null } }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" + "last_seen": "2021-01-01T18:56:23.416488+00:00" }, { "state": { "entity_id": "automation.closet_fan_on_set_temperature_slider", "state": "on", "attributes": { - "last_triggered": "2020-12-18T17:17:56.911373+00:00", + "last_triggered": "2021-01-01T18:56:02.955127+00:00", "mode": "single", "current": 0, "friendly_name": "Closet Fan On Set Temperature slider" }, - "last_changed": "2020-12-18T05:17:55.243006+00:00", - "last_updated": "2020-12-18T17:17:56.913542+00:00", + "last_changed": "2021-01-01T18:56:19.537183+00:00", + "last_updated": "2021-01-01T18:56:19.537183+00:00", "context": { - "id": "f2b88552c8e439bb37ec2962ad27c71f", + "id": "a2e33add46909d5a6e5aec191ad77516", "parent_id": null, "user_id": null } }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" + "last_seen": "2021-01-01T18:56:23.416488+00:00" }, { "state": { @@ -1431,75 +1455,75 @@ "current": 0, "friendly_name": "Closet Fan Temp Slider Moved" }, - "last_changed": "2020-12-18T05:17:55.243104+00:00", - "last_updated": "2020-12-18T05:17:55.243104+00:00", + "last_changed": "2021-01-01T18:56:19.537284+00:00", + "last_updated": "2021-01-01T18:56:19.537284+00:00", "context": { - "id": "ae33f3da21c7845b7e599f6a795e6e47", + "id": "95e32d5daa49e11ada34633c100d765e", "parent_id": null, "user_id": null } }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" + "last_seen": "2021-01-01T18:56:23.416488+00:00" }, { "state": { "entity_id": "automation.security_lights_interior_time_off", "state": "on", "attributes": { - "last_triggered": "2020-12-18T06:30:00.013043+00:00", + "last_triggered": "2021-01-01T06:30:00.011115+00:00", "mode": "single", "current": 0, "friendly_name": "security_lights_interior_time_off" }, - "last_changed": "2020-12-18T05:17:55.243204+00:00", - "last_updated": "2020-12-18T06:30:00.016998+00:00", + "last_changed": "2021-01-01T18:56:19.537372+00:00", + "last_updated": "2021-01-01T18:56:19.537372+00:00", "context": { - "id": "f04f90602160602038fc358f4a9f51fa", - "parent_id": "6a97937f16b939ba4bd4fd01f75fab41", + "id": "6c5434cec6911c244e53b599dc259108", + "parent_id": null, "user_id": null } }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" + "last_seen": "2021-01-01T18:56:23.416488+00:00" }, { "state": { "entity_id": "automation.security_lights_interior_time_on", "state": "on", "attributes": { - "last_triggered": null, + "last_triggered": "2020-12-31T23:39:30.005155+00:00", "mode": "single", "current": 0, "friendly_name": "security_lights_interior_time_on" }, - "last_changed": "2020-12-18T05:17:55.243294+00:00", - "last_updated": "2020-12-18T05:17:55.243294+00:00", + "last_changed": "2021-01-01T18:56:19.537457+00:00", + "last_updated": "2021-01-01T18:56:19.537457+00:00", "context": { - "id": "304099074057b4bfd739ad3c82c641f4", + "id": "121c40c3cb4b1aa4e60cd19701d85e45", "parent_id": null, "user_id": null } }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" + "last_seen": "2021-01-01T18:56:23.416488+00:00" }, { "state": { "entity_id": "automation.power_state_on_ha_start_up", "state": "on", "attributes": { - "last_triggered": "2020-12-18T05:17:57.027191+00:00", + "last_triggered": "2021-01-01T17:07:08.683048+00:00", "mode": "single", "current": 0, "friendly_name": "\u201cPower state on HA start-up\u201d" }, - "last_changed": "2020-12-18T05:17:55.243384+00:00", - "last_updated": "2020-12-18T05:17:57.055609+00:00", + "last_changed": "2021-01-01T18:56:19.537542+00:00", + "last_updated": "2021-01-01T18:56:19.537542+00:00", "context": { - "id": "69d439defd2c90fa1e9f6ce72a8a90e9", + "id": "b4d6102d9c0c95571bedf87775b788ac", "parent_id": null, "user_id": null } }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" + "last_seen": "2021-01-01T18:56:23.416488+00:00" }, { "state": { @@ -1508,15 +1532,15 @@ "attributes": { "friendly_name": "All Sonoffs on Network" }, - "last_changed": "2020-12-18T05:17:55.256398+00:00", - "last_updated": "2020-12-18T05:17:55.256398+00:00", + "last_changed": "2021-01-01T18:56:19.583141+00:00", + "last_updated": "2021-01-01T18:56:19.583141+00:00", "context": { - "id": "fe176a01b80863dec4fb255ac9cdab2f", + "id": "87efb260332fb0ec1a435fa6b6aafb41", "parent_id": null, "user_id": null } }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" + "last_seen": "2021-01-01T18:56:23.416488+00:00" }, { "state": { @@ -1526,15 +1550,15 @@ "friendly_name": "Fan Automation Enabled", "icon": "mdi:fan" }, - "last_changed": "2020-12-18T05:17:57.394370+00:00", - "last_updated": "2020-12-18T05:17:57.394370+00:00", + "last_changed": "2021-01-01T18:56:22.974668+00:00", + "last_updated": "2021-01-01T18:56:22.974668+00:00", "context": { - "id": "f76ebc2c38eb8173f770cff13e670e83", + "id": "755ea7db536cb093beea6544d4204ce5", "parent_id": null, "user_id": null } }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" + "last_seen": "2021-01-01T18:56:23.416488+00:00" }, { "state": { @@ -1543,15 +1567,15 @@ "attributes": { "friendly_name": "Sonoff White" }, - "last_changed": "2020-12-18T05:17:55.309908+00:00", - "last_updated": "2020-12-18T05:17:55.309908+00:00", + "last_changed": "2021-01-01T18:56:19.603303+00:00", + "last_updated": "2021-01-01T18:56:19.603303+00:00", "context": { - "id": "e47494199aca2ca734a32933369750f5", + "id": "e79445eaedf2f4252cf4ca3708cb1ed4", "parent_id": null, "user_id": null } }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" + "last_seen": "2021-01-01T18:56:23.416488+00:00" }, { "state": { @@ -1560,15 +1584,32 @@ "attributes": { "friendly_name": "Sonoff Brown" }, - "last_changed": "2020-12-18T05:17:55.310622+00:00", - "last_updated": "2020-12-18T05:17:55.310622+00:00", + "last_changed": "2021-01-01T18:56:19.604148+00:00", + "last_updated": "2021-01-01T18:56:19.604148+00:00", "context": { - "id": "f34fd110094fd0783a2628b795690b4a", + "id": "ac3051d6d681cfea4a1448a56a78beba", "parent_id": null, "user_id": null } }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" + "last_seen": "2021-01-01T18:56:23.416488+00:00" + }, + { + "state": { + "entity_id": "switch.stone_room_heating", + "state": "off", + "attributes": { + "friendly_name": "Stone Room Heating" + }, + "last_changed": "2021-01-01T18:56:19.604279+00:00", + "last_updated": "2021-01-01T18:56:19.604279+00:00", + "context": { + "id": "1e4a1b815aad75ea2dfe3f70f8c2645c", + "parent_id": null, + "user_id": null + } + }, + "last_seen": "2021-01-01T18:56:23.416488+00:00" }, { "state": { @@ -1577,15 +1618,15 @@ "attributes": { "friendly_name": "Outside North Circuit 1" }, - "last_changed": "2020-12-18T05:17:55.311313+00:00", - "last_updated": "2020-12-18T05:17:55.311313+00:00", + "last_changed": "2021-01-01T18:56:19.609946+00:00", + "last_updated": "2021-01-01T18:56:19.609946+00:00", "context": { - "id": "c521ff27221dc320840f3f08ab84a291", + "id": "d29890b242bcc73d08bf922d1eb2f0c3", "parent_id": null, "user_id": null } }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" + "last_seen": "2021-01-01T18:56:23.416488+00:00" }, { "state": { @@ -1594,15 +1635,15 @@ "attributes": { "friendly_name": "Outside North Circuit 2" }, - "last_changed": "2020-12-18T05:17:55.311530+00:00", - "last_updated": "2020-12-18T05:17:55.311530+00:00", + "last_changed": "2021-01-01T18:56:19.610669+00:00", + "last_updated": "2021-01-01T18:56:19.610669+00:00", "context": { - "id": "d6da2753f1b9f31eb6b7fb7db51dbfd5", + "id": "daf9751da8a0ecb65cc783ac22c2a40c", "parent_id": null, "user_id": null } }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" + "last_seen": "2021-01-01T18:56:23.416488+00:00" }, { "state": { @@ -1612,15 +1653,15 @@ "source_type": "gps", "friendly_name": "700T1C" }, - "last_changed": "2020-12-18T05:17:56.233631+00:00", - "last_updated": "2020-12-18T05:17:56.233631+00:00", + "last_changed": "2021-01-01T18:56:20.698738+00:00", + "last_updated": "2021-01-01T18:56:20.698738+00:00", "context": { - "id": "e183d9c6c0fcbe01aefe9f6fe0ba7495", + "id": "8b46184db6ce28600169d81cde45f2d5", "parent_id": null, "user_id": null } }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" + "last_seen": "2021-01-01T18:56:23.416488+00:00" }, { "state": { @@ -1630,15 +1671,15 @@ "source_type": "gps", "friendly_name": "SM-G935R4" }, - "last_changed": "2020-12-18T05:17:56.233718+00:00", - "last_updated": "2020-12-18T05:17:56.233718+00:00", + "last_changed": "2021-01-01T18:56:20.698843+00:00", + "last_updated": "2021-01-01T18:56:20.698843+00:00", "context": { - "id": "635cc18c5ca8eabdd87633d0e1bdce4d", + "id": "e996fe8d39d43006283b7011b743cdb1", "parent_id": null, "user_id": null } }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" + "last_seen": "2021-01-01T18:56:23.416488+00:00" }, { "state": { @@ -1648,15 +1689,15 @@ "source_type": "gps", "friendly_name": "White Moto G" }, - "last_changed": "2020-12-18T05:17:56.233794+00:00", - "last_updated": "2020-12-18T05:17:56.233794+00:00", + "last_changed": "2021-01-01T18:56:20.698929+00:00", + "last_updated": "2021-01-01T18:56:20.698929+00:00", "context": { - "id": "3149861aff8563679b0703ba254eb99e", + "id": "79300e5c4d0051f9b479f9fe51b1d9a1", "parent_id": null, "user_id": null } }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" + "last_seen": "2021-01-01T18:56:23.416488+00:00" }, { "state": { @@ -1666,35 +1707,33 @@ "source_type": "gps", "friendly_name": "LGUS215" }, - "last_changed": "2020-12-18T05:17:56.233866+00:00", - "last_updated": "2020-12-18T05:17:56.233866+00:00", + "last_changed": "2021-01-01T18:56:20.699010+00:00", + "last_updated": "2021-01-01T18:56:20.699010+00:00", "context": { - "id": "25d702c9a620de35cf1eab16ac60be08", + "id": "d36ab73650b5e611fdf13aba3be6c0df", "parent_id": null, "user_id": null } }, - "last_seen": "2020-12-18T17:17:57.194872+00:00" + "last_seen": "2021-01-01T18:56:23.416488+00:00" }, { "state": { - "entity_id": "person.system_administrator", + "entity_id": "device_tracker.lenovo_tb_x606f", "state": "unknown", "attributes": { - "editable": true, - "id": "system_administrator", - "user_id": "66b148346e9c4c5483b8fcf107ebffe0", - "friendly_name": "system administrator" + "source_type": "gps", + "friendly_name": "Lenovo TB-X606F" }, - "last_changed": "2020-12-18T01:25:20.381784+00:00", - "last_updated": "2020-12-18T01:25:21.772122+00:00", + "last_changed": "2021-01-01T18:56:20.699087+00:00", + "last_updated": "2021-01-01T18:56:20.699087+00:00", "context": { - "id": "0d78be23854fa5e53acbf1bcf651ab33", + "id": "8643f8c2bab58be35f0f04866845179c", "parent_id": null, "user_id": null } }, - "last_seen": "2020-12-18T02:14:45.854054+00:00" + "last_seen": "2021-01-01T18:56:23.416488+00:00" } ] } \ No newline at end of file diff --git a/.storage/frontend.user_data_99685dc45d9f40dc8183e11ce5128038 b/.storage/frontend.user_data_99685dc45d9f40dc8183e11ce5128038 index 33c126a..d072052 100644 --- a/.storage/frontend.user_data_99685dc45d9f40dc8183e11ce5128038 +++ b/.storage/frontend.user_data_99685dc45d9f40dc8183e11ce5128038 @@ -1,9 +1,9 @@ { + "version": 1, + "key": "frontend.user_data_99685dc45d9f40dc8183e11ce5128038", "data": { "core": { "showAdvanced": true } - }, - "key": "frontend.user_data_99685dc45d9f40dc8183e11ce5128038", - "version": 1 + } } \ No newline at end of file diff --git a/.storage/hacs.repositories b/.storage/hacs.repositories index 7b05e8d..2b7a567 100644 --- a/.storage/hacs.repositories +++ b/.storage/hacs.repositories @@ -65,13 +65,13 @@ "installed": false, "last_commit": "875b940", "last_release_tag": "v0.8.9", - "last_updated": "2020-12-04T12:12:41Z", + "last_updated": "2020-12-11T01:55:10Z", "name": "atomic_calendar", "new": false, "repository_manifest": {}, "selected_tag": null, "show_beta": false, - "stars": 95, + "stars": 96, "topics": [], "version_installed": null }, @@ -117,25 +117,27 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "fb85517", + "last_commit": "2c956b8", "last_release_tag": null, - "last_updated": "2020-09-12T18:12:50Z", + "last_updated": "2020-12-27T19:18:28Z", "name": "ozw-network-visualization-card", "new": false, "repository_manifest": { "name": "OZW Network Visualization Card", "content_in_root": true, "filename": "ozw-network-visualization-card.js", - "homeassistant": "0.114.0", + "homeassistant": "0.115.0", "render_readme": true }, "selected_tag": null, "show_beta": false, - "stars": 21, + "stars": 26, "topics": [ "home-automation", "homeassistant", - "zwave" + "ozw", + "zwave", + "zwave2mqtt" ], "version_installed": null }, @@ -151,7 +153,7 @@ "installed": false, "last_commit": "094a0fa", "last_release_tag": "v1.2.0", - "last_updated": "2020-11-05T01:31:49Z", + "last_updated": "2020-12-19T17:45:34Z", "name": "lovelace-battery-entity-row", "new": false, "repository_manifest": { @@ -161,7 +163,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 9, + "stars": 12, "topics": [ "attribute", "battery", @@ -202,7 +204,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 41, + "stars": 45, "topics": [ "automation", "climate", @@ -237,7 +239,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 68, + "stars": 71, "topics": [ "home-assistant", "home-assistant-custom", @@ -288,9 +290,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "df6395e", - "last_release_tag": "v2.2.7", - "last_updated": "2020-11-18T09:41:39Z", + "last_commit": "4560d91", + "last_release_tag": "v2.3.2", + "last_updated": "2020-12-22T19:06:16Z", "name": "mini-humidifier", "new": false, "repository_manifest": { @@ -303,7 +305,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 38, + "stars": 47, "topics": [ "automation", "custom", @@ -366,7 +368,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 92, + "stars": 94, "topics": [ "home-assistant", "zigbee2mqtt" @@ -394,7 +396,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 14, + "stars": 15, "topics": [], "version_installed": null }, @@ -408,9 +410,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "7523c53", - "last_release_tag": "1.16.2", - "last_updated": "2020-11-28T16:17:05Z", + "last_commit": "eb1eaea", + "last_release_tag": "1.17.1", + "last_updated": "2020-12-30T15:33:13Z", "name": "garbage-collection-card", "new": false, "repository_manifest": { @@ -420,7 +422,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 22, + "stars": 23, "topics": [ "garbage-collection", "homeassistant", @@ -452,7 +454,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 5, + "stars": 8, "topics": [ "home-assistant", "homeassistant", @@ -475,13 +477,13 @@ "installed": false, "last_commit": "c185504", "last_release_tag": "v1.5.0", - "last_updated": "2020-10-30T14:11:40Z", + "last_updated": "2020-12-22T13:15:22Z", "name": "weather-card", "new": false, "repository_manifest": {}, "selected_tag": null, "show_beta": false, - "stars": 169, + "stars": 185, "topics": [], "version_installed": null }, @@ -566,7 +568,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 109, + "stars": 115, "topics": [ "card", "hacs", @@ -600,7 +602,7 @@ "repository_manifest": {}, "selected_tag": null, "show_beta": false, - "stars": 33, + "stars": 35, "topics": [], "version_installed": null }, @@ -648,7 +650,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 212, + "stars": 223, "topics": [ "attribute", "card", @@ -688,7 +690,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 571, + "stars": 576, "topics": [ "custom-cards", "hacs", @@ -718,7 +720,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 26, + "stars": 27, "topics": [], "version_installed": null }, @@ -744,7 +746,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 24, + "stars": 25, "topics": [], "version_installed": null }, @@ -774,7 +776,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 111, + "stars": 120, "topics": [ "home-assistant", "lovelace", @@ -805,7 +807,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 151, + "stars": 152, "topics": [], "version_installed": null }, @@ -827,7 +829,7 @@ "repository_manifest": {}, "selected_tag": null, "show_beta": false, - "stars": 67, + "stars": 69, "topics": [], "version_installed": null }, @@ -915,7 +917,7 @@ "repository_manifest": {}, "selected_tag": null, "show_beta": false, - "stars": 6, + "stars": 8, "topics": [], "version_installed": null }, @@ -963,7 +965,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 63, + "stars": 65, "topics": [], "version_installed": null }, @@ -989,7 +991,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 85, + "stars": 86, "topics": [ "custom-cards", "home-assistant", @@ -1038,7 +1040,7 @@ "repository_manifest": {}, "selected_tag": null, "show_beta": false, - "stars": 35, + "stars": 36, "topics": [], "version_installed": null }, @@ -1110,7 +1112,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 9, + "stars": 10, "topics": [], "version_installed": null }, @@ -1136,7 +1138,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 53, + "stars": 56, "topics": [ "data-table", "data-visualization", @@ -1261,7 +1263,7 @@ "repository_manifest": {}, "selected_tag": null, "show_beta": false, - "stars": 19, + "stars": 20, "topics": [], "version_installed": null }, @@ -1275,9 +1277,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "5249309", - "last_release_tag": "v2.3.4", - "last_updated": "2020-12-06T11:53:55Z", + "last_commit": "4c7bef9", + "last_release_tag": "v2.3.5-testfix", + "last_updated": "2020-12-22T20:00:25Z", "name": "spotify-card", "new": false, "repository_manifest": { @@ -1287,7 +1289,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 137, + "stars": 142, "topics": [], "version_installed": null }, @@ -1309,7 +1311,7 @@ "repository_manifest": {}, "selected_tag": null, "show_beta": false, - "stars": 9, + "stars": 10, "topics": [], "version_installed": null }, @@ -1369,7 +1371,7 @@ "installed": false, "last_commit": "6d8401d", "last_release_tag": "0.2.0", - "last_updated": "2020-11-09T16:18:14Z", + "last_updated": "2020-12-12T11:13:30Z", "name": "stack-in-card", "new": false, "repository_manifest": { @@ -1379,7 +1381,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 38, + "stars": 39, "topics": [], "version_installed": null }, @@ -1401,7 +1403,7 @@ "repository_manifest": {}, "selected_tag": null, "show_beta": false, - "stars": 119, + "stars": 121, "topics": [], "version_installed": null }, @@ -1449,7 +1451,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 89, + "stars": 90, "topics": [], "version_installed": null }, @@ -1496,7 +1498,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 65, + "stars": 68, "topics": [], "version_installed": null }, @@ -1549,15 +1551,15 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "35f5397", - "last_release_tag": "0.85c", - "last_updated": "2020-12-08T23:25:35Z", + "last_commit": "9cdc637", + "last_release_tag": "0.86b", + "last_updated": "2020-12-29T00:56:11Z", "name": "bom-weather-card", "new": false, "repository_manifest": {}, "selected_tag": null, "show_beta": false, - "stars": 33, + "stars": 34, "topics": [ "bom", "home-assistant", @@ -1737,7 +1739,7 @@ "repository_manifest": {}, "selected_tag": null, "show_beta": false, - "stars": 34, + "stars": 37, "topics": [], "version_installed": null }, @@ -1763,7 +1765,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 60, + "stars": 65, "topics": [ "custom-cards", "hacs", @@ -1783,9 +1785,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "e89ce5e", - "last_release_tag": "v0.5.0", - "last_updated": "2020-12-08T09:57:40Z", + "last_commit": "42407e8", + "last_release_tag": "v0.6.1", + "last_updated": "2020-12-22T13:29:38Z", "name": "purifier-card", "new": false, "repository_manifest": { @@ -1795,7 +1797,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 28, + "stars": 30, "topics": [ "air-purifier", "custom-cards", @@ -1861,7 +1863,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 19, + "stars": 22, "topics": [], "version_installed": null }, @@ -1885,7 +1887,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 34, + "stars": 35, "topics": [ "air-quality", "air-visual", @@ -1904,9 +1906,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "4abb373", - "last_release_tag": "v1.12.0", - "last_updated": "2020-12-08T10:24:10Z", + "last_commit": "5d6a668", + "last_release_tag": "v1.13.0", + "last_updated": "2020-12-31T16:44:09Z", "name": "vacuum-card", "new": false, "repository_manifest": { @@ -1916,7 +1918,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 219, + "stars": 239, "topics": [ "custom-cards", "hacs", @@ -2014,7 +2016,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 9, + "stars": 10, "topics": [], "version_installed": null }, @@ -2075,7 +2077,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 1, + "stars": 2, "topics": [ "car", "hacs", @@ -2110,7 +2112,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 16, + "stars": 17, "topics": [], "version_installed": null }, @@ -2170,7 +2172,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 16, + "stars": 15, "topics": [], "version_installed": null }, @@ -2243,7 +2245,7 @@ "repository_manifest": {}, "selected_tag": null, "show_beta": false, - "stars": 30, + "stars": 32, "topics": [], "version_installed": null }, @@ -2293,7 +2295,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 4, + "stars": 6, "topics": [ "cover", "lovelace-ui", @@ -2367,7 +2369,7 @@ "installed": false, "last_commit": "09d7b18", "last_release_tag": "0.0.5", - "last_updated": "2020-09-12T12:52:34Z", + "last_updated": "2020-12-12T09:48:17Z", "name": "lovelace-card-preloader", "new": false, "repository_manifest": { @@ -2392,7 +2394,7 @@ "installed": false, "last_commit": "c4554ec", "last_release_tag": "0.0.16", - "last_updated": "2020-11-27T15:50:08Z", + "last_updated": "2020-12-12T10:00:34Z", "name": "lovelace-card-templater", "new": false, "repository_manifest": { @@ -2439,7 +2441,7 @@ "installed": false, "last_commit": "5e38139", "last_release_tag": "0.5.0", - "last_updated": "2020-09-30T15:02:08Z", + "last_updated": "2020-12-12T09:24:20Z", "name": "lovelace-home-feed-card", "new": false, "repository_manifest": { @@ -2448,7 +2450,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 91, + "stars": 94, "topics": [], "version_installed": null }, @@ -2496,7 +2498,7 @@ "installed": false, "last_commit": "d136d6d", "last_release_tag": "v0.1.5", - "last_updated": "2020-11-05T15:05:31Z", + "last_updated": "2020-12-18T12:01:38Z", "name": "power-wheel-card", "new": false, "repository_manifest": { @@ -2504,7 +2506,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 79, + "stars": 82, "topics": [ "custom-card", "energy", @@ -2548,39 +2550,6 @@ ], "version_installed": null }, - "304967918": { - "authors": [], - "category": "plugin", - "description": "Replace input_number sliders with plus and minus buttons", - "domain": "", - "downloads": 0, - "full_name": "htmltiger/numberbox-card", - "first_install": true, - "installed_commit": null, - "installed": false, - "last_commit": "3b23009", - "last_release_tag": null, - "last_updated": "2020-12-07T12:37:41Z", - "name": "numberbox-card", - "new": false, - "repository_manifest": { - "name": "Number Box", - "filename": "numberbox-card.js", - "render_readme": true - }, - "selected_tag": null, - "show_beta": false, - "stars": 4, - "topics": [ - "hacs", - "input", - "lovelace", - "number", - "numberbox-card", - "slider" - ], - "version_installed": null - }, "220679530": { "authors": [], "category": "plugin", @@ -2625,9 +2594,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "3d0f815", - "last_release_tag": "1.2.1", - "last_updated": "2020-08-06T19:54:54Z", + "last_commit": "3fb1033", + "last_release_tag": "1.2.2", + "last_updated": "2020-12-27T12:42:12Z", "name": "aftership-card", "new": false, "repository_manifest": { @@ -2637,7 +2606,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 28, + "stars": 29, "topics": [], "version_installed": null }, @@ -2663,7 +2632,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 117, + "stars": 118, "topics": [], "version_installed": null }, @@ -2714,7 +2683,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 58, + "stars": 64, "topics": [ "custom-card", "home-assistant", @@ -2907,7 +2876,7 @@ "repository_manifest": {}, "selected_tag": null, "show_beta": false, - "stars": 31, + "stars": 32, "topics": [ "hacktoberfest" ], @@ -2969,7 +2938,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 28, + "stars": 30, "topics": [ "hassio", "home-assistant", @@ -2991,9 +2960,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "369305b", + "last_commit": "859580d", "last_release_tag": null, - "last_updated": "2020-12-09T11:11:24Z", + "last_updated": "2020-12-11T04:28:15Z", "name": "ha-yandex-icons", "new": false, "repository_manifest": { @@ -3028,9 +2997,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "4711ad0", + "last_commit": "334a44e", "last_release_tag": "0.3.0", - "last_updated": "2020-07-31T14:36:33Z", + "last_updated": "2020-12-25T14:50:21Z", "name": "lovelace-paper-buttons-row", "new": false, "repository_manifest": { @@ -3038,7 +3007,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 41, + "stars": 45, "topics": [ "actions", "buttons", @@ -3098,7 +3067,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 14, + "stars": 16, "topics": [ "home-assistant", "home-assistant-frontend", @@ -3123,13 +3092,13 @@ "installed": false, "last_commit": "33f3a19", "last_release_tag": "v0.9.4", - "last_updated": "2020-12-08T15:11:26Z", + "last_updated": "2020-12-29T15:12:44Z", "name": "mini-graph-card", "new": false, "repository_manifest": {}, "selected_tag": null, "show_beta": false, - "stars": 1182, + "stars": 1220, "topics": [ "automation", "custom", @@ -3154,13 +3123,13 @@ "installed": false, "last_commit": "2cb0845", "last_release_tag": "v1.11.0", - "last_updated": "2020-11-21T16:21:19Z", + "last_updated": "2020-12-31T12:06:32Z", "name": "mini-media-player", "new": false, "repository_manifest": {}, "selected_tag": null, "show_beta": false, - "stars": 760, + "stars": 777, "topics": [ "automation", "custom", @@ -3195,7 +3164,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 32, + "stars": 33, "topics": [], "version_installed": null }, @@ -3211,13 +3180,13 @@ "installed": false, "last_commit": "b51750a", "last_release_tag": "v0.8.1", - "last_updated": "2020-10-07T19:19:29Z", + "last_updated": "2020-12-29T14:34:05Z", "name": "simple-weather-card", "new": false, "repository_manifest": {}, "selected_tag": null, "show_beta": false, - "stars": 122, + "stars": 124, "topics": [ "home-assistant", "home-automation", @@ -3237,9 +3206,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "d8e04cf", - "last_release_tag": "v1.7", - "last_updated": "2020-12-09T00:48:17Z", + "last_commit": "98781a7", + "last_release_tag": "v2.0", + "last_updated": "2020-12-24T02:01:36Z", "name": "power-distribution-card", "new": false, "repository_manifest": { @@ -3250,7 +3219,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 17, + "stars": 20, "topics": [ "e3dc", "hacs", @@ -3335,7 +3304,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 2, + "stars": 3, "topics": [ "effect", "frosted-glass", @@ -3419,7 +3388,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 15, + "stars": 16, "topics": [ "card", "home-assistant", @@ -3470,7 +3439,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 10, + "stars": 12, "topics": [ "card", "custom-card", @@ -3527,7 +3496,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 93, + "stars": 94, "topics": [], "version_installed": null }, @@ -3572,7 +3541,7 @@ "installed": false, "last_commit": "ef15306", "last_release_tag": "1.1.3", - "last_updated": "2020-09-11T01:50:59Z", + "last_updated": "2020-12-11T17:33:36Z", "name": "travel-time-card", "new": false, "repository_manifest": { @@ -3666,7 +3635,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 80, + "stars": 83, "topics": [], "version_installed": null }, @@ -3757,9 +3726,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "49f0083", - "last_release_tag": "v2.5.5", - "last_updated": "2020-12-08T20:30:36Z", + "last_commit": "9fe32e6", + "last_release_tag": "v2.6.1", + "last_updated": "2020-12-30T10:33:09Z", "name": "atomic-calendar-revive", "new": false, "repository_manifest": { @@ -3772,7 +3741,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 42, + "stars": 46, "topics": [ "calendar", "card", @@ -3840,7 +3809,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 20, + "stars": 21, "topics": [ "custom-cards", "hassio", @@ -3867,7 +3836,7 @@ "installed": false, "last_commit": "9446704", "last_release_tag": "v1.2.0", - "last_updated": "2020-11-20T20:35:48Z", + "last_updated": "2020-12-13T00:41:06Z", "name": "select-list-card", "new": false, "repository_manifest": { @@ -3906,7 +3875,7 @@ "repository_manifest": {}, "selected_tag": null, "show_beta": false, - "stars": 89, + "stars": 91, "topics": [], "version_installed": null }, @@ -3933,7 +3902,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 6, + "stars": 7, "topics": [ "card", "flexi", @@ -3953,9 +3922,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "f2a9c93", + "last_commit": "290b76d", "last_release_tag": "v1.6.2", - "last_updated": "2020-12-09T22:18:57Z", + "last_updated": "2020-12-29T17:56:37Z", "name": "battery-state-card", "new": false, "repository_manifest": { @@ -3966,7 +3935,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 134, + "stars": 140, "topics": [ "battery", "hassio", @@ -4011,9 +3980,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "c1e6daf", - "last_release_tag": "0.12.0", - "last_updated": "2020-11-15T20:59:26Z", + "last_commit": "5a74f15", + "last_release_tag": "0.13.0", + "last_updated": "2020-12-18T08:41:36Z", "name": "banner-card", "new": false, "repository_manifest": { @@ -4044,9 +4013,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "0654f88", - "last_release_tag": "0.40.0", - "last_updated": "2020-12-07T21:02:42Z", + "last_commit": "5847e5c", + "last_release_tag": "0.41.1", + "last_updated": "2020-12-30T23:19:09Z", "name": "simple-thermostat", "new": false, "repository_manifest": { @@ -4055,7 +4024,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 315, + "stars": 328, "topics": [ "hassio", "home-assistant", @@ -4076,9 +4045,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "83238ed", - "last_release_tag": "v1.9.7", - "last_updated": "2020-12-09T02:23:31Z", + "last_commit": "6ed8c5d", + "last_release_tag": "v2.0.1", + "last_updated": "2020-12-30T22:07:55Z", "name": "scheduler-card", "new": false, "repository_manifest": { @@ -4087,7 +4056,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 88, + "stars": 105, "topics": [ "assistant", "automation", @@ -4128,7 +4097,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 471, + "stars": 478, "topics": [ "hacktoberfest", "hacktoberfest2020", @@ -4156,7 +4125,7 @@ "repository_manifest": {}, "selected_tag": null, "show_beta": false, - "stars": 16, + "stars": 17, "topics": [ "home-assistant", "lovelace-card" @@ -4206,7 +4175,7 @@ "repository_manifest": {}, "selected_tag": null, "show_beta": false, - "stars": 351, + "stars": 370, "topics": [ "home-assistant", "lovelace-card", @@ -4227,9 +4196,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "8f140cc", + "last_commit": "5dea9aa", "last_release_tag": null, - "last_updated": "2020-10-23T11:13:51Z", + "last_updated": "2020-12-20T14:51:31Z", "name": "ztm-stop-card", "new": false, "repository_manifest": { @@ -4255,7 +4224,7 @@ "installed": false, "last_commit": "df53527", "last_release_tag": null, - "last_updated": "2020-07-01T05:25:43Z", + "last_updated": "2020-12-17T23:30:40Z", "name": "search-card", "new": false, "repository_manifest": {}, @@ -4376,7 +4345,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 18, + "stars": 19, "topics": [ "hacs", "home-assistant", @@ -4410,7 +4379,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 33, + "stars": 35, "topics": [ "card", "home-assistant", @@ -4438,7 +4407,7 @@ "repository_manifest": {}, "selected_tag": null, "show_beta": false, - "stars": 5, + "stars": 7, "topics": [], "version_installed": null }, @@ -4452,9 +4421,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "90f9908", - "last_release_tag": "v9.1.2", - "last_updated": "2020-12-08T21:02:09Z", + "last_commit": "2b6265e", + "last_release_tag": "v9.2.2", + "last_updated": "2020-12-29T12:03:23Z", "name": "tesla-style-solar-power-card", "new": false, "repository_manifest": { @@ -4465,7 +4434,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 21, + "stars": 26, "topics": [ "battery", "card", @@ -4489,7 +4458,7 @@ "installed": false, "last_commit": "37268fd", "last_release_tag": "0.0.2", - "last_updated": "2020-09-13T02:10:31Z", + "last_updated": "2020-12-13T01:17:13Z", "name": "water-heater-card", "new": false, "repository_manifest": { @@ -4519,9 +4488,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "6f673ce", - "last_release_tag": "1.2.0", - "last_updated": "2020-05-29T20:25:28Z", + "last_commit": "443cc79", + "last_release_tag": "1.3.1", + "last_updated": "2020-12-29T22:47:58Z", "name": "logbook-card", "new": false, "repository_manifest": { @@ -4530,7 +4499,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 36, + "stars": 37, "topics": [ "custom-card", "hacs", @@ -4549,9 +4518,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "2ab6d69", + "last_commit": "426229c", "last_release_tag": null, - "last_updated": "2020-06-22T09:38:33Z", + "last_updated": "2020-12-17T08:00:02Z", "name": "button-text-card", "new": false, "repository_manifest": { @@ -4561,7 +4530,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 39, + "stars": 41, "topics": [ "home-assistant", "lovelace-card", @@ -4614,7 +4583,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 13, + "stars": 14, "topics": [ "home-assistant", "home-assistant-frontend", @@ -4679,7 +4648,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 46, + "stars": 47, "topics": [], "version_installed": null }, @@ -4756,9 +4725,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "a82e1e1", + "last_commit": "b4db14d", "last_release_tag": null, - "last_updated": "2020-12-05T13:56:25Z", + "last_updated": "2020-12-29T20:30:13Z", "name": "lovelace-valetudo-map-card", "new": false, "repository_manifest": { @@ -4769,7 +4738,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 72, + "stars": 75, "topics": [ "hacktoberfest" ], @@ -4814,7 +4783,7 @@ "installed": false, "last_commit": "477f3d4", "last_release_tag": "11", - "last_updated": "2020-10-28T12:01:32Z", + "last_updated": "2020-12-12T00:28:43Z", "name": "lovelace-card-tools", "new": false, "repository_manifest": { @@ -4823,7 +4792,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 135, + "stars": 138, "topics": [], "version_installed": null }, @@ -4914,7 +4883,7 @@ "installed": false, "last_commit": "96ce4d2", "last_release_tag": null, - "last_updated": "2020-09-11T22:40:51Z", + "last_updated": "2020-12-12T01:04:16Z", "name": "lovelace-more-info-card", "new": false, "repository_manifest": { @@ -4940,7 +4909,7 @@ "installed": false, "last_commit": "a8dce27", "last_release_tag": "1.1.1", - "last_updated": "2020-10-28T12:48:44Z", + "last_updated": "2020-12-20T22:01:06Z", "name": "lovelace-template-entity-row", "new": false, "repository_manifest": { @@ -4950,7 +4919,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 43, + "stars": 46, "topics": [], "version_installed": null }, @@ -4966,7 +4935,7 @@ "installed": false, "last_commit": "a0748e1", "last_release_tag": "16", - "last_updated": "2020-10-09T11:06:18Z", + "last_updated": "2020-12-12T00:50:41Z", "name": "lovelace-slider-entity-row", "new": false, "repository_manifest": { @@ -4975,7 +4944,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 382, + "stars": 393, "topics": [], "version_installed": null }, @@ -4991,7 +4960,7 @@ "installed": false, "last_commit": "35bd9c8", "last_release_tag": "8", - "last_updated": "2020-08-01T07:34:10Z", + "last_updated": "2020-12-12T03:18:16Z", "name": "lovelace-state-switch", "new": false, "repository_manifest": { @@ -5000,7 +4969,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 99, + "stars": 100, "topics": [], "version_installed": null }, @@ -5016,7 +4985,7 @@ "installed": false, "last_commit": "dd3f31f", "last_release_tag": null, - "last_updated": "2020-08-01T18:13:13Z", + "last_updated": "2020-12-12T11:40:14Z", "name": "lovelace-hui-element", "new": false, "repository_manifest": { @@ -5025,7 +4994,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 16, + "stars": 15, "topics": [], "version_installed": null }, @@ -5047,7 +5016,7 @@ "repository_manifest": {}, "selected_tag": null, "show_beta": false, - "stars": 19, + "stars": 20, "topics": [ "arlo", "camera", @@ -5096,9 +5065,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "6f08fb3", - "last_release_tag": "v1.0.0", - "last_updated": "2020-12-10T04:10:26Z", + "last_commit": "cd9e149", + "last_release_tag": "v1.1.0", + "last_updated": "2020-12-29T19:39:24Z", "name": "compass-card", "new": false, "repository_manifest": { @@ -5108,7 +5077,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 22, + "stars": 24, "topics": [ "compass", "hacs", @@ -5138,7 +5107,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 73, + "stars": 78, "topics": [ "animated", "background", @@ -5197,7 +5166,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 17, + "stars": 16, "topics": [ "analog", "clock", @@ -5216,9 +5185,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "eace359", - "last_release_tag": "0.35.3", - "last_updated": "2020-12-09T10:47:02Z", + "last_commit": "538ab92", + "last_release_tag": "0.35.6", + "last_updated": "2020-12-31T19:06:52Z", "name": "ha-shellies-discovery", "new": false, "repository_manifest": { @@ -5229,7 +5198,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 81, + "stars": 86, "topics": [ "discovery", "home-assistant", @@ -5377,9 +5346,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "1432970", - "last_release_tag": "v1.3", - "last_updated": "2020-09-21T13:14:57Z", + "last_commit": "a9cf177", + "last_release_tag": "v1.4.0", + "last_updated": "2020-12-30T04:56:26Z", "name": "HA-FanSpeedControl", "new": false, "repository_manifest": { @@ -5408,9 +5377,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "5936117", - "last_release_tag": "1.0.4", - "last_updated": "2020-12-09T16:47:31Z", + "last_commit": "ed737c2", + "last_release_tag": "1.0.7", + "last_updated": "2020-12-20T21:07:41Z", "name": "ha-reminder", "new": false, "repository_manifest": { @@ -5583,7 +5552,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 66, + "stars": 68, "topics": [ "dark-theme", "hacs", @@ -5638,7 +5607,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 284, + "stars": 285, "topics": [ "dark-mode", "darkmode", @@ -5732,7 +5701,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 156, + "stars": 165, "topics": [], "version_installed": null }, @@ -5757,7 +5726,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 7, + "stars": 8, "topics": [ "hacs", "home-assistant", @@ -5834,9 +5803,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "08390fd", - "last_release_tag": "v1.2", - "last_updated": "2020-11-15T11:04:20Z", + "last_commit": "56a0834", + "last_release_tag": "v2.0", + "last_updated": "2020-12-16T10:19:50Z", "name": "github_dark_theme", "new": false, "repository_manifest": { @@ -5893,9 +5862,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "39cd0b5", - "last_release_tag": "1.8", - "last_updated": "2020-11-25T11:28:39Z", + "last_commit": "1ce5a21", + "last_release_tag": "1.8.1", + "last_updated": "2020-12-18T13:10:21Z", "name": "ux_goodie_theme", "new": false, "repository_manifest": { @@ -5982,9 +5951,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "e98fd4a", - "last_release_tag": "v1.2", - "last_updated": "2020-11-15T11:05:45Z", + "last_commit": "1c81b3b", + "last_release_tag": "v1.3", + "last_updated": "2020-12-16T13:49:52Z", "name": "github_light_theme", "new": false, "repository_manifest": { @@ -6273,7 +6242,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 44, + "stars": 45, "topics": [ "hacs", "home-assistant", @@ -6498,7 +6467,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 10, + "stars": 12, "topics": [ "hacs", "home-assistant", @@ -6562,7 +6531,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 92, + "stars": 94, "topics": [ "hacs", "home-assistant", @@ -6649,7 +6618,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 46, + "stars": 47, "topics": [ "assistant-theme", "hacs", @@ -6783,9 +6752,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "8a82fda", + "last_commit": "b1ee7c4", "last_release_tag": "v1.1.1", - "last_updated": "2020-12-08T03:22:48Z", + "last_updated": "2020-12-30T03:13:06Z", "name": "hass-kibibit-theme", "new": false, "repository_manifest": { @@ -6793,7 +6762,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 23, + "stars": 36, "topics": [], "version_installed": null }, @@ -6819,7 +6788,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 19, + "stars": 22, "topics": [ "dark-theme", "hacktoberfest", @@ -6857,7 +6826,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 26, + "stars": 33, "topics": [ "hacktoberfest", "hacktoberfest2020", @@ -7182,7 +7151,7 @@ "installed": false, "last_commit": "3667c54", "last_release_tag": "v1.0.8", - "last_updated": "2020-10-14T13:05:49Z", + "last_updated": "2020-12-18T08:26:45Z", "name": "sonos_alarm", "new": false, "repository_manifest": { @@ -7193,7 +7162,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 9, + "stars": 10, "topics": [], "version_installed": null }, @@ -7339,7 +7308,7 @@ "repository_manifest": {}, "selected_tag": null, "show_beta": false, - "stars": 193, + "stars": 199, "topics": [ "homeassistant", "meross", @@ -7359,9 +7328,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "328cb6e", + "last_commit": "8011529", "last_release_tag": "v2.3.2", - "last_updated": "2020-12-07T20:43:44Z", + "last_updated": "2020-12-23T11:47:22Z", "name": "sonoff", "new": false, "repository_manifest": { @@ -7370,7 +7339,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 752, + "stars": 814, "topics": [ "ewelink", "home-assistant", @@ -7450,7 +7419,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 14, + "stars": 15, "topics": [ "consumption", "hekr", @@ -7570,7 +7539,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 3, + "stars": 4, "topics": [ "car-system", "custom-components", @@ -7694,9 +7663,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "1a731e0", + "last_commit": "10e8ef8", "last_release_tag": "1.9.7", - "last_updated": "2020-11-06T10:29:53Z", + "last_updated": "2020-12-28T17:15:32Z", "name": "deebot", "new": false, "repository_manifest": { @@ -7706,7 +7675,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 49, + "stars": 55, "topics": [ "deebot", "deebot920", @@ -7813,7 +7782,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 54, + "stars": 57, "topics": [ "audi", "audi-connect", @@ -7844,7 +7813,7 @@ "repository_manifest": {}, "selected_tag": null, "show_beta": false, - "stars": 49, + "stars": 51, "topics": [ "drayton", "heating", @@ -7944,7 +7913,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 4, + "stars": 5, "topics": [], "version_installed": null }, @@ -7960,9 +7929,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "0e4ffd9", - "last_release_tag": "3.4", - "last_updated": "2020-11-23T18:40:08Z", + "last_commit": "ccf0993", + "last_release_tag": "3.5.1", + "last_updated": "2020-12-30T13:29:01Z", "name": "climate_ip", "new": false, "repository_manifest": { @@ -7976,7 +7945,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 13, + "stars": 14, "topics": [ "airconditioning", "homeassistant", @@ -8013,7 +7982,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 32, + "stars": 35, "topics": [], "version_installed": null }, @@ -8046,7 +8015,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 16, + "stars": 19, "topics": [], "version_installed": null }, @@ -8120,15 +8089,15 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "15999b7", - "last_release_tag": "v0.2.0", - "last_updated": "2020-11-05T11:08:40Z", + "last_commit": "7953d29", + "last_release_tag": "v0.3.0", + "last_updated": "2020-12-29T12:57:33Z", "name": "generic_hygrostat", "new": false, "repository_manifest": {}, "selected_tag": null, "show_beta": false, - "stars": 21, + "stars": 22, "topics": [], "version_installed": null }, @@ -8193,7 +8162,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 5, + "stars": 6, "topics": [ "dehumidifier", "eva-ii-pro-wifi", @@ -8449,7 +8418,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 0, + "stars": 1, "topics": [ "hacs", "home-assistant", @@ -8591,7 +8560,7 @@ "repository_manifest": {}, "selected_tag": null, "show_beta": false, - "stars": 11, + "stars": 13, "topics": [], "version_installed": null }, @@ -8666,7 +8635,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 11, + "stars": 12, "topics": [ "hacktoberfest" ], @@ -8799,9 +8768,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "3ed3d9f", - "last_release_tag": "0.9.1", - "last_updated": "2020-12-06T22:11:29Z", + "last_commit": "7c708ba", + "last_release_tag": "0.10.1", + "last_updated": "2020-12-27T04:24:53Z", "name": "bureau_of_meteorology", "new": false, "repository_manifest": { @@ -8836,9 +8805,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "d9ee1fc", - "last_release_tag": "0.3", - "last_updated": "2020-11-29T03:23:55Z", + "last_commit": "7be669e", + "last_release_tag": "0.3.1", + "last_updated": "2020-12-27T07:40:47Z", "name": "public_transport_victoria", "new": false, "repository_manifest": { @@ -8875,9 +8844,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "8f7f1ae", - "last_release_tag": "v2.0.5", - "last_updated": "2020-11-21T13:29:51Z", + "last_commit": "b2cde1b", + "last_release_tag": "v2.1", + "last_updated": "2020-12-19T07:28:11Z", "name": "smartweather", "new": false, "repository_manifest": { @@ -8894,7 +8863,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 61, + "stars": 63, "topics": [ "darksky", "home-assistant", @@ -8952,9 +8921,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "4cd2eb5", - "last_release_tag": "v0.6.6", - "last_updated": "2020-12-02T20:14:40Z", + "last_commit": "6cdd59d", + "last_release_tag": "v0.7.0", + "last_updated": "2020-12-30T04:07:52Z", "name": "unifiprotect", "new": false, "repository_manifest": { @@ -8972,7 +8941,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 225, + "stars": 236, "topics": [ "cloudkey", "home-assistant", @@ -9056,7 +9025,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 17, + "stars": 19, "topics": [ "home-assistant", "meteorological-data", @@ -9077,9 +9046,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "38ee001", - "last_release_tag": "3.10", - "last_updated": "2020-11-25T07:44:35Z", + "last_commit": "907846b", + "last_release_tag": "3.14", + "last_updated": "2020-12-31T11:20:56Z", "name": "garbage_collection", "new": false, "repository_manifest": { @@ -9095,7 +9064,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 114, + "stars": 118, "topics": [ "garbage-collection", "schedule", @@ -9379,7 +9348,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 2, + "stars": 4, "topics": [ "assistant", "geofisica", @@ -9405,13 +9374,13 @@ "installed": false, "last_commit": "6a919ae", "last_release_tag": "1.0.13", - "last_updated": "2020-10-07T16:31:14Z", + "last_updated": "2020-12-15T11:29:49Z", "name": "circadian_lighting", "new": false, "repository_manifest": {}, "selected_tag": null, "show_beta": false, - "stars": 274, + "stars": 285, "topics": [ "circadian", "circadian-rhythms", @@ -9435,9 +9404,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "2e2954d", - "last_release_tag": "v0.1.7", - "last_updated": "2020-10-29T00:06:40Z", + "last_commit": "8e64237", + "last_release_tag": "v0.1.9", + "last_updated": "2021-01-01T02:43:01Z", "name": "neviweb130", "new": false, "repository_manifest": { @@ -9460,7 +9429,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 4, + "stars": 6, "topics": [], "version_installed": null }, @@ -9476,9 +9445,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "962daf5", - "last_release_tag": "v1.1.6", - "last_updated": "2020-12-01T01:43:58Z", + "last_commit": "c88f597", + "last_release_tag": "v1.2.1", + "last_updated": "2021-01-01T03:29:22Z", "name": "sinope", "new": false, "repository_manifest": { @@ -9524,7 +9493,7 @@ "repository_manifest": {}, "selected_tag": null, "show_beta": false, - "stars": 53, + "stars": 55, "topics": [ "breaking-changes", "custom-component", @@ -9591,7 +9560,7 @@ "installed": false, "last_commit": "1666fc0", "last_release_tag": "1.2.5", - "last_updated": "2020-11-24T01:54:14Z", + "last_updated": "2021-01-01T03:43:28Z", "name": "neviweb", "new": false, "repository_manifest": { @@ -9691,9 +9660,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "5ce9c11", - "last_release_tag": "0.8.5", - "last_updated": "2020-12-09T18:30:42Z", + "last_commit": "a8e404b", + "last_release_tag": "0.9.4", + "last_updated": "2020-12-31T11:19:39Z", "name": "ble_monitor", "new": false, "repository_manifest": { @@ -9703,7 +9672,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 424, + "stars": 468, "topics": [ "custom-component", "hacs", @@ -9731,9 +9700,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "262ee5d", - "last_release_tag": "v3.4.0", - "last_updated": "2020-12-05T22:03:13Z", + "last_commit": "0d617e9", + "last_release_tag": "v3.4.3", + "last_updated": "2021-01-01T02:58:26Z", "name": "alexa_media", "new": false, "repository_manifest": { @@ -9752,7 +9721,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 563, + "stars": 578, "topics": [ "alexa", "hacktoberfest", @@ -9829,15 +9798,15 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "3098c95", - "last_release_tag": "7.2", - "last_updated": "2020-11-26T20:21:01Z", + "last_commit": "c588c24", + "last_release_tag": "7.4", + "last_updated": "2020-12-27T10:43:16Z", "name": "programmable_thermostat", "new": false, "repository_manifest": {}, "selected_tag": null, "show_beta": false, - "stars": 45, + "stars": 47, "topics": [], "version_installed": null }, @@ -9855,7 +9824,7 @@ "installed": false, "last_commit": "bcaeacc", "last_release_tag": null, - "last_updated": "2019-10-22T08:35:09Z", + "last_updated": "2020-12-20T21:10:17Z", "name": "config_check", "new": false, "repository_manifest": {}, @@ -9917,7 +9886,7 @@ "repository_manifest": {}, "selected_tag": null, "show_beta": false, - "stars": 38, + "stars": 39, "topics": [], "version_installed": null }, @@ -9961,15 +9930,15 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "7825575", + "last_commit": "c8cab57", "last_release_tag": null, - "last_updated": "2020-11-25T22:19:19Z", + "last_updated": "2020-12-27T12:14:01Z", "name": "nordpool", "new": false, "repository_manifest": {}, "selected_tag": null, "show_beta": false, - "stars": 22, + "stars": 24, "topics": [], "version_installed": null }, @@ -9988,13 +9957,13 @@ "installed": false, "last_commit": "2325f23", "last_release_tag": "1.6", - "last_updated": "2020-09-18T18:08:39Z", + "last_updated": "2020-12-29T10:32:58Z", "name": "places", "new": false, "repository_manifest": {}, "selected_tag": null, "show_beta": false, - "stars": 28, + "stars": 29, "topics": [], "version_installed": null }, @@ -10025,7 +9994,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 10, + "stars": 11, "topics": [], "version_installed": null }, @@ -10103,7 +10072,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 58, + "stars": 59, "topics": [ "bravia", "home-assistant", @@ -10154,9 +10123,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "e4971b0", - "last_release_tag": "v2.0.2", - "last_updated": "2020-11-18T12:38:34Z", + "last_commit": "edede29", + "last_release_tag": "v2.2.2", + "last_updated": "2020-12-27T22:23:11Z", "name": "grocy", "new": false, "repository_manifest": { @@ -10166,12 +10135,15 @@ "binary_sensor" ], "render_readme": true, + "zip_release": true, + "hide_default_branch": true, "iot_class": "Cloud Polling", - "homeassistant": "0.109.0" + "homeassistant": "0.109.0", + "filename": "grocy.zip" }, "selected_tag": null, "show_beta": false, - "stars": 29, + "stars": 30, "topics": [ "grocy", "hacktoberfest" @@ -10190,9 +10162,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "8fe16fe", + "last_commit": "878a8f8", "last_release_tag": "1.1.0", - "last_updated": "2020-12-10T09:36:09Z", + "last_updated": "2020-12-31T16:05:04Z", "name": "pyscript", "new": false, "repository_manifest": { @@ -10208,7 +10180,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 170, + "stars": 176, "topics": [ "custom-component", "custom-components", @@ -10233,14 +10205,14 @@ "installed_commit": null, "installed": false, "last_commit": "1e96d9b", - "last_release_tag": "v2.6", - "last_updated": "2020-11-26T17:42:27Z", + "last_release_tag": "v2.7", + "last_updated": "2020-12-21T23:00:35Z", "name": "airthings_wave", "new": false, "repository_manifest": {}, "selected_tag": null, "show_beta": false, - "stars": 34, + "stars": 41, "topics": [ "airthings-wave", "bluetooth-low-energy", @@ -10327,9 +10299,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "828b1c4", - "last_release_tag": "3.2", - "last_updated": "2020-06-12T17:16:55Z", + "last_commit": "f20c822", + "last_release_tag": "3.3", + "last_updated": "2020-12-29T17:48:11Z", "name": "file_restore", "new": false, "repository_manifest": {}, @@ -10351,9 +10323,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "b529d1b", + "last_commit": "2c727ad", "last_release_tag": null, - "last_updated": "2020-12-09T17:23:46Z", + "last_updated": "2020-12-11T14:06:36Z", "name": "owlintuition", "new": false, "repository_manifest": {}, @@ -10407,7 +10379,7 @@ "repository_manifest": {}, "selected_tag": null, "show_beta": false, - "stars": 39, + "stars": 42, "topics": [], "version_installed": null }, @@ -10423,9 +10395,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "d25e7a2", - "last_release_tag": "v3.1.3", - "last_updated": "2020-11-09T17:54:13Z", + "last_commit": "9d068b9", + "last_release_tag": "v3.1.4", + "last_updated": "2020-12-22T03:40:46Z", "name": "nintendo_wishlist", "new": false, "repository_manifest": { @@ -10520,7 +10492,7 @@ "repository_manifest": {}, "selected_tag": null, "show_beta": false, - "stars": 16, + "stars": 17, "topics": [], "version_installed": null }, @@ -10569,7 +10541,7 @@ "repository_manifest": {}, "selected_tag": null, "show_beta": false, - "stars": 22, + "stars": 23, "topics": [ "automations", "badges", @@ -10664,7 +10636,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 8, + "stars": 10, "topics": [], "version_installed": null }, @@ -10702,7 +10674,7 @@ "installed": false, "last_commit": "34afa6b", "last_release_tag": null, - "last_updated": "2019-09-20T18:28:33Z", + "last_updated": "2020-12-16T23:22:01Z", "name": "srp_energy", "new": false, "repository_manifest": { @@ -10784,13 +10756,13 @@ "installed": false, "last_commit": "332cb46", "last_release_tag": "0.3.3", - "last_updated": "2020-10-19T22:52:08Z", + "last_updated": "2020-12-11T23:00:51Z", "name": "youtube", "new": false, "repository_manifest": {}, "selected_tag": null, "show_beta": false, - "stars": 10, + "stars": 11, "topics": [ "custom-components", "customcomponents", @@ -10945,9 +10917,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "19b7c2e", + "last_commit": "6071e1b", "last_release_tag": "1.0.5", - "last_updated": "2020-05-28T14:40:41Z", + "last_updated": "2020-12-23T21:49:19Z", "name": "hvcgroep", "new": false, "repository_manifest": { @@ -10982,9 +10954,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "eaf5e6f", - "last_release_tag": "1.0.3", - "last_updated": "2020-05-31T17:52:14Z", + "last_commit": "f4ed296", + "last_release_tag": "1.0.5", + "last_updated": "2020-12-28T16:15:09Z", "name": "arpscan_tracker", "new": false, "repository_manifest": { @@ -10997,7 +10969,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 7, + "stars": 9, "topics": [ "custom-component", "hacs", @@ -11034,7 +11006,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 21, + "stars": 24, "topics": [ "custom-component", "emergency", @@ -11174,7 +11146,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 4, + "stars": 5, "topics": [ "custom-component", "cv", @@ -11267,9 +11239,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "133cd9a", - "last_release_tag": "1.5.3", - "last_updated": "2020-10-26T16:13:55Z", + "last_commit": "404cf77", + "last_release_tag": "1.5.4", + "last_updated": "2020-12-21T10:57:57Z", "name": "livebox", "new": false, "repository_manifest": { @@ -11285,7 +11257,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 9, + "stars": 12, "topics": [ "hacs", "home-assistant", @@ -11404,9 +11376,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "fdd53fd", - "last_release_tag": "1.5.8", - "last_updated": "2020-10-06T14:40:37Z", + "last_commit": "25f697c", + "last_release_tag": "1.6.0", + "last_updated": "2020-12-21T10:57:06Z", "name": "cozytouch", "new": false, "repository_manifest": { @@ -11423,7 +11395,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 10, + "stars": 11, "topics": [], "version_installed": null }, @@ -11454,7 +11426,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 18, + "stars": 23, "topics": [], "version_installed": null }, @@ -11502,7 +11474,7 @@ "installed": false, "last_commit": "fedecd4", "last_release_tag": "v9.2.0", - "last_updated": "2020-12-10T09:13:20Z", + "last_updated": "2020-12-30T10:06:51Z", "name": "entity_controller", "new": false, "repository_manifest": { @@ -11511,7 +11483,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 143, + "stars": 145, "topics": [ "finite-state-machine", "hass", @@ -11572,9 +11544,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "3ad1cb2", + "last_commit": "1edc58d", "last_release_tag": null, - "last_updated": "2020-10-19T13:27:05Z", + "last_updated": "2020-12-29T09:12:45Z", "name": "uhomeuponor", "new": false, "repository_manifest": { @@ -11587,7 +11559,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 5, + "stars": 6, "topics": [ "customcomponents", "gateway", @@ -11666,7 +11638,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 10, + "stars": 11, "topics": [ "hacs", "home-assistant", @@ -11792,9 +11764,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "3a823f0", - "last_release_tag": "0.1.19", - "last_updated": "2020-12-07T22:17:45Z", + "last_commit": "299bedf", + "last_release_tag": "0.1.21", + "last_updated": "2020-12-28T12:15:23Z", "name": "googlewifi", "new": false, "repository_manifest": { @@ -11810,7 +11782,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 14, + "stars": 15, "topics": [ "custom-component", "google-wifi", @@ -11856,20 +11828,24 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "3cddc32", - "last_release_tag": null, - "last_updated": "2020-11-22T21:40:28Z", + "last_commit": "df41782", + "last_release_tag": "v1.0.2", + "last_updated": "2020-12-28T17:45:29Z", "name": "erse", "new": false, "repository_manifest": { "name": "Entidade Reguladora dos Servi\u00e7os Energ\u00e9ticos", "country": "PT", - "homeassistant": "0.87" + "homeassistant": "0.87", + "render_readme": true }, "selected_tag": null, "show_beta": false, - "stars": 5, - "topics": [], + "stars": 7, + "topics": [ + "home-assistant-component", + "utility-meters" + ], "version_installed": null }, "177469955": { @@ -11884,9 +11860,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "6b811ea", - "last_release_tag": "release-0.2.2", - "last_updated": "2020-11-23T02:39:55Z", + "last_commit": "adb6450", + "last_release_tag": "release-0.2.3", + "last_updated": "2020-12-22T20:20:42Z", "name": "kumo", "new": false, "repository_manifest": { @@ -11926,7 +11902,7 @@ "installed": false, "last_commit": "bf9e810", "last_release_tag": null, - "last_updated": "2020-12-05T12:06:20Z", + "last_updated": "2020-12-24T11:22:26Z", "name": "yandex_smart_home", "new": false, "repository_manifest": { @@ -11940,7 +11916,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 246, + "stars": 267, "topics": [ "alice", "home-assistant-component", @@ -11976,7 +11952,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 14, + "stars": 17, "topics": [], "version_installed": null }, @@ -11992,9 +11968,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "28de20c", + "last_commit": "da1534f", "last_release_tag": "025", - "last_updated": "2020-12-07T14:08:37Z", + "last_updated": "2020-12-11T16:00:19Z", "name": "spacex", "new": false, "repository_manifest": { @@ -12011,7 +11987,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 13, + "stars": 15, "topics": [ "home-assistant", "home-assistant-component", @@ -12048,7 +12024,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 5, + "stars": 6, "topics": [], "version_installed": null }, @@ -12181,9 +12157,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "5ffe731", + "last_commit": "be040f0", "last_release_tag": "0.3.0", - "last_updated": "2020-11-30T10:20:16Z", + "last_updated": "2020-12-22T12:32:25Z", "name": "gigasetelements", "new": false, "repository_manifest": { @@ -12230,7 +12206,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 27, + "stars": 28, "topics": [], "version_installed": null }, @@ -12293,9 +12269,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "ccc184e", + "last_commit": "86c9a4d", "last_release_tag": "v2.0.4", - "last_updated": "2020-11-23T08:10:03Z", + "last_updated": "2020-12-21T12:54:49Z", "name": "foldingathomecontrol", "new": false, "repository_manifest": { @@ -12324,9 +12300,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "ae6197d", + "last_commit": "88f55cf", "last_release_tag": "v1.1.0", - "last_updated": "2020-11-23T08:10:57Z", + "last_updated": "2020-12-21T12:54:25Z", "name": "open_route_service", "new": false, "repository_manifest": {}, @@ -12359,7 +12335,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 66, + "stars": 68, "topics": [], "version_installed": null }, @@ -12386,7 +12362,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 2, + "stars": 3, "topics": [], "version_installed": null }, @@ -12508,7 +12484,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 7, + "stars": 8, "topics": [ "custom-components", "hacs", @@ -12546,7 +12522,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 18, + "stars": 19, "topics": [ "custom-component", "hacs", @@ -12654,7 +12630,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 11, + "stars": 13, "topics": [ "camera", "custom-component", @@ -12694,7 +12670,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 10, + "stars": 13, "topics": [ "coco", "domotica", @@ -12808,7 +12784,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 15, + "stars": 18, "topics": [ "cloud", "hacs", @@ -12829,15 +12805,15 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "c3c60b3", + "last_commit": "1bbf160", "last_release_tag": "v3.4.6", - "last_updated": "2020-12-02T14:40:30Z", + "last_updated": "2020-12-17T19:01:38Z", "name": "spotcast", "new": false, "repository_manifest": {}, "selected_tag": null, "show_beta": false, - "stars": 164, + "stars": 173, "topics": [], "version_installed": null }, @@ -13012,7 +12988,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 5, + "stars": 6, "topics": [ "balboa", "hacs", @@ -13048,7 +13024,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 30, + "stars": 37, "topics": [ "home-assistant", "home-automation", @@ -13141,7 +13117,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 5, + "stars": 6, "topics": [ "google-maps", "google-places-api", @@ -13176,7 +13152,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 6, + "stars": 7, "topics": [ "home-assistant", "home-assistant-component", @@ -13212,7 +13188,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 7, + "stars": 8, "topics": [], "version_installed": null }, @@ -13244,7 +13220,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 17, + "stars": 20, "topics": [ "ecowitt", "hacs", @@ -13266,9 +13242,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "6f3893f", + "last_commit": "aa0d962", "last_release_tag": "v2.2.1", - "last_updated": "2020-11-26T22:34:20Z", + "last_updated": "2020-12-23T17:37:30Z", "name": "icloud3", "new": false, "repository_manifest": { @@ -13282,7 +13258,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 94, + "stars": 99, "topics": [ "device-tracker", "icloud", @@ -13319,7 +13295,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 3, + "stars": 4, "topics": [ "alerts", "assistant", @@ -13407,9 +13383,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "26ff519", - "last_release_tag": "v0.2.0", - "last_updated": "2020-11-17T10:13:44Z", + "last_commit": "a2129fb", + "last_release_tag": "v0.2.1", + "last_updated": "2020-12-30T13:59:04Z", "name": "sector", "new": false, "repository_manifest": { @@ -13424,7 +13400,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 6, + "stars": 7, "topics": [ "alarm", "alarm-control", @@ -13457,7 +13433,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 4, + "stars": 5, "topics": [], "version_installed": null }, @@ -13510,9 +13486,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "fd5f5ed", - "last_release_tag": "v3.0.2", - "last_updated": "2020-12-10T09:12:33Z", + "last_commit": "17a1860", + "last_release_tag": "v3.0.3", + "last_updated": "2020-12-30T16:22:22Z", "name": "renault", "new": false, "repository_manifest": { @@ -13529,7 +13505,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 21, + "stars": 22, "topics": [ "custom-components", "home-assistant", @@ -13557,7 +13533,7 @@ "repository_manifest": {}, "selected_tag": null, "show_beta": false, - "stars": 8, + "stars": 9, "topics": [ "home-assistant", "home-assistant-component", @@ -13696,9 +13672,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "ef913c8", - "last_release_tag": "v0.5.36", - "last_updated": "2020-12-09T20:51:15Z", + "last_commit": "937fe3f", + "last_release_tag": "v0.6.6", + "last_updated": "2020-12-24T22:05:45Z", "name": "afvalinfo", "new": false, "repository_manifest": { @@ -13715,7 +13691,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 34, + "stars": 36, "topics": [], "version_installed": null }, @@ -13747,7 +13723,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 6, + "stars": 8, "topics": [], "version_installed": null }, @@ -13763,9 +13739,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "d4af7e9", - "last_release_tag": "v0.7.1", - "last_updated": "2020-11-29T05:27:44Z", + "last_commit": "ea54deb", + "last_release_tag": "v0.8", + "last_updated": "2020-12-26T23:50:06Z", "name": "govee_ble_hci", "new": false, "repository_manifest": { @@ -13774,7 +13750,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 47, + "stars": 51, "topics": [ "ble", "govee", @@ -13805,9 +13781,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "70b339c", - "last_release_tag": "v2.3.7", - "last_updated": "2020-12-10T09:48:22Z", + "last_commit": "f8ae6e0", + "last_release_tag": "v2.3.8", + "last_updated": "2020-12-19T10:46:00Z", "name": "tahoma", "new": false, "repository_manifest": { @@ -13820,13 +13796,13 @@ "switch", "climate" ], - "homeassistant": "0.99.9", + "homeassistant": "0.115.0", "render_readme": "true", "iot_class": "Cloud Polling" }, "selected_tag": null, "show_beta": false, - "stars": 41, + "stars": 43, "topics": [ "hacktoberfest", "home-assistant", @@ -13847,9 +13823,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "467333b", - "last_release_tag": "v0.3", - "last_updated": "2020-12-09T01:05:18Z", + "last_commit": "95878fd", + "last_release_tag": "v0.4", + "last_updated": "2020-12-11T14:04:18Z", "name": "yahoofinance", "new": false, "repository_manifest": { @@ -13862,7 +13838,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 15, + "stars": 18, "topics": [ "hacs", "home-assistant", @@ -13911,9 +13887,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "cf8c3fd", - "last_release_tag": "1.0.9", - "last_updated": "2020-12-04T11:36:03Z", + "last_commit": "ce33015", + "last_release_tag": "1.12", + "last_updated": "2020-12-17T11:19:02Z", "name": "fordpass", "new": false, "repository_manifest": { @@ -13923,7 +13899,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 11, + "stars": 14, "topics": [ "assistant", "car", @@ -13993,7 +13969,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 10, + "stars": 11, "topics": [ "component", "home-assistant", @@ -14014,9 +13990,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "9965c12", - "last_release_tag": "v1.5.6", - "last_updated": "2020-12-08T20:35:18Z", + "last_commit": "9d1bc52", + "last_release_tag": "v1.5.7", + "last_updated": "2020-12-19T11:15:08Z", "name": "samsungtv_tizen", "new": false, "repository_manifest": { @@ -14027,7 +14003,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 110, + "stars": 117, "topics": [], "version_installed": null }, @@ -14053,7 +14029,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 14, + "stars": 15, "topics": [], "version_installed": null }, @@ -14069,9 +14045,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "ee64c7d", + "last_commit": "729f9ca", "last_release_tag": "v0.5.16", - "last_updated": "2020-12-08T01:41:10Z", + "last_updated": "2020-12-31T15:04:30Z", "name": "hubitat", "new": false, "repository_manifest": { @@ -14088,7 +14064,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 45, + "stars": 47, "topics": [ "hacs", "home-assistant", @@ -14154,7 +14130,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 60, + "stars": 61, "topics": [ "auto-purge", "generational-backups", @@ -14239,7 +14215,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 42, + "stars": 44, "topics": [ "crop", "evaporation", @@ -14288,7 +14264,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 2, + "stars": 3, "topics": [ "electric-vehicles", "ev", @@ -14342,7 +14318,7 @@ "repository_manifest": {}, "selected_tag": null, "show_beta": false, - "stars": 11, + "stars": 12, "topics": [], "version_installed": null }, @@ -14482,9 +14458,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "a95a54f", + "last_commit": "be0a6ee", "last_release_tag": null, - "last_updated": "2020-02-10T20:54:07Z", + "last_updated": "2020-12-28T22:48:25Z", "name": "rad-afval", "new": false, "repository_manifest": { @@ -14525,7 +14501,7 @@ "repository_manifest": {}, "selected_tag": null, "show_beta": false, - "stars": 15, + "stars": 17, "topics": [], "version_installed": null }, @@ -14550,7 +14526,7 @@ "repository_manifest": {}, "selected_tag": null, "show_beta": false, - "stars": 33, + "stars": 34, "topics": [], "version_installed": null }, @@ -14673,7 +14649,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 53, + "stars": 59, "topics": [ "automation", "homeassistant", @@ -14741,17 +14717,18 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "d8b500a", - "last_release_tag": "2.3.2", - "last_updated": "2020-12-05T23:18:14Z", + "last_commit": "509c72b", + "last_release_tag": "2.3.3", + "last_updated": "2020-12-14T16:44:58Z", "name": "tapo_control", "new": false, "repository_manifest": { - "name": "Tapo: Cameras Control" + "name": "Tapo: Cameras Control", + "homeassistant": "2020.12.0" }, "selected_tag": null, "show_beta": false, - "stars": 45, + "stars": 52, "topics": [ "camera", "cameras", @@ -14833,14 +14810,14 @@ "installed_commit": null, "installed": false, "last_commit": "19b328b", - "last_release_tag": "v1.3.0", - "last_updated": "2020-08-25T14:29:45Z", + "last_release_tag": "v1.4.0", + "last_updated": "2020-12-19T15:39:23Z", "name": "aemet", "new": false, "repository_manifest": {}, "selected_tag": null, "show_beta": false, - "stars": 16, + "stars": 17, "topics": [ "aemet", "hacs", @@ -14912,7 +14889,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 1, + "stars": 2, "topics": [ "chargeamps", "homeassistant-integration" @@ -15063,9 +15040,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "a7c2824", + "last_commit": "c90d3bc", "last_release_tag": "v0.5", - "last_updated": "2020-10-05T11:55:30Z", + "last_updated": "2020-12-17T09:36:42Z", "name": "ics", "new": false, "repository_manifest": { @@ -15208,9 +15185,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "d7d2725", - "last_release_tag": "2.3.1", - "last_updated": "2020-12-09T12:10:39Z", + "last_commit": "908d4a8", + "last_release_tag": "3.1.0", + "last_updated": "2020-12-21T22:56:27Z", "name": "jablotron100", "new": false, "repository_manifest": { @@ -15227,11 +15204,12 @@ "NB", "SK" ], + "homeassistant": "2020.12.0", "render_readme": true }, "selected_tag": null, "show_beta": false, - "stars": 9, + "stars": 12, "topics": [ "alarm", "custom-component", @@ -15288,9 +15266,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "29c0f48", - "last_release_tag": null, - "last_updated": "2020-07-21T10:54:40Z", + "last_commit": "a6af803", + "last_release_tag": "v0.1.1", + "last_updated": "2020-12-27T21:51:57Z", "name": "easycontrols", "new": false, "repository_manifest": { @@ -15324,13 +15302,13 @@ "installed": false, "last_commit": "9c7b3f1", "last_release_tag": "v0.3.0", - "last_updated": "2020-10-18T16:50:57Z", + "last_updated": "2020-12-31T18:26:27Z", "name": "elastic", "new": false, "repository_manifest": {}, "selected_tag": null, "show_beta": false, - "stars": 56, + "stars": 57, "topics": [ "elasticsearch", "hacktoberfest", @@ -15441,7 +15419,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 58, + "stars": 61, "topics": [ "average", "home-assistant", @@ -15475,7 +15453,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 31, + "stars": 33, "topics": [ "forecast", "gismeteo", @@ -15513,7 +15491,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 28, + "stars": 34, "topics": [ "binary-sensor", "car", @@ -15573,9 +15551,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "6c8a6de", - "last_release_tag": "0.7.17", - "last_updated": "2020-12-09T16:56:13Z", + "last_commit": "08b4353", + "last_release_tag": "0.7.18", + "last_updated": "2020-12-22T10:23:15Z", "name": "jq300", "new": false, "repository_manifest": { @@ -15588,7 +15566,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 17, + "stars": 19, "topics": [ "air-quality", "air-quality-measurements", @@ -15622,7 +15600,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 10, + "stars": 11, "topics": [ "home-assistant", "homeassistant", @@ -15692,16 +15670,16 @@ "@ljmerza" ], "category": "integration", - "description": "Email Sensor for collecting tracking numbers from FedEx, UPS, USPS, Rockauto, Best Buy, Dollar Shave Club, Newegg, B&H Photo, Paypal, eBay, DHL, Philips Hue, Google Express, Monoprice, NuLeaf, Timeless, DSW, Wyze, Reolink, and Ali Express.", + "description": "Email Sensor for collecting tracking numbers from FedEx, UPS, USPS, Rockauto, Best Buy, Chewy, Dollar Shave Club, Newegg, B&H Photo, Paypal, eBay, DHL, Philips Hue, Google Express, Monoprice, NuLeaf, Timeless, DSW, Wyze, Reolink, Groupon, Zazzle, and Ali Express.", "domain": "email", "downloads": 0, "full_name": "ljmerza/ha-email-sensor", "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "3e17e79", - "last_release_tag": "2.7.0", - "last_updated": "2020-12-03T02:56:48Z", + "last_commit": "88b7218", + "last_release_tag": "2.11.0", + "last_updated": "2020-12-23T18:46:17Z", "name": "email", "new": false, "repository_manifest": { @@ -15710,7 +15688,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 30, + "stars": 34, "topics": [], "version_installed": null }, @@ -15790,7 +15768,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 4, + "stars": 5, "topics": [ "cc128", "current-cost", @@ -15800,34 +15778,6 @@ ], "version_installed": null }, - "152294445": { - "authors": [ - "@lukas-hetzenecker" - ], - "category": "integration", - "description": "Links multiple home-assistant instances together", - "domain": "remote_homeassistant", - "downloads": 0, - "full_name": "lukas-hetzenecker/home-assistant-remote", - "first_install": true, - "installed_commit": null, - "installed": false, - "last_commit": "5d70cd1", - "last_release_tag": "3.0", - "last_updated": "2020-12-10T09:41:57Z", - "name": "remote_homeassistant", - "new": false, - "repository_manifest": { - "name": "Remote Home-Assistant", - "render_readme": true, - "iot_class": "Local Polling" - }, - "selected_tag": null, - "show_beta": false, - "stars": 207, - "topics": [], - "version_installed": null - }, "257912976": { "authors": [], "category": "integration", @@ -15838,9 +15788,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "6a83bdf", - "last_release_tag": "2.0", - "last_updated": "2020-09-24T20:04:33Z", + "last_commit": "c68da72", + "last_release_tag": "2.1", + "last_updated": "2020-12-13T14:19:55Z", "name": "mqtt_template", "new": false, "repository_manifest": { @@ -15893,9 +15843,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "7d03ce8", + "last_commit": "51771fb", "last_release_tag": null, - "last_updated": "2020-12-06T09:10:11Z", + "last_updated": "2020-12-31T14:18:47Z", "name": "waste_collection_schedule", "new": false, "repository_manifest": { @@ -15907,7 +15857,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 37, + "stars": 40, "topics": [ "abfall", "abfallnavi", @@ -15986,7 +15936,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 60, + "stars": 64, "topics": [ "home-assistant", "home-automation", @@ -16039,44 +15989,6 @@ ], "version_installed": null }, - "186600448": { - "authors": [ - "@MatthewFlamm" - ], - "category": "integration", - "description": "Home assistant custom camera platform for NWS radar loops", - "domain": "nwsradar", - "downloads": 0, - "full_name": "MatthewFlamm/nwsradar", - "first_install": true, - "installed_commit": null, - "installed": false, - "last_commit": "740691a", - "last_release_tag": "0.5.1", - "last_updated": "2020-10-08T23:52:58Z", - "name": "nwsradar", - "new": false, - "repository_manifest": { - "name": "National Weather Service Radar", - "country": "US", - "domains": [ - "weather" - ], - "iot_class": "Cloud Polling", - "zip_release": true, - "filename": "nwsradar.zip" - }, - "selected_tag": null, - "show_beta": false, - "stars": 17, - "topics": [ - "custom-component", - "home-assistant", - "nws", - "weather-radar" - ], - "version_installed": null - }, "238446853": { "authors": [ "@maykar" @@ -16099,7 +16011,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 106, + "stars": 120, "topics": [], "version_installed": null }, @@ -16133,7 +16045,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 0, + "stars": 1, "topics": [ "custom-component", "fortnite", @@ -16174,7 +16086,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 10, + "stars": 11, "topics": [ "bigassfans", "fan", @@ -16223,9 +16135,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "49497c6", + "last_commit": "e75eba5", "last_release_tag": null, - "last_updated": "2020-12-08T22:16:31Z", + "last_updated": "2020-12-13T14:47:13Z", "name": "goodwe", "new": false, "repository_manifest": { @@ -16238,7 +16150,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 8, + "stars": 14, "topics": [ "goodwe", "hacs", @@ -16325,9 +16237,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "2ec50a8", + "last_commit": "81a82ac", "last_release_tag": "0.2.2", - "last_updated": "2020-12-09T18:13:38Z", + "last_updated": "2020-12-31T18:44:09Z", "name": "mail_and_packages", "new": false, "repository_manifest": { @@ -16340,7 +16252,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 123, + "stars": 135, "topics": [ "home-assistant", "home-assistant-config", @@ -16376,7 +16288,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 33, + "stars": 34, "topics": [ "blitzortung", "home-assistant", @@ -16410,7 +16322,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 15, + "stars": 16, "topics": [ "hacs", "homeassistant", @@ -16479,7 +16391,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 13, + "stars": 14, "topics": [ "hacs", "homeassistant-integration", @@ -16518,7 +16430,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 73, + "stars": 80, "topics": [ "custom-component", "hacs", @@ -16601,7 +16513,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 17, + "stars": 18, "topics": [ "arylic", "cvte", @@ -16642,7 +16554,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 3, + "stars": 4, "topics": [ "gateways", "isp", @@ -16704,9 +16616,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "f7c5380", - "last_release_tag": "v1.3.2", - "last_updated": "2020-12-10T05:37:08Z", + "last_commit": "9f9a87a", + "last_release_tag": "v1.4.1", + "last_updated": "2020-12-23T11:28:46Z", "name": "alarmo", "new": false, "repository_manifest": { @@ -16724,7 +16636,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 47, + "stars": 67, "topics": [ "alarm", "assistant", @@ -16775,9 +16687,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "d231268", - "last_release_tag": "v2.1.1", - "last_updated": "2020-12-08T15:56:08Z", + "last_commit": "16c8950", + "last_release_tag": "v3.0.1", + "last_updated": "2020-12-29T16:43:12Z", "name": "scheduler", "new": false, "repository_manifest": { @@ -16792,7 +16704,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 56, + "stars": 69, "topics": [ "custom-component", "hacs", @@ -16897,9 +16809,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "244dcdd", - "last_release_tag": "v0.3.15", - "last_updated": "2020-11-24T22:00:48Z", + "last_commit": "5eacbe8", + "last_release_tag": "v0.3.16", + "last_updated": "2020-12-31T23:34:51Z", "name": "samsungtv_smart", "new": false, "repository_manifest": { @@ -16911,7 +16823,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 51, + "stars": 58, "topics": [ "home-assistant", "homeassistant", @@ -16934,9 +16846,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "dc66795", - "last_release_tag": "v0.5.10", - "last_updated": "2020-11-07T02:09:03Z", + "last_commit": "be7b807", + "last_release_tag": "v0.5.14", + "last_updated": "2020-12-29T01:36:56Z", "name": "smartthinq_sensors", "new": false, "repository_manifest": { @@ -16949,7 +16861,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 121, + "stars": 130, "topics": [ "dishwasher", "dryer", @@ -17034,9 +16946,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "4e66be4", + "last_commit": "a7deada", "last_release_tag": "v0.6.1", - "last_updated": "2020-08-22T11:37:35Z", + "last_updated": "2020-12-27T17:46:41Z", "name": "jumbo", "new": false, "repository_manifest": {}, @@ -17131,15 +17043,21 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "5b264c1", - "last_release_tag": "v1.1.0", - "last_updated": "2020-10-04T16:28:34Z", + "last_commit": "50fdb90", + "last_release_tag": "v1.1.1", + "last_updated": "2020-12-28T10:22:13Z", "name": "attributes", "new": false, - "repository_manifest": {}, + "repository_manifest": { + "name": "Attributes extractor", + "homeassistant": "0.103.0", + "domains": [ + "sensor" + ] + }, "selected_tag": null, "show_beta": false, - "stars": 40, + "stars": 41, "topics": [ "attributes", "breakout", @@ -17162,12 +17080,19 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "85e72fc", - "last_release_tag": "v2.0.0", - "last_updated": "2020-08-16T11:22:54Z", + "last_commit": "896050a", + "last_release_tag": "v2.0.1", + "last_updated": "2020-12-28T11:35:05Z", "name": "clientraw", "new": false, - "repository_manifest": {}, + "repository_manifest": { + "name": "Clientraw weather parser", + "homeassistant": "0.103.0", + "domains": [ + "sensor" + ], + "iot_class": "cloud_poll" + }, "selected_tag": null, "show_beta": false, "stars": 4, @@ -17193,9 +17118,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "a6390e6", + "last_commit": "1c5725a", "last_release_tag": "1.2.0", - "last_updated": "2020-08-16T10:42:29Z", + "last_updated": "2020-12-28T11:27:26Z", "name": "mikrotik", "new": false, "repository_manifest": {}, @@ -17282,7 +17207,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 49, + "stars": 50, "topics": [ "anniversaries", "hacktoberfest", @@ -17312,7 +17237,7 @@ "repository_manifest": {}, "selected_tag": null, "show_beta": false, - "stars": 16, + "stars": 17, "topics": [ "custom-component", "home-assistant", @@ -17526,7 +17451,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 18, + "stars": 19, "topics": [ "automation", "helper", @@ -17549,15 +17474,15 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "0b17acb", - "last_release_tag": "v4.7.4", - "last_updated": "2020-12-07T16:39:50Z", + "last_commit": "9d720ec", + "last_release_tag": "v4.7.7", + "last_updated": "2020-12-22T15:26:48Z", "name": "afvalbeheer", "new": false, "repository_manifest": {}, "selected_tag": null, "show_beta": false, - "stars": 67, + "stars": 69, "topics": [ "belgium", "dutch", @@ -17581,9 +17506,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "de4d8b4", - "last_release_tag": "v1.1.1", - "last_updated": "2020-10-15T15:53:14Z", + "last_commit": "40d6044", + "last_release_tag": "v1.1.3", + "last_updated": "2020-12-30T00:17:40Z", "name": "tauron_amiplus", "new": false, "repository_manifest": { @@ -17595,7 +17520,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 15, + "stars": 17, "topics": [ "custom-component", "energy-monitor", @@ -17692,7 +17617,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 9, + "stars": 10, "topics": [ "custom-integration", "dlink", @@ -17722,7 +17647,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 4, + "stars": 5, "topics": [ "custom-component", "freebox", @@ -17867,7 +17792,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 31, + "stars": 33, "topics": [ "gardena", "gardena-api", @@ -17892,7 +17817,7 @@ "installed": false, "last_commit": "afce9f7", "last_release_tag": "2020.0", - "last_updated": "2020-12-09T08:45:57Z", + "last_updated": "2020-12-30T23:38:32Z", "name": "hive", "new": false, "repository_manifest": { @@ -17909,7 +17834,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 12, + "stars": 16, "topics": [ "hive" ], @@ -17927,20 +17852,23 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "33245e3", + "last_commit": "dc782a3", "last_release_tag": null, - "last_updated": "2020-07-31T19:35:29Z", + "last_updated": "2020-12-31T10:44:32Z", "name": "climacell", "new": false, "repository_manifest": { - "name": "Climacell weather provider", + "name": "ClimaCell Weather Provider", "domains": [ "sensor" + ], + "iot_class": [ + "Cloud Polling" ] }, "selected_tag": null, "show_beta": false, - "stars": 21, + "stars": 23, "topics": [ "climacell", "hacs", @@ -18235,7 +18163,7 @@ "repository_manifest": {}, "selected_tag": null, "show_beta": false, - "stars": 67, + "stars": 69, "topics": [], "version_installed": null }, @@ -18259,7 +18187,7 @@ "repository_manifest": {}, "selected_tag": null, "show_beta": false, - "stars": 73, + "stars": 75, "topics": [], "version_installed": null }, @@ -18300,15 +18228,15 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "7e56965", - "last_release_tag": "v0.6", - "last_updated": "2020-06-13T03:29:32Z", + "last_commit": "123c48f", + "last_release_tag": "v0.7", + "last_updated": "2020-12-21T03:45:11Z", "name": "deepstack_face", "new": false, "repository_manifest": {}, "selected_tag": null, "show_beta": false, - "stars": 72, + "stars": 80, "topics": [ "computer-vision", "deep-learning", @@ -18328,9 +18256,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "c36caa3", - "last_release_tag": "v4.4.27", - "last_updated": "2020-11-30T17:49:40Z", + "last_commit": "0fa86c3", + "last_release_tag": "v4.4.29", + "last_updated": "2020-12-22T10:56:36Z", "name": "volkswagencarnet", "new": false, "repository_manifest": { @@ -18343,7 +18271,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 105, + "stars": 106, "topics": [ "custom-component", "hacs", @@ -18377,7 +18305,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 58, + "stars": 60, "topics": [ "home-assistant", "rekognition" @@ -18396,18 +18324,18 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "658d03c", - "last_release_tag": "v3.4", - "last_updated": "2020-11-04T05:40:17Z", + "last_commit": "294d9c5", + "last_release_tag": "v3.8", + "last_updated": "2020-12-31T06:05:08Z", "name": "deepstack_object", "new": false, "repository_manifest": {}, "selected_tag": null, "show_beta": false, - "stars": 180, + "stars": 194, "topics": [ - "facial-recognition", - "home-assistant" + "home-assistant", + "object-detection" ], "version_installed": null }, @@ -18470,7 +18398,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 350, + "stars": 352, "topics": [ "home-assistant", "hue", @@ -18524,9 +18452,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "58c7a2d", - "last_release_tag": "0.1.5", - "last_updated": "2020-11-27T09:43:34Z", + "last_commit": "73f47f0", + "last_release_tag": "0.1.7", + "last_updated": "2020-12-21T19:10:03Z", "name": "adtpulse", "new": false, "repository_manifest": { @@ -18560,9 +18488,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "b50ee8b", - "last_release_tag": "v3.1.0", - "last_updated": "2020-12-09T08:31:56Z", + "last_commit": "9bfeb10", + "last_release_tag": "v3.2.0", + "last_updated": "2020-12-30T22:05:53Z", "name": "localtuya", "new": false, "repository_manifest": { @@ -18582,7 +18510,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 155, + "stars": 200, "topics": [ "localtuya", "tuya", @@ -18629,9 +18557,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "7889abf", + "last_commit": "1bf3a1e", "last_release_tag": "0.1.2", - "last_updated": "2020-12-08T09:49:48Z", + "last_updated": "2020-12-21T19:10:24Z", "name": "poolmath", "new": false, "repository_manifest": { @@ -18643,7 +18571,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 4, + "stars": 5, "topics": [ "hacktoberfest", "homeassistant" @@ -18662,9 +18590,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "9dc97a6", + "last_commit": "0ede706", "last_release_tag": "0.0.3", - "last_updated": "2020-08-23T15:24:04Z", + "last_updated": "2020-12-15T10:45:20Z", "name": "xantech", "new": false, "repository_manifest": { @@ -18766,7 +18694,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 11, + "stars": 13, "topics": [ "reversotts", "tts" @@ -18896,7 +18824,7 @@ "repository_manifest": {}, "selected_tag": null, "show_beta": false, - "stars": 21, + "stars": 22, "topics": [], "version_installed": null }, @@ -18936,9 +18864,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "46a47e3", - "last_release_tag": "0.0.2", - "last_updated": "2020-11-05T14:55:05Z", + "last_commit": "9acd6ed", + "last_release_tag": "0.0.3", + "last_updated": "2020-12-29T04:57:41Z", "name": "tryfi", "new": false, "repository_manifest": { @@ -18957,7 +18885,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 2, + "stars": 3, "topics": [ "dog", "dog-collar", @@ -19028,7 +18956,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 51, + "stars": 52, "topics": [ "bhyve", "home-assistant", @@ -19053,7 +18981,7 @@ "installed": false, "last_commit": "40dad45", "last_release_tag": "2.2.2", - "last_updated": "2020-11-23T12:55:04Z", + "last_updated": "2020-12-30T13:28:00Z", "name": "climate_ip", "new": false, "repository_manifest": { @@ -19083,9 +19011,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "045a16d", - "last_release_tag": "0.0.6", - "last_updated": "2020-12-04T15:29:16Z", + "last_commit": "6d925fc", + "last_release_tag": "0.0.9", + "last_updated": "2020-12-31T14:50:36Z", "name": "media_player_template", "new": false, "repository_manifest": { @@ -19103,7 +19031,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 21, + "stars": 24, "topics": [ "custom-component", "home-assistant", @@ -19218,9 +19146,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "e3e6b11", - "last_release_tag": "v0.7.5", - "last_updated": "2020-12-08T11:02:44Z", + "last_commit": "c7e14e9", + "last_release_tag": "v0.7.7", + "last_updated": "2020-12-23T15:03:16Z", "name": "ziggonext", "new": false, "repository_manifest": { @@ -19399,7 +19327,7 @@ "installed": false, "last_commit": "e4cd147", "last_release_tag": "v0.9.3", - "last_updated": "2020-04-08T14:50:52Z", + "last_updated": "2020-12-22T16:43:18Z", "name": "var", "new": false, "repository_manifest": { @@ -19409,7 +19337,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 64, + "stars": 66, "topics": [], "version_installed": null }, @@ -19427,7 +19355,7 @@ "installed": false, "last_commit": "e3be36b", "last_release_tag": "v3.2", - "last_updated": "2020-07-09T21:49:45Z", + "last_updated": "2020-12-31T08:18:36Z", "name": "zwift", "new": false, "repository_manifest": { @@ -19454,9 +19382,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "7e322ef", - "last_release_tag": "v1.0.20", - "last_updated": "2020-11-04T19:20:04Z", + "last_commit": "c0a80dd", + "last_release_tag": "v1.0.22", + "last_updated": "2020-12-22T21:04:54Z", "name": "panasonic_cc", "new": false, "repository_manifest": { @@ -19464,7 +19392,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 8, + "stars": 10, "topics": [], "version_installed": null }, @@ -19520,7 +19448,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 8, + "stars": 10, "topics": [ "custom-component", "eskom", @@ -19587,9 +19515,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "cd6b4b5", + "last_commit": "637dded", "last_release_tag": "0.2.1", - "last_updated": "2020-12-07T08:03:41Z", + "last_updated": "2020-12-31T13:36:31Z", "name": "shelly", "new": false, "repository_manifest": { @@ -19601,7 +19529,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 408, + "stars": 416, "topics": [], "version_installed": null }, @@ -19630,7 +19558,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 1, + "stars": 2, "topics": [ "custom-component", "free-floating", @@ -19664,7 +19592,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 285, + "stars": 289, "topics": [ "acpartner", "airconditioning", @@ -19701,7 +19629,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 165, + "stars": 181, "topics": [ "airfresh", "airhumidifier", @@ -19741,7 +19669,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 34, + "stars": 36, "topics": [ "custom-component", "home-assistant", @@ -19778,7 +19706,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 72, + "stars": 75, "topics": [ "custom-component", "home-assistant", @@ -19883,9 +19811,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "dabc35d", - "last_release_tag": "0.0.4", - "last_updated": "2020-11-22T08:18:02Z", + "last_commit": "7960590", + "last_release_tag": "v0.0.5", + "last_updated": "2020-12-14T14:21:14Z", "name": "resrobot", "new": false, "repository_manifest": { @@ -20017,7 +19945,7 @@ "repository_manifest": {}, "selected_tag": null, "show_beta": false, - "stars": 35, + "stars": 37, "topics": [], "version_installed": null }, @@ -20033,7 +19961,7 @@ "installed": false, "last_commit": "73e51df", "last_release_tag": "1.2.0", - "last_updated": "2020-08-01T04:02:38Z", + "last_updated": "2020-12-12T01:16:19Z", "name": "fontawesome", "new": false, "repository_manifest": { @@ -20206,9 +20134,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "be59630", - "last_release_tag": "0.6", - "last_updated": "2020-12-08T13:15:09Z", + "last_commit": "2d02440", + "last_release_tag": "0.7", + "last_updated": "2020-12-27T22:30:49Z", "name": "clean_up_snapshots_service", "new": false, "repository_manifest": { @@ -20220,7 +20148,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 7, + "stars": 8, "topics": [], "version_installed": null }, @@ -20264,9 +20192,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "5aa6652", + "last_commit": "3d57c10", "last_release_tag": "v1.5.10", - "last_updated": "2020-12-08T23:27:53Z", + "last_updated": "2020-12-28T13:47:06Z", "name": "mikrotik_router", "new": false, "repository_manifest": { @@ -20285,7 +20213,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 39, + "stars": 42, "topics": [ "hacs", "homeassistant", @@ -20326,7 +20254,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 20, + "stars": 22, "topics": [ "hacs", "homeassistant", @@ -20366,7 +20294,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 4, + "stars": 5, "topics": [ "aidon", "ams", @@ -20513,9 +20441,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "11c7bd7", - "last_release_tag": "1.2", - "last_updated": "2020-11-02T16:21:32Z", + "last_commit": "c77c74c", + "last_release_tag": "1.4.1", + "last_updated": "2020-12-29T05:20:09Z", "name": "pandora_cas", "new": false, "repository_manifest": { @@ -20534,7 +20462,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 12, + "stars": 15, "topics": [ "hacs", "home-assistant", @@ -20612,7 +20540,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 15, + "stars": 17, "topics": [ "mbus-adapter", "meter", @@ -20632,9 +20560,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "7db3244", - "last_release_tag": "v0.7.0.3", - "last_updated": "2020-12-08T14:19:28Z", + "last_commit": "557bb00", + "last_release_tag": "v0.7.0.5", + "last_updated": "2020-12-26T14:57:28Z", "name": "aarlo", "new": false, "repository_manifest": { @@ -20643,7 +20571,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 143, + "stars": 144, "topics": [ "arlo", "homeassistant", @@ -20733,7 +20661,7 @@ "installed": false, "last_commit": "8492f20", "last_release_tag": "v0.5", - "last_updated": "2020-05-26T01:49:36Z", + "last_updated": "2020-12-15T07:23:59Z", "name": "virtual", "new": false, "repository_manifest": { @@ -20741,7 +20669,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 16, + "stars": 19, "topics": [], "version_installed": null }, @@ -20796,7 +20724,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 53, + "stars": 60, "topics": [ "custom-component", "docker", @@ -20819,9 +20747,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "a96ba92", - "last_release_tag": "0.4.1", - "last_updated": "2020-11-26T10:38:28Z", + "last_commit": "e6fc3a4", + "last_release_tag": "0.4.2", + "last_updated": "2020-12-30T15:41:07Z", "name": "homewizard_energy", "new": false, "repository_manifest": { @@ -20830,12 +20758,14 @@ "domains": [ "sensor" ], - "homeassistant": "0.116.0", - "iot_class": "Local Polling" + "homeassistant": "2020.12.0", + "iot_class": "Local Polling", + "zip_release": true, + "filename": "homewizard_energy.zip" }, "selected_tag": null, "show_beta": false, - "stars": 3, + "stars": 4, "topics": [ "custom-integration", "dsmr", @@ -20915,7 +20845,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 6, + "stars": 7, "topics": [ "hassio", "home-assistant", @@ -20935,9 +20865,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "70b9a15", - "last_release_tag": "v1.8.0", - "last_updated": "2020-12-07T05:22:07Z", + "last_commit": "0bc0e4d", + "last_release_tag": "v1.9.0", + "last_updated": "2020-12-28T05:12:41Z", "name": "simpleicons", "new": false, "repository_manifest": { @@ -21008,7 +20938,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 68, + "stars": 69, "topics": [ "hacktoberfest", "hacs", @@ -21074,7 +21004,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 28, + "stars": 30, "topics": [], "version_installed": null }, @@ -21105,7 +21035,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 6, + "stars": 7, "topics": [ "hacs", "hassio", @@ -21131,9 +21061,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "0a9fb5c", - "last_release_tag": "5.2.7", - "last_updated": "2020-12-09T12:32:13Z", + "last_commit": "2196ada", + "last_release_tag": "5.2.8", + "last_updated": "2020-12-10T14:26:24Z", "name": "afvalwijzer", "new": false, "repository_manifest": { @@ -21212,7 +21142,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 25, + "stars": 26, "topics": [], "version_installed": null }, @@ -21345,7 +21275,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 45, + "stars": 47, "topics": [ "zha", "zha-map" @@ -21364,9 +21294,9 @@ "first_install": true, "installed_commit": null, "installed": false, - "last_commit": "40ec477", - "last_release_tag": "0.2", - "last_updated": "2020-11-20T21:39:05Z", + "last_commit": "ee369f3", + "last_release_tag": "0.4", + "last_updated": "2020-12-16T06:17:26Z", "name": "cezdistribuce", "new": false, "repository_manifest": { @@ -21380,7 +21310,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 1, + "stars": 2, "topics": [ "cez", "hacs", @@ -21500,7 +21430,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 93, + "stars": 96, "topics": [ "home-assistant", "node-red" @@ -21529,7 +21459,743 @@ }, "selected_tag": null, "show_beta": false, - "stars": 60, + "stars": 63, + "topics": [], + "version_installed": null + }, + "321140869": { + "authors": [], + "category": "plugin", + "description": "Custom home assitant lovelace for UI auto reload", + "domain": "", + "downloads": 0, + "full_name": "ben8p/lovelace-auto-reload-card", + "first_install": true, + "installed_commit": null, + "installed": false, + "last_commit": "e6a1387", + "last_release_tag": null, + "last_updated": "2020-12-13T19:43:50Z", + "name": "lovelace-auto-reload-card", + "new": true, + "repository_manifest": { + "name": "Auto Reload", + "render_readme": true + }, + "selected_tag": null, + "show_beta": false, + "stars": 6, + "topics": [ + "home-assistant", + "lovelace-card" + ], + "version_installed": null + }, + "321773656": { + "authors": [], + "category": "plugin", + "description": "\ud83c\udc39 Lovelace responsive grid card that can be tweaked in your theme definition.", + "domain": "", + "downloads": 0, + "full_name": "nervetattoo/themable-grid", + "first_install": true, + "installed_commit": null, + "installed": false, + "last_commit": "2f6f0f5", + "last_release_tag": "2.0.1", + "last_updated": "2020-12-22T21:54:09Z", + "name": "themable-grid", + "new": true, + "repository_manifest": { + "render_readme": true + }, + "selected_tag": null, + "show_beta": false, + "stars": 4, + "topics": [ + "home-assistant", + "lovelace-card", + "lovelace-custom-card", + "lovelace-ui" + ], + "version_installed": null + }, + "320381430": { + "authors": [], + "category": "plugin", + "description": "An analog clock for Home Assistant Lovelace", + "domain": "", + "downloads": 0, + "full_name": "tomasrudh/analogclock", + "first_install": true, + "installed_commit": null, + "installed": false, + "last_commit": "81e1015", + "last_release_tag": "1.4", + "last_updated": "2020-12-31T22:14:26Z", + "name": "analogclock", + "new": false, + "repository_manifest": { + "name": "Analog Clock", + "render_readme": true, + "filename": "analogclock.js" + }, + "selected_tag": null, + "show_beta": false, + "stars": 5, + "topics": [ + "analog", + "analog-clock", + "assistant-lovelace", + "clock", + "lovelace" + ], + "version_installed": null + }, + "320117484": { + "authors": [], + "category": "theme", + "description": "Vibrant (Dark) Version of Clear Theme", + "domain": "", + "downloads": 0, + "full_name": "myleskeeffe/clear-theme-dark-vibrant", + "first_install": true, + "installed_commit": null, + "installed": false, + "last_commit": "167a173", + "last_release_tag": "v2.0.5", + "last_updated": "2020-12-10T07:04:39Z", + "name": "clear-theme-dark-vibrant", + "new": false, + "repository_manifest": { + "name": "Vibrant (Dark) Clear Theme", + "homeassistant": "0.109.0" + }, + "selected_tag": null, + "show_beta": false, + "stars": 1, + "topics": [ + "clear", + "dark", + "theme", + "vibrant" + ], + "version_installed": null + }, + "245694520": { + "authors": [ + "@asev" + ], + "category": "integration", + "description": "Custom component for Home Assistant to connect Helios ventilation system.", + "domain": "helios", + "downloads": 0, + "full_name": "asev/homeassistant-helios", + "first_install": true, + "installed_commit": null, + "installed": false, + "last_commit": "742d540", + "last_release_tag": "v0.4", + "last_updated": "2020-11-23T10:01:30Z", + "name": "helios", + "new": true, + "repository_manifest": { + "name": "Helios ventilation", + "iot_class": "Local Polling", + "render_readme": "True" + }, + "selected_tag": null, + "show_beta": false, + "stars": 2, + "topics": [ + "helios", + "homeassistant", + "homeassistant-integration", + "ventilation" + ], + "version_installed": null + }, + "302145522": { + "authors": [ + "@djtimca" + ], + "category": "integration", + "description": "Home Assistant custom HACS integration to integrate the next 5 global rocket launches from https://rocketlaunch.live", + "domain": "rocketlaunchlive", + "downloads": 0, + "full_name": "djtimca/harocketlaunchlive", + "first_install": true, + "installed_commit": null, + "installed": false, + "last_commit": "6db7f79", + "last_release_tag": "007", + "last_updated": "2020-12-03T18:40:46Z", + "name": "rocketlaunchlive", + "new": true, + "repository_manifest": { + "name": "Rocket Launch Live - Next 5 Launches", + "country": "CA", + "domains": [ + "sensor" + ], + "homeassistant": "0.115.0", + "iot_class": [ + "Cloud Polling" + ] + }, + "selected_tag": null, + "show_beta": false, + "stars": 7, + "topics": [ + "home-assistant", + "home-assistant-custom", + "launch", + "nasa", + "rocket", + "spacex", + "ula" + ], + "version_installed": null + }, + "314593331": { + "authors": [ + "@djtimca" + ], + "category": "integration", + "description": "Using the N2YO API, this Home Assistant integration will provide visible satellite passes (general) and to add specific satellites for monitoring.", + "domain": "satellitetracker", + "downloads": 0, + "full_name": "djtimca/hasatellitetracker", + "first_install": true, + "installed_commit": null, + "installed": false, + "last_commit": "26477af", + "last_release_tag": "0.0.4", + "last_updated": "2020-12-04T01:43:48Z", + "name": "satellitetracker", + "new": true, + "repository_manifest": { + "name": "Satellite Tracker (N2YO)", + "country": "CA", + "domains": [ + "binary_sensor", + "device_tracker", + "sensor" + ], + "homeassistant": "0.115.0", + "iot_class": [ + "Cloud Polling" + ] + }, + "selected_tag": null, + "show_beta": false, + "stars": 2, + "topics": [ + "home-assistant", + "home-assistant-hacs", + "international-space-station", + "iss", + "satellite", + "satellite-tracker", + "starlink", + "tracking-satellites", + "visible-passes" + ], + "version_installed": null + }, + "317051290": { + "authors": [ + "@eyalcha" + ], + "category": "integration", + "description": "Home assistant custom component to fetch kan program guide", + "domain": "kan_program", + "downloads": 0, + "full_name": "eyalcha/kan_program", + "first_install": true, + "installed_commit": null, + "installed": false, + "last_commit": "0e70f0f", + "last_release_tag": "1.0.0", + "last_updated": "2020-12-20T12:12:08Z", + "name": "kan_program", + "new": true, + "repository_manifest": { + "name": "Kan Program", + "domains": [ + "sensor" + ], + "country": "IL", + "iot_class": "cloud_poll", + "render_readme": true + }, + "selected_tag": null, + "show_beta": false, + "stars": 2, + "topics": [ + "custom-component", + "hacs", + "home-assistant" + ], + "version_installed": null + }, + "248462859": { + "authors": [ + "@uvjustin" + ], + "category": "integration", + "description": "Custom component to allow Home Assistant to interface with Alarm.com", + "domain": "alarmdotcom", + "downloads": 0, + "full_name": "uvjustin/alarmdotcom", + "first_install": true, + "installed_commit": null, + "installed": false, + "last_commit": "0be5c5f", + "last_release_tag": null, + "last_updated": "2020-12-22T15:12:57Z", + "name": "alarmdotcom", + "new": true, + "repository_manifest": { + "name": "Alarmdotcom", + "render_readme": true, + "homeassistant": "0.105.0" + }, + "selected_tag": null, + "show_beta": false, + "stars": 30, + "topics": [ + "alarm", + "hacs", + "home-assistant" + ], + "version_installed": null + }, + "300754203": { + "authors": [], + "category": "plugin", + "description": "A simple clock widget using Japanese Kanji for date and time", + "domain": "", + "downloads": 0, + "full_name": "sopelj/lovelace-kanji-clock-card", + "first_install": true, + "installed_commit": null, + "installed": false, + "last_commit": "1c82c72", + "last_release_tag": "0.2.1", + "last_updated": "2020-12-21T23:02:41Z", + "name": "lovelace-kanji-clock-card", + "new": false, + "repository_manifest": { + "name": "Kanji Clock Card", + "render_readme": true, + "filename": "kanji-clock-card.js", + "country": "JP" + }, + "selected_tag": null, + "show_beta": false, + "stars": 2, + "topics": [ + "hacs", + "lovelace", + "lovelace-card", + "lovelace-custom-card" + ], + "version_installed": null + }, + "319343045": { + "authors": [ + "@caronc" + ], + "category": "integration", + "description": "Interlogix ZeroWire and Hills ComNav (NX-595E) UltraSync Security Panel for Integration for Home Assistant Comunity Store (HACS)", + "domain": "ultrasync", + "downloads": 0, + "full_name": "caronc/ha-ultrasync", + "first_install": true, + "installed_commit": null, + "installed": false, + "last_commit": "8101d82", + "last_release_tag": null, + "last_updated": "2020-12-28T19:04:59Z", + "name": "ultrasync", + "new": true, + "repository_manifest": { + "name": "UltraSync Beta", + "hacs": "0.24.0", + "domains": [ + "sensor" + ], + "iot_class": "Local Polling", + "render_readme": true, + "homeassistant": "0.110.0" + }, + "selected_tag": null, + "show_beta": false, + "stars": 1, + "topics": [ + "comnav", + "hacs", + "homeassistant", + "homeassistant-custom-component", + "homeassistant-integration", + "interlogix", + "nx-595e", + "security", + "ultrasync" + ], + "version_installed": null + }, + "228299254": { + "authors": [ + "@rsnodgrass" + ], + "category": "integration", + "description": "LUNOS HRV Ventilation Fan Control for Home Assistant", + "domain": "lunos", + "downloads": 0, + "full_name": "rsnodgrass/hass-lunos", + "first_install": true, + "installed_commit": null, + "installed": false, + "last_commit": "c76c58f", + "last_release_tag": "0.1.2", + "last_updated": "2020-12-21T19:09:49Z", + "name": "lunos", + "new": true, + "repository_manifest": { + "name": "LUNOS Heat Recovery Ventilation", + "domains": [ + "fan" + ], + "render_readme": true + }, + "selected_tag": null, + "show_beta": false, + "stars": 8, + "topics": [ + "homeassistant", + "hvac", + "ventilation" + ], + "version_installed": null + }, + "316597224": { + "authors": [ + "@DarkPark" + ], + "category": "integration", + "description": "A Home Assistant Budova Smart Home integration", + "domain": "bsh", + "downloads": 0, + "full_name": "dphae/bsh", + "first_install": true, + "installed_commit": null, + "installed": false, + "last_commit": "fd7b2a9", + "last_release_tag": "v1.3.0", + "last_updated": "2020-12-21T14:18:33Z", + "name": "bsh", + "new": true, + "repository_manifest": { + "name": "Budova Smart Home", + "country": "UA", + "content_in_root": false, + "render_readme": true, + "domains": [ + "sensor" + ], + "iot_class": "Cloud Polling", + "homeassistant": "0.118.0" + }, + "selected_tag": null, + "show_beta": false, + "stars": 2, + "topics": [ + "budova", + "custom-component", + "hacs", + "home-assistant", + "integration", + "smart-home" + ], + "version_installed": null + }, + "199399946": { + "authors": [ + "@jessevl" + ], + "category": "integration", + "description": "This is a Home Assistant custom component that connects to the Greenchoice API", + "domain": "greenchoice", + "downloads": 0, + "full_name": "jessevl/homeassistant-greenchoice", + "first_install": true, + "installed_commit": null, + "installed": false, + "last_commit": "b2ae1ee", + "last_release_tag": null, + "last_updated": "2020-12-21T13:50:01Z", + "name": "greenchoice", + "new": true, + "repository_manifest": { + "name": "Greenchoice", + "country": "NL", + "render_readme": true + }, + "selected_tag": null, + "show_beta": false, + "stars": 11, + "topics": [ + "greenchoice", + "homeassistant", + "sensor" + ], + "version_installed": null + }, + "316527506": { + "authors": [ + "@iprak" + ], + "category": "integration", + "description": "Home Assistant component for C545 Winix Air Purifier", + "domain": "winix", + "downloads": 0, + "full_name": "iprak/winix", + "first_install": true, + "installed_commit": null, + "installed": false, + "last_commit": "f6f5730", + "last_release_tag": "v0.4", + "last_updated": "2020-12-31T19:11:07Z", + "name": "winix", + "new": true, + "repository_manifest": { + "name": "Winix Purifier", + "domains": [ + "sensor", + "fan" + ], + "iot_class": "cloud_poll", + "render_readme": true + }, + "selected_tag": null, + "show_beta": false, + "stars": 5, + "topics": [ + "home-assistant", + "homeassistant", + "purifier", + "winix" + ], + "version_installed": null + }, + "316807165": { + "authors": [ + "@kloknibor", + "@docbobo" + ], + "category": "integration", + "description": "Miele integration for Home assistant", + "domain": "miele", + "downloads": 0, + "full_name": "HomeAssistant-Mods/home-assistant-miele", + "first_install": true, + "installed_commit": null, + "installed": false, + "last_commit": "e9d94d8", + "last_release_tag": null, + "last_updated": "2020-12-30T00:34:14Z", + "name": "miele", + "new": true, + "repository_manifest": { + "name": "Miele integration", + "iot_class": [ + "Cloud Polling" + ] + }, + "selected_tag": null, + "show_beta": false, + "stars": 9, + "topics": [ + "hacs", + "homeassistant", + "homeassistant-integration", + "miele" + ], + "version_installed": null + }, + "312896602": { + "authors": [ + "@lendy007" + ], + "category": "integration", + "description": "Skoda Connect - An home assistant plugin to add integration with your car", + "domain": "skodaconnect", + "downloads": 0, + "full_name": "lendy007/homeassistant-skodaconnect", + "first_install": true, + "installed_commit": null, + "installed": false, + "last_commit": "9ba9e66", + "last_release_tag": "1.0.27", + "last_updated": "2020-12-23T07:48:18Z", + "name": "skodaconnect", + "new": true, + "repository_manifest": { + "name": "Skoda Connect", + "iot_class": "Cloud Polling", + "homeassistant": "0.110.0", + "hide_default_branch": true, + "zip_release": false, + "filename": "skodaconnect.zip" + }, + "selected_tag": null, + "show_beta": false, + "stars": 17, + "topics": [ + "custom-component", + "hacs", + "homeassistant", + "skoda-connect" + ], + "version_installed": null + }, + "316421110": { + "authors": [ + "@rccoleman" + ], + "category": "integration", + "description": "Interact with your La Marzocco espresso machine", + "domain": "lamarzocco", + "downloads": 0, + "full_name": "rccoleman/lamarzocco", + "first_install": true, + "installed_commit": null, + "installed": false, + "last_commit": "cd97123", + "last_release_tag": "0.5.6", + "last_updated": "2020-12-31T20:38:40Z", + "name": "lamarzocco", + "new": true, + "repository_manifest": { + "name": "La Marzocco", + "iot_class": "Cloud Polling" + }, + "selected_tag": null, + "show_beta": false, + "stars": 3, + "topics": [ + "hacs", + "home-assistant", + "home-assistant-component", + "homeassistant", + "la-marzocco", + "lamarzocco" + ], + "version_installed": null + }, + "313759590": { + "authors": [ + "@ryanmac8" + ], + "category": "integration", + "description": "Mint Mobile Integration for Data Usage Monitoring", + "domain": "mintmobile", + "downloads": 0, + "full_name": "ryanmac8/HA-Mint-Mobile", + "first_install": true, + "installed_commit": null, + "installed": false, + "last_commit": "c08ee13", + "last_release_tag": "v1.4.1", + "last_updated": "2020-12-23T20:01:33Z", + "name": "mintmobile", + "new": true, + "repository_manifest": { + "name": "Mint Mobile", + "content_in_root": false, + "domains": [ + "sensor" + ], + "render_readme": true + }, + "selected_tag": null, + "show_beta": false, + "stars": 0, + "topics": [ + "automation", + "home-assistant" + ], + "version_installed": null + }, + "318801320": { + "authors": [ + "@thebino" + ], + "category": "integration", + "description": " \ud83e\udda0 Custom integration for Home Assistant to monitor covid numbers provided by Robert-Koch Institut", + "domain": "rki_covid", + "downloads": 0, + "full_name": "thebino/rki_covid", + "first_install": true, + "installed_commit": null, + "installed": false, + "last_commit": "0409b51", + "last_release_tag": "0.2.0", + "last_updated": "2020-12-21T13:31:36Z", + "name": "rki_covid", + "new": true, + "repository_manifest": { + "name": "RKI Covid numbers", + "zip_release": true, + "filename": "rki_covid.zip", + "country": "DE", + "domains": [ + "rki_covid", + "sensor" + ], + "homeassistant": "0.110.0", + "iot_class": "Cloud Polling" + }, + "selected_tag": null, + "show_beta": false, + "stars": 5, + "topics": [ + "automation", + "custom", + "hassio", + "home-assistant", + "lovelace", + "sensor" + ], + "version_installed": null + }, + "152294445": { + "authors": [ + "@lukas-hetzenecker" + ], + "category": "integration", + "description": "Links multiple home-assistant instances together", + "domain": "remote_homeassistant", + "downloads": 0, + "full_name": "custom-components/remote_homeassistant", + "first_install": true, + "installed_commit": null, + "installed": false, + "last_commit": null, + "last_release_tag": "3.1", + "last_updated": 0, + "name": "remote_homeassistant", + "new": true, + "repository_manifest": { + "name": "Remote Home-Assistant", + "render_readme": true, + "iot_class": "Local Polling" + }, + "selected_tag": null, + "show_beta": false, + "stars": 227, "topics": [], "version_installed": null }, @@ -21540,14 +22206,14 @@ "category": "integration", "description": "HACS gives you a powerful UI to handle downloads of all your custom needs.", "domain": "hacs", - "downloads": 9001, + "downloads": 31175, "full_name": "hacs/integration", "first_install": false, "installed_commit": "275d6cc", "installed": true, - "last_commit": "275d6cc", + "last_commit": "1906838", "last_release_tag": "1.9.0", - "last_updated": "2020-12-17T07:08:42Z", + "last_updated": "2021-01-01T02:28:03Z", "name": "hacs", "new": false, "repository_manifest": { @@ -21560,7 +22226,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 1431, + "stars": 1462, "topics": [ "community", "hacktoberfest", @@ -21572,60 +22238,55 @@ ], "version_installed": "1.9.0" }, - "303101606": { + "221287384": { "authors": [], - "category": "plugin", - "description": "\ud83d\ude48 Hides the Home Assistant header and/or sidebar", - "domain": "", - "downloads": 3267, - "full_name": "maykar/kiosk-mode", - "first_install": false, - "installed_commit": "78b95f3", - "installed": true, - "last_commit": "78b95f3", - "last_release_tag": "1.4.7", - "last_updated": "2020-11-19T12:46:12Z", - "name": "kiosk-mode", - "new": false, - "repository_manifest": { - "name": "Kiosk Mode", - "render_readme": true - }, - "selected_tag": null, - "show_beta": false, - "stars": 51, - "topics": [ - "home-assistant", - "kiosk", - "kiosk-mode", - "lovelace" - ], - "version_installed": "1.4.7" - }, - "167744584": { - "authors": [], - "category": "plugin", - "description": "\ud83d\udd39Automatically populate the entities-list of lovelace cards", + "category": "theme", + "description": "Clear Theme for Home Assistant", "domain": null, "downloads": 0, - "full_name": "thomasloven/lovelace-auto-entities", + "full_name": "naofireblade/clear-theme", "first_install": false, - "installed_commit": "f17fcc1", + "installed_commit": "e3c9149", "installed": true, - "last_commit": "f17fcc1", - "last_release_tag": "1.7.0", - "last_updated": "2020-12-12T00:43:09Z", - "name": "lovelace-auto-entities", + "last_commit": "a9f68e1", + "last_release_tag": "v1.1", + "last_updated": "2020-10-08T10:10:49Z", + "name": "clear-theme", "new": false, "repository_manifest": { - "name": "auto-entities", + "name": "Clear Theme", + "homeassistant": "0.102.0" + }, + "selected_tag": null, + "show_beta": false, + "stars": 16, + "topics": [], + "version_installed": "v1.1" + }, + "150781994": { + "authors": [], + "category": "plugin", + "description": "\ud83d\udd39 A foldable row for entities card, containing other rows", + "domain": null, + "downloads": 0, + "full_name": "thomasloven/lovelace-fold-entity-row", + "first_install": false, + "installed_commit": "01b4108", + "installed": true, + "last_commit": "01b4108", + "last_release_tag": "19", + "last_updated": "2020-12-12T00:49:44Z", + "name": "lovelace-fold-entity-row", + "new": false, + "repository_manifest": { + "name": "fold-entity-row", "render_readme": true }, "selected_tag": null, "show_beta": false, - "stars": 328, + "stars": 199, "topics": [], - "version_installed": "1.7.0" + "version_installed": "19" }, "156434866": { "authors": [], @@ -21648,111 +22309,41 @@ }, "selected_tag": null, "show_beta": false, - "stars": 249, + "stars": 252, "topics": [], "version_installed": "16" }, - "200897141": { - "authors": [], - "category": "integration", - "description": "\ud83d\udd39 Improve the lovelace yaml parser for Home Assistant", - "domain": "lovelace_gen", - "downloads": 0, - "full_name": "thomasloven/hass-lovelace_gen", - "first_install": false, - "installed_commit": "14fd723", - "installed": true, - "last_commit": "14fd723", - "last_release_tag": "6", - "last_updated": "2020-02-26T13:18:57Z", - "name": "lovelace_gen", - "new": false, - "repository_manifest": {}, - "selected_tag": null, - "show_beta": false, - "stars": 71, - "topics": [], - "version_installed": "6" - }, - "194140521": { - "authors": [], - "category": "integration", - "description": "\ud83d\udd39 A Home Assistant integration to turn your browser into a controllable entity - and also an audio player", - "domain": "browser_mod", - "downloads": 0, - "full_name": "thomasloven/hass-browser_mod", - "first_install": false, - "installed_commit": "37e731b", - "installed": true, - "last_commit": "37e731b", - "last_release_tag": "1.2.3", - "last_updated": "2020-12-12T00:50:38Z", - "name": "browser_mod", - "new": false, - "repository_manifest": { - "name": "browser_mod", - "homeassistant": "0.113.0" - }, - "selected_tag": null, - "show_beta": false, - "stars": 314, - "topics": [], - "version_installed": "1.2.3" - }, - "223008910": { + "304967918": { "authors": [], "category": "plugin", - "description": "Custom Sidebar for Home Assistant", + "description": "Replace input_number sliders with plus and minus buttons", "domain": "", "downloads": 0, - "full_name": "Villhellm/custom-sidebar", + "full_name": "htmltiger/numberbox-card", "first_install": false, - "installed_commit": "3ed0a8f", + "installed_commit": "eb9ed39", "installed": true, - "last_commit": "3ed0a8f", - "last_release_tag": "v0.2.2", - "last_updated": "2020-10-31T13:26:16Z", - "name": "custom-sidebar", + "last_commit": "eb9ed39", + "last_release_tag": null, + "last_updated": "2020-12-25T15:24:09Z", + "name": "numberbox-card", "new": false, "repository_manifest": { - "name": "Custom Sidebar", + "name": "Number Box", + "filename": "numberbox-card.js", "render_readme": true }, "selected_tag": null, "show_beta": false, - "stars": 53, + "stars": 7, "topics": [ - "custom", - "hacktoberfest", - "sidebar" + "hacs", + "input", + "lovelace", + "number", + "numberbox-card", + "slider" ], - "version_installed": "v0.2.2" - }, - "260526528": { - "authors": [], - "category": "plugin", - "description": "Custom Dark Sky Weather plugin for HACS. This creates a rich weather card using the Dark Sky weather plugin.", - "domain": "", - "downloads": 0, - "full_name": "clayauld/lovelace-darksky-card", - "first_install": false, - "installed_commit": "03e6eac", - "installed": true, - "last_commit": "03e6eac", - "last_release_tag": null, - "last_updated": "2020-11-05T01:35:52Z", - "name": "lovelace-darksky-card", - "new": false, - "repository_manifest": { - "name": "Dark Sky Rich Weather Card", - "content_in_root": true, - "filename": "lovelace-darksky-card.js", - "render_readme": "true" - }, - "selected_tag": null, - "show_beta": false, - "stars": 3, - "topics": [], "version_installed": null }, "162468030": { @@ -21788,70 +22379,68 @@ ], "version_installed": null }, - "150781994": { + "260526528": { "authors": [], "category": "plugin", - "description": "\ud83d\udd39 A foldable row for entities card, containing other rows", - "domain": null, + "description": "Custom Dark Sky Weather plugin for HACS. This creates a rich weather card using the Dark Sky weather plugin.", + "domain": "", "downloads": 0, - "full_name": "thomasloven/lovelace-fold-entity-row", + "full_name": "clayauld/lovelace-darksky-card", "first_install": false, - "installed_commit": "01b4108", + "installed_commit": "03e6eac", "installed": true, - "last_commit": "01b4108", - "last_release_tag": "19", - "last_updated": "2020-12-12T00:49:44Z", - "name": "lovelace-fold-entity-row", + "last_commit": "03e6eac", + "last_release_tag": null, + "last_updated": "2020-11-05T01:35:52Z", + "name": "lovelace-darksky-card", "new": false, "repository_manifest": { - "name": "fold-entity-row", + "name": "Dark Sky Rich Weather Card", + "content_in_root": true, + "filename": "lovelace-darksky-card.js", + "render_readme": "true" + }, + "selected_tag": null, + "show_beta": false, + "stars": 3, + "topics": [], + "version_installed": null + }, + "223008910": { + "authors": [], + "category": "plugin", + "description": "Custom Sidebar for Home Assistant", + "domain": "", + "downloads": 0, + "full_name": "Villhellm/custom-sidebar", + "first_install": false, + "installed_commit": "3ed0a8f", + "installed": true, + "last_commit": "3ed0a8f", + "last_release_tag": "v0.2.2", + "last_updated": "2020-10-31T13:26:16Z", + "name": "custom-sidebar", + "new": false, + "repository_manifest": { + "name": "Custom Sidebar", "render_readme": true }, "selected_tag": null, "show_beta": false, - "stars": 191, - "topics": [], - "version_installed": "19" - }, - "146194325": { - "authors": [], - "category": "plugin", - "description": "\u2747\ufe0f Lovelace button-card for home assistant", - "domain": "", - "downloads": 8437, - "full_name": "custom-cards/button-card", - "first_install": false, - "installed_commit": "b5de991", - "installed": true, - "last_commit": "b5de991", - "last_release_tag": "3.4.0", - "last_updated": "2020-12-12T13:11:23Z", - "name": "button-card", - "new": false, - "repository_manifest": { - "name": "button-card", - "content_in_root": false, - "render_readme": true, - "filename": "button-card.js" - }, - "selected_tag": null, - "show_beta": false, - "stars": 588, + "stars": 55, "topics": [ - "home-assistant", - "home-assistant-custom", - "home-automation", - "lovelace", - "lovelace-ui" + "custom", + "hacktoberfest", + "sidebar" ], - "version_installed": "3.4.0" + "version_installed": "v0.2.2" }, "261262884": { "authors": [], "category": "plugin", "description": "\ud83d\udd70\ufe0f Time Picker Card for Home Assistant's Lovelace UI", "domain": "", - "downloads": 1142, + "downloads": 1372, "full_name": "GeorgeSG/lovelace-time-picker-card", "first_install": false, "installed_commit": "c3fa2ce", @@ -21868,7 +22457,7 @@ }, "selected_tag": null, "show_beta": false, - "stars": 44, + "stars": 45, "topics": [ "home-assistant", "homeassistant", @@ -21878,30 +22467,85 @@ ], "version_installed": "1.1.1" }, - "221287384": { + "200897141": { "authors": [], - "category": "theme", - "description": "Clear Theme for Home Assistant", - "domain": null, + "category": "integration", + "description": "\ud83d\udd39 Improve the lovelace yaml parser for Home Assistant", + "domain": "lovelace_gen", "downloads": 0, - "full_name": "naofireblade/clear-theme", + "full_name": "thomasloven/hass-lovelace_gen", "first_install": false, - "installed_commit": "e3c9149", + "installed_commit": "14fd723", "installed": true, - "last_commit": "a9f68e1", - "last_release_tag": "v1.1", - "last_updated": "2020-10-08T10:10:49Z", - "name": "clear-theme", + "last_commit": "14fd723", + "last_release_tag": "6", + "last_updated": "2020-02-26T13:18:57Z", + "name": "lovelace_gen", + "new": false, + "repository_manifest": {}, + "selected_tag": null, + "show_beta": false, + "stars": 73, + "topics": [], + "version_installed": "6" + }, + "146194325": { + "authors": [], + "category": "plugin", + "description": "\u2747\ufe0f Lovelace button-card for home assistant", + "domain": "", + "downloads": 4476, + "full_name": "custom-cards/button-card", + "first_install": false, + "installed_commit": "f845d07", + "installed": true, + "last_commit": "f845d07", + "last_release_tag": "3.4.1", + "last_updated": "2020-12-27T14:28:54Z", + "name": "button-card", "new": false, "repository_manifest": { - "name": "Clear Theme", - "homeassistant": "0.102.0" + "name": "button-card", + "content_in_root": false, + "render_readme": true, + "filename": "button-card.js" }, "selected_tag": null, "show_beta": false, - "stars": 16, + "stars": 603, + "topics": [ + "home-assistant", + "home-assistant-custom", + "home-automation", + "lovelace", + "lovelace-ui" + ], + "version_installed": "3.4.1" + }, + "167744584": { + "authors": [], + "category": "plugin", + "description": "\ud83d\udd39Automatically populate the entities-list of lovelace cards", + "domain": null, + "downloads": 0, + "full_name": "thomasloven/lovelace-auto-entities", + "first_install": false, + "installed_commit": "f17fcc1", + "installed": true, + "last_commit": "f17fcc1", + "last_release_tag": "1.7.0", + "last_updated": "2020-12-21T06:37:39Z", + "name": "lovelace-auto-entities", + "new": false, + "repository_manifest": { + "name": "auto-entities", + "render_readme": true + }, + "selected_tag": null, + "show_beta": false, + "stars": 336, "topics": [], - "version_installed": "v1.1" + "version_installed": "1.7.0" }, "190927524": { "authors": [], @@ -21915,7 +22559,7 @@ "installed": true, "last_commit": "457cf40", "last_release_tag": "2.0.3", - "last_updated": "2020-12-12T00:50:44Z", + "last_updated": "2020-12-21T03:24:59Z", "name": "lovelace-card-mod", "new": false, "repository_manifest": { @@ -21924,9 +22568,64 @@ }, "selected_tag": null, "show_beta": false, - "stars": 215, + "stars": 221, "topics": [], "version_installed": "2.0.3" + }, + "303101606": { + "authors": [], + "category": "plugin", + "description": "\ud83d\ude48 Hides the Home Assistant header and/or sidebar", + "domain": "", + "downloads": 456, + "full_name": "maykar/kiosk-mode", + "first_install": false, + "installed_commit": "78b95f3", + "installed": true, + "last_commit": "c7c4161", + "last_release_tag": "1.4.9", + "last_updated": "2020-12-31T20:44:08Z", + "name": "kiosk-mode", + "new": false, + "repository_manifest": { + "name": "Kiosk Mode", + "render_readme": true + }, + "selected_tag": null, + "show_beta": false, + "stars": 59, + "topics": [ + "home-assistant", + "kiosk", + "kiosk-mode", + "lovelace" + ], + "version_installed": "1.4.7" + }, + "194140521": { + "authors": [], + "category": "integration", + "description": "\ud83d\udd39 A Home Assistant integration to turn your browser into a controllable entity - and also an audio player", + "domain": "browser_mod", + "downloads": 0, + "full_name": "thomasloven/hass-browser_mod", + "first_install": false, + "installed_commit": "37e731b", + "installed": true, + "last_commit": "37e731b", + "last_release_tag": "1.2.3", + "last_updated": "2020-12-27T20:59:24Z", + "name": "browser_mod", + "new": false, + "repository_manifest": { + "name": "browser_mod", + "homeassistant": "0.113.0" + }, + "selected_tag": null, + "show_beta": false, + "stars": 323, + "topics": [], + "version_installed": "1.2.3" } } } \ No newline at end of file diff --git a/.storage/hacs/146194325.hacs b/.storage/hacs/146194325.hacs index e12f8a4..fd694de 100644 --- a/.storage/hacs/146194325.hacs +++ b/.storage/hacs/146194325.hacs @@ -12,7 +12,7 @@ "description": "\u2747\ufe0f Lovelace button-card for home assistant", "domain": "", "domains": [], - "downloads": 8437, + "downloads": 4476, "file_name": "button-card.js", "filename": "button-card.js", "first_install": false, @@ -25,28 +25,28 @@ "id": "146194325", "iot_class": null, "installed": true, - "installed_commit": "b5de991", - "installed_version": "3.4.0", - "open_issues": 29, - "last_commit": "b5de991", - "last_version": "3.4.0", - "last_updated": "2020-12-12T13:11:23Z", + "installed_commit": "f845d07", + "installed_version": "3.4.1", + "open_issues": 26, + "last_commit": "f845d07", + "last_version": "3.4.1", + "last_updated": "2020-12-27T14:28:54Z", "manifest_name": null, "new": false, "persistent_directory": null, - "pushed_at": "2020-12-12T13:11:23", + "pushed_at": "2020-12-27T14:28:54", "releases": true, "render_readme": true, "published_tags": [ + "3.4.1", "3.4.0", "3.3.6", "3.3.5", - "3.3.4", - "3.3.3" + "3.3.4" ], "selected_tag": null, "show_beta": false, - "stargazers_count": 588, + "stargazers_count": 603, "topics": [ "home-assistant", "home-assistant-custom", diff --git a/.storage/hacs/150781994.hacs b/.storage/hacs/150781994.hacs index a2c8561..c20dd43 100644 --- a/.storage/hacs/150781994.hacs +++ b/.storage/hacs/150781994.hacs @@ -27,7 +27,7 @@ "installed": true, "installed_commit": "01b4108", "installed_version": "19", - "open_issues": 16, + "open_issues": 17, "last_commit": "01b4108", "last_version": "19", "last_updated": "2020-12-12T00:49:44Z", @@ -46,7 +46,7 @@ ], "selected_tag": null, "show_beta": false, - "stargazers_count": 191, + "stargazers_count": 199, "topics": [], "zip_release": false } diff --git a/.storage/hacs/156434866.hacs b/.storage/hacs/156434866.hacs index c11aca2..9dfdb1a 100644 --- a/.storage/hacs/156434866.hacs +++ b/.storage/hacs/156434866.hacs @@ -46,7 +46,7 @@ ], "selected_tag": null, "show_beta": false, - "stargazers_count": 249, + "stargazers_count": 252, "topics": [], "zip_release": false } diff --git a/.storage/hacs/167744584.hacs b/.storage/hacs/167744584.hacs index 63d41cb..64d95a4 100644 --- a/.storage/hacs/167744584.hacs +++ b/.storage/hacs/167744584.hacs @@ -27,14 +27,14 @@ "installed": true, "installed_commit": "f17fcc1", "installed_version": "1.7.0", - "open_issues": 28, + "open_issues": 30, "last_commit": "f17fcc1", "last_version": "1.7.0", - "last_updated": "2020-12-12T00:43:09Z", + "last_updated": "2020-12-21T06:37:39Z", "manifest_name": null, "new": false, "persistent_directory": null, - "pushed_at": "2020-12-12T00:43:09", + "pushed_at": "2020-12-21T06:37:39", "releases": true, "render_readme": true, "published_tags": [ @@ -46,7 +46,7 @@ ], "selected_tag": null, "show_beta": false, - "stargazers_count": 328, + "stargazers_count": 336, "topics": [], "zip_release": false } diff --git a/.storage/hacs/172733314.hacs b/.storage/hacs/172733314.hacs index 7807688..a46eb6a 100644 --- a/.storage/hacs/172733314.hacs +++ b/.storage/hacs/172733314.hacs @@ -14,7 +14,7 @@ "description": "HACS gives you a powerful UI to handle downloads of all your custom needs.", "domain": "hacs", "domains": [], - "downloads": 9001, + "downloads": 31175, "file_name": "", "filename": "hacs.zip", "first_install": false, @@ -30,13 +30,13 @@ "installed_commit": "275d6cc", "installed_version": "1.9.0", "open_issues": 36, - "last_commit": "275d6cc", + "last_commit": "1906838", "last_version": "1.9.0", - "last_updated": "2020-12-17T07:08:42Z", + "last_updated": "2021-01-01T02:28:03Z", "manifest_name": "HACS", "new": false, "persistent_directory": null, - "pushed_at": "2020-12-17T07:08:42", + "pushed_at": "2021-01-01T02:28:03", "releases": true, "render_readme": false, "published_tags": [ @@ -48,7 +48,7 @@ ], "selected_tag": null, "show_beta": false, - "stargazers_count": 1431, + "stargazers_count": 1462, "topics": [ "community", "hacktoberfest", diff --git a/.storage/hacs/190927524.hacs b/.storage/hacs/190927524.hacs index 835ca9f..b1608c9 100644 --- a/.storage/hacs/190927524.hacs +++ b/.storage/hacs/190927524.hacs @@ -27,14 +27,14 @@ "installed": true, "installed_commit": "457cf40", "installed_version": "2.0.3", - "open_issues": 20, + "open_issues": 23, "last_commit": "457cf40", "last_version": "2.0.3", - "last_updated": "2020-12-12T00:50:44Z", + "last_updated": "2020-12-21T03:24:59Z", "manifest_name": null, "new": false, "persistent_directory": null, - "pushed_at": "2020-12-12T00:50:44", + "pushed_at": "2020-12-21T03:24:59", "releases": true, "render_readme": false, "published_tags": [ @@ -46,7 +46,7 @@ ], "selected_tag": null, "show_beta": false, - "stargazers_count": 215, + "stargazers_count": 221, "topics": [], "zip_release": false } diff --git a/.storage/hacs/194140521.hacs b/.storage/hacs/194140521.hacs index 684b968..69a562a 100644 --- a/.storage/hacs/194140521.hacs +++ b/.storage/hacs/194140521.hacs @@ -27,14 +27,14 @@ "installed": true, "installed_commit": "37e731b", "installed_version": "1.2.3", - "open_issues": 21, + "open_issues": 23, "last_commit": "37e731b", "last_version": "1.2.3", - "last_updated": "2020-12-12T00:50:38Z", + "last_updated": "2020-12-27T20:59:24Z", "manifest_name": "Browser mod", "new": false, "persistent_directory": null, - "pushed_at": "2020-12-12T00:50:38", + "pushed_at": "2020-12-27T20:59:24", "releases": true, "render_readme": false, "published_tags": [ @@ -46,7 +46,7 @@ ], "selected_tag": null, "show_beta": false, - "stargazers_count": 314, + "stargazers_count": 323, "topics": [], "zip_release": false } diff --git a/.storage/hacs/200897141.hacs b/.storage/hacs/200897141.hacs index 123f310..2bc1541 100644 --- a/.storage/hacs/200897141.hacs +++ b/.storage/hacs/200897141.hacs @@ -46,7 +46,7 @@ ], "selected_tag": null, "show_beta": false, - "stargazers_count": 71, + "stargazers_count": 73, "topics": [], "zip_release": false } diff --git a/.storage/hacs/223008910.hacs b/.storage/hacs/223008910.hacs index 2944635..4cbca83 100644 --- a/.storage/hacs/223008910.hacs +++ b/.storage/hacs/223008910.hacs @@ -27,7 +27,7 @@ "installed": true, "installed_commit": "3ed0a8f", "installed_version": "v0.2.2", - "open_issues": 5, + "open_issues": 6, "last_commit": "3ed0a8f", "last_version": "v0.2.2", "last_updated": "2020-10-31T13:26:16Z", @@ -46,7 +46,7 @@ ], "selected_tag": null, "show_beta": false, - "stargazers_count": 53, + "stargazers_count": 55, "topics": [ "custom", "hacktoberfest", diff --git a/.storage/hacs/261262884.hacs b/.storage/hacs/261262884.hacs index abc8b2f..c35aa57 100644 --- a/.storage/hacs/261262884.hacs +++ b/.storage/hacs/261262884.hacs @@ -12,7 +12,7 @@ "description": "\ud83d\udd70\ufe0f Time Picker Card for Home Assistant's Lovelace UI", "domain": "", "domains": [], - "downloads": 1142, + "downloads": 1372, "file_name": "time-picker-card.js", "filename": "time-picker-card.js", "first_install": false, @@ -27,7 +27,7 @@ "installed": true, "installed_commit": "c3fa2ce", "installed_version": "1.1.1", - "open_issues": 2, + "open_issues": 3, "last_commit": "c3fa2ce", "last_version": "1.1.1", "last_updated": "2020-11-22T14:38:10Z", @@ -46,7 +46,7 @@ ], "selected_tag": null, "show_beta": false, - "stargazers_count": 44, + "stargazers_count": 45, "topics": [ "home-assistant", "homeassistant", diff --git a/.storage/hacs/303101606.hacs b/.storage/hacs/303101606.hacs index 93124e7..5fbbfe4 100644 --- a/.storage/hacs/303101606.hacs +++ b/.storage/hacs/303101606.hacs @@ -12,7 +12,7 @@ "description": "\ud83d\ude48 Hides the Home Assistant header and/or sidebar", "domain": "", "domains": [], - "downloads": 3267, + "downloads": 456, "file_name": "kiosk-mode.js", "filename": "", "first_install": false, @@ -27,26 +27,26 @@ "installed": true, "installed_commit": "78b95f3", "installed_version": "1.4.7", - "open_issues": 4, - "last_commit": "78b95f3", - "last_version": "1.4.7", - "last_updated": "2020-11-19T12:46:12Z", + "open_issues": 2, + "last_commit": "c7c4161", + "last_version": "1.4.9", + "last_updated": "2020-12-31T20:44:08Z", "manifest_name": null, "new": false, "persistent_directory": null, - "pushed_at": "2020-11-19T12:46:12", + "pushed_at": "2020-12-31T20:44:08", "releases": true, "render_readme": true, "published_tags": [ + "1.4.9", + "1.4.8", "1.4.7", "1.4.5", - "1.4.4", - "1.4.3", - "1.4.2" + "1.4.4" ], "selected_tag": null, "show_beta": false, - "stargazers_count": 51, + "stargazers_count": 59, "topics": [ "home-assistant", "kiosk", diff --git a/.storage/hacs/304967918.hacs b/.storage/hacs/304967918.hacs new file mode 100644 index 0000000..b1d30c7 --- /dev/null +++ b/.storage/hacs/304967918.hacs @@ -0,0 +1,54 @@ +{ + "version": "6", + "key": "hacs/304967918.hacs", + "data": { + "archived": false, + "authors": [], + "category": "plugin", + "content_in_root": false, + "country": [], + "config_flow": false, + "default_branch": "main", + "description": "Replace input_number sliders with plus and minus buttons", + "domain": "", + "domains": [], + "downloads": 0, + "file_name": "numberbox-card.js", + "filename": "numberbox-card.js", + "first_install": false, + "fork": false, + "full_name": "htmltiger/numberbox-card", + "hacs": null, + "hide": false, + "hide_default_branch": false, + "homeassistant": null, + "id": "304967918", + "iot_class": null, + "installed": true, + "installed_commit": "eb9ed39", + "installed_version": null, + "open_issues": 3, + "last_commit": "eb9ed39", + "last_version": null, + "last_updated": "2020-12-25T15:24:09Z", + "manifest_name": null, + "new": false, + "persistent_directory": null, + "pushed_at": "2020-12-25T15:24:09", + "releases": false, + "render_readme": true, + "published_tags": [], + "selected_tag": null, + "show_beta": false, + "stargazers_count": 7, + "topics": [ + "hacs", + "input", + "lovelace", + "number", + "numberbox-card", + "slider" + ], + "zip_release": false + } +} \ No newline at end of file diff --git a/.storage/hassio b/.storage/hassio index f2d6d90..52ceba4 100644 --- a/.storage/hassio +++ b/.storage/hassio @@ -1,7 +1,7 @@ { - "data": { - "hassio_user": "5dc5beb72dbc49d59080804cea6f026c" - }, + "version": 1, "key": "hassio", - "version": 1 + "data": { + "hassio_user": "66bf1f45db524de88f93b2b50fb0584f" + } } \ No newline at end of file diff --git a/.storage/http b/.storage/http index 2525423..79fa4f6 100644 --- a/.storage/http +++ b/.storage/http @@ -3,11 +3,11 @@ "key": "http", "data": { "ip_ban_enabled": true, + "ssl_profile": "modern", + "login_attempts_threshold": -1, "cors_allowed_origins": [ "https://cast.home-assistant.io" ], - "login_attempts_threshold": -1, - "ssl_profile": "modern", "server_port": 8123 } } \ No newline at end of file diff --git a/.storage/lovelace.lovelace_main b/.storage/lovelace.lovelace_main index 7b93688..1d145ae 100644 --- a/.storage/lovelace.lovelace_main +++ b/.storage/lovelace.lovelace_main @@ -66,6 +66,25 @@ "action": "toggle" }, "entity": "switch.outside_north_circuit_1" + }, + { + "type": "custom:button-card", + "entity": "sensor.sensor1", + "layout": "icon_state_name2nd", + "show_state": true, + "show_name": true, + "show_label": true, + "label": "label", + "styles": { + "grid": [ + { + "grid-template-areas": "\"n i\" \"s i\" \"l i\"" + }, + { + "grid-template-columns": "1fr 40%" + } + ] + } } ] }, @@ -94,6 +113,52 @@ ] } ] + }, + { + "title": "Stone Room", + "path": "stone-room", + "badges": [], + "cards": [ + { + "type": "entities", + "entities": [ + { + "entity": "input_number.stone_room_min_temp", + "type": "custom:numberbox-card", + "icon_plus": "mdi:chevron-up", + "icon_minus": "mdi:chevron-down" + }, + { + "entity": "sensor.stone_room_humidity" + }, + { + "entity": "sensor.stone_room_dew_point_temperature" + } + ], + "title": "Stone Room Climate", + "show_header_toggle": false, + "state_color": true + }, + { + "type": "custom:button-card", + "entity": "switch.stone_room_heating", + "layout": "icon_state_name2nd", + "show_state": true, + "show_name": true, + "show_label": false, + "label": "Stone Room Heating", + "styles": { + "grid": [ + { + "grid-template-areas": "\"n i\" \"s i\" \"l i\"" + }, + { + "grid-template-columns": "1fr 50%" + } + ] + } + } + ] } ] } diff --git a/.storage/lovelace.lovelace_weather b/.storage/lovelace.lovelace_weather index 43a58da..f8abaee 100644 --- a/.storage/lovelace.lovelace_weather +++ b/.storage/lovelace.lovelace_weather @@ -62,7 +62,7 @@ { "entity": "sensor.bme_outside_temperature", "icon": "mdi:temperature-fahrenheit", - "name": "Outside Temperature", + "name": "Temperature", "secondary_info": "last-changed" }, { @@ -90,7 +90,7 @@ { "entity": "sensor.bme_inside_temperature", "icon": "mdi:temperature-fahrenheit", - "name": "Outside Temperature", + "name": "Temperature", "secondary_info": "last-changed" }, { diff --git a/.storage/lovelace_resources b/.storage/lovelace_resources index 02de00a..7ee3b27 100644 --- a/.storage/lovelace_resources +++ b/.storage/lovelace_resources @@ -4,19 +4,24 @@ "data": { "items": [ { - "url": "/hacsfiles/button-card/button-card.js", + "url": "/hacsfiles/lovelace-darksky-card/lovelace-darksky-card.js", "type": "module", - "id": "2e6bc398cf194600a54c288f0f39df30" + "id": "6416a427f43744cd978769f251f65c65" }, { "url": "/hacsfiles/lovelace-time-picker-card/time-picker-card.js", "type": "module", - "id": "320b29e23fa841389e7f288518351f20" + "id": "09f02a5b58e44a109101336c0ab108d8" }, { - "url": "/hacsfiles/lovelace-darksky-card/lovelace-darksky-card.js", + "url": "/hacsfiles/button-card/button-card.js", "type": "module", - "id": "1b05f5d79aba4d86876333158b04a3c9" + "id": "ba86464d168d480ab03e8b66c8a1944c" + }, + { + "url": "/hacsfiles/numberbox-card/numberbox-card.js", + "type": "module", + "id": "c0db2892f4274ea682c691228787d8f5" } ] } diff --git a/.storage/mobile_app b/.storage/mobile_app index fb5ace4..67dfe1f 100644 --- a/.storage/mobile_app +++ b/.storage/mobile_app @@ -7,12 +7,23 @@ "added": true, "attributes": {}, "device_class": "plug", - "icon": "mdi:power-plug", + "icon": "mdi:power-plug-off", "name": "Is Charging", - "state": true, + "state": false, "type": "binary_sensor", "unique_id": "is_charging", "webhook_id": "972369ddfba8b95dfc4b3ab68f74f19e19227919102c4720d1fc38d9fd45a0b4" + }, + "dccd13d57c9e6da9b4ec0933cd84df31c2fe381961b578a52829ed31c4949573_is_charging": { + "unique_id": "is_charging", + "state": false, + "type": "binary_sensor", + "icon": "mdi:power-plug-off", + "attributes": {}, + "name": "Is Charging", + "device_class": "plug", + "webhook_id": "dccd13d57c9e6da9b4ec0933cd84df31c2fe381961b578a52829ed31c4949573", + "added": true } }, "deleted_ids": [ @@ -153,7 +164,7 @@ "ip_address": "10.0.0.203", "link_speed": 72, "is_hidden": false, - "frequency": 2412, + "frequency": 2462, "signal_level": -1 }, "icon": "mdi:wifi-strength-off", @@ -197,9 +208,9 @@ "added": true, "attributes": {}, "device_class": "battery", - "icon": "mdi:battery", + "icon": "mdi:battery-90", "name": "Battery Level", - "state": 100, + "state": 97, "type": "sensor", "unique_id": "battery_level", "unit_of_measurement": "%", @@ -209,9 +220,9 @@ "added": true, "attributes": {}, "device_class": "battery", - "icon": "mdi:battery-charging", + "icon": "mdi:battery-unknown", "name": "Battery State", - "state": "full", + "state": "unknown", "type": "sensor", "unique_id": "battery_state", "webhook_id": "972369ddfba8b95dfc4b3ab68f74f19e19227919102c4720d1fc38d9fd45a0b4" @@ -273,13 +284,13 @@ "972369ddfba8b95dfc4b3ab68f74f19e19227919102c4720d1fc38d9fd45a0b4_last_reboot": { "added": true, "attributes": { - "Local Time": "Wed Dec 09 15:27:19 PST 2020", - "Time in Milliseconds": 1607556439220 + "Local Time": "Wed Dec 30 20:26:18 PST 2020", + "Time in Milliseconds": 1609388778991 }, "device_class": "timestamp", "icon": "mdi:restart", "name": "Last Reboot", - "state": "2020-12-09T23:27:19Z", + "state": "2020-12-31T04:26:18Z", "type": "sensor", "unique_id": "last_reboot", "webhook_id": "972369ddfba8b95dfc4b3ab68f74f19e19227919102c4720d1fc38d9fd45a0b4" @@ -290,7 +301,7 @@ "device_class": "illuminance", "icon": "mdi:brightness-5", "name": "Light Sensor", - "state": "81", + "state": "114", "type": "sensor", "unique_id": "light_sensor", "unit_of_measurement": "lx", @@ -524,6 +535,48 @@ "type": "sensor", "unique_id": "wifi_connection", "webhook_id": "e689e9489fb188efebd2131925467e20069b7725bbd125ef8f8765986e124d0f" + }, + "dccd13d57c9e6da9b4ec0933cd84df31c2fe381961b578a52829ed31c4949573_battery_level": { + "unique_id": "battery_level", + "state": 46, + "type": "sensor", + "icon": "mdi:battery-40", + "attributes": {}, + "name": "Battery Level", + "device_class": "battery", + "unit_of_measurement": "%", + "webhook_id": "dccd13d57c9e6da9b4ec0933cd84df31c2fe381961b578a52829ed31c4949573", + "added": true + }, + "dccd13d57c9e6da9b4ec0933cd84df31c2fe381961b578a52829ed31c4949573_battery_state": { + "unique_id": "battery_state", + "state": "discharging", + "type": "sensor", + "icon": "mdi:battery-minus", + "attributes": {}, + "name": "Battery State", + "webhook_id": "dccd13d57c9e6da9b4ec0933cd84df31c2fe381961b578a52829ed31c4949573", + "added": true + }, + "dccd13d57c9e6da9b4ec0933cd84df31c2fe381961b578a52829ed31c4949573_charger_type": { + "unique_id": "charger_type", + "state": "ac", + "type": "sensor", + "icon": "mdi:power-plug", + "attributes": {}, + "name": "Charger Type", + "webhook_id": "dccd13d57c9e6da9b4ec0933cd84df31c2fe381961b578a52829ed31c4949573", + "added": true + }, + "dccd13d57c9e6da9b4ec0933cd84df31c2fe381961b578a52829ed31c4949573_battery_health": { + "unique_id": "battery_health", + "state": "good", + "type": "sensor", + "icon": "mdi:battery-heart-variant", + "attributes": {}, + "name": "Battery Health", + "webhook_id": "dccd13d57c9e6da9b4ec0933cd84df31c2fe381961b578a52829ed31c4949573", + "added": true } } } diff --git a/.storage/person b/.storage/person index 6bdb79a..43e84c4 100644 --- a/.storage/person +++ b/.storage/person @@ -1,4 +1,6 @@ { + "version": 2, + "key": "person", "data": { "items": [ { @@ -6,14 +8,13 @@ "device_tracker.700t1c", "device_tracker.sm_g935r4", "device_tracker.xt1064_2", - "device_tracker.lgus215" + "device_tracker.lgus215", + "device_tracker.lenovo_tb_x606f" ], "id": "sysadmin", "name": "sysadmin", "user_id": "99685dc45d9f40dc8183e11ce5128038" } ] - }, - "key": "person", - "version": 2 + } } \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..a04b218 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,5 @@ +{ + "files.associations": { + "*.yaml": "home-assistant" + } +} \ No newline at end of file diff --git a/configuration.yaml b/configuration.yaml index 7b628b5..723b330 100644 --- a/configuration.yaml +++ b/configuration.yaml @@ -38,10 +38,10 @@ frontend: # see https://github.com/thomasloven/hass-browser_mod # browser_mod: -#https://github.com/thomasloven/hass-lovelace_gen +# https://github.com/thomasloven/hass-lovelace_gen # lovelace_gen: lovelace: - mode: storage + # mode: storage # load additional yaml mode dashboards - dashboards: !include lovelace/dashboards.yaml + # dashboards: !include dashboards/config.yaml diff --git a/lovelace/_manual/closet.yaml b/dashboards/_manual/closet.yaml similarity index 100% rename from lovelace/_manual/closet.yaml rename to dashboards/_manual/closet.yaml diff --git a/lovelace/_manual/lights.yaml b/dashboards/_manual/lights.yaml similarity index 100% rename from lovelace/_manual/lights.yaml rename to dashboards/_manual/lights.yaml diff --git a/lovelace/_manual/temps.yaml b/dashboards/_manual/temps.yaml similarity index 100% rename from lovelace/_manual/temps.yaml rename to dashboards/_manual/temps.yaml diff --git a/lovelace/_manual/weather.yaml b/dashboards/_manual/weather.yaml similarity index 100% rename from lovelace/_manual/weather.yaml rename to dashboards/_manual/weather.yaml diff --git a/lovelace/dashboards.yaml b/dashboards/config.yaml similarity index 82% rename from lovelace/dashboards.yaml rename to dashboards/config.yaml index a1ca408..10db788 100644 --- a/lovelace/dashboards.yaml +++ b/dashboards/config.yaml @@ -1,3 +1,4 @@ +# there are manually created (yaml mode) dashboards lovelace-panel: mode: yaml title: Manual - Panel diff --git a/lovelace/manual.yaml b/dashboards/manual.yaml similarity index 100% rename from lovelace/manual.yaml rename to dashboards/manual.yaml diff --git a/lovelace/panel.yaml b/dashboards/panel.yaml similarity index 100% rename from lovelace/panel.yaml rename to dashboards/panel.yaml diff --git a/packages/indoor_security_light.yaml b/packages/indoor_security_light.yaml index dce4f4b..492bbcf 100644 --- a/packages/indoor_security_light.yaml +++ b/packages/indoor_security_light.yaml @@ -1,7 +1,7 @@ input_datetime: security_lights_interior_time_off: has_time: true - initial: '22:30' + # initial: '22:30' # # security_lights_interior_on_offset: diff --git a/packages/inside.yaml b/packages/inside.yaml index 0066c2b..1a976e8 100644 --- a/packages/inside.yaml +++ b/packages/inside.yaml @@ -12,22 +12,22 @@ sensor: state_topic: "temp/inside/SENSOR" qos: 0 unit_of_measurement: "F" - value_template: "{{ value_json.BME280.Temperature * 9 / 5 + 32 }}" + value_template: "{{ value_json.BME280.Temperature * 9 / 5 + 32 | round(1) }}" - platform: mqtt name: "bme_inside_dew_point_temperature" state_topic: "temp/inside/SENSOR" qos: 0 unit_of_measurement: "F" - value_template: "{{ value_json.BME280.DewPoint * 9 / 5 + 32 }}" + value_template: "{{ value_json.BME280.DewPoint * 9 / 5 + 32 | round(1) }}" - platform: mqtt name: "bme_inside_humidity" state_topic: "temp/inside/SENSOR" qos: 0 unit_of_measurement: "%" - value_template: "{{ value_json.BME280.Humidity }}" + value_template: "{{ value_json.BME280.Humidity | round(1) }}" - platform: mqtt name: "bme_inside_barometric_pressure" state_topic: "temp/inside/SENSOR" qos: 0 unit_of_measurement: "inHg" - value_template: "{{ value_json.BME280.Pressure / 33.86 }}" + value_template: "{{ value_json.BME280.Pressure / 33.86 | round(2) }}" diff --git a/packages/outside.yaml b/packages/outside.yaml index b8aa7c3..a7cf67b 100644 --- a/packages/outside.yaml +++ b/packages/outside.yaml @@ -12,25 +12,25 @@ sensor: state_topic: "tele/outside/SENSOR" qos: 0 unit_of_measurement: "F" - value_template: "{{ value_json.BME280.Temperature * 9 / 5 + 32 }}" + value_template: "{{ value_json.BME280.Temperature * 9 / 5 + 32 | round(1) }}" - platform: mqtt name: "bme_outside_dew_point_temperature" state_topic: "tele/outside/SENSOR" qos: 0 unit_of_measurement: "F" - value_template: "{{ value_json.BME280.DewPoint * 9 / 5 + 32 }}" + value_template: "{{ value_json.BME280.DewPoint * 9 / 5 + 32 | round(1) }}" - platform: mqtt name: "bme_outside_humidity" state_topic: "tele/outside/SENSOR" qos: 0 unit_of_measurement: "%" - value_template: "{{ value_json.BME280.Humidity }}" + value_template: "{{ value_json.BME280.Humidity | round(1) }}" - platform: mqtt name: "bme_outside_barometric_pressure" state_topic: "tele/outside/SENSOR" qos: 0 unit_of_measurement: "inHg" - value_template: "{{ value_json.BME280.Pressure / 33.86 }}" + value_template: "{{ value_json.BME280.Pressure / 33.86 | round(2) }}" switch: - platform: mqtt diff --git a/packages/stone_room.yaml b/packages/stone_room.yaml new file mode 100644 index 0000000..3fecd62 --- /dev/null +++ b/packages/stone_room.yaml @@ -0,0 +1,109 @@ +# {"Time":"2020-12-08T02:09:02","BME280":{"Temperature":21.5,"Humidity":39.1,"DewPoint":6.9,"Pressure":906.5},"PressureUnit":"hPa","TempUnit":"C"} +homeassistant: + customize: + sensor.stone_room_temperature: + friendly_name: 'Stone Room Temperature' + sensor.stone_room_dew_point_temperature: + friendly_name: 'Stone Room Dew Point Temperature' + sensor.stone_room_humidity: + friendly_name: 'Stone Room Humidity' + # input_number.stone_room_min_temp: + # friendly_name: 'Stone Room Minimum Set Temperature' + +input_number: + stone_room_min_temp: + name: 'Stone Room Minimum Set Temperature' + min: 34 + max: 50 + step: 1 + mode: 'box' + +sensor: + - platform: mqtt + name: "stone_room_temperature" + state_topic: "tele/stone/SENSOR" + qos: 0 + unit_of_measurement: "F" + value_template: "{{ '%.1f'%(value_json.DHT12.Temperature * 9 / 5 + 32 | float) }}" + - platform: mqtt + name: "stone_room_dew_point_temperature" + state_topic: "tele/stone/SENSOR" + qos: 0 + unit_of_measurement: "F" + value_template: "{{ '%.1f'%(value_json.DHT12.DewPoint * 9 / 5 + 32 | float) }}" + - platform: mqtt + name: "stone_room_humidity" + state_topic: "tele/stone/SENSOR" + qos: 0 + unit_of_measurement: "%" + value_template: "{{ '%.1f'%(value_json.DHT12.Humidity | float) }}" + +switch: + - platform: mqtt + name: "Stone Room Heating" + state_topic: "stat/stone/POWER1" + command_topic: "cmnd/stone/POWER1" + availability_topic: "tele/stone/LWT" + qos: 1 + payload_on: "ON" + payload_off: "OFF" + payload_available: "Online" + payload_not_available: "Offline" + retain: false + +automation: + - id: stone_room_heater_on + trigger: + platform: state + entity_id: sensor.stone_room_temperature + below: "{{ states('input_number.stone_room_min_temp') | int }}" + for: + minutes: 5 + action: + - service: switch.turn_on + entity_id: switch.stone_room_heating + - service: notify.pushsafer + data: + title: "Stone Room Heating On" + message: "Stone Room Heater Has Turned on" + target: ["26583"] + data: + icon: "20" + iconcolor: "#FF00FF" + sound: "33" + vibration: "0" + url: "https://ha.238.kebler.net/" + urltitle: "Open Home Assistant" + time2live: "10" + priority: "2" + retry: "60" + expire: "600" + answer: "1" + + - id: stone_room_heater_off + trigger: + platform: state + entity_id: sensor.stone_room_temperature + above: "{{ states('input_number.stone_room_min_temp') + 3 | int }}" + for: + minutes: 5 + action: + - service: switch.turn_off + entity_id: switch.stone_room_heating + - service: notify.pushsafer + data: + title: "Stone Room Heating Off" + message: "Stone Room Heater Has Turned Off" + target: ["26583"] + data: + icon: "20" + iconcolor: "#FF00FF" + sound: "33" + vibration: "0" + url: "https://ha.238.kebler.net/" + urltitle: "Open Home Assistant" + time2live: "10" + priority: "2" + retry: "60" + expire: "600" + answer: "1" diff --git a/www/community/button-card/button-card.js b/www/community/button-card/button-card.js index a8d06c6..c8dc31b 100644 --- a/www/community/button-card/button-card.js +++ b/www/community/button-card/button-card.js @@ -1,4 +1,4 @@ -function t(t,e,i,n){var r,s=arguments.length,a=s<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,i,n);else for(var o=t.length-1;o>=0;o--)(r=t[o])&&(a=(s<3?r(a):s>3?r(e,i,a):r(e,i))||a);return s>3&&a&&Object.defineProperty(e,i,a),a}const e="undefined"!=typeof window&&null!=window.customElements&&void 0!==window.customElements.polyfillWrapFlushCallback,i=(t,e,i=null)=>{for(;e!==i;){const i=e.nextSibling;t.removeChild(e),e=i}},n=`{{lit-${String(Math.random()).slice(2)}}}`,r=`\x3c!--${n}--\x3e`,s=new RegExp(`${n}|${r}`);class a{constructor(t,e){this.parts=[],this.element=e;const i=[],r=[],a=document.createTreeWalker(e.content,133,null,!1);let l=0,u=-1,d=0;const{strings:p,values:{length:f}}=t;for(;d0;){const e=p[d],i=h.exec(e)[2],n=i.toLowerCase()+"$lit$",r=t.getAttribute(n);t.removeAttribute(n);const a=r.split(s);this.parts.push({type:"attribute",index:u,name:i,strings:a}),d+=a.length-1}}"TEMPLATE"===t.tagName&&(r.push(t),a.currentNode=t.content)}else if(3===t.nodeType){const e=t.data;if(e.indexOf(n)>=0){const n=t.parentNode,r=e.split(s),a=r.length-1;for(let e=0;e{const i=t.length-e.length;return i>=0&&t.slice(i)===e},l=t=>-1!==t.index,c=()=>document.createComment(""),h=/([ \x09\x0a\x0c\x0d])([^\0-\x1F\x7F-\x9F "'>=/]+)([ \x09\x0a\x0c\x0d]*=[ \x09\x0a\x0c\x0d]*(?:[^ \x09\x0a\x0c\x0d"'`<>=]*|"[^"]*|'[^']*))$/;function u(t,e){const{element:{content:i},parts:n}=t,r=document.createTreeWalker(i,133,null,!1);let s=p(n),a=n[s],o=-1,l=0;const c=[];let h=null;for(;r.nextNode();){o++;const t=r.currentNode;for(t.previousSibling===h&&(h=null),e.has(t)&&(c.push(t),null===h&&(h=t)),null!==h&&l++;void 0!==a&&a.index===o;)a.index=null!==h?-1:a.index-l,s=p(n,s),a=n[s]}c.forEach((t=>t.parentNode.removeChild(t)))}const d=t=>{let e=11===t.nodeType?0:1;const i=document.createTreeWalker(t,133,null,!1);for(;i.nextNode();)e++;return e},p=(t,e=-1)=>{for(let i=e+1;i(...e)=>{const i=t(...e);return f.set(i,!0),i},m=t=>"function"==typeof t&&f.has(t),_={},b={};class y{constructor(t,e,i){this.__parts=[],this.template=t,this.processor=e,this.options=i}update(t){let e=0;for(const i of this.__parts)void 0!==i&&i.setValue(t[e]),e++;for(const i of this.__parts)void 0!==i&&i.commit()}_clone(){const t=e?this.template.element.content.cloneNode(!0):document.importNode(this.template.element.content,!0),i=[],n=this.template.parts,r=document.createTreeWalker(t,133,null,!1);let s,a=0,o=0,c=r.nextNode();for(;at}),w=` ${n} `;class S{constructor(t,e,i,n){this.strings=t,this.values=e,this.type=i,this.processor=n}getHTML(){const t=this.strings.length-1;let e="",i=!1;for(let s=0;s-1||i)&&-1===t.indexOf("--\x3e",a+1);const o=h.exec(t);e+=null===o?t+(i?w:r):t.substr(0,o.index)+o[1]+o[2]+"$lit$"+o[3]+n}return e+=this.strings[t],e}getTemplateElement(){const t=document.createElement("template");let e=this.getHTML();return void 0!==v&&(e=v.createHTML(e)),t.innerHTML=e,t}}const x=t=>null===t||!("object"==typeof t||"function"==typeof t),k=t=>Array.isArray(t)||!(!t||!t[Symbol.iterator]);class O{constructor(t,e,i){this.dirty=!0,this.element=t,this.name=e,this.strings=i,this.parts=[];for(let n=0;n{try{const t={get capture(){return N=!0,!1}};window.addEventListener("test",t,t),window.removeEventListener("test",t,t)}catch(t){}})();class P{constructor(t,e,i){this.value=void 0,this.__pendingValue=void 0,this.element=t,this.eventName=e,this.eventContext=i,this.__boundHandleEvent=t=>this.handleEvent(t)}setValue(t){this.__pendingValue=t}commit(){for(;m(this.__pendingValue);){const t=this.__pendingValue;this.__pendingValue=_,t(this)}if(this.__pendingValue===_)return;const t=this.__pendingValue,e=this.value,i=null==t||null!=e&&(t.capture!==e.capture||t.once!==e.once||t.passive!==e.passive),n=null!=t&&(null==e||i);i&&this.element.removeEventListener(this.eventName,this.__boundHandleEvent,this.__options),n&&(this.__options=j(t),this.element.addEventListener(this.eventName,this.__boundHandleEvent,this.__options)),this.value=t,this.__pendingValue=_}handleEvent(t){"function"==typeof this.value?this.value.call(this.eventContext||this.element,t):this.value.handleEvent(t)}}const j=t=>t&&(N?{capture:t.capture,passive:t.passive,once:t.once}:t.capture);function $(t){let e=H.get(t.type);void 0===e&&(e={stringsArray:new WeakMap,keyString:new Map},H.set(t.type,e));let i=e.stringsArray.get(t.strings);if(void 0!==i)return i;const r=t.strings.join(n);return i=e.keyString.get(r),void 0===i&&(i=new a(t,t.getTemplateElement()),e.keyString.set(r,i)),e.stringsArray.set(t.strings,i),i}const H=new Map,R=new WeakMap;const V=new class{handleAttributeExpressions(t,e,i,n){const r=e[0];if("."===r){return new E(t,e.slice(1),i).parts}if("@"===r)return[new P(t,e.slice(1),n.eventContext)];if("?"===r)return[new C(t,e.slice(1),i)];return new O(t,e,i).parts}handleTextExpression(t){return new M(t)}};"undefined"!=typeof window&&(window.litHtmlVersions||(window.litHtmlVersions=[])).push("1.3.0");const D=(t,...e)=>new S(t,e,"html",V),L=(t,e)=>`${t}--${e}`;let F=!0;void 0===window.ShadyCSS?F=!1:void 0===window.ShadyCSS.prepareTemplateDom&&(console.warn("Incompatible ShadyCSS version detected. Please update to at least @webcomponents/webcomponentsjs@2.0.2 and @webcomponents/shadycss@1.3.1."),F=!1);const I=t=>e=>{const i=L(e.type,t);let r=H.get(i);void 0===r&&(r={stringsArray:new WeakMap,keyString:new Map},H.set(i,r));let s=r.stringsArray.get(e.strings);if(void 0!==s)return s;const o=e.strings.join(n);if(s=r.keyString.get(o),void 0===s){const i=e.getTemplateElement();F&&window.ShadyCSS.prepareTemplateDom(i,t),s=new a(e,i),r.keyString.set(o,s)}return r.stringsArray.set(e.strings,s),s},z=["html","svg"],U=new Set,q=(t,e,i)=>{U.add(t);const n=i?i.element:document.createElement("template"),r=e.querySelectorAll("style"),{length:s}=r;if(0===s)return void window.ShadyCSS.prepareTemplateStyles(n,t);const a=document.createElement("style");for(let c=0;c{z.forEach((e=>{const i=H.get(L(e,t));void 0!==i&&i.keyString.forEach((t=>{const{element:{content:e}}=t,i=new Set;Array.from(e.querySelectorAll("style")).forEach((t=>{i.add(t)})),u(t,i)}))}))})(t);const o=n.content;i?function(t,e,i=null){const{element:{content:n},parts:r}=t;if(null==i)return void n.appendChild(e);const s=document.createTreeWalker(n,133,null,!1);let a=p(r),o=0,l=-1;for(;s.nextNode();)for(l++,s.currentNode===i&&(o=d(e),i.parentNode.insertBefore(e,i));-1!==a&&r[a].index===l;){if(o>0){for(;-1!==a;)r[a].index+=o,a=p(r,a);return}a=p(r,a)}}(i,a,o.firstChild):o.insertBefore(a,o.firstChild),window.ShadyCSS.prepareTemplateStyles(n,t);const l=o.querySelector("style");if(window.ShadyCSS.nativeShadow&&null!==l)e.insertBefore(l.cloneNode(!0),e.firstChild);else if(i){o.insertBefore(a,o.firstChild);const t=new Set;t.add(a),u(i,t)}};window.JSCompiler_renameProperty=(t,e)=>t;const Y={toAttribute(t,e){switch(e){case Boolean:return t?"":null;case Object:case Array:return null==t?t:JSON.stringify(t)}return t},fromAttribute(t,e){switch(e){case Boolean:return null!==t;case Number:return null===t?null:Number(t);case Object:case Array:return JSON.parse(t)}return t}},B=(t,e)=>e!==t&&(e==e||t==t),W={attribute:!0,type:String,converter:Y,reflect:!1,hasChanged:B};class G extends HTMLElement{constructor(){super(),this.initialize()}static get observedAttributes(){this.finalize();const t=[];return this._classProperties.forEach(((e,i)=>{const n=this._attributeNameForProperty(i,e);void 0!==n&&(this._attributeToPropertyMap.set(n,i),t.push(n))})),t}static _ensureClassProperties(){if(!this.hasOwnProperty(JSCompiler_renameProperty("_classProperties",this))){this._classProperties=new Map;const t=Object.getPrototypeOf(this)._classProperties;void 0!==t&&t.forEach(((t,e)=>this._classProperties.set(e,t)))}}static createProperty(t,e=W){if(this._ensureClassProperties(),this._classProperties.set(t,e),e.noAccessor||this.prototype.hasOwnProperty(t))return;const i="symbol"==typeof t?Symbol():"__"+t,n=this.getPropertyDescriptor(t,i,e);void 0!==n&&Object.defineProperty(this.prototype,t,n)}static getPropertyDescriptor(t,e,i){return{get(){return this[e]},set(n){const r=this[t];this[e]=n,this.requestUpdateInternal(t,r,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this._classProperties&&this._classProperties.get(t)||W}static finalize(){const t=Object.getPrototypeOf(this);if(t.hasOwnProperty("finalized")||t.finalize(),this.finalized=!0,this._ensureClassProperties(),this._attributeToPropertyMap=new Map,this.hasOwnProperty(JSCompiler_renameProperty("properties",this))){const t=this.properties,e=[...Object.getOwnPropertyNames(t),..."function"==typeof Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(t):[]];for(const i of e)this.createProperty(i,t[i])}}static _attributeNameForProperty(t,e){const i=e.attribute;return!1===i?void 0:"string"==typeof i?i:"string"==typeof t?t.toLowerCase():void 0}static _valueHasChanged(t,e,i=B){return i(t,e)}static _propertyValueFromAttribute(t,e){const i=e.type,n=e.converter||Y,r="function"==typeof n?n:n.fromAttribute;return r?r(t,i):t}static _propertyValueToAttribute(t,e){if(void 0===e.reflect)return;const i=e.type,n=e.converter;return(n&&n.toAttribute||Y.toAttribute)(t,i)}initialize(){this._updateState=0,this._updatePromise=new Promise((t=>this._enableUpdatingResolver=t)),this._changedProperties=new Map,this._saveInstanceProperties(),this.requestUpdateInternal()}_saveInstanceProperties(){this.constructor._classProperties.forEach(((t,e)=>{if(this.hasOwnProperty(e)){const t=this[e];delete this[e],this._instanceProperties||(this._instanceProperties=new Map),this._instanceProperties.set(e,t)}}))}_applyInstanceProperties(){this._instanceProperties.forEach(((t,e)=>this[e]=t)),this._instanceProperties=void 0}connectedCallback(){this.enableUpdating()}enableUpdating(){void 0!==this._enableUpdatingResolver&&(this._enableUpdatingResolver(),this._enableUpdatingResolver=void 0)}disconnectedCallback(){}attributeChangedCallback(t,e,i){e!==i&&this._attributeToProperty(t,i)}_propertyToAttribute(t,e,i=W){const n=this.constructor,r=n._attributeNameForProperty(t,i);if(void 0!==r){const t=n._propertyValueToAttribute(e,i);if(void 0===t)return;this._updateState=8|this._updateState,null==t?this.removeAttribute(r):this.setAttribute(r,t),this._updateState=-9&this._updateState}}_attributeToProperty(t,e){if(8&this._updateState)return;const i=this.constructor,n=i._attributeToPropertyMap.get(t);if(void 0!==n){const t=i.getPropertyOptions(n);this._updateState=16|this._updateState,this[n]=i._propertyValueFromAttribute(e,t),this._updateState=-17&this._updateState}}requestUpdateInternal(t,e,i){let n=!0;if(void 0!==t){const r=this.constructor;i=i||r.getPropertyOptions(t),r._valueHasChanged(this[t],e,i.hasChanged)?(this._changedProperties.has(t)||this._changedProperties.set(t,e),!0!==i.reflect||16&this._updateState||(void 0===this._reflectingProperties&&(this._reflectingProperties=new Map),this._reflectingProperties.set(t,i))):n=!1}!this._hasRequestedUpdate&&n&&(this._updatePromise=this._enqueueUpdate())}requestUpdate(t,e){return this.requestUpdateInternal(t,e),this.updateComplete}async _enqueueUpdate(){this._updateState=4|this._updateState;try{await this._updatePromise}catch(e){}const t=this.performUpdate();return null!=t&&await t,!this._hasRequestedUpdate}get _hasRequestedUpdate(){return 4&this._updateState}get hasUpdated(){return 1&this._updateState}performUpdate(){if(!this._hasRequestedUpdate)return;this._instanceProperties&&this._applyInstanceProperties();let t=!1;const e=this._changedProperties;try{t=this.shouldUpdate(e),t?this.update(e):this._markUpdated()}catch(i){throw t=!1,this._markUpdated(),i}t&&(1&this._updateState||(this._updateState=1|this._updateState,this.firstUpdated(e)),this.updated(e))}_markUpdated(){this._changedProperties=new Map,this._updateState=-5&this._updateState}get updateComplete(){return this._getUpdateComplete()}_getUpdateComplete(){return this._updatePromise}shouldUpdate(t){return!0}update(t){void 0!==this._reflectingProperties&&this._reflectingProperties.size>0&&(this._reflectingProperties.forEach(((t,e)=>this._propertyToAttribute(e,this[e],t))),this._reflectingProperties=void 0),this._markUpdated()}updated(t){}firstUpdated(t){}}G.finalized=!0;const Z=(t,e)=>"method"===e.kind&&e.descriptor&&!("value"in e.descriptor)?Object.assign(Object.assign({},e),{finisher(i){i.createProperty(e.key,t)}}):{kind:"field",key:Symbol(),placement:"own",descriptor:{},initializer(){"function"==typeof e.initializer&&(this[e.key]=e.initializer.call(this))},finisher(i){i.createProperty(e.key,t)}};function J(t){return(e,i)=>void 0!==i?((t,e,i)=>{e.constructor.createProperty(i,t)})(t,e,i):Z(t,e)}const X=(t,e,i)=>{Object.defineProperty(e,i,t)},K=(t,e)=>({kind:"method",placement:"prototype",key:e.key,descriptor:t});const Q=window.ShadowRoot&&(void 0===window.ShadyCSS||window.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,tt=Symbol();class et{constructor(t,e){if(e!==tt)throw new Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t}get styleSheet(){return void 0===this._styleSheet&&(Q?(this._styleSheet=new CSSStyleSheet,this._styleSheet.replaceSync(this.cssText)):this._styleSheet=null),this._styleSheet}toString(){return this.cssText}}(window.litElementVersions||(window.litElementVersions=[])).push("2.4.0");const it={};class nt extends G{static getStyles(){return this.styles}static _getUniqueStyles(){if(this.hasOwnProperty(JSCompiler_renameProperty("_styles",this)))return;const t=this.getStyles();if(Array.isArray(t)){const e=(t,i)=>t.reduceRight(((t,i)=>Array.isArray(i)?e(i,t):(t.add(i),t)),i),i=e(t,new Set),n=[];i.forEach((t=>n.unshift(t))),this._styles=n}else this._styles=void 0===t?[]:[t];this._styles=this._styles.map((t=>{if(t instanceof CSSStyleSheet&&!Q){const e=Array.prototype.slice.call(t.cssRules).reduce(((t,e)=>t+e.cssText),"");return new et(String(e),tt)}return t}))}initialize(){super.initialize(),this.constructor._getUniqueStyles(),this.renderRoot=this.createRenderRoot(),window.ShadowRoot&&this.renderRoot instanceof window.ShadowRoot&&this.adoptStyles()}createRenderRoot(){return this.attachShadow({mode:"open"})}adoptStyles(){const t=this.constructor._styles;0!==t.length&&(void 0===window.ShadyCSS||window.ShadyCSS.nativeShadow?Q?this.renderRoot.adoptedStyleSheets=t.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet)):this._needsShimAdoptedStyleSheets=!0:window.ShadyCSS.ScopingShim.prepareAdoptedCssText(t.map((t=>t.cssText)),this.localName))}connectedCallback(){super.connectedCallback(),this.hasUpdated&&void 0!==window.ShadyCSS&&window.ShadyCSS.styleElement(this)}update(t){const e=this.render();super.update(t),e!==it&&this.constructor.render(e,this.renderRoot,{scopeName:this.localName,eventContext:this}),this._needsShimAdoptedStyleSheets&&(this._needsShimAdoptedStyleSheets=!1,this.constructor._styles.forEach((t=>{const e=document.createElement("style");e.textContent=t.cssText,this.renderRoot.appendChild(e)})))}render(){return it}}nt.finalized=!0,nt.render=(t,e,n)=>{if(!n||"object"!=typeof n||!n.scopeName)throw new Error("The `scopeName` option is required.");const r=n.scopeName,s=R.has(e),a=F&&11===e.nodeType&&!!e.host,o=a&&!U.has(r),l=o?document.createDocumentFragment():e;if(((t,e,n)=>{let r=R.get(e);void 0===r&&(i(e,e.firstChild),R.set(e,r=new M(Object.assign({templateFactory:$},n))),r.appendInto(e)),r.setValue(t),r.commit()})(t,l,Object.assign({templateFactory:I(r)},n)),o){const t=R.get(l);R.delete(l);const n=t.value instanceof y?t.value.template:void 0;q(r,l,n),i(e,e.firstChild),e.appendChild(l),R.set(e,t)}!s&&a&&window.ShadyCSS.styleElement(e.host)};class rt{constructor(t){this.startPress=e=>{t().then((t=>{t&&t.startPress(e)}))},this.endPress=()=>{t().then((t=>{t&&t.endPress()}))},this.startFocus=()=>{t().then((t=>{t&&t.startFocus()}))},this.endFocus=()=>{t().then((t=>{t&&t.endFocus()}))},this.startHover=()=>{t().then((t=>{t&&t.startHover()}))},this.endHover=()=>{t().then((t=>{t&&t.endHover()}))}}}const st=new WeakMap,at=g((t=>e=>{if(!(e instanceof T)||e instanceof A||"style"!==e.committer.name||e.committer.parts.length>1)throw new Error("The `styleMap` directive must be used in the style attribute and must be the only part in the attribute.");const{committer:i}=e,{style:n}=i.element;let r=st.get(e);void 0===r&&(n.cssText=i.strings.join(" "),st.set(e,r=new Set)),r.forEach((e=>{e in t||(r.delete(e),-1===e.indexOf("-")?n[e]=null:n.removeProperty(e))}));for(const s in t)r.add(s),-1===s.indexOf("-")?n[s]=t[s]:n.setProperty(s,t[s])})),ot=new WeakMap,lt=g((t=>e=>{if(!(e instanceof M))throw new Error("unsafeHTML can only be used in text bindings");const i=ot.get(e);if(void 0!==i&&x(t)&&t===i.value&&e.value===i.fragment)return;const n=document.createElement("template");n.innerHTML=t;const r=document.importNode(n.content,!0);e.setValue(r),ot.set(e,{value:t,fragment:r})}));class ct{constructor(t){this.classes=new Set,this.changed=!1,this.element=t;const e=(t.getAttribute("class")||"").split(/\s+/);for(const i of e)this.classes.add(i)}add(t){this.classes.add(t),this.changed=!0}remove(t){this.classes.delete(t),this.changed=!0}commit(){if(this.changed){let t="";this.classes.forEach((e=>t+=e+" ")),this.element.setAttribute("class",t)}}}const ht=new WeakMap,ut=g((t=>e=>{if(!(e instanceof T)||e instanceof A||"class"!==e.committer.name||e.committer.parts.length>1)throw new Error("The `classMap` directive must be used in the `class` attribute and must be the only part in the attribute.");const{committer:i}=e,{element:n}=i;let r=ht.get(e);void 0===r&&(n.setAttribute("class",i.strings.join(" ")),ht.set(e,r=new Set));const s=n.classList||new ct(n);r.forEach((e=>{e in t||(s.remove(e),r.delete(e))}));for(const a in t){const e=t[a];e!=r.has(a)&&(e?(s.add(a),r.add(a)):(s.remove(a),r.delete(a)))}"function"==typeof s.commit&&s.commit()}));var dt=/d{1,4}|M{1,4}|YY(?:YY)?|S{1,3}|Do|ZZ|Z|([HhMsDm])\1?|[aA]|"[^"]*"|'[^']*'/g,pt="[^\\s]+",ft=/\[([^]*?)\]/gm;function gt(t,e){for(var i=[],n=0,r=t.length;n-1?n:null}};function _t(t){for(var e=[],i=1;i3?0:(t-t%10!=10?1:0)*t%10]}},St=_t({},wt),xt=function(t,e){for(void 0===e&&(e=2),t=String(t);t.length0?"-":"+")+xt(100*Math.floor(Math.abs(e)/60)+Math.abs(e)%60,4)},Z:function(t){var e=t.getTimezoneOffset();return(e>0?"-":"+")+xt(Math.floor(Math.abs(e)/60),2)+":"+xt(Math.abs(e)%60,2)}},Ot=function(t){return+t-1},Tt=[null,"[1-9]\\d?"],Mt=[null,pt],Ct=["isPm",pt,function(t,e){var i=t.toLowerCase();return i===e.amPm[0]?0:i===e.amPm[1]?1:null}],Et=["timezoneOffset","[^\\s]*?[\\+\\-]\\d\\d:?\\d\\d|[^\\s]*?Z?",function(t){var e=(t+"").match(/([+-]|\d\d)/gi);if(e){var i=60*+e[1]+parseInt(e[2],10);return"+"===e[0]?i:-i}return 0}],At=(mt("monthNamesShort"),mt("monthNames"),{default:"ddd MMM DD YYYY HH:mm:ss",shortDate:"M/D/YY",mediumDate:"MMM D, YYYY",longDate:"MMMM D, YYYY",fullDate:"dddd, MMMM D, YYYY",isoDate:"YYYY-MM-DD",isoDateTime:"YYYY-MM-DDTHH:mm:ssZ",shortTime:"HH:mm",mediumTime:"HH:mm:ss",longTime:"HH:mm:ss.SSS"});var Nt=function(t,e,i){if(void 0===e&&(e=At.default),void 0===i&&(i={}),"number"==typeof t&&(t=new Date(t)),"[object Date]"!==Object.prototype.toString.call(t)||isNaN(t.getTime()))throw new Error("Invalid Date pass to format");var n=[];e=(e=At[e]||e).replace(ft,(function(t,e){return n.push(e),"@@@"}));var r=_t(_t({},St),i);return(e=e.replace(dt,(function(e){return kt[e](t,r)}))).replace(/@@@/g,(function(){return n.shift()}))};function Pt(t){var e=t.split(":").map(Number);return 3600*e[0]+60*e[1]+e[2]}var jt=function(){try{(new Date).toLocaleDateString("i")}catch(t){return"RangeError"===t.name}return!1}()?function(t,e){return t.toLocaleDateString(e,{year:"numeric",month:"long",day:"numeric"})}:function(t){return Nt(t,"mediumDate")},$t=function(){try{(new Date).toLocaleString("i")}catch(t){return"RangeError"===t.name}return!1}()?function(t,e){return t.toLocaleString(e,{year:"numeric",month:"long",day:"numeric",hour:"numeric",minute:"2-digit"})}:function(t){return Nt(t,"haDateTime")},Ht=function(){try{(new Date).toLocaleTimeString("i")}catch(t){return"RangeError"===t.name}return!1}()?function(t,e){return t.toLocaleTimeString(e,{hour:"numeric",minute:"2-digit"})}:function(t){return Nt(t,"shortTime")},Rt=function(t){return t<10?"0"+t:t};function Vt(t){return t.substr(0,t.indexOf("."))}var Dt="hass:bookmark",Lt=["closed","locked","off"],Ft=new Set(["fan","input_boolean","light","switch","group","automation"]),It=function(t,e,i,n){n=n||{},i=null==i?{}:i;var r=new Event(e,{bubbles:void 0===n.bubbles||n.bubbles,cancelable:Boolean(n.cancelable),composed:void 0===n.composed||n.composed});return r.detail=i,t.dispatchEvent(r),r},zt=new Set(["call-service","divider","section","weblink","cast","select"]),Ut={alert:"toggle",automation:"toggle",climate:"climate",cover:"cover",fan:"toggle",group:"group",input_boolean:"toggle",input_number:"input-number",input_select:"input-select",input_text:"input-text",light:"toggle",lock:"lock",media_player:"media-player",remote:"toggle",scene:"scene",script:"script",sensor:"sensor",timer:"timer",switch:"toggle",vacuum:"toggle",water_heater:"climate",input_datetime:"input-datetime"},qt={alert:"hass:alert",automation:"hass:playlist-play",calendar:"hass:calendar",camera:"hass:video",climate:"hass:thermostat",configurator:"hass:settings",conversation:"hass:text-to-speech",device_tracker:"hass:account",fan:"hass:fan",group:"hass:google-circles-communities",history_graph:"hass:chart-line",homeassistant:"hass:home-assistant",homekit:"hass:home-automation",image_processing:"hass:image-filter-frames",input_boolean:"hass:drawing",input_datetime:"hass:calendar-clock",input_number:"hass:ray-vertex",input_select:"hass:format-list-bulleted",input_text:"hass:textbox",light:"hass:lightbulb",mailbox:"hass:mailbox",notify:"hass:comment-alert",person:"hass:account",plant:"hass:flower",proximity:"hass:apple-safari",remote:"hass:remote",scene:"hass:google-pages",script:"hass:file-document",sensor:"hass:eye",simple_alarm:"hass:bell",sun:"hass:white-balance-sunny",switch:"hass:flash",timer:"hass:timer",updater:"hass:cloud-upload",vacuum:"hass:robot-vacuum",water_heater:"hass:thermometer",weblink:"hass:open-in-new"};function Yt(t,e){if(t in qt)return qt[t];switch(t){case"alarm_control_panel":switch(e){case"armed_home":return"hass:bell-plus";case"armed_night":return"hass:bell-sleep";case"disarmed":return"hass:bell-outline";case"triggered":return"hass:bell-ring";default:return"hass:bell"}case"binary_sensor":return e&&"off"===e?"hass:radiobox-blank":"hass:checkbox-marked-circle";case"cover":return"closed"===e?"hass:window-closed":"hass:window-open";case"lock":return e&&"unlocked"===e?"hass:lock-open":"hass:lock";case"media_player":return e&&"off"!==e&&"idle"!==e?"hass:cast-connected":"hass:cast";case"zwave":switch(e){case"dead":return"hass:emoticon-dead";case"sleeping":return"hass:sleep";case"initializing":return"hass:timer-sand";default:return"hass:z-wave"}default:return console.warn("Unable to find icon for domain "+t+" ("+e+")"),Dt}}var Bt=function(t){It(window,"haptic",t)},Wt=function(t,e){return function(t,e,i){void 0===i&&(i=!0);var n,r=Vt(e),s="group"===r?"homeassistant":r;switch(r){case"lock":n=i?"unlock":"lock";break;case"cover":n=i?"open_cover":"close_cover";break;default:n=i?"turn_on":"turn_off"}return t.callService(s,n,{entity_id:e})}(t,e,Lt.includes(t.states[e].state))},Gt=function(t,e,i,n,r){var s;if(r&&i.double_tap_action?s=i.double_tap_action:n&&i.hold_action?s=i.hold_action:!n&&i.tap_action&&(s=i.tap_action),s||(s={action:"more-info"}),!s.confirmation||s.confirmation.exemptions&&s.confirmation.exemptions.some((function(t){return t.user===e.user.id}))||confirm(s.confirmation.text||"Are you sure you want to "+s.action+"?"))switch(s.action){case"more-info":(s.entity||i.entity||i.camera_image)&&(It(t,"hass-more-info",{entityId:s.entity?s.entity:i.entity?i.entity:i.camera_image}),s.haptic&&Bt(s.haptic));break;case"navigate":s.navigation_path&&(function(t,e,i){void 0===i&&(i=!1),i?history.replaceState(null,"",e):history.pushState(null,"",e),It(window,"location-changed",{replace:i})}(0,s.navigation_path),s.haptic&&Bt(s.haptic));break;case"url":s.url_path&&window.open(s.url_path),s.haptic&&Bt(s.haptic);break;case"toggle":i.entity&&(Wt(e,i.entity),s.haptic&&Bt(s.haptic));break;case"call-service":if(!s.service)return;var a=s.service.split(".",2),o=a[0],l=a[1],c=Object.assign({},s.service_data);"entity"===c.entity_id&&(c.entity_id=i.entity),e.callService(o,l,c),s.haptic&&Bt(s.haptic)}},Zt={humidity:"hass:water-percent",illuminance:"hass:brightness-5",temperature:"hass:thermometer",pressure:"hass:gauge",power:"hass:flash",signal_strength:"hass:wifi"},Jt={binary_sensor:function(t){var e=t.state&&"off"===t.state;switch(t.attributes.device_class){case"battery":return e?"hass:battery":"hass:battery-outline";case"cold":return e?"hass:thermometer":"hass:snowflake";case"connectivity":return e?"hass:server-network-off":"hass:server-network";case"door":return e?"hass:door-closed":"hass:door-open";case"garage_door":return e?"hass:garage":"hass:garage-open";case"gas":case"power":case"problem":case"safety":case"smoke":return e?"hass:shield-check":"hass:alert";case"heat":return e?"hass:thermometer":"hass:fire";case"light":return e?"hass:brightness-5":"hass:brightness-7";case"lock":return e?"hass:lock":"hass:lock-open";case"moisture":return e?"hass:water-off":"hass:water";case"motion":return e?"hass:walk":"hass:run";case"occupancy":return e?"hass:home-outline":"hass:home";case"opening":return e?"hass:square":"hass:square-outline";case"plug":return e?"hass:power-plug-off":"hass:power-plug";case"presence":return e?"hass:home-outline":"hass:home";case"sound":return e?"hass:music-note-off":"hass:music-note";case"vibration":return e?"hass:crop-portrait":"hass:vibrate";case"window":return e?"hass:window-closed":"hass:window-open";default:return e?"hass:radiobox-blank":"hass:checkbox-marked-circle"}},cover:function(t){var e="closed"!==t.state;switch(t.attributes.device_class){case"garage":return e?"hass:garage-open":"hass:garage";case"door":return e?"hass:door-open":"hass:door-closed";case"shutter":return e?"hass:window-shutter-open":"hass:window-shutter";case"blind":return e?"hass:blinds-open":"hass:blinds";case"window":return e?"hass:window-open":"hass:window-closed";default:return Yt("cover",t.state)}},sensor:function(t){var e=t.attributes.device_class;if(e&&e in Zt)return Zt[e];if("battery"===e){var i=Number(t.state);if(isNaN(i))return"hass:battery-unknown";var n=10*Math.round(i/10);return n>=100?"hass:battery":n<=0?"hass:battery-alert":"hass:battery-"+n}var r=t.attributes.unit_of_measurement;return"°C"===r||"°F"===r?"hass:thermometer":Yt("sensor")},input_datetime:function(t){return t.attributes.has_date?t.attributes.has_time?Yt("input_datetime"):"hass:calendar":"hass:clock"}};const Xt=(t,e,i,n)=>{n=n||{},i=null==i?{}:i;const r=new Event(e,{bubbles:void 0===n.bubbles||n.bubbles,cancelable:Boolean(n.cancelable),composed:void 0===n.composed||n.composed});return r.detail=i,t.dispatchEvent(r),r},Kt=(t,e)=>{if(t===e)return!0;if(t&&e&&"object"==typeof t&&"object"==typeof e){if(t.constructor!==e.constructor)return!1;let i,n;if(Array.isArray(t)){if(n=t.length,n!==e.length)return!1;for(i=n;0!=i--;)if(!Kt(t[i],e[i]))return!1;return!0}if(t instanceof Map&&e instanceof Map){if(t.size!==e.size)return!1;for(i of t.entries())if(!e.has(i[0]))return!1;for(i of t.entries())if(!Kt(i[1],e.get(i[0])))return!1;return!0}if(t instanceof Set&&e instanceof Set){if(t.size!==e.size)return!1;for(i of t.entries())if(!e.has(i[0]))return!1;return!0}if(ArrayBuffer.isView(t)&&ArrayBuffer.isView(e)){if(n=t.length,n!==e.length)return!1;for(i=n;0!=i--;)if(t[i]!==e[i])return!1;return!0}if(t.constructor===RegExp)return t.source===e.source&&t.flags===e.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===e.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===e.toString();const r=Object.keys(t);if(n=r.length,n!==Object.keys(e).length)return!1;for(i=n;0!=i--;)if(!Object.prototype.hasOwnProperty.call(e,r[i]))return!1;for(i=n;0!=i--;){const n=r[i];if(!Kt(t[n],e[n]))return!1}return!0}return t!=t&&e!=e},Qt="ontouchstart"in window||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0;class te extends HTMLElement{constructor(){super(),this.holdTime=500,this.held=!1,this.cancelled=!1,this.isRepeating=!1,this.ripple=document.createElement("mwc-ripple")}connectedCallback(){Object.assign(this.style,{position:"absolute",width:Qt?"100px":"50px",height:Qt?"100px":"50px",transform:"translate(-50%, -50%)",pointerEvents:"none",zIndex:"999"}),this.appendChild(this.ripple),this.ripple.primary=!0,["touchcancel","mouseout","mouseup","touchmove","mousewheel","wheel","scroll"].forEach((t=>{document.addEventListener(t,(()=>{this.cancelled=!0,this.timer&&(this.stopAnimation(),clearTimeout(this.timer),this.timer=void 0,this.isRepeating&&this.repeatTimeout&&(clearInterval(this.repeatTimeout),this.isRepeating=!1))}),{passive:!0})}))}bind(t,e){t.actionHandler&&Kt(e,t.actionHandler.options)||(t.actionHandler?(t.removeEventListener("touchstart",t.actionHandler.start),t.removeEventListener("touchend",t.actionHandler.end),t.removeEventListener("touchcancel",t.actionHandler.end),t.removeEventListener("mousedown",t.actionHandler.start),t.removeEventListener("click",t.actionHandler.end),t.removeEventListener("keyup",t.actionHandler.handleEnter)):t.addEventListener("contextmenu",(t=>{const e=t||window.event;return e.preventDefault&&e.preventDefault(),e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0,e.returnValue=!1,!1})),t.actionHandler={options:e},e.disabled||(t.actionHandler.start=i=>{let n,r;this.cancelled=!1,i.touches?(n=i.touches[0].pageX,r=i.touches[0].pageY):(n=i.pageX,r=i.pageY),e.hasHold&&(this.held=!1,this.timer=window.setTimeout((()=>{this.startAnimation(n,r),this.held=!0,e.repeat&&!this.isRepeating&&(this.isRepeating=!0,this.repeatTimeout=setInterval((()=>{Xt(t,"action",{action:"hold"})}),e.repeat))}),this.holdTime))},t.actionHandler.end=t=>{if(["touchend","touchcancel"].includes(t.type)&&this.cancelled)return void(this.isRepeating&&this.repeatTimeout&&(clearInterval(this.repeatTimeout),this.isRepeating=!1));const i=t.target;t.cancelable&&t.preventDefault(),e.hasHold&&(clearTimeout(this.timer),this.isRepeating&&this.repeatTimeout&&clearInterval(this.repeatTimeout),this.isRepeating=!1,this.stopAnimation(),this.timer=void 0),e.hasHold&&this.held?e.repeat||Xt(i,"action",{action:"hold"}):e.hasDoubleClick?"click"===t.type&&t.detail<2||!this.dblClickTimeout?this.dblClickTimeout=window.setTimeout((()=>{this.dblClickTimeout=void 0,Xt(i,"action",{action:"tap"})}),250):(clearTimeout(this.dblClickTimeout),this.dblClickTimeout=void 0,Xt(i,"action",{action:"double_tap"})):Xt(i,"action",{action:"tap"})},t.actionHandler.handleEnter=t=>{13===t.keyCode&&t.currentTarget.actionHandler.end(t)},t.addEventListener("touchstart",t.actionHandler.start,{passive:!0}),t.addEventListener("touchend",t.actionHandler.end),t.addEventListener("touchcancel",t.actionHandler.end),t.addEventListener("mousedown",t.actionHandler.start,{passive:!0}),t.addEventListener("click",t.actionHandler.end),t.addEventListener("keyup",t.actionHandler.handleEnter)))}startAnimation(t,e){Object.assign(this.style,{left:t+"px",top:e+"px",display:null}),this.ripple.disabled=!1,this.ripple.startPress(),this.ripple.unbounded=!0}stopAnimation(){this.ripple.endPress(),this.ripple.disabled=!0,this.style.display="none"}}customElements.define("button-card-action-handler",te);const ee=(t,e)=>{const i=(()=>{const t=document.body;if(t.querySelector("button-card-action-handler"))return t.querySelector("button-card-action-handler");const e=document.createElement("button-card-action-handler");return t.appendChild(e),e})();i&&i.bind(t,e)},ie=g(((t={})=>e=>{ee(e.committer.element,t)}));function ne(t,e){(function(t){return"string"==typeof t&&t.includes(".")&&1===parseFloat(t)})(t)&&(t="100%");var i=function(t){return"string"==typeof t&&t.includes("%")}(t);return t=360===e?t:Math.min(e,Math.max(0,parseFloat(t))),i&&(t=parseInt(String(t*e),10)/100),Math.abs(t-e)<1e-6?1:t=360===e?(t<0?t%e+e:t%e)/parseFloat(String(e)):t%e/parseFloat(String(e))}function re(t){return Math.min(1,Math.max(0,t))}function se(t){return t=parseFloat(t),(isNaN(t)||t<0||t>1)&&(t=1),t}function ae(t){return t<=1?100*Number(t)+"%":t}function oe(t){return 1===t.length?"0"+t:String(t)}function le(t,e,i){t=ne(t,255),e=ne(e,255),i=ne(i,255);var n=Math.max(t,e,i),r=Math.min(t,e,i),s=0,a=0,o=(n+r)/2;if(n===r)a=0,s=0;else{var l=n-r;switch(a=o>.5?l/(2-n-r):l/(n+r),n){case t:s=(e-i)/l+(e1&&(i-=1),i<1/6?t+6*i*(e-t):i<.5?e:i<2/3?t+(e-t)*(2/3-i)*6:t}function he(t,e,i){t=ne(t,255),e=ne(e,255),i=ne(i,255);var n=Math.max(t,e,i),r=Math.min(t,e,i),s=0,a=n,o=n-r,l=0===n?0:o/n;if(n===r)s=0;else{switch(n){case t:s=(e-i)/o+(e>16,g:(65280&t)>>8,b:255&t}}(e)),this.originalInput=e;var r=me(e);this.originalInput=e,this.r=r.r,this.g=r.g,this.b=r.b,this.a=r.a,this.roundA=Math.round(100*this.a)/100,this.format=null!==(n=i.format)&&void 0!==n?n:r.format,this.gradientType=i.gradientType,this.r<1&&(this.r=Math.round(this.r)),this.g<1&&(this.g=Math.round(this.g)),this.b<1&&(this.b=Math.round(this.b)),this.isValid=r.ok}return t.prototype.isDark=function(){return this.getBrightness()<128},t.prototype.isLight=function(){return!this.isDark()},t.prototype.getBrightness=function(){var t=this.toRgb();return(299*t.r+587*t.g+114*t.b)/1e3},t.prototype.getLuminance=function(){var t=this.toRgb(),e=t.r/255,i=t.g/255,n=t.b/255;return.2126*(e<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4))+.7152*(i<=.03928?i/12.92:Math.pow((i+.055)/1.055,2.4))+.0722*(n<=.03928?n/12.92:Math.pow((n+.055)/1.055,2.4))},t.prototype.getAlpha=function(){return this.a},t.prototype.setAlpha=function(t){return this.a=se(t),this.roundA=Math.round(100*this.a)/100,this},t.prototype.toHsv=function(){var t=he(this.r,this.g,this.b);return{h:360*t.h,s:t.s,v:t.v,a:this.a}},t.prototype.toHsvString=function(){var t=he(this.r,this.g,this.b),e=Math.round(360*t.h),i=Math.round(100*t.s),n=Math.round(100*t.v);return 1===this.a?"hsv("+e+", "+i+"%, "+n+"%)":"hsva("+e+", "+i+"%, "+n+"%, "+this.roundA+")"},t.prototype.toHsl=function(){var t=le(this.r,this.g,this.b);return{h:360*t.h,s:t.s,l:t.l,a:this.a}},t.prototype.toHslString=function(){var t=le(this.r,this.g,this.b),e=Math.round(360*t.h),i=Math.round(100*t.s),n=Math.round(100*t.l);return 1===this.a?"hsl("+e+", "+i+"%, "+n+"%)":"hsla("+e+", "+i+"%, "+n+"%, "+this.roundA+")"},t.prototype.toHex=function(t){return void 0===t&&(t=!1),ue(this.r,this.g,this.b,t)},t.prototype.toHexString=function(t){return void 0===t&&(t=!1),"#"+this.toHex(t)},t.prototype.toHex8=function(t){return void 0===t&&(t=!1),function(t,e,i,n,r){var s=[oe(Math.round(t).toString(16)),oe(Math.round(e).toString(16)),oe(Math.round(i).toString(16)),oe(de(n))];return r&&s[0].startsWith(s[0].charAt(1))&&s[1].startsWith(s[1].charAt(1))&&s[2].startsWith(s[2].charAt(1))&&s[3].startsWith(s[3].charAt(1))?s[0].charAt(0)+s[1].charAt(0)+s[2].charAt(0)+s[3].charAt(0):s.join("")}(this.r,this.g,this.b,this.a,t)},t.prototype.toHex8String=function(t){return void 0===t&&(t=!1),"#"+this.toHex8(t)},t.prototype.toRgb=function(){return{r:Math.round(this.r),g:Math.round(this.g),b:Math.round(this.b),a:this.a}},t.prototype.toRgbString=function(){var t=Math.round(this.r),e=Math.round(this.g),i=Math.round(this.b);return 1===this.a?"rgb("+t+", "+e+", "+i+")":"rgba("+t+", "+e+", "+i+", "+this.roundA+")"},t.prototype.toPercentageRgb=function(){var t=function(t){return Math.round(100*ne(t,255))+"%"};return{r:t(this.r),g:t(this.g),b:t(this.b),a:this.a}},t.prototype.toPercentageRgbString=function(){var t=function(t){return Math.round(100*ne(t,255))};return 1===this.a?"rgb("+t(this.r)+"%, "+t(this.g)+"%, "+t(this.b)+"%)":"rgba("+t(this.r)+"%, "+t(this.g)+"%, "+t(this.b)+"%, "+this.roundA+")"},t.prototype.toName=function(){if(0===this.a)return"transparent";if(this.a<1)return!1;for(var t="#"+ue(this.r,this.g,this.b,!1),e=0,i=Object.entries(ge);e=0;return e||!n||!t.startsWith("hex")&&"name"!==t?("rgb"===t&&(i=this.toRgbString()),"prgb"===t&&(i=this.toPercentageRgbString()),"hex"!==t&&"hex6"!==t||(i=this.toHexString()),"hex3"===t&&(i=this.toHexString(!0)),"hex4"===t&&(i=this.toHex8String(!0)),"hex8"===t&&(i=this.toHex8String()),"name"===t&&(i=this.toName()),"hsl"===t&&(i=this.toHslString()),"hsv"===t&&(i=this.toHsvString()),i||this.toHexString()):"name"===t&&0===this.a?this.toName():this.toRgbString()},t.prototype.toNumber=function(){return(Math.round(this.r)<<16)+(Math.round(this.g)<<8)+Math.round(this.b)},t.prototype.clone=function(){return new t(this.toString())},t.prototype.lighten=function(e){void 0===e&&(e=10);var i=this.toHsl();return i.l+=e/100,i.l=re(i.l),new t(i)},t.prototype.brighten=function(e){void 0===e&&(e=10);var i=this.toRgb();return i.r=Math.max(0,Math.min(255,i.r-Math.round(-e/100*255))),i.g=Math.max(0,Math.min(255,i.g-Math.round(-e/100*255))),i.b=Math.max(0,Math.min(255,i.b-Math.round(-e/100*255))),new t(i)},t.prototype.darken=function(e){void 0===e&&(e=10);var i=this.toHsl();return i.l-=e/100,i.l=re(i.l),new t(i)},t.prototype.tint=function(t){return void 0===t&&(t=10),this.mix("white",t)},t.prototype.shade=function(t){return void 0===t&&(t=10),this.mix("black",t)},t.prototype.desaturate=function(e){void 0===e&&(e=10);var i=this.toHsl();return i.s-=e/100,i.s=re(i.s),new t(i)},t.prototype.saturate=function(e){void 0===e&&(e=10);var i=this.toHsl();return i.s+=e/100,i.s=re(i.s),new t(i)},t.prototype.greyscale=function(){return this.desaturate(100)},t.prototype.spin=function(e){var i=this.toHsl(),n=(i.h+e)%360;return i.h=n<0?360+n:n,new t(i)},t.prototype.mix=function(e,i){void 0===i&&(i=50);var n=this.toRgb(),r=new t(e).toRgb(),s=i/100;return new t({r:(r.r-n.r)*s+n.r,g:(r.g-n.g)*s+n.g,b:(r.b-n.b)*s+n.b,a:(r.a-n.a)*s+n.a})},t.prototype.analogous=function(e,i){void 0===e&&(e=6),void 0===i&&(i=30);var n=this.toHsl(),r=360/i,s=[this];for(n.h=(n.h-(r*e>>1)+720)%360;--e;)n.h=(n.h+r)%360,s.push(new t(n));return s},t.prototype.complement=function(){var e=this.toHsl();return e.h=(e.h+180)%360,new t(e)},t.prototype.monochromatic=function(e){void 0===e&&(e=6);for(var i=this.toHsv(),n=i.h,r=i.s,s=i.v,a=[],o=1/e;e--;)a.push(new t({h:n,s:r,v:s})),s=(s+o)%1;return a},t.prototype.splitcomplement=function(){var e=this.toHsl(),i=e.h;return[this,new t({h:(i+72)%360,s:e.s,l:e.l}),new t({h:(i+216)%360,s:e.s,l:e.l})]},t.prototype.triad=function(){return this.polyad(3)},t.prototype.tetrad=function(){return this.polyad(4)},t.prototype.polyad=function(e){for(var i=this.toHsl(),n=i.h,r=[this],s=360/e,a=1;at&&"object"==typeof t;return t.reduce(((t,i)=>(Object.keys(i).forEach((n=>{const r=t[n],s=i[n];Array.isArray(r)&&Array.isArray(s)?t[n]=r.concat(...s):e(r)&&e(s)?t[n]=Me(r,s):t[n]=s})),t)),{})}function Ce(t,e){let i=[];return t&&t.forEach((t=>{let n=t;e&&e.forEach((e=>{e.id&&t.id&&e.id==t.id&&(n=Me(n,e))})),i.push(n)})),e&&(i=i.concat(e.filter((e=>!t||!t.find((t=>!(!t.id||!e.id)&&t.id==e.id)))))),i}const Ee=((t,...e)=>{const i=e.reduce(((e,i,n)=>e+(t=>{if(t instanceof et)return t.cssText;if("number"==typeof t)return t;throw new Error(`Value passed to 'css' function must be a 'css' function result: ${t}. Use 'unsafeCSS' to pass non-literal values, but\n take care to ensure page security.`)})(i)+t[n+1]),t[0]);return new et(i,tt)})` +function t(t,e,i,n){var r,s=arguments.length,a=s<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(t,e,i,n);else for(var o=t.length-1;o>=0;o--)(r=t[o])&&(a=(s<3?r(a):s>3?r(e,i,a):r(e,i))||a);return s>3&&a&&Object.defineProperty(e,i,a),a}const e="undefined"!=typeof window&&null!=window.customElements&&void 0!==window.customElements.polyfillWrapFlushCallback,i=(t,e,i=null)=>{for(;e!==i;){const i=e.nextSibling;t.removeChild(e),e=i}},n=`{{lit-${String(Math.random()).slice(2)}}}`,r=`\x3c!--${n}--\x3e`,s=new RegExp(`${n}|${r}`);class a{constructor(t,e){this.parts=[],this.element=e;const i=[],r=[],a=document.createTreeWalker(e.content,133,null,!1);let l=0,u=-1,d=0;const{strings:p,values:{length:f}}=t;for(;d0;){const e=p[d],i=h.exec(e)[2],n=i.toLowerCase()+"$lit$",r=t.getAttribute(n);t.removeAttribute(n);const a=r.split(s);this.parts.push({type:"attribute",index:u,name:i,strings:a}),d+=a.length-1}}"TEMPLATE"===t.tagName&&(r.push(t),a.currentNode=t.content)}else if(3===t.nodeType){const e=t.data;if(e.indexOf(n)>=0){const n=t.parentNode,r=e.split(s),a=r.length-1;for(let e=0;e{const i=t.length-e.length;return i>=0&&t.slice(i)===e},l=t=>-1!==t.index,c=()=>document.createComment(""),h=/([ \x09\x0a\x0c\x0d])([^\0-\x1F\x7F-\x9F "'>=/]+)([ \x09\x0a\x0c\x0d]*=[ \x09\x0a\x0c\x0d]*(?:[^ \x09\x0a\x0c\x0d"'`<>=]*|"[^"]*|'[^']*))$/;function u(t,e){const{element:{content:i},parts:n}=t,r=document.createTreeWalker(i,133,null,!1);let s=p(n),a=n[s],o=-1,l=0;const c=[];let h=null;for(;r.nextNode();){o++;const t=r.currentNode;for(t.previousSibling===h&&(h=null),e.has(t)&&(c.push(t),null===h&&(h=t)),null!==h&&l++;void 0!==a&&a.index===o;)a.index=null!==h?-1:a.index-l,s=p(n,s),a=n[s]}c.forEach((t=>t.parentNode.removeChild(t)))}const d=t=>{let e=11===t.nodeType?0:1;const i=document.createTreeWalker(t,133,null,!1);for(;i.nextNode();)e++;return e},p=(t,e=-1)=>{for(let i=e+1;i(...e)=>{const i=t(...e);return f.set(i,!0),i},m=t=>"function"==typeof t&&f.has(t),_={},b={};class y{constructor(t,e,i){this.__parts=[],this.template=t,this.processor=e,this.options=i}update(t){let e=0;for(const i of this.__parts)void 0!==i&&i.setValue(t[e]),e++;for(const i of this.__parts)void 0!==i&&i.commit()}_clone(){const t=e?this.template.element.content.cloneNode(!0):document.importNode(this.template.element.content,!0),i=[],n=this.template.parts,r=document.createTreeWalker(t,133,null,!1);let s,a=0,o=0,c=r.nextNode();for(;at}),w=` ${n} `;class S{constructor(t,e,i,n){this.strings=t,this.values=e,this.type=i,this.processor=n}getHTML(){const t=this.strings.length-1;let e="",i=!1;for(let s=0;s-1||i)&&-1===t.indexOf("--\x3e",a+1);const o=h.exec(t);e+=null===o?t+(i?w:r):t.substr(0,o.index)+o[1]+o[2]+"$lit$"+o[3]+n}return e+=this.strings[t],e}getTemplateElement(){const t=document.createElement("template");let e=this.getHTML();return void 0!==v&&(e=v.createHTML(e)),t.innerHTML=e,t}}const x=t=>null===t||!("object"==typeof t||"function"==typeof t),k=t=>Array.isArray(t)||!(!t||!t[Symbol.iterator]);class O{constructor(t,e,i){this.dirty=!0,this.element=t,this.name=e,this.strings=i,this.parts=[];for(let n=0;n{try{const t={get capture(){return A=!0,!1}};window.addEventListener("test",t,t),window.removeEventListener("test",t,t)}catch(t){}})();class N{constructor(t,e,i){this.value=void 0,this.__pendingValue=void 0,this.element=t,this.eventName=e,this.eventContext=i,this.__boundHandleEvent=t=>this.handleEvent(t)}setValue(t){this.__pendingValue=t}commit(){for(;m(this.__pendingValue);){const t=this.__pendingValue;this.__pendingValue=_,t(this)}if(this.__pendingValue===_)return;const t=this.__pendingValue,e=this.value,i=null==t||null!=e&&(t.capture!==e.capture||t.once!==e.once||t.passive!==e.passive),n=null!=t&&(null==e||i);i&&this.element.removeEventListener(this.eventName,this.__boundHandleEvent,this.__options),n&&(this.__options=j(t),this.element.addEventListener(this.eventName,this.__boundHandleEvent,this.__options)),this.value=t,this.__pendingValue=_}handleEvent(t){"function"==typeof this.value?this.value.call(this.eventContext||this.element,t):this.value.handleEvent(t)}}const j=t=>t&&(A?{capture:t.capture,passive:t.passive,once:t.once}:t.capture);function $(t){let e=H.get(t.type);void 0===e&&(e={stringsArray:new WeakMap,keyString:new Map},H.set(t.type,e));let i=e.stringsArray.get(t.strings);if(void 0!==i)return i;const r=t.strings.join(n);return i=e.keyString.get(r),void 0===i&&(i=new a(t,t.getTemplateElement()),e.keyString.set(r,i)),e.stringsArray.set(t.strings,i),i}const H=new Map,R=new WeakMap;const V=new class{handleAttributeExpressions(t,e,i,n){const r=e[0];if("."===r){return new E(t,e.slice(1),i).parts}if("@"===r)return[new N(t,e.slice(1),n.eventContext)];if("?"===r)return[new C(t,e.slice(1),i)];return new O(t,e,i).parts}handleTextExpression(t){return new M(t)}};"undefined"!=typeof window&&(window.litHtmlVersions||(window.litHtmlVersions=[])).push("1.3.0");const D=(t,...e)=>new S(t,e,"html",V),L=(t,e)=>`${t}--${e}`;let F=!0;void 0===window.ShadyCSS?F=!1:void 0===window.ShadyCSS.prepareTemplateDom&&(console.warn("Incompatible ShadyCSS version detected. Please update to at least @webcomponents/webcomponentsjs@2.0.2 and @webcomponents/shadycss@1.3.1."),F=!1);const I=t=>e=>{const i=L(e.type,t);let r=H.get(i);void 0===r&&(r={stringsArray:new WeakMap,keyString:new Map},H.set(i,r));let s=r.stringsArray.get(e.strings);if(void 0!==s)return s;const o=e.strings.join(n);if(s=r.keyString.get(o),void 0===s){const i=e.getTemplateElement();F&&window.ShadyCSS.prepareTemplateDom(i,t),s=new a(e,i),r.keyString.set(o,s)}return r.stringsArray.set(e.strings,s),s},z=["html","svg"],U=new Set,q=(t,e,i)=>{U.add(t);const n=i?i.element:document.createElement("template"),r=e.querySelectorAll("style"),{length:s}=r;if(0===s)return void window.ShadyCSS.prepareTemplateStyles(n,t);const a=document.createElement("style");for(let c=0;c{z.forEach((e=>{const i=H.get(L(e,t));void 0!==i&&i.keyString.forEach((t=>{const{element:{content:e}}=t,i=new Set;Array.from(e.querySelectorAll("style")).forEach((t=>{i.add(t)})),u(t,i)}))}))})(t);const o=n.content;i?function(t,e,i=null){const{element:{content:n},parts:r}=t;if(null==i)return void n.appendChild(e);const s=document.createTreeWalker(n,133,null,!1);let a=p(r),o=0,l=-1;for(;s.nextNode();)for(l++,s.currentNode===i&&(o=d(e),i.parentNode.insertBefore(e,i));-1!==a&&r[a].index===l;){if(o>0){for(;-1!==a;)r[a].index+=o,a=p(r,a);return}a=p(r,a)}}(i,a,o.firstChild):o.insertBefore(a,o.firstChild),window.ShadyCSS.prepareTemplateStyles(n,t);const l=o.querySelector("style");if(window.ShadyCSS.nativeShadow&&null!==l)e.insertBefore(l.cloneNode(!0),e.firstChild);else if(i){o.insertBefore(a,o.firstChild);const t=new Set;t.add(a),u(i,t)}};window.JSCompiler_renameProperty=(t,e)=>t;const Y={toAttribute(t,e){switch(e){case Boolean:return t?"":null;case Object:case Array:return null==t?t:JSON.stringify(t)}return t},fromAttribute(t,e){switch(e){case Boolean:return null!==t;case Number:return null===t?null:Number(t);case Object:case Array:return JSON.parse(t)}return t}},B=(t,e)=>e!==t&&(e==e||t==t),W={attribute:!0,type:String,converter:Y,reflect:!1,hasChanged:B};class G extends HTMLElement{constructor(){super(),this.initialize()}static get observedAttributes(){this.finalize();const t=[];return this._classProperties.forEach(((e,i)=>{const n=this._attributeNameForProperty(i,e);void 0!==n&&(this._attributeToPropertyMap.set(n,i),t.push(n))})),t}static _ensureClassProperties(){if(!this.hasOwnProperty(JSCompiler_renameProperty("_classProperties",this))){this._classProperties=new Map;const t=Object.getPrototypeOf(this)._classProperties;void 0!==t&&t.forEach(((t,e)=>this._classProperties.set(e,t)))}}static createProperty(t,e=W){if(this._ensureClassProperties(),this._classProperties.set(t,e),e.noAccessor||this.prototype.hasOwnProperty(t))return;const i="symbol"==typeof t?Symbol():"__"+t,n=this.getPropertyDescriptor(t,i,e);void 0!==n&&Object.defineProperty(this.prototype,t,n)}static getPropertyDescriptor(t,e,i){return{get(){return this[e]},set(n){const r=this[t];this[e]=n,this.requestUpdateInternal(t,r,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this._classProperties&&this._classProperties.get(t)||W}static finalize(){const t=Object.getPrototypeOf(this);if(t.hasOwnProperty("finalized")||t.finalize(),this.finalized=!0,this._ensureClassProperties(),this._attributeToPropertyMap=new Map,this.hasOwnProperty(JSCompiler_renameProperty("properties",this))){const t=this.properties,e=[...Object.getOwnPropertyNames(t),..."function"==typeof Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(t):[]];for(const i of e)this.createProperty(i,t[i])}}static _attributeNameForProperty(t,e){const i=e.attribute;return!1===i?void 0:"string"==typeof i?i:"string"==typeof t?t.toLowerCase():void 0}static _valueHasChanged(t,e,i=B){return i(t,e)}static _propertyValueFromAttribute(t,e){const i=e.type,n=e.converter||Y,r="function"==typeof n?n:n.fromAttribute;return r?r(t,i):t}static _propertyValueToAttribute(t,e){if(void 0===e.reflect)return;const i=e.type,n=e.converter;return(n&&n.toAttribute||Y.toAttribute)(t,i)}initialize(){this._updateState=0,this._updatePromise=new Promise((t=>this._enableUpdatingResolver=t)),this._changedProperties=new Map,this._saveInstanceProperties(),this.requestUpdateInternal()}_saveInstanceProperties(){this.constructor._classProperties.forEach(((t,e)=>{if(this.hasOwnProperty(e)){const t=this[e];delete this[e],this._instanceProperties||(this._instanceProperties=new Map),this._instanceProperties.set(e,t)}}))}_applyInstanceProperties(){this._instanceProperties.forEach(((t,e)=>this[e]=t)),this._instanceProperties=void 0}connectedCallback(){this.enableUpdating()}enableUpdating(){void 0!==this._enableUpdatingResolver&&(this._enableUpdatingResolver(),this._enableUpdatingResolver=void 0)}disconnectedCallback(){}attributeChangedCallback(t,e,i){e!==i&&this._attributeToProperty(t,i)}_propertyToAttribute(t,e,i=W){const n=this.constructor,r=n._attributeNameForProperty(t,i);if(void 0!==r){const t=n._propertyValueToAttribute(e,i);if(void 0===t)return;this._updateState=8|this._updateState,null==t?this.removeAttribute(r):this.setAttribute(r,t),this._updateState=-9&this._updateState}}_attributeToProperty(t,e){if(8&this._updateState)return;const i=this.constructor,n=i._attributeToPropertyMap.get(t);if(void 0!==n){const t=i.getPropertyOptions(n);this._updateState=16|this._updateState,this[n]=i._propertyValueFromAttribute(e,t),this._updateState=-17&this._updateState}}requestUpdateInternal(t,e,i){let n=!0;if(void 0!==t){const r=this.constructor;i=i||r.getPropertyOptions(t),r._valueHasChanged(this[t],e,i.hasChanged)?(this._changedProperties.has(t)||this._changedProperties.set(t,e),!0!==i.reflect||16&this._updateState||(void 0===this._reflectingProperties&&(this._reflectingProperties=new Map),this._reflectingProperties.set(t,i))):n=!1}!this._hasRequestedUpdate&&n&&(this._updatePromise=this._enqueueUpdate())}requestUpdate(t,e){return this.requestUpdateInternal(t,e),this.updateComplete}async _enqueueUpdate(){this._updateState=4|this._updateState;try{await this._updatePromise}catch(e){}const t=this.performUpdate();return null!=t&&await t,!this._hasRequestedUpdate}get _hasRequestedUpdate(){return 4&this._updateState}get hasUpdated(){return 1&this._updateState}performUpdate(){if(!this._hasRequestedUpdate)return;this._instanceProperties&&this._applyInstanceProperties();let t=!1;const e=this._changedProperties;try{t=this.shouldUpdate(e),t?this.update(e):this._markUpdated()}catch(i){throw t=!1,this._markUpdated(),i}t&&(1&this._updateState||(this._updateState=1|this._updateState,this.firstUpdated(e)),this.updated(e))}_markUpdated(){this._changedProperties=new Map,this._updateState=-5&this._updateState}get updateComplete(){return this._getUpdateComplete()}_getUpdateComplete(){return this._updatePromise}shouldUpdate(t){return!0}update(t){void 0!==this._reflectingProperties&&this._reflectingProperties.size>0&&(this._reflectingProperties.forEach(((t,e)=>this._propertyToAttribute(e,this[e],t))),this._reflectingProperties=void 0),this._markUpdated()}updated(t){}firstUpdated(t){}}G.finalized=!0;const Z=(t,e)=>"method"===e.kind&&e.descriptor&&!("value"in e.descriptor)?Object.assign(Object.assign({},e),{finisher(i){i.createProperty(e.key,t)}}):{kind:"field",key:Symbol(),placement:"own",descriptor:{},initializer(){"function"==typeof e.initializer&&(this[e.key]=e.initializer.call(this))},finisher(i){i.createProperty(e.key,t)}};function J(t){return(e,i)=>void 0!==i?((t,e,i)=>{e.constructor.createProperty(i,t)})(t,e,i):Z(t,e)}const X=(t,e,i)=>{Object.defineProperty(e,i,t)},K=(t,e)=>({kind:"method",placement:"prototype",key:e.key,descriptor:t});const Q=window.ShadowRoot&&(void 0===window.ShadyCSS||window.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,tt=Symbol();class et{constructor(t,e){if(e!==tt)throw new Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t}get styleSheet(){return void 0===this._styleSheet&&(Q?(this._styleSheet=new CSSStyleSheet,this._styleSheet.replaceSync(this.cssText)):this._styleSheet=null),this._styleSheet}toString(){return this.cssText}}(window.litElementVersions||(window.litElementVersions=[])).push("2.4.0");const it={};class nt extends G{static getStyles(){return this.styles}static _getUniqueStyles(){if(this.hasOwnProperty(JSCompiler_renameProperty("_styles",this)))return;const t=this.getStyles();if(Array.isArray(t)){const e=(t,i)=>t.reduceRight(((t,i)=>Array.isArray(i)?e(i,t):(t.add(i),t)),i),i=e(t,new Set),n=[];i.forEach((t=>n.unshift(t))),this._styles=n}else this._styles=void 0===t?[]:[t];this._styles=this._styles.map((t=>{if(t instanceof CSSStyleSheet&&!Q){const e=Array.prototype.slice.call(t.cssRules).reduce(((t,e)=>t+e.cssText),"");return new et(String(e),tt)}return t}))}initialize(){super.initialize(),this.constructor._getUniqueStyles(),this.renderRoot=this.createRenderRoot(),window.ShadowRoot&&this.renderRoot instanceof window.ShadowRoot&&this.adoptStyles()}createRenderRoot(){return this.attachShadow({mode:"open"})}adoptStyles(){const t=this.constructor._styles;0!==t.length&&(void 0===window.ShadyCSS||window.ShadyCSS.nativeShadow?Q?this.renderRoot.adoptedStyleSheets=t.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet)):this._needsShimAdoptedStyleSheets=!0:window.ShadyCSS.ScopingShim.prepareAdoptedCssText(t.map((t=>t.cssText)),this.localName))}connectedCallback(){super.connectedCallback(),this.hasUpdated&&void 0!==window.ShadyCSS&&window.ShadyCSS.styleElement(this)}update(t){const e=this.render();super.update(t),e!==it&&this.constructor.render(e,this.renderRoot,{scopeName:this.localName,eventContext:this}),this._needsShimAdoptedStyleSheets&&(this._needsShimAdoptedStyleSheets=!1,this.constructor._styles.forEach((t=>{const e=document.createElement("style");e.textContent=t.cssText,this.renderRoot.appendChild(e)})))}render(){return it}}nt.finalized=!0,nt.render=(t,e,n)=>{if(!n||"object"!=typeof n||!n.scopeName)throw new Error("The `scopeName` option is required.");const r=n.scopeName,s=R.has(e),a=F&&11===e.nodeType&&!!e.host,o=a&&!U.has(r),l=o?document.createDocumentFragment():e;if(((t,e,n)=>{let r=R.get(e);void 0===r&&(i(e,e.firstChild),R.set(e,r=new M(Object.assign({templateFactory:$},n))),r.appendInto(e)),r.setValue(t),r.commit()})(t,l,Object.assign({templateFactory:I(r)},n)),o){const t=R.get(l);R.delete(l);const n=t.value instanceof y?t.value.template:void 0;q(r,l,n),i(e,e.firstChild),e.appendChild(l),R.set(e,t)}!s&&a&&window.ShadyCSS.styleElement(e.host)};class rt{constructor(t){this.startPress=e=>{t().then((t=>{t&&t.startPress(e)}))},this.endPress=()=>{t().then((t=>{t&&t.endPress()}))},this.startFocus=()=>{t().then((t=>{t&&t.startFocus()}))},this.endFocus=()=>{t().then((t=>{t&&t.endFocus()}))},this.startHover=()=>{t().then((t=>{t&&t.startHover()}))},this.endHover=()=>{t().then((t=>{t&&t.endHover()}))}}}const st=new WeakMap,at=g((t=>e=>{if(!(e instanceof T)||e instanceof P||"style"!==e.committer.name||e.committer.parts.length>1)throw new Error("The `styleMap` directive must be used in the style attribute and must be the only part in the attribute.");const{committer:i}=e,{style:n}=i.element;let r=st.get(e);void 0===r&&(n.cssText=i.strings.join(" "),st.set(e,r=new Set)),r.forEach((e=>{e in t||(r.delete(e),-1===e.indexOf("-")?n[e]=null:n.removeProperty(e))}));for(const s in t)r.add(s),-1===s.indexOf("-")?n[s]=t[s]:n.setProperty(s,t[s])})),ot=new WeakMap,lt=g((t=>e=>{if(!(e instanceof M))throw new Error("unsafeHTML can only be used in text bindings");const i=ot.get(e);if(void 0!==i&&x(t)&&t===i.value&&e.value===i.fragment)return;const n=document.createElement("template");n.innerHTML=t;const r=document.importNode(n.content,!0);e.setValue(r),ot.set(e,{value:t,fragment:r})}));class ct{constructor(t){this.classes=new Set,this.changed=!1,this.element=t;const e=(t.getAttribute("class")||"").split(/\s+/);for(const i of e)this.classes.add(i)}add(t){this.classes.add(t),this.changed=!0}remove(t){this.classes.delete(t),this.changed=!0}commit(){if(this.changed){let t="";this.classes.forEach((e=>t+=e+" ")),this.element.setAttribute("class",t)}}}const ht=new WeakMap,ut=g((t=>e=>{if(!(e instanceof T)||e instanceof P||"class"!==e.committer.name||e.committer.parts.length>1)throw new Error("The `classMap` directive must be used in the `class` attribute and must be the only part in the attribute.");const{committer:i}=e,{element:n}=i;let r=ht.get(e);void 0===r&&(n.setAttribute("class",i.strings.join(" ")),ht.set(e,r=new Set));const s=n.classList||new ct(n);r.forEach((e=>{e in t||(s.remove(e),r.delete(e))}));for(const a in t){const e=t[a];e!=r.has(a)&&(e?(s.add(a),r.add(a)):(s.remove(a),r.delete(a)))}"function"==typeof s.commit&&s.commit()}));var dt=/d{1,4}|M{1,4}|YY(?:YY)?|S{1,3}|Do|ZZ|Z|([HhMsDm])\1?|[aA]|"[^"]*"|'[^']*'/g,pt="[^\\s]+",ft=/\[([^]*?)\]/gm;function gt(t,e){for(var i=[],n=0,r=t.length;n-1?n:null}};function _t(t){for(var e=[],i=1;i3?0:(t-t%10!=10?1:0)*t%10]}},St=_t({},wt),xt=function(t,e){for(void 0===e&&(e=2),t=String(t);t.length0?"-":"+")+xt(100*Math.floor(Math.abs(e)/60)+Math.abs(e)%60,4)},Z:function(t){var e=t.getTimezoneOffset();return(e>0?"-":"+")+xt(Math.floor(Math.abs(e)/60),2)+":"+xt(Math.abs(e)%60,2)}},Ot=function(t){return+t-1},Tt=[null,"[1-9]\\d?"],Mt=[null,pt],Ct=["isPm",pt,function(t,e){var i=t.toLowerCase();return i===e.amPm[0]?0:i===e.amPm[1]?1:null}],Et=["timezoneOffset","[^\\s]*?[\\+\\-]\\d\\d:?\\d\\d|[^\\s]*?Z?",function(t){var e=(t+"").match(/([+-]|\d\d)/gi);if(e){var i=60*+e[1]+parseInt(e[2],10);return"+"===e[0]?i:-i}return 0}],Pt=(mt("monthNamesShort"),mt("monthNames"),{default:"ddd MMM DD YYYY HH:mm:ss",shortDate:"M/D/YY",mediumDate:"MMM D, YYYY",longDate:"MMMM D, YYYY",fullDate:"dddd, MMMM D, YYYY",isoDate:"YYYY-MM-DD",isoDateTime:"YYYY-MM-DDTHH:mm:ssZ",shortTime:"HH:mm",mediumTime:"HH:mm:ss",longTime:"HH:mm:ss.SSS"});var At=function(t,e,i){if(void 0===e&&(e=Pt.default),void 0===i&&(i={}),"number"==typeof t&&(t=new Date(t)),"[object Date]"!==Object.prototype.toString.call(t)||isNaN(t.getTime()))throw new Error("Invalid Date pass to format");var n=[];e=(e=Pt[e]||e).replace(ft,(function(t,e){return n.push(e),"@@@"}));var r=_t(_t({},St),i);return(e=e.replace(dt,(function(e){return kt[e](t,r)}))).replace(/@@@/g,(function(){return n.shift()}))};function Nt(t){var e=t.split(":").map(Number);return 3600*e[0]+60*e[1]+e[2]}var jt=function(){try{(new Date).toLocaleDateString("i")}catch(t){return"RangeError"===t.name}return!1}()?function(t,e){return t.toLocaleDateString(e,{year:"numeric",month:"long",day:"numeric"})}:function(t){return At(t,"mediumDate")},$t=function(){try{(new Date).toLocaleString("i")}catch(t){return"RangeError"===t.name}return!1}()?function(t,e){return t.toLocaleString(e,{year:"numeric",month:"long",day:"numeric",hour:"numeric",minute:"2-digit"})}:function(t){return At(t,"haDateTime")},Ht=function(){try{(new Date).toLocaleTimeString("i")}catch(t){return"RangeError"===t.name}return!1}()?function(t,e){return t.toLocaleTimeString(e,{hour:"numeric",minute:"2-digit"})}:function(t){return At(t,"shortTime")},Rt=function(t){return t<10?"0"+t:t};function Vt(t){return t.substr(0,t.indexOf("."))}var Dt="hass:bookmark",Lt=["closed","locked","off"],Ft=new Set(["fan","input_boolean","light","switch","group","automation"]),It=function(t,e,i,n){n=n||{},i=null==i?{}:i;var r=new Event(e,{bubbles:void 0===n.bubbles||n.bubbles,cancelable:Boolean(n.cancelable),composed:void 0===n.composed||n.composed});return r.detail=i,t.dispatchEvent(r),r},zt=new Set(["call-service","divider","section","weblink","cast","select"]),Ut={alert:"toggle",automation:"toggle",climate:"climate",cover:"cover",fan:"toggle",group:"group",input_boolean:"toggle",input_number:"input-number",input_select:"input-select",input_text:"input-text",light:"toggle",lock:"lock",media_player:"media-player",remote:"toggle",scene:"scene",script:"script",sensor:"sensor",timer:"timer",switch:"toggle",vacuum:"toggle",water_heater:"climate",input_datetime:"input-datetime"},qt={alert:"hass:alert",automation:"hass:playlist-play",calendar:"hass:calendar",camera:"hass:video",climate:"hass:thermostat",configurator:"hass:settings",conversation:"hass:text-to-speech",device_tracker:"hass:account",fan:"hass:fan",group:"hass:google-circles-communities",history_graph:"hass:chart-line",homeassistant:"hass:home-assistant",homekit:"hass:home-automation",image_processing:"hass:image-filter-frames",input_boolean:"hass:drawing",input_datetime:"hass:calendar-clock",input_number:"hass:ray-vertex",input_select:"hass:format-list-bulleted",input_text:"hass:textbox",light:"hass:lightbulb",mailbox:"hass:mailbox",notify:"hass:comment-alert",person:"hass:account",plant:"hass:flower",proximity:"hass:apple-safari",remote:"hass:remote",scene:"hass:google-pages",script:"hass:file-document",sensor:"hass:eye",simple_alarm:"hass:bell",sun:"hass:white-balance-sunny",switch:"hass:flash",timer:"hass:timer",updater:"hass:cloud-upload",vacuum:"hass:robot-vacuum",water_heater:"hass:thermometer",weblink:"hass:open-in-new"};function Yt(t,e){if(t in qt)return qt[t];switch(t){case"alarm_control_panel":switch(e){case"armed_home":return"hass:bell-plus";case"armed_night":return"hass:bell-sleep";case"disarmed":return"hass:bell-outline";case"triggered":return"hass:bell-ring";default:return"hass:bell"}case"binary_sensor":return e&&"off"===e?"hass:radiobox-blank":"hass:checkbox-marked-circle";case"cover":return"closed"===e?"hass:window-closed":"hass:window-open";case"lock":return e&&"unlocked"===e?"hass:lock-open":"hass:lock";case"media_player":return e&&"off"!==e&&"idle"!==e?"hass:cast-connected":"hass:cast";case"zwave":switch(e){case"dead":return"hass:emoticon-dead";case"sleeping":return"hass:sleep";case"initializing":return"hass:timer-sand";default:return"hass:z-wave"}default:return console.warn("Unable to find icon for domain "+t+" ("+e+")"),Dt}}var Bt=function(t){It(window,"haptic",t)},Wt=function(t,e){return function(t,e,i){void 0===i&&(i=!0);var n,r=Vt(e),s="group"===r?"homeassistant":r;switch(r){case"lock":n=i?"unlock":"lock";break;case"cover":n=i?"open_cover":"close_cover";break;default:n=i?"turn_on":"turn_off"}return t.callService(s,n,{entity_id:e})}(t,e,Lt.includes(t.states[e].state))},Gt=function(t,e,i,n,r){var s;if(r&&i.double_tap_action?s=i.double_tap_action:n&&i.hold_action?s=i.hold_action:!n&&i.tap_action&&(s=i.tap_action),s||(s={action:"more-info"}),!s.confirmation||s.confirmation.exemptions&&s.confirmation.exemptions.some((function(t){return t.user===e.user.id}))||confirm(s.confirmation.text||"Are you sure you want to "+s.action+"?"))switch(s.action){case"more-info":(s.entity||i.entity||i.camera_image)&&(It(t,"hass-more-info",{entityId:s.entity?s.entity:i.entity?i.entity:i.camera_image}),s.haptic&&Bt(s.haptic));break;case"navigate":s.navigation_path&&(function(t,e,i){void 0===i&&(i=!1),i?history.replaceState(null,"",e):history.pushState(null,"",e),It(window,"location-changed",{replace:i})}(0,s.navigation_path),s.haptic&&Bt(s.haptic));break;case"url":s.url_path&&window.open(s.url_path),s.haptic&&Bt(s.haptic);break;case"toggle":i.entity&&(Wt(e,i.entity),s.haptic&&Bt(s.haptic));break;case"call-service":if(!s.service)return;var a=s.service.split(".",2),o=a[0],l=a[1],c=Object.assign({},s.service_data);"entity"===c.entity_id&&(c.entity_id=i.entity),e.callService(o,l,c),s.haptic&&Bt(s.haptic)}},Zt={humidity:"hass:water-percent",illuminance:"hass:brightness-5",temperature:"hass:thermometer",pressure:"hass:gauge",power:"hass:flash",signal_strength:"hass:wifi"},Jt={binary_sensor:function(t){var e=t.state&&"off"===t.state;switch(t.attributes.device_class){case"battery":return e?"hass:battery":"hass:battery-outline";case"cold":return e?"hass:thermometer":"hass:snowflake";case"connectivity":return e?"hass:server-network-off":"hass:server-network";case"door":return e?"hass:door-closed":"hass:door-open";case"garage_door":return e?"hass:garage":"hass:garage-open";case"gas":case"power":case"problem":case"safety":case"smoke":return e?"hass:shield-check":"hass:alert";case"heat":return e?"hass:thermometer":"hass:fire";case"light":return e?"hass:brightness-5":"hass:brightness-7";case"lock":return e?"hass:lock":"hass:lock-open";case"moisture":return e?"hass:water-off":"hass:water";case"motion":return e?"hass:walk":"hass:run";case"occupancy":return e?"hass:home-outline":"hass:home";case"opening":return e?"hass:square":"hass:square-outline";case"plug":return e?"hass:power-plug-off":"hass:power-plug";case"presence":return e?"hass:home-outline":"hass:home";case"sound":return e?"hass:music-note-off":"hass:music-note";case"vibration":return e?"hass:crop-portrait":"hass:vibrate";case"window":return e?"hass:window-closed":"hass:window-open";default:return e?"hass:radiobox-blank":"hass:checkbox-marked-circle"}},cover:function(t){var e="closed"!==t.state;switch(t.attributes.device_class){case"garage":return e?"hass:garage-open":"hass:garage";case"door":return e?"hass:door-open":"hass:door-closed";case"shutter":return e?"hass:window-shutter-open":"hass:window-shutter";case"blind":return e?"hass:blinds-open":"hass:blinds";case"window":return e?"hass:window-open":"hass:window-closed";default:return Yt("cover",t.state)}},sensor:function(t){var e=t.attributes.device_class;if(e&&e in Zt)return Zt[e];if("battery"===e){var i=Number(t.state);if(isNaN(i))return"hass:battery-unknown";var n=10*Math.round(i/10);return n>=100?"hass:battery":n<=0?"hass:battery-alert":"hass:battery-"+n}var r=t.attributes.unit_of_measurement;return"°C"===r||"°F"===r?"hass:thermometer":Yt("sensor")},input_datetime:function(t){return t.attributes.has_date?t.attributes.has_time?Yt("input_datetime"):"hass:calendar":"hass:clock"}};const Xt=(t,e,i,n)=>{n=n||{},i=null==i?{}:i;const r=new Event(e,{bubbles:void 0===n.bubbles||n.bubbles,cancelable:Boolean(n.cancelable),composed:void 0===n.composed||n.composed});return r.detail=i,t.dispatchEvent(r),r},Kt=(t,e)=>{if(t===e)return!0;if(t&&e&&"object"==typeof t&&"object"==typeof e){if(t.constructor!==e.constructor)return!1;let i,n;if(Array.isArray(t)){if(n=t.length,n!==e.length)return!1;for(i=n;0!=i--;)if(!Kt(t[i],e[i]))return!1;return!0}if(t instanceof Map&&e instanceof Map){if(t.size!==e.size)return!1;for(i of t.entries())if(!e.has(i[0]))return!1;for(i of t.entries())if(!Kt(i[1],e.get(i[0])))return!1;return!0}if(t instanceof Set&&e instanceof Set){if(t.size!==e.size)return!1;for(i of t.entries())if(!e.has(i[0]))return!1;return!0}if(ArrayBuffer.isView(t)&&ArrayBuffer.isView(e)){if(n=t.length,n!==e.length)return!1;for(i=n;0!=i--;)if(t[i]!==e[i])return!1;return!0}if(t.constructor===RegExp)return t.source===e.source&&t.flags===e.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===e.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===e.toString();const r=Object.keys(t);if(n=r.length,n!==Object.keys(e).length)return!1;for(i=n;0!=i--;)if(!Object.prototype.hasOwnProperty.call(e,r[i]))return!1;for(i=n;0!=i--;){const n=r[i];if(!Kt(t[n],e[n]))return!1}return!0}return t!=t&&e!=e},Qt="ontouchstart"in window||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0;class te extends HTMLElement{constructor(){super(),this.holdTime=500,this.held=!1,this.cancelled=!1,this.isRepeating=!1,this.ripple=document.createElement("mwc-ripple")}connectedCallback(){Object.assign(this.style,{position:"absolute",width:Qt?"100px":"50px",height:Qt?"100px":"50px",transform:"translate(-50%, -50%)",pointerEvents:"none",zIndex:"999"}),this.appendChild(this.ripple),this.ripple.primary=!0,["touchcancel","mouseout","mouseup","touchmove","mousewheel","wheel","scroll"].forEach((t=>{document.addEventListener(t,(()=>{this.cancelled=!0,this.timer&&(this.stopAnimation(),clearTimeout(this.timer),this.timer=void 0,this.isRepeating&&this.repeatTimeout&&(clearInterval(this.repeatTimeout),this.isRepeating=!1))}),{passive:!0})}))}bind(t,e){t.actionHandler&&Kt(e,t.actionHandler.options)||(t.actionHandler?(t.removeEventListener("touchstart",t.actionHandler.start),t.removeEventListener("touchend",t.actionHandler.end),t.removeEventListener("touchcancel",t.actionHandler.end),t.removeEventListener("mousedown",t.actionHandler.start),t.removeEventListener("click",t.actionHandler.end),t.removeEventListener("keyup",t.actionHandler.handleEnter)):t.addEventListener("contextmenu",(t=>{const e=t||window.event;return e.preventDefault&&e.preventDefault(),e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0,e.returnValue=!1,!1})),t.actionHandler={options:e},e.disabled||(t.actionHandler.start=i=>{let n,r;this.cancelled=!1,i.touches?(n=i.touches[0].pageX,r=i.touches[0].pageY):(n=i.pageX,r=i.pageY),e.hasHold&&(this.held=!1,this.timer=window.setTimeout((()=>{this.startAnimation(n,r),this.held=!0,e.repeat&&!this.isRepeating&&(this.isRepeating=!0,this.repeatTimeout=setInterval((()=>{Xt(t,"action",{action:"hold"})}),e.repeat))}),this.holdTime))},t.actionHandler.end=t=>{if(["touchend","touchcancel"].includes(t.type)&&this.cancelled)return void(this.isRepeating&&this.repeatTimeout&&(clearInterval(this.repeatTimeout),this.isRepeating=!1));const i=t.target;t.cancelable&&t.preventDefault(),e.hasHold&&(clearTimeout(this.timer),this.isRepeating&&this.repeatTimeout&&clearInterval(this.repeatTimeout),this.isRepeating=!1,this.stopAnimation(),this.timer=void 0),e.hasHold&&this.held?e.repeat||Xt(i,"action",{action:"hold"}):e.hasDoubleClick?"click"===t.type&&t.detail<2||!this.dblClickTimeout?this.dblClickTimeout=window.setTimeout((()=>{this.dblClickTimeout=void 0,Xt(i,"action",{action:"tap"})}),250):(clearTimeout(this.dblClickTimeout),this.dblClickTimeout=void 0,Xt(i,"action",{action:"double_tap"})):Xt(i,"action",{action:"tap"})},t.actionHandler.handleEnter=t=>{13===t.keyCode&&t.currentTarget.actionHandler.end(t)},t.addEventListener("touchstart",t.actionHandler.start,{passive:!0}),t.addEventListener("touchend",t.actionHandler.end),t.addEventListener("touchcancel",t.actionHandler.end),t.addEventListener("mousedown",t.actionHandler.start,{passive:!0}),t.addEventListener("click",t.actionHandler.end),t.addEventListener("keyup",t.actionHandler.handleEnter)))}startAnimation(t,e){Object.assign(this.style,{left:t+"px",top:e+"px",display:null}),this.ripple.disabled=!1,this.ripple.startPress(),this.ripple.unbounded=!0}stopAnimation(){this.ripple.endPress(),this.ripple.disabled=!0,this.style.display="none"}}customElements.define("button-card-action-handler",te);const ee=(t,e)=>{const i=(()=>{const t=document.body;if(t.querySelector("button-card-action-handler"))return t.querySelector("button-card-action-handler");const e=document.createElement("button-card-action-handler");return t.appendChild(e),e})();i&&i.bind(t,e)},ie=g(((t={})=>e=>{ee(e.committer.element,t)}));function ne(t,e){(function(t){return"string"==typeof t&&t.includes(".")&&1===parseFloat(t)})(t)&&(t="100%");var i=function(t){return"string"==typeof t&&t.includes("%")}(t);return t=360===e?t:Math.min(e,Math.max(0,parseFloat(t))),i&&(t=parseInt(String(t*e),10)/100),Math.abs(t-e)<1e-6?1:t=360===e?(t<0?t%e+e:t%e)/parseFloat(String(e)):t%e/parseFloat(String(e))}function re(t){return Math.min(1,Math.max(0,t))}function se(t){return t=parseFloat(t),(isNaN(t)||t<0||t>1)&&(t=1),t}function ae(t){return t<=1?100*Number(t)+"%":t}function oe(t){return 1===t.length?"0"+t:String(t)}function le(t,e,i){t=ne(t,255),e=ne(e,255),i=ne(i,255);var n=Math.max(t,e,i),r=Math.min(t,e,i),s=0,a=0,o=(n+r)/2;if(n===r)a=0,s=0;else{var l=n-r;switch(a=o>.5?l/(2-n-r):l/(n+r),n){case t:s=(e-i)/l+(e1&&(i-=1),i<1/6?t+6*i*(e-t):i<.5?e:i<2/3?t+(e-t)*(2/3-i)*6:t}function he(t,e,i){t=ne(t,255),e=ne(e,255),i=ne(i,255);var n=Math.max(t,e,i),r=Math.min(t,e,i),s=0,a=n,o=n-r,l=0===n?0:o/n;if(n===r)s=0;else{switch(n){case t:s=(e-i)/o+(e>16,g:(65280&t)>>8,b:255&t}}(e)),this.originalInput=e;var r=me(e);this.originalInput=e,this.r=r.r,this.g=r.g,this.b=r.b,this.a=r.a,this.roundA=Math.round(100*this.a)/100,this.format=null!==(n=i.format)&&void 0!==n?n:r.format,this.gradientType=i.gradientType,this.r<1&&(this.r=Math.round(this.r)),this.g<1&&(this.g=Math.round(this.g)),this.b<1&&(this.b=Math.round(this.b)),this.isValid=r.ok}return t.prototype.isDark=function(){return this.getBrightness()<128},t.prototype.isLight=function(){return!this.isDark()},t.prototype.getBrightness=function(){var t=this.toRgb();return(299*t.r+587*t.g+114*t.b)/1e3},t.prototype.getLuminance=function(){var t=this.toRgb(),e=t.r/255,i=t.g/255,n=t.b/255;return.2126*(e<=.03928?e/12.92:Math.pow((e+.055)/1.055,2.4))+.7152*(i<=.03928?i/12.92:Math.pow((i+.055)/1.055,2.4))+.0722*(n<=.03928?n/12.92:Math.pow((n+.055)/1.055,2.4))},t.prototype.getAlpha=function(){return this.a},t.prototype.setAlpha=function(t){return this.a=se(t),this.roundA=Math.round(100*this.a)/100,this},t.prototype.toHsv=function(){var t=he(this.r,this.g,this.b);return{h:360*t.h,s:t.s,v:t.v,a:this.a}},t.prototype.toHsvString=function(){var t=he(this.r,this.g,this.b),e=Math.round(360*t.h),i=Math.round(100*t.s),n=Math.round(100*t.v);return 1===this.a?"hsv("+e+", "+i+"%, "+n+"%)":"hsva("+e+", "+i+"%, "+n+"%, "+this.roundA+")"},t.prototype.toHsl=function(){var t=le(this.r,this.g,this.b);return{h:360*t.h,s:t.s,l:t.l,a:this.a}},t.prototype.toHslString=function(){var t=le(this.r,this.g,this.b),e=Math.round(360*t.h),i=Math.round(100*t.s),n=Math.round(100*t.l);return 1===this.a?"hsl("+e+", "+i+"%, "+n+"%)":"hsla("+e+", "+i+"%, "+n+"%, "+this.roundA+")"},t.prototype.toHex=function(t){return void 0===t&&(t=!1),ue(this.r,this.g,this.b,t)},t.prototype.toHexString=function(t){return void 0===t&&(t=!1),"#"+this.toHex(t)},t.prototype.toHex8=function(t){return void 0===t&&(t=!1),function(t,e,i,n,r){var s=[oe(Math.round(t).toString(16)),oe(Math.round(e).toString(16)),oe(Math.round(i).toString(16)),oe(de(n))];return r&&s[0].startsWith(s[0].charAt(1))&&s[1].startsWith(s[1].charAt(1))&&s[2].startsWith(s[2].charAt(1))&&s[3].startsWith(s[3].charAt(1))?s[0].charAt(0)+s[1].charAt(0)+s[2].charAt(0)+s[3].charAt(0):s.join("")}(this.r,this.g,this.b,this.a,t)},t.prototype.toHex8String=function(t){return void 0===t&&(t=!1),"#"+this.toHex8(t)},t.prototype.toRgb=function(){return{r:Math.round(this.r),g:Math.round(this.g),b:Math.round(this.b),a:this.a}},t.prototype.toRgbString=function(){var t=Math.round(this.r),e=Math.round(this.g),i=Math.round(this.b);return 1===this.a?"rgb("+t+", "+e+", "+i+")":"rgba("+t+", "+e+", "+i+", "+this.roundA+")"},t.prototype.toPercentageRgb=function(){var t=function(t){return Math.round(100*ne(t,255))+"%"};return{r:t(this.r),g:t(this.g),b:t(this.b),a:this.a}},t.prototype.toPercentageRgbString=function(){var t=function(t){return Math.round(100*ne(t,255))};return 1===this.a?"rgb("+t(this.r)+"%, "+t(this.g)+"%, "+t(this.b)+"%)":"rgba("+t(this.r)+"%, "+t(this.g)+"%, "+t(this.b)+"%, "+this.roundA+")"},t.prototype.toName=function(){if(0===this.a)return"transparent";if(this.a<1)return!1;for(var t="#"+ue(this.r,this.g,this.b,!1),e=0,i=Object.entries(ge);e=0;return e||!n||!t.startsWith("hex")&&"name"!==t?("rgb"===t&&(i=this.toRgbString()),"prgb"===t&&(i=this.toPercentageRgbString()),"hex"!==t&&"hex6"!==t||(i=this.toHexString()),"hex3"===t&&(i=this.toHexString(!0)),"hex4"===t&&(i=this.toHex8String(!0)),"hex8"===t&&(i=this.toHex8String()),"name"===t&&(i=this.toName()),"hsl"===t&&(i=this.toHslString()),"hsv"===t&&(i=this.toHsvString()),i||this.toHexString()):"name"===t&&0===this.a?this.toName():this.toRgbString()},t.prototype.toNumber=function(){return(Math.round(this.r)<<16)+(Math.round(this.g)<<8)+Math.round(this.b)},t.prototype.clone=function(){return new t(this.toString())},t.prototype.lighten=function(e){void 0===e&&(e=10);var i=this.toHsl();return i.l+=e/100,i.l=re(i.l),new t(i)},t.prototype.brighten=function(e){void 0===e&&(e=10);var i=this.toRgb();return i.r=Math.max(0,Math.min(255,i.r-Math.round(-e/100*255))),i.g=Math.max(0,Math.min(255,i.g-Math.round(-e/100*255))),i.b=Math.max(0,Math.min(255,i.b-Math.round(-e/100*255))),new t(i)},t.prototype.darken=function(e){void 0===e&&(e=10);var i=this.toHsl();return i.l-=e/100,i.l=re(i.l),new t(i)},t.prototype.tint=function(t){return void 0===t&&(t=10),this.mix("white",t)},t.prototype.shade=function(t){return void 0===t&&(t=10),this.mix("black",t)},t.prototype.desaturate=function(e){void 0===e&&(e=10);var i=this.toHsl();return i.s-=e/100,i.s=re(i.s),new t(i)},t.prototype.saturate=function(e){void 0===e&&(e=10);var i=this.toHsl();return i.s+=e/100,i.s=re(i.s),new t(i)},t.prototype.greyscale=function(){return this.desaturate(100)},t.prototype.spin=function(e){var i=this.toHsl(),n=(i.h+e)%360;return i.h=n<0?360+n:n,new t(i)},t.prototype.mix=function(e,i){void 0===i&&(i=50);var n=this.toRgb(),r=new t(e).toRgb(),s=i/100;return new t({r:(r.r-n.r)*s+n.r,g:(r.g-n.g)*s+n.g,b:(r.b-n.b)*s+n.b,a:(r.a-n.a)*s+n.a})},t.prototype.analogous=function(e,i){void 0===e&&(e=6),void 0===i&&(i=30);var n=this.toHsl(),r=360/i,s=[this];for(n.h=(n.h-(r*e>>1)+720)%360;--e;)n.h=(n.h+r)%360,s.push(new t(n));return s},t.prototype.complement=function(){var e=this.toHsl();return e.h=(e.h+180)%360,new t(e)},t.prototype.monochromatic=function(e){void 0===e&&(e=6);for(var i=this.toHsv(),n=i.h,r=i.s,s=i.v,a=[],o=1/e;e--;)a.push(new t({h:n,s:r,v:s})),s=(s+o)%1;return a},t.prototype.splitcomplement=function(){var e=this.toHsl(),i=e.h;return[this,new t({h:(i+72)%360,s:e.s,l:e.l}),new t({h:(i+216)%360,s:e.s,l:e.l})]},t.prototype.triad=function(){return this.polyad(3)},t.prototype.tetrad=function(){return this.polyad(4)},t.prototype.polyad=function(e){for(var i=this.toHsl(),n=i.h,r=[this],s=360/e,a=1;at&&"object"==typeof t;return t.reduce(((t,i)=>(Object.keys(i).forEach((n=>{const r=t[n],s=i[n];Array.isArray(r)&&Array.isArray(s)?t[n]=r.concat(...s):e(r)&&e(s)?t[n]=Me(r,s):t[n]=s})),t)),{})}function Ce(t,e){let i=[];return t&&t.forEach((t=>{let n=t;e&&e.forEach((e=>{e.id&&t.id&&e.id==t.id&&(n=Me(n,e))})),i.push(n)})),e&&(i=i.concat(e.filter((e=>!t||!t.find((t=>!(!t.id||!e.id)&&t.id==e.id)))))),i}const Ee=((t,...e)=>{const i=e.reduce(((e,i,n)=>e+(t=>{if(t instanceof et)return t.cssText;if("number"==typeof t)return t;throw new Error(`Value passed to 'css' function must be a 'css' function result: ${t}. Use 'unsafeCSS' to pass non-literal values, but\n take care to ensure page security.`)})(i)+t[n+1]),t[0]);return new et(i,tt)})` :host { position: relative; display: block; @@ -418,7 +418,7 @@ function t(t,e,i,n){var r,s=arguments.length,a=s<3?e:null===n?n=Object.getOwnPro height: 100%; } } -`;const Ae=(t,e,i,n)=>{if(!((t,e,i)=>{const[n,r]=t.split(".",2);return Number(n)>e||Number(n)===e&&Number(r)>=i})(t.config.version,0,109))return function(t,e){let i;const n=ke(e.entity_id);return"binary_sensor"===n?(e.attributes.device_class&&(i=t(`state.${n}.${e.attributes.device_class}.${e.state}`)),i||(i=t(`state.${n}.default.${e.state}`))):i=e.attributes.unit_of_measurement&&!["unknown","unavailable"].includes(e.state)?e.state:"zwave"===n?["initializing","dead"].includes(e.state)?t("state.zwave.query_stage."+e.state,"query_stage",e.attributes.query_stage):t("state.zwave.default."+e.state):t(`state.${n}.${e.state}`),i||(i=t("state.default."+e.state)||t(`component.${n}.state.${e.state}`)||e.state),i}(e,i);if("unknown"===i.state||"unavailable"===i.state)return e("state.default."+i.state);if(i.attributes.unit_of_measurement)return`${i.state} ${i.attributes.unit_of_measurement}`;const r=ke(i.entity_id);if("input_datetime"===r){let t;if(!i.attributes.has_time)return t=new Date(i.attributes.year,i.attributes.month-1,i.attributes.day),jt(t,n);if(!i.attributes.has_date){const e=new Date;return t=new Date(e.getFullYear(),e.getMonth(),e.getDay(),i.attributes.hour,i.attributes.minute),Ht(t,n)}return t=new Date(i.attributes.year,i.attributes.month-1,i.attributes.day,i.attributes.hour,i.attributes.minute),$t(t,n)}return i.attributes.device_class&&e(`component.${r}.state.${i.attributes.device_class}.${i.state}`)||e(`component.${r}.state._.${i.state}`)||i.state};var Ne=Function.prototype.toString,Pe=Object.create,je=Object.defineProperty,$e=Object.getOwnPropertyDescriptor,He=Object.getOwnPropertyNames,Re=Object.getOwnPropertySymbols,Ve=Object.getPrototypeOf,De=Object.prototype,Le=De.hasOwnProperty,Fe=De.propertyIsEnumerable,Ie="function"==typeof Re,ze="function"==typeof WeakMap,Ue=function(t,e){if(!t.constructor)return Pe(null);var i=t.constructor,n=t.__proto__||Ve(t);if(i===e.Object)return n===e.Object.prototype?{}:Pe(n);if(~Ne.call(i).indexOf("[native code]"))try{return new i}catch(r){}return Pe(n)},qe=function(t,e,i,n){var r=Ue(t,e);for(var s in n.set(t,r),t)Le.call(t,s)&&(r[s]=i(t[s],n));if(Ie){var a=Re(t),o=a.length;if(o)for(var l=0,c=void 0;l{Ze&&t(),window.loadCardHelpers&&(Ze=await window.loadCardHelpers(),window.cardHelpers=Ze,t())}));console.info("%c BUTTON-CARD \n%c Version 3.4.0 ","color: orange; font-weight: bold; background: black","color: white; font-weight: bold; background: dimgray");let Xe=class extends nt{constructor(){super(...arguments),this._cards={},this._cardsConfig={},this._entities=[],this._initial_setup_complete=!1,this._rippleHandlers=new rt((()=>this._ripple))}set hass(t){this._hass=t,Object.keys(this._cards).forEach((t=>{this._cards[t].hass=this._hass})),this._initial_setup_complete||this._initConnected()}disconnectedCallback(){super.disconnectedCallback(),this._clearInterval()}connectedCallback(){super.connectedCallback(),this._initial_setup_complete?this._startTimerCountdown():this._initConnected()}_initConnected(){void 0!==this._hass&&void 0!==this._config&&this.isConnected&&(this._initial_setup_complete=!0,this._startTimerCountdown())}_startTimerCountdown(){if(this._config&&this._config.entity&&"timer"===ke(this._config.entity)){const t=this._hass.states[this._config.entity];this._startInterval(t)}}_createCard(t){if(Ze)return Ze.createCardElement(t);{const e=function(t,e){void 0===e&&(e=!1);var i=function(t,e){return n("hui-error-card",{type:"error",error:t,config:e})},n=function(t,e){var n=window.document.createElement(t);try{n.setConfig(e)}catch(n){return console.error(t,n),i(n.message,e)}return n};if(!t||"object"!=typeof t||!e&&!t.type)return i("No type defined",t);var r=t.type;if(r&&r.startsWith("custom:"))r=r.substr("custom:".length);else if(e)if(zt.has(r))r="hui-"+r+"-row";else{if(!t.entity)return i("Invalid config given.",t);var s=t.entity.split(".",1)[0];r="hui-"+(Ut[s]||"text")+"-entity-row"}else r="hui-"+r+"-card";if(customElements.get(r))return n(r,t);var a=i("Custom element doesn't exist: "+t.type+".",t);a.style.display="None";var o=setTimeout((function(){a.style.display=""}),2e3);return customElements.whenDefined(t.type).then((function(){clearTimeout(o),It(a,"ll-rebuild",{},a)})),a}(t);return Je.then((()=>{It(e,"ll-rebuild",{})})),e}}static get styles(){return Ee}render(){if(!this._config||!this._hass)return D``;this._stateObj=this._config.entity?this._hass.states[this._config.entity]:void 0;try{return this._evaledVariables=this._config.variables?this._objectEvalTemplate(this._stateObj,this._config.variables):void 0,this._cardHtml()}catch(t){t.stack?console.error(t.stack):console.error(t);const e=document.createElement("hui-error-card");return e.setConfig({type:"error",error:t.toString(),origConfig:this._config}),D` ${e} `}}shouldUpdate(t){return!(!this._hasTemplate&&!t.has("_timeRemaining")&&!function(t,e){if(e.has("_config"))return!0;const i=e.get("_hass");if(i)return t._entities.some((function(e){return(null==i?void 0:i.states[e])!==t._hass.states[e]}));return!1}(this,t))&&(this._expandTriggerGroups(),!0)}updated(t){if(super.updated(t),this._config&&this._config.entity&&"timer"===ke(this._config.entity)&&t.has("_hass")){const e=this._hass.states[this._config.entity],i=t.get("_hass");(i?i.states[this._config.entity]:void 0)!==e?this._startInterval(e):e||this._clearInterval()}}_clearInterval(){this._interval&&(window.clearInterval(this._interval),this._interval=void 0)}_startInterval(t){this._clearInterval(),this._calculateRemaining(t),"active"===t.state&&(this._interval=window.setInterval((()=>this._calculateRemaining(t)),1e3))}_calculateRemaining(t){t.attributes.remaining&&(this._timeRemaining=function(t){var e=Pt(t.attributes.remaining);if("active"===t.state){var i=(new Date).getTime(),n=new Date(t.last_changed).getTime();e=Math.max(e-(i-n)/1e3,0)}return e}(t))}_computeTimeDisplay(t){if(t)return function(t){var e=Math.floor(t/3600),i=Math.floor(t%3600/60),n=Math.floor(t%3600%60);return e>0?e+":"+Rt(i)+":"+Rt(n):i>0?i+":"+Rt(n):n>0?""+n:null}(this._timeRemaining||Pt(t.attributes.duration))}_getMatchingConfigState(t){if(!this._config.state)return;const e=this._config.state.find((t=>"template"===t.operator));if(!t&&!e)return;let i;const n=this._config.state.find((e=>{if(!e.operator)return t&&this._getTemplateOrValue(t,e.value)==t.state;switch(e.operator){case"==":return t&&t.state==this._getTemplateOrValue(t,e.value);case"<=":return t&&t.state<=this._getTemplateOrValue(t,e.value);case"<":return t&&t.state=":return t&&t.state>=this._getTemplateOrValue(t,e.value);case">":return t&&t.state>this._getTemplateOrValue(t,e.value);case"!=":return t&&t.state!=this._getTemplateOrValue(t,e.value);case"regex":return!(!t||!t.state.match(this._getTemplateOrValue(t,e.value)));case"template":return this._getTemplateOrValue(t,e.value);case"default":return i=e,!1;default:return!1}}));return!n&&i?i:n}_evalTemplate(t,e){try{return new Function("states","entity","user","hass","variables","html","'use strict'; "+e).call(this,this._hass.states,t,this._hass.user,this._hass,this._evaledVariables,D)}catch(i){const t=e.length<=100?e.trim():e.trim().substring(0,98)+"...";throw i.message=`${i.name}: ${i.message} in '${t}'`,i.name="ButtonCardJSTemplateError",i}}_objectEvalTemplate(t,e){const i=Ge(e);return this._getTemplateOrValue(t,i)}_getTemplateOrValue(t,e){if(["number","boolean"].includes(typeof e))return e;if(!e)return e;if("object"==typeof e)return Object.keys(e).forEach((i=>{e[i]=this._getTemplateOrValue(t,e[i])})),e;const i=e.trim();return"[[["===i.substring(0,3)&&"]]]"===i.slice(-3)?this._evalTemplate(t,i.slice(3,-3)):e}_getDefaultColorForState(t){switch(t.state){case"on":return this._config.color_on;case"off":return this._config.color_off;default:return this._config.default_color}}_getColorForLightEntity(t,e){let i=this._config.default_color;return t&&("on"===t.state?t.attributes.rgb_color?(i=`rgb(${t.attributes.rgb_color.join(",")})`,t.attributes.brightness&&(i=Te(i,(t.attributes.brightness+245)/5))):e&&t.attributes.color_temp&&t.attributes.min_mireds&&t.attributes.max_mireds?(i=function(t,e,i){const n=new Se("rgb(255, 160, 0)"),r=new Se("rgb(166, 209, 255)"),s=new Se("white"),a=(t-e)/(i-e)*100;return a<50?xe(r).mix(s,2*a).toRgbString():xe(s).mix(n,2*(a-50)).toRgbString()}(t.attributes.color_temp,t.attributes.min_mireds,t.attributes.max_mireds),t.attributes.brightness&&(i=Te(i,(t.attributes.brightness+245)/5))):i=t.attributes.brightness?Te(this._getDefaultColorForState(t),(t.attributes.brightness+245)/5):this._getDefaultColorForState(t):i=this._getDefaultColorForState(t)),i}_buildCssColorAttribute(t,e){let i,n="";return(null==e?void 0:e.color)?n=e.color:"auto"!==this._config.color&&"off"===(null==t?void 0:t.state)?n=this._config.color_off:this._config.color&&(n=this._config.color),i="auto"==n||"auto-no-temperature"==n?this._getColorForLightEntity(t,"auto-no-temperature"!==n):n||(t?this._getDefaultColorForState(t):this._config.default_color),i}_buildIcon(t,e){if(!this._config.show_icon)return;let i;if(null==e?void 0:e.icon)i=e.icon;else if(this._config.icon)i=this._config.icon;else{if(!t)return;i=function(t){if(!t)return Dt;if(t.attributes.icon)return t.attributes.icon;var e=Vt(t.entity_id);return e in Jt?Jt[e](t):Yt(e,t.state)}(t)}return this._getTemplateOrValue(t,i)}_buildEntityPicture(t,e){if(!this._config.show_entity_picture||!t&&!e&&!this._config.entity_picture)return;let i;return(null==e?void 0:e.entity_picture)?i=e.entity_picture:this._config.entity_picture?i=this._config.entity_picture:t&&(i=t.attributes&&t.attributes.entity_picture?t.attributes.entity_picture:void 0),this._getTemplateOrValue(t,i)}_buildStyleGeneric(t,e,i){var n,r;let s={};if((null===(n=this._config.styles)||void 0===n?void 0:n[i])&&(s=Object.assign(s,...this._config.styles[i])),null===(r=null==e?void 0:e.styles)||void 0===r?void 0:r[i]){let t={};t=Object.assign(t,...e.styles[i]),s=Object.assign(Object.assign({},s),t)}return Object.keys(s).forEach((e=>{s[e]=this._getTemplateOrValue(t,s[e])})),s}_buildCustomStyleGeneric(t,e,i){var n,r,s,a;let o={};if((null===(r=null===(n=this._config.styles)||void 0===n?void 0:n.custom_fields)||void 0===r?void 0:r[i])&&(o=Object.assign(o,...this._config.styles.custom_fields[i])),null===(a=null===(s=null==e?void 0:e.styles)||void 0===s?void 0:s.custom_fields)||void 0===a?void 0:a[i]){let t={};t=Object.assign(t,...e.styles.custom_fields[i]),o=Object.assign(Object.assign({},o),t)}return Object.keys(o).forEach((e=>{o[e]=this._getTemplateOrValue(t,o[e])})),o}_buildName(t,e){if(!1===this._config.show_name)return;let i;var n;return(null==e?void 0:e.name)?i=e.name:this._config.name?i=this._config.name:t&&(i=t.attributes&&t.attributes.friendly_name?t.attributes.friendly_name:(n=t.entity_id).substr(n.indexOf(".")+1)),this._getTemplateOrValue(t,i)}_buildStateString(t){var e;let i;if(this._config.show_state&&t&&t.state){const n=this._buildUnits(t);n?i=`${t.state} ${n}`:"timer"===ke(t.entity_id)?"idle"===t.state||0===this._timeRemaining?i=Ae(this._hass,this._hass.localize,t,this._hass.language):(i=this._computeTimeDisplay(t),"paused"===t.state&&(i+=` (${Ae(this._hass,this._hass.localize,t,this._hass.language)})`)):i=(null===(e=this._config)||void 0===e?void 0:e.show_units)||"sensor"!==ke(t.entity_id)?Ae(this._hass,this._hass.localize,t,this._hass.language):t.state}return i}_buildUnits(t){var e;let i;return t&&this._config.show_units&&(i=(null===(e=t.attributes)||void 0===e?void 0:e.unit_of_measurement)&&!this._config.units?t.attributes.unit_of_measurement:this._config.units?this._config.units:void 0),i}_buildLastChanged(t,e){return this._config.show_last_changed&&t?D` +`;const Pe=(t,e,i,n)=>{if(!((t,e,i)=>{const[n,r]=t.split(".",2);return Number(n)>e||Number(n)===e&&Number(r)>=i})(t.config.version,0,109))return function(t,e){let i;const n=ke(e.entity_id);return"binary_sensor"===n?(e.attributes.device_class&&(i=t(`state.${n}.${e.attributes.device_class}.${e.state}`)),i||(i=t(`state.${n}.default.${e.state}`))):i=e.attributes.unit_of_measurement&&!["unknown","unavailable"].includes(e.state)?e.state:"zwave"===n?["initializing","dead"].includes(e.state)?t("state.zwave.query_stage."+e.state,"query_stage",e.attributes.query_stage):t("state.zwave.default."+e.state):t(`state.${n}.${e.state}`),i||(i=t("state.default."+e.state)||t(`component.${n}.state.${e.state}`)||e.state),i}(e,i);if("unknown"===i.state||"unavailable"===i.state)return e("state.default."+i.state);if(i.attributes.unit_of_measurement)return`${i.state} ${i.attributes.unit_of_measurement}`;const r=ke(i.entity_id);if("input_datetime"===r){let t;if(!i.attributes.has_time)return t=new Date(i.attributes.year,i.attributes.month-1,i.attributes.day),jt(t,n);if(!i.attributes.has_date){const e=new Date;return t=new Date(e.getFullYear(),e.getMonth(),e.getDay(),i.attributes.hour,i.attributes.minute),Ht(t,n)}return t=new Date(i.attributes.year,i.attributes.month-1,i.attributes.day,i.attributes.hour,i.attributes.minute),$t(t,n)}return i.attributes.device_class&&e(`component.${r}.state.${i.attributes.device_class}.${i.state}`)||e(`component.${r}.state._.${i.state}`)||i.state};var Ae=Function.prototype.toString,Ne=Object.create,je=Object.defineProperty,$e=Object.getOwnPropertyDescriptor,He=Object.getOwnPropertyNames,Re=Object.getOwnPropertySymbols,Ve=Object.getPrototypeOf,De=Object.prototype,Le=De.hasOwnProperty,Fe=De.propertyIsEnumerable,Ie="function"==typeof Re,ze="function"==typeof WeakMap,Ue=function(t,e){if(!t.constructor)return Ne(null);var i=t.constructor,n=t.__proto__||Ve(t);if(i===e.Object)return n===e.Object.prototype?{}:Ne(n);if(~Ae.call(i).indexOf("[native code]"))try{return new i}catch(r){}return Ne(n)},qe=function(t,e,i,n){var r=Ue(t,e);for(var s in n.set(t,r),t)Le.call(t,s)&&(r[s]=i(t[s],n));if(Ie){var a=Re(t),o=a.length;if(o)for(var l=0,c=void 0;l{Ze&&t(),window.loadCardHelpers&&(Ze=await window.loadCardHelpers(),window.cardHelpers=Ze,t())}));console.info("%c BUTTON-CARD \n%c Version 3.4.1 ","color: orange; font-weight: bold; background: black","color: white; font-weight: bold; background: dimgray");let Xe=class extends nt{constructor(){super(...arguments),this._cards={},this._cardsConfig={},this._entities=[],this._initial_setup_complete=!1,this._rippleHandlers=new rt((()=>this._ripple))}set hass(t){this._hass=t,Object.keys(this._cards).forEach((t=>{this._cards[t].hass=this._hass})),this._initial_setup_complete||this._initConnected()}disconnectedCallback(){super.disconnectedCallback(),this._clearInterval()}connectedCallback(){super.connectedCallback(),this._initial_setup_complete?this._startTimerCountdown():this._initConnected()}_initConnected(){void 0!==this._hass&&void 0!==this._config&&this.isConnected&&(this._initial_setup_complete=!0,this._startTimerCountdown())}_startTimerCountdown(){if(this._config&&this._config.entity&&"timer"===ke(this._config.entity)){const t=this._hass.states[this._config.entity];this._startInterval(t)}}_createCard(t){if(Ze)return Ze.createCardElement(t);{const e=function(t,e){void 0===e&&(e=!1);var i=function(t,e){return n("hui-error-card",{type:"error",error:t,config:e})},n=function(t,e){var n=window.document.createElement(t);try{n.setConfig(e)}catch(n){return console.error(t,n),i(n.message,e)}return n};if(!t||"object"!=typeof t||!e&&!t.type)return i("No type defined",t);var r=t.type;if(r&&r.startsWith("custom:"))r=r.substr("custom:".length);else if(e)if(zt.has(r))r="hui-"+r+"-row";else{if(!t.entity)return i("Invalid config given.",t);var s=t.entity.split(".",1)[0];r="hui-"+(Ut[s]||"text")+"-entity-row"}else r="hui-"+r+"-card";if(customElements.get(r))return n(r,t);var a=i("Custom element doesn't exist: "+t.type+".",t);a.style.display="None";var o=setTimeout((function(){a.style.display=""}),2e3);return customElements.whenDefined(t.type).then((function(){clearTimeout(o),It(a,"ll-rebuild",{},a)})),a}(t);return Je.then((()=>{It(e,"ll-rebuild",{})})),e}}static get styles(){return Ee}render(){if(!this._config||!this._hass)return D``;this._stateObj=this._config.entity?this._hass.states[this._config.entity]:void 0;try{return this._evaledVariables=this._config.variables?this._objectEvalTemplate(this._stateObj,this._config.variables):void 0,this._cardHtml()}catch(t){t.stack?console.error(t.stack):console.error(t);const e=document.createElement("hui-error-card");return e.setConfig({type:"error",error:t.toString(),origConfig:this._config}),D` ${e} `}}shouldUpdate(t){return!(!this._hasTemplate&&!t.has("_timeRemaining")&&!function(t,e){if(e.has("_config"))return!0;const i=e.get("_hass");if(i)return t._entities.some((function(e){return(null==i?void 0:i.states[e])!==t._hass.states[e]}));return!1}(this,t))&&(this._expandTriggerGroups(),!0)}updated(t){if(super.updated(t),this._config&&this._config.entity&&"timer"===ke(this._config.entity)&&t.has("_hass")){const e=this._hass.states[this._config.entity],i=t.get("_hass");(i?i.states[this._config.entity]:void 0)!==e?this._startInterval(e):e||this._clearInterval()}}_clearInterval(){this._interval&&(window.clearInterval(this._interval),this._interval=void 0)}_startInterval(t){this._clearInterval(),this._calculateRemaining(t),"active"===t.state&&(this._interval=window.setInterval((()=>this._calculateRemaining(t)),1e3))}_calculateRemaining(t){t.attributes.remaining&&(this._timeRemaining=function(t){var e=Nt(t.attributes.remaining);if("active"===t.state){var i=(new Date).getTime(),n=new Date(t.last_changed).getTime();e=Math.max(e-(i-n)/1e3,0)}return e}(t))}_computeTimeDisplay(t){if(t)return function(t){var e=Math.floor(t/3600),i=Math.floor(t%3600/60),n=Math.floor(t%3600%60);return e>0?e+":"+Rt(i)+":"+Rt(n):i>0?i+":"+Rt(n):n>0?""+n:null}(this._timeRemaining||Nt(t.attributes.duration))}_getMatchingConfigState(t){if(!this._config.state)return;const e=this._config.state.find((t=>"template"===t.operator));if(!t&&!e)return;let i;const n=this._config.state.find((e=>{if(!e.operator)return t&&this._getTemplateOrValue(t,e.value)==t.state;switch(e.operator){case"==":return t&&t.state==this._getTemplateOrValue(t,e.value);case"<=":return t&&t.state<=this._getTemplateOrValue(t,e.value);case"<":return t&&t.state=":return t&&t.state>=this._getTemplateOrValue(t,e.value);case">":return t&&t.state>this._getTemplateOrValue(t,e.value);case"!=":return t&&t.state!=this._getTemplateOrValue(t,e.value);case"regex":return!(!t||!t.state.match(this._getTemplateOrValue(t,e.value)));case"template":return this._getTemplateOrValue(t,e.value);case"default":return i=e,!1;default:return!1}}));return!n&&i?i:n}_evalTemplate(t,e){try{return new Function("states","entity","user","hass","variables","html","'use strict'; "+e).call(this,this._hass.states,t,this._hass.user,this._hass,this._evaledVariables,D)}catch(i){const t=e.length<=100?e.trim():e.trim().substring(0,98)+"...";throw i.message=`${i.name}: ${i.message} in '${t}'`,i.name="ButtonCardJSTemplateError",i}}_objectEvalTemplate(t,e){const i=Ge(e);return this._getTemplateOrValue(t,i)}_getTemplateOrValue(t,e){if(["number","boolean"].includes(typeof e))return e;if(!e)return e;if("object"==typeof e)return Object.keys(e).forEach((i=>{e[i]=this._getTemplateOrValue(t,e[i])})),e;const i=e.trim();return"[[["===i.substring(0,3)&&"]]]"===i.slice(-3)?this._evalTemplate(t,i.slice(3,-3)):e}_getDefaultColorForState(t){switch(t.state){case"on":return this._config.color_on;case"off":return this._config.color_off;default:return this._config.default_color}}_getColorForLightEntity(t,e){let i=this._config.default_color;return t&&("on"===t.state?t.attributes.rgb_color?(i=`rgb(${t.attributes.rgb_color.join(",")})`,t.attributes.brightness&&(i=Te(i,(t.attributes.brightness+245)/5))):e&&t.attributes.color_temp&&t.attributes.min_mireds&&t.attributes.max_mireds?(i=function(t,e,i){const n=new Se("rgb(255, 160, 0)"),r=new Se("rgb(166, 209, 255)"),s=new Se("white"),a=(t-e)/(i-e)*100;return a<50?xe(r).mix(s,2*a).toRgbString():xe(s).mix(n,2*(a-50)).toRgbString()}(t.attributes.color_temp,t.attributes.min_mireds,t.attributes.max_mireds),t.attributes.brightness&&(i=Te(i,(t.attributes.brightness+245)/5))):i=t.attributes.brightness?Te(this._getDefaultColorForState(t),(t.attributes.brightness+245)/5):this._getDefaultColorForState(t):i=this._getDefaultColorForState(t)),i}_buildCssColorAttribute(t,e){let i,n="";return(null==e?void 0:e.color)?n=e.color:"auto"!==this._config.color&&"off"===(null==t?void 0:t.state)?n=this._config.color_off:this._config.color&&(n=this._config.color),i="auto"==n||"auto-no-temperature"==n?this._getColorForLightEntity(t,"auto-no-temperature"!==n):n||(t?this._getDefaultColorForState(t):this._config.default_color),i}_buildIcon(t,e){if(!this._config.show_icon)return;let i;if(null==e?void 0:e.icon)i=e.icon;else if(this._config.icon)i=this._config.icon;else{if(!t)return;i=function(t){if(!t)return Dt;if(t.attributes.icon)return t.attributes.icon;var e=Vt(t.entity_id);return e in Jt?Jt[e](t):Yt(e,t.state)}(t)}return this._getTemplateOrValue(t,i)}_buildEntityPicture(t,e){if(!this._config.show_entity_picture||!t&&!e&&!this._config.entity_picture)return;let i;return(null==e?void 0:e.entity_picture)?i=e.entity_picture:this._config.entity_picture?i=this._config.entity_picture:t&&(i=t.attributes&&t.attributes.entity_picture?t.attributes.entity_picture:void 0),this._getTemplateOrValue(t,i)}_buildStyleGeneric(t,e,i){var n,r;let s={};if((null===(n=this._config.styles)||void 0===n?void 0:n[i])&&(s=Object.assign(s,...this._config.styles[i])),null===(r=null==e?void 0:e.styles)||void 0===r?void 0:r[i]){let t={};t=Object.assign(t,...e.styles[i]),s=Object.assign(Object.assign({},s),t)}return Object.keys(s).forEach((e=>{s[e]=this._getTemplateOrValue(t,s[e])})),s}_buildCustomStyleGeneric(t,e,i){var n,r,s,a;let o={};if((null===(r=null===(n=this._config.styles)||void 0===n?void 0:n.custom_fields)||void 0===r?void 0:r[i])&&(o=Object.assign(o,...this._config.styles.custom_fields[i])),null===(a=null===(s=null==e?void 0:e.styles)||void 0===s?void 0:s.custom_fields)||void 0===a?void 0:a[i]){let t={};t=Object.assign(t,...e.styles.custom_fields[i]),o=Object.assign(Object.assign({},o),t)}return Object.keys(o).forEach((e=>{o[e]=this._getTemplateOrValue(t,o[e])})),o}_buildName(t,e){if(!1===this._config.show_name)return;let i;var n;return(null==e?void 0:e.name)?i=e.name:this._config.name?i=this._config.name:t&&(i=t.attributes&&t.attributes.friendly_name?t.attributes.friendly_name:(n=t.entity_id).substr(n.indexOf(".")+1)),this._getTemplateOrValue(t,i)}_buildStateString(t){var e;let i;if(this._config.show_state&&t&&t.state){const n=this._buildUnits(t);n?i=`${t.state} ${n}`:"timer"===ke(t.entity_id)?"idle"===t.state||0===this._timeRemaining?i=Pe(this._hass,this._hass.localize,t,this._hass.language):(i=this._computeTimeDisplay(t),"paused"===t.state&&(i+=` (${Pe(this._hass,this._hass.localize,t,this._hass.language)})`)):i=(null===(e=this._config)||void 0===e?void 0:e.show_units)||"sensor"!==ke(t.entity_id)?Pe(this._hass,this._hass.localize,t,this._hass.language):t.state}return i}_buildUnits(t){var e;let i;return t&&this._config.show_units&&(i=(null===(e=t.attributes)||void 0===e?void 0:e.unit_of_measurement)&&!this._config.units?t.attributes.unit_of_measurement:this._config.units?this._config.units:void 0),i}_buildLastChanged(t,e){return this._config.show_last_changed&&t?D` ${a} diff --git a/www/community/button-card/button-card.js.gz b/www/community/button-card/button-card.js.gz index 9b933fb87fe69857ac527411089391d8458b99f5..586e81a588dea34ce1abcef09cdfb67c3a2ae17f 100644 GIT binary patch literal 27230 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�X^nx7#ZH@4YCWmI-QG%ALlsm+~1V? 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ξuX&rpW#zZ37(!$%O~OEdO8iF@H`#<_xUu?r0=XO%MRv!faDv6{092tg5J6#WIzRo1cG;X$n4$(kl>_8t)O& z*>n#b}o~n(z0S%TJjX zWE6%fz@76Bga^eRE16|a&L|NC-k&i10z1^p79;>6Ndrr&Nod7TJE798lzmK6oZvs> zRfxY}ar6g1JKi~&?}M44%2&e8k(L<`@E0qB#ggQl!^7P9J8YG~>ed4aO7!{JHKGvv zF9kdr43==U$x;7HL0Qf|U{0d|F7v4IJJ>^SC&+I+HL}&buM7D)blazZhyJFCJSx{m zzi7y59%CeS65iLgd`&G|5gj@;MP=@C!pS_V(tOdep+xwl!c*YF@-aKgQ1neqFYIsW z25uD!m*QA4@|9Xe(1&W5G5oJq$shh&P=?=sw4e|9F&yZI zHy9C2cQtQcP~m_eEwHVzi8(7MSoS!e0+^ zwsXOh(SFl-XbRJkAR}qt>#9YzT;FC!ZO}GPvJ-;s)pOf312W7a;%^Ul0{u2?0%;p& zw+N33VjrphmL0bwi9yA;&dolm5($^GNbT)Y(<}nhLoZ^3A>$HX^X*b99 zHXCm@Xh6B8cICK?c8#yu+4dI1Mxu^FoFMEu6t#Ca8(|l0KLU@->#RWZE4x6hX+FFSf)dS%=3JzU?K;gKqhT4UB*XdhjRu5Rmf;H xYF-Q5zoBZ9#{vVmOjgZUnpE5GV#NoLpm%oKG>zz#xDbuL_#gTiNalEH0RVhSB=P_N literal 24709 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 YDZ9pp&t>lzb&&P{0Of4)O{9MT07QN;8UO$Q diff --git a/www/community/numberbox-card/numberbox-card.js b/www/community/numberbox-card/numberbox-card.js new file mode 100644 index 0000000..6e4c8d3 --- /dev/null +++ b/www/community/numberbox-card/numberbox-card.js @@ -0,0 +1,240 @@ +((LitElement) => { + +console.info('NUMBERBOX_CARD 1.8'); +const html = LitElement.prototype.html; +const css = LitElement.prototype.css; +class NumberBox extends LitElement { + + +constructor() { + super(); + this.rolling = 0; +} + +static get properties() { + return { + _hass: {}, + config: {}, + stateObj: {}, + rolling: {}, + } +} + +static get styles() { + return css` + ha-card{ + -webkit-font-smoothing:var(--paper-font-body1_-_-webkit-font-smoothing); + font-size:var(--paper-font-body1_-_font-size); + font-weight:var(--paper-font-body1_-_font-weight); + line-height:var(--paper-font-body1_-_line-height); + padding:4px 0} + ha-card.noborder{padding:0 !important;margin:0 !important; + box-shadow:none !important;border:none !important} + .body{ + display:grid;grid-auto-flow:column;grid-auto-columns:1fr; + place-items:center;padding:0 4px; + padding-bottom:2px} + .main{display:flex;flex-direction:row;align-items:center;justify-content:center} + .cur-box{display:flex;align-items:center;justify-content:center;flex-direction:row-reverse} + .cur-num-box{display:flex;align-items:center} + .cur-num{ + font-size:var(--paper-font-subhead_-_font-size); + line-height:var(--paper-font-subhead_-_line-height); + font-weight:normal;margin:0} + .cur-unit{font-size:80%;opacity:0.5} + .nopad{padding:0px} + .grid { + display: grid; + grid-template-columns: repeat(2, auto); + } + .grid-content { + display: grid; + } + .grid-left { + text-align: left; + font-size: var(--paper-font-body1_-_font-size); + padding: 16px 0 16px 16px; + cursor: pointer; + overflow: hidden; + text-overflow: ellipsis; + word-break: keep-all; + white-space: nowrap + } + .noborder .grid-left{padding-left:8px !important} + .grid-right .body{margin-left:auto} + .grid-right { + text-align: right; + padding-right: 10px; + } + .noborder .grid-right{padding-right:0 !important} + `; +} + +shouldUpdate(changedProps) { + if (changedProps.has('stateObj')) {return true;} +} + +render() { + if(!this.stateObj){return html`Missing:'${this.config.entity}'`;} + const vars={}; + vars['icon_plus']=this.config.icon_plus ? this.config.icon_plus : 'mdi:plus'; + vars['icon_minus']=this.config.icon_minus ? this.config.icon_minus : 'mdi:minus'; + if( !this.config.border){ + vars['border']='noborder'; + }else{vars['border']='';} + if( this.config.icon === undefined && this.stateObj.attributes.icon ){ + vars['icon']=this.stateObj.attributes.icon; + }else{ + if(this.config.icon){ + vars['icon']=this.config.icon; + }else{ + vars['icon']=false; + } + } + if( this.config.unit === undefined && this.stateObj.attributes.unit_of_measurement ){ + vars['unit']=this.stateObj.attributes.unit_of_measurement; + }else{ + if(this.config.unit){ + vars['unit']=this.config.unit; + }else{ + vars['unit']=false; + } + } + if( this.config.name === undefined && this.stateObj.attributes.friendly_name ){ + vars['name']=this.stateObj.attributes.friendly_name; + }else{ + if(this.config.name){ + vars['name']=this.config.name; + }else{ + vars['name']=null; + } + } + return this.renderMain(vars); +} + +renderMain(vars) { + let d=false; + if(vars.icon || vars.name){d=true;} + return html` + + ${d ? html`
+
+
+ ${vars.icon ? html`` : null } + ${vars.name} +
+
${this.renderNum(vars)}
` : this.renderNum(vars) } +
+`; +} + +renderNum(vars){ + return html`
+
+
+ + +
+

${this.niceNum(vars)}

+
+ + +
+
+
`; +} + +getCardSize() { + return 1; +} + +setConfig(config) { + if (!config.entity) throw new Error('Please define an entity.'); + if (config.entity.split('.')[0] !== 'input_number') + {throw new Error('Please define a input_number entity.');} + this.config = { + name: config.name, + entity: config.entity, + icon: config.icon, + border: config.border, + speed: config.speed, + unit: config.unit, + icon_plus: config.icon_plus, + icon_minus: config.icon_minus, + }; +} + +set hass(hass) { + if (hass && this.config) { + this.stateObj = this.config.entity in hass.states ? hass.states[this.config.entity] : null; + } + this._hass = hass; +} + +callService(service, data = {entity_id: this.stateObj.entity_id}) { + const [domain, name] = service.split('.'); + this._hass.callService(domain, name, data); +} + +incVal(dhis){ + dhis._hass.callService("input_number", 'increment', { entity_id: dhis.stateObj.entity_id }); +} + +decVal(dhis){ + dhis._hass.callService("input_number", 'decrement', { entity_id: dhis.stateObj.entity_id }); +} + +niceNum(vars){ + let fix=0; + const stp=Number(this.stateObj.attributes.step); + if( Math.round(stp) != stp ){ fix=stp.toString().split(".")[1].length || 1;} + fix = Number(this.stateObj.state).toFixed(fix); + return vars.unit ? html`${fix}${vars.unit}` : fix ; +} + +moreInfo(type, options = {}) { + const e = new Event(type, { + bubbles: options.bubbles || true, + cancelable: options.cancelable || true, + composed: options.composed || true, + }); + e.detail = {entityId: this.stateObj.entity_id}; + this.dispatchEvent(e); + return e; +} + +onMouseDown(v) { + if( this.config.speed === undefined ){ this.config.speed=0;} + if( this.config.speed > 0 ){ + this.onMouseUp(); + if(v){ + this.rolling = setInterval(this.incVal, this.config.speed, this); + }else{ + this.rolling = setInterval(this.decVal, this.config.speed, this); + } + } +} + +onMouseUp() { + if( this.config.speed === undefined ){ this.config.speed=0;} + if( this.config.speed > 0 ){ + clearInterval(this.rolling); + } +} + + + +} customElements.define('numberbox-card', NumberBox); +})(window.LitElement || Object.getPrototypeOf(customElements.get("hui-masonry-view") || customElements.get("hui-view"))); diff --git a/www/panels.yaml b/www/panels.yaml.off similarity index 100% rename from www/panels.yaml rename to www/panels.yaml.off