Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 6e4447851e | |||
| c26f38772f | |||
| ead01dabce | |||
| 22e41e4203 |
+300
-11
@@ -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": "",
|
||||||
|
|||||||
@@ -6,6 +6,7 @@
|
|||||||
# https://home.fox.co.nz/gitea/zorruno/zorruno-homeassistant/src/branch/master/esphome/esp-centralstairs-bottom.yaml
|
# https://home.fox.co.nz/gitea/zorruno/zorruno-homeassistant/src/branch/master/esphome/esp-centralstairs-bottom.yaml
|
||||||
#:########################################################################################:#
|
#:########################################################################################:#
|
||||||
# VERSIONS:
|
# VERSIONS:
|
||||||
|
# V3.8 2026-06-09 Added Downstairs Lights Bulk Activation virtual switch toggled by Button 1 double-click
|
||||||
# V3.7 2025-09-24 Upload to this device
|
# V3.7 2025-09-24 Upload to this device
|
||||||
# V3.5 2025-07-24 YAML tidyups
|
# V3.5 2025-07-24 YAML tidyups
|
||||||
#:########################################################################################:#
|
#:########################################################################################:#
|
||||||
@@ -15,7 +16,8 @@
|
|||||||
#:########################################################################################:#
|
#:########################################################################################:#
|
||||||
# OPERATION NOTES:
|
# OPERATION NOTES:
|
||||||
# - Light switch at bottom of the central stairs
|
# - Light switch at bottom of the central stairs
|
||||||
# - Button 1 toggles Relay 1 (Main Stair Lights - Lower) - physically connected
|
# - Button 1 single-click toggles Relay 1 (Main Stair Lights - Lower) - physically connected
|
||||||
|
# - Button 1 double-click toggles the Downstairs Lights Bulk Activation virtual switch for HA automations
|
||||||
# - Button 2 controls Stair Footer Lights via MQTT (remote device), using Relay 2 as a local mirror state
|
# - Button 2 controls Stair Footer Lights via MQTT (remote device), using Relay 2 as a local mirror state
|
||||||
# - On MQTT connect, publishes current Relay 1 state to mqtt_status_topic_1 to keep remote status aligned
|
# - On MQTT connect, publishes current Relay 1 state to mqtt_status_topic_1 to keep remote status aligned
|
||||||
#:########################################################################################:#
|
#:########################################################################################:#
|
||||||
@@ -27,19 +29,27 @@
|
|||||||
# Remote device 2 (Stair Footer Lights):
|
# Remote device 2 (Stair Footer Lights):
|
||||||
# - Command topic: ${mqtt_command_topic_2} -> ON,OFF
|
# - Command topic: ${mqtt_command_topic_2} -> ON,OFF
|
||||||
# - Status topic: ${mqtt_status_topic_2} -> ON,OFF
|
# - Status topic: ${mqtt_status_topic_2} -> ON,OFF
|
||||||
|
#
|
||||||
|
# HA virtual switch:
|
||||||
|
# - Downstairs Lights Bulk Activation is exposed as a virtual switch for Home Assistant automations
|
||||||
|
# - No custom MQTT command/status topic is defined for this virtual switch
|
||||||
#:########################################################################################:#
|
#:########################################################################################:#
|
||||||
# OFFLINE NOTES:
|
# OFFLINE NOTES:
|
||||||
# a) Home Assistant OFFLINE, but Network and MQTT ONLINE
|
# a) Home Assistant OFFLINE, but Network and MQTT ONLINE
|
||||||
# - Physical buttons still operate (Relay 1 local toggle; Button 2 publishes MQTT for footer lights)
|
# - Button 1 single-click continues to toggle Relay 1 locally
|
||||||
|
# - Button 1 double-click still toggles the local virtual switch, but HA automations will not act until HA returns
|
||||||
|
# - Button 2 continues to publish MQTT commands for footer lights
|
||||||
# - Relay 1 state continues to be published to MQTT status topic
|
# - Relay 1 state continues to be published to MQTT status topic
|
||||||
# - HA entities are unavailable until HA returns
|
# - HA entities are unavailable until HA returns
|
||||||
# b) MQTT OFFLINE (but WiFi/Network and HA API ONLINE)
|
# b) MQTT OFFLINE (but WiFi/Network and HA API ONLINE)
|
||||||
# - Relay 1 still toggles locally and remains controllable from HA via API
|
# - Relay 1 still toggles locally and remains controllable from HA via API
|
||||||
|
# - Button 1 double-click can still toggle the virtual switch via HA API
|
||||||
# - Button 2 cannot control footer lights (MQTT publish fails)
|
# - Button 2 cannot control footer lights (MQTT publish fails)
|
||||||
# - Any MQTT state sync to remote devices will not occur while MQTT is down
|
# - Any MQTT state sync to remote devices will not occur while MQTT is down
|
||||||
# c) Entire WiFi/Network OFFLINE
|
# c) Entire WiFi/Network OFFLINE
|
||||||
# - Physical button 1 continues to toggle Relay 1 locally (standalone)
|
# - Button 1 single-click continues to toggle Relay 1 locally (standalone)
|
||||||
# - Physical button 2 cannot control footer lights (no network transport)
|
# - Button 1 double-click can toggle the local virtual switch state, but HA will not see it until network returns
|
||||||
|
# - Button 2 cannot control footer lights (no network transport)
|
||||||
# - Timeclocks will drift without network (SNTP). Time of day can be reset by powering off then on again at 12pm (midday)
|
# - Timeclocks will drift without network (SNTP). Time of day can be reset by powering off then on again at 12pm (midday)
|
||||||
#:########################################################################################:#
|
#:########################################################################################:#
|
||||||
|
|
||||||
@@ -73,7 +83,7 @@ substitutions:
|
|||||||
|
|
||||||
# Project Naming
|
# Project Naming
|
||||||
project_name: "Zemismart Technologies.KS-811 Double" # Project Details
|
project_name: "Zemismart Technologies.KS-811 Double" # Project Details
|
||||||
project_version: "v2.0" # Project V denotes release of yaml file, allowing checking of deployed vs latest version
|
project_version: "v2.1" # Project V denotes release of yaml file, allowing checking of deployed vs latest version
|
||||||
|
|
||||||
# MQTT Controls
|
# MQTT Controls
|
||||||
mqtt_command_main_topic: !secret mqtt_command_main_topic
|
mqtt_command_main_topic: !secret mqtt_command_main_topic
|
||||||
@@ -255,7 +265,24 @@ binary_sensor:
|
|||||||
- delayed_on: 30ms
|
- delayed_on: 30ms
|
||||||
- delayed_off: 30ms
|
- delayed_off: 30ms
|
||||||
name: "Button 1: ${switch_1_name}"
|
name: "Button 1: ${switch_1_name}"
|
||||||
on_press:
|
on_multi_click:
|
||||||
|
# Double-click toggles a HA-visible virtual switch only. The double-click pattern is
|
||||||
|
# listed before the single-click pattern so a double-click does not also trigger the
|
||||||
|
# Relay 1 single-click action.
|
||||||
|
- timing:
|
||||||
|
- ON for at most 600ms
|
||||||
|
- OFF for at most 500ms
|
||||||
|
- ON for at most 600ms
|
||||||
|
- OFF for at least 150ms
|
||||||
|
then:
|
||||||
|
- switch.toggle: downstairs_lights_bulk_activation
|
||||||
|
|
||||||
|
# Single-click toggles the local Relay 1. This now waits for the click sequence to
|
||||||
|
# finish so it can distinguish a single-click from a double-click.
|
||||||
|
- timing:
|
||||||
|
- ON for at most 600ms
|
||||||
|
- OFF for at least 500ms
|
||||||
|
then:
|
||||||
- switch.toggle: Relay_1
|
- switch.toggle: Relay_1
|
||||||
|
|
||||||
- platform: gpio
|
- platform: gpio
|
||||||
@@ -288,6 +315,15 @@ binary_sensor:
|
|||||||
# https://esphome.io/components/switch/
|
# https://esphome.io/components/switch/
|
||||||
#:########################################################################################:#
|
#:########################################################################################:#
|
||||||
switch:
|
switch:
|
||||||
|
- platform: template
|
||||||
|
name: "Downstairs Lights Bulk Activation"
|
||||||
|
id: downstairs_lights_bulk_activation
|
||||||
|
icon: "mdi:lightbulb-group"
|
||||||
|
optimistic: true
|
||||||
|
restore_mode: ALWAYS_OFF
|
||||||
|
# HA automation helper only. Double-click Button 1 to toggle this switch on/off.
|
||||||
|
# It does not drive a relay directly and has no custom MQTT command/status topic.
|
||||||
|
|
||||||
- platform: gpio
|
- platform: gpio
|
||||||
name: "Relay 1: ${switch_1_name}"
|
name: "Relay 1: ${switch_1_name}"
|
||||||
pin: GPIO13
|
pin: GPIO13
|
||||||
|
|||||||
@@ -13,6 +13,8 @@
|
|||||||
# https://home.fox.co.nz/gitea/zorruno/zorruno-homeassistant/src/branch/master/esphome/esp-ledmatrix1.yaml
|
# https://home.fox.co.nz/gitea/zorruno/zorruno-homeassistant/src/branch/master/esphome/esp-ledmatrix1.yaml
|
||||||
#:########################################################################################:#
|
#:########################################################################################:#
|
||||||
# VERSIONS:
|
# VERSIONS:
|
||||||
|
# V1.16 2026-06-04 Added leading /s token support for intentional display spaces in scroll and announce text.
|
||||||
|
# V1.15 2026-06-04 Preserved visible leading spaces in long static transition messages using a pixel offset.
|
||||||
# V1.14 2026-06-04 Added per-announcement static wait and stored sound_id parameter.
|
# V1.14 2026-06-04 Added per-announcement static wait and stored sound_id parameter.
|
||||||
# V1.13 2026-06-04 Fixed remaining leading-space stripping in static transitions and MQTT announce parsing.
|
# V1.13 2026-06-04 Fixed remaining leading-space stripping in static transitions and MQTT announce parsing.
|
||||||
# V1.12 2026-06-04 Preserved leading spaces in scroll/static/announcement text for layout control.
|
# V1.12 2026-06-04 Preserved leading spaces in scroll/static/announcement text for layout control.
|
||||||
@@ -70,6 +72,7 @@
|
|||||||
# - The text box clears itself after a valid scroll request is accepted.
|
# - The text box clears itself after a valid scroll request is accepted.
|
||||||
# - Empty scroll requests are ignored and do not replay the previous message.
|
# - Empty scroll requests are ignored and do not replay the previous message.
|
||||||
# - Leading spaces in scroll/static/announcement text are preserved for manual layout control.
|
# - Leading spaces in scroll/static/announcement text are preserved for manual layout control.
|
||||||
|
# - Leading /s tokens are converted to display spaces, so /s/sHello becomes two leading spaces.
|
||||||
# - Long static transition messages use leading spaces as a pixel offset before the text.
|
# - Long static transition messages use leading spaces as a pixel offset before the text.
|
||||||
# - Scroll Delay controls the default delay in milliseconds between scroll steps.
|
# - Scroll Delay controls the default delay in milliseconds between scroll steps.
|
||||||
# - Static Wait Time controls how long static notifications hold before scrolling/returning.
|
# - Static Wait Time controls how long static notifications hold before scrolling/returning.
|
||||||
@@ -159,7 +162,7 @@ substitutions:
|
|||||||
|
|
||||||
# Project Naming
|
# Project Naming
|
||||||
project_name: "Generic.ESP32 Supermini"
|
project_name: "Generic.ESP32 Supermini"
|
||||||
project_version: "v1.15a"
|
project_version: "v1.16"
|
||||||
|
|
||||||
# Passwords & Secrets
|
# Passwords & Secrets
|
||||||
api_key: !secret esp-api_key
|
api_key: !secret esp-api_key
|
||||||
@@ -636,6 +639,29 @@ text:
|
|||||||
s.erase(std::remove_if(s.begin(), s.end(),
|
s.erase(std::remove_if(s.begin(), s.end(),
|
||||||
[](unsigned char c){ return c < 0x20; }), s.end());
|
[](unsigned char c){ return c < 0x20; }), s.end());
|
||||||
|
|
||||||
|
auto expand_leading_space_tokens = [](std::string &s) {
|
||||||
|
int spaces_to_add = 0;
|
||||||
|
size_t pos = 0;
|
||||||
|
|
||||||
|
// Convert leading /s tokens into real display spaces.
|
||||||
|
// Supports /sHello, /s/sHello, and /s/s/s/Hello.
|
||||||
|
while ((pos + 1) < s.length() && s[pos] == '/' && s[pos + 1] == 's') {
|
||||||
|
spaces_to_add += 1;
|
||||||
|
pos += 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Allow one optional separator slash after a run of /s tokens.
|
||||||
|
if (spaces_to_add > 0 && pos < s.length() && s[pos] == '/') {
|
||||||
|
pos += 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (spaces_to_add > 0) {
|
||||||
|
s = std::string(spaces_to_add, ' ') + s.substr(pos);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
expand_leading_space_tokens(s);
|
||||||
|
|
||||||
// Publish the cleaned text so the HA UI updates immediately.
|
// Publish the cleaned text so the HA UI updates immediately.
|
||||||
id(ha_scroll_text).publish_state(s.c_str());
|
id(ha_scroll_text).publish_state(s.c_str());
|
||||||
|
|
||||||
@@ -1635,6 +1661,29 @@ api:
|
|||||||
s.erase(std::remove_if(s.begin(), s.end(),
|
s.erase(std::remove_if(s.begin(), s.end(),
|
||||||
[](unsigned char c){ return c < 0x20; }), s.end());
|
[](unsigned char c){ return c < 0x20; }), s.end());
|
||||||
|
|
||||||
|
auto expand_leading_space_tokens = [](std::string &s) {
|
||||||
|
int spaces_to_add = 0;
|
||||||
|
size_t pos = 0;
|
||||||
|
|
||||||
|
// Convert leading /s tokens into real display spaces.
|
||||||
|
// Supports /sHello, /s/sHello, and /s/s/s/Hello.
|
||||||
|
while ((pos + 1) < s.length() && s[pos] == '/' && s[pos + 1] == 's') {
|
||||||
|
spaces_to_add += 1;
|
||||||
|
pos += 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Allow one optional separator slash after a run of /s tokens.
|
||||||
|
if (spaces_to_add > 0 && pos < s.length() && s[pos] == '/') {
|
||||||
|
pos += 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (spaces_to_add > 0) {
|
||||||
|
s = std::string(spaces_to_add, ' ') + s.substr(pos);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
expand_leading_space_tokens(s);
|
||||||
|
|
||||||
// Ignore empty API scroll commands completely.
|
// Ignore empty API scroll commands completely.
|
||||||
if (s.empty()) return;
|
if (s.empty()) return;
|
||||||
|
|
||||||
@@ -1676,6 +1725,29 @@ mqtt:
|
|||||||
s.erase(std::remove_if(s.begin(), s.end(),
|
s.erase(std::remove_if(s.begin(), s.end(),
|
||||||
[](unsigned char c){ return c < 0x20; }), s.end());
|
[](unsigned char c){ return c < 0x20; }), s.end());
|
||||||
|
|
||||||
|
auto expand_leading_space_tokens = [](std::string &s) {
|
||||||
|
int spaces_to_add = 0;
|
||||||
|
size_t pos = 0;
|
||||||
|
|
||||||
|
// Convert leading /s tokens into real display spaces.
|
||||||
|
// Supports /sHello, /s/sHello, and /s/s/s/Hello.
|
||||||
|
while ((pos + 1) < s.length() && s[pos] == '/' && s[pos + 1] == 's') {
|
||||||
|
spaces_to_add += 1;
|
||||||
|
pos += 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Allow one optional separator slash after a run of /s tokens.
|
||||||
|
if (spaces_to_add > 0 && pos < s.length() && s[pos] == '/') {
|
||||||
|
pos += 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (spaces_to_add > 0) {
|
||||||
|
s = std::string(spaces_to_add, ' ') + s.substr(pos);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
expand_leading_space_tokens(s);
|
||||||
|
|
||||||
// Ignore empty MQTT scroll commands completely.
|
// Ignore empty MQTT scroll commands completely.
|
||||||
if (s.empty()) return;
|
if (s.empty()) return;
|
||||||
|
|
||||||
@@ -1728,6 +1800,29 @@ mqtt:
|
|||||||
message.erase(std::find_if(message.rbegin(), message.rend(),
|
message.erase(std::find_if(message.rbegin(), message.rend(),
|
||||||
[](unsigned char ch){ return !std::isspace(ch); }).base(), message.end());
|
[](unsigned char ch){ return !std::isspace(ch); }).base(), message.end());
|
||||||
|
|
||||||
|
auto expand_leading_space_tokens = [](std::string &s) {
|
||||||
|
int spaces_to_add = 0;
|
||||||
|
size_t pos = 0;
|
||||||
|
|
||||||
|
// Convert leading /s tokens into real display spaces.
|
||||||
|
// Supports /sHello, /s/sHello, and /s/s/s/Hello.
|
||||||
|
while ((pos + 1) < s.length() && s[pos] == '/' && s[pos + 1] == 's') {
|
||||||
|
spaces_to_add += 1;
|
||||||
|
pos += 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Allow one optional separator slash after a run of /s tokens.
|
||||||
|
if (spaces_to_add > 0 && pos < s.length() && s[pos] == '/') {
|
||||||
|
pos += 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (spaces_to_add > 0) {
|
||||||
|
s = std::string(spaces_to_add, ' ') + s.substr(pos);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
expand_leading_space_tokens(message);
|
||||||
|
|
||||||
trim(vars);
|
trim(vars);
|
||||||
|
|
||||||
if (message.empty() || vars.empty()) {
|
if (message.empty() || vars.empty()) {
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ substitutions:
|
|||||||
# Device Naming
|
# Device Naming
|
||||||
device_name: "esp-nspanel2lounge"
|
device_name: "esp-nspanel2lounge"
|
||||||
friendly_name: "Lounge NSPanel Touchscreen"
|
friendly_name: "Lounge NSPanel Touchscreen"
|
||||||
description_comment: "D1 Mini ESP32 outside entranceway with BT Proxy (Layout V1.1)"
|
description_comment: "NS Panel Touchscreen Lounge"
|
||||||
device_area: "Lounge" # Allows ESP device to be automatically linked to an 'Area' in Home Assistant.
|
device_area: "Lounge" # Allows ESP device to be automatically linked to an 'Area' in Home Assistant.
|
||||||
|
|
||||||
# Removed as the remote package will pull this in correctly for the blueprint
|
# Removed as the remote package will pull this in correctly for the blueprint
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -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 }}"
|
||||||
|
|||||||
@@ -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) }}"
|
||||||
|
|||||||
Reference in New Issue
Block a user