viewroad-status/jobs_tracker/dog_feeding_morning,{  "job_id": "dog_feeding_morning",  "job_name": "Dog Feeding Morning",  "repeat": "daily",  "due_time": "06:00",  "due_weekday": 0,  "due_day": 1,  "state": "Missed",  "complete": false,  "last_completed_ts": 1786144419.148793,  "last_completed_time": "11:13",  "last_completed_human": "Yesterday @ 11:13",  "previous_period_start_ts": 1786104000.0,  "previous_due_ts": 1786125600.0,  "previous_completed": true,  "previous_missed": false,  "previous_missed_active": false,  "missed": true,  "completion_window_start": "00:00",  "completion_window_end": "11:59",  "has_completion_window": true,  "completion_window_missed": true,  "current_completion_window_start_ts": 1786190400.0,  "current_completion_window_end_ts": 1786233599.0,  "completed_for_period_ts": 0.0,  "completed_for_due_ts": 0.0,  "current_period_start_ts": 1786190400.0,  "next_period_start_ts": 1786276800.0,  "current_due_ts": 1786212000.0,  "next_due_ts": 1786298400.0,  "display_due_ts": 1786212000.0,  "next_due_human": "Today @ 06:00",  "due_started": true,  "overdue_started": true,  "minutes_since_required": 603,  "hours_since_required": 10,  "overdue_after_minutes": 120,  "overdue_minutes": 0,  "overdue_hours": 0,  "hours_since_completed": 29,  "last_updated_local": "2026-08-09 16:03:00",  "mqtt_topic": "viewroad-status/jobs_tracker/dog_feeding_morning"}
viewroad-status/jobs_tracker/dog_feeding_evening,{  "job_id": "dog_feeding_evening",  "job_name": "Dog Feeding Evening",  "repeat": "daily",  "due_time": "17:00",  "due_weekday": 0,  "due_day": 1,  "state": "Complete",  "complete": true,  "last_completed_ts": 1786241366.470674,  "last_completed_time": "14:09",  "last_completed_human": "14:09",  "previous_period_start_ts": 1786104000.0,  "previous_due_ts": 1786165200.0,  "previous_completed": false,  "previous_missed": true,  "previous_missed_active": false,  "missed": false,  "completion_window_start": "12:00",  "completion_window_end": "23:59",  "has_completion_window": true,  "completion_window_missed": false,  "current_completion_window_start_ts": 1786233600.0,  "current_completion_window_end_ts": 1786276799.0,  "completed_for_period_ts": 1786190400.0,  "completed_for_due_ts": 1786190400.0,  "current_period_start_ts": 1786190400.0,  "next_period_start_ts": 1786276800.0,  "current_due_ts": 1786251600.0,  "next_due_ts": 1786338000.0,  "display_due_ts": 1786338000.0,  "next_due_human": "Tomorrow @ 17:00",  "due_started": false,  "overdue_started": false,  "minutes_since_required": 0,  "hours_since_required": 0,  "overdue_after_minutes": 120,  "overdue_minutes": 0,  "overdue_hours": 0,  "hours_since_completed": 2,  "last_updated_local": "2026-08-09 16:03:00",  "mqtt_topic": "viewroad-status/jobs_tracker/dog_feeding_evening"}
viewroad-status/jobs_tracker/dog_depooping,{  "job_id": "dog_depooping",  "job_name": "Dog De-pooping",  "repeat": "weekly",  "due_time": "08:00",  "due_weekday": 4,  "due_day": 1,  "state": "Complete",  "complete": true,  "last_completed_ts": 1786144418.015302,  "last_completed_time": "11:13",  "last_completed_human": "Yesterday @ 11:13",  "previous_period_start_ts": 1785067200.0,  "previous_due_ts": 1785441600.0,  "previous_completed": false,  "previous_missed": true,  "previous_missed_active": false,  "missed": false,  "completion_window_start": "",  "completion_window_end": "",  "has_completion_window": false,  "completion_window_missed": false,  "current_completion_window_start_ts": 0.0,  "current_completion_window_end_ts": 0.0,  "completed_for_period_ts": 1785672000.0,  "completed_for_due_ts": 1785672000.0,  "current_period_start_ts": 1785672000.0,  "next_period_start_ts": 1786276800.0,  "current_due_ts": 1786046400.0,  "next_due_ts": 1786651200.0,  "display_due_ts": 1786651200.0,  "next_due_human": "Next Friday @ 08:00",  "due_started": true,  "overdue_started": true,  "minutes_since_required": 3363,  "hours_since_required": 56,  "overdue_after_minutes": 2880,  "overdue_minutes": 0,  "overdue_hours": 0,  "hours_since_completed": 29,  "last_updated_local": "2026-08-09 16:03:00",  "mqtt_topic": "viewroad-status/jobs_tracker/dog_depooping"}
viewroad-status/jobs_tracker/dishwasher_unpacked,{"complete": false, "completed_for_due_ts": 0.0, "completed_for_period_ts": 0.0, "completion_elapsed_human": "68 hours", "completion_hold_hours": 20.0, "completion_window_end": "", "completion_window_missed": false, "completion_window_start": "", "current_completion_window_end_ts": 0, "current_completion_window_start_ts": 0, "current_due_ts": 1786247100.469644, "current_period_start_ts": 1786247100.469644, "display_due_ts": 1786247100.469644, "due_attribute": "", "due_day": 0, "due_entity": "sensor.appliance_monitor_main_dishwasher_monitor", "due_started": true, "due_state": "Finished", "due_time": "", "due_weekday": 0, "has_completion_window": false, "hours_since_completed": 68, "hours_since_required": 0, "initial_due_behavior": "ignore", "job_id": "dishwasher_unpacked", "job_name": "Unpack the dishwasher", "last_completed_human": "3 days ago @ 19:17", "last_completed_time": "19:17", "last_completed_ts": 1786000653.020492, "last_updated_local": "2026-08-09 16:03:00", "minutes_since_completed": 4125, "minutes_since_required": 18, "missed": false, "mqtt_topic": "viewroad-status/jobs_tracker/dishwasher_unpacked", "next_due_human": "Due now", "next_due_ts": 0, "next_period_start_ts": 0, "once_due_signal_active": false, "once_due_signal_ts": 1786247220.902285, "once_due_ts": 1786247100.469644, "once_pending": true, "overdue_after_minutes": 0, "overdue_hours": 0, "overdue_minutes": 0, "overdue_started": false, "previous_completed": false, "previous_due_ts": 0, "previous_missed": false, "previous_missed_active": false, "previous_period_start_ts": 0, "repeat": "once", "repeat_type": "once", "state": "Due"}
viewroad-status/jobs_tracker/rubbish_removed,{  "job_id": "rubbish_removed",  "job_name": "Take out rubbish",  "repeat": "daily",  "due_time": "15:30",  "due_weekday": 0,  "due_day": 1,  "state": "Due",  "complete": false,  "last_completed_ts": 1786156238.738474,  "last_completed_time": "14:30",  "last_completed_human": "Yesterday @ 14:30",  "previous_period_start_ts": 1786104000.0,  "previous_due_ts": 1786159800.0,  "previous_completed": true,  "previous_missed": false,  "previous_missed_active": false,  "missed": false,  "completion_window_start": "",  "completion_window_end": "",  "has_completion_window": false,  "completion_window_missed": false,  "current_completion_window_start_ts": 0.0,  "current_completion_window_end_ts": 0.0,  "completed_for_period_ts": 0.0,  "completed_for_due_ts": 0.0,  "current_period_start_ts": 1786190400.0,  "next_period_start_ts": 1786276800.0,  "current_due_ts": 1786246200.0,  "next_due_ts": 1786332600.0,  "display_due_ts": 1786246200.0,  "next_due_human": "Today @ 15:30",  "due_started": true,  "overdue_started": false,  "minutes_since_required": 33,  "hours_since_required": 1,  "overdue_after_minutes": 120,  "overdue_minutes": 0,  "overdue_hours": 0,  "hours_since_completed": 26,  "last_updated_local": "2026-08-09 16:03:00",  "mqtt_topic": "viewroad-status/jobs_tracker/rubbish_removed"}
viewroad-status/jobs_tracker/summary,{"complete_count": 3, "due_count": 2, "jobs": [{"completion_elapsed_human": null, "completion_entities": ["event.jobs_dog_fed_button_x14bt_action"], "completion_hold_hours": 3, "completion_window_end": "11:59", "completion_window_missed": true, "completion_window_start": "00:00", "due_attribute": "", "due_day": 1, "due_entity": "", "due_state": "", "due_time": "06:00", "due_weekday": 0, "hours_since_completed": 29, "hours_since_required": 10, "initial_due_behavior": "", "job_id": "dog_feeding_morning", "job_name": "Dog Feeding Morning", "last_completed_human": "Yesterday @ 11:13", "minutes_since_completed": null, "minutes_since_required": 603, "missed": true, "mqtt_topic": "viewroad-status/jobs_tracker/dog_feeding_morning", "next_due_human": "Today @ 06:00", "once_due_ts": null, "once_pending": null, "previous_missed": false, "previous_missed_active": false, "repeat_type": "daily", "state": "Missed", "state_entity": "sensor.jobs_tracker_dog_feeding_morning"}, {"completion_elapsed_human": null, "completion_entities": ["event.jobs_dog_fed_button_x14bt_action"], "completion_hold_hours": 3, "completion_window_end": "23:59", "completion_window_missed": false, "completion_window_start": "12:00", "due_attribute": "", "due_day": 1, "due_entity": "", "due_state": "", "due_time": "17:00", "due_weekday": 0, "hours_since_completed": 2, "hours_since_required": 0, "initial_due_behavior": "", "job_id": "dog_feeding_evening", "job_name": "Dog Feeding Evening", "last_completed_human": "14:09", "minutes_since_completed": null, "minutes_since_required": 0, "missed": false, "mqtt_topic": "viewroad-status/jobs_tracker/dog_feeding_evening", "next_due_human": "Tomorrow @ 17:00", "once_due_ts": null, "once_pending": null, "previous_missed": true, "previous_missed_active": false, "repeat_type": "daily", "state": "Complete", "state_entity": "sensor.jobs_tracker_dog_feeding_evening"}, {"completion_elapsed_human": null, "completion_entities": ["event.jobs_dog_depooped_button_x15bt_action"], "completion_hold_hours": 3, "completion_window_end": "", "completion_window_missed": false, "completion_window_start": "", "due_attribute": "", "due_day": 1, "due_entity": "", "due_state": "", "due_time": "08:00", "due_weekday": 4, "hours_since_completed": 29, "hours_since_required": 56, "initial_due_behavior": "", "job_id": "dog_depooping", "job_name": "Dog De-pooping", "last_completed_human": "Yesterday @ 11:13", "minutes_since_completed": null, "minutes_since_required": 3363, "missed": false, "mqtt_topic": "viewroad-status/jobs_tracker/dog_depooping", "next_due_human": "Next Friday @ 08:00", "once_due_ts": null, "once_pending": null, "previous_missed": true, "previous_missed_active": false, "repeat_type": "weekly", "state": "Complete", "state_entity": "sensor.jobs_tracker_dog_depooping"}, {"completion_elapsed_human": "68 hours", "completion_entities": ["event.kitchen_jobs_kitchen_completed_buttons_button_1"], "completion_hold_hours": 20, "completion_window_end": "", "completion_window_missed": false, "completion_window_start": "", "due_attribute": "", "due_day": 0, "due_entity": "sensor.appliance_monitor_main_dishwasher_monitor", "due_state": "Finished", "due_time": "", "due_weekday": 0, "hours_since_completed": 68, "hours_since_required": 0, "initial_due_behavior": "ignore", "job_id": "dishwasher_unpacked", "job_name": "Unpack the dishwasher", "last_completed_human": "3 days ago @ 19:17", "minutes_since_completed": 4125, "minutes_since_required": 18, "missed": false, "mqtt_topic": "viewroad-status/jobs_tracker/dishwasher_unpacked", "next_due_human": "Due now", "once_due_ts": 1786247100.469644, "once_pending": true, "previous_missed": false, "previous_missed_active": false, "repeat_type": "once", "state": "Due", "state_entity": "sensor.jobs_tracker_dishwasher_unpacked"}, {"completion_elapsed_human": null, "completion_entities": ["event.kitchen_jobs_kitchen_completed_buttons_button_2"], "completion_hold_hours": 3, "completion_window_end": "", "completion_window_missed": false, "completion_window_start": "", "due_attribute": "", "due_day": 1, "due_entity": "", "due_state": "", "due_time": "15:30", "due_weekday": 0, "hours_since_completed": 26, "hours_since_required": 1, "initial_due_behavior": "", "job_id": "rubbish_removed", "job_name": "Take out rubbish", "last_completed_human": "Yesterday @ 14:30", "minutes_since_completed": null, "minutes_since_required": 33, "missed": false, "mqtt_topic": "viewroad-status/jobs_tracker/rubbish_removed", "next_due_human": "Today @ 15:30", "once_due_ts": null, "once_pending": null, "previous_missed": false, "previous_missed_active": false, "repeat_type": "daily", "state": "Due", "state_entity": "sensor.jobs_tracker_rubbish_removed"}, {"completion_elapsed_human": "Never", "completion_entities": [{"entity_id": "binary_sensor.tv_plant_needs_water", "to_state": "off"}], "completion_hold_hours": 3, "completion_window_end": "", "completion_window_missed": false, "completion_window_start": "", "due_attribute": "", "due_day": 0, "due_entity": "binary_sensor.tv_plant_needs_water", "due_state": "on", "due_time": "", "due_weekday": 0, "hours_since_completed": "unknown", "hours_since_required": 0, "initial_due_behavior": "", "job_id": "water_tv_pot_plant", "job_name": "Water TV Pot Plant", "last_completed_human": "Never", "minutes_since_completed": "unknown", "minutes_since_required": 0, "missed": false, "mqtt_topic": "viewroad-status/jobs_tracker/water_tv_pot_plant", "next_due_human": "Waiting for trigger", "once_due_ts": 0.0, "once_pending": false, "previous_missed": false, "previous_missed_active": false, "repeat_type": "once", "state": "Not Due", "state_entity": "sensor.jobs_tracker_water_tv_pot_plant"}, {"completion_elapsed_human": "90 hours", "completion_entities": [{"entity_id": "binary_sensor.table_plant_needs_water", "to_state": "off"}], "completion_hold_hours": 3, "completion_window_end": "", "completion_window_missed": false, "completion_window_start": "", "due_attribute": "", "due_day": 0, "due_entity": "binary_sensor.table_plant_needs_water", "due_state": "on", "due_time": "", "due_weekday": 0, "hours_since_completed": 90, "hours_since_required": 0, "initial_due_behavior": "", "job_id": "water_table_pot_plant", "job_name": "Water Table Pot Plant", "last_completed_human": "4 days ago @ 21:49", "minutes_since_completed": 5413, "minutes_since_required": 0, "missed": false, "mqtt_topic": "viewroad-status/jobs_tracker/water_table_pot_plant", "next_due_human": "Waiting for trigger", "once_due_ts": 1785834240.604805, "once_pending": false, "previous_missed": false, "previous_missed_active": false, "repeat_type": "once", "state": "Not Due", "state_entity": "sensor.jobs_tracker_water_table_pot_plant"}, {"completion_elapsed_human": "49 hours", "completion_entities": ["binary_sensor.esp_laundryenv_laundry_pir", "binary_sensor.laundry_ceiling_pir_x03ir_occupancy"], "completion_hold_hours": 20, "completion_window_end": "", "completion_window_missed": false, "completion_window_start": "", "due_attribute": "", "due_day": 0, "due_entity": "sensor.appliance_monitor_dryer_monitor", "due_state": "Finished", "due_time": "", "due_weekday": 0, "hours_since_completed": 49, "hours_since_required": 0, "initial_due_behavior": "ignore", "job_id": "empty_dryer", "job_name": "Empty the Dryer", "last_completed_human": "2 days ago @ 14:42", "minutes_since_completed": 2960, "minutes_since_required": 0, "missed": false, "mqtt_topic": "viewroad-status/jobs_tracker/empty_dryer", "next_due_human": "Waiting for trigger", "once_due_ts": 1786048140.755156, "once_pending": false, "previous_missed": false, "previous_missed_active": false, "repeat_type": "once", "state": "Not Due", "state_entity": "sensor.jobs_tracker_empty_dryer"}, {"completion_elapsed_human": "13 mins", "completion_entities": ["binary_sensor.esp_laundryenv_laundry_pir", "binary_sensor.laundry_ceiling_pir_x03ir_occupancy"], "completion_hold_hours": 20, "completion_window_end": "", "completion_window_missed": false, "completion_window_start": "", "due_attribute": "", "due_day": 0, "due_entity": "sensor.appliance_monitor_washing_machine_monitor", "due_state": "Finished", "due_time": "", "due_weekday": 0, "hours_since_completed": 0, "hours_since_required": 0, "initial_due_behavior": "ignore", "job_id": "empty_washing_machine", "job_name": "Empty the Washer", "last_completed_human": "15:49", "minutes_since_completed": 13, "minutes_since_required": 0, "missed": false, "mqtt_topic": "viewroad-status/jobs_tracker/empty_washing_machine", "next_due_human": "Waiting for trigger", "once_due_ts": 1786247220.447973, "once_pending": false, "previous_missed": false, "previous_missed_active": false, "repeat_type": "once", "state": "Complete", "state_entity": "sensor.jobs_tracker_empty_washing_machine"}], "last_updated_local": "2026-08-09 16:03:01", "missed_count": 1, "not_due_count": 3, "overdue_count": 0, "previous_missed_count": 1, "state": "2 Due, 1 Missed, 3 Not Due", "total_count": 9, "unknown_count": 0}
viewroad-status/jobs_tracker/water_tv_pot_plant,{"complete": false, "completed_for_due_ts": 0.0, "completed_for_period_ts": 0.0, "completion_elapsed_human": "Never", "completion_hold_hours": 3.0, "completion_window_end": "", "completion_window_missed": false, "completion_window_start": "", "current_completion_window_end_ts": 0, "current_completion_window_start_ts": 0, "current_due_ts": 0.0, "current_period_start_ts": 0.0, "display_due_ts": 0, "due_attribute": "", "due_day": 0, "due_entity": "binary_sensor.tv_plant_needs_water", "due_started": false, "due_state": "on", "due_time": "", "due_weekday": 0, "has_completion_window": false, "hours_since_completed": "unknown", "hours_since_required": 0, "initial_due_behavior": "", "job_id": "water_tv_pot_plant", "job_name": "Water TV Pot Plant", "last_completed_human": "Never", "last_completed_time": "Never", "last_completed_ts": 0.0, "last_updated_local": "2026-08-09 16:03:00", "minutes_since_completed": "unknown", "minutes_since_required": 0, "missed": false, "mqtt_topic": "viewroad-status/jobs_tracker/water_tv_pot_plant", "next_due_human": "Waiting for trigger", "next_due_ts": 0, "next_period_start_ts": 0, "once_due_signal_active": false, "once_due_signal_ts": 1786246919.991207, "once_due_ts": 0.0, "once_pending": false, "overdue_after_minutes": 0, "overdue_hours": 0, "overdue_minutes": 0, "overdue_started": false, "previous_completed": false, "previous_due_ts": 0, "previous_missed": false, "previous_missed_active": false, "previous_period_start_ts": 0, "repeat": "once", "repeat_type": "once", "state": "Not Due"}
viewroad-status/jobs_tracker/water_table_pot_plant,{"complete": false, "completed_for_due_ts": 1785834240.604805, "completed_for_period_ts": 1785834240.604805, "completion_elapsed_human": "90 hours", "completion_hold_hours": 3.0, "completion_window_end": "", "completion_window_missed": false, "completion_window_start": "", "current_completion_window_end_ts": 0, "current_completion_window_start_ts": 0, "current_due_ts": 1785834240.604805, "current_period_start_ts": 1785834240.604805, "display_due_ts": 0, "due_attribute": "", "due_day": 0, "due_entity": "binary_sensor.table_plant_needs_water", "due_started": false, "due_state": "on", "due_time": "", "due_weekday": 0, "has_completion_window": false, "hours_since_completed": 90, "hours_since_required": 0, "initial_due_behavior": "", "job_id": "water_table_pot_plant", "job_name": "Water Table Pot Plant", "last_completed_human": "4 days ago @ 21:49", "last_completed_time": "21:49", "last_completed_ts": 1785923340.924547, "last_updated_local": "2026-08-09 16:03:00", "minutes_since_completed": 5413, "minutes_since_required": 0, "missed": false, "mqtt_topic": "viewroad-status/jobs_tracker/water_table_pot_plant", "next_due_human": "Waiting for trigger", "next_due_ts": 0, "next_period_start_ts": 0, "once_due_signal_active": false, "once_due_signal_ts": 1786247055.542165, "once_due_ts": 1785834240.604805, "once_pending": false, "overdue_after_minutes": 0, "overdue_hours": 0, "overdue_minutes": 0, "overdue_started": false, "previous_completed": false, "previous_due_ts": 0, "previous_missed": false, "previous_missed_active": false, "previous_period_start_ts": 0, "repeat": "once", "repeat_type": "once", "state": "Not Due"}
viewroad-status/jobs_tracker/empty_dryer,{"complete": false, "completed_for_due_ts": 1786048140.755156, "completed_for_period_ts": 1786048140.755156, "completion_elapsed_human": "49 hours", "completion_hold_hours": 20.0, "completion_window_end": "", "completion_window_missed": false, "completion_window_start": "", "current_completion_window_end_ts": 0, "current_completion_window_start_ts": 0, "current_due_ts": 1786048140.755156, "current_period_start_ts": 1786048140.755156, "display_due_ts": 0, "due_attribute": "", "due_day": 0, "due_entity": "sensor.appliance_monitor_dryer_monitor", "due_started": false, "due_state": "Finished", "due_time": "", "due_weekday": 0, "has_completion_window": false, "hours_since_completed": 49, "hours_since_required": 0, "initial_due_behavior": "ignore", "job_id": "empty_dryer", "job_name": "Empty the Dryer", "last_completed_human": "2 days ago @ 14:42", "last_completed_time": "14:42", "last_completed_ts": 1786070552.197665, "last_updated_local": "2026-08-09 16:03:00", "minutes_since_completed": 2960, "minutes_since_required": 0, "missed": false, "mqtt_topic": "viewroad-status/jobs_tracker/empty_dryer", "next_due_human": "Waiting for trigger", "next_due_ts": 0, "next_period_start_ts": 0, "once_due_signal_active": false, "once_due_signal_ts": 1786246911.901469, "once_due_ts": 1786048140.755156, "once_pending": false, "overdue_after_minutes": 0, "overdue_hours": 0, "overdue_minutes": 0, "overdue_started": false, "previous_completed": false, "previous_due_ts": 0, "previous_missed": false, "previous_missed_active": false, "previous_period_start_ts": 0, "repeat": "once", "repeat_type": "once", "state": "Not Due"}
viewroad-status/jobs_tracker/empty_washing_machine,{"complete": true, "completed_for_due_ts": 1786247220.447973, "completed_for_period_ts": 1786247220.447973, "completion_elapsed_human": "13 mins", "completion_hold_hours": 20.0, "completion_window_end": "", "completion_window_missed": false, "completion_window_start": "", "current_completion_window_end_ts": 0, "current_completion_window_start_ts": 0, "current_due_ts": 1786247220.447973, "current_period_start_ts": 1786247220.447973, "display_due_ts": 0, "due_attribute": "", "due_day": 0, "due_entity": "sensor.appliance_monitor_washing_machine_monitor", "due_started": false, "due_state": "Finished", "due_time": "", "due_weekday": 0, "has_completion_window": false, "hours_since_completed": 0, "hours_since_required": 0, "initial_due_behavior": "ignore", "job_id": "empty_washing_machine", "job_name": "Empty the Washer", "last_completed_human": "15:49", "last_completed_time": "15:49", "last_completed_ts": 1786247387.396981, "last_updated_local": "2026-08-09 16:03:00", "minutes_since_completed": 13, "minutes_since_required": 0, "missed": false, "mqtt_topic": "viewroad-status/jobs_tracker/empty_washing_machine", "next_due_human": "Waiting for trigger", "next_due_ts": 0, "next_period_start_ts": 0, "once_due_signal_active": false, "once_due_signal_ts": 1786247760.267239, "once_due_ts": 1786247220.447973, "once_pending": false, "overdue_after_minutes": 0, "overdue_hours": 0, "overdue_minutes": 0, "overdue_started": false, "previous_completed": false, "previous_due_ts": 0, "previous_missed": false, "previous_missed_active": false, "previous_period_start_ts": 0, "repeat": "once", "repeat_type": "once", "state": "Complete"}
