From 3d28eeffbfced54930dd67c2b94464dbf55b90bb Mon Sep 17 00:00:00 2001 From: Carlo Costanzo Date: Tue, 29 Sep 2026 09:43:31 -0400 Subject: [PATCH] Dispatch JuiceBox investigation before critical alert --- .../infrastructure/partials/car_sections.yaml | 17 ++- .../partials/home_sections.yaml | 12 +- config/packages/README.md | 4 +- config/packages/tesla_model_y.yaml | 103 ++++++++++++++---- 4 files changed, 97 insertions(+), 39 deletions(-) diff --git a/config/dashboards/infrastructure/partials/car_sections.yaml b/config/dashboards/infrastructure/partials/car_sections.yaml index 69068a9e..ccfebb3e 100644 --- a/config/dashboards/infrastructure/partials/car_sections.yaml +++ b/config/dashboards/infrastructure/partials/car_sections.yaml @@ -12,8 +12,9 @@ # Notes: Useful tiles use restored last-valid values without timestamp churn. # Notes: Raw JuiceBox energy retains long-term history; power is session-only. # Notes: The Tesla's Home location charge-current setting is intentionally 16 A. -# Notes: JuicePassProxy shows OFFLINE immediately and becomes a Systems fault -# after five continuous minutes; neither dashboard exposes writable controls. +# Notes: Proxy health follows live MQTT reports rather than Portainer state; +# three missing minutes dispatch Joanna and five become a Systems fault. +# Notes: Neither dashboard exposes writable controls. ###################################################################### # ------------------------------------------------------------------- @@ -140,22 +141,20 @@ - type: custom:button-card template: bearstone_infra_status_kpi - entity: sensor.juicepassproxy_state + entity: sensor.juicepassproxy_mqtt_heartbeat name: Proxy icon: mdi:shield-check variables: status_severity: > [[[ if (states['binary_sensor.juicepassproxy_monitoring_degraded']?.state === 'on') return 'critical'; - const running = String(entity?.state ?? '').toLowerCase() === 'running'; - const healthy = String(states['sensor.juicepassproxy_health']?.state ?? '').toLowerCase() === 'healthy'; - return running && healthy ? 'healthy' : 'warning'; + return entity?.state === 'online' ? 'healthy' : 'warning'; ]]] state_display: > [[[ - const running = String(entity?.state ?? '').toLowerCase() === 'running'; - const healthy = String(states['sensor.juicepassproxy_health']?.state ?? '').toLowerCase() === 'healthy'; - return running && healthy ? 'ONLINE' : 'OFFLINE'; + if (entity?.state === 'online') return 'REPORTING'; + return states['binary_sensor.juicepassproxy_monitoring_degraded']?.state === 'on' + ? 'NO REPORTS' : 'VERIFYING'; ]]] # ------------------------------------------------------------------- diff --git a/config/dashboards/infrastructure/partials/home_sections.yaml b/config/dashboards/infrastructure/partials/home_sections.yaml index e2289458..2ac94e8f 100644 --- a/config/dashboards/infrastructure/partials/home_sections.yaml +++ b/config/dashboards/infrastructure/partials/home_sections.yaml @@ -17,8 +17,8 @@ # Notes: Water and Systems surface normalized Rheem faults; telemetry-only loss renders amber. # Notes: Back to Overview is the first control in the landing-view navigation strip. # Notes: UPS health covers both Garage and Office NUT servers and drills into the shared UPS view. -# Notes: A JuicePassProxy outage becomes a critical Systems issue after five -# continuous minutes and drills into the Car view. +# Notes: Missing JuiceBox MQTT reports become a critical Systems issue after +# five minutes; fresh reports clear it and restore the Car view. ###################################################################### # ------------------------------------------------------------------- @@ -153,7 +153,7 @@ ]]] state_display: > [[[ - if (states['binary_sensor.juicepassproxy_monitoring_degraded']?.state === 'on') return 'PROXY OFFLINE'; + if (states['binary_sensor.juicepassproxy_monitoring_degraded']?.state === 'on') return 'MONITOR CHECK'; const battery = Number(entity?.state); if (!Number.isFinite(battery)) return 'NO DATA'; return `${battery.toFixed(0)}%`; @@ -524,12 +524,12 @@ - type: custom:button-card template: bearstone_infra_alert_row entity: binary_sensor.juicepassproxy_monitoring_degraded - name: JuiceBox charging monitor offline + name: JuiceBox monitoring unavailable icon: mdi:ev-station-off variables: alert_kind: binary_on - exception_detail: DO NOT CHARGE - CHECK OR UNPLUG THE TESLA - state_display: '[[[ return "OFFLINE"; ]]]' + exception_detail: NO LIVE REPORTS - CHECK THE TESLA AND CHARGER + state_display: '[[[ return "NO DATA"; ]]]' tap_action: action: navigate navigation_path: /dashboard-infrastructure/car diff --git a/config/packages/README.md b/config/packages/README.md index da7b3b2d..7f44fc0d 100755 --- a/config/packages/README.md +++ b/config/packages/README.md @@ -78,7 +78,7 @@ After Home Assistant starts, Kitchen Show waits three minutes for the initial st | [![YAML source: maintenance_log](https://img.shields.io/static/v1?label=YAML&message=maintenance_log&color=lightgrey&logo=github&logoColor=181717)](maintenance_log.yaml) | Webhook-based water softener salt maintenance logging with idempotent event handling, Activity Feed logging, parser-safe refill cadence history, and dashboard-ready template sensors. [![Watch on YouTube](https://img.shields.io/badge/Watch-YouTube-FF0000?logo=youtube&logoColor=white)](https://youtu.be/_OqTv9i-jAs) [![vCloudInfo Blog Post](https://img.shields.io/static/v1?label=vCloudInfo&message=Blog%20Post&color=21759B&logo=wordpress&logoColor=white)](https://www.vcloudinfo.com/2026/07/home-assistant-water-softener-salt-automation.html) | `automation.maintenance_log_joanna_webhook_ingest`, `sensor.water_softener_salt_average_days_between_refills`, `sensor.water_softener_salt_refill_count`, `sensor.water_softener_salt_total_added` | | [![YAML source: kiosk_tablet](https://img.shields.io/static/v1?label=YAML&message=kiosk_tablet&color=lightgrey&logo=github&logoColor=181717)](kiosk_tablet.yaml) | Shares Garage-then-Front-Door priority plus reusable Bedroom header/alert state while keeping each display purpose-built. The Garage view now remains active for three minutes after both doors close before either kiosk returns to its default dashboard. Bedroom retains Fully wake/drift recovery and SleepIQ screen behavior around a clock-free night-watch display; Kitchen retains its clock/forecast, rotating household context, native camera overlays, Kiosk Satellite idle dimming, and an event-driven household policy that corrects master volume to 13% at 08:00 and startup, and invokes the Dim screensaver while `group.bed` is on or the family is away. Nearby rain or lightning starts one five-minute NOAA radar takeover while the sun is above the horizon; afterward, the rotating Storms Approaching banner can replay the latest 20-minute loop while the event remains active. Actionable banner slides reuse one transient detail timer for NWS instructions, the front-door package view, a person-centered family map, open-entry details, Phyn water status with a confirmed valve-restore action, and hot-water recovery status. Sunset restores the ambient wall immediately. True idle panel-off remains disabled on the Crown LineageOS device until it has a reliable motion-wake input. Fully availability/page/app/power checks plus Kitchen connectivity, current-page, and screenshot freshness keep the Systems Kiosks tab truthful; a reachable Kitchen display remains online while stale session timestamps remain visible only in the telemetry panel. Available Kitchen updates remain advisory telemetry, while stable attention attributes preserve useful outage transitions without recording every heartbeat. At 07:00, Home Assistant requests the pending signed installer and waits two minutes for staging before dispatching Joanna to finish the Android confirmation and verify the Kitchen Show returns to its dashboard; an unsuccessful installation is retried at 07:00 the following day until the update entity confirms success. [![Watch on YouTube](https://img.shields.io/badge/Watch-YouTube-FF0000?logo=youtube&logoColor=white)](https://youtu.be/ChgEu0IDWzc) | `binary_sensor.kiosk_garage_camera_active`, `sensor.kiosk_active_camera_view`, `sensor.bedroom_kiosk_header`, `sensor.kiosk_household_alert`, `binary_sensor.kiosk_rain_radar_weather_event`, `binary_sensor.kiosk_rain_radar_active`, `timer.kitchen_kiosk_radar_display`, `input_text.kitchen_kiosk_detail_view`, `timer.kitchen_kiosk_detail_display`, `script.kitchen_kiosk_show_event`, `script.kitchen_kiosk_show_detail`, `script.kitchen_kiosk_restore_phyn_water`, `binary_sensor.bedroom_kiosk_needs_attention`, `binary_sensor.kiosk_devices_need_attention`, `sensor.alarm_panel_1_current_page`, `button.alarm_panel_1_load_start_url`, `binary_sensor.kitchen_kiosk_should_be_on`, `number.kitchen_show_volume_2`, `light.kitchen_show_screen_2`, `button.kitchen_show_postpone_screensaver_2`, `button.kitchen_show_take_screenshot_2`, `sensor.kitchen_show_active_camera_view_2`, `automation.kitchen_kiosk_satellite_update_joanna_dispatch` | | [![YAML source: powerwall](https://img.shields.io/static/v1?label=YAML&message=powerwall&color=lightgrey&logo=github&logoColor=181717)](powerwall.yaml) | Track Tesla Powerwall grid status, keep a restart-safe outage anchor, publish monitor-only staged resilience recommendations from Home Assistant, handle immediate household load shedding, and alert if the Powerwall stays low after grid power returns. [![Watch on YouTube](https://img.shields.io/badge/Watch-YouTube-FF0000?logo=youtube&logoColor=white)](https://youtu.be/hR_0lFEE2bA) [![vCloudInfo Blog Post](https://img.shields.io/static/v1?label=vCloudInfo&message=Blog%20Post&color=21759B&logo=wordpress&logoColor=white)](https://www.vcloudinfo.com/2026/06/tesla-powerwall-home-assistant-watchdog.html) | `binary_sensor.powerwall_grid_status`, `sensor.powerwall_*`, `input_datetime.power_resilience_outage_started`, `sensor.power_resilience_recommended_stage`, `script.notify_live_activity`, `repairs.create` | -| [![YAML source: tesla_model_y](https://img.shields.io/static/v1?label=YAML&message=tesla_model_y&color=lightgrey&logo=github&logoColor=181717)](tesla_model_y.yaml) | Remind the garage and parents to plug in the Model Y after a low-battery arrival, alert both parents when a reported tire drops below 38.5 PSI, and issue one critical parents push plus a garage announcement when persisted JuiceBox current reaches 20 A. A restoring latch prevents repeat current alarms. Five continuous minutes without a running and healthy JuicePassProxy creates a Systems problem and tells the garage and parents not to charge; recovery is also reported to the parents. Plug-in alerts snooze for 24 hours; tire alerts and Joanna's morning-briefing action item share 1-day and 3-day snoozes. [![Watch on YouTube](https://img.shields.io/badge/Watch-YouTube-FF0000?logo=youtube&logoColor=white)](https://youtu.be/hDNyZfTfTtE) [![vCloudInfo Blog Post](https://img.shields.io/static/v1?label=vCloudInfo&message=Blog%20Post&color=21759B&logo=wordpress&logoColor=white)](https://www.vcloudinfo.com/2026/09/home-assistant-tesla-tire-pressure-alerts.html) | `sensor.spaceship_battery_level`, `sensor.tire_pressure_*`, `sensor.juicebox_current_last_known`, `sensor.juicepassproxy_state`, `sensor.juicepassproxy_health`, `binary_sensor.juicepassproxy_monitoring_degraded`, `switch.spaceship_charge`, `cover.large_garage_door`, `input_boolean.tesla_high_charge_rate_alert_active`, `input_datetime.tesla_model_y_*`, `input_datetime.tesla_tire_pressure_snooze_until`, `notify.alexa_media_garage`, `script.notify_engine` | +| [![YAML source: tesla_model_y](https://img.shields.io/static/v1?label=YAML&message=tesla_model_y&color=lightgrey&logo=github&logoColor=181717)](tesla_model_y.yaml) | Remind the garage and parents to plug in the Model Y after a low-battery arrival, alert both parents when a reported tire drops below 38.5 PSI, and issue one critical parents push plus a garage announcement when persisted JuiceBox current reaches 20 A. A restoring latch prevents repeat current alarms. A missing JuiceBox MQTT heartbeat dispatches Joanna after three minutes and raises a critical Systems alert after five minutes if reports remain absent; fresh reports clear the alert. Portainer status remains diagnostic. Plug-in alerts snooze for 24 hours; tire alerts and Joanna's morning-briefing action item share 1-day and 3-day snoozes. [![Watch on YouTube](https://img.shields.io/badge/Watch-YouTube-FF0000?logo=youtube&logoColor=white)](https://youtu.be/hDNyZfTfTtE) [![vCloudInfo Blog Post](https://img.shields.io/static/v1?label=vCloudInfo&message=Blog%20Post&color=21759B&logo=wordpress&logoColor=white)](https://www.vcloudinfo.com/2026/09/home-assistant-tesla-tire-pressure-alerts.html) | `sensor.spaceship_battery_level`, `sensor.tire_pressure_*`, `sensor.juicebox_current_last_known`, `sensor.juicepassproxy_mqtt_heartbeat`, `binary_sensor.juicepassproxy_investigation_needed`, `binary_sensor.juicepassproxy_monitoring_degraded`, `switch.spaceship_charge`, `cover.large_garage_door`, `input_boolean.tesla_high_charge_rate_alert_active`, `input_datetime.tesla_model_y_*`, `input_datetime.tesla_tire_pressure_snooze_until`, `notify.alexa_media_garage`, `script.notify_engine`, `script.joanna_dispatch` | | [![YAML source: vacuum](https://img.shields.io/static/v1?label=YAML&message=vacuum&color=lightgrey&logo=github&logoColor=181717)](vacuum.yaml) | Dreame away-only vacuum orchestration with room tracking, sweep/mop phases, a four-day start guard, family-return task cancellation, push alerts, and Alexa one-off room cleans. | `input_select.l10s_vacuum_phase`, `sensor.l10s_vacuum_error`, `repairs.create` | | [![YAML source: hass_agent_homepc](https://img.shields.io/static/v1?label=YAML&message=hass_agent_homepc&color=lightgrey&logo=github&logoColor=181717)](hass_agent_homepc.yaml) | Mirrors PC lock/unlock state to the office lamp and wakes `CARLO-HOMEPC` on workday morning bed exits. | `sensor.carlo_homepc_carlo_homepc_sessionstate`, `button.carlo_home`, `switch.office_lamp_switch` | | [![YAML source: sleepiq](https://img.shields.io/static/v1?label=YAML&message=sleepiq&color=lightgrey&logo=github&logoColor=181717)](sleepiq.yaml) | Sleep Number presence/snore automations plus a zero-filtered 14-day score summary; Overview Health keeps the detailed scores, vitals, pressure, and bed controls. | `group.bed`, `binary_sensor.sleepnumber_carlo_carlo_is_in_bed`, `binary_sensor.sleepnumber_carlo_stacey_is_in_bed`, `sensor.sleepnumber_carlo_carlo_sleep_score`, `sensor.sleepnumber_carlo_stacey_sleep_score`, `sensor.sleep_score_14_day_averages`, `number.sleepnumber_carlo_carlo_firmness`, `select.sleepnumber_carlo_foundation_preset_right` | @@ -116,7 +116,7 @@ When a package has a dedicated blog post or video, I link it right inside the YA | [![YAML source: garadget](https://img.shields.io/static/v1?label=YAML&message=garadget&color=lightgrey&logo=github&logoColor=181717)](garadget.yaml) | Garage arrival hub with auto-open guardrails, entry prompts, nighttime reminders, camera context, and the older MQTT/token setup notes. | [![Watch on YouTube](https://img.shields.io/badge/Watch-YouTube-FF0000?logo=youtube&logoColor=white)](https://youtu.be/wFO0H5zgnzk) · [![vCloudInfo Blog Post](https://img.shields.io/static/v1?label=vCloudInfo&message=Blog%20Post&color=21759B&logo=wordpress&logoColor=white)](https://www.vcloudinfo.com/2026/05/home-assistant-garage-automations-arrival-alerts-tesla.html) · [![vCloudInfo Blog Post](https://img.shields.io/static/v1?label=vCloudInfo&message=Blog%20Post&color=21759B&logo=wordpress&logoColor=white)](https://www.vcloudinfo.com/2019/03/how-to-add-garadget-to-home-assistant.html) · [![vCloudInfo Blog Post](https://img.shields.io/static/v1?label=vCloudInfo&message=Blog%20Post&color=21759B&logo=wordpress&logoColor=white)](https://www.vcloudinfo.com/2020/05/fixing-garadget-in-home-assistant.html) | | [![YAML source: garage_entry_light](https://img.shields.io/static/v1?label=YAML&message=garage_entry_light&color=lightgrey&logo=github&logoColor=181717)](../automation/garage_entry_light.yaml) | Simple door-open and door-closed hallway lighting pattern from the garage walkthrough. | [![Watch on YouTube](https://img.shields.io/badge/Watch-YouTube-FF0000?logo=youtube&logoColor=white)](https://youtu.be/wFO0H5zgnzk) · [![vCloudInfo Blog Post](https://img.shields.io/static/v1?label=vCloudInfo&message=Blog%20Post&color=21759B&logo=wordpress&logoColor=white)](https://www.vcloudinfo.com/2026/05/home-assistant-garage-automations-arrival-alerts-tesla.html) | | [![YAML source: kiosk_tablet](https://img.shields.io/static/v1?label=YAML&message=kiosk_tablet&color=lightgrey&logo=github&logoColor=181717)](kiosk_tablet.yaml) + [Bedroom dashboard](../dashboards/bedroom) + [Kiosk Satellite preview](../dashboards/kiosk_satellite_staging) | Shared event priority with purpose-built display surfaces: clock-free Bedroom night-watch context and cameras through Fully, plus Kitchen clock/forecast, reminders, native camera overlays, motion-aware dimming, and household-aware screen power through Kiosk Satellite. | [![Watch on YouTube](https://img.shields.io/badge/Watch-YouTube-FF0000?logo=youtube&logoColor=white)](https://youtu.be/ChgEu0IDWzc) · [![vCloudInfo Blog Post](https://img.shields.io/static/v1?label=vCloudInfo&message=Blog%20Post&color=21759B&logo=wordpress&logoColor=white)](https://www.vcloudinfo.com/2017/08/project-update-visualization-of-home.html) | -| [![YAML source: tesla_model_y](https://img.shields.io/static/v1?label=YAML&message=tesla_model_y&color=lightgrey&logo=github&logoColor=181717)](tesla_model_y.yaml) | Tesla Fleet tire-pressure alerts with a shared briefing snooze, garage-close arrival signals for low-battery plug-in reminders, a JuiceBox-only 20 A current alarm, and a five-minute JuicePassProxy monitoring outage alert. | [![Watch tire-pressure video](https://img.shields.io/badge/Watch-Tire%20Pressure-FF0000?logo=youtube&logoColor=white)](https://youtu.be/hDNyZfTfTtE) · [![Tire-pressure blog post](https://img.shields.io/static/v1?label=vCloudInfo&message=Tire%20Pressure&color=21759B&logo=wordpress&logoColor=white)](https://www.vcloudinfo.com/2026/09/home-assistant-tesla-tire-pressure-alerts.html) · [![Watch garage video](https://img.shields.io/badge/Watch-Garage%20Automations-FF0000?logo=youtube&logoColor=white)](https://youtu.be/wFO0H5zgnzk) · [![Garage automations blog post](https://img.shields.io/static/v1?label=vCloudInfo&message=Garage%20Automations&color=21759B&logo=wordpress&logoColor=white)](https://www.vcloudinfo.com/2026/05/home-assistant-garage-automations-arrival-alerts-tesla.html) | +| [![YAML source: tesla_model_y](https://img.shields.io/static/v1?label=YAML&message=tesla_model_y&color=lightgrey&logo=github&logoColor=181717)](tesla_model_y.yaml) | Tesla Fleet tire-pressure alerts with a shared briefing snooze, garage-close arrival signals for low-battery plug-in reminders, a JuiceBox-only 20 A current alarm, and a three-minute Joanna investigation followed by a five-minute critical alert for missing JuiceBox MQTT reports, with automatic clearing when reports resume. | [![Watch tire-pressure video](https://img.shields.io/badge/Watch-Tire%20Pressure-FF0000?logo=youtube&logoColor=white)](https://youtu.be/hDNyZfTfTtE) · [![Tire-pressure blog post](https://img.shields.io/static/v1?label=vCloudInfo&message=Tire%20Pressure&color=21759B&logo=wordpress&logoColor=white)](https://www.vcloudinfo.com/2026/09/home-assistant-tesla-tire-pressure-alerts.html) · [![Watch garage video](https://img.shields.io/badge/Watch-Garage%20Automations-FF0000?logo=youtube&logoColor=white)](https://youtu.be/wFO0H5zgnzk) · [![Garage automations blog post](https://img.shields.io/static/v1?label=vCloudInfo&message=Garage%20Automations&color=21759B&logo=wordpress&logoColor=white)](https://www.vcloudinfo.com/2026/05/home-assistant-garage-automations-arrival-alerts-tesla.html) | | [![YAML source: llmvision](https://img.shields.io/static/v1?label=YAML&message=llmvision&color=lightgrey&logo=github&logoColor=181717)](llmvision.yaml) | LLM Vision package reminder flow that turns a front-door camera event into a stored package-present state and phone alert. | [![Watch on YouTube](https://img.shields.io/badge/Watch-YouTube-FF0000?logo=youtube&logoColor=white)](https://youtu.be/nAhCezFetvI) | | [![YAML source: maintenance_log](https://img.shields.io/static/v1?label=YAML&message=maintenance_log&color=lightgrey&logo=github&logoColor=181717)](maintenance_log.yaml) + [![YAML source: 09_salt_trends](https://img.shields.io/static/v1?label=YAML&message=09_salt_trends&color=lightgrey&logo=github&logoColor=181717)](../dashboards/infrastructure/views/09_salt_trends.yaml) + [![YAML source: home_water_sections](https://img.shields.io/static/v1?label=YAML&message=home_water_sections&color=lightgrey&logo=github&logoColor=181717)](../dashboards/infrastructure/partials/home_water_sections.yaml) | Water softener salt maintenance flow with a reusable webhook, duplicate protection, helper-backed history, template sensors, and Salt Trends dashboard views. | [![Watch on YouTube](https://img.shields.io/badge/Watch-YouTube-FF0000?logo=youtube&logoColor=white)](https://youtu.be/_OqTv9i-jAs) · [![vCloudInfo Blog Post](https://img.shields.io/static/v1?label=vCloudInfo&message=Blog%20Post&color=21759B&logo=wordpress&logoColor=white)](https://www.vcloudinfo.com/2026/07/home-assistant-water-softener-salt-automation.html) · [Issue #1816](https://github.com/CCOSTAN/Home-AssistantConfig/issues/1816) | | [![YAML source: climate](https://img.shields.io/static/v1?label=YAML&message=climate&color=lightgrey&logo=github&logoColor=181717)](climate.yaml) + [![YAML source: home_water_sections](https://img.shields.io/static/v1?label=YAML&message=home_water_sections&color=lightgrey&logo=github&logoColor=181717)](../dashboards/infrastructure/partials/home_water_sections.yaml) | HVAC blower-failure evidence, runtime-based AC filter reminders, two-unit native NFC tag change capture, per-unit change counts/cadence, reset actions, and 360-day condenser-line cleanout reminders. | [![Watch on YouTube](https://img.shields.io/badge/Watch-YouTube-FF0000?logo=youtube&logoColor=white)](https://youtu.be/nScl2JxYSB8) · [Issue #1817](https://github.com/CCOSTAN/Home-AssistantConfig/issues/1817) · [Issue #273](https://github.com/CCOSTAN/Home-AssistantConfig/issues/273) | diff --git a/config/packages/tesla_model_y.yaml b/config/packages/tesla_model_y.yaml index d0935f95..e595909c 100644 --- a/config/packages/tesla_model_y.yaml +++ b/config/packages/tesla_model_y.yaml @@ -36,8 +36,10 @@ # limit controls. Transient online/offline max-current fields are ignored. # Notes: Persisted JuiceBox current reaching 20 A sends one critical parents # push plus an exact garage announcement; a restoring latch prevents repeats. -# Notes: JuicePassProxy must remain running and healthy. Five continuous minutes -# degraded creates a Systems problem and tells the garage and parents not to charge. +# Notes: Missing proxy MQTT reports dispatch Joanna after three minutes and +# alert the household after five; fresh reports clear the Systems problem. +# Notes: Portainer state remains diagnostic and cannot by itself mark the +# charger monitor offline. # Tire-pressure video: https://youtu.be/hDNyZfTfTtE # Tire-pressure post: https://www.vcloudinfo.com/2026/09/home-assistant-tesla-tire-pressure-alerts.html # Related garage video: https://youtu.be/wFO0H5zgnzk @@ -49,6 +51,15 @@ input_boolean: name: Tesla High Charge Rate Alert Active icon: mdi:car-electric-alert +mqtt: + sensor: + - name: "JuicePassProxy MQTT Heartbeat" + unique_id: juicepassproxy_mqtt_heartbeat + state_topic: "hmd/sensor/JuiceBox/Frequency/state" + value_template: "{{ 'online' }}" + expire_after: 60 + icon: mdi:heart-pulse + input_datetime: tesla_model_y_last_garage_close: name: Tesla Model Y Last Garage Close @@ -65,17 +76,22 @@ input_datetime: template: - binary_sensor: + - name: "JuicePassProxy Investigation Needed" + unique_id: juicepassproxy_investigation_needed + device_class: problem + delay_on: "00:02:00" + state: "{{ not is_state('sensor.juicepassproxy_mqtt_heartbeat', 'online') }}" + - name: "JuicePassProxy Monitoring Degraded" unique_id: juicepassproxy_monitoring_degraded device_class: problem - delay_on: "00:05:00" - state: >- - {{ states('sensor.juicepassproxy_state') != 'running' or - states('sensor.juicepassproxy_health') != 'healthy' }} + delay_on: "00:04:00" + state: "{{ not is_state('sensor.juicepassproxy_mqtt_heartbeat', 'online') }}" attributes: + mqtt_heartbeat: "{{ states('sensor.juicepassproxy_mqtt_heartbeat') }}" source_state: "{{ states('sensor.juicepassproxy_state') }}" source_health: "{{ states('sensor.juicepassproxy_health') }}" - guidance: "Do not charge until JuicePassProxy is running and healthy." + guidance: "Verify charger monitoring before relying on the high-current alert." - triggers: - trigger: state @@ -342,12 +358,17 @@ automation: - alias: "Tesla Model Y - JuicePassProxy Monitoring Alert" id: e4b6bf07-4760-4e7c-b2da-6db234a46df8 - mode: single + mode: parallel + max: 3 trigger: + - platform: state + entity_id: binary_sensor.juicepassproxy_investigation_needed + to: 'on' + id: investigate - platform: state entity_id: binary_sensor.juicepassproxy_monitoring_degraded to: 'on' - id: offline + id: critical - platform: state entity_id: binary_sensor.juicepassproxy_monitoring_degraded from: 'on' @@ -357,26 +378,64 @@ automation: - choose: - conditions: - condition: trigger - id: offline + id: investigate + sequence: + - service: script.joanna_dispatch + continue_on_error: true + data: + trigger_context: "HA automation e4b6bf07-4760-4e7c-b2da-6db234a46df8 (JuicePassProxy Monitoring Alert)" + source: "home_assistant_automation.juicepassproxy_monitoring_alert" + summary: "JuiceBox MQTT reports have been absent for three minutes" + entity_ids: + - sensor.juicepassproxy_mqtt_heartbeat + - binary_sensor.juicepassproxy_investigation_needed + - binary_sensor.juicepassproxy_monitoring_degraded + - sensor.juicepassproxy_state + - sensor.juicepassproxy_health + - sensor.juicebox_status + - sensor.juicebox_current + - sensor.spaceship_charging + diagnostics: >- + mqtt_heartbeat={{ states('sensor.juicepassproxy_mqtt_heartbeat') }}, + proxy_state={{ states('sensor.juicepassproxy_state') }}, + proxy_health={{ states('sensor.juicepassproxy_health') }}, + juicebox_status={{ states('sensor.juicebox_status') }}, + juicebox_current={{ states('sensor.juicebox_current') }} A, + tesla_charging={{ states('sensor.spaceship_charging') }} + request: >- + Verify the owning JuicePassProxy container and recent MQTT reports. + Restore the failed monitoring path when safe; check for an active + deployment before restarting a container. Do not alter charger + limits or interrupt vehicle charging. Report verified recovery. + - service: script.send_to_logbook + data: + topic: "JUICEBOX" + message: >- + JuiceBox MQTT reports were missing for three minutes; Joanna + investigation was requested before alerting the household. + - conditions: + - condition: trigger + id: critical sequence: - parallel: - service: notify.alexa_media_garage continue_on_error: true data: message: >- - Warning. JuiceBox monitoring has been offline for five - minutes. Do not charge. If the Tesla is connected or - charging, check it and unplug it until monitoring returns. + Warning. JuiceBox monitoring reports are still missing + after five minutes. Check the Tesla and charger before + relying on the high-current alert. data: type: announce - service: script.notify_engine continue_on_error: true data: - title: "URGENT: JuiceBox Monitor Offline" + title: "URGENT: Check JuiceBox Monitoring" value1: >- - JuicePassProxy has been offline for five minutes. Do not - charge. If the Tesla is connected or charging, check it - and unplug it until JuiceBox monitoring returns. + JuiceBox MQTT reports are still missing after five + minutes. Joanna was dispatched to investigate. Check the + Tesla and charger; do not rely on the high-current alert + until monitoring returns. who: 'parents' group: 'JuiceBox_Proxy_Offline' level: 'critical' @@ -384,8 +443,8 @@ automation: data: topic: "JUICEBOX" message: >- - JuicePassProxy remained offline for five minutes; garage and - parents were told not to charge and to check or unplug the Tesla. + JuiceBox MQTT reports were still missing after five minutes; + the garage and parents were alerted after Joanna dispatch. - conditions: - condition: trigger id: restored @@ -395,14 +454,14 @@ automation: data: title: "JuiceBox Monitor Restored" value1: >- - JuicePassProxy is running and healthy again. JuiceBox charging - telemetry and the 20 A safety alert are available. + Fresh JuiceBox reports have resumed. Charging telemetry and + the 20 A high-current alert are available again. who: 'parents' group: 'JuiceBox_Proxy_Offline' - service: script.send_to_logbook data: topic: "JUICEBOX" - message: "JuicePassProxy monitoring returned to running and healthy." + message: "Fresh JuiceBox MQTT reports resumed; the monitoring alert cleared." - alias: "Tesla Model Y - Plug In Reminder" id: 6a873341-c823-4d5d-9d42-fc2df52b93db