diff --git a/.ha_run.lock b/.ha_run.lock index 874e5e1..a7b2df0 100644 --- a/.ha_run.lock +++ b/.ha_run.lock @@ -1 +1 @@ -{"pid": 71, "version": 1, "ha_version": "2026.6.4", "start_ts": 1782291758.7869737} \ No newline at end of file +{"pid": 70, "version": 1, "ha_version": "2026.6.4", "start_ts": 1782378461.6707728} \ No newline at end of file diff --git a/esphome/.device-builder.json b/esphome/.device-builder.json index 6933cfb..d2ae9c0 100644 --- a/esphome/.device-builder.json +++ b/esphome/.device-builder.json @@ -308,6 +308,2856 @@ "mac_address": "88:13:BF:68:39:2C" }, "_firmware_jobs": [ + { + "job_id": "0297e2802d32", + "configuration": "esp-entrancebathrmlights.yaml", + "job_type": "upload", + "status": "completed", + "created_at": "2026-06-27T12:02:38.678051+00:00", + "started_at": "2026-06-27T12:03:55.875104+00:00", + "completed_at": "2026-06-27T12:04:05.294274+00:00", + "exit_code": 0, + "error": null, + "port": "OTA", + "new_name": "", + "depends_on": "0c2f0bf9745b", + "dependency_released": true, + "progress": 100, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "0c2f0bf9745b", + "configuration": "esp-entrancebathrmlights.yaml", + "job_type": "compile", + "status": "completed", + "created_at": "2026-06-27T12:02:38.678007+00:00", + "started_at": "2026-06-27T12:02:38.679168+00:00", + "completed_at": "2026-06-27T12:03:55.867462+00:00", + "exit_code": 0, + "error": null, + "port": "", + "new_name": "", + "depends_on": "", + "dependency_released": false, + "progress": null, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "8cba24a8323f", + "configuration": "esp-underhouselights.yaml", + "job_type": "upload", + "status": "completed", + "created_at": "2026-06-24T11:51:24.590439+00:00", + "started_at": "2026-06-24T14:49:45.277115+00:00", + "completed_at": "2026-06-24T14:49:58.460469+00:00", + "exit_code": 0, + "error": null, + "port": "OTA", + "new_name": "", + "depends_on": "aaee722ad6dd", + "dependency_released": true, + "progress": 100, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "aaee722ad6dd", + "configuration": "esp-underhouselights.yaml", + "job_type": "compile", + "status": "completed", + "created_at": "2026-06-24T11:51:24.590401+00:00", + "started_at": "2026-06-24T14:46:33.264759+00:00", + "completed_at": "2026-06-24T14:49:45.276214+00:00", + "exit_code": 0, + "error": null, + "port": "", + "new_name": "", + "depends_on": "", + "dependency_released": false, + "progress": null, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "53a002d67db6", + "configuration": "esp-occupancystair.yaml", + "job_type": "upload", + "status": "completed", + "created_at": "2026-06-24T11:51:19.266724+00:00", + "started_at": "2026-06-24T14:46:33.233708+00:00", + "completed_at": "2026-06-24T14:46:48.419507+00:00", + "exit_code": 0, + "error": null, + "port": "OTA", + "new_name": "", + "depends_on": "60839421416c", + "dependency_released": true, + "progress": 100, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "60839421416c", + "configuration": "esp-occupancystair.yaml", + "job_type": "compile", + "status": "completed", + "created_at": "2026-06-24T11:51:19.266687+00:00", + "started_at": "2026-06-24T14:40:49.127363+00:00", + "completed_at": "2026-06-24T14:46:33.232807+00:00", + "exit_code": 0, + "error": null, + "port": "", + "new_name": "", + "depends_on": "", + "dependency_released": false, + "progress": null, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "8ed48b7ad6c3", + "configuration": "esp-rocktumbler.yaml", + "job_type": "upload", + "status": "completed", + "created_at": "2026-06-24T11:51:12.884959+00:00", + "started_at": "2026-06-24T14:40:49.123043+00:00", + "completed_at": "2026-06-24T14:40:57.481911+00:00", + "exit_code": 0, + "error": null, + "port": "OTA", + "new_name": "", + "depends_on": "4c65e42587fe", + "dependency_released": true, + "progress": 100, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "4c65e42587fe", + "configuration": "esp-rocktumbler.yaml", + "job_type": "compile", + "status": "completed", + "created_at": "2026-06-24T11:51:12.884924+00:00", + "started_at": "2026-06-24T14:37:27.302125+00:00", + "completed_at": "2026-06-24T14:40:49.117805+00:00", + "exit_code": 0, + "error": null, + "port": "", + "new_name": "", + "depends_on": "", + "dependency_released": false, + "progress": null, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "68cd84ba5aad", + "configuration": "esp-poollightpower2.yaml", + "job_type": "upload", + "status": "completed", + "created_at": "2026-06-24T11:51:00.766640+00:00", + "started_at": "2026-06-24T14:37:27.294652+00:00", + "completed_at": "2026-06-24T14:37:37.962712+00:00", + "exit_code": 0, + "error": null, + "port": "OTA", + "new_name": "", + "depends_on": "212c5833f0b9", + "dependency_released": true, + "progress": 100, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "212c5833f0b9", + "configuration": "esp-poollightpower2.yaml", + "job_type": "compile", + "status": "completed", + "created_at": "2026-06-24T11:51:00.766603+00:00", + "started_at": "2026-06-24T14:33:58.389533+00:00", + "completed_at": "2026-06-24T14:37:27.293779+00:00", + "exit_code": 0, + "error": null, + "port": "", + "new_name": "", + "depends_on": "", + "dependency_released": false, + "progress": null, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "90f67f1bc3e5", + "configuration": "esp-poolpumppower.yaml", + "job_type": "upload", + "status": "completed", + "created_at": "2026-06-24T11:50:53.964771+00:00", + "started_at": "2026-06-24T14:33:58.383465+00:00", + "completed_at": "2026-06-24T14:34:41.625168+00:00", + "exit_code": 0, + "error": null, + "port": "OTA", + "new_name": "", + "depends_on": "6df38fbee969", + "dependency_released": true, + "progress": 100, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "6df38fbee969", + "configuration": "esp-poolpumppower.yaml", + "job_type": "compile", + "status": "completed", + "created_at": "2026-06-24T11:50:53.964735+00:00", + "started_at": "2026-06-24T14:27:15.391114+00:00", + "completed_at": "2026-06-24T14:33:58.382588+00:00", + "exit_code": 0, + "error": null, + "port": "", + "new_name": "", + "depends_on": "", + "dependency_released": false, + "progress": null, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "b757911776b0", + "configuration": "esp-entmulti.yaml", + "job_type": "upload", + "status": "completed", + "created_at": "2026-06-24T11:50:42.761134+00:00", + "started_at": "2026-06-24T14:27:15.374105+00:00", + "completed_at": "2026-06-24T14:30:00.077877+00:00", + "exit_code": 0, + "error": null, + "port": "OTA", + "new_name": "", + "depends_on": "3434cba94e0a", + "dependency_released": true, + "progress": 100, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "3434cba94e0a", + "configuration": "esp-entmulti.yaml", + "job_type": "compile", + "status": "completed", + "created_at": "2026-06-24T11:50:42.761100+00:00", + "started_at": "2026-06-24T14:21:34.999025+00:00", + "completed_at": "2026-06-24T14:27:15.372011+00:00", + "exit_code": 0, + "error": null, + "port": "", + "new_name": "", + "depends_on": "", + "dependency_released": false, + "progress": null, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "ff244f220584", + "configuration": "esp-officeusbhubpower.yaml", + "job_type": "upload", + "status": "completed", + "created_at": "2026-06-24T11:50:26.904336+00:00", + "started_at": "2026-06-24T14:21:34.990710+00:00", + "completed_at": "2026-06-24T14:21:47.199113+00:00", + "exit_code": 0, + "error": null, + "port": "OTA", + "new_name": "", + "depends_on": "7e346e30ea89", + "dependency_released": true, + "progress": 100, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "7e346e30ea89", + "configuration": "esp-officeusbhubpower.yaml", + "job_type": "compile", + "status": "completed", + "created_at": "2026-06-24T11:50:26.904301+00:00", + "started_at": "2026-06-24T14:18:28.824836+00:00", + "completed_at": "2026-06-24T14:21:34.989852+00:00", + "exit_code": 0, + "error": null, + "port": "", + "new_name": "", + "depends_on": "", + "dependency_released": false, + "progress": null, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "51cb8f902478", + "configuration": "esp-occupancyoffice.yaml", + "job_type": "upload", + "status": "completed", + "created_at": "2026-06-24T11:50:22.247734+00:00", + "started_at": "2026-06-24T14:18:28.811710+00:00", + "completed_at": "2026-06-24T14:18:41.791746+00:00", + "exit_code": 0, + "error": null, + "port": "OTA", + "new_name": "", + "depends_on": "fa72d887a3cf", + "dependency_released": true, + "progress": 100, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "fa72d887a3cf", + "configuration": "esp-occupancyoffice.yaml", + "job_type": "compile", + "status": "completed", + "created_at": "2026-06-24T11:50:22.247700+00:00", + "started_at": "2026-06-24T14:12:11.783583+00:00", + "completed_at": "2026-06-24T14:18:28.810708+00:00", + "exit_code": 0, + "error": null, + "port": "", + "new_name": "", + "depends_on": "", + "dependency_released": false, + "progress": null, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "638a53e6dd3f", + "configuration": "esp-officelights.yaml", + "job_type": "upload", + "status": "completed", + "created_at": "2026-06-24T11:50:18.631210+00:00", + "started_at": "2026-06-24T14:12:11.776002+00:00", + "completed_at": "2026-06-24T14:12:19.828397+00:00", + "exit_code": 0, + "error": null, + "port": "OTA", + "new_name": "", + "depends_on": "669b205142e0", + "dependency_released": true, + "progress": 100, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "669b205142e0", + "configuration": "esp-officelights.yaml", + "job_type": "compile", + "status": "completed", + "created_at": "2026-06-24T11:50:18.631172+00:00", + "started_at": "2026-06-24T14:09:02.649916+00:00", + "completed_at": "2026-06-24T14:12:11.775011+00:00", + "exit_code": 0, + "error": null, + "port": "", + "new_name": "", + "depends_on": "", + "dependency_released": false, + "progress": null, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "6e123487e7fc", + "configuration": "esp-officedeskrightgpo.yaml", + "job_type": "upload", + "status": "completed", + "created_at": "2026-06-24T11:50:13.994641+00:00", + "started_at": "2026-06-24T14:09:02.642760+00:00", + "completed_at": "2026-06-24T14:09:15.750170+00:00", + "exit_code": 0, + "error": null, + "port": "OTA", + "new_name": "", + "depends_on": "5c6b973887d0", + "dependency_released": true, + "progress": 100, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "5c6b973887d0", + "configuration": "esp-officedeskrightgpo.yaml", + "job_type": "compile", + "status": "completed", + "created_at": "2026-06-24T11:50:13.994509+00:00", + "started_at": "2026-06-24T14:05:54.253995+00:00", + "completed_at": "2026-06-24T14:09:02.640657+00:00", + "exit_code": 0, + "error": null, + "port": "", + "new_name": "", + "depends_on": "", + "dependency_released": false, + "progress": null, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "642ccb45d63b", + "configuration": "esp-officeelvcontrol.yaml", + "job_type": "upload", + "status": "completed", + "created_at": "2026-06-24T11:50:07.540401+00:00", + "started_at": "2026-06-24T14:05:54.233854+00:00", + "completed_at": "2026-06-24T14:06:08.921514+00:00", + "exit_code": 0, + "error": null, + "port": "OTA", + "new_name": "", + "depends_on": "5e627eee72b0", + "dependency_released": true, + "progress": 100, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "5e627eee72b0", + "configuration": "esp-officeelvcontrol.yaml", + "job_type": "compile", + "status": "completed", + "created_at": "2026-06-24T11:50:07.540367+00:00", + "started_at": "2026-06-24T14:02:46.121117+00:00", + "completed_at": "2026-06-24T14:05:54.232948+00:00", + "exit_code": 0, + "error": null, + "port": "", + "new_name": "", + "depends_on": "", + "dependency_released": false, + "progress": null, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "daa922805adb", + "configuration": "esp-officeduallights.yaml", + "job_type": "upload", + "status": "completed", + "created_at": "2026-06-24T11:50:01.282558+00:00", + "started_at": "2026-06-24T14:02:46.113929+00:00", + "completed_at": "2026-06-24T14:02:57.254223+00:00", + "exit_code": 0, + "error": null, + "port": "OTA", + "new_name": "", + "depends_on": "fa27bcc02d8c", + "dependency_released": true, + "progress": 100, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "fa27bcc02d8c", + "configuration": "esp-officeduallights.yaml", + "job_type": "compile", + "status": "completed", + "created_at": "2026-06-24T11:50:01.282519+00:00", + "started_at": "2026-06-24T13:59:33.072305+00:00", + "completed_at": "2026-06-24T14:02:46.113099+00:00", + "exit_code": 0, + "error": null, + "port": "", + "new_name": "", + "depends_on": "", + "dependency_released": false, + "progress": null, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "886301c4b21b", + "configuration": "esp-masterbathtowelrail.yaml", + "job_type": "upload", + "status": "completed", + "created_at": "2026-06-24T11:49:37.943961+00:00", + "started_at": "2026-06-24T13:59:33.020120+00:00", + "completed_at": "2026-06-24T13:59:51.252411+00:00", + "exit_code": 0, + "error": null, + "port": "OTA", + "new_name": "", + "depends_on": "a49c3e42cb3c", + "dependency_released": true, + "progress": 100, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "a49c3e42cb3c", + "configuration": "esp-masterbathtowelrail.yaml", + "job_type": "compile", + "status": "completed", + "created_at": "2026-06-24T11:49:37.943926+00:00", + "started_at": "2026-06-24T13:56:14.372922+00:00", + "completed_at": "2026-06-24T13:59:33.019311+00:00", + "exit_code": 0, + "error": null, + "port": "", + "new_name": "", + "depends_on": "", + "dependency_released": false, + "progress": null, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "666f0ddea83d", + "configuration": "esp-mainkitchenlights.yaml", + "job_type": "upload", + "status": "completed", + "created_at": "2026-06-24T11:49:31.568783+00:00", + "started_at": "2026-06-24T13:56:14.334876+00:00", + "completed_at": "2026-06-24T13:56:23.433489+00:00", + "exit_code": 0, + "error": null, + "port": "OTA", + "new_name": "", + "depends_on": "cf2d048802a7", + "dependency_released": true, + "progress": 100, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "cf2d048802a7", + "configuration": "esp-mainkitchenlights.yaml", + "job_type": "compile", + "status": "completed", + "created_at": "2026-06-24T11:49:31.568748+00:00", + "started_at": "2026-06-24T13:53:08.883287+00:00", + "completed_at": "2026-06-24T13:56:14.334094+00:00", + "exit_code": 0, + "error": null, + "port": "", + "new_name": "", + "depends_on": "", + "dependency_released": false, + "progress": null, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "3a39ea77d86c", + "configuration": "esp-mainpowermonitor.yaml", + "job_type": "upload", + "status": "completed", + "created_at": "2026-06-24T11:49:23.606288+00:00", + "started_at": "2026-06-24T13:53:08.865618+00:00", + "completed_at": "2026-06-24T13:53:19.995693+00:00", + "exit_code": 0, + "error": null, + "port": "OTA", + "new_name": "", + "depends_on": "7c3b20707daf", + "dependency_released": true, + "progress": 100, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "7c3b20707daf", + "configuration": "esp-mainpowermonitor.yaml", + "job_type": "compile", + "status": "completed", + "created_at": "2026-06-24T11:49:23.606253+00:00", + "started_at": "2026-06-24T13:49:57.766858+00:00", + "completed_at": "2026-06-24T13:53:08.862536+00:00", + "exit_code": 0, + "error": null, + "port": "", + "new_name": "", + "depends_on": "", + "dependency_released": false, + "progress": null, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "afea0839995d", + "configuration": "esp-mainhallwaynorthlightswitch.yaml", + "job_type": "upload", + "status": "completed", + "created_at": "2026-06-24T11:49:19.961424+00:00", + "started_at": "2026-06-24T13:49:57.725897+00:00", + "completed_at": "2026-06-24T13:50:08.731599+00:00", + "exit_code": 0, + "error": null, + "port": "OTA", + "new_name": "", + "depends_on": "fb2291fee6b7", + "dependency_released": true, + "progress": 100, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "fb2291fee6b7", + "configuration": "esp-mainhallwaynorthlightswitch.yaml", + "job_type": "compile", + "status": "completed", + "created_at": "2026-06-24T11:49:19.961388+00:00", + "started_at": "2026-06-24T13:46:54.513145+00:00", + "completed_at": "2026-06-24T13:49:57.725139+00:00", + "exit_code": 0, + "error": null, + "port": "", + "new_name": "", + "depends_on": "", + "dependency_released": false, + "progress": null, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "f30bfc04fd38", + "configuration": "esp-mainhallwaynightlights.yaml", + "job_type": "upload", + "status": "completed", + "created_at": "2026-06-24T11:49:15.113164+00:00", + "started_at": "2026-06-24T13:46:54.483217+00:00", + "completed_at": "2026-06-24T13:47:18.412770+00:00", + "exit_code": 0, + "error": null, + "port": "OTA", + "new_name": "", + "depends_on": "af9f15ce746f", + "dependency_released": true, + "progress": 100, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "af9f15ce746f", + "configuration": "esp-mainhallwaynightlights.yaml", + "job_type": "compile", + "status": "completed", + "created_at": "2026-06-24T11:49:15.113124+00:00", + "started_at": "2026-06-24T13:43:17.344179+00:00", + "completed_at": "2026-06-24T13:46:54.482437+00:00", + "exit_code": 0, + "error": null, + "port": "", + "new_name": "", + "depends_on": "", + "dependency_released": false, + "progress": null, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "efbe53e29d59", + "configuration": "esp-mainhallwaymainlights.yaml", + "job_type": "upload", + "status": "completed", + "created_at": "2026-06-24T11:49:11.513335+00:00", + "started_at": "2026-06-24T13:43:17.334665+00:00", + "completed_at": "2026-06-24T13:43:27.002965+00:00", + "exit_code": 0, + "error": null, + "port": "OTA", + "new_name": "", + "depends_on": "d0f177e01e51", + "dependency_released": true, + "progress": 100, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "d0f177e01e51", + "configuration": "esp-mainhallwaymainlights.yaml", + "job_type": "compile", + "status": "completed", + "created_at": "2026-06-24T11:49:11.513301+00:00", + "started_at": "2026-06-24T13:40:10.263119+00:00", + "completed_at": "2026-06-24T13:43:17.331953+00:00", + "exit_code": 0, + "error": null, + "port": "", + "new_name": "", + "depends_on": "", + "dependency_released": false, + "progress": null, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "4c142d0c46a9", + "configuration": "esp-entrancelightswitch.yaml", + "job_type": "upload", + "status": "completed", + "created_at": "2026-06-24T11:49:06.648781+00:00", + "started_at": "2026-06-24T13:40:10.250472+00:00", + "completed_at": "2026-06-24T13:40:20.003846+00:00", + "exit_code": 0, + "error": null, + "port": "OTA", + "new_name": "", + "depends_on": "f6206629651f", + "dependency_released": true, + "progress": 100, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "f6206629651f", + "configuration": "esp-entrancelightswitch.yaml", + "job_type": "compile", + "status": "completed", + "created_at": "2026-06-24T11:49:06.648746+00:00", + "started_at": "2026-06-24T13:37:05.295209+00:00", + "completed_at": "2026-06-24T13:40:10.246833+00:00", + "exit_code": 0, + "error": null, + "port": "", + "new_name": "", + "depends_on": "", + "dependency_released": false, + "progress": null, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "e541b63a4c67", + "configuration": "esp-maindishwasherpower.yaml", + "job_type": "upload", + "status": "completed", + "created_at": "2026-06-24T11:49:01.951396+00:00", + "started_at": "2026-06-24T13:37:05.288376+00:00", + "completed_at": "2026-06-24T13:37:48.424049+00:00", + "exit_code": 0, + "error": null, + "port": "OTA", + "new_name": "", + "depends_on": "4b02591939f6", + "dependency_released": true, + "progress": 100, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "4b02591939f6", + "configuration": "esp-maindishwasherpower.yaml", + "job_type": "compile", + "status": "completed", + "created_at": "2026-06-24T11:49:01.951356+00:00", + "started_at": "2026-06-24T13:30:29.664317+00:00", + "completed_at": "2026-06-24T13:37:05.284076+00:00", + "exit_code": 0, + "error": null, + "port": "", + "new_name": "", + "depends_on": "", + "dependency_released": false, + "progress": null, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "4b66b89852da", + "configuration": "esp-mainbathroomlights.yaml", + "job_type": "upload", + "status": "completed", + "created_at": "2026-06-24T11:48:58.347725+00:00", + "started_at": "2026-06-24T13:30:29.652561+00:00", + "completed_at": "2026-06-24T13:30:53.462265+00:00", + "exit_code": 0, + "error": null, + "port": "OTA", + "new_name": "", + "depends_on": "88f8d1f0da59", + "dependency_released": true, + "progress": 100, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "88f8d1f0da59", + "configuration": "esp-mainbathroomlights.yaml", + "job_type": "compile", + "status": "completed", + "created_at": "2026-06-24T11:48:58.347690+00:00", + "started_at": "2026-06-24T13:26:55.976678+00:00", + "completed_at": "2026-06-24T13:30:29.650902+00:00", + "exit_code": 0, + "error": null, + "port": "", + "new_name": "", + "depends_on": "", + "dependency_released": false, + "progress": null, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "4913c365f088", + "configuration": "esp-mainbathfancombo.yaml", + "job_type": "upload", + "status": "completed", + "created_at": "2026-06-24T11:48:54.824960+00:00", + "started_at": "2026-06-24T13:26:55.864353+00:00", + "completed_at": "2026-06-24T13:27:08.551827+00:00", + "exit_code": 0, + "error": null, + "port": "OTA", + "new_name": "", + "depends_on": "6f92a48d7013", + "dependency_released": true, + "progress": 100, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "6f92a48d7013", + "configuration": "esp-mainbathfancombo.yaml", + "job_type": "compile", + "status": "completed", + "created_at": "2026-06-24T11:48:54.824925+00:00", + "started_at": "2026-06-24T13:23:52.117690+00:00", + "completed_at": "2026-06-24T13:26:55.863523+00:00", + "exit_code": 0, + "error": null, + "port": "", + "new_name": "", + "depends_on": "", + "dependency_released": false, + "progress": null, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "9a607d0c2960", + "configuration": "esp-loungewestswitch.yaml", + "job_type": "upload", + "status": "completed", + "created_at": "2026-06-24T11:48:48.151596+00:00", + "started_at": "2026-06-24T13:23:52.085362+00:00", + "completed_at": "2026-06-24T13:24:01.860495+00:00", + "exit_code": 0, + "error": null, + "port": "OTA", + "new_name": "", + "depends_on": "fbf9a2d0d0d7", + "dependency_released": true, + "progress": 100, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "fbf9a2d0d0d7", + "configuration": "esp-loungewestswitch.yaml", + "job_type": "compile", + "status": "completed", + "created_at": "2026-06-24T11:48:48.151558+00:00", + "started_at": "2026-06-24T13:20:46.872413+00:00", + "completed_at": "2026-06-24T13:23:52.084235+00:00", + "exit_code": 0, + "error": null, + "port": "", + "new_name": "", + "depends_on": "", + "dependency_released": false, + "progress": null, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "922373607271", + "configuration": "esp-loungesouthrightswitch.yaml", + "job_type": "upload", + "status": "failed", + "created_at": "2026-06-24T11:48:44.080586+00:00", + "started_at": "2026-06-24T13:20:46.865921+00:00", + "completed_at": "2026-06-24T13:20:51.152578+00:00", + "exit_code": 1, + "error": null, + "port": "OTA", + "new_name": "", + "depends_on": "d5db2045db77", + "dependency_released": true, + "progress": null, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "d5db2045db77", + "configuration": "esp-loungesouthrightswitch.yaml", + "job_type": "compile", + "status": "completed", + "created_at": "2026-06-24T11:48:44.080539+00:00", + "started_at": "2026-06-24T13:17:41.934502+00:00", + "completed_at": "2026-06-24T13:20:46.865208+00:00", + "exit_code": 0, + "error": null, + "port": "", + "new_name": "", + "depends_on": "", + "dependency_released": false, + "progress": null, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "282c7cdf96ca", + "configuration": "esp-loungesouthleftswitch.yaml", + "job_type": "upload", + "status": "completed", + "created_at": "2026-06-24T11:48:34.182203+00:00", + "started_at": "2026-06-24T13:17:41.924878+00:00", + "completed_at": "2026-06-24T13:17:50.823657+00:00", + "exit_code": 0, + "error": null, + "port": "OTA", + "new_name": "", + "depends_on": "2a5226ea5609", + "dependency_released": true, + "progress": 100, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "2a5226ea5609", + "configuration": "esp-loungesouthleftswitch.yaml", + "job_type": "compile", + "status": "completed", + "created_at": "2026-06-24T11:48:34.182167+00:00", + "started_at": "2026-06-24T13:14:33.437417+00:00", + "completed_at": "2026-06-24T13:17:41.923902+00:00", + "exit_code": 0, + "error": null, + "port": "", + "new_name": "", + "depends_on": "", + "dependency_released": false, + "progress": null, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "8762e1f19bb2", + "configuration": "esp-loungepelmetleds2.yaml", + "job_type": "upload", + "status": "completed", + "created_at": "2026-06-24T11:48:29.562797+00:00", + "started_at": "2026-06-24T13:14:33.432878+00:00", + "completed_at": "2026-06-24T13:14:39.783888+00:00", + "exit_code": 0, + "error": null, + "port": "OTA", + "new_name": "", + "depends_on": "fda47155414b", + "dependency_released": true, + "progress": 100, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "fda47155414b", + "configuration": "esp-loungepelmetleds2.yaml", + "job_type": "compile", + "status": "completed", + "created_at": "2026-06-24T11:48:29.562756+00:00", + "started_at": "2026-06-24T13:12:00.119914+00:00", + "completed_at": "2026-06-24T13:14:33.429361+00:00", + "exit_code": 0, + "error": null, + "port": "", + "new_name": "", + "depends_on": "", + "dependency_released": false, + "progress": null, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "d47a37beda78", + "configuration": "esp-nspanel2lounge.yaml", + "job_type": "upload", + "status": "completed", + "created_at": "2026-06-24T11:48:26.017079+00:00", + "started_at": "2026-06-24T13:12:00.108490+00:00", + "completed_at": "2026-06-24T13:12:16.563464+00:00", + "exit_code": 0, + "error": null, + "port": "OTA", + "new_name": "", + "depends_on": "6b1dadb7e32f", + "dependency_released": true, + "progress": 100, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "6b1dadb7e32f", + "configuration": "esp-nspanel2lounge.yaml", + "job_type": "compile", + "status": "completed", + "created_at": "2026-06-24T11:48:26.017047+00:00", + "started_at": "2026-06-24T13:06:26.503951+00:00", + "completed_at": "2026-06-24T13:12:00.107474+00:00", + "exit_code": 0, + "error": null, + "port": "", + "new_name": "", + "depends_on": "", + "dependency_released": false, + "progress": null, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "762e61133aa3", + "configuration": "esp-loungenorthswitch.yaml", + "job_type": "upload", + "status": "completed", + "created_at": "2026-06-24T11:48:21.565814+00:00", + "started_at": "2026-06-24T13:06:26.486919+00:00", + "completed_at": "2026-06-24T13:06:36.118156+00:00", + "exit_code": 0, + "error": null, + "port": "OTA", + "new_name": "", + "depends_on": "e5c661348557", + "dependency_released": true, + "progress": 100, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "e5c661348557", + "configuration": "esp-loungenorthswitch.yaml", + "job_type": "compile", + "status": "completed", + "created_at": "2026-06-24T11:48:21.565778+00:00", + "started_at": "2026-06-24T13:03:14.390671+00:00", + "completed_at": "2026-06-24T13:06:26.486073+00:00", + "exit_code": 0, + "error": null, + "port": "", + "new_name": "", + "depends_on": "", + "dependency_released": false, + "progress": null, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "aecda9b80725", + "configuration": "esp-loungeenvironment.yaml", + "job_type": "upload", + "status": "completed", + "created_at": "2026-06-24T11:48:16.902742+00:00", + "started_at": "2026-06-24T13:03:14.379936+00:00", + "completed_at": "2026-06-24T13:03:32.613265+00:00", + "exit_code": 0, + "error": null, + "port": "OTA", + "new_name": "", + "depends_on": "12b579662735", + "dependency_released": true, + "progress": 100, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "12b579662735", + "configuration": "esp-loungeenvironment.yaml", + "job_type": "compile", + "status": "completed", + "created_at": "2026-06-24T11:48:16.902703+00:00", + "started_at": "2026-06-24T12:57:43.789960+00:00", + "completed_at": "2026-06-24T13:03:14.377278+00:00", + "exit_code": 0, + "error": null, + "port": "", + "new_name": "", + "depends_on": "", + "dependency_released": false, + "progress": null, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "d2d3b330e2d6", + "configuration": "esp-loungecabinetleds.yaml", + "job_type": "upload", + "status": "completed", + "created_at": "2026-06-24T11:48:06.677575+00:00", + "started_at": "2026-06-24T12:57:43.781432+00:00", + "completed_at": "2026-06-24T12:57:52.144522+00:00", + "exit_code": 0, + "error": null, + "port": "OTA", + "new_name": "", + "depends_on": "9bf3f1ea0c1b", + "dependency_released": true, + "progress": 100, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "9bf3f1ea0c1b", + "configuration": "esp-loungecabinetleds.yaml", + "job_type": "compile", + "status": "completed", + "created_at": "2026-06-24T11:48:06.677539+00:00", + "started_at": "2026-06-24T12:54:25.676460+00:00", + "completed_at": "2026-06-24T12:57:43.777736+00:00", + "exit_code": 0, + "error": null, + "port": "", + "new_name": "", + "depends_on": "", + "dependency_released": false, + "progress": null, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "ecb7fbae380d", + "configuration": "esp-loungebookshelfleds.yaml", + "job_type": "upload", + "status": "completed", + "created_at": "2026-06-24T11:48:01.942230+00:00", + "started_at": "2026-06-24T12:54:25.659385+00:00", + "completed_at": "2026-06-24T12:54:36.106800+00:00", + "exit_code": 0, + "error": null, + "port": "OTA", + "new_name": "", + "depends_on": "139efa28f4cf", + "dependency_released": true, + "progress": 100, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "139efa28f4cf", + "configuration": "esp-loungebookshelfleds.yaml", + "job_type": "compile", + "status": "completed", + "created_at": "2026-06-24T11:48:01.942189+00:00", + "started_at": "2026-06-24T12:50:56.804405+00:00", + "completed_at": "2026-06-24T12:54:25.658460+00:00", + "exit_code": 0, + "error": null, + "port": "", + "new_name": "", + "depends_on": "", + "dependency_released": false, + "progress": null, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "6b7ad893bea2", + "configuration": "esp-ledmatrix1.yaml", + "job_type": "upload", + "status": "completed", + "created_at": "2026-06-24T11:47:58.041742+00:00", + "started_at": "2026-06-24T12:50:56.795757+00:00", + "completed_at": "2026-06-24T12:51:19.380365+00:00", + "exit_code": 0, + "error": null, + "port": "OTA", + "new_name": "", + "depends_on": "1c6f7a8eac07", + "dependency_released": true, + "progress": 100, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "1c6f7a8eac07", + "configuration": "esp-ledmatrix1.yaml", + "job_type": "compile", + "status": "completed", + "created_at": "2026-06-24T11:47:58.041707+00:00", + "started_at": "2026-06-24T12:44:35.893753+00:00", + "completed_at": "2026-06-24T12:50:56.794943+00:00", + "exit_code": 0, + "error": null, + "port": "", + "new_name": "", + "depends_on": "", + "dependency_released": false, + "progress": null, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "85284f418303", + "configuration": "esp-laundrywashpow.yaml", + "job_type": "upload", + "status": "completed", + "created_at": "2026-06-24T11:47:54.264858+00:00", + "started_at": "2026-06-24T12:44:35.885070+00:00", + "completed_at": "2026-06-24T12:44:46.649477+00:00", + "exit_code": 0, + "error": null, + "port": "OTA", + "new_name": "", + "depends_on": "79f39244030a", + "dependency_released": true, + "progress": 100, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "79f39244030a", + "configuration": "esp-laundrywashpow.yaml", + "job_type": "compile", + "status": "completed", + "created_at": "2026-06-24T11:47:54.264817+00:00", + "started_at": "2026-06-24T12:41:06.052163+00:00", + "completed_at": "2026-06-24T12:44:35.884284+00:00", + "exit_code": 0, + "error": null, + "port": "", + "new_name": "", + "depends_on": "", + "dependency_released": false, + "progress": null, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "b91948d49474", + "configuration": "esp-laundrylights.yaml", + "job_type": "upload", + "status": "completed", + "created_at": "2026-06-24T11:47:50.317968+00:00", + "started_at": "2026-06-24T12:41:06.045398+00:00", + "completed_at": "2026-06-24T12:41:18.031668+00:00", + "exit_code": 0, + "error": null, + "port": "OTA", + "new_name": "", + "depends_on": "d07f330e4582", + "dependency_released": true, + "progress": 100, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "d07f330e4582", + "configuration": "esp-laundrylights.yaml", + "job_type": "compile", + "status": "completed", + "created_at": "2026-06-24T11:47:50.317934+00:00", + "started_at": "2026-06-24T12:37:59.664843+00:00", + "completed_at": "2026-06-24T12:41:06.044558+00:00", + "exit_code": 0, + "error": null, + "port": "", + "new_name": "", + "depends_on": "", + "dependency_released": false, + "progress": null, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "a0f78a0df422", + "configuration": "esp-laundryenv.yaml", + "job_type": "upload", + "status": "completed", + "created_at": "2026-06-24T11:47:43.409097+00:00", + "started_at": "2026-06-24T12:37:59.646931+00:00", + "completed_at": "2026-06-24T12:38:09.577783+00:00", + "exit_code": 0, + "error": null, + "port": "OTA", + "new_name": "", + "depends_on": "065cad4276c7", + "dependency_released": true, + "progress": 100, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "065cad4276c7", + "configuration": "esp-laundryenv.yaml", + "job_type": "compile", + "status": "completed", + "created_at": "2026-06-24T11:47:43.409061+00:00", + "started_at": "2026-06-24T12:34:56.082119+00:00", + "completed_at": "2026-06-24T12:37:59.645508+00:00", + "exit_code": 0, + "error": null, + "port": "", + "new_name": "", + "depends_on": "", + "dependency_released": false, + "progress": null, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "440172dc7468", + "configuration": "esp-laundrydrypow.yaml", + "job_type": "upload", + "status": "completed", + "created_at": "2026-06-24T11:47:39.573369+00:00", + "started_at": "2026-06-24T12:34:56.070866+00:00", + "completed_at": "2026-06-24T12:35:07.236118+00:00", + "exit_code": 0, + "error": null, + "port": "OTA", + "new_name": "", + "depends_on": "ac668456639c", + "dependency_released": true, + "progress": 100, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "ac668456639c", + "configuration": "esp-laundrydrypow.yaml", + "job_type": "compile", + "status": "completed", + "created_at": "2026-06-24T11:47:39.573323+00:00", + "started_at": "2026-06-24T12:31:29.677109+00:00", + "completed_at": "2026-06-24T12:34:56.066961+00:00", + "exit_code": 0, + "error": null, + "port": "", + "new_name": "", + "depends_on": "", + "dependency_released": false, + "progress": null, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "33798c73cf2c", + "configuration": "esp-laundryplugpow.yaml", + "job_type": "upload", + "status": "completed", + "created_at": "2026-06-24T11:47:36.179864+00:00", + "started_at": "2026-06-24T12:31:29.669766+00:00", + "completed_at": "2026-06-24T12:31:39.780686+00:00", + "exit_code": 0, + "error": null, + "port": "OTA", + "new_name": "", + "depends_on": "4125f3fcdb4d", + "dependency_released": true, + "progress": 100, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "4125f3fcdb4d", + "configuration": "esp-laundryplugpow.yaml", + "job_type": "compile", + "status": "completed", + "created_at": "2026-06-24T11:47:36.179828+00:00", + "started_at": "2026-06-24T12:27:53.334522+00:00", + "completed_at": "2026-06-24T12:31:29.668823+00:00", + "exit_code": 0, + "error": null, + "port": "", + "new_name": "", + "depends_on": "", + "dependency_released": false, + "progress": null, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "78da318f0029", + "configuration": "esp-garagelights.yaml", + "job_type": "upload", + "status": "completed", + "created_at": "2026-06-24T11:47:31.918721+00:00", + "started_at": "2026-06-24T12:27:53.327805+00:00", + "completed_at": "2026-06-24T12:28:05.606224+00:00", + "exit_code": 0, + "error": null, + "port": "OTA", + "new_name": "", + "depends_on": "48eb5fb2e8b8", + "dependency_released": true, + "progress": 100, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "48eb5fb2e8b8", + "configuration": "esp-garagelights.yaml", + "job_type": "compile", + "status": "completed", + "created_at": "2026-06-24T11:47:31.918683+00:00", + "started_at": "2026-06-24T12:24:46.286660+00:00", + "completed_at": "2026-06-24T12:27:53.325167+00:00", + "exit_code": 0, + "error": null, + "port": "", + "new_name": "", + "depends_on": "", + "dependency_released": false, + "progress": null, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "29fc5aee6a81", + "configuration": "esp-garageextcornerlight.yaml", + "job_type": "upload", + "status": "completed", + "created_at": "2026-06-24T11:47:28.042637+00:00", + "started_at": "2026-06-24T12:24:46.281700+00:00", + "completed_at": "2026-06-24T12:24:57.954485+00:00", + "exit_code": 0, + "error": null, + "port": "OTA", + "new_name": "", + "depends_on": "d8fe298d0c40", + "dependency_released": true, + "progress": 100, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "d8fe298d0c40", + "configuration": "esp-garageextcornerlight.yaml", + "job_type": "compile", + "status": "completed", + "created_at": "2026-06-24T11:47:28.042604+00:00", + "started_at": "2026-06-24T12:21:33.286542+00:00", + "completed_at": "2026-06-24T12:24:46.272915+00:00", + "exit_code": 0, + "error": null, + "port": "", + "new_name": "", + "depends_on": "", + "dependency_released": false, + "progress": null, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "38f95f64be26", + "configuration": "esp-garageentrylights.yaml", + "job_type": "upload", + "status": "completed", + "created_at": "2026-06-24T11:47:20.272166+00:00", + "started_at": "2026-06-24T12:21:33.280890+00:00", + "completed_at": "2026-06-24T12:21:51.738028+00:00", + "exit_code": 0, + "error": null, + "port": "OTA", + "new_name": "", + "depends_on": "4ec02a1f56e1", + "dependency_released": true, + "progress": 100, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "4ec02a1f56e1", + "configuration": "esp-garageentrylights.yaml", + "job_type": "compile", + "status": "completed", + "created_at": "2026-06-24T11:47:20.272127+00:00", + "started_at": "2026-06-24T12:17:50.130204+00:00", + "completed_at": "2026-06-24T12:21:33.275224+00:00", + "exit_code": 0, + "error": null, + "port": "", + "new_name": "", + "depends_on": "", + "dependency_released": false, + "progress": null, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "e6e516c0fbba", + "configuration": "esp-garagebtproxy.yaml", + "job_type": "upload", + "status": "completed", + "created_at": "2026-06-24T11:47:14.725551+00:00", + "started_at": "2026-06-24T12:17:50.111942+00:00", + "completed_at": "2026-06-24T12:18:05.471774+00:00", + "exit_code": 0, + "error": null, + "port": "OTA", + "new_name": "", + "depends_on": "df1dde74008a", + "dependency_released": true, + "progress": 100, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "df1dde74008a", + "configuration": "esp-garagebtproxy.yaml", + "job_type": "compile", + "status": "completed", + "created_at": "2026-06-24T11:47:14.725515+00:00", + "started_at": "2026-06-24T12:11:23.272923+00:00", + "completed_at": "2026-06-24T12:17:50.110871+00:00", + "exit_code": 0, + "error": null, + "port": "", + "new_name": "", + "depends_on": "", + "dependency_released": false, + "progress": null, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "44696359daf9", + "configuration": "esp-garagedbcontrols.yaml", + "job_type": "upload", + "status": "completed", + "created_at": "2026-06-24T11:47:05.840247+00:00", + "started_at": "2026-06-24T12:11:23.264722+00:00", + "completed_at": "2026-06-24T12:11:40.398882+00:00", + "exit_code": 0, + "error": null, + "port": "OTA", + "new_name": "", + "depends_on": "2b7bc4d12293", + "dependency_released": true, + "progress": 100, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "2b7bc4d12293", + "configuration": "esp-garagedbcontrols.yaml", + "job_type": "compile", + "status": "completed", + "created_at": "2026-06-24T11:47:05.840213+00:00", + "started_at": "2026-06-24T12:07:59.216092+00:00", + "completed_at": "2026-06-24T12:11:23.262789+00:00", + "exit_code": 0, + "error": null, + "port": "", + "new_name": "", + "depends_on": "", + "dependency_released": false, + "progress": null, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "04d599695edf", + "configuration": "esp-entranceoutsideledlights.yaml", + "job_type": "upload", + "status": "completed", + "created_at": "2026-06-24T11:47:02.335395+00:00", + "started_at": "2026-06-24T12:07:59.215593+00:00", + "completed_at": "2026-06-24T12:08:09.865560+00:00", + "exit_code": 0, + "error": null, + "port": "OTA", + "new_name": "", + "depends_on": "6f51f54884ef", + "dependency_released": true, + "progress": 100, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "6f51f54884ef", + "configuration": "esp-entranceoutsideledlights.yaml", + "job_type": "compile", + "status": "completed", + "created_at": "2026-06-24T11:47:02.335352+00:00", + "started_at": "2026-06-24T12:04:15.409100+00:00", + "completed_at": "2026-06-24T12:07:59.205973+00:00", + "exit_code": 0, + "error": null, + "port": "", + "new_name": "", + "depends_on": "", + "dependency_released": false, + "progress": null, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "0943b35ac141", + "configuration": "esp-flysprayer1.yaml", + "job_type": "upload", + "status": "completed", + "created_at": "2026-06-24T11:46:56.500037+00:00", + "started_at": "2026-06-24T12:04:15.404021+00:00", + "completed_at": "2026-06-24T12:04:27.154469+00:00", + "exit_code": 0, + "error": null, + "port": "OTA", + "new_name": "", + "depends_on": "7e6b0407152d", + "dependency_released": true, + "progress": 100, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "7e6b0407152d", + "configuration": "esp-flysprayer1.yaml", + "job_type": "compile", + "status": "completed", + "created_at": "2026-06-24T11:46:56.500001+00:00", + "started_at": "2026-06-24T12:00:27.313340+00:00", + "completed_at": "2026-06-24T12:04:15.400840+00:00", + "exit_code": 0, + "error": null, + "port": "", + "new_name": "", + "depends_on": "", + "dependency_released": false, + "progress": null, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "05fe953ff669", + "configuration": "esp-datacupboardfans.yaml", + "job_type": "upload", + "status": "completed", + "created_at": "2026-06-24T11:46:36.866914+00:00", + "started_at": "2026-06-24T12:00:27.305534+00:00", + "completed_at": "2026-06-24T12:00:34.502981+00:00", + "exit_code": 0, + "error": null, + "port": "OTA", + "new_name": "", + "depends_on": "76b3825cd83a", + "dependency_released": true, + "progress": 100, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "76b3825cd83a", + "configuration": "esp-datacupboardfans.yaml", + "job_type": "compile", + "status": "completed", + "created_at": "2026-06-24T11:46:36.866877+00:00", + "started_at": "2026-06-24T11:56:49.211138+00:00", + "completed_at": "2026-06-24T12:00:27.303623+00:00", + "exit_code": 0, + "error": null, + "port": "", + "new_name": "", + "depends_on": "", + "dependency_released": false, + "progress": null, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "313b79efb9ae", + "configuration": "esp-centralstairs-top.yaml", + "job_type": "upload", + "status": "completed", + "created_at": "2026-06-24T11:46:31.032791+00:00", + "started_at": "2026-06-24T11:56:49.180324+00:00", + "completed_at": "2026-06-24T11:56:59.211826+00:00", + "exit_code": 0, + "error": null, + "port": "OTA", + "new_name": "", + "depends_on": "1553d32caf13", + "dependency_released": true, + "progress": 100, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "1553d32caf13", + "configuration": "esp-centralstairs-top.yaml", + "job_type": "compile", + "status": "completed", + "created_at": "2026-06-24T11:46:31.032752+00:00", + "started_at": "2026-06-24T11:53:26.950917+00:00", + "completed_at": "2026-06-24T11:56:49.178172+00:00", + "exit_code": 0, + "error": null, + "port": "", + "new_name": "", + "depends_on": "", + "dependency_released": false, + "progress": null, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "23a2ac0ba238", + "configuration": "esp-centralstairs-bottom.yaml", + "job_type": "upload", + "status": "completed", + "created_at": "2026-06-24T11:46:25.636327+00:00", + "started_at": "2026-06-24T11:53:26.942313+00:00", + "completed_at": "2026-06-24T11:53:35.541508+00:00", + "exit_code": 0, + "error": null, + "port": "OTA", + "new_name": "", + "depends_on": "5fa63cb048e0", + "dependency_released": true, + "progress": 100, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "5fa63cb048e0", + "configuration": "esp-centralstairs-bottom.yaml", + "job_type": "compile", + "status": "completed", + "created_at": "2026-06-24T11:46:25.636291+00:00", + "started_at": "2026-06-24T11:49:58.515206+00:00", + "completed_at": "2026-06-24T11:53:26.938680+00:00", + "exit_code": 0, + "error": null, + "port": "", + "new_name": "", + "depends_on": "", + "dependency_released": false, + "progress": null, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "c0441f500aba", + "configuration": "esp-breakfastbarleds.yaml", + "job_type": "upload", + "status": "completed", + "created_at": "2026-06-24T11:46:20.681040+00:00", + "started_at": "2026-06-24T11:49:58.512648+00:00", + "completed_at": "2026-06-24T11:50:09.188769+00:00", + "exit_code": 0, + "error": null, + "port": "OTA", + "new_name": "", + "depends_on": "3187da75fea4", + "dependency_released": true, + "progress": 100, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "3187da75fea4", + "configuration": "esp-breakfastbarleds.yaml", + "job_type": "compile", + "status": "completed", + "created_at": "2026-06-24T11:46:20.680999+00:00", + "started_at": "2026-06-24T11:46:20.681902+00:00", + "completed_at": "2026-06-24T11:49:58.505113+00:00", + "exit_code": 0, + "error": null, + "port": "", + "new_name": "", + "depends_on": "", + "dependency_released": false, + "progress": null, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "639845a1773f", + "configuration": "esp-datacupboardpower-right.yaml", + "job_type": "upload", + "status": "completed", + "created_at": "2026-06-24T11:13:49.710559+00:00", + "started_at": "2026-06-24T11:38:36.426784+00:00", + "completed_at": "2026-06-24T11:38:44.418253+00:00", + "exit_code": 0, + "error": null, + "port": "OTA", + "new_name": "", + "depends_on": "8a7b6cef6f2b", + "dependency_released": true, + "progress": 100, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "8a7b6cef6f2b", + "configuration": "esp-datacupboardpower-right.yaml", + "job_type": "compile", + "status": "completed", + "created_at": "2026-06-24T11:13:49.710521+00:00", + "started_at": "2026-06-24T11:35:05.238325+00:00", + "completed_at": "2026-06-24T11:38:36.424723+00:00", + "exit_code": 0, + "error": null, + "port": "", + "new_name": "", + "depends_on": "", + "dependency_released": false, + "progress": null, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "9e5cf4a7265e", + "configuration": "esp-datacupboardpower-left.yaml", + "job_type": "upload", + "status": "completed", + "created_at": "2026-06-24T11:13:45.110766+00:00", + "started_at": "2026-06-24T11:35:05.237413+00:00", + "completed_at": "2026-06-24T11:35:13.309250+00:00", + "exit_code": 0, + "error": null, + "port": "OTA", + "new_name": "", + "depends_on": "faa9c0ffec61", + "dependency_released": true, + "progress": 100, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "faa9c0ffec61", + "configuration": "esp-datacupboardpower-left.yaml", + "job_type": "compile", + "status": "completed", + "created_at": "2026-06-24T11:13:45.110727+00:00", + "started_at": "2026-06-24T11:31:39.910651+00:00", + "completed_at": "2026-06-24T11:35:05.231744+00:00", + "exit_code": 0, + "error": null, + "port": "", + "new_name": "", + "depends_on": "", + "dependency_released": false, + "progress": null, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "3cca3877dcc7", + "configuration": "esp-bedrm2fanswitch.yaml", + "job_type": "upload", + "status": "completed", + "created_at": "2026-06-24T11:10:25.652877+00:00", + "started_at": "2026-06-24T11:31:39.907294+00:00", + "completed_at": "2026-06-24T11:31:50.903714+00:00", + "exit_code": 0, + "error": null, + "port": "OTA", + "new_name": "", + "depends_on": "2adabd220e57", + "dependency_released": true, + "progress": 100, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "2adabd220e57", + "configuration": "esp-bedrm2fanswitch.yaml", + "job_type": "compile", + "status": "completed", + "created_at": "2026-06-24T11:10:25.652841+00:00", + "started_at": "2026-06-24T11:28:16.222765+00:00", + "completed_at": "2026-06-24T11:31:39.901914+00:00", + "exit_code": 0, + "error": null, + "port": "", + "new_name": "", + "depends_on": "", + "dependency_released": false, + "progress": null, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "003f10b44b95", + "configuration": "esp-bedrm2ceilingfan.yaml", + "job_type": "upload", + "status": "completed", + "created_at": "2026-06-24T11:10:20.419189+00:00", + "started_at": "2026-06-24T11:28:16.167504+00:00", + "completed_at": "2026-06-24T11:28:34.562896+00:00", + "exit_code": 0, + "error": null, + "port": "OTA", + "new_name": "", + "depends_on": "cf07cfcb7b55", + "dependency_released": true, + "progress": 100, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "cf07cfcb7b55", + "configuration": "esp-bedrm2ceilingfan.yaml", + "job_type": "compile", + "status": "completed", + "created_at": "2026-06-24T11:10:20.419149+00:00", + "started_at": "2026-06-24T11:24:29.734739+00:00", + "completed_at": "2026-06-24T11:28:16.161732+00:00", + "exit_code": 0, + "error": null, + "port": "", + "new_name": "", + "depends_on": "", + "dependency_released": false, + "progress": null, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "f053b649b4e4", + "configuration": "esp-bedrm1airfilter.yaml", + "job_type": "upload", + "status": "completed", + "created_at": "2026-06-24T11:10:09.997262+00:00", + "started_at": "2026-06-24T11:24:29.726369+00:00", + "completed_at": "2026-06-24T11:24:40.162683+00:00", + "exit_code": 0, + "error": null, + "port": "OTA", + "new_name": "", + "depends_on": "855efee6affc", + "dependency_released": true, + "progress": 100, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "855efee6affc", + "configuration": "esp-bedrm1airfilter.yaml", + "job_type": "compile", + "status": "completed", + "created_at": "2026-06-24T11:10:09.997219+00:00", + "started_at": "2026-06-24T11:20:56.586662+00:00", + "completed_at": "2026-06-24T11:24:29.724626+00:00", + "exit_code": 0, + "error": null, + "port": "", + "new_name": "", + "depends_on": "", + "dependency_released": false, + "progress": null, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "01a7af7cadbc", + "configuration": "esp-arcademachine1.yaml", + "job_type": "upload", + "status": "completed", + "created_at": "2026-06-24T11:10:05.002955+00:00", + "started_at": "2026-06-24T11:20:56.582567+00:00", + "completed_at": "2026-06-24T11:21:08.371061+00:00", + "exit_code": 0, + "error": null, + "port": "OTA", + "new_name": "", + "depends_on": "8303199b7ced", + "dependency_released": true, + "progress": 100, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "8303199b7ced", + "configuration": "esp-arcademachine1.yaml", + "job_type": "compile", + "status": "completed", + "created_at": "2026-06-24T11:10:05.002897+00:00", + "started_at": "2026-06-24T11:17:16.744945+00:00", + "completed_at": "2026-06-24T11:20:56.578496+00:00", + "exit_code": 0, + "error": null, + "port": "", + "new_name": "", + "depends_on": "", + "dependency_released": false, + "progress": null, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "539048ba629b", + "configuration": "esp-lounge6chdimmer.yaml", + "job_type": "upload", + "status": "completed", + "created_at": "2026-06-24T11:09:57.679920+00:00", + "started_at": "2026-06-24T11:17:16.740743+00:00", + "completed_at": "2026-06-24T11:17:25.826798+00:00", + "exit_code": 0, + "error": null, + "port": "OTA", + "new_name": "", + "depends_on": "58395c3dab36", + "dependency_released": true, + "progress": 100, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "58395c3dab36", + "configuration": "esp-lounge6chdimmer.yaml", + "job_type": "compile", + "status": "completed", + "created_at": "2026-06-24T11:09:57.679481+00:00", + "started_at": "2026-06-24T11:13:38.968127+00:00", + "completed_at": "2026-06-24T11:17:16.738402+00:00", + "exit_code": 0, + "error": null, + "port": "", + "new_name": "", + "depends_on": "", + "dependency_released": false, + "progress": null, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "0d8a0b2be69a", + "configuration": "esp-3dprinterpow.yaml", + "job_type": "upload", + "status": "completed", + "created_at": "2026-06-24T11:09:52.251760+00:00", + "started_at": "2026-06-24T11:13:38.962444+00:00", + "completed_at": "2026-06-24T11:13:53.170165+00:00", + "exit_code": 0, + "error": null, + "port": "OTA", + "new_name": "", + "depends_on": "4b8fea58e1a6", + "dependency_released": true, + "progress": 100, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, + { + "job_id": "4b8fea58e1a6", + "configuration": "esp-3dprinterpow.yaml", + "job_type": "compile", + "status": "completed", + "created_at": "2026-06-24T11:09:52.251709+00:00", + "started_at": "2026-06-24T11:09:52.252461+00:00", + "completed_at": "2026-06-24T11:13:38.960444+00:00", + "exit_code": 0, + "error": null, + "port": "", + "new_name": "", + "depends_on": "", + "dependency_released": false, + "progress": null, + "remote_peer": "", + "remote_job_id": "", + "remote_peer_label": "", + "device_name": "", + "device_friendly_name": "", + "source": "local", + "source_pin_sha256": "", + "source_label": "", + "source_esphome_version": "" + }, { "job_id": "a9d399c75a3c", "configuration": "esp-astroclockstepper1.yaml", @@ -533,206 +3383,6 @@ "source_label": "", "source_esphome_version": "" }, - { - "job_id": "6f388364d3b9", - "configuration": "esp-loungeenvironment.yaml", - "job_type": "upload", - "status": "completed", - "created_at": "2026-06-10T08:58:25.598581+00:00", - "started_at": "2026-06-10T09:04:32.328122+00:00", - "completed_at": "2026-06-10T09:04:56.870002+00:00", - "exit_code": 0, - "error": null, - "port": "OTA", - "new_name": "", - "depends_on": "42c6b98c9a18", - "dependency_released": true, - "progress": 100, - "remote_peer": "", - "remote_job_id": "", - "remote_peer_label": "", - "device_name": "", - "device_friendly_name": "", - "source": "local", - "source_pin_sha256": "", - "source_label": "", - "source_esphome_version": "" - }, - { - "job_id": "42c6b98c9a18", - "configuration": "esp-loungeenvironment.yaml", - "job_type": "compile", - "status": "completed", - "created_at": "2026-06-10T08:58:25.598449+00:00", - "started_at": "2026-06-10T08:58:25.599111+00:00", - "completed_at": "2026-06-10T09:04:32.319499+00:00", - "exit_code": 0, - "error": null, - "port": "", - "new_name": "", - "depends_on": "", - "dependency_released": false, - "progress": null, - "remote_peer": "", - "remote_job_id": "", - "remote_peer_label": "", - "device_name": "", - "device_friendly_name": "", - "source": "local", - "source_pin_sha256": "", - "source_label": "", - "source_esphome_version": "" - }, - { - "job_id": "06e53abdd6ff", - "configuration": "esp-3dprinterpow.yaml", - "job_type": "upload", - "status": "completed", - "created_at": "2026-06-09T11:35:54.132773+00:00", - "started_at": "2026-06-09T11:36:05.519037+00:00", - "completed_at": "2026-06-09T11:36:23.208528+00:00", - "exit_code": 0, - "error": null, - "port": "OTA", - "new_name": "", - "depends_on": "5beb243f1231", - "dependency_released": true, - "progress": 100, - "remote_peer": "", - "remote_job_id": "", - "remote_peer_label": "", - "device_name": "", - "device_friendly_name": "", - "source": "local", - "source_pin_sha256": "", - "source_label": "", - "source_esphome_version": "" - }, - { - "job_id": "5beb243f1231", - "configuration": "esp-3dprinterpow.yaml", - "job_type": "compile", - "status": "completed", - "created_at": "2026-06-09T11:35:54.132732+00:00", - "started_at": "2026-06-09T11:35:54.133652+00:00", - "completed_at": "2026-06-09T11:36:05.517867+00:00", - "exit_code": 0, - "error": null, - "port": "", - "new_name": "", - "depends_on": "", - "dependency_released": false, - "progress": null, - "remote_peer": "", - "remote_job_id": "", - "remote_peer_label": "", - "device_name": "", - "device_friendly_name": "", - "source": "local", - "source_pin_sha256": "", - "source_label": "", - "source_esphome_version": "" - }, - { - "job_id": "41113c499335", - "configuration": "esp-centralstairs-top.yaml", - "job_type": "upload", - "status": "completed", - "created_at": "2026-06-09T09:53:08.269304+00:00", - "started_at": "2026-06-09T09:56:03.960069+00:00", - "completed_at": "2026-06-09T09:56:16.824331+00:00", - "exit_code": 0, - "error": null, - "port": "OTA", - "new_name": "", - "depends_on": "e8a0dc3df7ee", - "dependency_released": true, - "progress": 100, - "remote_peer": "", - "remote_job_id": "", - "remote_peer_label": "", - "device_name": "", - "device_friendly_name": "", - "source": "local", - "source_pin_sha256": "", - "source_label": "", - "source_esphome_version": "" - }, - { - "job_id": "e8a0dc3df7ee", - "configuration": "esp-centralstairs-top.yaml", - "job_type": "compile", - "status": "completed", - "created_at": "2026-06-09T09:53:08.269262+00:00", - "started_at": "2026-06-09T09:53:08.269733+00:00", - "completed_at": "2026-06-09T09:56:03.957642+00:00", - "exit_code": 0, - "error": null, - "port": "", - "new_name": "", - "depends_on": "", - "dependency_released": false, - "progress": null, - "remote_peer": "", - "remote_job_id": "", - "remote_peer_label": "", - "device_name": "", - "device_friendly_name": "", - "source": "local", - "source_pin_sha256": "", - "source_label": "", - "source_esphome_version": "" - }, - { - "job_id": "1e40be3ec915", - "configuration": "esp-centralstairs-bottom.yaml", - "job_type": "upload", - "status": "completed", - "created_at": "2026-06-09T09:49:57.889780+00:00", - "started_at": "2026-06-09T09:52:48.099065+00:00", - "completed_at": "2026-06-09T09:52:59.909485+00:00", - "exit_code": 0, - "error": null, - "port": "OTA", - "new_name": "", - "depends_on": "288d2fd20526", - "dependency_released": true, - "progress": 100, - "remote_peer": "", - "remote_job_id": "", - "remote_peer_label": "", - "device_name": "", - "device_friendly_name": "", - "source": "local", - "source_pin_sha256": "", - "source_label": "", - "source_esphome_version": "" - }, - { - "job_id": "288d2fd20526", - "configuration": "esp-centralstairs-bottom.yaml", - "job_type": "compile", - "status": "completed", - "created_at": "2026-06-09T09:49:57.889737+00:00", - "started_at": "2026-06-09T09:49:57.893793+00:00", - "completed_at": "2026-06-09T09:52:48.093273+00:00", - "exit_code": 0, - "error": null, - "port": "", - "new_name": "", - "depends_on": "", - "dependency_released": false, - "progress": null, - "remote_peer": "", - "remote_job_id": "", - "remote_peer_label": "", - "device_name": "", - "device_friendly_name": "", - "source": "local", - "source_pin_sha256": "", - "source_label": "", - "source_esphome_version": "" - }, { "job_id": "af97c828d58a", "configuration": "esp-downstkitchlights.yaml", @@ -783,56 +3433,6 @@ "source_label": "", "source_esphome_version": "" }, - { - "job_id": "03f644942f51", - "configuration": "esp-ledmatrix1.yaml", - "job_type": "upload", - "status": "completed", - "created_at": "2026-06-04T08:57:16.073756+00:00", - "started_at": "2026-06-04T09:01:37.971417+00:00", - "completed_at": "2026-06-04T09:02:14.927761+00:00", - "exit_code": 0, - "error": null, - "port": "OTA", - "new_name": "", - "depends_on": "1ebb77f84d00", - "dependency_released": false, - "progress": 100, - "remote_peer": "", - "remote_job_id": "", - "remote_peer_label": "", - "device_name": "", - "device_friendly_name": "", - "source": "local", - "source_pin_sha256": "", - "source_label": "", - "source_esphome_version": "" - }, - { - "job_id": "1ebb77f84d00", - "configuration": "esp-ledmatrix1.yaml", - "job_type": "compile", - "status": "completed", - "created_at": "2026-06-04T08:57:16.073691+00:00", - "started_at": "2026-06-04T08:57:16.077874+00:00", - "completed_at": "2026-06-04T09:01:37.966674+00:00", - "exit_code": 0, - "error": null, - "port": "", - "new_name": "", - "depends_on": "", - "dependency_released": false, - "progress": null, - "remote_peer": "", - "remote_job_id": "", - "remote_peer_label": "", - "device_name": "", - "device_friendly_name": "", - "source": "local", - "source_pin_sha256": "", - "source_label": "", - "source_esphome_version": "" - }, { "job_id": "c7846a63cc3b", "configuration": "esp-ledmatrix1.yaml", diff --git a/packages/free_power_time_actions.yaml b/packages/free_power_time_actions.yaml index 67c5a5a..45a24bc 100644 --- a/packages/free_power_time_actions.yaml +++ b/packages/free_power_time_actions.yaml @@ -245,7 +245,7 @@ script: heatpump_climate_entity: climate.lounge gas_heater_shutdown_delay_seconds: 60 - heatpump_setpoint_offset_c: -5 + heatpump_setpoint_offset_c: -0.5 heatpump_setpoint: >- {{ diff --git a/packages/ha_summary.yaml b/packages/ha_summary.yaml index 0a0fb42..fc14d08 100644 --- a/packages/ha_summary.yaml +++ b/packages/ha_summary.yaml @@ -1,34 +1,36 @@ -# ===================================================================== -# Home Assistant Summary - package +#:########################################################################################:# +# Home Assistant Summary Package - V2 # +#:########################################################################################:# # -# Counts: -# - Total devices/entities/broken entities -# - Cameras, areas, scenes, scripts, automations -# - ESPHome devices/entities -# - Tasmota devices/entities -# - Zigbee ZHA devices/entities -# - Zigbee2MQTT devices/entities -# - Matter devices/entities -# - Matter Wi-Fi/Ethernet devices/entities - best effort -# - Matter Thread devices/entities - best effort -# - Matter unclassified devices/entities -# - Cloud-ish devices/entities -# - Supervisor add-ons - approximate -# - Updates available +# Uses V2 entity IDs to avoid stale/ghost entities from earlier versions. +# +# Dashboard entity prefix: +# sensor.ha_summary_v2_... # -# Important: -# - This uses only modern template: syntax. -# - There must be no root-level: -# sensor: -# - platform: template -# in this package. -# ===================================================================== template: - - sensor: - # ---------- Totals and basics ---------- - - name: HA Summary - devices total - unique_id: ha_summary_devices_total + - trigger: + - platform: event + event_type: homeassistant_started + - platform: event + event_type: entity_registry_updated + - platform: event + event_type: device_registry_updated + - platform: event + event_type: area_registry_updated + - platform: event + event_type: core_config_updated + - platform: time_pattern + minutes: "/5" + + sensor: + #:####################################################################################:# + # Core summary + #:####################################################################################:# + + - name: HA Summary V2 - devices total + unique_id: ha_summary_v2_devices_total + default_entity_id: sensor.ha_summary_v2_devices_total unit_of_measurement: "devices" state: >- {% set ids = namespace(v=[]) %} @@ -40,42 +42,53 @@ template: {% endfor %} {{ ids.v | length }} - - name: HA Summary - entities total - unique_id: ha_summary_entities_total + - name: HA Summary V2 - entities total + unique_id: ha_summary_v2_entities_total + default_entity_id: sensor.ha_summary_v2_entities_total unit_of_measurement: "entities" state: "{{ states | list | length }}" - - name: HA Summary - entities broken - unique_id: ha_summary_entities_broken + - name: HA Summary V2 - entities broken + unique_id: ha_summary_v2_entities_broken + default_entity_id: sensor.ha_summary_v2_entities_broken unit_of_measurement: "entities" state: >- {{ states | selectattr('state','in',['unavailable','unknown']) | list | length }} - - name: HA Summary - cameras - unique_id: ha_summary_cameras + - name: HA Summary V2 - cameras + unique_id: ha_summary_v2_cameras + default_entity_id: sensor.ha_summary_v2_cameras unit_of_measurement: "cameras" state: "{{ states.camera | list | length }}" - - name: HA Summary - areas - unique_id: ha_summary_areas + - name: HA Summary V2 - areas + unique_id: ha_summary_v2_areas + default_entity_id: sensor.ha_summary_v2_areas unit_of_measurement: "areas" state: "{{ areas() | list | length }}" - - name: HA Summary - scenes - unique_id: ha_summary_scenes + - name: HA Summary V2 - scenes + unique_id: ha_summary_v2_scenes + default_entity_id: sensor.ha_summary_v2_scenes state: "{{ states.scene | list | length }}" - - name: HA Summary - scripts - unique_id: ha_summary_scripts + - name: HA Summary V2 - scripts + unique_id: ha_summary_v2_scripts + default_entity_id: sensor.ha_summary_v2_scripts state: "{{ states.script | list | length }}" - - name: HA Summary - automations - unique_id: ha_summary_automations + - name: HA Summary V2 - automations + unique_id: ha_summary_v2_automations + default_entity_id: sensor.ha_summary_v2_automations state: "{{ states.automation | list | length }}" - # ---------- Add-ons and updates ---------- - - name: HA Summary - addons - unique_id: ha_summary_addons + #:####################################################################################:# + # Add-ons and updates + #:####################################################################################:# + + - name: HA Summary V2 - addons + unique_id: ha_summary_v2_addons + default_entity_id: sensor.ha_summary_v2_addons icon: mdi:puzzle state: >- {% set hassio_entities = integration_entities('hassio') | list %} @@ -92,8 +105,9 @@ template: {% endfor %} {{ count.v }} - - name: HA Summary - hacs updates - unique_id: ha_summary_hacs_updates + - name: HA Summary V2 - updates available + unique_id: ha_summary_v2_updates_available + default_entity_id: sensor.ha_summary_v2_updates_available icon: mdi:download state: >- {% set count = namespace(v=0) %} @@ -104,9 +118,13 @@ template: {% endfor %} {{ count.v }} - # ---------- ESPHome ---------- - - name: HA Summary - esphome devices - unique_id: ha_summary_esphome_devices + #:####################################################################################:# + # ESPHome + #:####################################################################################:# + + - name: HA Summary V2 - esphome devices + unique_id: ha_summary_v2_esphome_devices + default_entity_id: sensor.ha_summary_v2_esphome_devices unit_of_measurement: "devices" state: >- {% set ids = namespace(v=[]) %} @@ -118,14 +136,19 @@ template: {% endfor %} {{ ids.v | length }} - - name: HA Summary - esphome entities - unique_id: ha_summary_esphome_entities + - name: HA Summary V2 - esphome entities + unique_id: ha_summary_v2_esphome_entities + default_entity_id: sensor.ha_summary_v2_esphome_entities unit_of_measurement: "entities" state: "{{ integration_entities('esphome') | list | length }}" - # ---------- Tasmota ---------- - - name: HA Summary - tasmota devices - unique_id: ha_summary_tasmota_devices + #:####################################################################################:# + # Tasmota + #:####################################################################################:# + + - name: HA Summary V2 - tasmota devices + unique_id: ha_summary_v2_tasmota_devices + default_entity_id: sensor.ha_summary_v2_tasmota_devices unit_of_measurement: "devices" state: >- {% set ids = namespace(v=[]) %} @@ -137,18 +160,23 @@ template: {% endfor %} {{ ids.v | length }} - - name: HA Summary - tasmota entities - unique_id: ha_summary_tasmota_entities + - name: HA Summary V2 - tasmota entities + unique_id: ha_summary_v2_tasmota_entities + default_entity_id: sensor.ha_summary_v2_tasmota_entities unit_of_measurement: "entities" state: "{{ integration_entities('tasmota') | list | length }}" - # ---------- Zigbee via ZHA ---------- - - name: HA Summary - zigbee zha devices - unique_id: ha_summary_zigbee_zha_devices + #:####################################################################################:# + # Zigbee via ZHA + #:####################################################################################:# + + - name: HA Summary V2 - zigbee zha devices + unique_id: ha_summary_v2_zigbee_zha_devices + default_entity_id: sensor.ha_summary_v2_zigbee_zha_devices unit_of_measurement: "devices" state: >- {% set ids = namespace(v=[]) %} - {% for e in integration_entities('zha') %} + {% for e in integration_entities('zha') | list %} {% set did = device_id(e) %} {% if did and did not in ids.v %} {% set ids.v = ids.v + [did] %} @@ -156,17 +184,19 @@ template: {% endfor %} {{ ids.v | length }} - - name: HA Summary - zigbee zha entities - unique_id: ha_summary_zigbee_zha_entities + - name: HA Summary V2 - zigbee zha entities + unique_id: ha_summary_v2_zigbee_zha_entities + default_entity_id: sensor.ha_summary_v2_zigbee_zha_entities unit_of_measurement: "entities" state: "{{ integration_entities('zha') | list | length }}" - # ---------- Zigbee via Zigbee2MQTT ---------- - # This counts MQTT entities whose Home Assistant device identifiers - # include "zigbee2mqtt". This should catch devices with clean entity IDs - # like sensor.lounge_blind_b_xbl12_battery. - - name: HA Summary - zigbee z2m devices - unique_id: ha_summary_zigbee_z2m_devices + #:####################################################################################:# + # Zigbee via Zigbee2MQTT + #:####################################################################################:# + + - name: HA Summary V2 - zigbee z2m devices + unique_id: ha_summary_v2_zigbee_z2m_devices + default_entity_id: sensor.ha_summary_v2_zigbee_z2m_devices unit_of_measurement: "devices" state: >- {% set dids = namespace(v=[]) %} @@ -187,8 +217,9 @@ template: {% endfor %} {{ dids.v | length }} - - name: HA Summary - zigbee z2m entities - unique_id: ha_summary_zigbee_z2m_entities + - name: HA Summary V2 - zigbee z2m entities + unique_id: ha_summary_v2_zigbee_z2m_entities + default_entity_id: sensor.ha_summary_v2_zigbee_z2m_entities unit_of_measurement: "entities" state: >- {% set ent = namespace(v=[]) %} @@ -209,9 +240,13 @@ template: {% endfor %} {{ ent.v | unique | list | length }} - # ---------- Matter total ---------- - - name: HA Summary - matter devices - unique_id: ha_summary_matter_devices + #:####################################################################################:# + # Matter + #:####################################################################################:# + + - name: HA Summary V2 - matter devices + unique_id: ha_summary_v2_matter_devices + default_entity_id: sensor.ha_summary_v2_matter_devices unit_of_measurement: "devices" state: >- {% set ids = namespace(v=[]) %} @@ -223,14 +258,15 @@ template: {% endfor %} {{ ids.v | length }} - - name: HA Summary - matter entities - unique_id: ha_summary_matter_entities + - name: HA Summary V2 - matter entities + unique_id: ha_summary_v2_matter_entities + default_entity_id: sensor.ha_summary_v2_matter_entities unit_of_measurement: "entities" state: "{{ integration_entities('matter') | list | length }}" - # ---------- Matter over Wi-Fi / Ethernet - best effort ---------- - - name: HA Summary - matter wifi devices - unique_id: ha_summary_matter_wifi_devices + - name: HA Summary V2 - matter wifi devices + unique_id: ha_summary_v2_matter_wifi_devices + default_entity_id: sensor.ha_summary_v2_matter_wifi_devices unit_of_measurement: "devices" state: >- {% set dids = namespace(v=[]) %} @@ -251,8 +287,9 @@ template: {% endfor %} {{ dids.v | length }} - - name: HA Summary - matter wifi entities - unique_id: ha_summary_matter_wifi_entities + - name: HA Summary V2 - matter wifi entities + unique_id: ha_summary_v2_matter_wifi_entities + default_entity_id: sensor.ha_summary_v2_matter_wifi_entities unit_of_measurement: "entities" state: >- {% set ent = namespace(v=[]) %} @@ -273,9 +310,9 @@ template: {% endfor %} {{ ent.v | unique | list | length }} - # ---------- Matter over Thread - best effort ---------- - - name: HA Summary - matter thread devices - unique_id: ha_summary_matter_thread_devices + - name: HA Summary V2 - matter thread devices + unique_id: ha_summary_v2_matter_thread_devices + default_entity_id: sensor.ha_summary_v2_matter_thread_devices unit_of_measurement: "devices" state: >- {% set dids = namespace(v=[]) %} @@ -296,8 +333,9 @@ template: {% endfor %} {{ dids.v | length }} - - name: HA Summary - matter thread entities - unique_id: ha_summary_matter_thread_entities + - name: HA Summary V2 - matter thread entities + unique_id: ha_summary_v2_matter_thread_entities + default_entity_id: sensor.ha_summary_v2_matter_thread_entities unit_of_measurement: "entities" state: >- {% set ent = namespace(v=[]) %} @@ -318,28 +356,33 @@ template: {% endfor %} {{ ent.v | unique | list | length }} - # ---------- Matter unclassified ---------- - - name: HA Summary - matter unclassified devices - unique_id: ha_summary_matter_unclassified_devices + - name: HA Summary V2 - matter unclassified devices + unique_id: ha_summary_v2_matter_unclassified_devices + default_entity_id: sensor.ha_summary_v2_matter_unclassified_devices unit_of_measurement: "devices" state: >- - {% set total = states('sensor.ha_summary_matter_devices') | int(0) %} - {% set wifi = states('sensor.ha_summary_matter_wifi_devices') | int(0) %} - {% set thread = states('sensor.ha_summary_matter_thread_devices') | int(0) %} + {% set total = states('sensor.ha_summary_v2_matter_devices') | int(0) %} + {% set wifi = states('sensor.ha_summary_v2_matter_wifi_devices') | int(0) %} + {% set thread = states('sensor.ha_summary_v2_matter_thread_devices') | int(0) %} {{ [total - wifi - thread, 0] | max }} - - name: HA Summary - matter unclassified entities - unique_id: ha_summary_matter_unclassified_entities + - name: HA Summary V2 - matter unclassified entities + unique_id: ha_summary_v2_matter_unclassified_entities + default_entity_id: sensor.ha_summary_v2_matter_unclassified_entities unit_of_measurement: "entities" state: >- - {% set total = states('sensor.ha_summary_matter_entities') | int(0) %} - {% set wifi = states('sensor.ha_summary_matter_wifi_entities') | int(0) %} - {% set thread = states('sensor.ha_summary_matter_thread_entities') | int(0) %} + {% set total = states('sensor.ha_summary_v2_matter_entities') | int(0) %} + {% set wifi = states('sensor.ha_summary_v2_matter_wifi_entities') | int(0) %} + {% set thread = states('sensor.ha_summary_v2_matter_thread_entities') | int(0) %} {{ [total - wifi - thread, 0] | max }} - # ---------- Cloud devices/entities ---------- - - name: HA Summary - cloud devices - unique_id: ha_summary_cloud_devices + #:####################################################################################:# + # Cloud devices/entities + #:####################################################################################:# + + - name: HA Summary V2 - cloud devices + unique_id: ha_summary_v2_cloud_devices + default_entity_id: sensor.ha_summary_v2_cloud_devices unit_of_measurement: "devices" state: >- {% set dids = namespace(v=[]) %} @@ -366,8 +409,9 @@ template: {% endfor %} {{ dids.v | length }} - - name: HA Summary - cloud entities - unique_id: ha_summary_cloud_entities + - name: HA Summary V2 - cloud entities + unique_id: ha_summary_v2_cloud_entities + default_entity_id: sensor.ha_summary_v2_cloud_entities unit_of_measurement: "entities" state: >- {% set list_all =