{"service":"kapok-gateway","git_sha":"23a8bfafe8b9","deployed_at":"5123201a-060a-4a09-bc60-6bdb2d2c4873","cache_age_s":13163,"process":{"uptime_h":66.12,"rss_mb":2585.0,"peak_rss_mb":4836.9},"env":{"DATABASE_URL":true,"VRM_TOKEN":true,"VRM_EMAIL":true,"LODGIFY_API_KEY":true},"grid_and_soc":{"papaya":{"connected":true,"last_update":"a few seconds ago","stale":false,"grid":{"status":"on_battery","grid_w":-6,"note":"grid draw ~-6 W (now)","grid_present":true},"soc":{"status":"moving","value":51.0,"source":"bms","note":"SOC=51.0% (src=bms), last changed 0.1h ago"}},"guava":{"connected":true,"last_update":"a few seconds ago","stale":false,"grid":{"status":"on_battery","grid_w":-7,"note":"grid draw ~-7 W (now)","grid_present":true},"soc":{"status":"moving","value":57.0,"source":"bms","note":"SOC=57.0% (src=bms), last changed 0.1h ago"}},"mango":{"connected":true,"last_update":"a few seconds ago","stale":false,"grid":{"status":"on_battery","grid_w":27,"note":"grid draw ~27 W (now)","grid_present":true},"soc":{"status":"moving","value":77.0,"source":"bms","note":"SOC=77.0% (src=bms), last changed 0.7h ago"}},"sugar_apple":{"connected":true,"last_update":"a few seconds ago","stale":false,"grid":{"status":"holding","grid_w":302,"note":"grid ~302 W — battery at its 30 % floor; the grid carries the load by design","grid_present":true},"soc":{"status":"moving","value":30.0,"source":"bms","note":"SOC=30.0% (src=bms), last changed 0.5h ago"}}},"fleet_outage":{"state":"grid_up","grid_present":4,"grid_absent":0,"total":4},"live":{"papaya":{"pv_w":1157,"pv_by_inst":{"277":600,"278":557},"grid_w":-6,"load_w":550,"batt_w":526,"soc":51.0,"soc_src":"bms","runtime":{"hours":13.5,"label":"12h+","state":"ok","output_dead":false,"on_battery":false,"basis":"hypothetical_if_grid_fails"},"ages":{"pv_w":0,"batt_w":1,"load_w":1,"soc":0,"grid_w":0},"held":{},"stale":false,"feed_state":"live","feed_age_s":0,"updated_utc":"2026-11-13T12:10:02.868224+00:00","shared_live":true,"inv_state":"Bulk","precharge":{"floor":31.0,"level":"normal","charging":false,"title":"automatic pre-charge (Normal): reserve floor 31% held on Cerbo slot 4 until 13:45 AST (the next 13:00 recomputation plus grace) at the latest, holding; from 05:00 AST the floor is lowered each hour by the energy drawn since the night's 04:00 (else 21:00) recomputation and the slot is cleared once solar carries the load"},"shown_age_s":0,"shown_src":"mqtt","upd_label":"","is_old":false},"guava":{"pv_w":316,"pv_by_inst":{"279":161,"278":155},"grid_w":-7,"load_w":1096,"batt_w":-839,"soc":57.0,"soc_src":"bms","runtime":{"hours":9.9,"label":"9.9 hrs","state":"ok","output_dead":false,"on_battery":true,"basis":"live_countdown"},"ages":{"pv_w":0,"batt_w":1,"load_w":1,"soc":0,"grid_w":0},"held":{},"stale":false,"feed_state":"live","feed_age_s":0,"updated_utc":"2026-11-13T12:10:02.920751+00:00","shared_live":true,"inv_state":"Bulk","precharge":null,"shown_age_s":0,"shown_src":"mqtt","upd_label":"","is_old":false},"mango":{"pv_w":198,"pv_by_inst":{"278":0,"279":198},"grid_w":27,"load_w":139,"batt_w":0,"soc":77.0,"soc_src":"bms","runtime":{"hours":18.2,"label":"12h+","state":"ok","output_dead":false,"on_battery":false,"basis":"hypothetical_if_grid_fails"},"ages":{"pv_w":0,"batt_w":0,"load_w":0,"soc":0,"grid_w":0},"held":{},"stale":false,"feed_state":"live","feed_age_s":0,"updated_utc":"2026-11-13T12:10:02.912309+00:00","shared_live":false,"inv_state":"Bulk","precharge":null,"shown_age_s":0,"shown_src":"mqtt","upd_label":"","is_old":false},"sugar_apple":{"pv_w":497,"pv_by_inst":{"279":497,"278":0},"grid_w":302,"load_w":293,"batt_w":459,"soc":30.0,"soc_src":"bms","runtime":{"hours":10.6,"label":"10.6 hrs","state":"ok","output_dead":false,"on_battery":false,"basis":"hypothetical_if_grid_fails"},"ages":{"pv_w":0,"batt_w":1,"load_w":2,"soc":0,"grid_w":0},"held":{},"stale":false,"feed_state":"live","feed_age_s":0,"updated_utc":"2026-11-13T12:10:02.737563+00:00","shared_live":false,"inv_state":"Bulk","precharge":null,"shown_age_s":0,"shown_src":"mqtt","upd_label":"","is_old":false}},"weather":{"temp_f":81,"label":"Mostly clear","emoji":"🌤️","cloud_cover":35},"actuals_archive":{"thread_alive":true,"last_capture_date":"2026-11-12","yield_rows":1136,"ghi_rows":567},"overload_capture":{"connected":"shared-reader","events":0,"samples_seen":7496182,"last_event":null,"started_at":"2026-11-10T18:02:38.057223+00:00","host":null,"excursions":42,"thread_alive":true,"stored_events":1035,"stored_excursions":442},"overload_analysis":{"n":1034,"shape_pct":{"plateau>3s":97,"short1-3s":1,"spike<1s":1},"by_unit_leg":{"guava/L1":{"n":39,"peak_w":{"p50":893,"p90":1848,"max":3574},"imbalance":{"p50":0.6,"p90":1.8,"max":10.8},"pf_p50":0.96,"load_mix":{"resistive":38,"motor":1}},"guava/L2":{"n":465,"peak_w":{"p50":2662,"p90":3220,"max":4235},"imbalance":{"p50":2.7,"p90":15.5,"max":377.2},"pf_p50":0.95,"load_mix":{"resistive":434,"motor":18}},"mango/L1":{"n":95,"peak_w":{"p50":1554,"p90":2568,"max":3721},"imbalance":{"p50":2.8,"p90":28.7,"max":94.9},"pf_p50":0.92,"load_mix":{"resistive":57,"motor":35}},"mango/L2":{"n":65,"peak_w":{"p50":2388,"p90":2693,"max":3356},"imbalance":{"p50":2.4,"p90":15.5,"max":21.3},"pf_p50":0.93,"load_mix":{"resistive":54,"motor":10}},"papaya/L1":{"n":62,"peak_w":{"p50":1581,"p90":2608,"max":3455},"imbalance":{"p50":1.5,"p90":2.5,"max":9.8},"pf_p50":0.97,"load_mix":{"resistive":59,"motor":3}},"papaya/L2":{"n":99,"peak_w":{"p50":1917,"p90":2825,"max":3570},"imbalance":{"p50":3.3,"p90":10.8,"max":22.1},"pf_p50":0.95,"load_mix":{"resistive":97,"motor":1}},"sugar_apple/L1":{"n":188,"peak_w":{"p50":2369,"p90":2940,"max":3569},"imbalance":{"p50":10.1,"p90":20.1,"max":98.0},"pf_p50":0.89,"load_mix":{"resistive":108,"motor":79}},"sugar_apple/L2":{"n":21,"peak_w":{"p50":1755,"p90":2593,"max":3411},"imbalance":{"p50":1.7,"p90":3.9,"max":8.5},"pf_p50":0.85,"load_mix":{"resistive":9,"motor":12}}},"peak_dc_v":{"p95":54.3,"max":58.7},"interpretation":"97% are SUSTAINED plateaus (not inrush) → software leg-balancing / higher leg limit is the primary lever, not a soft-starter; severe leg imbalance at trip on papaya/L2, sugar_apple/L1 → an autotransformer (or moving the hot-leg load) directly targets these","cached":true,"compute_s":1.9},"appliance_register":{"thread_alive":true,"detector_ok":true,"last_capture_date":"2026-11-13","snapshot_days":90,"device_rows":8543},"episode_archive":{"runs":11,"last_run":"2026-11-13T06:33:16.176527+00:00","last_written":887,"total_written":8368,"last_error":null,"thread_alive":true,"banked_episodes":40441,"units":4,"span":"2026-07-05 11:19:05.833377+00:00 → 2026-11-13 06:29:59.973314+00:00"},"finding_promoter":{"runs":6,"last_run":"2026-11-13T06:03:52.455803+00:00","open_findings":1,"last_error":null,"thread_alive":true,"anomaly_held_h":{"sugar_apple":null,"papaya":242.3,"guava":null,"mango":null}},"mqtt_reader":{"connected":true,"host":"mqtt98.victronenergy.com","msgs":169432282,"started_at":"2026-11-10T18:02:38Z","last_error":"[Errno 101] Network is unreachable","consumers":8,"dispatch_errors":0,"resubscribes":1172,"watchdog_reconnects":33,"silent_portals":[],"thread_alive":true},"rest_fallback":{"fetches":144,"errors":4,"served":308,"last_error":"sugar_apple: The read operation timed out","refresh_ticks":3963,"cached_units":["guava","mango","papaya","sugar_apple"],"ttl_s":60.0,"refresher":true},"hires_logger":{"connected":"shared-reader","buffered":87,"written":6971987,"started_at":"2026-11-10T18:02:38.403069+00:00","hourly_rolled_to":"2026-11-13T11:00:00+00:00","thread_alive":true,"rows":8891003,"rows_is":"planner estimate","span_hours":168.0,"span_is":"data extent (persists across restarts), not uptime","hourly_newest_hour":"2026-11-13T10:00:00+00:00"},"detect_job":{"runs":30,"last_run":1794571229.67431,"last_error":null,"last_devices":63},"shade_archiver":{"runs":6,"last_run":1794555048.8282273,"last_error":null,"result":{"baseline_am_mid":0.496,"house1":{"guava":{"unit":"guava","n_clean_days":4,"ready":true,"array_am_mid":0.359,"baseline_am_mid":0.496,"morning_deficit_pct":28,"lost_kwh_day":1.05,"lost_usd_yr":167,"note":"morning runs 72% of the unshaded baseline → ~1.05 kWh/day lost to shade (~$167/yr)"},"mango":{"unit":"mango","n_clean_days":2,"ready":false,"note":"need ≥3 clean (occupied, non-curtailed) Building-1 days to quantify shade"}}},"always_on":{"sugar_apple":{"floor_median_w":675,"floor_min_w":0,"floor_p10_w":26,"night_floor_w":648,"flat_cv":0.83,"legs":[{"leg":"L1","typical_floor_w":658,"lowest_floor_w":2,"on_fraction":0.769,"ever_dropped":true,"substantial":true,"verdict":"runs 77% of the time — cycles off regularly (a normally-behaving or human-toggled load)"},{"leg":"L2","typical_floor_w":11,"lowest_floor_w":0,"on_fraction":0.071,"ever_dropped":true,"substantial":false,"verdict":"minimal (fridge/standby)"}],"n":2262458},"papaya":{"floor_median_w":846,"floor_min_w":305,"floor_p10_w":398,"night_floor_w":1821,"flat_cv":0.7,"legs":[{"leg":"L1","typical_floor_w":256,"lowest_floor_w":94,"on_fraction":0.895,"ever_dropped":true,"substantial":true,"verdict":"runs 89% of the time — cycles off regularly (a normally-behaving or human-toggled load)"},{"leg":"L2","typical_floor_w":466,"lowest_floor_w":211,"on_fraction":1.0,"ever_dropped":false,"substantial":true,"verdict":"runs 100% of the time (rarely off) — near-continuous, consistent with a heating element that mostly can't reach setpoint"}],"n":2307877},"guava":{"floor_median_w":89,"floor_min_w":0,"floor_p10_w":4,"night_floor_w":36,"flat_cv":1.48,"legs":[{"leg":"L1","typical_floor_w":1,"lowest_floor_w":0,"on_fraction":0.093,"ever_dropped":true,"substantial":false,"verdict":"minimal (fridge/standby)"},{"leg":"L2","typical_floor_w":36,"lowest_floor_w":0,"on_fraction":0.175,"ever_dropped":true,"substantial":false,"verdict":"minimal (fridge/standby)"}],"n":2113189},"mango":{"floor_median_w":131,"floor_min_w":32,"floor_p10_w":48,"night_floor_w":136,"flat_cv":1.11,"legs":[{"leg":"L1","typical_floor_w":92,"lowest_floor_w":8,"on_fraction":0.208,"ever_dropped":true,"substantial":false,"verdict":"minimal (fridge/standby)"},{"leg":"L2","typical_floor_w":38,"lowest_floor_w":23,"on_fraction":0.006,"ever_dropped":true,"substantial":false,"verdict":"minimal (fridge/standby)"}],"n":2145260}}},"solar_dark_detector":{"polls":12,"last_poll":"2026-11-13T12:05:55.855549+00:00","opened":0,"resolved":0,"last_error":null,"verdicts":{"solar-dark:guava:278":{"state":"ok","since":null},"solar-dark:mango:279":{"state":"ok","since":null},"solar-dark:papaya:277":{"state":"ok","since":null},"solar-dark:sugar_apple:279":{"state":"ok","since":null},"solar-dark:house2:shared":{"state":"ok","since":null},"solar-dark:house1:shared":{"state":"ok","since":null}},"thread_alive":true},"pv_anomaly_detector":{"polls":3965,"last_poll":"2026-11-13T12:09:43.786772+00:00","opened":1,"closed":0,"moves":0,"last_error":null,"thread_alive":true,"open":["pv-misroute:house2"],"pending":{},"routing":{"house2":"papaya","house1":"guava"}},"stranded_electrons":{"polls":264,"last_poll":"2026-11-13T12:07:00.335411+00:00","opened":0,"closed":0,"last_kwh":{},"last_error":null,"open_episodes":{},"thread_alive":true,"framing":"lower_bound","tomorrow":{"papaya":{"forecast_pv_kwh":15.0,"est_load_kwh":26.0,"absorb_headroom_kwh":9.1,"surplus_kwh":0.0,"note":"schedulable free energy tomorrow if >0 (assumptions: climatological load, absorb=60% of capacity)"},"guava":{"forecast_pv_kwh":8.6,"est_load_kwh":24.4,"absorb_headroom_kwh":9.2,"surplus_kwh":0.0,"note":"schedulable free energy tomorrow if >0 (assumptions: climatological load, absorb=60% of capacity)"}}},"stale_feed_detector":{"polls":792,"last_poll":"2026-11-13T12:07:02.913072+00:00","opened":2,"resolved":2,"last_error":null,"opened_degraded":17,"resolved_degraded":17,"thread_alive":true,"threshold_min":30},"alarm_ingester":{"polls":3620,"last_poll":"2026-11-13T12:09:03.610628+00:00","opened":24,"resolved":26,"last_error":null,"thread_alive":true,"active_now":[]},"vrm_alarm_log":{"polls":264,"ingested":0,"closed":0,"orphans_closed":0,"last_poll":"2026-11-13T11:57:01.481893+00:00","last_error":null,"thread_alive":true,"seen_closed":0,"seen_open":0},"blackout_detector":{"polls":3951,"last_poll":"2026-11-13T12:09:11.544178+00:00","opened":0,"resolved":0,"escalated":0,"indeterminate":0,"last_error":null,"thread_alive":true,"streaks":{}},"cutoff_capture":{"samples":547672,"stops":0,"grid_present_stops":0,"posted":0,"post_failures":0,"dropped":0,"last_error":null,"last_stop":null,"pending":[],"retrying":0,"ring_len":{"papaya":397,"sugar_apple":328,"mango":363,"guava":394},"thread_alive":true,"queued":0,"voltage_stop_shadow":{"sugar_apple":{"model":{"curve":"lowered","offset_v":0.02,"offset_source":"relaxed rest","r_mohm":12.5,"r_source":"default (2 recovery events)","n_rows":942,"n_rest":463,"soc_seen_min":19.0,"i_p50_a":15.903,"i_p90_a":32.157,"fit_days":60,"v_cut_p50":49.126,"stop_soc_p50":4.4,"v_cut_p90":48.816,"stop_soc_p90":4.2,"extrapolated":true},"live":null,"shadow_only":true},"papaya":{"model":{"curve":"lowered","offset_v":-0.044,"offset_source":"relaxed rest","r_mohm":12.85,"r_source":"sag recovery (11 events)","n_rows":16151,"n_rest":7124,"soc_seen_min":14.2,"i_p50_a":12.7,"i_p90_a":38.226,"fit_days":60,"v_cut_p50":49.187,"stop_soc_p50":4.6,"v_cut_p90":48.7,"stop_soc_p90":4.3,"extrapolated":true},"live":null,"shadow_only":true},"guava":{"model":{"curve":"lowered","offset_v":0.066,"offset_source":"relaxed rest","r_mohm":12.5,"r_source":"default (1 recovery events)","n_rows":2963,"n_rest":746,"soc_seen_min":3.0,"i_p50_a":12.764,"i_p90_a":22.017,"fit_days":60,"v_cut_p50":49.185,"stop_soc_p50":4.4,"v_cut_p90":49.009,"stop_soc_p90":4.3,"extrapolated":false},"live":null,"shadow_only":true},"mango":{"model":null,"live":null,"shadow_only":true}}},"overload_nearmiss_detector":{"polls":1974,"last_poll":"2026-11-13T12:09:05.793085+00:00","opened":1,"suppressed":173,"last_error":null,"thread_alive":true,"dc_trip_floors_v":{"sugar_apple":52.2,"papaya":52.3,"guava":51.7,"mango":52.4},"leg_trip_levels_w":{"sugar_apple:L1":2400,"sugar_apple:L2":2400,"papaya:L1":2400,"papaya:L2":2400,"guava:L1":2400,"guava:L2":2607,"mango:L1":2400,"mango:L2":2400}},"bms_module_detector":{"polls":3966,"last_poll":"2026-11-13T12:09:13.959867+00:00","changes":0,"last_error":null,"thread_alive":true,"last_counts":{"sugar_apple":3,"papaya":3,"guava":3,"mango":3}},"can_health_monitor":{"connected":"shared-reader","host":null,"started_at":"2026-11-10T18:02:38.267558+00:00","msgs":169432284,"events":0,"last_error":null,"thread_alive":true,"bms_iface":{"guava":"can0","papaya":"can1","mango":"can1"},"last_counts":{"sugar_apple/vecan0":{"state":"ERROR-PASSIVE","rx":135,"bus_off":0,"restarts":0},"sugar_apple/vecan1":{"state":"ERROR-ACTIVE","rx":0,"bus_off":0,"restarts":0},"guava/can0":{"state":"ERROR-ACTIVE","rx":0,"bus_off":0,"restarts":0},"papaya/can0":{"state":"ERROR-PASSIVE","rx":135,"bus_off":0,"restarts":0},"papaya/can1":{"state":"ERROR-ACTIVE","rx":0,"bus_off":0,"restarts":0},"mango/can0":{"state":"ERROR-PASSIVE","rx":0,"bus_off":0,"restarts":0},"mango/can1":{"state":"ERROR-ACTIVE","rx":0,"bus_off":0,"restarts":0}}},"ess_reconciler":{"ticks":3961,"last_tick":"2026-11-13T12:09:26.451428+00:00","restored":3,"alarms":0,"last_error":null,"thread_alive":true,"started":true,"slot_sweep_pending":[],"slot_orphans":[],"unadopted_slot3":{}},"precharge_floor":{"ticks":782,"last_tick":"2026-11-13T12:06:18.249446+00:00","runs":77,"writes":5,"releases":2,"deferrals":{"not-armed-unbooked":49,"renewed":6,"rewritten":15,"released-morning":2,"written":2,"reapplied-after-grid-return":3},"last_error":null,"scored_days":{"papaya":"2026-11-12","guava":"2026-11-12","mango":"2026-11-12","sugar_apple":"2026-11-12"},"event_failures":0,"rewrites":15,"thread_alive":true,"auto_actor_token_present":true,"stepdown_on":true,"grid_raise":{"on":true,"source":"start","switch":null,"unrecognised":null,"report":{"latest":null,"ended_groups":0,"every":3,"error":null,"retry_at":null}},"next_due":{"time_point":"h13","night_date":"2026-11-13","at_utc":"2026-11-13T17:00:00+00:00"},"units":{"papaya":{"policy":"normal","armed":true,"stop":0.04,"stop_source":"observed stop on the lowered curve, Guava 2026-11-06","raise_until":"2026-11-14T17:00:00+00:00","stop_shadow":{"model":{"curve":"lowered","offset_v":-0.044,"offset_source":"relaxed rest","r_mohm":12.85,"r_source":"sag recovery (11 events)","n_rows":16151,"n_rest":7124,"soc_seen_min":14.2,"i_p50_a":12.7,"i_p90_a":38.226,"fit_days":60,"v_cut_p50":49.187,"stop_soc_p50":4.6,"v_cut_p90":48.7,"stop_soc_p90":4.3,"extrapolated":true},"live":null,"shadow_only":true},"last":{"m07":{"night_date":"2026-11-12","outcome":"rewritten","floor_pct":31.0,"floor_written":31.0,"projection_kwh":1.88,"margin_kwh":2.17,"predictor":"morning step-down: the 04:00 projection minus 6.4 kWh drawn","n_history":null,"booked":null,"booking_state":null,"detail":"slot 4 Soc 46 → 31 % in place; window to 2026-11-13 13:45 AST unchanged; 04:00 projection 8.27 kWh + margin 2.17 kWh, 6.39 kWh drawn over 12 buckets to 07:00: stepped floor 31 % (held 46 %, stop 4 %, capacity 15.10 kWh)","miss":null},"m06":{"night_date":"2026-11-12","outcome":"rewritten","floor_pct":46.0,"floor_written":46.0,"projection_kwh":4.08,"margin_kwh":2.17,"predictor":"morning step-down: the 04:00 projection minus 4.2 kWh drawn","n_history":null,"booked":null,"booking_state":null,"detail":"slot 4 Soc 60 → 46 % in place; window to 2026-11-13 13:45 AST unchanged; 04:00 projection 8.27 kWh + margin 2.17 kWh, 4.19 kWh drawn over 8 buckets to 06:00: stepped floor 46 % (held 60 %, stop 4 %, capacity 15.10 kWh)","miss":null},"m05":{"night_date":"2026-11-12","outcome":"rewritten","floor_pct":60.0,"floor_written":60.0,"projection_kwh":6.27,"margin_kwh":2.17,"predictor":"morning step-down: the 04:00 projection minus 2.0 kWh drawn","n_history":null,"booked":null,"booking_state":null,"detail":"slot 4 Soc 73 → 60 % in place; window to 2026-11-13 13:45 AST unchanged; 04:00 projection 8.27 kWh + margin 2.17 kWh, 2.01 kWh drawn over 4 buckets to 05:00: stepped floor 60 % (held 73 %, stop 4 %, capacity 15.10 kWh)","miss":null},"h04":{"night_date":"2026-11-12","outcome":"rewritten","floor_pct":73.0,"floor_written":73.0,"projection_kwh":8.27,"margin_kwh":2.17,"predictor":"tonight so far + the previous night of the stay (least squares)","n_history":31,"booked":true,"booking_state":"ranges","detail":"slot 4 Soc 99 → 73 % in place; window to 2026-11-13 13:45 AST unchanged; solar: per-array, shared on papaya (stored live:replaces-seed since 2026-11-03 12:59); k_now 5.70 = static:papaya + shared:house2; k shared:house2 2.45, static:papaya 3.25, static:sugar_apple 3.34; 46 nights without routing evidence left out","miss":null},"h21 re-apply":{"night_date":"2026-11-12","outcome":"reapplied-after-grid-return","floor_pct":100.0,"floor_written":99.0,"projection_kwh":26.1,"margin_kwh":3.98,"predictor":"tonight so far + the previous night of the stay (least squares)","n_history":31,"booked":true,"booking_state":"ranges","detail":"solar: per-array, shared on papaya (stored live:replaces-seed since 2026-11-03 12:59); k_now 5.70 = static:papaya + shared:house2; k shared:house2 2.45, static:papaya 3.25, static:sugar_apple 3.34; 46 nights without routing evidence left out","miss":null},"h21":{"night_date":"2026-11-12","outcome":"rewritten","floor_pct":100.0,"floor_written":99.0,"projection_kwh":26.1,"margin_kwh":3.98,"predictor":"tonight so far + the previous night of the stay (least squares)","n_history":31,"booked":true,"booking_state":"ranges","detail":"slot 4 Soc 95 → 99 % in place; window to 2026-11-13 13:45 AST unchanged; solar: per-array, shared on papaya (stored live:replaces-seed since 2026-11-03 12:59); k_now 5.71 = static:papaya + shared:house2; k shared:house2 2.47, static:papaya 3.24, static:sugar_apple 3.34; 46 nights without routing evidence left out","miss":null},"h18":{"night_date":"2026-11-12","outcome":"renewed","floor_pct":95.0,"floor_written":null,"projection_kwh":35.16,"margin_kwh":4.48,"predictor":"previous night of the stay","n_history":31,"booked":true,"booking_state":"ranges","detail":"held floor 95.0 % within one point of 95 %; slot 4 runs to 2026-11-13 13:45 AST, no device write; solar: per-array, shared on papaya (stored live:replaces-seed since 2026-11-03 12:59); k_now 5.71 = static:papaya + shared:house2; k shared:house2 2.47, static:papaya 3.24, static:sugar_apple 3.34; 46 nights without routing evidence left out","miss":null},"h13":{"night_date":"2026-11-12","outcome":"written","floor_pct":95.0,"floor_written":95.0,"projection_kwh":28.67,"margin_kwh":11.47,"predictor":"previous night of the stay, minus the sunshine still to come","n_history":31,"booked":true,"booking_state":"ranges","detail":"solar: per-array, shared on papaya (stored live:replaces-seed since 2026-11-03 12:59); k_now 5.71 = static:papaya + shared:house2; k shared:house2 2.47, static:papaya 3.24, static:sugar_apple 3.34; 46 nights without routing evidence left out","miss":null},"m09":{"night_date":"2026-11-11","outcome":"released-morning","floor_pct":19.0,"floor_written":15.0,"projection_kwh":0.0,"margin_kwh":2.22,"predictor":"morning step-down: the 04:00 projection minus 8.7 kWh drawn","n_history":null,"booked":null,"booking_state":null,"detail":"09:00 step-down: measured solar carried the load for two 15-minute buckets from 08:30 AST (PV 1308 W, load 895 W; PV 1828 W, load 1191 W); 04:00 projection 8.06 kWh + margin 2.22 kWh, 8.71 kWh drawn over 20 buckets to 09:00: stepped floor 19 % (held 19 %, stop 4 %, capacity 15.10 kWh)","miss":null},"m08":{"night_date":"2026-11-11","outcome":"rewritten","floor_pct":19.0,"floor_written":19.0,"projection_kwh":0.0,"margin_kwh":2.22,"predictor":"morning step-down: the 04:00 projection minus 8.6 kWh drawn","n_history":null,"booked":null,"booking_state":null,"detail":"slot 4 Soc 30 → 19 % in place; window to 2026-11-12 13:45 AST unchanged; 04:00 projection 8.06 kWh + margin 2.22 kWh, 8.64 kWh drawn over 16 buckets to 08:00: stepped floor 19 % (held 30 %, stop 4 %, capacity 15.10 kWh)","miss":null},"h18 re-apply":{"night_date":"2026-11-11","outcome":"reapplied-after-grid-return","floor_pct":75.0,"floor_written":75.0,"projection_kwh":31.29,"margin_kwh":3.08,"predictor":"previous night of the stay","n_history":30,"booked":true,"booking_state":"ranges","detail":"solar: per-array, shared on papaya (stored live:replaces-seed since 2026-11-03 12:59); k_now 5.70 = static:papaya + shared:house2; k shared:house2 2.47, static:papaya 3.24, static:sugar_apple 3.34; 46 nights without routing evidence left out","miss":false}},"miss_rate_30d":{"h13":{"n":16,"misses":0,"rate":0.0,"raised":0,"raised_misses":0},"h18":{"n":16,"misses":0,"rate":0.0,"raised":0,"raised_misses":0},"h21":{"n":16,"misses":0,"rate":0.0,"raised":0,"raised_misses":0},"h04":{"n":14,"misses":5,"rate":0.357,"raised":1,"raised_misses":0}},"floor_held":true},"guava":{"policy":"normal","armed":true,"stop":0.04,"stop_source":"cutoff_capture 2026-11-06","raise_until":"2026-11-14T17:00:00+00:00","stop_shadow":{"model":{"curve":"lowered","offset_v":0.066,"offset_source":"relaxed rest","r_mohm":12.5,"r_source":"default (1 recovery events)","n_rows":2963,"n_rest":746,"soc_seen_min":3.0,"i_p50_a":12.764,"i_p90_a":22.017,"fit_days":60,"v_cut_p50":49.185,"stop_soc_p50":4.4,"v_cut_p90":49.009,"stop_soc_p90":4.3,"extrapolated":false},"live":null,"shadow_only":true},"last":{"h04":{"night_date":"2026-11-12","outcome":"not-armed-unbooked","floor_pct":15.0,"floor_written":null,"projection_kwh":0.95,"margin_kwh":0.29,"predictor":"tonight so far (least squares)","n_history":77,"booked":false,"booking_state":"ranges","detail":"solar: per-array, shared on guava (stored live:confirms-seed since 2026-07-15 00:00); k_now 4.59 = static:guava + shared:house1; k shared:house1 1.87, static:guava 2.72, static:mango 2.98; 42 nights without routing evidence left out","miss":null},"h21 re-apply":{"night_date":"2026-11-12","outcome":"not-armed-unbooked","floor_pct":70.0,"floor_written":null,"projection_kwh":7.42,"margin_kwh":2.76,"predictor":"tonight so far (least squares)","n_history":77,"booked":false,"booking_state":"ranges","detail":"solar: per-array, shared on guava (stored live:confirms-seed since 2026-07-15 00:00); k_now 4.59 = static:guava + shared:house1; k shared:house1 1.87, static:guava 2.72, static:mango 2.98; 42 nights without routing evidence left out","miss":null},"h21":{"night_date":"2026-11-12","outcome":"not-armed-unbooked","floor_pct":70.0,"floor_written":null,"projection_kwh":7.42,"margin_kwh":2.76,"predictor":"tonight so far (least squares)","n_history":77,"booked":false,"booking_state":"ranges","detail":"solar: per-array, shared on guava (stored live:confirms-seed since 2026-07-15 00:00); k_now 4.59 = static:guava + shared:house1; k shared:house1 1.87, static:guava 2.72, static:mango 2.99; 42 nights without routing evidence left out","miss":null},"h18":{"night_date":"2026-11-12","outcome":"not-armed-unbooked","floor_pct":78.0,"floor_written":null,"projection_kwh":2.87,"margin_kwh":8.57,"predictor":"history at the policy percentile","n_history":77,"booked":false,"booking_state":"ranges","detail":"solar: per-array, shared on guava (stored live:confirms-seed since 2026-07-15 00:00); k_now 4.59 = static:guava + shared:house1; k shared:house1 1.87, static:guava 2.72, static:mango 2.99; 42 nights without routing evidence left out","miss":null},"h13":{"night_date":"2026-11-12","outcome":"not-armed-unbooked","floor_pct":95.0,"floor_written":null,"projection_kwh":0.63,"margin_kwh":17.49,"predictor":"history at the policy percentile, minus the sunshine still to come","n_history":77,"booked":false,"booking_state":"ranges","detail":"solar: per-array, shared on guava (stored live:confirms-seed since 2026-07-15 00:00); k_now 4.59 = static:guava + shared:house1; k shared:house1 1.87, static:guava 2.72, static:mango 2.99; 42 nights without routing evidence left out","miss":null},"h18 re-apply":{"night_date":"2026-11-11","outcome":"not-armed-unbooked","floor_pct":71.0,"floor_written":null,"projection_kwh":2.89,"margin_kwh":7.36,"predictor":"history at the policy percentile","n_history":76,"booked":false,"booking_state":"ranges","detail":"solar: per-array, shared on guava (stored live:confirms-seed since 2026-07-15 00:00); k_now 4.59 = static:guava + shared:house1; k shared:house1 1.87, static:guava 2.72, static:mango 2.99; 42 nights without routing evidence left out","miss":false},"h13 re-apply":{"night_date":"2026-11-11","outcome":"not-armed-unbooked","floor_pct":75.0,"floor_written":null,"projection_kwh":1.24,"margin_kwh":14.52,"predictor":"history at the policy percentile, minus the sunshine still to come","n_history":76,"booked":false,"booking_state":"ranges","detail":"solar: per-array, shared on guava (stored live:confirms-seed since 2026-07-15 00:00); k_now 4.59 = static:guava + shared:house1; k shared:house1 1.87, static:guava 2.72, static:mango 2.99; 42 nights without routing evidence left out","miss":false}},"miss_rate_30d":{"h13":{"n":16,"misses":4,"rate":0.25,"raised":0,"raised_misses":0},"h18":{"n":16,"misses":5,"rate":0.312,"raised":0,"raised_misses":0},"h21":{"n":16,"misses":3,"rate":0.188,"raised":0,"raised_misses":0},"h04":{"n":14,"misses":2,"rate":0.143,"raised":1,"raised_misses":0}},"floor_held":false},"mango":{"policy":"normal","armed":true,"stop":0.04,"stop_source":"observed stop on the lowered curve, Guava 2026-11-06","raise_until":"2026-11-14T17:00:00+00:00","stop_shadow":{"model":null,"live":null,"shadow_only":true},"last":{"h04":{"night_date":"2026-11-12","outcome":"not-armed-unbooked","floor_pct":15.0,"floor_written":null,"projection_kwh":0.59,"margin_kwh":0.22,"predictor":"tonight so far (least squares)","n_history":105,"booked":false,"booking_state":"ranges","detail":"solar: per-array, shared on guava (stored live:confirms-seed since 2026-07-15 00:00); k_now 2.98 = static:mango; k shared:house1 1.87, static:guava 2.72, static:mango 2.98; 42 nights without routing evidence left out","miss":null},"h21 re-apply":{"night_date":"2026-11-12","outcome":"not-armed-unbooked","floor_pct":19.0,"floor_written":null,"projection_kwh":1.97,"margin_kwh":0.46,"predictor":"tonight so far (least squares)","n_history":105,"booked":false,"booking_state":"ranges","detail":"solar: per-array, shared on guava (stored live:confirms-seed since 2026-07-15 00:00); k_now 2.98 = static:mango; k shared:house1 1.87, static:guava 2.72, static:mango 2.98; 42 nights without routing evidence left out","miss":null},"h21":{"night_date":"2026-11-12","outcome":"not-armed-unbooked","floor_pct":19.0,"floor_written":null,"projection_kwh":1.97,"margin_kwh":0.46,"predictor":"tonight so far (least squares)","n_history":105,"booked":false,"booking_state":"ranges","detail":"solar: per-array, shared on guava (stored live:confirms-seed since 2026-07-15 00:00); k_now 2.99 = static:mango; k shared:house1 1.87, static:guava 2.72, static:mango 2.99; 42 nights without routing evidence left out","miss":null},"h18":{"night_date":"2026-11-12","outcome":"not-armed-unbooked","floor_pct":31.0,"floor_written":null,"projection_kwh":2.88,"margin_kwh":1.32,"predictor":"history at the policy percentile","n_history":105,"booked":false,"booking_state":"ranges","detail":"solar: per-array, shared on guava (stored live:confirms-seed since 2026-07-15 00:00); k_now 2.99 = static:mango; k shared:house1 1.87, static:guava 2.72, static:mango 2.99; 42 nights without routing evidence left out","miss":null},"h13":{"night_date":"2026-11-12","outcome":"not-armed-unbooked","floor_pct":27.0,"floor_written":null,"projection_kwh":0.62,"margin_kwh":2.96,"predictor":"history at the policy percentile, minus the sunshine still to come","n_history":105,"booked":false,"booking_state":"ranges","detail":"solar: per-array, shared on guava (stored live:confirms-seed since 2026-07-15 00:00); k_now 2.99 = static:mango; k shared:house1 1.87, static:guava 2.72, static:mango 2.99; 42 nights without routing evidence left out","miss":null}},"miss_rate_30d":{"h13":{"n":16,"misses":1,"rate":0.062,"raised":0,"raised_misses":0},"h18":{"n":16,"misses":0,"rate":0.0,"raised":0,"raised_misses":0},"h21":{"n":16,"misses":1,"rate":0.062,"raised":0,"raised_misses":0},"h04":{"n":14,"misses":0,"rate":0.0,"raised":1,"raised_misses":0}},"floor_held":false},"sugar_apple":{"policy":"normal","armed":true,"stop":0.04,"stop_source":"observed stop on the lowered curve, Guava 2026-11-06","raise_until":"2026-11-14T17:00:00+00:00","stop_shadow":{"model":{"curve":"lowered","offset_v":0.02,"offset_source":"relaxed rest","r_mohm":12.5,"r_source":"default (2 recovery events)","n_rows":942,"n_rest":463,"soc_seen_min":19.0,"i_p50_a":15.903,"i_p90_a":32.157,"fit_days":60,"v_cut_p50":49.126,"stop_soc_p50":4.4,"v_cut_p90":48.816,"stop_soc_p90":4.2,"extrapolated":true},"live":null,"shadow_only":true},"last":{"h04":{"night_date":"2026-11-12","outcome":"not-armed-unbooked","floor_pct":30.0,"floor_written":null,"projection_kwh":2.19,"margin_kwh":0.22,"predictor":"tonight so far (least squares)","n_history":79,"booked":false,"booking_state":"ranges","detail":"solar: per-array, shared on papaya (stored live:replaces-seed since 2026-11-03 12:59); k_now 3.34 = static:sugar_apple; k shared:house2 2.45, static:papaya 3.25, static:sugar_apple 3.34; 46 nights without routing evidence left out","miss":null},"h21 re-apply":{"night_date":"2026-11-12","outcome":"not-armed-unbooked","floor_pct":59.0,"floor_written":null,"projection_kwh":8.34,"margin_kwh":0.24,"predictor":"tonight so far (least squares)","n_history":79,"booked":false,"booking_state":"ranges","detail":"solar: per-array, shared on papaya (stored live:replaces-seed since 2026-11-03 12:59); k_now 3.34 = static:sugar_apple; k shared:house2 2.45, static:papaya 3.25, static:sugar_apple 3.34; 46 nights without routing evidence left out","miss":null},"h21":{"night_date":"2026-11-12","outcome":"not-armed-unbooked","floor_pct":59.0,"floor_written":null,"projection_kwh":8.34,"margin_kwh":0.24,"predictor":"tonight so far (least squares)","n_history":79,"booked":false,"booking_state":"ranges","detail":"solar: per-array, shared on papaya (stored live:replaces-seed since 2026-11-03 12:59); k_now 3.34 = static:sugar_apple; k shared:house2 2.47, static:papaya 3.24, static:sugar_apple 3.34; 46 nights without routing evidence left out","miss":null},"h18":{"night_date":"2026-11-12","outcome":"not-armed-unbooked","floor_pct":41.0,"floor_written":null,"projection_kwh":3.49,"margin_kwh":2.26,"predictor":"history at the policy percentile","n_history":79,"booked":false,"booking_state":"ranges","detail":"solar: per-array, shared on papaya (stored live:replaces-seed since 2026-11-03 12:59); k_now 3.34 = static:sugar_apple; k shared:house2 2.47, static:papaya 3.24, static:sugar_apple 3.34; 46 nights without routing evidence left out","miss":null},"h13":{"night_date":"2026-11-12","outcome":"not-armed-unbooked","floor_pct":39.0,"floor_written":null,"projection_kwh":0.0,"margin_kwh":5.62,"predictor":"history at the policy percentile, minus the sunshine still to come","n_history":79,"booked":false,"booking_state":"ranges","detail":"solar: per-array, shared on papaya (stored live:replaces-seed since 2026-11-03 12:59); k_now 3.34 = static:sugar_apple; k shared:house2 2.47, static:papaya 3.24, static:sugar_apple 3.34; 46 nights without routing evidence left out","miss":null}},"miss_rate_30d":{"h13":{"n":16,"misses":1,"rate":0.062,"raised":0,"raised_misses":0},"h18":{"n":16,"misses":1,"rate":0.062,"raised":0,"raised_misses":0},"h21":{"n":16,"misses":0,"rate":0.0,"raised":0,"raised_misses":0},"h04":{"n":14,"misses":0,"rate":0.0,"raised":1,"raised_misses":0}},"floor_held":false}},"history":{"pulls":73,"pull_failures":0,"seeds":0,"appends":12,"series_backfills":0,"series_backfill_failures":0,"reflag":{},"last_error":null,"units":{"papaya":{"nights":166,"loaded_day":"2026-11-13","k_ghi":5.506717216641828,"stop":0.04,"stop_source":"observed stop on the lowered curve, Guava 2026-11-06"},"guava":{"nights":166,"loaded_day":"2026-11-13","k_ghi":5.399480657899634,"stop":0.04,"stop_source":"cutoff_capture 2026-11-06"},"mango":{"nights":166,"loaded_day":"2026-11-13","k_ghi":2.9231094924313785,"stop":0.04,"stop_source":"observed stop on the lowered curve, Guava 2026-11-06"},"sugar_apple":{"nights":166,"loaded_day":"2026-11-13","k_ghi":5.483453750035224,"stop":0.04,"stop_source":"observed stop on the lowered curve, Guava 2026-11-06"}},"per_array":true,"solar":{"mango":{"shared_on":"guava","swap_day":"2026-07-15","newest_archived":"2026-11-11","sibling_series":true,"newest_night":"2026-11-11","day":"2026-11-13","k_now":2.983414377479081,"k_arrays":{"static:mango":2.983414377479081,"static:guava":2.72158447922148,"shared:house1":1.8682543456322451},"changed_today":false,"excluded":42},"sugar_apple":{"shared_on":"papaya","swap_day":"2026-11-03","newest_archived":"2026-11-11","sibling_series":true,"newest_night":"2026-11-11","day":"2026-11-13","k_now":3.341262126644557,"k_arrays":{"static:sugar_apple":3.341262126644557,"shared:house2":2.453092784274761,"static:papaya":3.2504605787315235},"changed_today":false,"excluded":46},"papaya":{"shared_on":"papaya","swap_day":"2026-11-03","newest_archived":"2026-11-11","sibling_series":true,"newest_night":"2026-11-11","day":"2026-11-13","k_now":5.703553363006284,"k_arrays":{"static:papaya":3.2504605787315235,"shared:house2":2.453092784274761,"static:sugar_apple":3.341262126644557},"changed_today":false,"excluded":46},"guava":{"shared_on":"guava","swap_day":"2026-07-15","newest_archived":"2026-11-11","sibling_series":true,"newest_night":"2026-11-11","day":"2026-11-13","k_now":4.589838824853725,"k_arrays":{"static:guava":2.72158447922148,"shared:house1":1.8682543456322451,"static:mango":2.983414377479081},"changed_today":false,"excluded":42}},"last_ranges_known":["guava","mango","papaya","sugar_apple"]}},"runtime_floor_decider":{"ticks":1583,"last_tick":1794571656,"boost_events":0,"live_actuations":0,"vacancy_overrides":0,"last_error":null,"live":false,"thread_alive":true,"mode":"shadow","below_streak":{"papaya":0,"guava":0,"mango":0,"sugar_apple":0},"day_window_ast":[6.0,18.0],"eta_default":0.9},"hybrid_draw_detector":{"samples_seen":4373778,"episodes":{"hybrid":155,"surge_no_assist":50,"trip":0},"last_episode":"2026-11-13T12:04:30.074351+00:00","last_error":null,"active_episodes":[],"thread_alive":true,"queued":0},"inverter_state_tracker":{"samples_seen":3643425,"transitions":232,"last_transition":"2026-11-13T09:42:13.290871+00:00","last_error":null,"labels":{"papaya":"Bulk","sugar_apple":"Bulk","guava":"Bulk","mango":"Bulk"},"thread_alive":true,"queued":0},"occupancy_challenge":{"ticks":198,"last_tick":1794570764,"challenged_units":[],"last_error":null,"states":{"papaya":"occupied","guava":"occupied","mango":"occupied","sugar_apple":"occupied"},"thread_alive":true},"pv_histogram":{"builds":1,"last_build":"2026-11-10T18:05:21.476736+00:00","recent_builds":131,"last_recent":"2026-11-13T11:42:34.586777+00:00","last_error":null,"built_units":{"sugar_apple:279":{"hours":15,"built":"2026-11-10T18:03:29.864743+00:00"},"papaya:277":{"hours":15,"built":"2026-11-10T18:03:53.026269+00:00"},"shared:Building 2":{"hours":15,"built":"2026-11-10T18:04:22.764369+00:00"},"guava:278":{"hours":15,"built":"2026-11-10T18:04:35.767607+00:00"},"mango:279":{"hours":15,"built":"2026-11-10T18:04:52.499791+00:00"},"shared:Building 1":{"hours":15,"built":"2026-11-10T18:05:21.476712+00:00"}},"recent_units":{"sugar_apple:279":12,"papaya:277":12,"shared:Building 2":12,"guava:278":12,"mango:279":12,"shared:Building 1":12},"recent_built":"2026-11-13T11:42:34.586777+00:00","thread_alive":true,"recent_thread_alive":true},"solar_expectation":{"last_fit":"2026-11-13T06:34:51.332502+00:00","last_error":null,"k_arrays":{"papaya:277":{"k_kwh_per_whm2":0.002560031752331812,"n_days":58,"ready":true},"papaya:278":{"k_kwh_per_whm2":0.0017148288973384029,"n_days":49,"ready":true},"guava:278":{"k_kwh_per_whm2":0.0017187803456981939,"n_days":57,"ready":true},"guava:279":{"k_kwh_per_whm2":0.0013142643484763507,"n_days":58,"ready":true},"mango:279":{"k_kwh_per_whm2":0.0012982273201251303,"n_days":58,"ready":true},"sugar_apple:279":{"k_kwh_per_whm2":0.002069956066238594,"n_days":58,"ready":true},"sugar_apple:278":{"k_kwh_per_whm2":0.00162303664921466,"n_days":9,"ready":false}},"cloud_fit":{"sensitivity":0.234,"n_days":58,"mean_abs_err":0.044,"ready":true},"solcast_score":{"guava":{"n_days":28,"mae_kwh":8.45,"bias_kwh":-6.87,"mae_pct":61.1,"recent":[{"tday":"2026-11-09","f_kwh":14.1,"a_kwh":15.7,"n_rows":24},{"tday":"2026-11-10","f_kwh":12.3,"a_kwh":16.6,"n_rows":24},{"tday":"2026-11-11","f_kwh":14.7,"a_kwh":4.0,"n_rows":24}]},"papaya":{"n_days":28,"mae_kwh":3.37,"bias_kwh":1.31,"mae_pct":19.4,"recent":[{"tday":"2026-11-09","f_kwh":20.1,"a_kwh":20.0,"n_rows":24},{"tday":"2026-11-10","f_kwh":18.2,"a_kwh":21.3,"n_rows":24},{"tday":"2026-11-11","f_kwh":20.1,"a_kwh":15.6,"n_rows":24}]}},"solcast_hourly":{"guava":{"n_hours":74,"mae_wh":884,"bias_wh":369,"mae_pct":99.0},"papaya":{"n_hours":77,"mae_wh":912,"bias_wh":382,"mae_pct":66.2}}},"soc_histogram":{"typ_builds":3,"recent_builds":133,"last_error":null,"typ_units":{"mango":24,"papaya":24,"guava":24,"sugar_apple":24},"recent_units":{"mango":9,"papaya":9,"guava":9,"sugar_apple":9},"floors":{"mango":{"pct":15.0,"enforced":true},"papaya":{"pct":15.0,"enforced":true},"guava":{"pct":15.0,"enforced":true},"sugar_apple":{"pct":30.0,"enforced":true}},"typ_built":"2026-11-12T18:04:22.399993+00:00","recent_built":"2026-11-13T12:08:33.116518+00:00","thread_alive":true,"recent_thread_alive":true},"grid_logger":{"backfilled":true,"backfill_n":0,"live_open":false,"last_check":"2026-11-13T12:09:13.533342+00:00","vrm_checked_at":1794452002.4570522,"vrm_closed":0,"vrm_scan":{"open_start":1794450800.281156,"to":1794452002},"vrm_closed_at":null,"reopen_checked_at":0.0,"absent_seen_at":1794542614.6980915,"loss_scan":null,"tick_at":1794571753.5333314,"vrm_timeouts":0,"stalls":0,"catchup_started_at":null,"catchup_pending":null,"catchup_n":0,"catchup_last":null,"replaced_at":null,"thread_alive":true,"stalled":false,"tick_age_s":52,"min_outage_min":5,"logged_outages":49,"ongoing":0},"firmware_health":{"polls":12,"changes":0,"last_poll":"2026-11-13T12:03:57.366195+00:00","last_change":null,"divergence_flagged":false,"thread_alive":true,"snapshot":{"guava":{"ve_bus":"560","gx":"v3.85","mppt":"v3.18","auto_update":"Check"},"mango":{"ve_bus":"560","gx":"v3.85","mppt":"v1.74,v3.18","auto_update":"Check"},"papaya":{"ve_bus":"560","gx":"v3.85","mppt":"v3.18","auto_update":"Check"},"sugar_apple":{"ve_bus":"560","gx":"v3.85","mppt":"v3.18","auto_update":"Check"}}},"config_health":{"polls":23,"changes":4,"last_poll":"2026-11-13T12:04:16.723870+00:00","last_change":"2026-11-13T06:04:07.725984+00:00","thread_alive":true,"watched":24,"snapshot_rows":96,"snapshot_units":4},"cell_spread_archive":{"polls":67,"rows_written":268,"last_poll":"2026-11-13T12:08:23.653240+00:00","last_error":null,"last_spreads":{"sugar_apple":10,"papaya":0,"guava":0,"mango":10},"thread_alive":true,"stored_rows":11449,"latest_row":"2026-11-13T12:08:23.642721+00:00"},"battery_1m":{"msgs":1288204,"rejected":15,"minutes_written":15600,"backfill_minutes":0,"backfill_requests":0,"backfill_backlog":0,"backfill_failures":0,"backfill_dropped":0,"daily_rows":12,"daily_failures":0,"hook_errors":0,"last_error":null,"last_flush":"2026-11-13T12:10:00.333790+00:00","open_minutes":4,"latest":{"guava":{"t_min":"2026-11-13T12:09:00+00:00","unit":"guava","src":"mqtt","cell_min_v":3.271,"cell_max_v":3.289,"spread_mv":16.0,"spread_mean_mv":9.0,"v_mean":52.452,"v_min":52.39,"v_max":52.5,"i_mean":-14.293,"i_min":-16.5,"i_max":-12.9,"soc":57.0,"temp_c":32.0,"n":112},"mango":{"t_min":"2026-11-13T12:09:00+00:00","unit":"mango","src":"mqtt","cell_min_v":3.321,"cell_max_v":3.328,"spread_mv":7.0,"spread_mean_mv":4.7,"v_mean":53.178,"v_min":53.17,"v_max":53.19,"i_mean":0.0,"i_min":0.0,"i_max":0.0,"soc":77.0,"temp_c":31.0,"n":56},"papaya":{"t_min":"2026-11-13T12:09:00+00:00","unit":"papaya","src":"mqtt","cell_min_v":3.284,"cell_max_v":3.295,"spread_mv":8.0,"spread_mean_mv":5.7,"v_mean":52.601,"v_min":52.56,"v_max":52.64,"i_mean":12.089,"i_min":10.0,"i_max":13.3,"soc":51.0,"temp_c":31.0,"n":106},"sugar_apple":{"t_min":"2026-11-13T12:09:00+00:00","unit":"sugar_apple","src":"mqtt","cell_min_v":3.296,"cell_max_v":3.306,"spread_mv":10.0,"spread_mean_mv":8.7,"v_mean":52.802,"v_min":52.79,"v_max":52.81,"i_mean":10.263,"i_min":9.0,"i_max":10.9,"soc":30.0,"temp_c":31.0,"n":70}},"thread_alive":true,"hooks":["cell_imbalance","soc_voltage_check","voltage_stop"],"cell_imbalance":{"judged":12913,"abnormal":0,"opened":0,"open_failures":0,"cleared":0,"units":{"mango":{"judged_in_window":60,"abnormal_in_window":0,"last_spread_mv":4.7,"open":false},"sugar_apple":{"judged_in_window":60,"abnormal_in_window":0,"last_spread_mv":8.7,"open":false},"papaya":{"judged_in_window":60,"abnormal_in_window":0,"last_spread_mv":5.7,"open":false},"guava":{"judged_in_window":60,"abnormal_in_window":0,"last_spread_mv":9.0,"open":false}},"threshold_mv":100.0,"window":60,"open_of":45},"soc_voltage_check":{"minutes":15428,"skipped":172,"gaps":225,"disagree_full":0,"disagree_empty":0,"opened":0,"open_failures":0,"cleared":0,"units":{"guava":{"full":{"disagree_run":0,"ok_run":23,"open":false},"empty":{"disagree_run":0,"ok_run":23,"open":false}},"mango":{"full":{"disagree_run":0,"ok_run":10,"open":false},"empty":{"disagree_run":0,"ok_run":10,"open":false}},"papaya":{"full":{"disagree_run":0,"ok_run":14,"open":false},"empty":{"disagree_run":0,"ok_run":14,"open":false}},"sugar_apple":{"full":{"disagree_run":0,"ok_run":23,"open":false},"empty":{"disagree_run":0,"ok_run":23,"open":false}}}},"voltage_stop_shadow":{"sugar_apple":{"model":{"curve":"lowered","offset_v":0.02,"offset_source":"relaxed rest","r_mohm":12.5,"r_source":"default (2 recovery events)","n_rows":942,"n_rest":463,"soc_seen_min":19.0,"i_p50_a":15.903,"i_p90_a":32.157,"fit_days":60,"v_cut_p50":49.126,"stop_soc_p50":4.4,"v_cut_p90":48.816,"stop_soc_p90":4.2,"extrapolated":true},"live":null,"shadow_only":true},"papaya":{"model":{"curve":"lowered","offset_v":-0.044,"offset_source":"relaxed rest","r_mohm":12.85,"r_source":"sag recovery (11 events)","n_rows":16151,"n_rest":7124,"soc_seen_min":14.2,"i_p50_a":12.7,"i_p90_a":38.226,"fit_days":60,"v_cut_p50":49.187,"stop_soc_p50":4.6,"v_cut_p90":48.7,"stop_soc_p90":4.3,"extrapolated":true},"live":null,"shadow_only":true},"guava":{"model":{"curve":"lowered","offset_v":0.066,"offset_source":"relaxed rest","r_mohm":12.5,"r_source":"default (1 recovery events)","n_rows":2963,"n_rest":746,"soc_seen_min":3.0,"i_p50_a":12.764,"i_p90_a":22.017,"fit_days":60,"v_cut_p50":49.185,"stop_soc_p50":4.4,"v_cut_p90":49.009,"stop_soc_p90":4.3,"extrapolated":false},"live":null,"shadow_only":true},"mango":{"model":null,"live":null,"shadow_only":true}}},"events":{"total":2920,"open":8,"critical":44},"switch_inference":{"wapa_up_prior":true,"units":{"papaya":{"input":{"guess":"1 · WAPA","confidence":"high","why":"120V at input terminals"},"output":{"guess":"1 · HUPS","confidence":"high","why":"588W of building load flowing through the inverter"}},"guava":{"input":{"guess":"1 · WAPA","confidence":"high","why":"118V at input terminals"},"output":{"guess":"1 · HUPS","confidence":"high","why":"1104W of building load flowing through the inverter"}},"mango":{"input":{"guess":"1 · WAPA","confidence":"high","why":"118V at input terminals"},"output":{"guess":"1 · HUPS","confidence":"high","why":"132W of building load flowing through the inverter"}},"sugar_apple":{"input":{"guess":"1 · WAPA","confidence":"high","why":"120V at input terminals"},"output":{"guess":"1 · HUPS","confidence":"high","why":"295W of building load flowing through the inverter"}}}},"energy_page":{"builds":{"7d":{"builds":2,"last_error":null,"took_s":9.2,"finished":1794484970.6011999},"30d":{"builds":2,"last_error":null,"took_s":6.8,"finished":1794484963.315122},"90d":{"builds":2,"last_error":null,"took_s":6.5,"finished":1794484967.863879}},"in_flight_s":{},"cached_age_s":{"7d":86835,"30d":86842,"90d":86838}},"savings_rollup":{"usd_day":2.9,"per_unit":{"papaya":2.9},"per_category":{"standing heater/baseline loads":2.9},"n_findings":4},"janitor":{"last_run":"2026-11-13T11:33:42.493146+00:00","last_deleted":{"hires_power":{"time":183,"cap":0},"hires_rollup_1m":{"time":207,"cap":0}},"runs":66,"last_failed":{},"last_deferred":[],"thread_alive":true,"research":{"excursion_event":{"expires":"2027-05-04","collecting":true,"doc":"ESS_TAIL_EVENTS_2026-09-23.md §4"},"appliance_register":{"expires":"2027-05-04","collecting":true,"doc":"APP_ID_STRATEGY.md"},"appliance_episode":{"expires":"2027-05-04","collecting":true,"doc":"APP_ID_STRATEGY.md"},"appliance_daily_kwh":{"expires":"2027-05-04","collecting":true,"doc":"APP_ID_STRATEGY.md"},"load_model":{"expires":"2027-05-04","collecting":true,"doc":"APP_ID_STRATEGY.md"},"appliance_registry":{"expires":"2027-05-04","collecting":true,"doc":"APP_ID_STRATEGY.md"}},"row_counts":{"hires_power":8891003,"hires_rollup_1m":1784273,"hires_rollup_1h":35706,"overload_event":304000,"excursion_event":422193,"appliance_register":8735,"grid_outage":46,"system_event":2874,"appliance_episode":40323,"appliance_daily_kwh":2474,"cell_spread":10397,"battery_1m":472400,"battery_daily":305,"battery_backfill_log":320,"precharge_recompute":322,"precharge_series":60205,"grid_restoration":18},"row_counts_are":"planner estimates"},"notifier":{"polls":3952,"sent":0,"failed":1,"last_sent":null,"last_error":"suppressed: toll-free verification REJECTED 2026-08-04 (website requirement); re-registration pending — sends suppressed, pages still logged","configured":true,"wapa_would_page":2,"wapa_would_clear":2,"thread_alive":true,"sending_enabled":false,"sending_disabled_reason":"toll-free verification REJECTED 2026-08-04 (website requirement); re-registration pending — sends suppressed, pages still logged"},"scheduled_topoff":{"polls":3959,"fired":0,"skipped":0,"failed":0,"last_error":null,"thread_alive":true,"upcoming":[]},"solar_health":{"sugar_apple":{"controllers":[{"instance":278,"hotswap":true,"serial":"HQ2427XXQKR","status":"DARK","pv_w":0.0,"yield_today_kwh":0.0,"yield_yesterday_kwh":0.0,"mppt_state":"Off","off_reason":"No input power (1)","error":"No error","last_produced":"2026-11-02"},{"instance":279,"hotswap":false,"serial":"HQ2427X2DRP","status":"idle_ok","pv_w":0.0,"yield_today_kwh":0.0,"yield_yesterday_kwh":13.23,"mppt_state":"Off","off_reason":"No input power (1)","error":"No error"}],"summary":"⚠ 1 of 2 arrays DARK — last produced 2026-11-02"},"papaya":{"controllers":[{"instance":277,"hotswap":false,"serial":"HQ2441M4WJN","status":"idle_ok","pv_w":0.0,"yield_today_kwh":0.0,"yield_yesterday_kwh":9.08,"mppt_state":"Off","off_reason":"No input power (1)","error":"No error"},{"instance":278,"hotswap":true,"serial":"HQ2441PJUR7","status":"idle_ok","pv_w":0.0,"yield_today_kwh":0.0,"yield_yesterday_kwh":6.14,"mppt_state":"Off","off_reason":"No input power (1)","error":"No error"}],"summary":"ok — 0 producing now, 2 idle (night/cloud)"},"guava":{"controllers":[{"instance":278,"hotswap":false,"serial":"HQ2507FRY7J","status":"idle_ok","pv_w":0.0,"yield_today_kwh":0.84,"yield_yesterday_kwh":2.71,"mppt_state":"Off","off_reason":"No input power (1)","error":"No error"},{"instance":279,"hotswap":true,"serial":"HQ2427UA6EN","status":"idle_ok","pv_w":0.0,"yield_today_kwh":0.41,"yield_yesterday_kwh":1.19,"mppt_state":"Off","off_reason":"No input power (1)","error":"No error"}],"summary":"ok — 0 producing now, 2 idle (night/cloud)"},"mango":{"controllers":[{"instance":278,"hotswap":true,"serial":"HQ2524WM4N4","status":"DARK","pv_w":0.0,"yield_today_kwh":0.0,"yield_yesterday_kwh":0.0,"mppt_state":"Off","off_reason":"No input power (1)","error":"No error","last_produced":"2026-07-14"},{"instance":279,"hotswap":false,"serial":"HQ1844IF9PI","status":"idle_ok","pv_w":0.0,"yield_today_kwh":0.0,"yield_yesterday_kwh":5.67,"mppt_state":"Off","off_reason":"No input power (1)","error":"No error"}],"summary":"⚠ 1 of 2 arrays DARK — last produced 2026-07-14"}},"bms_health":{"sugar_apple":{"status":"ok","summary":"ok — 3 of 3 modules online","modules_online":3,"modules_offline":0,"modules_expected":3,"soc":26.0,"soh":100.0,"cell_spread_mv":10,"temp_c":31.0,"charge_blocked":false,"alarms_active":[],"firmware":"v86.1"},"papaya":{"status":"ok","summary":"ok — 3 of 3 modules online","modules_online":3,"modules_offline":0,"modules_expected":3,"soc":96.0,"soh":100.0,"cell_spread_mv":10,"temp_c":31.0,"charge_blocked":false,"alarms_active":[],"firmware":"v86.1"},"guava":{"status":"ok","summary":"ok — 3 of 3 modules online","modules_online":3,"modules_offline":0,"modules_expected":3,"soc":64.0,"soh":100.0,"cell_spread_mv":10,"temp_c":33.0,"charge_blocked":false,"alarms_active":[],"firmware":"v86.1"},"mango":{"status":"ok","summary":"ok — 3 of 3 modules online","modules_online":3,"modules_offline":0,"modules_expected":3,"soc":82.0,"soh":100.0,"cell_spread_mv":0,"temp_c":31.0,"charge_blocked":false,"alarms_active":[],"firmware":"v86.1"}},"overload_health":{"sugar_apple":{"status":"occasional","summary":"2 overload(s) in 30d (L1:2, L2:0)","events_by_leg":{"L1":2,"L2":0},"window_days":30,"days_counted":30},"papaya":{"status":"occasional","summary":"2 overload(s) in 30d (L1:1, L2:1)","events_by_leg":{"L1":1,"L2":1},"window_days":30,"days_counted":30},"guava":{"status":"occasional","summary":"7 overload(s) in 30d (L1:1, L2:6)","events_by_leg":{"L1":1,"L2":6},"window_days":30,"days_counted":30},"mango":{"status":"occasional","summary":"1 overload(s) in 30d (L1:1, L2:0)","events_by_leg":{"L1":1,"L2":0},"window_days":30,"days_counted":30}},"forecast_archive":{"thread_alive":true,"last_capture_date":"2026-11-12","capture_hour_ast":14,"vrm_token_set":true,"db_available":true,"rows_total":57740,"rows_by_source":{"open_meteo":29664,"vrm":28076},"run_date_range":["2026-06-23","2026-11-12"]},"grid_energy_24h":{"sugar_apple":{"kwh_24h":9.18,"cost_24h_usd":3.99,"self_sufficiency_pct":44},"papaya":{"kwh_24h":29.56,"cost_24h_usd":12.85,"self_sufficiency_pct":25},"guava":{"kwh_24h":3.39,"cost_24h_usd":1.47,"self_sufficiency_pct":56},"mango":{"kwh_24h":1.33,"cost_24h_usd":0.58,"self_sufficiency_pct":72}},"diag_timings_s":{"overload_capture":0.98,"episode_archive":0.3,"finding_promoter":0.13,"precharge_floor":0.73,"scheduled_topoff":0.24}}