Restore recent local package updates

This commit is contained in:
zorruno
2026-06-09 23:47:27 +12:00
parent c26f38772f
commit 6e4447851e
5 changed files with 505 additions and 107 deletions
+300 -11
View File
@@ -307,18 +307,19 @@
}, },
"_firmware_jobs": [ "_firmware_jobs": [
{ {
"job_id": "9d96dea4da3e", "job_id": "06e53abdd6ff",
"configuration": "esp-ledmatrix1.yaml", "configuration": "esp-3dprinterpow.yaml",
"job_type": "upload", "job_type": "upload",
"status": "completed", "status": "completed",
"created_at": "2026-06-03T23:08:40.527798+00:00", "created_at": "2026-06-09T11:35:54.132773+00:00",
"started_at": "2026-06-03T23:11:53.217518+00:00", "started_at": "2026-06-09T11:36:05.519037+00:00",
"completed_at": "2026-06-03T23:12:12.355156+00:00", "completed_at": "2026-06-09T11:36:23.208528+00:00",
"exit_code": 0, "exit_code": 0,
"error": null, "error": null,
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "3029f689380d", "depends_on": "5beb243f1231",
"dependency_released": true,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -331,18 +332,219 @@
"source_esphome_version": "" "source_esphome_version": ""
}, },
{ {
"job_id": "3029f689380d", "job_id": "5beb243f1231",
"configuration": "esp-ledmatrix1.yaml", "configuration": "esp-3dprinterpow.yaml",
"job_type": "compile", "job_type": "compile",
"status": "completed", "status": "completed",
"created_at": "2026-06-03T23:08:40.527759+00:00", "created_at": "2026-06-09T11:35:54.132732+00:00",
"started_at": "2026-06-03T23:08:40.528950+00:00", "started_at": "2026-06-09T11:35:54.133652+00:00",
"completed_at": "2026-06-03T23:11:53.215585+00:00", "completed_at": "2026-06-09T11:36:05.517867+00:00",
"exit_code": 0, "exit_code": 0,
"error": null, "error": null,
"port": "", "port": "",
"new_name": "", "new_name": "",
"depends_on": "", "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",
"job_type": "upload",
"status": "completed",
"created_at": "2026-06-05T04:25:30.974561+00:00",
"started_at": "2026-06-05T04:25:44.710401+00:00",
"completed_at": "2026-06-05T04:25:58.902563+00:00",
"exit_code": 0,
"error": null,
"port": "OTA",
"new_name": "",
"depends_on": "bd7bbeb99660",
"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": "bd7bbeb99660",
"configuration": "esp-downstkitchlights.yaml",
"job_type": "compile",
"status": "completed",
"created_at": "2026-06-05T04:25:30.974521+00:00",
"started_at": "2026-06-05T04:25:30.977331+00:00",
"completed_at": "2026-06-05T04:25:44.702151+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": "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, "progress": null,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -367,6 +569,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -391,6 +594,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": null, "progress": null,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -415,6 +619,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -439,6 +644,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": null, "progress": null,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -463,6 +669,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -487,6 +694,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": null, "progress": null,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -511,6 +719,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": null, "progress": null,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -535,6 +744,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -559,6 +769,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -583,6 +794,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -607,6 +819,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -631,6 +844,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -655,6 +869,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -679,6 +894,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": null, "progress": null,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -703,6 +919,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": null, "progress": null,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -727,6 +944,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -751,6 +969,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": null, "progress": null,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -775,6 +994,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -799,6 +1019,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -823,6 +1044,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -847,6 +1069,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -871,6 +1094,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -895,6 +1119,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -919,6 +1144,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -943,6 +1169,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": null, "progress": null,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -967,6 +1194,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -991,6 +1219,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -1015,6 +1244,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": null, "progress": null,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -1039,6 +1269,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -1063,6 +1294,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -1087,6 +1319,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -1111,6 +1344,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -1135,6 +1369,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": null, "progress": null,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -1159,6 +1394,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -1183,6 +1419,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -1207,6 +1444,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -1231,6 +1469,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -1255,6 +1494,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -1279,6 +1519,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -1303,6 +1544,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -1327,6 +1569,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -1351,6 +1594,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -1375,6 +1619,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -1399,6 +1644,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -1423,6 +1669,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -1447,6 +1694,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -1471,6 +1719,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -1495,6 +1744,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -1519,6 +1769,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -1543,6 +1794,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -1567,6 +1819,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -1591,6 +1844,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -1615,6 +1869,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -1639,6 +1894,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -1663,6 +1919,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -1687,6 +1944,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -1711,6 +1969,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -1735,6 +1994,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -1759,6 +2019,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -1783,6 +2044,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -1807,6 +2069,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -1831,6 +2094,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -1855,6 +2119,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -1879,6 +2144,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -1903,6 +2169,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -1927,6 +2194,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -1951,6 +2219,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -1975,6 +2244,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -1999,6 +2269,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -2023,6 +2294,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -2047,6 +2319,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -2071,6 +2344,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -2095,6 +2369,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -2119,6 +2394,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -2143,6 +2419,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -2167,6 +2444,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -2191,6 +2469,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -2215,6 +2494,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -2239,6 +2519,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -2263,6 +2544,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -2287,6 +2569,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -2311,6 +2594,7 @@
"port": "OTA", "port": "OTA",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": 100, "progress": 100,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -2335,6 +2619,7 @@
"port": "", "port": "",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": null, "progress": null,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -2359,6 +2644,7 @@
"port": "", "port": "",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": null, "progress": null,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -2383,6 +2669,7 @@
"port": "", "port": "",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": null, "progress": null,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -2407,6 +2694,7 @@
"port": "", "port": "",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": null, "progress": null,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
@@ -2431,6 +2719,7 @@
"port": "", "port": "",
"new_name": "", "new_name": "",
"depends_on": "", "depends_on": "",
"dependency_released": false,
"progress": null, "progress": null,
"remote_peer": "", "remote_peer": "",
"remote_job_id": "", "remote_job_id": "",
-40
View File
@@ -1,40 +0,0 @@
################################################################################
# PACKAGE: Announcement Test Button
################################################################################
input_button:
announcement_test:
name: Test Announcement
icon: mdi:bullhorn
automation:
- id: announcement_test_button_pressed
alias: Announcement Test Button Pressed
mode: single
trigger:
- platform: state
entity_id: input_button.announcement_test
action:
# - action: script.view_road_announcement
# data:
# channels: "sony_tv_lounge"
# title: "View Road Test"
# short_announcement: "Test announcement"
# long_announcement: "This is a test announcement from the package test button."
# payload: "On"
# indicator: ""
#- action: script.view_road_announcement
# data:
# channels: "pushover_zorruno,pushover_kim"
# title: "View Road Test"
# long_announcement: "This is a test through the View Road announcement router."
- action: script.view_road_announcement
data:
channels: "lounge_google_home_voice, sony_tv_lounge"
title: "View Road "
short_announcement: "9pm, Free Power time"
long_announcement: "It is 9pm."
@@ -0,0 +1,57 @@
################################################################################
# Laundry Occupancy Cancel Appliance Announcements
#
# File:
# laundry_cancel_appliance_announcements.yaml
#
# Purpose:
# If laundry occupancy is detected, cancel appliance announcements on the
# LED matrix for both washing machine and dryer.
#
# Also provides a manual button entity:
# input_button.cancel_laundry_appliance_announcements
#
################################################################################
input_button:
cancel_laundry_appliance_announcements:
name: Cancel Laundry Appliance Announcements
icon: mdi:message-off-outline
script:
laundry_cancel_appliance_announcements:
alias: "Laundry Cancel Appliance Announcements"
mode: restart
sequence:
- action: mqtt.publish
data:
topic: viewroad-commands/ledmatrix1/cancel_id
payload: "wash"
- delay:
seconds: 5
- action: mqtt.publish
data:
topic: viewroad-commands/ledmatrix1/cancel_id
payload: "dry"
automation:
- id: laundry_cancel_appliance_announcements_on_occupancy_or_button
alias: "Laundry - Cancel Appliance Announcements On Occupancy Or Button"
description: >
Cancels washing machine and dryer LED matrix announcements when laundry
occupancy is detected, or when the manual cancel button is pressed.
mode: restart
trigger:
- platform: state
entity_id:
- binary_sensor.esp_laundryenv_laundry_pir
- binary_sensor.laundry_ceiling_pir_x03ir_occupancy
to: "on"
- platform: state
entity_id: input_button.cancel_laundry_appliance_announcements
action:
- action: script.laundry_cancel_appliance_announcements
+76 -3
View File
@@ -6,6 +6,11 @@
# Quiet Time # Quiet Time
# #
# VERSIONS: # VERSIONS:
# V1.3 2026-06-07
# - Added quiet time start and stop entity action lists.
# - Turns the LED matrix display OFF when quiet time starts.
# - Turns the LED matrix display ON when quiet time ends.
#
# V1.2 2026-05-21 # V1.2 2026-05-21
# - Added MQTT publishing when input_boolean.quiet_time changes. # - Added MQTT publishing when input_boolean.quiet_time changes.
# - Publishes quiet_time state to viewroad-status/homeassistant/quiet-time. # - Publishes quiet_time state to viewroad-status/homeassistant/quiet-time.
@@ -28,6 +33,20 @@
# will automatically be turned OFF. # will automatically be turned OFF.
# - Default reset time is 07:00. # - Default reset time is 07:00.
# - The quiet_time state is published to MQTT whenever it changes. # - The quiet_time state is published to MQTT whenever it changes.
# - When quiet_time changes, editable entity lists can turn things on or off.
#
# QUIET TIME ACTION LISTS:
# - quiet_time_start_turn_off_entities:
# Entities to turn OFF when quiet time starts.
#
# - quiet_time_start_turn_on_entities:
# Entities to turn ON when quiet time starts.
#
# - quiet_time_stop_turn_off_entities:
# Entities to turn OFF when quiet time ends.
#
# - quiet_time_stop_turn_on_entities:
# Entities to turn ON when quiet time ends.
# #
# MQTT STATUS: # MQTT STATUS:
# - Topic: # - Topic:
@@ -107,17 +126,71 @@ automation:
target: target:
entity_id: input_boolean.quiet_time entity_id: input_boolean.quiet_time
- id: quiet_time_settings_to_mqtt - id: quiet_time_state_change_actions_and_mqtt
alias: "Publish quiet time value to MQTT" alias: "Quiet Time - State Change Actions and MQTT"
description: "Publishes the Quiet Time boolean state to MQTT whenever it changes." description: "Publishes the Quiet Time state to MQTT and runs the configured start/stop entity actions."
mode: single mode: single
variables:
quiet_time_start_turn_off_entities:
- light.led_matrix_display_led_matrix_display_display
quiet_time_start_turn_on_entities: []
quiet_time_stop_turn_off_entities: []
quiet_time_stop_turn_on_entities:
- light.led_matrix_display_led_matrix_display_display
triggers: triggers:
- trigger: state - trigger: state
entity_id: input_boolean.quiet_time entity_id: input_boolean.quiet_time
from:
- "on"
- "off"
to:
- "on"
- "off"
actions: actions:
- action: mqtt.publish - action: mqtt.publish
data: data:
topic: viewroad-status/homeassistant/quiet-time topic: viewroad-status/homeassistant/quiet-time
payload: "{{ trigger.to_state.state }}" payload: "{{ trigger.to_state.state }}"
- choose:
- conditions:
- condition: template
value_template: "{{ trigger.to_state.state == 'on' }}"
sequence:
- repeat:
for_each: "{{ quiet_time_start_turn_off_entities }}"
sequence:
- action: homeassistant.turn_off
target:
entity_id: "{{ repeat.item }}"
- repeat:
for_each: "{{ quiet_time_start_turn_on_entities }}"
sequence:
- action: homeassistant.turn_on
target:
entity_id: "{{ repeat.item }}"
- conditions:
- condition: template
value_template: "{{ trigger.to_state.state == 'off' }}"
sequence:
- repeat:
for_each: "{{ quiet_time_stop_turn_off_entities }}"
sequence:
- action: homeassistant.turn_off
target:
entity_id: "{{ repeat.item }}"
- repeat:
for_each: "{{ quiet_time_stop_turn_on_entities }}"
sequence:
- action: homeassistant.turn_on
target:
entity_id: "{{ repeat.item }}"
+72 -53
View File
@@ -1,9 +1,14 @@
################################################################################ ################################################################################
# PACKAGE: View Road Announcement Router # PACKAGE: View Road Announcement Router
################################################################################ ################################################################################
# # 1.7:
# Version: 1.4 # - Updated Lounge Google Home Voice to speak short_announcement only.
# Date: 2026-06-02 # - This allows long_announcement to remain available for detailed channels
# such as Pushover without making voice announcements too long.
# 1.6:
# - Updated Sony TV Lounge channel to use short_announcement only.
# - Removed Sony TV Lounge payload suffix from message formatting.
# 1.5: Date: 2026-06-04
# #
# Purpose: # Purpose:
# Central announcement router for general Home Assistant announcements. # Central announcement router for general Home Assistant announcements.
@@ -20,7 +25,7 @@
# short_announcement: "Washing complete" # short_announcement: "Washing complete"
# long_announcement: "The washing machine has finished." # long_announcement: "The washing machine has finished."
# payload: "" # payload: ""
# indicator: "dry,1,15,10,2,1" # indicator: "wash,1,15,10,6,5,1,0"
# #
# Available channels: # Available channels:
# #
@@ -38,17 +43,16 @@
# Uses: # Uses:
# title # title
# short_announcement # short_announcement
# payload
# Message format: # Message format:
# "<short_announcement> is <payload>" # "<short_announcement>"
# #
# lounge_google_home_voice: # lounge_google_home_voice:
# Also accepts alias: # Also accepts alias:
# google_home_voice # google_home_voice
# Uses: # Uses:
# long_announcement # short_announcement
# Fallback: # Notes:
# If long_announcement is blank, uses short_announcement and payload. # /s prefixes are stripped before being sent to voice.
# Quiet time: # Quiet time:
# Blocked by default when input_boolean.quiet_time is on. # Blocked by default when input_boolean.quiet_time is on.
# #
@@ -69,7 +73,7 @@
# Message format: # Message format:
# "<short_announcement> [<indicator>]" # "<short_announcement> [<indicator>]"
# Example: # Example:
# "Washing complete [dry,1,15,10,2,1]" # "Washing complete [wash,1,15,10,6,5,1,0]"
# #
# led_matrix_2: # led_matrix_2:
# Future channel. # Future channel.
@@ -79,7 +83,7 @@
# #
# LED matrix announcement format: # LED matrix announcement format:
# #
# Message text [identifier,transition_mode,speed,repeat_seconds,repeat_times,sounder_quantity] # Message text [identifier,transition_mode,speed,repeat_seconds,repeat_times,static_wait,sounder_quantity,sound_id]
# #
# Example script call: # Example script call:
# #
@@ -87,11 +91,11 @@
# data: # data:
# channels: "led_matrix_1" # channels: "led_matrix_1"
# short_announcement: "Washing complete" # short_announcement: "Washing complete"
# indicator: "dry,1,15,10,2,1" # indicator: "wash,1,15,10,6,5,1,0"
# #
# Result sent to MQTT: # Result sent to MQTT:
# #
# Washing complete [dry,1,15,10,2,1] # Washing complete [wash,1,15,10,6,5,1,0]
# #
# Indicator fields: # Indicator fields:
# #
@@ -104,6 +108,8 @@
# 0 = Slide up # 0 = Slide up
# 1 = Slide down # 1 = Slide down
# 2 = Pixel fall # 2 = Pixel fall
# 3 = Static Up, Down
# 4 = Static Down, Up
# #
# speed: # speed:
# Per-message scroll delay in ms. # Per-message scroll delay in ms.
@@ -118,16 +124,36 @@
# Clamped by ESPHome from 0 to 99. # Clamped by ESPHome from 0 to 99.
# 0 is treated as a one-shot announcement. # 0 is treated as a one-shot announcement.
# #
# static_wait:
# Per-message static wait time in seconds.
# Clamped by ESPHome from 0 to 30.
# Only affects transition modes 3 and 4.
# Other transition modes ignore it.
#
# sounder_quantity: # sounder_quantity:
# Number of announcement displays that should beep first. # Number of announcement displays that should beep first.
# 0 means no sounder beep. # 0 means no sounder beep.
# #
# sound_id:
# Stored by the LED matrix ESPHome logic for future sounder logic.
# It is not currently used by the display logic.
#
# Notes: # Notes:
# The announcement router does not parse, clean, or clamp the indicator # The announcement router does not parse, clean, or clamp the indicator
# fields. It passes the indicator through to the LED matrix in square # fields. It passes the indicator through to the LED matrix in square
# brackets. The LED matrix ESPHome YAML handles validation and behaviour. # brackets. The LED matrix ESPHome YAML handles validation and behaviour.
# #
# The router does not intentionally trim leading spaces from
# short_announcement for LED matrix messages. The previous invisible leading
# space guard workaround has been removed.
#
# Changes: # Changes:
# 1.5:
# - Removed LED matrix invisible leading-space guard workaround.
# - Updated LED matrix announcement comments for the current 8-field format.
# - Updated LED matrix transition comments for modes 0-4.
# - Added static_wait and sound_id documentation to router comments.
#
# 1.4: # 1.4:
# - Documented LED matrix indicator format. # - Documented LED matrix indicator format.
# - Clarified that LED matrix indicator validation is handled by ESPHome. # - Clarified that LED matrix indicator validation is handled by ESPHome.
@@ -254,8 +280,8 @@ script:
indicator: indicator:
name: Indicator name: Indicator
description: LED matrix indicator data in the format identifier,transition_mode,speed,repeat_seconds,repeat_times,sounder_quantity. description: LED matrix indicator data in the format identifier,transition_mode,speed,repeat_seconds,repeat_times,static_wait,sounder_quantity,sound_id.
example: "dry,1,15,10,2,1" example: "wash,1,15,10,6,5,1,0"
selector: selector:
text: text:
@@ -295,7 +321,6 @@ script:
led_matrix_2_mqtt_topic: "viewroad-commands/ledmatrix2/announce" led_matrix_2_mqtt_topic: "viewroad-commands/ledmatrix2/announce"
led_matrix_mqtt_qos: 0 led_matrix_mqtt_qos: 0
led_matrix_mqtt_retain: false led_matrix_mqtt_retain: false
led_matrix_leading_space_guard: ""
########################################################################## ##########################################################################
# RESOLVE PASSED VALUES # RESOLVE PASSED VALUES
@@ -381,41 +406,33 @@ script:
ann_quiet_time_blocked_channels_normalised: >- ann_quiet_time_blocked_channels_normalised: >-
{{ ',' ~ (quiet_time_blocked_channels | join(',') | lower | replace(' ', '') | replace('\n', '') | trim(',')) ~ ',' }} {{ ',' ~ (quiet_time_blocked_channels | join(',') | lower | replace(' ', '') | replace('\n', '') | trim(',')) ~ ',' }}
ann_sony_tv_message: >- ann_short_announcement_raw: >-
{% set short_text = ann_short_announcement | string | trim %} {% if short_announcement is defined %}
{% set payload_text = ann_payload | string | trim %} {{ short_announcement }}
{% if short_text | length > 0 and payload_text | length > 0 %} {% elif Short_Announcement is defined %}
{{ short_text }} is {{ payload_text }} {{ Short_Announcement }}
{% elif short_text | length > 0 %}
{{ short_text }}
{% else %} {% else %}
{{ payload_text }} {{ default_short_announcement }}
{% endif %} {% endif %}
ann_short_announcement_clean: >-
{{ ann_short_announcement_raw | string | regex_replace('^(?:/s)+', '') | trim }}
ann_sony_tv_message: >-
{{ ann_short_announcement_clean }}
ann_voice_message: >- ann_voice_message: >-
{% set long_text = ann_long_announcement | string | trim %} {{ ann_short_announcement_clean }}
{% set short_text = ann_short_announcement | string | trim %}
{% set payload_text = ann_payload | string | trim %}
{% if long_text | length > 0 %}
{{ long_text }}
{% elif short_text | length > 0 and payload_text | length > 0 %}
{{ short_text }} is {{ payload_text }}
{% elif short_text | length > 0 %}
{{ short_text }}
{% else %}
{{ payload_text }}
{% endif %}
ann_led_matrix_message: >- ann_led_matrix_1_message: >-
{% set short_text = short_announcement if short_announcement is defined {%- set short_text = ann_short_announcement_raw -%}
else Short_Announcement if Short_Announcement is defined {%- set indicator_text = ann_indicator | string | trim -%}
else default_short_announcement %} {{- short_text | string -}}{{ ' [' ~ indicator_text ~ ']' if indicator_text | length > 0 else '' }}
{% set short_text = short_text | string %}
{% set indicator_text = ann_indicator | string | trim %} ann_led_matrix_2_message: >-
{{ (led_matrix_leading_space_guard if short_text[0:1] == ' ' else '') ~ short_text ~ {%- set short_text = ann_short_announcement_clean -%}
(' [' ~ indicator_text ~ ']' {%- set indicator_text = ann_indicator | string | trim -%}
if indicator_text | length > 0 {{- short_text | string -}}{{ ' [' ~ indicator_text ~ ']' if indicator_text | length > 0 else '' }}
else '') }}
########################################################################## ##########################################################################
# CHANNEL: PUSHOVER ZORRUNO # CHANNEL: PUSHOVER ZORRUNO
@@ -459,6 +476,8 @@ script:
- condition: state - condition: state
entity_id: input_boolean.announcement_channel_sony_tv_lounge entity_id: input_boolean.announcement_channel_sony_tv_lounge
state: "on" state: "on"
- condition: template
value_template: "{{ ann_sony_tv_message | string | trim | length > 0 }}"
then: then:
- action: notify.sony_android_tv_lounge - action: notify.sony_android_tv_lounge
data: data:
@@ -575,10 +594,10 @@ script:
# <short_announcement> [<indicator>] # <short_announcement> [<indicator>]
# #
# Example payload: # Example payload:
# Washing complete [dry,1,15,10,2,1] # Washing complete [wash,1,15,10,6,5,1,0]
# #
# Indicator format: # Indicator format:
# identifier,transition_mode,speed,repeat_seconds,repeat_times,sounder_quantity # identifier,transition_mode,speed,repeat_seconds,repeat_times,static_wait,sounder_quantity,sound_id
# #
########################################################################## ##########################################################################
@@ -589,12 +608,12 @@ script:
entity_id: input_boolean.announcement_channel_led_matrix_1 entity_id: input_boolean.announcement_channel_led_matrix_1
state: "on" state: "on"
- condition: template - condition: template
value_template: "{{ ann_led_matrix_message | string | trim | length > 0 }}" value_template: "{{ ann_led_matrix_1_message | string | trim | length > 0 }}"
then: then:
- action: mqtt.publish - action: mqtt.publish
data: data:
topic: "{{ led_matrix_1_mqtt_topic }}" topic: "{{ led_matrix_1_mqtt_topic }}"
payload: "{{ ann_led_matrix_message }}" payload: "{{ ann_led_matrix_1_message }}"
qos: "{{ led_matrix_mqtt_qos | int(0) }}" qos: "{{ led_matrix_mqtt_qos | int(0) }}"
retain: "{{ led_matrix_mqtt_retain | bool(false) }}" retain: "{{ led_matrix_mqtt_retain | bool(false) }}"
@@ -615,7 +634,7 @@ script:
# <short_announcement> [<indicator>] # <short_announcement> [<indicator>]
# #
# Indicator format: # Indicator format:
# identifier,transition_mode,speed,repeat_seconds,repeat_times,sounder_quantity # identifier,transition_mode,speed,repeat_seconds,repeat_times,static_wait,sounder_quantity,sound_id
# #
########################################################################## ##########################################################################
@@ -626,11 +645,11 @@ script:
entity_id: input_boolean.announcement_channel_led_matrix_2 entity_id: input_boolean.announcement_channel_led_matrix_2
state: "on" state: "on"
- condition: template - condition: template
value_template: "{{ ann_led_matrix_message | string | trim | length > 0 }}" value_template: "{{ ann_led_matrix_2_message | string | trim | length > 0 }}"
then: then:
- action: mqtt.publish - action: mqtt.publish
data: data:
topic: "{{ led_matrix_2_mqtt_topic }}" topic: "{{ led_matrix_2_mqtt_topic }}"
payload: "{{ ann_led_matrix_message }}" payload: "{{ ann_led_matrix_2_message }}"
qos: "{{ led_matrix_mqtt_qos | int(0) }}" qos: "{{ led_matrix_mqtt_qos | int(0) }}"
retain: "{{ led_matrix_mqtt_retain | bool(false) }}" retain: "{{ led_matrix_mqtt_retain | bool(false) }}"