This commit is contained in:
root
2026-08-25 20:02:05 -04:00
parent f8dacd3122
commit cad6ddf7f9
6 changed files with 581 additions and 229 deletions
+1 -1
View File
@@ -8,7 +8,7 @@
to: 'on'
conditions: []
actions:
- action: script.notify_events_alerts
- action: notify.notify_events_alerts
metadata: {}
data:
message: Garage floodlight batteries low
@@ -0,0 +1,213 @@
# Safety, device, and household alert automations.
- id: '1742155540986'
alias: 'Garage Floodlight Low Battery Notification '
description: ''
triggers:
- trigger: state
entity_id: binary_sensor.garage_floodlight_battery
to: 'on'
conditions: []
actions:
- action: script.notify_events_alerts
metadata: {}
data:
message: Garage floodlight batteries low
title: Garage floodlight batteries low
mode: single
- id: '1742841280696'
alias: Triple Threat Anti-Stink Juice Empty
description: ''
triggers:
- trigger: state
entity_id:
- sensor.triple_threat_spray_deodorant_liquid
enabled: true
to: '0'
conditions: []
actions:
- action: notify.notify_events_cats
metadata: {}
data:
message: Triple Threat's Anti-Stinky Juice is Empty
title: Triple Threat's Anti-Stinky Juice is Empty
mode: single
- id: '1742841650033'
alias: The Deuce Litter Level
description: ''
triggers:
- trigger: state
entity_id:
- sensor.the_deuce_litter_level
enabled: true
to: '65'
conditions: []
actions:
- action: notify.notify_events_cats
metadata: {}
data:
message: The Deuce's Litter is Low
title: The Deuce's Litter is Low
mode: single
- id: '1742841709247'
alias: Triple Threat Litter Level Notification
description: ''
triggers:
- trigger: state
entity_id:
- sensor.triple_threat_litter_level
enabled: true
conditions: []
actions:
- action: notify.notify_events_cats
metadata: {}
data:
message: Triple Threat's Litter is Low
title: Triple Threat's Litter is Low
mode: single
- id: '1742841764585'
alias: Cat Crapper 3000 Low Litter Level Notification
description: ''
triggers:
- trigger: state
entity_id:
- sensor.cat_crapper_3000_litter_level
enabled: true
to: '65'
conditions: []
actions:
- action: notify.notify_events_cats
metadata: {}
data:
message: Cat Crapper 3000's Litter is Low
title: Cat Crapper 3000's Litter is Low
mode: single
- id: '1742841838536'
alias: Poop Box Low Litter Level Notification
description: ''
triggers:
- trigger: state
entity_id:
- sensor.poop_box_litter_level
enabled: true
to: '65'
conditions: []
actions:
- action: notify.notify_events_cats
metadata: {}
data:
message: Poop Box's Litter is Low
title: Poop Box's Litter is Low
mode: single
- id: '1742842192548'
alias: Cat Crapper 3000 is full of crap notification
description: ''
triggers:
- trigger: state
entity_id:
- binary_sensor.cat_crapper_3000_wastebin_filled
enabled: true
to: 'on'
conditions: []
actions:
- action: notify.notify_events_cats
metadata: {}
data:
message: Cat Crapper 3000 is full of crap
title: CLEAN Cat Crapper 3000 - it's full of crap
mode: single
- id: '1742842261527'
alias: The Deuce is full of deuces notification
description: ''
triggers:
- trigger: state
entity_id:
- binary_sensor.the_deuce_wastebin_filled
enabled: true
to: 'on'
conditions: []
actions:
- action: notify.notify_events_cats
metadata: {}
data:
message: The Deuce is full of deuces (laundry room)
title: Too many dueces have been dropped!
mode: single
- id: '1742842372471'
alias: The Poop Box has runneth over Notification
description: ''
triggers:
- trigger: state
entity_id:
- binary_sensor.poop_box_wastebin_filled
enabled: true
to: 'on'
conditions: []
actions:
- action: notify.notify_events_cats
metadata: {}
data:
message: The Poop Box has runneth over (basement, left side)
title: The poop box is bursting!!
mode: single
- id: '1742842458817'
alias: Triple Threat Full Notification
description: ''
triggers:
- trigger: state
entity_id:
- binary_sensor.triple_threat_wastebin_filled
enabled: true
to: 'on'
conditions: []
actions:
- action: notify.notify_events_cats
metadata: {}
data:
message: Triple Threat can't take no more! (Basement, right side)
title: Triple Threat can't take no more!
mode: single
- id: '1782932601001'
alias: Luma Smart Litter Box Waste Bin Full Notification
description: Notify when the Petlibro Luma Smart Litter Box waste bin is full.
triggers:
- trigger: state
entity_id:
- binary_sensor.luma_smart_litter_box_waste_bin_full
enabled: true
to: 'on'
conditions: []
actions:
- action: notify.notify_events_cats
metadata: {}
data:
message: Luma Smart Litter Box is full of crap
title: CLEAN Luma Smart Litter Box - it's full of crap
mode: single
- id: '1782932601004'
alias: Luma Smart Litter Box Door Error Notification
description: Notify when the Petlibro Luma Smart Litter Box reports a door error.
triggers:
- trigger: state
entity_id:
- binary_sensor.luma_smart_litter_box_door_error
enabled: true
to: 'on'
conditions: []
actions:
- action: notify.notify_events_cats
metadata: {}
data:
message: Luma Smart Litter Box has a door error
title: Luma Smart Litter Box door error
mode: single
+16 -1
View File
@@ -56,7 +56,22 @@
- action: switch.turn_off
target:
entity_id: switch.parents_window_fan
- action: script.notify_events_alerts
- action: notify.notify_events_alerts
data:
title: Dehumidifier tank is full
message: Dehumidifier tank is full — Parents Window Fan outlet has been turned off.
- id: dehumidifier_tank_sensor_low_battery
alias: Dehumidifier Tank Sensor Low Battery
description: Alert when the dehumidifier tank level sensor battery is at 10% or lower.
mode: single
triggers:
- trigger: numeric_state
entity_id: sensor.water_leak_sensor_battery
below: 10.1
conditions: []
actions:
- action: notify.notify_events_alerts
data:
title: Dehumidifier tank sensor battery low
message: Dehumidifier tank level sensor battery is at {{ states('sensor.water_leak_sensor_battery') }}%. Replace soon.
@@ -0,0 +1,62 @@
# Climate and plug automations.
- id: hermes_ac_controls_matter_plugs
alias: AC controls Matter plugs
description: Turn the four Tapo Matter plugs on while the Ecobee is actively cooling, and off when cooling stops.
mode: restart
triggers:
- trigger: state
entity_id: climate.meat_heater
attribute: hvac_action
to: cooling
id: ac_on
- trigger: state
entity_id: climate.meat_heater
attribute: hvac_action
from: cooling
id: ac_off
conditions: []
actions:
- choose:
- conditions:
- condition: trigger
id: ac_on
sequence:
- action: switch.turn_on
continue_on_error: true
target:
entity_id:
- switch.smart_wi_fi_plug
- switch.smart_wi_fi_plug_2
- switch.smart_wi_fi_plug_3
- switch.smart_wi_fi_plug_4
- conditions:
- condition: trigger
id: ac_off
sequence:
- action: switch.turn_off
continue_on_error: true
target:
entity_id:
- switch.smart_wi_fi_plug
- switch.smart_wi_fi_plug_2
- switch.smart_wi_fi_plug_3
- switch.smart_wi_fi_plug_4
- id: dehumidifier_tank_full_shutoff
alias: Dehumidifier Tank Full - Shut Off Parents Window Fan
description: When the dehumidifier tank level sensor detects water, turn off the Parents Window Fan outlet and send an alerts-channel notification.
mode: single
triggers:
- trigger: state
entity_id: binary_sensor.water_leak_sensor_moisture
to: 'on'
conditions: []
actions:
- action: switch.turn_off
target:
entity_id: switch.parents_window_fan
- action: script.notify_events_alerts
data:
title: Dehumidifier tank is full
message: Dehumidifier tank is full — Parents Window Fan outlet has been turned off.
@@ -0,0 +1,62 @@
# Climate and plug automations.
- id: hermes_ac_controls_matter_plugs
alias: AC controls Matter plugs
description: Turn the four Tapo Matter plugs on while the Ecobee is actively cooling, and off when cooling stops.
mode: restart
triggers:
- trigger: state
entity_id: climate.meat_heater
attribute: hvac_action
to: cooling
id: ac_on
- trigger: state
entity_id: climate.meat_heater
attribute: hvac_action
from: cooling
id: ac_off
conditions: []
actions:
- choose:
- conditions:
- condition: trigger
id: ac_on
sequence:
- action: switch.turn_on
continue_on_error: true
target:
entity_id:
- switch.smart_wi_fi_plug
- switch.smart_wi_fi_plug_2
- switch.smart_wi_fi_plug_3
- switch.smart_wi_fi_plug_4
- conditions:
- condition: trigger
id: ac_off
sequence:
- action: switch.turn_off
continue_on_error: true
target:
entity_id:
- switch.smart_wi_fi_plug
- switch.smart_wi_fi_plug_2
- switch.smart_wi_fi_plug_3
- switch.smart_wi_fi_plug_4
- id: dehumidifier_tank_full_shutoff
alias: Dehumidifier Tank Full - Shut Off Parents Window Fan
description: When the dehumidifier tank level sensor detects water, turn off the Parents Window Fan outlet and send an alerts-channel notification.
mode: single
triggers:
- trigger: state
entity_id: binary_sensor.water_leak_sensor_moisture
to: 'on'
conditions: []
actions:
- action: switch.turn_off
target:
entity_id: switch.parents_window_fan
- action: notify.notify_events_alerts
data:
title: Dehumidifier tank is full
message: Dehumidifier tank is full — Parents Window Fan outlet has been turned off.
+227 -227
View File
@@ -14,24 +14,24 @@
},
"_firmware_jobs": [
{
"job_id": "fb0d0b7ff0d2",
"configuration": "airqualitysensor-1.yaml",
"job_type": "compile",
"status": "failed",
"created_at": "2026-07-27T07:21:36.611284+00:00",
"started_at": "2026-07-27T07:21:36.611485+00:00",
"completed_at": "2026-07-27T07:21:41.771383+00:00",
"compile_started_at": "2026-07-27T07:21:39.348059+00:00",
"compile_ended_at": "2026-07-27T07:21:41.398372+00:00",
"exit_code": 2,
"job_id": "e8cba46416aa",
"configuration": "cat-medication-tracker.yaml",
"job_type": "upload",
"status": "completed",
"created_at": "2026-08-25T17:13:07.335170+00:00",
"started_at": "2026-08-25T17:13:07.335378+00:00",
"completed_at": "2026-08-25T17:13:17.915981+00:00",
"compile_started_at": null,
"compile_ended_at": null,
"exit_code": 0,
"error": null,
"port": "",
"port": "OTA",
"flash_bootloader": false,
"is_deferred_install": false,
"new_name": "",
"depends_on": "",
"dependency_released": false,
"progress": 36,
"progress": 100,
"remote_peer": "",
"remote_job_id": "",
"remote_peer_label": "",
@@ -45,24 +45,24 @@
"failure_reason": ""
},
{
"job_id": "955fff8a799a",
"configuration": "airqualitysensor-3.yaml",
"job_type": "compile",
"status": "failed",
"created_at": "2026-07-27T07:14:31.460949+00:00",
"started_at": "2026-07-27T07:14:31.461165+00:00",
"completed_at": "2026-07-27T07:14:36.603337+00:00",
"compile_started_at": "2026-07-27T07:14:34.168802+00:00",
"compile_ended_at": "2026-07-27T07:14:36.220883+00:00",
"exit_code": 2,
"job_id": "72de2710f09c",
"configuration": "esphome-web-0fdcf4.yaml",
"job_type": "upload",
"status": "completed",
"created_at": "2026-08-25T17:12:14.058447+00:00",
"started_at": "2026-08-25T17:12:14.058680+00:00",
"completed_at": "2026-08-25T17:12:24.831617+00:00",
"compile_started_at": null,
"compile_ended_at": null,
"exit_code": 0,
"error": null,
"port": "",
"port": "OTA",
"flash_bootloader": false,
"is_deferred_install": false,
"new_name": "",
"depends_on": "",
"dependency_released": false,
"progress": 36,
"progress": 100,
"remote_peer": "",
"remote_job_id": "",
"remote_peer_label": "",
@@ -76,24 +76,24 @@
"failure_reason": ""
},
{
"job_id": "829fda33d7de",
"configuration": "airqualitysensor-2.yaml",
"job_type": "compile",
"status": "failed",
"created_at": "2026-07-27T07:07:26.370814+00:00",
"started_at": "2026-07-27T07:07:26.371019+00:00",
"completed_at": "2026-07-27T07:07:31.452971+00:00",
"compile_started_at": "2026-07-27T07:07:29.038276+00:00",
"compile_ended_at": "2026-07-27T07:07:31.083126+00:00",
"exit_code": 2,
"job_id": "21e98ab4e8c7",
"configuration": "master_bedroom_remote.yaml",
"job_type": "upload",
"status": "completed",
"created_at": "2026-08-25T17:10:52.606697+00:00",
"started_at": "2026-08-25T17:10:52.606868+00:00",
"completed_at": "2026-08-25T17:11:03.872155+00:00",
"compile_started_at": null,
"compile_ended_at": null,
"exit_code": 0,
"error": null,
"port": "",
"port": "OTA",
"flash_bootloader": false,
"is_deferred_install": false,
"new_name": "",
"depends_on": "",
"dependency_released": false,
"progress": 36,
"progress": 100,
"remote_peer": "",
"remote_job_id": "",
"remote_peer_label": "",
@@ -107,13 +107,44 @@
"failure_reason": ""
},
{
"job_id": "ad43a991a18a",
"job_id": "82953f10840f",
"configuration": "esp32-h2c-camera.yaml",
"job_type": "upload",
"status": "completed",
"created_at": "2026-08-25T17:10:03.118076+00:00",
"started_at": "2026-08-25T17:10:03.118394+00:00",
"completed_at": "2026-08-25T17:10:14.503522+00:00",
"compile_started_at": null,
"compile_ended_at": null,
"exit_code": 0,
"error": null,
"port": "OTA",
"flash_bootloader": false,
"is_deferred_install": false,
"new_name": "",
"depends_on": "",
"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": "",
"target_esphome_version": "",
"failure_reason": ""
},
{
"job_id": "ed5f7aab455a",
"configuration": "home-energy-monitor.yaml",
"job_type": "upload",
"status": "failed",
"created_at": "2026-07-27T07:00:23.008762+00:00",
"started_at": "2026-07-27T07:00:23.008990+00:00",
"completed_at": "2026-07-27T07:00:26.359238+00:00",
"created_at": "2026-08-25T17:09:19.699824+00:00",
"started_at": "2026-08-25T17:09:19.700048+00:00",
"completed_at": "2026-08-25T17:09:39.124703+00:00",
"compile_started_at": null,
"compile_ended_at": null,
"exit_code": 1,
@@ -138,15 +169,46 @@
"failure_reason": ""
},
{
"job_id": "e5b771bb970a",
"configuration": "home-energy-monitor.yaml",
"job_id": "d2c7207212ee",
"configuration": "airqualitysensor-1.yaml",
"job_type": "compile",
"status": "failed",
"created_at": "2026-08-25T17:08:34.612670+00:00",
"started_at": "2026-08-25T17:13:07.344216+00:00",
"completed_at": "2026-08-25T17:13:36.415421+00:00",
"compile_started_at": "2026-08-25T17:13:10.099364+00:00",
"compile_ended_at": "2026-08-25T17:13:36.015606+00:00",
"exit_code": 2,
"error": null,
"port": "",
"flash_bootloader": false,
"is_deferred_install": false,
"new_name": "",
"depends_on": "",
"dependency_released": false,
"progress": 36,
"remote_peer": "",
"remote_job_id": "",
"remote_peer_label": "",
"device_name": "",
"device_friendly_name": "",
"source": "local",
"source_pin_sha256": "",
"source_label": "",
"source_esphome_version": "",
"target_esphome_version": "",
"failure_reason": ""
},
{
"job_id": "c5628c6fe3f9",
"configuration": "cat-medication-tracker.yaml",
"job_type": "compile",
"status": "completed",
"created_at": "2026-07-27T07:00:00.371453+00:00",
"started_at": "2026-07-27T07:00:00.371688+00:00",
"completed_at": "2026-07-27T07:00:23.000274+00:00",
"compile_started_at": "2026-07-27T07:00:04.213437+00:00",
"compile_ended_at": "2026-07-27T07:00:22.847591+00:00",
"created_at": "2026-08-25T17:08:34.612589+00:00",
"started_at": "2026-08-25T17:12:14.060061+00:00",
"completed_at": "2026-08-25T17:13:07.332159+00:00",
"compile_started_at": "2026-08-25T17:12:17.324534+00:00",
"compile_ended_at": "2026-08-25T17:13:07.038881+00:00",
"exit_code": 0,
"error": null,
"port": "",
@@ -155,7 +217,7 @@
"new_name": "",
"depends_on": "",
"dependency_released": false,
"progress": 51,
"progress": 46,
"remote_peer": "",
"remote_job_id": "",
"remote_peer_label": "",
@@ -169,24 +231,24 @@
"failure_reason": ""
},
{
"job_id": "2da5cdb4e646",
"configuration": "esp32-h2c-camera.yaml",
"job_type": "upload",
"job_id": "9b51425bc5fd",
"configuration": "esphome-web-0fdcf4.yaml",
"job_type": "compile",
"status": "completed",
"created_at": "2026-07-24T07:39:25.274500+00:00",
"started_at": "2026-07-24T07:39:25.274671+00:00",
"completed_at": "2026-07-24T07:39:35.278237+00:00",
"compile_started_at": null,
"compile_ended_at": null,
"created_at": "2026-08-25T17:08:34.611953+00:00",
"started_at": "2026-08-25T17:11:31.525760+00:00",
"completed_at": "2026-08-25T17:12:14.055080+00:00",
"compile_started_at": "2026-08-25T17:11:33.943583+00:00",
"compile_ended_at": "2026-08-25T17:12:13.903587+00:00",
"exit_code": 0,
"error": null,
"port": "OTA",
"port": "",
"flash_bootloader": false,
"is_deferred_install": false,
"new_name": "",
"depends_on": "",
"dependency_released": false,
"progress": 100,
"progress": 45,
"remote_peer": "",
"remote_job_id": "",
"remote_peer_label": "",
@@ -200,15 +262,108 @@
"failure_reason": ""
},
{
"job_id": "997825760366",
"job_id": "c17bc9735983",
"configuration": "airqualitysensor-2.yaml",
"job_type": "compile",
"status": "failed",
"created_at": "2026-08-25T17:08:34.611689+00:00",
"started_at": "2026-08-25T17:11:20.773213+00:00",
"completed_at": "2026-08-25T17:11:31.523569+00:00",
"compile_started_at": "2026-08-25T17:11:23.438058+00:00",
"compile_ended_at": "2026-08-25T17:11:31.129798+00:00",
"exit_code": 2,
"error": null,
"port": "",
"flash_bootloader": false,
"is_deferred_install": false,
"new_name": "",
"depends_on": "",
"dependency_released": false,
"progress": 36,
"remote_peer": "",
"remote_job_id": "",
"remote_peer_label": "",
"device_name": "",
"device_friendly_name": "",
"source": "local",
"source_pin_sha256": "",
"source_label": "",
"source_esphome_version": "",
"target_esphome_version": "",
"failure_reason": ""
},
{
"job_id": "53688a31ab7e",
"configuration": "airqualitysensor-3.yaml",
"job_type": "compile",
"status": "failed",
"created_at": "2026-08-25T17:08:34.611262+00:00",
"started_at": "2026-08-25T17:10:52.607651+00:00",
"completed_at": "2026-08-25T17:11:20.770778+00:00",
"compile_started_at": "2026-08-25T17:10:55.391985+00:00",
"compile_ended_at": "2026-08-25T17:11:20.369024+00:00",
"exit_code": 2,
"error": null,
"port": "",
"flash_bootloader": false,
"is_deferred_install": false,
"new_name": "",
"depends_on": "",
"dependency_released": false,
"progress": 36,
"remote_peer": "",
"remote_job_id": "",
"remote_peer_label": "",
"device_name": "",
"device_friendly_name": "",
"source": "local",
"source_pin_sha256": "",
"source_label": "",
"source_esphome_version": "",
"target_esphome_version": "",
"failure_reason": ""
},
{
"job_id": "468e9a36ec00",
"configuration": "master_bedroom_remote.yaml",
"job_type": "compile",
"status": "completed",
"created_at": "2026-08-25T17:08:34.610981+00:00",
"started_at": "2026-08-25T17:10:03.119630+00:00",
"completed_at": "2026-08-25T17:10:52.603155+00:00",
"compile_started_at": "2026-08-25T17:10:06.055959+00:00",
"compile_ended_at": "2026-08-25T17:10:52.447504+00:00",
"exit_code": 0,
"error": null,
"port": "",
"flash_bootloader": false,
"is_deferred_install": false,
"new_name": "",
"depends_on": "",
"dependency_released": false,
"progress": 45,
"remote_peer": "",
"remote_job_id": "",
"remote_peer_label": "",
"device_name": "",
"device_friendly_name": "",
"source": "local",
"source_pin_sha256": "",
"source_label": "",
"source_esphome_version": "",
"target_esphome_version": "",
"failure_reason": ""
},
{
"job_id": "65e32da12565",
"configuration": "esp32-h2c-camera.yaml",
"job_type": "compile",
"status": "completed",
"created_at": "2026-07-24T07:38:45.083121+00:00",
"started_at": "2026-07-24T07:38:45.083333+00:00",
"completed_at": "2026-07-24T07:39:25.271318+00:00",
"compile_started_at": "2026-07-24T07:38:47.313931+00:00",
"compile_ended_at": "2026-07-24T07:39:25.141355+00:00",
"created_at": "2026-08-25T17:08:34.610892+00:00",
"started_at": "2026-08-25T17:09:19.703968+00:00",
"completed_at": "2026-08-25T17:10:03.113846+00:00",
"compile_started_at": "2026-08-25T17:09:22.036209+00:00",
"compile_ended_at": "2026-08-25T17:10:02.973350+00:00",
"exit_code": 0,
"error": null,
"port": "",
@@ -231,46 +386,15 @@
"failure_reason": ""
},
{
"job_id": "c93f8e91e771",
"configuration": "esphome-web-0fdcf4.yaml",
"job_type": "upload",
"status": "completed",
"created_at": "2026-07-24T07:36:30.667449+00:00",
"started_at": "2026-07-24T07:36:30.667628+00:00",
"completed_at": "2026-07-24T07:36:40.818508+00:00",
"compile_started_at": null,
"compile_ended_at": null,
"exit_code": 0,
"error": null,
"port": "OTA",
"flash_bootloader": false,
"is_deferred_install": false,
"new_name": "",
"depends_on": "",
"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": "",
"target_esphome_version": "",
"failure_reason": ""
},
{
"job_id": "5fd4eb50ae57",
"configuration": "esphome-web-0fdcf4.yaml",
"job_id": "9dd090fbbefe",
"configuration": "home-energy-monitor.yaml",
"job_type": "compile",
"status": "completed",
"created_at": "2026-07-24T07:35:51.309141+00:00",
"started_at": "2026-07-24T07:35:51.309336+00:00",
"completed_at": "2026-07-24T07:36:30.664302+00:00",
"compile_started_at": "2026-07-24T07:35:53.650249+00:00",
"compile_ended_at": "2026-07-24T07:36:30.519983+00:00",
"created_at": "2026-08-25T17:08:34.610253+00:00",
"started_at": "2026-08-25T17:08:34.611171+00:00",
"completed_at": "2026-08-25T17:09:19.696372+00:00",
"compile_started_at": "2026-08-25T17:08:39.364612+00:00",
"compile_ended_at": "2026-08-25T17:09:19.527944+00:00",
"exit_code": 0,
"error": null,
"port": "",
@@ -279,131 +403,7 @@
"new_name": "",
"depends_on": "",
"dependency_released": false,
"progress": 45,
"remote_peer": "",
"remote_job_id": "",
"remote_peer_label": "",
"device_name": "",
"device_friendly_name": "",
"source": "local",
"source_pin_sha256": "",
"source_label": "",
"source_esphome_version": "",
"target_esphome_version": "",
"failure_reason": ""
},
{
"job_id": "ecf0e3c53743",
"configuration": "master_bedroom_remote.yaml",
"job_type": "upload",
"status": "completed",
"created_at": "2026-07-24T07:33:36.404139+00:00",
"started_at": "2026-07-24T07:33:36.404306+00:00",
"completed_at": "2026-07-24T07:33:47.000214+00:00",
"compile_started_at": null,
"compile_ended_at": null,
"exit_code": 0,
"error": null,
"port": "OTA",
"flash_bootloader": false,
"is_deferred_install": false,
"new_name": "",
"depends_on": "",
"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": "",
"target_esphome_version": "",
"failure_reason": ""
},
{
"job_id": "d03d1ddb7de6",
"configuration": "master_bedroom_remote.yaml",
"job_type": "compile",
"status": "completed",
"created_at": "2026-07-24T07:32:49.402383+00:00",
"started_at": "2026-07-24T07:32:49.402577+00:00",
"completed_at": "2026-07-24T07:33:36.400215+00:00",
"compile_started_at": "2026-07-24T07:32:52.052074+00:00",
"compile_ended_at": "2026-07-24T07:33:36.247226+00:00",
"exit_code": 0,
"error": null,
"port": "",
"flash_bootloader": false,
"is_deferred_install": false,
"new_name": "",
"depends_on": "",
"dependency_released": false,
"progress": 45,
"remote_peer": "",
"remote_job_id": "",
"remote_peer_label": "",
"device_name": "",
"device_friendly_name": "",
"source": "local",
"source_pin_sha256": "",
"source_label": "",
"source_esphome_version": "",
"target_esphome_version": "",
"failure_reason": ""
},
{
"job_id": "6e0a02e631d2",
"configuration": "cat-medication-tracker.yaml",
"job_type": "upload",
"status": "completed",
"created_at": "2026-07-24T07:08:15.605119+00:00",
"started_at": "2026-07-24T07:08:15.605287+00:00",
"completed_at": "2026-07-24T07:08:24.773603+00:00",
"compile_started_at": null,
"compile_ended_at": null,
"exit_code": 0,
"error": null,
"port": "OTA",
"flash_bootloader": false,
"is_deferred_install": false,
"new_name": "",
"depends_on": "",
"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": "",
"target_esphome_version": "",
"failure_reason": ""
},
{
"job_id": "1a449f54a633",
"configuration": "cat-medication-tracker.yaml",
"job_type": "compile",
"status": "completed",
"created_at": "2026-07-24T07:07:27.593306+00:00",
"started_at": "2026-07-24T07:07:27.593633+00:00",
"completed_at": "2026-07-24T07:08:15.601210+00:00",
"compile_started_at": "2026-07-24T07:07:31.024600+00:00",
"compile_ended_at": "2026-07-24T07:08:15.335977+00:00",
"exit_code": 0,
"error": null,
"port": "",
"flash_bootloader": false,
"is_deferred_install": false,
"new_name": "",
"depends_on": "",
"dependency_released": false,
"progress": 46,
"progress": 51,
"remote_peer": "",
"remote_job_id": "",
"remote_peer_label": "",