diff --git a/CHANGELOG.md b/CHANGELOG.md index 9199aa3..60d521c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,95 @@ # Changelog +## 0.9.0 (2026-10-23) + +Goal: the agent proposes actions that already fit the envelope, so clamps drop sharply and ramping goes under 1.0, without giving back cost, emissions, comfort or peaks against the 0.8.0 live month. The envelope does not change. The estimates below were built from recorded runs and the scripted strategy before any live call; the live month follows them. + +Why 312 of 719 hours were clamped in the 0.8.0 live month (390 clamps; `runs/live/...20261022T222703Z`): + +- **By rule** (hours, clamps): trim hold 292, 345; comfort 28, 32; battery state of charge 6, 10; cooling deviation 2, 2; peak limiter 1, 1. By building: the hold clamped Building_1 cooling 243 times, Building_3 100 and Building_2 2; comfort 19, 7 and 6. +- **The trim hold's 345 clamps, what the agent asked for against what the hold allowed:** + - 250 (72 percent) were `null` on a held trim: 175 in the hold zone (room more than 0.5 C below its setpoint), where the hold restored a median 0.068 of depth, and 75 in the ease zone (0.040). The version 6 prompt said `null` keeps a held trim, and it does, but the envelope logs the kept trim as a clamp. In 208 hours these were the only clamps. + - 52 ended the trim without `end_trim` by sending the baseline: 37 with the room still more than 0.5 C too cold (ended early) and 15 in the ease zone (released at once instead of by 0.02 an hour). + - 38 eased too fast: 31 in the hold zone, where no easing is allowed (median 0.025 short), and 7 by more than 0.02 in the ease zone (median 0.022 short). + - 5 asked for a trim where the hold had ended (all Building_1, room at or above its setpoint). + - None deepened a trim when it should hold: a deeper trim is always allowed. + - Every one of the 340 held-trim clamps came with the held depth already in the observation (`cooling_trim_held`). The agent saw the number; the prompt told it `null` was enough. +- **The other 45 clamps:** 21 of the 32 comfort clamps were rounding under 0.002 (the agent copied the 3 decimal baseline: 15 a hair above it in a cool room, 6 a hair below it in a warm one); 11 were real (8 extra cooling in a cool room, 3 trims in a warm one). 10 state of charge clamps (charging past 0.95, by 0.0004 to 0.13), 2 deviation clamps and 1 peak limiter trim. +- **What the agent could have avoided by seeing the constraint:** the live month's own replies, fitted into the ranges the version 7 observation shows (`scripts/evaluate_fit.py`), leave 7 clamped hours of 312 (305 avoidable, 98 percent of hours and of clamps), with every KPI equal to four decimals. The 7 left: 6 hours where the held trim is deeper than the baseline cooling, so cooling 0 is the most a reply can give and the hold still logs a clamp (requested 0, applied 0), and the 1 peak limiter trim. + +Why ramping stayed above 1.0 (`scripts/split_ramping.py`, points of `ramping_average` above 1.0, 0.4.0 live against 0.8.0 live; the reference's own rises 470.20 and 470.55 kWh): + +| Cause | 0.4.0 live (0.9965) | 0.8.0 live (1.0076) | Change | +|---|---|---|---| +| Battery charging | +1.24 | +1.90 | +0.66 | +| Battery discharging | -1.59 | -2.01 | -0.42 | +| Cooling trims (start, end, depth) | 0.00 | +0.86 (-2.03, +2.74, +0.15) | +0.86 | +| Other (tank, extra cooling, rounding, outage hours) | 0.00 | +0.01 | +0.01 | +| **Total** | **-0.35** | **+0.76** | **+1.11** | + +- 0.4.0 left comfort at the baseline, so it had no trims. Most of the rise is the trims that bought 0.8.0's comfort, and the rest is net battery: 0.8.0's discharging cut more, but its charging added more. Its largest single battery rise is the top-price discharge stopping at 7 pm (63.3 kWh over the month; 0.4.0 spread its discharge ends over 4 to 7 pm and 11 pm, 33.4 kWh at 7 pm). +- The live agent sent `strategy_battery` in 1,994 of 2,157 building hours. In the other 163 it skipped a charge 70 times, charged when the plan was idle 51 times and skipped a discharge 34 times, mostly peak shaving. Those 163 hours are worth about 1.9 points: the same month with the battery plan followed exactly scores 0.9884 (battery charging +1.42, discharging -3.52). +- An envelope change is not the fix. 0.7.0 measured a ramp rule in the envelope and it made ramping worse, and the evidence here points at the strategy and at following it. + +Changes: + +- **Prompt version 7 (default).** Each building shows what the envelope allows this hour: `trim` (`depth`, `state` off, hold, ease or end, `why`, `min_depth` while a trim is held, `end_trim_ok`), `cooling_range` and `battery_range` (the values that pass the range, rate, state of charge, deviation, comfort and hold rules without a clamp, 4 decimals rounded inward; `null` when only the exact baseline passes), and `last_clamp`, last hour's clamps on that building with their reasons, in place of the district-wide `last_clamps`. `cooling_trim_held` and `cooling_trim_last_hour` are dropped. The prompt now says `null` is exactly the baseline, to be used only when the trim state is off or end, and that a held trim takes a number inside `cooling_range`. Version 6 stays selectable and recorded version 6 runs replay byte for byte. +- **The ranges are worked out read only from the envelope's own state** (`prompt.cooling_range`, `battery_range`, `trim_view`), in its own rule order, so a value inside them is never clamped. A randomized test holds that against `Envelope.apply`. `hyperbolic/envelope.py` is unchanged. +- **Battery guidance.** `strategy_battery` now comes from `battery_plan_v7` (`StrategyParamsV7`), which can cap how fast a battery action rises (on charging and discharging, or on a discharge winding down only) and fill the valley when grid charging. Searched on the tuning months (`scripts/tune_strategy.py --version 7`, 36 settings): no cap and no valley filling kept cost, emissions, discomfort and both peaks at version 6's battery plan. Every cap raised cost and the all-time peak; a cap of 0.1 left ramping at 0.9965 against 0.9823, and capping only the discharge wind-down raised it to 1.0016, because it spends the charge the evening shave needs. Charging at 0.1 instead of 0.15 cut ramping to 0.9644 but raised cost (0.9103 against 0.9086) and the all-time peak (0.8632 against 0.8526); valley filling cut it to 0.9116 at cost 0.9181. So the shipped plan is version 5's (cap 1, which is no cap), and the prompt's battery point targets the deviations: send `strategy_battery` as given, and when differing stay within 0.1 of it and never skip a peak-shaving discharge. No new envelope limit. +- **Scripted version 7 strategy** (`strategy_plan_v7`, `--scripted --prompt-version 7`): the version 5 cooling trim fitted into `cooling_range` (a held trim is never left to `null`) and the battery plan within `battery_range`. +- **Tools.** `scripts/evaluate_fit.py` sends a recorded version 6 run's replies through its own rules three ways: as recorded (a control that must reproduce its published KPIs), fitted to the version 7 ranges, and fitted with `strategy_battery` followed. These are evaluations, never recorded runs. +- `hyperbolic serve`'s first cost estimate uses the version 7 request size (5,160 input and 450 output tokens). +- Tests cover `EnvelopeConfig` defaults equal to 0.8.0 field by field (and the 0.7.0 and 0.4.0 rule sets), the 0.8.0 live month replaying 719 of 719 hours when it is on disk, the version 7 observation and its dropped fields, every trim state with `min_depth` and `end_trim_ok`, both ranges, any value inside them passing unclamped, a held trim left to `null` being clamped while the top of its range is not, `last_clamp`, the shipped battery plan equal to version 5's and inside `battery_range`, the cap winding a discharge down and leaving spare solar alone, valley filling, the prompt's wording and size, the scripted version 7 reply, fake-district and 24 hour CityLearn version 7 runs that replay identically, a full version 7 CityLearn month, the fitting evaluation and the search grid. + +Estimates, no live calls. Scripted columns are not model results. + +Phase 2 month (719 hours): + +| CityLearn KPI (district) | 0.4.0 rule-based (20261022T162847Z) | 0.8.0 live | v6 scripted | v7 scripted | 0.8.0 live replies fitted to v7 | fitted, battery plan followed | +|---|---|---|---|---|---|---| +| cost_total | 0.9611 | 0.9190 | 0.9017 | 0.9016 | 0.9190 | 0.9182 | +| carbon_emissions_total | 0.9947 | 0.9610 | 0.9430 | 0.9429 | 0.9610 | 0.9603 | +| discomfort_proportion | 0.1714 | 0.0769 | 0.0430 | 0.0430 | 0.0769 | 0.0769 | +| ramping_average | 1.1309 | 1.0076 | 0.9957 | 0.9952 | 1.0076 | 0.9884 | +| daily_peak_average | 0.9978 | 0.9264 | 0.9078 | 0.9076 | 0.9264 | 0.9202 | +| all_time_peak_average | 1.0000 | 0.9593 | 0.9593 | 0.9588 | 0.9593 | 0.9585 | +| daily_one_minus_load_factor_average | 0.9913 | 0.9651 | 0.9640 | 0.9640 | 0.9651 | 0.9584 | +| Clamped hours | 1 | 312 | 139 | 22 | 7 | 7 | + +Tuning set (three months, mean): the 0.4.0 rule-based controller cost 0.9621, emissions 1.0021, discomfort 0.1231, ramping 1.0838, daily peak 0.9804, all-time peak 0.9794, load factor 0.9831, 0.3 clamped hours; v6 scripted 0.9086, 0.9607, 0.0310, 0.9821, 0.8836, 0.8530, 0.9522, 112.0; v7 scripted 0.9086, 0.9607, 0.0312, 0.9823, 0.8837, 0.8526, 0.9525, 14.3. The tuning set has no live run. + +- **Scripted v7 matches v6 and cuts clamped hours from 139 to 22** on the phase 2 month (112 to 14.3 a month on the tuning set). The 22 left are 21 hours where the held trim is deeper than the baseline cooling and 1 peak trim. Tuning-set discomfort is 0.0312 against 0.0310 because the v6 strategy's trims sat up to 0.002 shallower than the held depth, inside the hold's rounding allowance, and the v7 ranges hold the exact depth. +- **The live replies fitted to the ranges** reproduce the 0.8.0 live KPIs to four decimals with 7 clamped hours. +- **With the battery plan followed as well**, ramping is 0.9884, and cost, emissions, both peaks and load factor improve on 0.8.0 live at the same discomfort. Unserved energy in outages is 0.6861 against 0.6850 (baseline 0.6844). +- **What only a live run can measure:** whether Haiku keeps inside the ranges and sends a number for a held trim, how closely it follows `strategy_battery` under the new wording, and how the rooms and batteries then evolve, since fixed replies cannot react. The fitted columns assume a model that obeys the ranges; the battery column assumes one that sends `strategy_battery` every hour. + +Request size and cost: a version 7 request averages 10,748 characters against 10,928 for version 6 over the same scripted month, 1.7 percent smaller: the system prompt 4,780 against 5,221 characters, the observation 231 characters longer, the schema unchanged. Scaled from the 0.8.0 live month (5,245 input and 429 output tokens per call, $0.5315), a Haiku month should cost about $0.53 ($0.5252 at the same reply length, $0.5327 if replies grow 5 percent). The hard worst case (every character a third of a token and a full 2,000 token reply) is $0.98 for all 719 hours, under the $2.00 cap. + +Live run (`claude-haiku-5-5`, full month, 719 hours, prompt version 7, run 20261023T135430Z), against the baseline, the 0.4.0 rule-based controller (run 20261022T162847Z) and the 0.8.0 live month: + +| CityLearn KPI (district), full month | Baseline | 0.4.0 rule-based | 0.8.0 live | 0.9.0 live | +|---|---|---|---|---| +| cost_total | 1.000 | 0.9611 | 0.9190 | 0.9245 | +| carbon_emissions_total | 1.000 | 0.9947 | 0.9610 | 0.9648 | +| electricity_consumption_total | 1.000 | 1.0073 | 0.9695 | 0.9744 | +| discomfort_proportion (too cool, too warm) | 0.1714 (0.1538, 0.0176) | 0.1714 (0.1538, 0.0176) | 0.0769 (0.0601, 0.0168) | 0.0940 (0.0759, 0.0181) | +| daily_peak_average | 1.000 | 0.9978 | 0.9264 | 0.9182 | +| all_time_peak_average | 1.000 | 1.0000 | 0.9593 | 0.9412 | +| ramping_average | 1.000 | 1.1309 | 1.0076 | 0.9864 | +| daily_one_minus_load_factor_average | 1.000 | 0.9913 | 0.9651 | 0.9566 | +| power_outage_normalized_unserved_energy_total | 0.6844 | 0.6844 | 0.6850 | 0.6844 | +| Clamped hours, fallback hours | | 1, 0 | 312, 0 | 27, 0 | +| Model cost | | none | $0.5315 | $0.4607 | + +- **Clamped hours fell from 312 to 27** because version 7 shows the agent its allowed range each hour. 250 of the 0.8.0 clamps were held trims the envelope logged as clamps, not the agent breaking a limit. +- **Ramping is under 1.0 for the first time since 0.4.0** (0.9864; 0.4.0 live: 0.9965). +- **The best live run so far on the daily peak and the all-time peak** (0.9182 against 0.8.0 live's 0.9264, 0.9412 against 0.6.0 live's 0.9483). Load factor (0.9566) is second only to 0.4.0 live (0.9559), which left comfort at the baseline. +- **Gives back a little against 0.8.0 live** on cost (0.9245 against 0.9190), emissions (0.9648 against 0.9610) and comfort (0.0940 against 0.0769). +- **Beats or ties the 0.4.0 rule-based controller on every KPI except hot-side discomfort**, where it trails by 0.0005 (0.0181 against 0.0176). Thermal resilience ties at 0.3698, and unserved energy in outages now ties the baseline (0.6844). +- **Valley filling stays off by default.** It cut tuning-set ramping further (0.9116 against 0.9823) but cost about 0.01 in cost (0.9181 against 0.9086). +- 719 calls, 0 fallbacks, $0.4607 of $2.00, replays 719 of 719 hours deterministically. +- The published viewer (`docs/data`) now shows the 0.9.0 live run in place of 0.8.0. + ## 0.8.0 (2026-10-22) Goal: carry the cooling trim hold in code so the live agent cannot drop it by accident, explain the 0.7.0 ramping rise first, and get live ramping below the baseline without giving back cost, emissions, comfort or the peaks against 0.6.0 live. diff --git a/README.md b/README.md index 003e8e2..f56c217 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ An AI supervisor that runs a simulated district and tries to beat the no-control Hyperbolic runs [CityLearn](https://github.com/citylearn-project/CityLearn), an open source district energy simulator, entirely on one machine. Every simulated hour it reads CityLearn's observations, forecasts and prices for all buildings, asks a language model for one action per device, passes the answer through a deterministic safety envelope, and applies what survives. Both the agent and the reference are scored by CityLearn's own KPI evaluation, so the numbers come from the benchmark, not from this project. -Replay viewer and scorecard: `docs/index.html`, published with GitHub Pages. Both sides shown there are real CityLearn runs: the no-control baseline and the live 0.8.0 Haiku run (see [Version 0.8.0](#version-080)). It replaces the 0.6.0 live run there; the 0.7.0 live run scored worse and was never published (see [Version 0.7.0](#version-070)). +Replay viewer and scorecard: `docs/index.html`, published with GitHub Pages. Both sides shown there are real CityLearn runs: the no-control baseline and the live 0.9.0 Haiku run (see [Version 0.9.0](#version-090)). It replaces the 0.8.0 live run there; the 0.7.0 live run scored worse and was never published (see [Version 0.7.0](#version-070)). To watch a run live on your own machine instead, see [Watch it live](#watch-it-live). @@ -340,9 +340,101 @@ So the hold alone was not expected to bring live ramping below the baseline. 0.8 **Next for 0.9:** cut the clamp rate without losing the gains. Most clamps are the trim hold correcting replies that let a held trim go, mainly in Buildings 1 and 3, so the target is replies that keep held trims as the envelope would, with the same or better KPIs. +### Version 0.9.0 + +**Goal:** the agent proposes actions that already fit the envelope, so clamps drop sharply and ramping goes under 1.0, without giving back cost, emissions, comfort or peaks against the 0.8.0 live month. The envelope is identical to 0.8.0. The estimates below were built from recorded runs and the scripted strategy before any live call; the live month follows them. + +**Why 312 hours were clamped.** The 0.8.0 live month had 390 clamps in 312 hours: the trim hold 345 (292 hours), comfort 32, battery state of charge 10, the deviation cap 2, the peak limiter 1. What the agent asked for against what the hold allowed: + +| Trim hold clamps, 0.8.0 live | Count | Building_1, Building_3, Building_2 | +|---|---|---| +| `null` on a held trim, which the version 6 prompt said keeps it (hold zone 175, ease zone 75) | 250 | 168, 80, 2 | +| Ended the trim by sending the baseline, without `end_trim` (room still more than 0.5 C cold 37, in the ease zone 15) | 52 | 41, 11, 0 | +| Eased too fast (any easing in the hold zone 31, more than 0.02 an hour in the ease zone 7) | 38 | 29, 9, 0 | +| Asked for a trim where the hold had ended (room at or above its setpoint) | 5 | 5, 0, 0 | +| Deepened when it should hold | 0 | a deeper trim is always allowed | + +- **Most clamps were bookkeeping.** In 250 cases the agent did what the prompt said (`null` keeps a held trim) and the envelope kept the trim and logged that as a clamp. In 208 hours those were the only clamps. The held depth was in every one of these observations (`cooling_trim_held`). +- 21 of the 32 comfort clamps were rounding under 0.002: the agent copied the 3 decimal baseline and landed a hair on the wrong side of it near a band edge. +- **98 percent were avoidable by seeing the constraint.** The month's own replies fitted into the ranges version 7 shows (`scripts/evaluate_fit.py`) leave 7 clamped hours with every KPI equal to four decimals. Six of the 7 are hours where the held trim is deeper than the baseline cooling: cooling 0 is the most any reply can give, and the hold still logs a clamp. The seventh is a peak limiter trim. + +**Why ramping stayed above 1.0.** Points of `ramping_average` above 1.0 (`scripts/split_ramping.py`): + +| Cause | 0.4.0 live (0.9965) | 0.8.0 live (1.0076) | +|---|---|---| +| Battery charging | +1.24 | +1.90 | +| Battery discharging | -1.59 | -2.01 | +| Cooling trims (start -2.03, end +2.74, depth +0.15 in 0.8.0) | 0.00 | +0.86 | +| Other (tank, extra cooling, rounding, outage hours) | 0.00 | +0.01 | + +0.4.0 left comfort at the baseline, so it had no trims; the trims that bought 0.8.0's comfort are most of the rise, and charging added more than discharging took off. The live agent sent `strategy_battery` in 1,994 of 2,157 building hours. In the other 163 it mostly skipped a charge (70) or a peak-shaving discharge (34), or charged when the plan was idle (51). That is worth about 1.9 points: the same month with the battery plan followed exactly scores 0.9884. An envelope rule would not fix that (0.7.0 measured one: it raised ramping). + +**Changes:** + +- **Prompt version 7 (default).** Each building shows the envelope's view of this hour: `trim` (depth, state off, hold, ease or end, why, `min_depth` while a trim is held, `end_trim_ok`), `cooling_range` and `battery_range` (what passes without a clamp, rounded inward to 4 decimals), and `last_clamp` with its reason. `null` is now described as exactly the baseline, for use only when no trim is held; a held trim takes a number inside `cooling_range`. The ranges are worked out read only from the envelope's own state in its own rule order, and a randomized test holds that any value inside them passes `Envelope.apply` unclamped. +- **Battery guidance, searched on the tuning months.** `battery_plan_v7` can cap how fast a battery action rises and fill the load valley when grid charging. Of 36 settings none kept cost, emissions, discomfort and both peaks at version 6's battery plan while lowering ramping: every cap raised cost and the all-time peak, and capping only the discharge wind-down raised ramping (1.0016 against 0.9823), because it spends the charge the evening shave needs. So the shipped plan is version 5's, and the prompt targets the deviations instead: send `strategy_battery` as given, and when differing stay within 0.1 of it and never skip a peak-shaving discharge. +- **Version 6 stays selectable** (`--prompt-version 6`), so 0.8.0 runs replay byte for byte; the 0.8.0 live month replays 719 of 719 hours. `EnvelopeConfig` defaults are pinned field by field to 0.8.0 by a test. + +**Estimates (no live calls; scripted columns are not model results).** Phase 2 month: + +| CityLearn KPI (district) | 0.4.0 rule-based | 0.8.0 live | v6 scripted | v7 scripted | 0.8.0 live replies fitted to v7 | fitted, battery plan followed | +|---|---|---|---|---|---|---| +| cost_total | 0.9611 | 0.9190 | 0.9017 | 0.9016 | 0.9190 | 0.9182 | +| carbon_emissions_total | 0.9947 | 0.9610 | 0.9430 | 0.9429 | 0.9610 | 0.9603 | +| discomfort_proportion | 0.1714 | 0.0769 | 0.0430 | 0.0430 | 0.0769 | 0.0769 | +| ramping_average | 1.1309 | 1.0076 | 0.9957 | 0.9952 | 1.0076 | 0.9884 | +| daily_peak_average | 0.9978 | 0.9264 | 0.9078 | 0.9076 | 0.9264 | 0.9202 | +| all_time_peak_average | 1.0000 | 0.9593 | 0.9593 | 0.9588 | 0.9593 | 0.9585 | +| daily_one_minus_load_factor_average | 0.9913 | 0.9651 | 0.9640 | 0.9640 | 0.9651 | 0.9584 | +| Clamped hours | 1 | 312 | 139 | 22 | 7 | 7 | + +On the tuning months (mean of three) the v7 scripted strategy scores cost 0.9086, emissions 0.9607, discomfort 0.0312, ramping 0.9823, daily peak 0.8837, all-time peak 0.8526 and load factor 0.9525 with 14.3 clamped hours a month, against v6's 0.9086, 0.9607, 0.0310, 0.9821, 0.8836, 0.8530, 0.9522 and 112.0. The rule-based controller there: 0.9621, 1.0021, 0.1231, 1.0838, 0.9804, 0.9794, 0.9831. + +- If the agent keeps inside the ranges, clamps should fall from 312 hours to about 7 with nothing else changed. If it also sends `strategy_battery` every hour, ramping goes under 1.0 and cost, emissions, both peaks and load factor improve; unserved energy in outages rises slightly (0.6861 against 0.6850). +- **Only a live run can measure** whether Haiku keeps inside the ranges, sends a number for a held trim, and follows `strategy_battery` more closely under the new wording, and how the month then evolves, since fixed replies cannot react. + +**Request size and cost.** A version 7 request averages 10,748 characters against 10,928 for version 6, 1.7 percent smaller (the system prompt is 441 characters shorter, the observation 231 longer). Scaled from the 0.8.0 live month, a Haiku month should cost about $0.53; the hard worst case is $0.98, under the $2.00 cap. + +**Live results.** The 0.9.0 live run (`claude-haiku-5-5`, full month, 719 hours, prompt version 7, $2.00 budget, run 20261023T135430Z) against the baseline, the 0.4.0 rule-based controller (run 20261022T162847Z) and the 0.8.0 live month: + +| CityLearn KPI (district), full month | Baseline | 0.4.0 rule-based | 0.8.0 live, Haiku | 0.9.0 live, Haiku | +|---|---|---|---|---| +| cost_total | 1.000 | 0.9611 | 0.9190 | **0.9245** | +| carbon_emissions_total | 1.000 | 0.9947 | 0.9610 | **0.9648** | +| electricity_consumption_total | 1.000 | 1.0073 | 0.9695 | **0.9744** | +| discomfort_proportion | 0.1714 | 0.1714 | 0.0769 | **0.0940** | +| too cool | 0.1538 | 0.1538 | 0.0601 | **0.0759** | +| too warm | 0.0176 | 0.0176 | 0.0168 | **0.0181** | +| daily_peak_average | 1.000 | 0.9978 | 0.9264 | **0.9182** | +| all_time_peak_average | 1.000 | 1.0000 | 0.9593 | **0.9412** | +| ramping_average | 1.000 | 1.1309 | 1.0076 | **0.9864** | +| daily_one_minus_load_factor_average | 1.000 | 0.9913 | 0.9651 | **0.9566** | +| one_minus_thermal_resilience_proportion | 0.3698 | 0.3698 | 0.3698 | **0.3698** | +| power_outage_normalized_unserved_energy_total | 0.6844 | 0.6844 | 0.6850 | **0.6844** | +| Clamped hours, fallback hours | | 1, 0 | 312, 0 | **27, 0** | +| Model cost | | none | $0.5315 | **$0.4607** | + +- **Clamped hours fell from 312 to 27.** Version 7 shows the agent its allowed range each hour, and 250 of the 0.8.0 clamps were held trims the envelope logged as clamps, not the agent breaking a limit. +- **Ramping is under 1.0 for the first time since 0.4.0** (0.9864; 0.4.0 live: 0.9965). +- **It is the best live run so far on the daily peak and the all-time peak** (0.9182 against 0.8.0 live's 0.9264, and 0.9412 against 0.6.0 live's 0.9483). Load factor (0.9566) is second only to 0.4.0 live (0.9559), which left comfort at the baseline. +- **Against 0.8.0 live it gives back a little** cost (0.9245 against 0.9190), emissions (0.9648 against 0.9610) and comfort (0.0940 against 0.0769). +- **Against the 0.4.0 rule-based controller it beats or ties on every KPI except hot-side discomfort**, where it trails by 0.0005 (0.0181 against 0.0176). Unserved energy in outages now ties the baseline (0.6844). +- **Valley filling stays off by default.** On the tuning months it cut ramping further (0.9116 against 0.9823) but cost about 0.01 in cost (0.9181 against 0.9086). +- 0 fallbacks. The run cost $0.4607 of the $2.00 budget (719 calls) and replays 719 of 719 hours deterministically. + +**The published viewer now shows the 0.9.0 live run** in place of 0.8.0 (the page's headline: cost down 7.5 percent, emissions down 3.5 percent). + ## What the agent sees -Prompt version 6 (`hyperbolic/prompt.py`) is the default from 0.8.0. It keeps everything in version 5 and: +Prompt version 7 (`hyperbolic/prompt.py`) is the default from 0.9.0. It keeps everything in version 6 and: + +- **Shows what the envelope allows each building this hour.** `trim`: the held trim's `depth`, its `state` (off, hold, ease or end) and why, `min_depth` (the least trim allowed this hour while one is held) and `end_trim_ok`. `cooling_range` and `battery_range`: the values that pass the range, rate, state of charge, deviation, comfort and trim hold rules without a clamp (`null` when only the exact baseline passes). The spread check and the peak limiter are still shown as `grid_charging_ok` and `headroom_kwh`. +- **Shows `last_clamp` per building**, last hour's clamps there with their reasons, in place of the district-wide `last_clamps`. `cooling_trim_held` and `cooling_trim_last_hour` are dropped. +- **Says `null` is exactly the baseline**, for use only when the trim state is off or end; a held trim takes a number inside `cooling_range`. In 0.8.0 `null` on a held trim was kept by the envelope and logged as a clamp. +- **Takes `strategy_battery` from `battery_plan_v7`**, which with the shipped numbers is version 5's plan, kept inside `battery_range`. The agent is told to send it as given, and when it differs to stay within 0.1 of it and never skip a peak-shaving discharge. +- **Is shorter.** The envelope's rules are summed up by the ranges, so the system prompt drops 441 characters. + +Prompt version 6, the default in 0.8.0, keeps everything in version 5 and: - **States the trim hold.** The envelope holds a cooling trim in code (see [How the safety envelope works](#how-the-safety-envelope-works)); `null` cooling keeps a held trim, and a deeper trim is allowed. - **Adds `end_trim` to the reply**, per building: `null`, or a short reason to end that building's held trim now. It is the only way to end one early, and every early end is logged and shown in the viewer. @@ -371,12 +463,14 @@ Prompt version 3, the default in 0.4.0, keeps everything in version 2 and adds t - **Storage per building:** state of charge, capacity and how far the battery can move in one hour, for the battery and the hot water tank. - **A plain strategy:** charge the battery in the cheapest, cleanest hours and with spare solar, discharge into the price peak sized to the building's own load (exports earn nothing), mostly leave the hot water tank alone, keep cooling at the baseline unless a small pre-cool is clearly safe, and hold when nothing stands out. -Nothing reads the dataset ahead of time; the outlook is built only from observations the controller has already received. Prompt versions 1 to 5 are kept unchanged so runs recorded with 0.2.0 to 0.7.0 replay byte for byte, and `--prompt-version 1` to `5` still selects them, with the 0.7.0 envelope rules. +Nothing reads the dataset ahead of time; the outlook is built only from observations the controller has already received. Prompt versions 1 to 6 are kept unchanged so runs recorded with 0.2.0 to 0.8.0 replay byte for byte, and `--prompt-version 1` to `6` still selects them: 1 to 5 with the 0.7.0 envelope rules, 6 with the 0.8.0 rules that version 7 also uses. ## Tuning without peeking at the test month From 0.6.0 there is a separate 2023 tuning set. `scripts/tuning_data` holds `citylearn_challenge_2023_phase_2_online_evaluation_1` from CityLearn v3.0.2, copied unchanged: the same three buildings, batteries and LSTM models as the reported month, but June, July and August of a different period, with its own weather, loads, solar, carbon intensity and tariff, and no hour in common with the reported month. (`citylearn_challenge_2023_phase_1` is byte for byte the reported month's data, so it is no use for tuning; online evaluation sets 2 and 3 differ from set 1 only in the outage seed.) +In 0.9.0, `python scripts/tune_strategy.py --version 7` searched the version 7 battery plan's smoothing (`StrategyParamsV7`): a soft cap on how fast a battery action may rise (0.05 to 0.25, on charging and discharging or on a discharge winding down only), valley filling when grid charging, and a charge rate of 0.1 or 0.15, 36 settings with the 0.8.0 rules. Every candidate runs the same cooling, so the reference is the candidate with version 6's battery plan, and a setting qualified when ramping was lower with cost, emissions, discomfort and both peaks no worse. None did. Every cap raised cost and the all-time peak (a cap of 0.1: cost 0.9138 against 0.9086, all-time peak 0.8835 against 0.8526, ramping 0.9965 against 0.9823), and capping only the wind-down of a discharge raised ramping (1.0016). Charging at 0.1 cut ramping to 0.9644 and valley filling to as low as 0.9116, but both raised cost and the all-time peak. The shipped numbers are version 5's. + In 0.8.0 nothing was tuned. The trim hold takes its numbers from the version 5 strategy (hold until within 0.5 C, then ease by at most 0.02 per hour), and `python scripts/tune_strategy.py --version 6` runs the shipped version 5 strategy on the tuning months through the 0.7.0 rules and through the 0.8.0 rules, before anything is reported on the phase 2 month. The one choice made there was the hold's rounding allowance (see [Version 0.8.0](#version-080)). In 0.7.0, `python scripts/tune_strategy.py` (version 5, the default) searched how `strategy_plan_v5` smooths the load: how long a cooling trim is held, how fast it is eased off and how fast a grid charge may rise (`StrategyParamsV5`). A setting qualified when, averaged over the three tuning months, ramping was below the baseline and cost, emissions, discomfort and both peaks were no worse than the 0.6.0 strategy on the same months; the qualifying setting with the lowest ramping plus load factor won. 8 of 18 qualified. On the tuning months the shipped setting scores ramping 0.9816 and load factor 0.9517 against the 0.6.0 strategy's 0.9953 and 0.9529, with cost 0.9089 against 0.9113, emissions 0.9610 against 0.9671 and discomfort 0.0310 against 0.0344. @@ -399,6 +493,8 @@ Before 0.6.0 the repository had no other 2023 dataset offline, and the rule-base 8. **Trim hold (new in 0.8.0).** Per building the envelope keeps whether a cooling trim is on (cooling more than 0.002 below the baseline action) and how deep it is. While the room is occupied and more than 0.5 C below its setpoint, the trim stays at least as deep as last hour; within 0.5 C it eases off by at most 0.02 per hour; it ends at once at or above the setpoint, when the room is unoccupied, or when the baseline has no cooling to trim, and no trim may start there. `null` keeps a held trim, a deeper one is allowed, and a miss of less than 0.002 counts as rounding (the full depth stays held). The model can end a trim early only through `end_trim` with a reason. Every hold action is recorded with its reason in the hour's `holds`, and every value it changes is a clamp with rule `trim_hold`. It runs after the comfort rule and only keeps cooling below the baseline, within the deviation limit the trim already passed. It is not a ramp limit: it does not taper rises, it keeps a trim on. 9. **Peak limit (new in 0.4.0).** Across the district, battery charging and then tank charging are trimmed so the district's estimated draw this hour stays at or below the peak target (the higher of today's peak so far and the forecast of today's peak). Discharging and cooling are never touched by it, and discharging earns no credit in the estimate, so it never understates the load. +0.9.0 changes none of these rules. Prompt version 7 shows the agent, per building, the cooling and battery values that pass steps 2 to 8 without a clamp, worked out read only from the envelope's own state (`prompt.cooling_range`, `battery_range`, `trim_view`). One thing it makes visible: `null` on a held trim is kept by step 8 and still logged as a `trim_hold` clamp, and where a held trim is deeper than the baseline cooling, cooling 0 is held and logged as a clamp whatever the reply. + Older runs replay with the rule set they were recorded with: the run's manifest stores the envelope settings, and settings missing from an old manifest take the values they had before they existed (no deviation cap or unoccupied guard before 0.3.0, no peak limit before 0.4.0, no spread check before 0.6.0, no trim hold before 0.8.0). The rule-based reference controller runs with the 0.4.0 rules, without the spread check, so its result stays comparable. New runs on prompt versions before 6 run with the 0.7.0 rules (`EnvelopeConfig.v070()`), without the trim hold, because those prompts do not describe it. From 0.6.0 the comfort rule acts on the room temperature CityLearn simulated for the hour just finished. Before, it saw the dataset's no-control value for the coming hour (see [Version 0.6.0](#version-060)). @@ -412,7 +508,7 @@ The baseline action under active control is storage idle and the heat pump at th - Key from `HYPERBOLIC_ANTHROPIC_KEY`, falling back to `TRIAGE_ANTHROPIC_KEY`. The key lives only in the environment, never in a file, log or run folder (a test checks this). - Model: `--model haiku` (default, `claude-haiku-5-5`) or `--model sonnet` (`claude-sonnet-5-5`). Structured JSON output, low effort, 2000 max tokens. - Hard budget per run, `--budget` (default 2.00 USD). Before every call the runner computes that call's worst case (prompt size plus full max tokens). If it could push spending past the budget, model calls stop for the rest of the run and every remaining hour uses the baseline action. -- Episode length: the full 719 hours. The 0.2.0 live run averaged about 4,700 characters per request and cost 0.23 USD on Haiku. Prompt version 2 adds the 24 hour outlook and the strategy, about 7,400 characters per request, and the 0.3.0 live Haiku month cost 0.39 USD. Prompt version 3 is about 8,600 characters per request; the 0.4.0 live Haiku month cost 0.47 USD, against a hard worst case of about 0.93 USD. Prompt version 4 adds the reference action, the price plan and the battery limits, about 9,650 characters per request: the 0.6.0 live Haiku month cost 0.57 USD, against a hard worst case of about 0.95 USD. Prompt version 5 adds the smoothing view, about 10,430 characters per request: the 0.7.0 live Haiku month cost 0.63 USD, against a hard worst case of about 0.97 USD and the default 2.00 USD budget. Prompt version 6 adds the trim hold and `end_trim`, about 10,930 characters per request (4.8 percent more): a Haiku month should cost about 0.66 USD, against a hard worst case of about 0.99 USD. Sonnet costs 20 times as much per token: a full Sonnet month should cost roughly 11 to 13 USD, so under a 2.00 USD budget it stops calling the model after about a sixth of the month and the remaining hours use the baseline action. Raise `--budget` (about 14 USD) for a full Sonnet run. Each run logs its exact token cost in `result.json`. +- Episode length: the full 719 hours. The 0.2.0 live run averaged about 4,700 characters per request and cost 0.23 USD on Haiku. Prompt version 2 adds the 24 hour outlook and the strategy, about 7,400 characters per request, and the 0.3.0 live Haiku month cost 0.39 USD. Prompt version 3 is about 8,600 characters per request; the 0.4.0 live Haiku month cost 0.47 USD, against a hard worst case of about 0.93 USD. Prompt version 4 adds the reference action, the price plan and the battery limits, about 9,650 characters per request: the 0.6.0 live Haiku month cost 0.57 USD, against a hard worst case of about 0.95 USD. Prompt version 5 adds the smoothing view, about 10,430 characters per request: the 0.7.0 live Haiku month cost 0.63 USD, against a hard worst case of about 0.97 USD and the default 2.00 USD budget. Prompt version 6 adds the trim hold and `end_trim`, about 10,930 characters per request (4.8 percent more): the 0.8.0 live Haiku month cost 0.53 USD (5,245 input and 429 output tokens per call), against a hard worst case of about 0.99 USD. Prompt version 7 shows the envelope's ranges and is 1.7 percent smaller, about 10,750 characters: a Haiku month should cost about 0.53 USD, against a hard worst case of about 0.98 USD. Sonnet costs 20 times as much per token: a full Sonnet month should cost roughly 11 to 13 USD, so under a 2.00 USD budget it stops calling the model after about a sixth of the month and the remaining hours use the baseline action. Raise `--budget` (about 14 USD) for a full Sonnet run. Each run logs its exact token cost in `result.json`. ## How to run it @@ -448,7 +544,7 @@ python -m hyperbolic run && python -m hyperbolic compare | Command | What it does | |---|---| | `hyperbolic baseline` | Runs CityLearn's no-control reference. | -| `hyperbolic run` | Runs the supervisor through the envelope. `--model sonnet`, `--budget 5`, `--hours 24` for a short run, `--scripted` for the 0.4.0 rule-based controller with no API calls (prompt version 3 and the 0.4.0 envelope), `--scripted --prompt-version 4` or `5` for the version 4 or 5 strategy executed literally, `--scripted --prompt-version 6` for the version 5 strategy with the 0.8.0 trim hold, `--inject-faults` with `--scripted` to exercise clamps and fallback, `--prompt-version 1` to `5` for the 0.2.0, 0.3.0, 0.4.0, 0.6.0 or 0.7.0 prompt. Runs of two days or more need hours + 1 to be a whole number of days (for example 167 or 719), a limit of CityLearn 3.0.2's outage model. | +| `hyperbolic run` | Runs the supervisor through the envelope. `--model sonnet`, `--budget 5`, `--hours 24` for a short run, `--scripted` for the 0.4.0 rule-based controller with no API calls (prompt version 3 and the 0.4.0 envelope), `--scripted --prompt-version 4` or `5` for the version 4 or 5 strategy executed literally, `--scripted --prompt-version 6` for the version 5 strategy with the 0.8.0 trim hold, `--scripted --prompt-version 7` for the version 7 strategy kept inside the envelope's ranges, `--inject-faults` with `--scripted` to exercise clamps and fallback, `--prompt-version 1` to `6` for the 0.2.0, 0.3.0, 0.4.0, 0.6.0, 0.7.0 or 0.8.0 prompt. Runs of two days or more need hours + 1 to be a whole number of days (for example 167 or 719), a limit of CityLearn 3.0.2's outage model. | | `hyperbolic replay RUN_DIR` | Re-runs a saved run from its files with zero model or simulator calls and reports whether every decision and action matches. Exit code 1 if not. | | `hyperbolic compare` | Pairs the latest baseline (from `runs/` or the committed `results/`) with the latest agent run (a live run wins over a scripted one), prints the KPIs and writes the viewer data. `--pair BASELINE AGENT` to choose, `--out` to write the viewer data elsewhere, `--against RUN` (repeatable) to print another finished run of the same length beside them, for example the rule-based controller; the viewer data is unchanged. | | `hyperbolic serve` | Live mode in the browser on 127.0.0.1 (see [Watch it live](#watch-it-live)). `--port 8765`, `--no-browser`. | @@ -488,19 +584,20 @@ Dark by default with a light toggle, built for phones first, and it respects red ## Tests -`python -m pytest -q` runs fully offline. Envelope rules and runner logic run against a small fake district for speed; the backend, the CLI and the no-control equivalence run against real CityLearn on the shipped dataset; replay and the viewer builder run against CityLearn runs recorded in `tests/fixtures`. Covered: live mode through the real server with fake models (a full run streamed, recorded and replayed identically, the streamed hours matching the replay viewer's data, pause and resume, stop saving a partial run, the budget cap, the key never appearing in any response or file, the 127.0.0.1 binding and host checks, and the Claude options off without a key), the peak limiter (never above the target in randomized trials, trims recorded as clamps, battery before tank, off for older runs, and a CityLearn run that replays identically with its trims), the combined signal, the peak tracker, the reason length guard, the forecast horizons (6, 12 and 24 hours, the 0.2.0 mislabel), the 24 hour outlook never using unseen data, all six prompt versions, the trim hold (on, hold, ease, release, end at the setpoint, in an empty room and with no baseline cooling, early end with a reason, the rounding allowance, logging, fallback, the deviation and comfort rules still first, off for older runs, and runs that replay byte for byte and detect changed hold settings), the version 6 prompt, observation, `end_trim` schema and request size, the scripted version 6 reply following `strategy_battery`, the viewer showing early ends, a 24 hour version 6 CityLearn run that replays identically and a full version 6 CityLearn month, the exact ramping split and the evaluation control reproducing a recorded CityLearn run, the version 4 reference action equal to what the rule-based controller replies, the version 5 smoothing view and strategy (trim hold, slow release, release at the setpoint, gentle charge start, even discharge), a full version 5 CityLearn month with ramping below the baseline, version 5 runs that replay byte for byte and detect a changed observation, the public page's How it works and Run it yourself sections, the spread check (blocked at the top price with its reason, allowed when the coming peak pays, never blocked by a flat weekend, standing losses, spare solar, off for older runs and the rule-based reference), the indoor temperature being the one CityLearn simulated, 24 hour and full-month rule-based dry runs on CityLearn (the full month must still score the 0.4.0 cost, emissions, daily peak, ramping and load factor), a 24 hour version 4 run on CityLearn that replays identically, recorded version 4 runs that replay byte for byte and detect a changed reference policy, a cooling offset moving indoor temperatures, every envelope rule, malformed and schema-breaking replies, fallback on invalid, missing and refused replies, the budget stop, key handling, deterministic replay and tamper detection, replay with CityLearn not even importable, and byte-identical viewer data from the same files in one process or two. +`python -m pytest -q` runs fully offline. Envelope rules and runner logic run against a small fake district for speed; the backend, the CLI and the no-control equivalence run against real CityLearn on the shipped dataset; replay and the viewer builder run against CityLearn runs recorded in `tests/fixtures`. Covered: live mode through the real server with fake models (a full run streamed, recorded and replayed identically, the streamed hours matching the replay viewer's data, pause and resume, stop saving a partial run, the budget cap, the key never appearing in any response or file, the 127.0.0.1 binding and host checks, and the Claude options off without a key), the peak limiter (never above the target in randomized trials, trims recorded as clamps, battery before tank, off for older runs, and a CityLearn run that replays identically with its trims), the combined signal, the peak tracker, the reason length guard, the forecast horizons (6, 12 and 24 hours, the 0.2.0 mislabel), the 24 hour outlook never using unseen data, all seven prompt versions, `EnvelopeConfig` pinned field by field to 0.8.0 and the 0.8.0 live month replaying 719 of 719 hours when it is on disk, the version 7 observation (every trim state with `min_depth` and `end_trim_ok`, both ranges, `last_clamp`, the dropped fields), any value inside the version 7 ranges passing the envelope unclamped in randomized trials, a held trim left to `null` being clamped while the top of its range is not, the version 7 battery plan (version 5's with the shipped numbers, the soft cap winding a discharge down and leaving spare solar alone, valley filling), the version 7 prompt wording and request size, the scripted version 7 reply, version 7 runs on the fake district and 24 hours of CityLearn that replay identically and a full version 7 CityLearn month, the fitting evaluation and the version 7 search grid, the trim hold (on, hold, ease, release, end at the setpoint, in an empty room and with no baseline cooling, early end with a reason, the rounding allowance, logging, fallback, the deviation and comfort rules still first, off for older runs, and runs that replay byte for byte and detect changed hold settings), the version 6 prompt, observation, `end_trim` schema and request size, the scripted version 6 reply following `strategy_battery`, the viewer showing early ends, a 24 hour version 6 CityLearn run that replays identically and a full version 6 CityLearn month, the exact ramping split and the evaluation control reproducing a recorded CityLearn run, the version 4 reference action equal to what the rule-based controller replies, the version 5 smoothing view and strategy (trim hold, slow release, release at the setpoint, gentle charge start, even discharge), a full version 5 CityLearn month with ramping below the baseline, version 5 runs that replay byte for byte and detect a changed observation, the public page's How it works and Run it yourself sections, the spread check (blocked at the top price with its reason, allowed when the coming peak pays, never blocked by a flat weekend, standing losses, spare solar, off for older runs and the rule-based reference), the indoor temperature being the one CityLearn simulated, 24 hour and full-month rule-based dry runs on CityLearn (the full month must still score the 0.4.0 cost, emissions, daily peak, ramping and load factor), a 24 hour version 4 run on CityLearn that replays identically, recorded version 4 runs that replay byte for byte and detect a changed reference policy, a cooling offset moving indoor temperatures, every envelope rule, malformed and schema-breaking replies, fallback on invalid, missing and refused replies, the budget stop, key handling, deterministic replay and tamper detection, replay with CityLearn not even importable, and byte-identical viewer data from the same files in one process or two. CI (GitHub Actions) runs the tests on Python 3.10 and 3.12 with CPU-only torch, a repository rules check, and an author check that fails if any commit in a push or pull request was not authored by AddisonTech. ## Honest limits - **Simulator only.** CityLearn models buildings with data-driven load profiles and an LSTM for indoor temperature. Beating its reference is evidence worth investigating, not proof of field savings. -- **The rule-based check is not a model result.** It shows the action path can beat the reference and sets the bar for the agent. In 0.3.0 the live agent beat the baseline on cost only and did not beat the rule-based check. In 0.4.0 it beat the rule-based check on daily peak, ramping and load factor but not on cost or emissions. In 0.6.0 it beat it on every one of those. In 0.8.0 it beat it on every KPI except unserved energy in outages, by 0.0006. From 0.6.0 the rule-based check is frozen at its 0.4.0 settings so the bar does not move. +- **The rule-based check is not a model result.** It shows the action path can beat the reference and sets the bar for the agent. In 0.3.0 the live agent beat the baseline on cost only and did not beat the rule-based check. In 0.4.0 it beat the rule-based check on daily peak, ramping and load factor but not on cost or emissions. In 0.6.0 it beat it on every one of those. In 0.8.0 it beat it on every KPI except unserved energy in outages, by 0.0006. In 0.9.0 it beat or tied it on every KPI except hot-side discomfort, by 0.0005. From 0.6.0 the rule-based check is frozen at its 0.4.0 settings so the bar does not move. - **The scripted version 4 and 5 strategies are not model results either.** They show that the strategy the agent is given beats the rule-based controller when followed literally. A live model reads the same strategy and may follow it more or less closely. - **The peak limiter uses this hour's load.** It reads the draw CityLearn is about to simulate for this hour (plug load, solar, hot water demand, cooling), the equivalent of a meter reading in a real building. The forecast of the day's peak is built only from past days. The agent itself sees only the same values the limiter uses, never the rest of the day. - **Ramping is a sum of rises, against CityLearn's own reference.** Smoothing that only spreads a rise over more hours does not lower it, which is why the trims are held rather than tapered. The denominator is built inside each run, so an agent's actions in an outage hour can move it (see [Version 0.8.0](#version-080)). The remaining up-ramp is mostly the baseline's own evening rise and the end of the top-price discharge. -- **The live agent does not carry a plan from hour to hour.** Each hour is a separate call. In 0.7.0 it was asked to hold cooling trims across hours and broke that in 142 of 237 trim ends (the scripted strategy: 4 of 167). From 0.8.0 the envelope holds them in code, and in the 0.8.0 live month it had to correct the agent in 292 of 719 hours. Its battery use is still the agent's own: in 0.7.0 that, not the trims, is what raised ramping above 0.6.0. +- **The live agent does not carry a plan from hour to hour.** Each hour is a separate call. In 0.7.0 it was asked to hold cooling trims across hours and broke that in 142 of 237 trim ends (the scripted strategy: 4 of 167). From 0.8.0 the envelope holds them in code, and in the 0.8.0 live month it clamped the agent's cooling 345 times in 292 of 719 hours, 250 of them on `null` replies the prompt said would keep the trim. Version 7 shows the allowed range instead. Its battery use is still the agent's own: in 0.7.0 that, not the trims, is what raised ramping above 0.6.0. - **The 0.8.0 estimates were not live results.** The 0.7.0 replies sent through the 0.8.0 rules are fixed, so they cannot react to what the hold changed, and they do not include the version 6 prompt. The live month came in lower on ramping than that estimate (1.0076 against 1.0249); this release does not split how much of that is the hold and how much the prompt. +- **The 0.9.0 estimates are not live results.** They fit the 0.8.0 live replies into the version 7 ranges and, in one column, swap in `strategy_battery`. They assume a model that obeys the ranges and the battery plan, and fixed replies cannot react to what changed. Whether Haiku does that under the version 7 wording can only be measured live. - **Tuned on one other dataset.** From 0.6.0 the strategy's numbers come from three summer months of the CityLearn 2023 online evaluation set: other weather, loads, carbon and tariff, but the same three buildings and LSTM models, so it says nothing about other building types. The 0.4.0 rule-based controller still carries settings chosen on the first week of the reported month. - **The reference is a modest bar.** No storage use and an ideal-load heat pump. Any sensible battery and tank schedule should beat it on cost. The interesting questions are emissions, peaks and comfort at the same time. - **The comfort reference is not perfect.** CityLearn's own no-control run already leaves 17 percent of occupied hours outside the band, mostly too cool: CityLearn's LSTM runs the rooms colder than the ideal load data assumes. Trimming cooling in those rooms is the largest single gain in 0.6.0, and it rests on that model. diff --git a/docs/assets/version.js b/docs/assets/version.js index ff8db7b..61bf9f9 100644 --- a/docs/assets/version.js +++ b/docs/assets/version.js @@ -1,3 +1,3 @@ // The package version shown in the viewer footer. Kept equal to hyperbolic.__version__ // by tests/test_viewer.py; refresh it with: python -m hyperbolic.viewer --write-version -window.HYPERBOLIC_VERSION = "0.8.0"; +window.HYPERBOLIC_VERSION = "0.9.0"; diff --git a/docs/data/viewer.js b/docs/data/viewer.js index cf90511..af7061b 100644 --- a/docs/data/viewer.js +++ b/docs/data/viewer.js @@ -1 +1 @@ -window.HYPERBOLIC_VIEWER_DATA = {"buildings":[{"id":"Building_1","name":"Building 1"},{"id":"Building_2","name":"Building 2"},{"id":"Building_3","name":"Building 3"}],"comfort_band_k":2.0,"dataset":"citylearn_challenge_2023_phase_2_local_evaluation","kpis":[{"id":"cost_total","name":"Electricity cost","unit":"ratio to no control"},{"id":"carbon_emissions_total","name":"Carbon emissions","unit":"ratio to no control"},{"id":"electricity_consumption_total","name":"Grid import","unit":"ratio to no control"},{"id":"discomfort_proportion","name":"Discomfort","unit":"share of occupied hours"},{"id":"discomfort_hot_proportion","name":"Too warm","unit":"share of occupied hours"},{"id":"discomfort_cold_proportion","name":"Too cool","unit":"share of occupied hours"},{"id":"ramping_average","name":"Ramping","unit":"ratio to no control"},{"id":"daily_peak_average","name":"Daily peak","unit":"ratio to no control"},{"id":"all_time_peak_average","name":"All-time peak","unit":"ratio to no control"},{"id":"daily_one_minus_load_factor_average","name":"1 - daily load factor","unit":"ratio to no control"},{"id":"one_minus_thermal_resilience_proportion","name":"1 - thermal resilience","unit":"share of outage hours"},{"id":"power_outage_normalized_unserved_energy_total","name":"Unserved energy in outages","unit":"share"}],"sample":false,"scenarios":[{"agent":{"actions":{"Building_1":{"battery":[0.0,0.0,0.011,0.02,0.021,0.0,0.0,0.098,0.0,0.15,0.089,0.15,0.15,0.15,0.095,-0.242,-0.255,-0.286,0.0,-0.011,-0.011,-0.012,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.029,0.071,0.185,0.191,0.0,0.015,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.132,0.0,0.0,0.028,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.2,-0.092,-0.481,0.0,0.0,0.0,0.0,0.05,0.1,0.15,0.15,0.15,0.15,0.1,0.023,0.0,0.0,0.007,0.0,0.0,0.0,0.0,0.0,0.0,-0.249,-0.262,-0.295,-0.033,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.0,0.15,0.0,0.15,-0.471,0.03,0.15,0.0,0.15,0.103,0.0,0.085,0.15,0.093,0.0,-0.5,-0.218,0.0,-0.025,0.0,0.0,0.0,0.05,0.15,0.15,0.15,0.15,0.15,0.121,0.026,0.0,0.008,0.0,-0.5,0.0,0.15,0.15,-0.191,-0.197,-0.231,0.0,0.0,0.0,0.0,0.0,0.05,0.0,0.15,0.15,0.15,0.15,0.0,0.15,0.0,0.0,0.072,0.041,0.01,0.0,0.0,0.0,-0.152,-0.242,-0.396,-0.012,-0.012,-0.013,-0.016,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.055,0.038,0.0,-0.074,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.05,0.0,0.05,0.15,0.0,0.15,0.0,0.15,0.0,0.15,0.15,0.077,0.017,0.0,0.0,-0.5,-0.108,-0.114,-0.128,0.0,0.0,0.0,-0.013,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.0,0.023,0.05,0.0,0.0,0.0,0.0,0.104,-0.241,-0.254,-0.285,0.0,0.0,0.0,0.0,-0.033,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.0,0.0,0.104,0.079,0.017,0.0,0.0,0.0,-0.247,-0.261,-0.293,0.0,0.0,0.0,0.0,0.0,0.0,0.05,0.15,0.15,0.15,0.15,0.15,0.091,0.0,0.02,0.0,0.0,0.0,0.0,0.0,0.0,-0.066,-0.189,-0.302,0.0,-0.249,-0.027,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.042,0.011,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.248,-0.262,-0.294,0.0,-0.011,-0.011,-0.013,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.05,0.0,0.0,0.0,0.0,0.0,0.0,0.05,0.15,0.15,0.15,0.0,0.15,0.0,0.1,0.1,0.0,0.0,0.0,0.05,0.0,-0.233,-0.247,-0.275,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.131,0.0,0.028,0.009,-0.163,0.144,0.0,0.032,0.0,0.0,0.0,-0.245,-0.173,-0.184,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.074,0.016,0.0,0.0,0.0,0.006,0.0,0.0,0.0,0.0,0.0,0.0,-0.166,-0.3,-0.334,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.0,0.0,0.093,0.051,0.0,0.0,0.012,0.0,-0.247,-0.262,-0.294,-0.033,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.0,0.15,0.15,0.042,-0.338,0.15,0.15,0.046,0.0,0.039,0.01,0.0,0.0,-0.248,-0.262,-0.295,0.0,-0.011,-0.011,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.013,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.034,0.0,0.0,-0.144,0.0,0.0,0.0,-0.016,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.0,0.15,0.0,0.15,0.0,0.0,0.04,0.0,0.012,0.15,0.15,0.121,-0.24,-0.254,-0.1,0.0,0.0,0.0,0.0,0.0,0.05,0.1,0.0,0.15,0.15,0.15,0.085,0.019,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.247,-0.261,-0.292,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.131,0.028,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.246,-0.261,-0.292,-0.033,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.0,0.15,0.15,0.15,0.0,0.0,0.049,0.038,0.0,0.092,0.021,0.0,-0.247,-0.261,-0.293,0.0,-0.033,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.042,0.011,0.0,0.0,0.0,0.0,0.0,0.0,-0.248,-0.262,-0.294,0.0,-0.011,-0.011,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],"cooling":[0.068,0.081,0.079,0.072,0.063,0.072,0.072,0.085,0.293,0.15,0.08,0.26,0.281,0.368,0.461,0.647,0.781,0.377,0.133,0.306,0.642,0.116,0.214,0.41,0.35,0.1,0.008,0.078,0.087,0.094,0.106,0.12,0.028,0.088,0.184,0.277,0.456,0.582,0.6,0.634,0.598,0.598,0.487,0.287,0.329,0.558,0.706,0.527,0.344,0.247,0.186,0.146,0.143,0.156,0.148,0.17,0.251,0.003,0.036,0.0,0.078,0.108,0.151,0.307,0.56,0.49,0.062,0.009,0.006,0.22,0.047,0.1,0.081,0.05,0.03,0.006,0.012,0.004,0.0,0.079,0.072,0.092,0.009,0.103,0.12,0.0,0.097,0.078,0.178,0.274,0.214,0.161,0.136,0.106,0.085,0.206,0.117,0.135,0.119,0.095,0.109,0.05,0.103,0.12,0.117,0.102,0.107,0.117,0.2,0.285,0.376,0.469,0.479,0.53,0.421,0.24,0.163,0.141,0.13,0.121,0.102,0.074,0.183,0.185,0.142,0.121,0.169,0.15,0.21,0.402,0.233,0.182,0.2,0.195,0.295,0.127,0.093,0.31,0.258,0.29,0.3,0.337,0.265,0.188,0.227,0.28,0.17,0.131,0.113,0.103,0.15,0.149,0.25,0.1,0.119,0.211,0.277,0.368,0.465,0.377,0.084,0.095,0.149,0.11,0.148,0.101,0.071,0.05,0.033,0.019,0.008,0.0,0.0,0.069,0.017,0.012,0.101,0.081,0.112,0.153,0.202,0.261,0.317,0.352,0.371,0.354,0.28,0.19,0.142,0.131,0.097,0.079,0.081,0.059,0.048,0.041,0.035,0.024,0.049,0.07,0.203,0.202,0.242,0.307,0.379,0.461,0.535,0.627,0.593,0.568,0.445,0.315,0.2,0.164,0.132,0.286,0.216,0.223,0.194,0.155,0.1,0.09,0.092,0.116,0.148,0.084,0.148,0.217,0.32,0.4,0.499,0.53,0.417,0.561,0.554,0.388,0.285,0.101,0.14,0.12,0.225,0.296,0.153,0.105,0.092,0.094,0.1,0.158,0.257,0.22,0.13,0.153,0.246,0.339,0.689,0.698,0.525,0.42,0.407,0.305,0.137,0.088,0.076,0.256,0.199,0.226,0.213,0.178,0.153,0.139,0.14,0.133,0.017,0.077,0.15,0.236,0.307,0.36,0.43,0.52,0.615,0.669,0.525,0.3,0.247,0.161,0.106,0.309,0.18,0.196,0.184,0.1,0.078,0.088,0.113,0.147,0.194,0.0,0.067,0.162,0.233,0.328,0.432,0.49,0.557,0.525,0.398,0.284,0.263,0.177,0.111,0.085,0.213,0.274,0.212,0.1,0.087,0.104,0.125,0.19,0.177,0.1,0.153,0.211,0.104,0.102,0.128,0.248,0.3,0.32,0.43,0.45,0.284,0.2,0.138,0.111,0.208,0.275,0.219,0.167,0.18,0.1,0.115,0.156,0.2,0.091,0.161,0.236,0.331,0.23,0.519,0.52,0.519,0.532,0.4,0.282,0.193,0.249,0.128,0.093,0.202,0.28,0.239,0.189,0.154,0.135,0.1,0.251,0.208,0.075,0.146,0.196,0.559,0.441,0.383,0.204,0.276,0.364,0.262,0.185,0.189,0.114,0.078,0.054,0.038,0.025,0.015,0.007,0.0,0.008,0.018,0.033,0.066,0.103,0.159,0.406,0.706,0.459,0.53,0.909,0.972,0.66,0.444,0.243,0.089,0.176,0.25,0.193,0.234,0.305,0.249,0.195,0.161,0.227,0.168,0.162,0.085,0.008,0.084,0.167,0.26,0.23,0.352,0.482,0.471,0.433,0.32,0.301,0.084,0.155,0.049,0.011,0.152,0.228,0.196,0.1,0.068,0.072,0.085,0.103,0.084,0.024,0.042,0.02,0.071,0.002,0.115,0.122,0.132,0.126,0.118,0.101,0.068,0.075,0.066,0.06,0.115,0.203,0.177,0.14,0.12,0.102,0.102,0.13,0.13,0.0,0.0,0.044,0.08,0.106,0.143,0.236,0.19,0.051,0.03,0.097,0.088,0.084,0.074,0.134,0.135,0.186,0.167,0.134,0.115,0.099,0.101,0.116,0.124,0.068,0.124,0.209,0.296,0.3,0.345,0.43,0.708,0.687,0.478,0.295,0.223,0.1,0.063,0.055,0.179,0.257,0.213,0.166,0.0,0.177,0.048,0.086,0.129,0.059,0.156,0.389,0.41,0.384,0.47,0.831,0.895,0.603,0.419,0.287,0.208,0.15,0.1,0.082,0.205,0.105,0.079,0.069,0.063,0.056,0.074,0.209,0.334,0.325,0.365,0.3,0.437,0.496,0.591,0.695,0.61,0.54,0.455,0.32,0.174,0.11,0.349,0.25,0.091,0.199,0.085,0.063,0.13,0.174,0.179,0.12,0.0,0.076,0.173,0.234,0.419,0.348,0.19,0.54,0.82,0.693,0.435,0.316,0.283,0.213,0.213,0.115,0.157,0.228,0.122,0.101,0.171,0.216,0.219,0.193,0.163,0.0,0.055,0.102,0.171,0.249,0.331,0.333,0.327,0.184,0.031,0.306,0.276,0.268,0.188,0.139,0.154,0.258,0.22,0.18,0.104,0.081,0.086,0.119,0.11,0.033,0.112,0.171,0.254,0.32,0.386,0.479,0.52,0.442,0.227,0.207,0.19,0.133,0.1,0.282,0.15,0.233,0.21,0.166,0.141,0.08,0.11,0.172,0.189,0.122,0.186,0.22,0.04,0.088,0.401,0.707,0.825,0.34,0.25,0.598,0.304,0.225,0.144,0.38,0.09,0.25,0.1,0.057,0.149,0.149,0.238,0.137,0.196,0.134,0.199,0.584,0.36,0.352,0.561,0.608,0.634,0.629,0.492,0.453,0.268,0.236,0.137,0.08,0.225,0.31,0.18,0.078,0.179,0.1,0.164,0.205,0.214,0.215,0.386,0.387,0.654,0.491,0.525,0.527,0.591,0.363,0.204,0.426,0.383,0.522,0.593,0.393,0.155,0.093,0.048,0.049,0.053,0.058,0.073,0.179,0.215,0.35,0.4,0.406,0.475,0.574,0.677,0.723,0.832,0.778,0.45,0.357,0.273,0.215,0.147],"dhw":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0]},"Building_2":{"battery":[0.0,0.0,0.011,0.02,0.021,0.0,0.0,0.098,0.0,0.15,0.15,0.15,0.15,0.15,0.048,-0.245,-0.259,-0.291,0.0,-0.011,-0.011,-0.012,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.0,0.0,0.0,0.0,-0.206,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.1,0.05,0.0,0.0,0.0,0.0,0.0,0.0,-0.107,-0.18,-0.381,0.0,0.0,0.0,0.0,0.05,0.1,0.15,0.15,0.15,0.15,0.117,0.025,0.0,0.0,0.008,0.0,0.0,0.0,0.0,0.0,0.0,-0.249,-0.262,-0.294,-0.033,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.0,0.15,0.0,0.15,-0.074,0.15,0.15,0.0,0.107,0.024,0.0,0.0,0.0,-0.2,-0.231,-0.259,-0.13,0.0,-0.014,0.0,0.0,0.0,0.05,0.15,0.15,0.15,0.15,0.15,0.123,0.026,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.247,-0.255,-0.255,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.0,0.15,0.0,0.0,0.0,0.0,0.093,0.021,0.0,0.0,-0.231,-0.238,-0.252,-0.025,-0.027,-0.028,-0.033,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.05,0.15,0.0,0.15,0.0,0.15,0.0,0.15,0.15,0.123,0.026,0.0,0.0,0.0,-0.247,-0.26,-0.292,0.0,0.0,0.0,-0.033,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.0,0.0,0.05,0.0,0.0,0.0,0.0,0.122,-0.24,-0.254,-0.284,0.0,0.0,0.0,0.0,-0.033,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.0,0.0,0.0,0.0,0.0,0.1,0.0,0.083,-0.243,-0.176,-0.248,0.0,0.0,0.0,0.0,0.0,0.0,0.05,0.0,0.15,0.15,0.15,0.15,0.103,0.0,0.023,0.0,0.0,0.0,0.0,0.0,0.0,-0.247,-0.255,-0.297,0.0,-0.033,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.042,0.01,0.0,-0.5,0.0,0.15,0.0,0.15,0.15,0.074,-0.243,-0.257,-0.288,0.0,-0.011,-0.011,-0.012,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.05,0.0,0.0,0.0,0.0,0.0,0.0,0.05,0.15,0.15,0.15,0.0,0.15,0.0,0.0,0.0,0.0,0.0,0.0,0.127,0.0,-0.201,-0.214,-0.202,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.104,0.0,0.023,0.007,-0.49,0.15,0.0,0.15,0.15,0.069,0.0,-0.5,-0.099,-0.105,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.045,0.011,0.0,0.0,0.003,0.0,0.0,0.0,0.0,0.0,0.0,-0.137,-0.194,-0.098,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.146,0.0,0.0,0.0,0.0,0.0,0.0,0.033,0.0,-0.246,-0.26,-0.206,-0.108,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.0,0.15,0.15,0.033,-0.089,0.086,0.02,0.0,0.0,0.0,0.0,0.0,0.0,-0.247,-0.218,-0.274,-0.021,-0.023,-0.024,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.027,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.0,0.0,-0.237,0.0,0.0,0.0,-0.026,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.0,0.15,0.0,0.15,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,-0.234,-0.248,-0.093,0.0,0.0,0.0,0.0,0.0,0.05,0.1,0.0,0.15,0.15,0.15,0.085,0.019,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.247,-0.254,-0.273,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.107,0.024,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.247,-0.261,-0.292,-0.033,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.0,0.15,0.15,0.15,0.0,0.0,-0.227,0.15,0.0,0.15,0.128,0.028,-0.247,-0.261,-0.292,0.0,-0.033,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.043,0.01,0.0,0.0,0.0,0.0,0.0,0.0,-0.248,-0.262,-0.293,0.0,-0.011,-0.011,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],"cooling":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.497,0.159,0.233,0.3,0.401,0.474,0.604,0.696,0.671,0.622,0.462,0.276,0.346,0.45,0.32,0.06,0.011,0.089,0.129,0.006,0.0,0.0,0.0,0.023,0.453,0.189,0.278,0.428,0.47,0.728,0.838,0.984,0.64,0.601,0.479,0.256,0.203,0.192,0.199,0.131,0.083,0.057,0.04,0.028,0.02,0.014,0.007,0.026,0.074,0.121,0.181,0.255,0.271,0.448,0.403,0.167,0.204,0.203,0.152,0.099,0.107,0.178,0.2,0.035,0.007,0.02,0.103,0.073,0.0,0.0,0.0,0.0,0.0,0.027,0.059,0.069,0.091,0.111,0.164,0.176,0.235,0.236,0.27,0.104,0.068,0.055,0.077,0.118,0.147,0.02,0.0,0.0,0.0,0.0,0.0,0.215,0.099,0.144,0.392,0.456,0.451,0.487,0.575,0.586,0.585,0.547,0.433,0.23,0.185,0.145,0.113,0.082,0.145,0.041,0.0,0.0,0.0,0.0,0.0,0.065,0.137,0.171,0.21,0.261,0.458,0.543,0.448,0.452,0.486,0.469,0.366,0.204,0.156,0.13,0.097,0.227,0.167,0.0,0.0,0.0,0.0,0.0,0.134,0.064,0.19,0.416,0.169,0.255,0.342,0.425,0.541,0.535,0.527,0.457,0.31,0.193,0.169,0.14,0.148,0.214,0.256,0.222,0.0,0.0,0.0,0.0,0.0,0.104,0.085,0.137,0.211,0.28,0.346,0.408,0.495,0.485,0.493,0.452,0.35,0.22,0.169,0.15,0.129,0.082,0.053,0.036,0.022,0.013,0.007,0.002,0.04,0.104,0.181,0.224,0.267,0.328,0.384,0.448,0.541,0.521,0.498,0.442,0.343,0.201,0.154,0.123,0.188,0.067,0.048,0.032,0.02,0.012,0.008,0.004,0.035,0.093,0.203,0.276,0.346,0.419,0.502,0.719,0.698,0.695,0.685,0.622,0.476,0.313,0.217,0.152,0.205,0.247,0.076,0.009,0.019,0.021,0.021,0.02,0.046,0.219,0.567,0.25,0.452,0.446,0.441,0.525,0.611,0.588,0.569,0.522,0.415,0.267,0.195,0.143,0.147,0.182,0.251,0.093,0.0,0.0,0.005,0.008,0.051,0.121,0.208,0.423,0.295,0.362,0.421,0.491,0.596,0.604,0.605,0.639,0.474,0.282,0.218,0.189,0.297,0.135,0.009,0.017,0.021,0.016,0.013,0.01,0.049,0.111,0.168,0.194,0.221,0.277,0.335,0.402,0.81,0.805,0.384,0.452,0.41,0.277,0.259,0.226,0.248,0.149,0.181,0.16,0.006,0.0,0.0,0.0,0.047,0.119,0.452,0.243,0.293,0.347,0.399,0.446,0.525,0.527,0.529,0.758,0.415,0.293,0.196,0.161,0.127,0.115,0.219,0.132,0.0,0.0,0.002,0.004,0.062,0.139,0.288,0.509,0.578,0.316,0.379,0.479,0.593,0.602,0.608,0.574,0.48,0.319,0.278,0.317,0.184,0.117,0.138,0.08,0.006,0.015,0.013,0.012,0.059,0.129,0.191,0.247,0.3,0.379,0.459,0.536,0.879,0.917,0.567,0.511,0.447,0.308,0.218,0.165,0.121,0.091,0.169,0.187,0.02,0.005,0.037,0.012,0.045,0.156,0.173,0.213,0.287,0.364,0.444,0.62,0.587,0.564,0.515,0.495,0.363,0.268,0.2,0.164,0.2,0.087,0.2,0.173,0.0,0.002,0.008,0.01,0.333,0.17,0.269,0.529,0.216,0.311,0.635,0.476,0.692,0.62,0.403,0.328,0.227,0.154,0.118,0.095,0.069,0.109,0.226,0.089,0.0,0.0,0.0,0.0,0.008,0.064,0.046,0.07,0.082,0.1,0.127,0.174,0.225,0.153,0.134,0.095,0.064,0.039,0.035,0.028,0.018,0.052,0.137,0.045,0.0,0.0,0.0,0.0,0.001,0.04,0.031,0.158,0.227,0.059,0.084,0.116,0.146,0.149,0.148,0.118,0.136,0.074,0.059,0.048,0.079,0.25,0.21,0.047,0.0,0.0,0.0,0.0,0.011,0.072,0.121,0.177,0.231,0.303,0.367,0.426,0.521,0.729,0.595,0.349,0.526,0.207,0.168,0.14,0.106,0.077,0.197,0.158,0.0,0.0,0.0,0.0,0.045,0.428,0.357,0.505,0.299,0.433,0.7,0.6,0.948,0.972,0.472,0.507,0.455,0.31,0.226,0.189,0.282,0.343,0.083,0.003,0.013,0.018,0.013,0.011,0.057,0.206,0.29,0.445,0.507,0.768,0.71,0.515,0.667,0.706,0.693,0.605,0.482,0.321,0.232,0.179,0.128,0.26,0.28,0.012,0.007,0.013,0.017,0.017,0.066,0.44,0.364,0.167,0.621,0.38,0.499,0.859,0.904,0.565,0.896,0.551,0.623,0.292,0.337,0.227,0.092,0.27,0.233,0.0,0.001,0.013,0.02,0.022,0.182,0.175,0.17,0.166,0.204,0.373,0.505,0.377,0.654,0.685,0.688,0.262,0.187,0.161,0.145,0.116,0.133,0.112,0.063,0.026,0.029,0.027,0.024,0.021,0.053,0.115,0.189,0.233,0.285,0.335,0.412,0.443,0.522,0.525,0.529,0.498,0.388,0.281,0.232,0.206,0.453,0.1,0.048,0.073,0.018,0.02,0.017,0.016,0.07,0.194,0.429,0.288,0.363,0.551,0.478,0.592,0.65,0.68,0.71,0.688,0.947,0.38,0.291,0.249,0.221,0.183,0.162,0.096,0.046,0.024,0.025,0.022,0.089,0.179,0.336,0.339,0.392,0.469,0.562,0.639,0.77,0.789,0.839,0.855,0.649,0.385,0.286,0.364,0.291,0.295,0.169,0.218,0.029,0.034,0.033,0.032,0.298,0.168,0.404,0.355,0.377,0.492,0.589,0.768,1.0,0.907,0.721,0.671,0.54,0.426,0.268,0.217,0.159,0.121,0.179,0.172,0.039,0.032,0.031,0.034,0.067,0.15,0.278,0.375,0.464,0.572,0.692,0.797,0.933,0.933,0.867,0.748,0.663,0.38,0.264,0.207,0.137],"dhw":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0]},"Building_3":{"battery":[0.0,0.0,0.011,0.02,0.021,0.0,0.0,0.098,0.0,0.15,0.15,0.15,0.15,0.15,0.15,-0.158,-0.196,-0.291,-0.035,-0.04,-0.049,-0.074,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.0,0.0,0.0,0.0,-0.157,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.1,0.05,0.0,0.0,0.0,0.0,0.15,0.0,-0.075,-0.127,-0.244,0.0,0.0,0.0,0.0,0.05,0.1,0.0,0.15,0.15,0.15,0.15,0.104,0.057,0.0,0.034,0.02,0.012,0.0,0.0,0.0,0.0,-0.244,-0.303,-0.448,-0.217,-0.104,-0.05,0.0,0.0,0.0,0.15,0.15,0.0,0.15,0.0,0.15,-0.296,0.15,0.15,0.0,0.15,0.15,0.0,0.15,0.15,-0.14,-0.238,-0.352,-0.169,0.0,-0.081,0.0,0.0,0.0,0.05,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.14,0.077,-0.109,0.101,0.056,0.031,-0.234,-0.303,-0.448,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.0,0.15,0.0,0.0,0.0,0.15,0.13,0.07,0.0,0.041,-0.241,-0.298,-0.442,-0.053,-0.062,-0.077,-0.113,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.047,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.015,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.05,0.0,0.05,0.15,0.0,0.15,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.0,0.15,-0.3,-0.168,-0.208,-0.308,0.0,0.0,0.0,-0.146,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.0,0.0,0.15,0.0,0.0,0.0,0.15,0.15,-0.203,-0.251,-0.371,0.0,0.0,0.0,0.0,-0.179,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,-0.208,-0.257,-0.381,0.0,0.0,0.0,0.0,0.0,0.0,0.05,0.0,0.15,0.15,0.15,0.15,0.15,0.0,0.0,0.15,0.137,0.0,0.077,0.043,0.025,-0.244,-0.302,-0.447,0.0,-0.217,-0.104,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,-0.409,0.0,0.15,0.0,0.15,0.15,0.093,-0.232,-0.287,-0.425,-0.051,-0.06,-0.073,-0.109,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.037,0.0,0.0,-0.017,0.0,0.0,0.05,0.0,0.0,0.0,0.0,0.0,0.0,0.05,0.15,0.15,0.15,0.0,0.15,0.0,0.1,0.0,0.0,0.0,0.15,0.127,0.0,-0.156,-0.192,-0.286,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.0,0.15,0.136,-0.221,0.15,0.0,0.125,0.07,0.039,0.0,-0.24,-0.199,-0.223,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.1,0.15,0.15,0.126,0.068,0.038,0.022,0.014,0.01,0.0,0.0,0.0,0.0,0.0,0.013,-0.146,-0.252,-0.49,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.0,0.0,0.0,0.0,0.15,0.0,0.14,0.077,-0.234,-0.291,-0.43,-0.209,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.0,0.15,0.15,0.15,-0.35,0.15,0.15,0.15,0.148,0.081,0.046,0.026,0.015,-0.245,-0.304,-0.45,-0.054,-0.063,-0.078,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.11,0.0,0.0,0.0,0.0,0.0,-0.051,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.0,0.0,-0.154,0.0,0.0,0.0,-0.074,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.0,0.15,0.0,0.15,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,-0.168,-0.209,-0.103,0.0,0.0,0.0,0.0,0.0,0.05,0.1,0.0,0.15,0.15,0.15,0.15,0.15,0.089,0.049,0.028,0.017,0.011,0.0,0.0,0.011,-0.247,-0.306,-0.452,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.123,0.067,0.038,0.0,0.0,0.0,0.0,0.027,-0.243,-0.301,-0.446,-0.217,0.0,0.0,-0.103,0.0,0.0,0.0,0.15,0.15,0.0,0.15,0.15,0.15,0.0,0.107,-0.39,0.15,0.0,0.15,0.15,0.15,-0.169,-0.21,-0.311,0.0,-0.148,0.0,-0.071,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.1,0.0,0.057,0.032,0.019,-0.245,-0.303,-0.449,-0.054,-0.063,-0.078,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],"cooling":[0.053,0.019,0.01,0.005,0.0,0.0,0.053,0.103,0.269,0.351,0.319,0.36,0.435,0.526,0.599,0.657,0.695,0.44,0.333,0.218,0.253,0.224,0.27,0.328,0.085,0.047,0.058,0.018,0.009,0.039,0.033,0.05,0.13,0.225,0.296,0.373,0.448,0.537,0.644,0.819,0.911,0.679,0.485,0.475,0.419,0.358,0.149,0.032,0.06,0.051,0.043,0.036,0.032,0.026,0.031,0.071,0.173,0.176,0.322,0.266,0.246,0.394,0.422,0.431,0.32,0.254,0.301,0.24,0.19,0.165,0.093,0.008,0.02,0.024,0.021,0.019,0.013,0.012,0.121,0.041,0.144,0.078,0.084,0.076,0.092,0.097,0.114,0.147,0.171,0.2,0.181,0.14,0.172,0.193,0.148,0.078,0.045,0.035,0.028,0.022,0.013,0.0,0.001,0.03,0.054,0.088,0.13,0.178,0.266,0.342,0.404,0.468,0.504,0.527,0.449,0.494,0.2,0.094,0.079,0.118,0.084,0.062,0.048,0.036,0.02,0.019,0.098,0.114,0.234,0.27,0.301,0.333,0.386,0.449,0.52,0.54,0.577,0.344,0.229,0.148,0.357,0.213,0.143,0.106,0.082,0.1,0.094,0.082,0.041,0.028,0.055,0.116,0.125,0.152,0.199,0.267,0.349,0.414,0.48,0.5,0.542,0.573,0.41,0.291,0.197,0.177,0.125,0.115,0.082,0.06,0.045,0.033,0.016,0.018,0.081,0.083,0.089,0.124,0.17,0.224,0.285,0.451,0.53,0.548,0.592,0.729,0.553,0.32,0.245,0.163,0.1,0.129,0.097,0.078,0.061,0.052,0.043,0.036,0.054,0.09,0.134,0.172,0.233,0.306,0.364,0.534,0.549,0.55,0.527,0.52,0.537,0.308,0.229,0.191,0.158,0.113,0.086,0.067,0.053,0.043,0.033,0.032,0.047,0.079,0.136,0.192,0.266,0.326,0.41,0.472,0.564,0.694,0.84,0.799,0.648,0.552,0.348,0.279,0.192,0.11,0.197,0.18,0.154,0.051,0.0,0.026,0.362,0.139,0.15,0.192,0.244,0.322,0.47,0.561,0.599,0.521,0.553,0.403,0.382,0.476,0.325,0.327,0.137,0.019,0.022,0.078,0.096,0.087,0.08,0.067,0.058,0.074,0.169,0.235,0.274,0.333,0.4,0.48,0.542,0.587,0.622,0.55,0.441,0.438,0.512,0.627,0.451,0.129,0.078,0.063,0.055,0.048,0.042,0.038,0.137,0.091,0.151,0.193,0.229,0.272,0.328,0.394,0.476,0.474,0.538,0.487,0.416,0.308,0.262,0.296,0.258,0.049,0.09,0.073,0.059,0.048,0.033,0.033,0.055,0.097,0.124,0.166,0.216,0.274,0.329,0.381,0.429,0.51,0.591,0.4,0.31,0.367,0.331,0.197,0.169,0.058,0.087,0.072,0.061,0.052,0.038,0.035,0.061,0.248,0.187,0.213,0.269,0.336,0.391,0.45,0.508,0.616,0.61,0.522,0.524,0.374,0.265,0.179,0.137,0.261,0.06,0.042,0.071,0.062,0.054,0.047,0.066,0.1,0.146,0.264,0.339,0.41,0.491,0.548,0.629,0.683,0.702,0.568,0.457,0.366,0.295,0.243,0.186,0.139,0.109,0.089,0.076,0.065,0.055,0.049,0.072,0.205,0.269,0.326,0.412,0.43,0.691,0.594,0.592,0.587,0.563,0.454,0.415,0.417,0.39,0.318,0.23,0.01,0.068,0.063,0.058,0.053,0.048,0.044,0.066,0.101,0.146,0.208,0.264,0.316,0.373,0.412,0.456,0.497,0.479,0.394,0.24,0.163,0.134,0.12,0.102,0.03,0.042,0.052,0.049,0.045,0.038,0.037,0.157,0.089,0.097,0.058,0.063,0.079,0.098,0.114,0.127,0.134,0.175,0.101,0.077,0.038,0.057,0.075,0.058,0.051,0.051,0.044,0.037,0.034,0.028,0.107,0.045,0.037,0.078,0.091,0.106,0.12,0.137,0.164,0.18,0.176,0.158,0.214,0.153,0.139,0.138,0.294,0.05,0.0,0.0,0.034,0.033,0.128,0.038,0.029,0.051,0.242,0.175,0.199,0.243,0.314,0.376,0.441,0.506,0.55,0.549,0.468,0.36,0.206,0.201,0.187,0.153,0.166,0.086,0.07,0.061,0.053,0.041,0.038,0.131,0.125,0.334,0.254,0.277,0.339,0.41,0.487,0.52,0.616,0.719,0.599,0.501,0.467,0.321,0.238,0.108,0.057,0.111,0.093,0.078,0.065,0.054,0.049,0.071,0.252,0.213,0.267,0.341,0.434,0.596,0.724,0.861,0.853,0.811,0.626,0.449,0.315,0.218,0.162,0.111,0.053,0.136,0.118,0.104,0.092,0.085,0.075,0.072,0.106,0.177,0.283,0.383,0.448,0.538,0.544,0.61,0.66,0.709,0.623,0.532,0.339,0.194,0.148,0.097,0.065,0.07,0.114,0.102,0.058,0.058,0.051,0.073,0.107,0.178,0.212,0.234,0.288,0.347,0.394,0.437,0.456,0.37,0.328,0.332,0.299,0.205,0.135,0.11,0.016,0.077,0.071,0.065,0.06,0.055,0.052,0.062,0.09,0.173,0.208,0.296,0.367,0.46,0.476,0.511,0.515,0.572,0.459,0.308,0.24,0.278,0.215,0.27,0.07,0.059,0.054,0.06,0.062,0.052,0.253,0.072,0.111,0.272,0.261,0.285,0.342,0.412,0.479,0.557,0.626,0.668,0.712,0.606,0.581,0.305,0.217,0.141,0.085,0.066,0.057,0.096,0.08,0.066,0.061,0.126,0.164,0.315,0.46,0.543,0.468,0.553,0.655,0.776,0.837,0.752,0.613,0.461,0.372,0.254,0.305,0.18,0.096,0.068,0.12,0.102,0.089,0.08,0.07,0.096,0.152,0.2,0.262,0.344,0.683,0.632,0.634,0.697,0.748,0.747,0.724,0.704,0.463,0.342,0.273,0.215,0.173,0.136,0.116,0.102,0.091,0.071,0.074,0.086,0.129,0.202,0.404,0.398,0.48,0.704,0.918,0.974,1.0,0.958,0.839,0.626,0.456,0.346,0.273,0.371],"dhw":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0]}},"buildings":{"Building_1":{"battery_soc":[0.2,0.2,0.209,0.224,0.24,0.24,0.24,0.317,0.317,0.433,0.503,0.619,0.736,0.853,0.927,0.713,0.487,0.234,0.234,0.224,0.214,0.204,0.204,0.204,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.32,0.436,0.459,0.514,0.658,0.807,0.807,0.818,0.818,0.818,0.818,0.818,0.818,0.818,0.818,0.818,0.818,0.818,0.817,0.817,0.92,0.92,0.92,0.942,0.941,0.941,0.941,0.941,0.941,0.941,0.941,0.941,0.764,0.682,0.264,0.264,0.264,0.264,0.264,0.303,0.381,0.497,0.614,0.731,0.848,0.925,0.943,0.943,0.943,0.948,0.948,0.948,0.948,0.948,0.948,0.948,0.727,0.496,0.234,0.205,0.205,0.205,0.205,0.205,0.205,0.322,0.439,0.439,0.555,0.555,0.672,0.262,0.285,0.402,0.402,0.519,0.599,0.599,0.665,0.782,0.854,0.854,0.42,0.227,0.227,0.205,0.205,0.205,0.205,0.244,0.361,0.477,0.594,0.711,0.828,0.922,0.942,0.942,0.948,0.948,0.543,0.543,0.66,0.777,0.608,0.433,0.229,0.229,0.229,0.229,0.229,0.229,0.268,0.268,0.384,0.501,0.618,0.735,0.735,0.851,0.851,0.851,0.907,0.939,0.947,0.947,0.946,0.946,0.812,0.598,0.25,0.24,0.229,0.218,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.246,0.275,0.275,0.21,0.21,0.21,0.209,0.209,0.209,0.209,0.209,0.209,0.209,0.248,0.248,0.287,0.404,0.404,0.521,0.521,0.637,0.637,0.754,0.871,0.931,0.944,0.944,0.944,0.525,0.43,0.329,0.215,0.215,0.215,0.215,0.204,0.204,0.204,0.204,0.204,0.321,0.437,0.554,0.671,0.787,0.787,0.805,0.844,0.844,0.844,0.844,0.844,0.925,0.711,0.486,0.234,0.234,0.234,0.234,0.234,0.205,0.205,0.205,0.205,0.322,0.438,0.555,0.672,0.789,0.789,0.788,0.869,0.931,0.944,0.944,0.944,0.944,0.725,0.494,0.235,0.235,0.235,0.235,0.235,0.235,0.235,0.274,0.39,0.507,0.624,0.74,0.857,0.928,0.928,0.943,0.943,0.943,0.943,0.943,0.943,0.943,0.884,0.717,0.45,0.45,0.229,0.205,0.205,0.205,0.322,0.439,0.556,0.672,0.789,0.906,0.938,0.947,0.947,0.947,0.947,0.947,0.946,0.946,0.946,0.946,0.727,0.495,0.235,0.235,0.225,0.215,0.204,0.204,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.241,0.358,0.475,0.592,0.592,0.708,0.708,0.786,0.864,0.864,0.864,0.864,0.902,0.902,0.696,0.477,0.234,0.234,0.234,0.234,0.234,0.351,0.468,0.584,0.701,0.818,0.92,0.92,0.941,0.948,0.804,0.916,0.916,0.94,0.94,0.94,0.94,0.723,0.57,0.407,0.407,0.407,0.407,0.407,0.407,0.407,0.524,0.641,0.757,0.874,0.932,0.944,0.944,0.944,0.944,0.948,0.948,0.948,0.948,0.948,0.948,0.948,0.801,0.535,0.241,0.241,0.241,0.241,0.241,0.241,0.241,0.241,0.241,0.357,0.474,0.591,0.708,0.824,0.824,0.824,0.897,0.936,0.936,0.936,0.945,0.945,0.726,0.495,0.234,0.205,0.205,0.205,0.205,0.322,0.439,0.555,0.672,0.672,0.789,0.906,0.938,0.64,0.757,0.874,0.909,0.909,0.939,0.947,0.947,0.947,0.727,0.496,0.234,0.234,0.225,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.32,0.346,0.346,0.346,0.218,0.218,0.218,0.218,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.321,0.321,0.438,0.437,0.554,0.554,0.554,0.585,0.585,0.594,0.711,0.828,0.922,0.71,0.485,0.396,0.396,0.396,0.396,0.396,0.396,0.435,0.513,0.513,0.629,0.746,0.863,0.929,0.944,0.944,0.943,0.943,0.943,0.943,0.943,0.943,0.943,0.724,0.493,0.235,0.235,0.235,0.235,0.235,0.235,0.235,0.235,0.351,0.468,0.585,0.702,0.818,0.92,0.942,0.942,0.942,0.942,0.942,0.942,0.941,0.941,0.724,0.493,0.234,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.322,0.438,0.438,0.555,0.672,0.789,0.789,0.788,0.827,0.856,0.856,0.927,0.944,0.944,0.725,0.494,0.235,0.235,0.205,0.205,0.205,0.205,0.205,0.205,0.322,0.439,0.556,0.672,0.789,0.906,0.938,0.947,0.947,0.947,0.947,0.947,0.946,0.946,0.727,0.495,0.235,0.235,0.225,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215],"dhw_soc":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],"grid_kwh":[0.678,0.846,0.762,0.699,0.677,1.001,1.608,0.86,4.653,0.981,-0.061,2.315,0.764,0.716,1.26,2.02,2.193,0.78,1.009,2.3,3.13,1.373,1.303,2.042,1.793,0.764,0.383,0.671,1.713,1.752,1.766,0.572,-0.246,-0.069,0.819,1.462,6.669,4.144,1.951,1.951,2.903,2.312,3.11,1.939,3.643,2.93,3.446,2.541,1.766,1.367,1.115,0.937,0.936,0.99,0.913,1.716,2.325,-0.432,-0.46,-0.43,-0.133,-0.321,-0.011,2.823,3.203,2.159,1.242,0.87,0.635,1.54,0.677,1.282,0.69,0.558,0.475,0.799,0.396,1.385,0.453,0.824,0.441,0.178,0.139,0.075,0.006,-0.103,-0.175,-0.975,0.065,0.487,1.278,1.258,1.496,0.982,1.176,1.536,1.332,1.406,1.338,1.238,2.034,0.629,1.501,1.9,0.771,-0.079,-0.578,-0.446,-0.144,0.399,0.651,0.514,0.614,2.093,1.994,1.741,1.115,0.941,1.132,1.091,1.271,1.156,1.104,1.607,0.931,1.948,4.15,0.818,1.144,5.824,0.617,-0.072,-0.369,-0.118,1.067,-0.064,-0.205,1.401,1.256,2.83,8.844,2.165,1.511,1.13,1.455,2.234,1.535,1.371,1.31,1.265,2.275,1.085,2.518,-0.133,-0.282,3.856,1.107,1.52,1.661,0.321,-0.274,1.084,1.689,1.153,2.04,0.959,0.651,0.727,0.49,0.93,0.881,0.848,0.847,3.198,0.95,0.203,1.584,-0.051,-0.31,-0.38,-0.314,0.182,0.323,0.104,0.167,0.132,1.791,1.799,1.383,1.031,0.76,0.682,1.003,0.589,0.549,0.517,0.491,0.446,1.379,0.384,2.23,0.199,0.068,0.72,1.2,1.804,2.687,2.771,2.189,2.53,2.226,2.274,1.433,1.308,1.024,1.57,1.246,1.262,1.367,0.987,0.76,2.101,0.68,0.534,0.216,-0.402,-0.174,-0.161,0.321,0.394,1.033,1.535,5.826,2.385,3.597,2.451,2.338,1.022,1.604,1.015,1.278,1.734,1.478,0.78,1.212,0.734,1.245,1.785,2.354,1.24,0.238,-0.159,-0.091,0.389,6.437,1.688,1.972,1.879,2.511,1.773,1.01,0.682,0.672,1.867,1.17,1.283,1.725,1.58,1.474,1.417,1.41,0.657,-0.158,-0.003,0.634,0.978,0.123,0.456,1.074,2.522,6.896,2.711,3.461,2.565,2.162,1.345,0.916,1.625,1.095,1.156,1.606,1.259,1.168,1.208,1.273,0.656,0.496,-0.342,-0.409,-0.256,-0.121,0.188,0.744,1.405,1.986,1.149,2.071,2.781,2.303,1.18,0.876,1.179,1.394,1.976,1.722,1.259,1.205,1.271,1.589,3.362,0.457,-0.307,-0.371,-0.205,1.641,1.489,-0.5,0.045,0.131,0.206,2.194,1.767,1.688,1.367,1.152,1.311,1.708,1.979,1.751,1.536,2.649,0.895,0.829,0.753,1.491,-0.296,-0.203,-0.111,0.283,-0.145,2.107,0.604,0.785,2.383,2.232,1.713,1.369,3.315,0.946,0.739,1.183,1.504,1.334,1.125,0.968,0.901,0.755,2.903,0.721,0.455,0.163,-0.097,4.838,0.897,0.929,0.181,3.716,3.0,1.893,1.76,2.298,1.461,0.803,0.579,0.509,0.454,0.413,0.377,0.349,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.34,1.27,1.51,1.167,1.318,1.763,1.859,1.651,1.509,3.963,2.156,0.809,0.584,0.054,0.395,0.016,0.55,4.337,0.693,0.63,0.986,1.326,1.653,3.649,0.955,3.789,1.242,0.918,1.477,1.787,1.656,2.08,0.627,0.738,0.723,0.101,1.188,1.072,0.109,-0.238,0.608,-0.045,0.168,0.059,0.114,0.932,1.271,2.112,1.333,1.166,0.913,1.322,1.324,2.785,1.577,1.17,1.668,1.926,0.822,2.119,1.441,-0.078,-0.337,0.419,-0.126,-0.062,0.121,0.115,0.775,0.474,0.559,1.214,1.11,1.902,1.166,2.755,1.131,1.115,1.536,1.398,1.728,1.25,1.22,0.544,0.213,-0.063,-0.143,1.116,0.465,0.331,1.028,0.419,1.644,1.869,4.924,2.238,1.363,1.742,1.337,1.082,1.587,1.906,1.226,1.529,0.834,2.825,-0.18,1.008,1.194,-0.282,0.151,2.473,0.963,0.397,0.89,2.167,2.289,1.42,2.139,1.737,2.086,1.25,0.832,0.711,1.197,0.785,0.677,0.633,0.606,0.579,1.018,0.96,1.038,1.894,6.549,0.088,1.35,1.233,4.001,7.98,2.346,2.374,2.409,2.563,2.033,1.518,1.857,1.383,0.73,1.169,0.69,0.608,0.884,1.063,1.069,0.546,0.158,-0.307,0.693,-0.075,6.414,3.367,-0.274,1.484,3.062,3.775,2.207,1.887,1.773,1.637,2.913,0.846,1.003,1.29,1.353,0.766,1.549,4.211,2.731,1.974,0.59,-0.367,0.545,-0.351,0.275,0.706,2.003,-0.043,0.551,0.35,0.433,3.574,1.744,2.639,2.273,1.094,1.319,1.412,1.755,1.995,2.273,1.554,1.477,1.249,0.144,-0.297,-0.056,-0.152,-0.014,0.492,0.573,0.294,0.732,1.231,1.301,1.58,2.17,1.002,0.832,1.514,0.971,1.808,1.712,1.501,1.424,1.176,1.229,1.178,0.403,-0.219,-0.236,-0.261,-1.061,-0.883,0.954,1.391,2.934,0.747,1.463,2.977,2.097,5.057,1.013,1.916,0.724,1.879,1.26,0.584,1.459,2.477,4.181,1.712,0.438,-0.036,-0.029,2.156,0.884,0.396,3.044,0.802,1.75,1.539,2.432,3.883,1.806,7.999,0.985,0.704,1.28,2.118,2.939,1.168,1.583,1.258,2.188,1.197,0.722,1.284,0.69,1.379,1.5,0.84,1.08,0.416,1.99,1.865,2.285,2.81,1.986,2.601,3.008,1.972,0.991,0.736,0.55,0.552,0.567,0.586,0.613,2.044,1.644,3.344,2.865,0.595,0.791,1.42,2.277,2.274,3.384,3.406,2.21,2.33,2.325,2.448,1.028],"indoor_c":[23.1,22.23,22.22,22.22,22.22,22.22,22.22,22.33,22.77,23.27,24.41,24.44,24.66,24.6,24.34,23.33,22.29,24.19,26.3,24.15,20.89,23.08,22.21,19.81,19.57,21.34,23.0,22.16,22.28,22.21,22.3,22.57,24.12,24.5,24.55,24.5,23.75,23.54,23.63,23.43,23.57,23.27,23.49,24.1,23.43,20.91,18.94,18.54,18.62,18.88,19.21,19.5,19.56,19.4,19.65,19.71,19.44,22.25,23.28,24.73,24.33,24.55,24.41,22.86,20.67,20.63,23.12,24.42,25.01,21.3,23.0,22.37,22.78,23.2,23.6,24.12,24.22,24.38,24.61,23.49,23.81,23.87,25.07,24.26,24.46,25.89,25.1,25.64,24.65,23.7,23.89,24.0,23.82,23.93,24.03,21.71,22.49,21.74,21.79,21.89,21.57,22.36,21.76,21.94,22.44,23.21,23.89,24.54,24.41,24.25,23.89,23.34,23.34,22.86,23.14,23.6,24.01,24.12,24.11,24.0,23.96,24.12,21.99,21.75,21.85,22.0,21.52,22.08,22.09,20.95,22.5,23.64,24.12,24.82,24.52,26.22,27.29,25.61,25.86,24.64,24.14,23.25,23.24,23.45,22.47,21.33,21.86,22.0,22.12,22.27,21.92,22.34,21.9,23.52,24.11,24.18,24.26,23.97,23.59,24.35,26.67,27.33,26.75,26.77,26.17,26.49,26.8,27.06,27.27,27.55,27.85,28.15,28.33,26.83,27.76,28.36,27.57,28.11,28.16,28.05,27.87,27.47,27.1,26.72,26.38,26.35,26.48,26.59,26.73,26.7,26.86,26.87,26.69,26.83,26.9,26.97,27.04,27.24,27.13,27.25,25.93,26.15,25.93,25.54,25.15,24.68,24.17,23.36,23.21,22.69,22.68,22.67,23.24,23.43,23.63,21.13,21.43,20.65,20.61,20.7,21.24,21.41,21.74,22.01,22.36,23.71,23.76,23.88,23.61,23.53,23.29,23.17,23.83,22.45,22.04,22.18,22.35,23.72,23.25,23.4,21.67,20.57,21.48,21.94,22.19,22.12,22.19,21.77,21.1,21.88,23.37,24.03,23.92,23.72,21.24,21.27,21.86,22.37,22.2,22.44,23.61,24.2,24.46,21.48,21.87,20.98,20.93,21.06,21.24,21.37,21.48,22.01,23.8,23.91,23.94,23.43,23.33,23.26,23.1,22.67,22.09,21.62,21.74,22.38,22.49,23.15,23.61,20.51,21.48,20.75,20.78,21.58,21.97,22.03,21.97,21.92,21.81,24.18,24.49,24.23,24.08,23.78,23.33,23.24,22.85,22.83,23.12,23.33,23.31,23.84,24.36,24.61,22.5,21.35,21.26,22.12,22.27,22.14,22.3,22.17,22.7,24.06,24.31,24.32,25.78,26.62,27.05,26.4,26.12,25.71,24.34,23.23,23.6,23.91,24.37,24.55,22.89,21.59,21.49,21.61,21.3,22.12,22.12,22.22,22.38,24.02,24.02,24.11,23.94,25.16,23.06,23.36,23.1,22.76,23.13,23.54,24.03,23.18,24.06,24.41,22.72,21.43,21.26,21.33,21.5,21.63,22.3,21.11,21.97,23.7,23.92,24.23,21.79,22.87,23.43,25.05,25.1,24.57,24.97,25.22,24.93,25.39,25.74,26.04,26.24,26.44,26.64,26.86,27.07,27.19,27.19,27.37,27.36,27.26,27.08,26.21,26.21,26.47,27.0,27.56,28.23,28.85,29.62,30.08,28.69,26.96,25.15,24.91,23.63,22.08,21.91,21.88,21.94,20.98,21.33,21.5,22.81,24.35,24.28,24.16,23.77,24.38,23.48,22.65,22.33,21.89,21.93,21.37,23.14,22.31,23.62,24.38,21.84,20.8,20.7,21.54,21.9,21.92,21.88,21.69,22.12,23.21,23.55,24.19,23.83,24.91,23.8,23.94,23.94,23.98,23.86,23.79,24.0,23.77,23.8,23.83,22.82,21.31,21.27,21.4,21.56,21.81,21.96,21.59,21.7,23.41,24.16,24.16,24.1,24.02,23.69,22.6,22.95,24.38,25.05,24.21,24.22,24.09,24.11,23.01,22.69,21.53,21.43,21.57,21.74,21.88,22.04,22.26,22.75,24.13,24.22,24.01,23.77,24.05,23.93,23.48,21.3,21.14,21.51,22.02,22.33,23.45,24.04,24.28,22.23,20.98,20.89,21.02,22.96,20.39,22.01,22.43,22.9,24.34,24.37,23.26,23.58,24.09,23.92,21.55,21.25,21.87,22.38,22.86,23.28,23.76,24.27,24.5,22.56,23.31,23.59,23.78,23.91,24.07,24.18,22.97,22.31,22.73,22.89,23.87,23.27,23.41,22.95,22.25,22.25,22.07,21.99,22.39,23.31,23.96,20.4,21.01,22.29,20.68,21.91,22.4,21.51,20.97,21.01,21.97,24.03,24.05,23.81,23.78,22.81,23.72,25.32,22.51,21.02,20.94,21.53,21.76,21.61,21.9,21.56,22.35,21.6,20.6,21.51,21.75,20.85,20.37,20.1,20.39,21.0,23.22,23.43,23.66,23.5,23.28,22.88,22.88,22.85,23.98,25.66,22.07,22.39,21.9,22.26,22.52,22.1,20.5,20.59,20.67,21.45,21.83,22.02,22.02,22.6,24.03,23.77,23.87,23.43,23.31,23.11,22.52,22.22,22.56,23.78,23.67,23.7,24.06,24.32,21.53,22.5,20.91,20.97,21.06,21.26,22.01,21.94,21.8,22.05,23.39,23.62,24.08,26.24,26.94,24.73,23.06,22.21,24.15,24.93,20.91,22.36,22.76,23.48,20.26,22.29,20.03,21.6,22.33,21.24,21.36,20.61,21.94,21.91,23.35,23.62,20.7,22.6,23.3,22.53,22.53,22.3,22.14,22.4,21.9,22.65,22.65,23.37,24.01,21.81,20.7,21.39,22.46,21.21,22.1,21.76,21.84,22.15,22.8,21.91,22.57,20.79,22.23,22.22,22.61,22.13,23.41,24.63,22.07,22.12,19.97,18.75,18.92,20.35,21.27,22.2,22.53,22.74,22.9,23.08,22.46,22.77,22.17,22.37,22.76,22.79,22.59,22.25,21.89,20.86,20.55,21.5,21.49,21.77,22.03,22.53]},"Building_2":{"battery_soc":[0.2,0.2,0.209,0.224,0.24,0.24,0.24,0.317,0.317,0.433,0.55,0.667,0.784,0.9,0.938,0.721,0.492,0.234,0.234,0.224,0.214,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.32,0.437,0.437,0.437,0.437,0.436,0.254,0.254,0.254,0.254,0.254,0.254,0.254,0.254,0.254,0.254,0.254,0.254,0.254,0.254,0.371,0.487,0.604,0.721,0.799,0.838,0.837,0.837,0.837,0.837,0.837,0.837,0.742,0.583,0.248,0.248,0.248,0.248,0.248,0.287,0.365,0.482,0.599,0.715,0.832,0.923,0.942,0.942,0.942,0.948,0.948,0.948,0.948,0.948,0.948,0.948,0.727,0.495,0.235,0.206,0.206,0.206,0.206,0.206,0.206,0.323,0.439,0.439,0.556,0.556,0.673,0.607,0.724,0.841,0.841,0.924,0.942,0.942,0.942,0.942,0.765,0.561,0.331,0.216,0.216,0.204,0.204,0.204,0.204,0.243,0.36,0.476,0.593,0.71,0.826,0.922,0.942,0.942,0.942,0.942,0.942,0.942,0.942,0.942,0.723,0.497,0.272,0.272,0.272,0.272,0.272,0.272,0.271,0.271,0.388,0.505,0.622,0.738,0.738,0.855,0.855,0.855,0.855,0.855,0.927,0.943,0.943,0.943,0.739,0.528,0.305,0.283,0.259,0.234,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.243,0.36,0.359,0.476,0.476,0.593,0.593,0.71,0.826,0.922,0.942,0.942,0.942,0.942,0.723,0.493,0.235,0.235,0.235,0.235,0.205,0.205,0.205,0.205,0.205,0.322,0.439,0.556,0.672,0.789,0.789,0.789,0.828,0.828,0.828,0.828,0.827,0.922,0.71,0.485,0.234,0.234,0.234,0.234,0.234,0.204,0.204,0.204,0.204,0.321,0.438,0.555,0.671,0.788,0.788,0.788,0.788,0.788,0.788,0.866,0.865,0.93,0.715,0.559,0.34,0.34,0.34,0.34,0.34,0.339,0.339,0.378,0.378,0.495,0.612,0.729,0.845,0.925,0.925,0.943,0.943,0.943,0.943,0.943,0.943,0.943,0.724,0.498,0.235,0.235,0.206,0.206,0.206,0.206,0.323,0.44,0.556,0.673,0.79,0.906,0.939,0.947,0.947,0.524,0.524,0.64,0.64,0.757,0.874,0.931,0.716,0.489,0.234,0.234,0.224,0.214,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.242,0.358,0.475,0.592,0.592,0.709,0.709,0.708,0.708,0.708,0.708,0.708,0.807,0.807,0.629,0.44,0.261,0.261,0.261,0.261,0.261,0.378,0.494,0.611,0.728,0.844,0.925,0.925,0.943,0.948,0.531,0.647,0.647,0.764,0.881,0.935,0.935,0.501,0.413,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.437,0.553,0.67,0.787,0.903,0.938,0.947,0.947,0.947,0.949,0.949,0.949,0.949,0.949,0.949,0.949,0.827,0.656,0.569,0.569,0.569,0.569,0.569,0.569,0.568,0.568,0.568,0.568,0.568,0.685,0.802,0.915,0.915,0.915,0.915,0.915,0.915,0.915,0.94,0.94,0.723,0.492,0.31,0.214,0.214,0.214,0.214,0.331,0.448,0.565,0.681,0.681,0.798,0.915,0.94,0.862,0.928,0.944,0.944,0.944,0.944,0.944,0.943,0.943,0.725,0.532,0.289,0.271,0.25,0.229,0.229,0.229,0.229,0.229,0.229,0.229,0.229,0.229,0.229,0.229,0.229,0.229,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.204,0.204,0.204,0.204,0.204,0.204,0.321,0.438,0.438,0.438,0.228,0.228,0.228,0.228,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.322,0.322,0.438,0.438,0.555,0.555,0.555,0.555,0.555,0.555,0.671,0.788,0.905,0.698,0.478,0.396,0.396,0.396,0.396,0.396,0.396,0.435,0.512,0.512,0.629,0.746,0.863,0.929,0.943,0.943,0.943,0.943,0.943,0.943,0.943,0.943,0.943,0.724,0.499,0.258,0.258,0.258,0.258,0.258,0.257,0.257,0.257,0.374,0.491,0.608,0.724,0.841,0.924,0.943,0.943,0.943,0.943,0.943,0.942,0.942,0.942,0.724,0.493,0.234,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.322,0.438,0.438,0.555,0.672,0.789,0.789,0.788,0.588,0.704,0.704,0.821,0.92,0.942,0.724,0.493,0.234,0.234,0.205,0.205,0.205,0.205,0.205,0.205,0.322,0.438,0.555,0.672,0.789,0.905,0.939,0.946,0.946,0.946,0.946,0.946,0.946,0.946,0.726,0.494,0.235,0.235,0.225,0.216,0.216,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215],"dhw_soc":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],"grid_kwh":[0.187,0.186,0.221,0.254,0.272,0.231,0.248,0.671,2.934,1.17,1.131,1.167,1.468,1.285,1.356,1.851,0.942,0.742,1.202,0.976,1.524,1.361,0.913,0.323,0.212,0.379,0.46,0.201,0.202,0.231,0.243,0.245,2.33,0.564,1.008,1.188,1.013,1.47,1.827,2.989,1.635,1.344,1.37,0.795,0.66,0.629,0.641,0.483,0.374,0.313,0.274,0.251,0.247,0.262,0.256,0.856,0.869,0.5,0.455,1.85,0.976,0.143,0.738,0.363,0.47,0.676,0.656,0.581,0.607,0.849,0.644,0.268,0.202,0.232,0.416,0.85,0.7,0.729,0.752,0.693,0.531,0.437,0.441,0.449,0.404,0.336,0.454,0.073,0.125,0.561,0.904,0.719,0.518,0.511,0.669,0.912,1.016,0.728,0.683,0.685,0.591,0.314,0.241,1.601,0.487,0.555,0.868,1.536,1.003,0.964,1.034,0.334,0.302,0.341,1.02,0.737,0.781,0.715,0.584,0.374,1.012,0.776,0.185,0.685,0.202,0.729,0.053,0.924,1.067,0.516,0.937,0.678,1.149,0.966,0.734,0.158,0.158,0.178,0.676,0.679,0.506,0.488,0.412,0.7,0.729,0.684,0.683,0.685,0.7,0.729,1.526,0.436,0.594,1.126,0.673,0.467,0.628,0.712,0.925,0.18,0.175,0.175,0.857,0.653,0.745,0.511,0.528,0.67,0.764,1.184,0.683,0.685,0.7,0.231,0.738,0.971,0.4,0.494,0.514,1.132,0.742,0.7,0.885,0.159,0.165,0.173,0.859,0.765,0.653,0.615,0.62,0.373,0.307,0.389,0.234,0.217,0.218,0.236,0.332,0.536,0.653,0.739,0.704,0.895,0.874,1.035,1.117,1.233,1.168,1.161,1.067,0.811,0.711,0.665,1.343,0.341,0.295,0.258,0.23,0.215,0.219,0.24,0.318,0.415,0.602,0.865,0.885,0.916,1.168,9.801,1.415,1.521,1.533,1.541,1.605,1.062,0.853,0.539,0.654,0.746,0.36,0.371,0.725,0.235,0.748,0.275,0.844,0.705,2.847,1.347,1.414,1.021,0.907,1.331,1.137,0.346,0.295,0.213,1.092,0.82,0.642,0.409,0.525,0.599,0.753,0.396,0.683,0.685,0.712,0.747,0.856,0.482,0.759,1.875,0.658,0.777,1.085,1.057,1.51,0.418,0.362,0.763,1.345,0.994,0.857,0.934,0.89,0.492,0.207,0.225,0.968,0.72,0.73,0.752,0.851,0.554,0.544,0.592,0.517,0.843,1.011,0.667,1.867,0.831,0.121,0.171,1.199,0.983,1.252,0.897,1.846,0.525,0.762,0.664,0.696,0.685,0.7,0.729,0.756,0.589,2.158,0.686,1.01,0.714,0.885,0.797,0.929,0.192,0.175,1.405,1.077,1.085,0.806,0.751,0.616,0.947,1.179,0.981,0.683,0.685,0.704,0.379,0.484,0.622,4.528,3.19,2.305,1.767,1.255,1.351,1.528,0.42,0.372,0.331,1.231,0.901,0.954,1.062,0.608,0.452,0.498,0.485,0.198,0.221,0.215,0.266,0.444,0.613,0.758,0.985,0.842,0.942,1.124,1.164,2.018,1.939,1.246,1.269,1.286,1.051,0.856,1.04,0.466,0.394,0.568,0.607,0.231,0.198,0.447,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.653,1.154,0.644,0.385,0.638,0.742,0.683,0.691,0.718,0.253,2.697,0.708,0.975,2.712,0.878,0.926,2.236,1.511,1.578,0.814,0.392,0.137,0.802,0.705,0.748,0.601,0.847,0.933,1.194,0.885,0.683,0.533,0.202,0.307,0.301,5.053,1.98,1.563,1.068,1.031,1.145,2.424,4.514,0.334,0.229,0.416,0.357,0.305,0.443,0.45,0.233,0.804,1.111,0.785,0.683,0.685,0.352,0.267,0.252,0.36,0.473,0.816,0.836,2.079,2.033,0.354,0.376,0.096,0.134,0.07,0.796,0.526,0.613,0.496,0.508,0.799,0.66,0.291,0.185,0.187,0.7,0.729,0.75,0.373,0.466,0.573,0.602,0.747,0.823,0.94,1.042,0.748,0.402,0.143,1.717,0.823,0.744,0.702,1.067,0.977,1.128,1.156,0.185,0.685,0.7,0.34,0.063,2.656,1.05,1.299,0.681,0.976,1.446,1.103,1.875,1.164,0.148,0.189,1.094,0.842,0.63,0.814,0.966,1.008,0.385,0.192,0.215,0.457,0.231,0.255,0.368,1.009,3.283,9.519,1.758,1.698,1.543,0.953,1.274,1.445,1.453,1.458,1.829,1.082,1.002,0.905,0.48,0.89,0.818,0.442,0.202,0.216,0.241,0.269,0.389,1.799,1.566,1.104,2.297,0.715,0.391,1.8,1.831,1.158,2.857,1.33,2.405,1.014,1.124,0.708,0.4,0.798,0.712,0.186,0.686,0.216,0.746,0.28,1.511,0.752,0.762,0.72,0.811,0.904,1.865,1.394,1.978,0.807,0.66,0.308,0.58,0.718,0.739,0.65,0.493,0.607,0.662,0.245,0.747,0.745,0.755,0.561,0.433,0.474,0.588,0.699,0.664,0.687,0.862,0.821,0.952,0.187,0.174,0.188,1.025,0.991,0.888,0.852,5.033,0.528,0.294,0.848,0.724,0.73,0.739,0.765,0.822,0.828,1.804,0.886,0.907,1.525,0.928,1.054,1.164,0.482,0.524,0.52,3.156,1.215,1.019,0.949,0.94,0.648,0.664,0.9,0.786,0.242,0.756,0.779,0.945,0.621,1.257,0.156,1.388,0.963,2.198,1.647,1.549,0.772,0.851,0.913,1.726,1.115,1.008,1.208,1.098,1.366,0.58,1.739,0.859,0.762,0.775,0.8,2.232,0.76,1.164,1.053,1.231,1.079,1.197,1.483,2.018,1.01,0.583,0.521,1.359,1.52,0.931,0.877,0.552,0.461,0.59,0.574,0.272,0.26,0.273,0.307,0.395,0.539,0.89,1.092,1.139,1.29,1.623,1.632,1.965,2.076,1.855,1.711,1.995,1.325,0.959,0.855,0.502],"indoor_c":[24.28,24.26,24.21,24.12,24.0,23.89,24.2,24.85,24.99,25.0,25.0,25.0,25.46,25.66,25.65,25.87,26.17,26.25,26.3,26.46,25.57,24.16,23.82,25.31,25.84,24.85,24.0,25.3,25.96,25.98,26.41,26.79,24.43,25.51,25.75,25.59,25.96,25.27,25.19,24.86,25.91,25.96,26.25,26.48,26.48,26.37,25.84,25.9,25.88,26.1,26.35,26.61,26.81,26.86,27.27,27.58,27.69,27.64,27.39,26.93,26.67,25.39,25.48,26.82,26.73,26.64,26.6,26.53,26.14,24.91,24.1,25.18,25.65,25.76,24.35,24.39,25.54,25.66,25.99,26.27,26.45,26.75,26.94,27.16,27.3,27.36,27.25,27.27,26.81,26.63,25.92,26.41,26.4,26.36,25.81,24.82,23.84,24.81,25.46,25.64,25.65,25.51,26.11,25.36,25.82,26.16,24.29,24.22,24.52,24.79,24.76,24.94,25.3,25.52,25.41,25.37,25.45,25.54,25.62,25.69,24.65,25.31,26.01,26.24,26.31,26.26,26.56,26.58,26.48,26.41,26.43,26.43,25.5,25.36,26.09,26.46,26.48,26.49,26.7,26.57,26.52,26.53,26.55,24.62,24.5,26.02,26.5,26.69,26.68,26.53,25.74,26.24,25.59,23.71,25.57,25.9,25.91,25.95,25.77,26.04,26.16,26.28,26.4,26.27,26.32,26.28,25.78,24.45,23.08,22.38,24.39,25.61,25.73,25.56,25.64,25.4,25.59,25.66,25.72,25.59,25.69,25.92,25.83,26.05,26.13,26.21,26.25,26.25,26.18,26.07,25.98,26.05,25.99,26.06,26.17,26.29,26.34,26.28,26.39,26.37,26.24,26.24,26.29,26.3,26.31,26.34,26.09,26.15,26.12,26.09,26.09,26.04,25.95,25.88,24.94,25.56,25.44,25.57,25.72,25.89,26.01,26.04,26.2,26.23,26.01,25.87,25.78,25.72,25.68,25.03,25.26,25.32,25.29,25.26,25.24,25.31,25.43,25.55,24.72,23.83,24.74,25.7,26.0,26.26,26.46,26.57,26.72,25.32,23.35,24.54,23.92,24.42,24.99,25.08,25.04,25.28,25.37,25.41,25.44,25.4,25.48,25.56,25.19,24.46,23.3,24.08,25.33,25.86,26.19,26.36,26.5,26.43,26.18,25.08,25.49,25.47,25.5,25.51,25.36,25.48,25.56,25.5,25.68,25.61,25.57,25.42,24.05,24.56,25.73,25.78,25.83,25.92,26.01,26.03,26.21,26.21,25.93,25.89,25.91,25.88,25.89,25.97,24.06,24.05,25.79,25.8,26.01,25.85,25.67,25.52,24.79,24.96,24.22,23.81,25.18,25.81,25.98,25.92,26.09,26.1,24.47,25.22,25.43,25.49,25.53,25.71,25.6,25.72,25.75,24.46,25.32,25.22,25.4,25.44,25.5,25.34,23.8,24.0,25.46,25.97,26.12,26.04,26.1,26.06,25.49,23.98,23.72,25.07,25.62,25.5,25.3,25.38,25.39,25.37,25.36,25.32,25.15,24.3,24.66,24.97,24.45,24.83,25.86,26.11,26.23,26.15,26.18,26.06,25.92,25.77,25.78,25.69,25.59,25.54,24.04,23.65,24.75,25.05,25.01,25.09,25.24,25.35,25.47,25.51,24.26,23.66,25.03,25.83,25.73,26.01,26.34,26.5,26.54,26.63,26.69,27.01,27.39,27.91,28.54,29.11,29.67,30.24,30.89,31.44,28.82,28.24,26.32,26.64,24.32,24.07,25.66,26.29,26.54,26.64,24.27,24.45,24.17,23.59,24.93,25.31,24.2,24.89,23.84,24.06,24.83,24.8,24.88,25.03,25.08,25.12,25.19,24.55,22.96,23.59,24.75,25.18,25.48,25.64,25.72,25.55,25.62,25.75,25.73,25.8,25.9,25.69,25.36,25.71,25.93,25.99,26.04,25.96,25.84,25.74,25.72,25.14,23.85,24.42,25.2,25.48,25.62,25.64,25.78,25.67,25.75,24.45,24.03,25.4,25.75,25.86,25.72,25.68,25.75,25.71,25.52,25.68,25.66,25.64,25.02,22.77,22.3,23.48,24.8,25.24,25.36,25.28,25.63,25.74,25.71,25.72,25.74,25.66,25.69,25.8,25.63,24.59,24.85,25.82,24.55,25.37,25.41,25.43,25.48,25.52,23.75,23.54,25.13,25.7,25.83,25.73,25.84,24.02,23.69,23.05,24.5,24.52,23.62,24.43,23.27,23.17,24.98,25.17,25.2,25.24,25.26,25.31,24.11,22.99,24.23,25.46,25.68,25.84,25.95,25.9,25.97,25.47,25.18,24.61,24.45,23.38,23.88,25.16,25.02,25.09,25.1,25.12,25.14,25.2,25.22,25.23,25.3,23.61,22.89,24.66,25.46,25.81,26.0,26.02,25.97,23.49,23.79,25.21,23.51,24.5,24.7,23.38,23.32,24.58,23.21,24.15,23.41,24.18,23.49,23.8,24.58,22.74,22.68,24.42,25.06,25.39,25.66,25.81,24.51,24.49,24.83,25.38,25.67,24.59,23.96,24.75,23.2,23.17,22.4,24.13,24.89,25.0,25.05,25.13,24.76,24.64,24.9,25.27,25.35,25.46,25.58,25.7,25.89,25.89,25.76,25.77,25.54,25.48,25.4,25.49,25.36,25.46,25.46,25.44,25.45,25.42,25.32,25.11,23.02,24.23,24.85,24.56,25.12,25.24,25.38,25.47,25.64,25.18,24.32,25.04,25.31,24.92,25.34,25.25,25.4,25.55,25.55,25.52,24.11,24.95,24.9,24.79,24.62,24.48,24.31,24.58,25.05,25.47,25.62,25.68,25.82,25.73,25.19,25.41,25.57,25.67,25.48,25.53,25.32,25.35,25.05,24.83,24.94,25.16,25.16,24.21,24.09,23.59,23.95,23.38,24.77,25.2,25.42,25.51,24.1,24.78,23.58,24.11,24.52,24.51,24.47,24.12,23.36,23.62,24.28,24.29,24.36,24.29,24.63,24.64,24.79,24.88,24.03,23.71,24.81,25.31,25.53,25.54,25.59,25.48,25.16,24.96,24.87,24.78,24.71,24.68,24.4,24.35,24.24,24.26,24.1,24.6,24.76,24.79,25.0]},"Building_3":{"battery_soc":[0.2,0.2,0.205,0.214,0.223,0.223,0.223,0.267,0.267,0.335,0.404,0.472,0.541,0.609,0.677,0.594,0.492,0.341,0.322,0.301,0.275,0.236,0.236,0.235,0.235,0.235,0.234,0.234,0.234,0.233,0.233,0.232,0.232,0.232,0.231,0.231,0.231,0.23,0.23,0.229,0.229,0.229,0.228,0.228,0.228,0.227,0.227,0.227,0.226,0.226,0.225,0.225,0.225,0.224,0.224,0.293,0.361,0.361,0.36,0.36,0.359,0.277,0.277,0.276,0.276,0.275,0.275,0.275,0.274,0.274,0.273,0.273,0.272,0.272,0.341,0.409,0.477,0.546,0.614,0.659,0.681,0.68,0.679,0.678,0.677,0.744,0.743,0.703,0.637,0.509,0.508,0.508,0.507,0.506,0.528,0.573,0.573,0.641,0.709,0.777,0.844,0.891,0.916,0.914,0.928,0.936,0.94,0.939,0.937,0.936,0.934,0.807,0.649,0.419,0.306,0.252,0.226,0.225,0.225,0.225,0.293,0.362,0.361,0.43,0.429,0.497,0.344,0.412,0.48,0.48,0.548,0.616,0.615,0.683,0.751,0.678,0.553,0.371,0.283,0.283,0.241,0.24,0.24,0.239,0.262,0.331,0.399,0.468,0.536,0.604,0.672,0.74,0.808,0.871,0.905,0.847,0.892,0.917,0.93,0.807,0.649,0.42,0.419,0.418,0.418,0.417,0.416,0.416,0.415,0.483,0.552,0.62,0.688,0.687,0.755,0.754,0.752,0.751,0.819,0.878,0.908,0.907,0.924,0.798,0.643,0.416,0.388,0.356,0.315,0.256,0.256,0.255,0.255,0.255,0.254,0.254,0.253,0.253,0.253,0.252,0.252,0.251,0.251,0.251,0.25,0.25,0.249,0.249,0.224,0.224,0.224,0.223,0.223,0.222,0.222,0.222,0.221,0.221,0.221,0.22,0.22,0.22,0.219,0.219,0.219,0.218,0.218,0.218,0.217,0.209,0.209,0.208,0.208,0.208,0.207,0.207,0.207,0.206,0.206,0.229,0.228,0.251,0.32,0.319,0.388,0.387,0.456,0.524,0.592,0.66,0.728,0.796,0.795,0.863,0.706,0.618,0.509,0.349,0.349,0.348,0.348,0.272,0.271,0.271,0.27,0.27,0.339,0.407,0.475,0.544,0.612,0.611,0.61,0.678,0.677,0.676,0.675,0.743,0.811,0.704,0.573,0.382,0.381,0.381,0.38,0.38,0.286,0.286,0.285,0.285,0.354,0.422,0.49,0.559,0.627,0.626,0.625,0.624,0.623,0.622,0.69,0.758,0.826,0.717,0.583,0.386,0.386,0.385,0.384,0.384,0.383,0.383,0.405,0.404,0.473,0.541,0.609,0.677,0.745,0.744,0.743,0.811,0.872,0.871,0.905,0.923,0.933,0.806,0.648,0.419,0.419,0.306,0.252,0.251,0.251,0.319,0.388,0.456,0.525,0.593,0.661,0.729,0.797,0.865,0.654,0.653,0.721,0.72,0.788,0.855,0.897,0.775,0.626,0.408,0.381,0.349,0.311,0.254,0.253,0.253,0.253,0.252,0.252,0.251,0.251,0.251,0.25,0.25,0.249,0.249,0.249,0.248,0.248,0.247,0.247,0.247,0.246,0.246,0.245,0.245,0.245,0.244,0.244,0.243,0.243,0.243,0.242,0.242,0.242,0.241,0.241,0.24,0.24,0.24,0.239,0.239,0.219,0.219,0.219,0.209,0.209,0.209,0.208,0.208,0.208,0.207,0.207,0.207,0.206,0.229,0.298,0.366,0.435,0.434,0.502,0.502,0.547,0.546,0.545,0.544,0.612,0.67,0.669,0.587,0.487,0.338,0.338,0.337,0.337,0.336,0.405,0.473,0.541,0.609,0.677,0.745,0.744,0.812,0.873,0.758,0.826,0.824,0.88,0.911,0.928,0.926,0.8,0.696,0.58,0.579,0.578,0.577,0.576,0.575,0.574,0.642,0.687,0.755,0.823,0.88,0.91,0.926,0.934,0.939,0.942,0.941,0.939,0.938,0.936,0.935,0.939,0.862,0.731,0.481,0.48,0.479,0.478,0.478,0.477,0.476,0.475,0.475,0.474,0.542,0.61,0.678,0.746,0.745,0.744,0.743,0.742,0.809,0.808,0.871,0.905,0.783,0.631,0.411,0.302,0.301,0.301,0.3,0.369,0.437,0.506,0.574,0.573,0.641,0.709,0.777,0.596,0.664,0.732,0.8,0.867,0.902,0.922,0.933,0.938,0.81,0.651,0.421,0.392,0.359,0.318,0.318,0.317,0.317,0.316,0.316,0.315,0.315,0.314,0.314,0.313,0.313,0.312,0.255,0.254,0.254,0.254,0.253,0.253,0.226,0.226,0.225,0.225,0.225,0.224,0.224,0.224,0.223,0.223,0.222,0.222,0.222,0.221,0.221,0.221,0.22,0.289,0.358,0.357,0.356,0.276,0.276,0.275,0.275,0.236,0.236,0.235,0.235,0.235,0.234,0.234,0.234,0.233,0.233,0.301,0.301,0.37,0.369,0.437,0.437,0.436,0.435,0.435,0.503,0.571,0.639,0.707,0.619,0.51,0.456,0.455,0.455,0.454,0.453,0.453,0.475,0.52,0.519,0.588,0.656,0.724,0.791,0.859,0.899,0.92,0.931,0.938,0.941,0.94,0.938,0.942,0.813,0.653,0.422,0.421,0.42,0.42,0.419,0.418,0.418,0.417,0.485,0.554,0.622,0.69,0.758,0.826,0.881,0.91,0.926,0.925,0.923,0.922,0.921,0.931,0.804,0.647,0.419,0.306,0.306,0.305,0.251,0.251,0.251,0.25,0.319,0.387,0.387,0.455,0.523,0.592,0.591,0.639,0.438,0.506,0.506,0.574,0.642,0.71,0.621,0.512,0.35,0.35,0.273,0.272,0.235,0.235,0.234,0.234,0.303,0.371,0.44,0.508,0.576,0.644,0.712,0.78,0.848,0.893,0.891,0.916,0.929,0.937,0.808,0.65,0.421,0.392,0.359,0.318,0.317,0.317,0.316,0.316,0.315,0.315,0.314,0.314,0.313,0.313,0.312,0.312,0.311,0.311,0.31,0.31,0.309,0.309,0.308,0.308,0.307,0.307,0.306,0.306,0.305,0.305],"dhw_soc":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],"grid_kwh":[0.563,0.473,0.463,0.466,0.469,0.5,1.033,1.042,2.187,2.373,1.526,1.211,0.972,1.07,1.133,1.637,1.384,0.904,1.635,1.522,1.695,2.464,2.719,2.948,0.658,0.55,0.577,1.238,0.461,0.608,0.55,0.63,0.852,0.872,0.804,0.82,0.798,0.894,1.726,2.027,3.019,2.253,2.421,2.045,1.615,1.693,1.107,0.516,0.59,0.559,0.535,0.519,0.525,0.572,0.535,0.749,1.588,0.915,1.691,0.416,0.565,7.843,1.113,1.721,2.111,1.389,2.802,1.989,1.691,1.649,0.694,0.448,0.478,0.484,0.718,0.714,0.712,0.802,2.49,0.903,2.205,0.749,1.171,0.453,1.069,0.444,0.114,0.129,0.218,0.414,1.332,1.115,1.238,1.352,1.455,0.903,0.578,0.756,0.736,0.722,0.712,0.695,0.549,0.391,0.255,0.137,-0.014,-0.076,0.858,0.495,0.575,0.559,0.737,1.416,2.455,4.128,2.05,0.703,0.929,0.754,0.897,0.834,0.549,0.739,0.492,0.795,7.728,1.186,1.358,1.147,1.183,0.596,0.469,0.731,0.945,0.853,0.996,0.535,1.167,1.137,3.193,1.408,0.833,0.723,0.73,1.159,1.139,1.086,0.834,0.819,1.718,1.302,0.895,0.623,0.404,0.185,1.422,0.96,0.775,0.399,1.025,1.463,2.917,2.009,1.617,1.681,0.782,0.745,0.649,0.828,0.782,0.752,0.721,0.548,1.599,0.745,0.446,0.313,0.429,0.381,0.35,0.744,1.054,0.771,0.971,1.669,2.029,2.266,2.374,1.584,1.459,1.034,0.69,0.636,0.587,0.564,0.555,0.599,0.603,0.761,0.631,0.536,0.659,0.987,0.845,6.451,2.387,1.683,1.576,2.174,3.312,2.328,1.708,1.719,1.421,0.741,0.662,0.605,0.565,0.54,0.528,0.589,0.579,0.544,0.447,0.423,0.577,0.318,0.859,0.679,1.045,1.614,3.951,2.641,2.393,2.863,1.417,2.082,0.97,0.813,0.97,1.0,1.085,0.561,0.677,0.601,5.116,1.158,1.046,1.482,0.775,0.652,0.792,1.128,0.51,0.828,1.07,0.821,1.868,2.303,2.218,8.726,1.09,0.971,0.484,0.637,0.925,0.903,0.898,0.955,0.859,0.536,0.626,1.005,0.382,0.507,0.561,1.482,1.081,0.807,1.126,1.582,2.145,4.945,4.652,5.853,9.161,1.516,0.881,0.593,0.81,0.793,0.793,0.848,2.033,0.574,0.528,0.44,0.794,0.37,0.662,0.62,0.904,0.598,1.062,0.877,1.72,2.309,1.49,2.256,2.425,1.048,0.753,0.622,0.821,0.793,0.767,0.832,0.855,0.785,0.418,0.575,0.44,0.282,0.429,0.472,0.534,0.642,0.933,0.529,1.64,2.783,3.139,1.363,1.389,1.553,0.905,0.862,0.827,0.804,0.781,0.839,1.011,2.775,0.694,0.966,0.925,0.619,0.793,0.797,1.024,0.878,1.061,1.139,2.354,1.921,1.93,1.138,1.091,3.218,0.589,0.535,0.614,0.592,0.586,0.63,0.647,0.638,0.83,1.126,1.079,1.135,1.553,1.127,1.493,1.787,2.459,1.761,2.065,2.472,2.609,1.864,1.226,0.811,0.724,0.666,0.628,0.599,0.587,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.082,1.939,1.791,0.455,1.085,0.673,0.82,0.809,0.809,0.622,1.152,0.988,0.88,0.858,1.673,0.796,1.117,0.958,0.931,0.9,0.906,0.959,1.285,1.175,1.443,1.15,0.961,0.989,0.779,0.804,0.793,0.784,0.542,0.843,2.445,0.376,1.309,0.706,0.783,0.604,1.069,0.706,0.407,0.483,0.377,0.665,1.129,0.829,1.497,1.352,0.834,1.046,1.431,1.018,0.762,0.715,0.605,1.753,0.765,0.579,0.796,0.769,0.578,0.617,0.514,0.572,0.594,0.249,0.369,1.105,1.287,1.366,2.159,3.745,2.145,0.69,0.422,0.513,0.508,2.056,0.766,0.85,1.108,2.932,0.886,0.496,0.475,1.366,0.698,0.951,1.072,0.791,0.842,0.872,1.253,1.292,1.628,1.569,1.338,1.13,0.903,0.855,0.586,0.806,0.791,0.876,8.077,1.162,2.863,1.564,0.659,0.732,0.61,0.655,0.922,1.053,1.24,1.035,1.851,3.095,1.837,2.084,1.009,0.584,0.73,0.677,0.633,0.6,0.586,0.637,0.65,2.323,0.863,0.8,0.917,1.189,2.024,1.51,2.116,2.413,2.828,2.111,2.759,1.601,1.366,1.267,1.019,0.573,0.8,0.748,0.705,0.676,0.671,0.709,0.656,0.81,1.197,1.262,1.012,0.971,0.942,0.985,1.08,1.555,3.629,2.088,2.714,1.917,1.611,1.901,1.255,0.706,0.647,0.736,0.941,0.581,0.838,0.64,1.198,0.922,1.024,0.869,0.572,1.284,1.098,0.961,1.05,0.679,0.674,1.199,1.728,2.026,1.67,1.192,1.015,0.553,0.797,0.615,0.839,0.827,0.83,0.913,0.885,0.736,1.049,1.902,0.526,0.559,1.542,1.392,1.225,0.653,0.682,1.312,1.658,1.391,1.843,1.413,2.374,0.951,1.76,0.807,0.805,0.832,0.804,3.596,1.039,1.035,1.914,1.532,0.414,0.377,0.737,0.53,0.796,0.684,0.889,1.325,2.093,10.08,2.098,1.628,1.101,0.763,0.636,0.819,0.925,0.64,0.859,0.91,1.395,1.676,5.728,7.011,2.642,0.943,1.481,2.295,1.648,1.475,1.524,1.302,1.82,2.442,1.795,9.759,2.157,0.793,0.61,0.995,0.941,0.908,0.898,0.937,0.979,1.247,1.017,1.073,1.025,3.518,1.565,1.076,1.533,1.511,1.178,1.436,9.924,2.11,1.584,1.576,1.716,1.589,0.8,0.74,0.7,0.671,0.632,0.705,0.696,0.673,0.861,1.962,0.921,0.982,1.897,2.298,2.228,2.679,2.766,2.987,2.982,2.241,2.032,1.8,3.696],"indoor_c":[24.43,24.44,24.44,24.44,24.36,24.29,24.11,23.35,23.33,23.33,23.33,23.33,23.1,22.81,22.46,22.52,22.24,23.42,23.98,24.63,24.42,24.49,23.86,22.85,23.81,24.24,24.28,24.94,25.22,24.87,25.25,25.69,25.45,25.03,24.73,24.45,24.25,24.01,23.64,22.8,22.04,22.55,23.04,22.38,22.29,22.32,23.49,24.54,24.62,24.87,25.03,25.11,25.19,25.3,25.5,25.29,24.86,24.91,24.08,24.05,23.94,23.2,22.88,22.57,23.05,23.37,22.76,22.74,22.81,22.81,23.27,24.27,24.47,24.63,24.8,24.93,25.07,25.2,24.66,25.03,24.59,24.9,24.99,24.84,24.64,24.48,24.37,24.39,24.35,24.21,24.38,24.42,23.81,23.22,23.21,23.63,23.97,24.03,24.12,24.22,24.38,24.94,25.41,25.64,25.63,25.46,25.21,24.96,24.8,24.81,24.51,24.3,24.06,23.53,23.72,22.61,23.58,24.27,24.61,24.43,24.66,24.65,24.7,24.85,25.05,25.13,25.01,25.14,24.24,23.8,23.52,23.07,22.8,22.51,22.24,22.44,22.21,23.49,24.3,24.5,23.25,23.77,24.06,24.32,24.56,24.37,24.29,24.29,24.57,24.86,25.2,25.26,25.32,25.23,24.95,24.69,24.3,24.08,23.83,23.53,23.46,23.18,23.45,23.68,24.16,24.33,24.7,24.72,24.79,24.88,24.92,24.99,25.19,25.29,25.18,25.41,25.33,25.14,24.98,24.65,24.33,23.64,23.27,23.11,22.71,21.72,21.89,22.57,22.87,23.52,24.17,23.96,24.08,24.17,24.26,24.28,24.32,24.41,24.62,24.81,24.84,24.83,24.66,24.43,24.25,23.46,23.36,23.17,23.14,22.9,22.42,22.9,23.12,23.33,23.49,23.75,23.93,24.11,24.24,24.32,24.43,24.52,24.78,24.99,25.09,25.01,24.79,24.46,24.06,23.71,23.44,22.65,21.7,21.38,21.28,21.11,21.6,21.84,22.26,22.83,22.05,22.0,22.06,23.03,23.98,24.18,22.91,23.41,23.7,23.67,23.56,23.36,22.74,22.45,22.34,22.89,22.61,23.38,23.4,22.22,22.51,22.07,23.03,24.14,24.5,24.15,23.94,23.97,24.04,24.17,24.67,25.05,24.53,24.2,23.79,23.52,23.38,23.07,22.75,22.52,22.51,22.76,23.16,22.64,22.01,20.8,20.82,22.41,23.02,23.28,23.52,23.78,24.06,24.34,24.27,24.45,23.95,23.57,23.34,23.18,22.99,22.77,22.55,22.97,22.91,23.09,23.18,23.32,23.67,23.31,23.26,24.5,24.39,24.47,24.51,24.6,24.8,24.98,25.36,25.62,25.55,25.19,24.78,24.45,24.11,23.79,23.59,23.26,22.67,23.42,23.98,23.32,23.27,23.69,23.74,24.75,24.57,24.74,24.78,24.84,24.98,24.98,25.12,24.42,24.58,24.49,24.36,24.11,23.72,23.46,23.19,22.6,22.54,22.9,22.59,22.92,23.27,23.72,24.02,23.27,24.16,24.5,24.44,24.55,24.63,24.71,24.92,25.05,25.0,24.29,23.84,23.49,23.15,22.83,22.57,22.19,21.9,22.2,22.45,22.66,22.84,23.01,23.27,23.53,23.74,23.93,24.08,24.17,24.25,24.71,25.0,24.9,24.29,24.04,23.63,23.51,23.35,23.52,23.93,24.3,25.13,25.89,26.78,27.38,23.47,23.4,23.29,24.81,24.59,24.71,24.77,24.79,24.84,24.91,25.08,25.11,24.59,24.05,23.61,23.4,23.14,22.9,22.69,22.5,22.37,22.6,23.04,23.29,23.52,23.58,23.67,24.36,24.47,24.42,24.49,24.58,24.72,24.87,24.38,24.22,24.12,24.54,24.54,24.34,24.01,23.78,23.59,23.47,23.01,23.52,23.79,24.07,24.09,24.0,24.11,24.2,24.39,24.42,24.53,24.69,24.9,24.58,24.82,24.91,24.34,24.16,24.04,23.77,23.53,23.42,23.34,23.18,23.37,23.14,23.52,23.49,23.47,22.28,23.39,24.2,24.65,24.6,24.68,24.05,24.49,24.74,25.1,24.4,24.06,23.76,23.57,23.35,23.13,22.88,22.66,22.52,22.47,23.01,23.4,23.95,24.11,24.2,24.33,23.9,24.43,24.55,24.63,24.72,24.86,24.98,24.75,24.99,24.04,24.12,23.97,23.68,23.45,23.29,23.48,23.29,22.51,22.69,22.66,22.45,22.83,23.14,24.08,24.7,24.3,24.46,24.49,24.51,24.57,24.64,24.83,24.16,24.32,24.18,23.96,23.64,22.89,22.26,21.49,21.15,20.87,21.21,21.66,22.13,22.62,23.11,23.47,24.03,23.33,23.39,23.4,23.4,23.42,23.5,23.97,24.4,24.37,23.84,23.28,22.97,22.67,22.78,22.56,22.21,21.6,21.54,21.5,21.99,22.74,23.09,23.52,23.86,23.95,23.62,23.65,24.12,24.29,24.45,24.63,24.58,24.0,23.82,23.56,23.28,22.97,22.7,22.52,22.42,22.95,23.26,23.04,22.97,23.27,23.64,23.78,24.69,24.46,24.47,24.51,24.59,24.69,24.83,25.08,25.16,24.88,24.66,23.91,23.28,23.02,22.95,22.75,22.75,22.21,23.01,23.44,23.59,23.26,23.44,22.88,23.98,24.28,24.37,24.38,24.42,24.58,23.58,24.23,24.5,23.95,23.98,23.74,23.54,23.26,23.07,22.81,22.55,22.3,22.1,22.28,21.82,22.65,23.05,23.6,24.1,24.44,24.58,24.3,24.38,24.5,24.66,24.69,24.67,24.02,23.32,22.82,23.07,22.66,22.3,21.74,21.37,21.65,22.11,22.62,22.95,23.47,23.09,23.67,24.22,24.5,24.2,24.29,24.35,24.43,24.57,24.79,24.85,24.78,24.52,24.15,22.69,22.77,22.5,22.33,22.11,21.88,21.81,21.51,22.02,22.4,22.66,22.94,23.16,23.3,23.53,23.69,23.81,24.01,24.09,24.3,24.33,24.21,23.31,23.3,23.04,22.35,21.47,21.03,20.78,20.59,20.8,21.24,21.68,22.03,22.34,21.65]}},"complete":true,"cost_usd":[0.0413,0.0849,0.1267,0.1677,0.2088,0.2588,0.3424,0.4174,0.7023,0.8342,0.9117,1.0485,1.1419,1.2314,1.3407,1.6638,1.9289,2.0712,2.1833,2.3232,2.5083,2.6598,2.8026,2.9563,3.0334,3.0823,3.1234,3.1845,3.2532,3.3282,3.4022,3.4441,3.5361,3.5777,3.6538,3.7542,3.9995,4.1878,4.3471,4.5486,4.7672,4.9382,5.1378,5.2761,5.4473,5.5992,5.7495,5.8519,5.9309,5.9956,6.0513,6.1007,6.1501,6.2029,6.2522,6.3483,6.4866,6.5275,6.5897,6.6552,6.6998,6.9308,6.9844,7.1263,7.2936,7.4158,7.5518,7.6513,7.7362,7.853,7.9113,7.9691,8.0088,8.0456,8.0921,8.1605,8.2128,8.2972,8.4041,8.4746,8.5672,8.607,8.658,8.6864,8.7295,8.7523,8.7688,8.7807,8.8046,8.8904,8.9929,9.083,9.1778,9.2607,9.3562,9.4531,9.5378,9.6214,9.7012,9.7777,9.8742,9.9216,9.9879,10.1013,10.1454,10.1656,10.1909,10.2357,10.2899,10.3441,10.4099,10.4925,10.5895,10.8154,10.9748,11.1673,11.2823,11.3511,11.4276,11.4918,11.5839,11.6639,11.717,11.8047,11.8517,11.9521,12.2973,12.3827,12.4867,12.7049,12.7847,12.8219,12.8691,12.9185,12.9986,13.0579,13.1256,13.2496,13.34,13.4754,13.841,13.9594,14.0391,14.113,14.1973,14.3152,14.4123,14.5032,14.5855,14.6669,14.8266,14.9088,15.0257,15.0766,15.108,15.2395,15.3315,15.4245,15.5225,15.5753,15.6457,15.8054,15.9647,16.0759,16.2042,16.296,16.3528,16.4147,16.4698,16.5549,16.6227,16.6889,16.7545,16.8695,16.9646,17.0206,17.0914,17.1149,17.1425,17.1866,17.2184,17.2658,17.3317,17.3923,17.4687,17.5845,17.7209,17.8617,17.9902,18.0844,18.1665,18.2269,18.2848,18.3315,18.3712,18.4087,18.4453,18.4824,18.5493,18.598,18.6996,18.7422,18.7836,18.8589,18.9433,19.2121,19.3912,19.5557,19.6985,19.8681,20.0593,20.2159,20.3273,20.4341,20.5437,20.6204,20.6841,20.7456,20.8081,20.8585,20.9021,20.9869,21.0325,21.0757,21.1123,21.1496,21.1919,21.2276,21.2956,21.6101,21.7112,21.8463,22.1735,22.3634,22.5832,22.7676,22.901,23.0063,23.0997,23.1742,23.2496,23.3395,23.4346,23.4802,23.5565,23.6031,23.8115,23.9179,24.1,24.2186,24.2894,24.3381,24.3877,24.4707,24.7064,24.8742,25.0701,25.241,25.4005,25.5432,25.656,25.9421,26.0083,26.1077,26.1774,26.2443,26.3407,26.4324,26.5216,26.6119,26.7023,26.7511,26.7915,26.8754,26.9242,26.9901,27.0417,27.129,27.2358,27.4557,27.9476,28.2442,28.4469,28.6947,28.9183,29.1554,29.4726,29.5778,29.6409,29.698,29.796,29.8762,29.954,30.0352,30.1555,30.2074,30.2531,30.2833,30.3215,30.3568,30.4056,30.4486,30.5511,30.7174,30.9033,31.0322,31.1776,31.3547,31.5017,31.628,31.7769,31.8565,31.9407,32.035,32.1287,32.2079,32.2853,32.3672,32.4598,32.5978,32.6862,32.723,32.7653,32.7943,32.8804,32.9608,33.0035,33.0551,33.1278,33.2534,33.3965,33.5608,33.725,33.8265,33.9178,34.0281,34.1378,34.2484,34.3427,34.4302,34.5498,34.611,34.6782,34.7991,34.9948,35.116,35.2101,35.2797,35.3476,35.4103,35.5461,35.6576,35.7878,36.0138,36.1834,36.3156,36.4396,36.6003,36.6769,36.8044,36.8701,36.9431,37.0052,37.0612,37.1124,37.1644,37.2178,37.338,37.4048,37.479,37.5393,37.5994,37.8168,37.909,38.0375,38.1505,38.3652,38.5397,38.6914,38.8442,39.0109,39.1372,39.2094,39.261,39.3131,39.3631,39.3999,39.4339,39.4739,39.4739,39.4739,39.4739,39.4739,39.4739,39.4739,39.4739,39.4739,39.4739,39.4739,39.4739,39.4739,39.4739,39.4739,39.4739,39.5918,39.718,39.8321,39.8902,39.9782,40.0701,40.1674,40.2585,40.3463,40.4863,40.66,40.733,40.8041,40.9098,40.9957,41.0464,41.1601,41.3585,41.4518,41.5893,41.7233,41.8654,41.9745,42.1357,42.2274,42.3889,42.4771,42.5592,42.659,42.7596,42.8502,42.9485,42.9881,43.0428,43.1431,43.3043,43.4348,43.5322,43.5893,43.637,43.7193,43.8105,43.9589,44.0102,44.0524,44.1705,44.2508,44.3455,44.4409,44.5274,44.5847,44.6764,44.7882,44.921,45.0084,45.0828,45.1587,45.2729,45.326,45.4152,45.4942,45.5404,45.5816,45.6724,45.7467,45.7736,45.8055,45.8324,45.9074,46.0041,46.0811,46.1717,46.2848,46.4639,46.5744,46.6972,46.7612,46.8167,46.8812,46.9865,47.0789,47.1608,47.2498,47.362,47.4077,47.4388,47.4702,47.5644,47.6223,47.6871,47.7786,47.8935,48.063,48.2321,48.4623,48.5892,48.6981,48.8151,48.9233,49.0156,49.1203,49.2336,49.2913,49.3787,49.446,49.5629,49.7984,49.9391,50.0879,50.1714,50.2149,50.3367,50.4247,50.4876,50.5951,50.8523,51.068,51.2231,51.3713,51.5367,51.6694,51.7903,51.8715,51.9382,52.0051,52.0529,52.097,52.1459,52.1871,52.2297,52.2886,52.4127,52.5627,52.916,53.1828,53.2689,53.4112,53.5181,53.7319,54.0744,54.2661,54.4381,54.6405,54.7922,54.9196,55.0263,55.1234,55.2057,55.2737,55.3419,55.3881,55.4315,55.4834,55.5425,55.6036,55.6949,55.7795,55.8479,55.9637,56.0124,56.2366,56.4145,56.4988,56.6202,56.8964,57.1045,57.3164,57.4558,57.5862,57.709,57.8412,57.9092,57.9776,58.0415,58.1277,58.1729,58.2636,58.412,58.5694,58.6758,58.745,58.7913,58.8476,58.9114,59.0057,59.095,59.2416,59.3288,59.4394,59.5484,59.6283,59.8125,59.9335,60.0641,60.1735,60.2387,60.3191,60.3848,60.4815,60.5847,60.6963,60.7839,60.8647,60.9364,60.9883,61.0641,61.0988,61.1351,61.2052,61.284,61.3642,61.4307,61.5239,61.6842,61.8003,61.9158,62.0587,62.1539,62.3923,62.4788,62.5664,62.6666,62.7603,62.8489,62.9348,63.0949,63.1843,63.273,63.3931,63.4635,63.5021,63.5575,63.6061,63.6522,63.7372,63.8872,64.1422,64.2943,64.4899,64.906,65.0579,65.2805,65.3688,65.4651,65.5236,65.6278,65.7137,65.7561,65.8451,65.9656,66.1543,66.2711,66.4875,66.6964,66.8139,66.9323,67.0653,67.1918,67.3737,67.5525,67.7946,68.0149,68.1891,68.406,68.5404,69.0932,69.2159,69.2987,69.3701,69.5105,69.6476,69.7297,69.8239,69.9106,70.0667,70.1601,70.2448,70.3442,70.43,70.6042,70.7285,70.8275,70.9625,71.1348,71.3549,71.5792,71.9747,72.1625,72.2937,72.441,72.5936,72.71,72.7789,72.8382,72.8822,72.9251,72.9677,73.0139,73.0632,73.1574,73.2556,73.4406,73.5831,73.6661,73.7908,73.9456,74.1328,74.3361,74.5677,74.8021,75.0101,75.1806,75.3344,75.482,75.6332],"decisions":[{"clamps":[],"fallback":null,"reason":"Batteries are empty with no price spike now, so hold them; baseline cooling is kept since rooms are within band and near setpoint.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold batteries at floor (no usable charge, price not top, grid charge not needed); cooling at baseline since Building_1 is only 0.88C above setpoint; no trims, no DHW.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cheap clean hour with no top price: small battery charge per strategy, cooling and tank at baseline, no overcooling, peak headroom respected.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overnight low-price hour with grid charging allowed; small battery charge per strategy, rooms within band, no trim, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 0.0 from setpoint so cooling stays at baseline; batteries follow strategy, price is not top now and grid charging is ok, so use the suggested small charge.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cheap hour but peak headroom is zero and the batteries hold little usable charge, so hold batteries and keep baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Peak limiter is at target with zero headroom, so no grid charging; batteries and tanks held, cooling kept at baseline, Building_2 already at zero cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Charging all batteries gently at 0.098 in this cheap hour ahead of top-price hours; cooling kept at baseline since no room is overcooled enough to trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Rooms are near setpoint so no trim; batteries hold per strategy since price is not at top and grid charging at low price is marginal; keep baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 0.56C below setpoint, so trim cooling; keep battery strategy since top price is ahead; avoid tank charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is overcooled, so cooling is trimmed deeper; batteries charge gently in the cheap hour before the top-price period.","status":"ok"},{"clamps":[{"applied":0.2604,"point":"Building_1.cooling","reason":"indoor 24.4 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.066 by at most 0.02 per hour","requested":0.3065,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 slightly overcooled, trim held; batteries follow strategy, charging at low price; top price not active now, no tank charging.","status":"clamped"},{"clamps":[{"applied":0.2812,"point":"Building_1.cooling","reason":"indoor 24.4 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.046 by at most 0.02 per hour","requested":0.307,"rule":"trim_hold"}],"fallback":null,"reason":"Cheap, clean hour before top-price hours 3-5: charge batteries gently per strategy; hold cooling near baseline, no DHW, trims held.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Follow the strategy battery charge in cheap, clean hours before the top-price window; keep cooling at baseline with no overcooling and dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Buildings unoccupied and not overcooled; hold baseline cooling, follow strategy battery charging in cheap hours, no DHW, no trims.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Top-price hour: discharge batteries per strategy; trim Building_3 cooling for overcooling; hold tanks at zero.","status":"ok"},{"clamps":[{"applied":0.6953,"point":"Building_3.cooling","reason":"indoor 22.5 C is more than 0.5 C below the setpoint 23.3 C, trim held at 0.037","requested":0.7326,"rule":"trim_hold"}],"fallback":null,"reason":"Top-price hour: discharge batteries per strategy; Building_3 is overcooled so the held trim stays; other cooling at baseline.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Top-price final hour: discharge all usable battery charge; trim overcooled occupied rooms 1 and 3 by 0.1 below baseline.","status":"ok"},{"clamps":[{"applied":0.1329,"point":"Building_1.cooling","reason":"indoor 24.2 C is more than 0.5 C below the setpoint 26.5 C, trim held at 0.100","requested":0.2328,"rule":"trim_hold"},{"applied":0.3325,"point":"Building_3.cooling","reason":"indoor 23.4 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.4321,"rule":"trim_hold"}],"fallback":null,"reason":"Top-price hours are near-flat; keep strategy battery actions, hold cooling trims, and leave tanks idle.","status":"clamped"},{"clamps":[{"applied":0.2179,"point":"Building_3.cooling","reason":"indoor 24.0 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.100 by at most 0.02 per hour","requested":0.2975,"rule":"trim_hold"}],"fallback":null,"reason":"Top-price hour: discharge batteries evenly over remaining top-price hours per strategy; keep baseline cooling since rooms are within band.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Keep strategy battery discharge for the top-price hour, hold cooling at baseline since rooms are warm or near setpoint, and leave the hot water tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Top-price hour with no later top hours, so batteries discharge their small usable charge now; B1 is overcooled and cooling is eased, B2 is warm and gets more cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, so batteries idle; Building_1 is 0.25C above setpoint so baseline cooling kept; Building_2 overcooled? No, unoccupied and warm, baseline kept.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours; batteries hold, no overcooling, and cooling stays at baseline; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat-price hour so batteries stay idle; trim cooling in occupied overcooled rooms 1 and 3, leave unoccupied Building_2 at baseline.","status":"ok"},{"clamps":[{"applied":0.0471,"point":"Building_3.cooling","reason":"indoor 23.8 C is within 0.5 C of the setpoint 23.9 C, trim eases off from 0.054 by at most 0.02 per hour","requested":0.0813,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day, no top-price hours; batteries idle per strategy. Building_1 is 2.1C below setpoint so cooling trimmed; others held at baseline.","status":"clamped"},{"clamps":[{"applied":0.0076,"point":"Building_1.cooling","reason":"indoor 21.3 C is more than 0.5 C below the setpoint 22.2 C, trim held at 0.088","requested":0.0956,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day, batteries near floor with no top-price hours; hold batteries, keep baseline cooling, and let trims follow envelope rules.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours, so batteries stay idle; cooling near baseline, Building_1 trim held at 0 since it is not below setpoint by 0.5 C.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours, so batteries stay idle; cooling follows baseline since no zone is overcooled by more than 0.5 C.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours, so batteries stay idle; Building_1 is 0.06 C above setpoint so cooling stays at baseline and no trim is needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries near floor with tiny usable charge; hold batteries and keep baseline cooling, Building_1 at setpoint so no trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries near floor with little usable charge; hold batteries and tank, keep baseline cooling; Building_1 is slightly cool but within band, no trim needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, so battery stays idle; cooling near baseline; Building_1 is 1.87C below setpoint but occupied with a trim held at zero, so I keep baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, so battery idles except spare-solar storage; cooling stays at baseline since rooms are near setpoint; no DHW.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours, so batteries stay idle; cooling trims are zero since no room is more than 0.5 C below setpoint.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours; batteries idle, cooling at baseline since no room is overcooled by over 0.5 C, dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day with load below peak target and no overcooling, so cooling, storage and tanks hold baseline with batteries idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries idle; Building_1 overcooled 0.69C below setpoint is not occupied-cold enough for trim, keep baseline cooling; Building_2 warm, keep baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries idle per strategy; Building_1 is 0.91 C below setpoint so cooling trimmed slightly; others hold baseline.","status":"ok"},{"clamps":[{"applied":0.6341,"point":"Building_1.cooling","reason":"indoor 23.6 C is more than 0.5 C below the setpoint 24.6 C, trim held at 0.052","requested":0.6866,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day, batteries idle; Building_1 is 0.98 C below setpoint so trim held at -0.052 with cooling baseline kept; peak headroom limits charging.","status":"clamped"},{"clamps":[{"applied":0.5975,"point":"Building_1.cooling","reason":"indoor 23.4 C is more than 0.5 C below the setpoint 25.0 C, trim held at 0.052","requested":0.6,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day with no top-price hours, so batteries idle; Building_1 is overcooled so trim held, cooling kept at baseline; dhw idle.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Flat price day so batteries idle; Building_1 is overcooled so trim held; Building_3 is 2.4C below setpoint, so cooling kept at baseline; DHW idle.","status":"ok"},{"clamps":[{"applied":0.487,"point":"Building_1.cooling","reason":"indoor 23.3 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.102","requested":0.5894,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day with no top-price hours, so batteries stay idle; Building_1 is 1.18C below setpoint so cooling trim is held at baseline cooling.","status":"clamped"},{"clamps":[{"applied":0.2873,"point":"Building_1.cooling","reason":"indoor 23.5 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.102","requested":0.39,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day, batteries idle; Building_1 overcooled 0.96C below setpoint so trim held; others use baseline cooling with no tank or battery action.","status":"clamped"},{"clamps":[{"applied":0.329,"point":"Building_1.cooling","reason":"indoor 24.1 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.102 by at most 0.02 per hour","requested":0.4114,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day so batteries idle; Building_1 is 0.35C below setpoint so cooling trim held; other buildings use baseline cooling and no tank charging.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries idle; Building_1 overcooled 1.43C so trim held, cooling kept at baseline; no DHW charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours; batteries idle as strategy says, cooling at baseline since no room is overcooled, dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top-price hours, so batteries stay idle; trim cooling in overcooled occupied rooms B1 and B3, B2 is warm so baseline.","status":"ok"},{"clamps":[{"applied":0.3435,"point":"Building_1.cooling","reason":"indoor 18.5 C is more than 0.5 C below the setpoint 20.0 C, trim held at 0.056","requested":0.35,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 is 1.46C below setpoint, so trim cooling deeper; flat price means batteries idle and dhw stays at zero.","status":"clamped"},{"clamps":[{"applied":0.2467,"point":"Building_1.cooling","reason":"indoor 18.6 C is more than 0.5 C below the setpoint 20.0 C, trim held at 0.056","requested":0.25,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 is overcooled 1.38C below setpoint, so trim cooling modestly deeper; batteries idle on flat prices with negligible usable charge.","status":"clamped"},{"clamps":[{"applied":0.1858,"point":"Building_1.cooling","reason":"indoor 18.9 C is more than 0.5 C below the setpoint 20.0 C, trim held at 0.056","requested":0.2419,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day with no top-price hours, so batteries stay idle; Building_1 is overcooled so trim held at baseline cooling, others hold baseline.","status":"clamped"},{"clamps":[{"applied":0.1465,"point":"Building_1.cooling","reason":"indoor 19.2 C is more than 0.5 C below the setpoint 20.0 C, trim held at 0.056","requested":0.19,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day, batteries idle; Building_1 overcooled 0.79C below setpoint so trim deepened slightly within limits; others baseline.","status":"clamped"},{"clamps":[{"applied":0.143,"point":"Building_1.cooling","reason":"indoor 19.5 C is within 0.5 C of the setpoint 20.0 C, trim eases off from 0.056 by at most 0.02 per hour","requested":0.1791,"rule":"trim_hold"}],"fallback":null,"reason":"Flat prices and no top-price hours; hold batteries and tanks idle, keep baseline cooling, and do not end trims since rooms are near setpoint.","status":"clamped"},{"clamps":[{"applied":0.156,"point":"Building_1.cooling","reason":"indoor 19.6 C is within 0.5 C of the setpoint 20.0 C, trim eases off from 0.036 by at most 0.02 per hour","requested":0.1721,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day, batteries idle; Building_1 is 0.44 C below setpoint so trim held, cooling at baseline; no DHW.","status":"clamped"},{"clamps":[{"applied":0.1485,"point":"Building_1.cooling","reason":"indoor 19.4 C is more than 0.5 C below the setpoint 20.0 C, trim held at 0.016","requested":0.1646,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price, no top-price hours, batteries near floor so hold; Building_1 is 0.6C below setpoint so trim held and cooling kept near baseline; others hold.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Price is flat with no top-price hour now; hold batteries per strategy, cool at baseline, and trim Building_1 slightly as it is overcooled.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is 0.29C below setpoint so no extra trim; price is flat-ish, not top, so keep strategy battery charge at 0.15 for all buildings; cooling at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"B1 is overcooled 3 C, so its cooling trim is deepened; B1 stores a little solar; other buildings keep baseline.","status":"ok"},{"clamps":[{"applied":0.0361,"point":"Building_1.cooling","reason":"indoor 22.2 C is more than 0.5 C below the setpoint 22.8 C, trim held at 0.100","requested":0.136,"rule":"trim_hold"}],"fallback":null,"reason":"Prices flat with no top-price hour now; overcooled Building_1 trim held, store spare solar in batteries, no tank charging, cooling at baseline elsewhere.","status":"clamped"},{"clamps":[{"applied":0.0,"point":"Building_1.cooling","reason":"indoor 23.3 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.073,"rule":"trim_hold"},{"applied":0.2553,"point":"Building_2.cooling","reason":"indoor 27.4 C is near the top of the comfort band, cooling held at the baseline","requested":0.255,"rule":"comfort"}],"fallback":null,"reason":"Trim building 1 for overcooling, hold batteries near strategy, no grid charging at flat price; keep tanks idle and cooling near baseline.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Price is flat-low now with no top-price hour, so store spare solar only; Building_1 and 2 cooling trims per envelope; no grid charging, no tank use.","status":"ok"},{"clamps":[{"applied":0.0,"point":"Building_1.battery","reason":"district load 8.92 kWh would pass the peak target 8.60 kWh, charging trimmed","requested":0.08,"rule":"peak"}],"fallback":null,"reason":"Holding baseline cooling since rooms are near setpoint; following battery strategy to shave the peak at the target with no headroom and no top-price hour now.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Cooling kept at baseline with no trim needed; only Building_1 stores spare solar, since no top-price hour is now and load is well under peak target.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold all batteries and cooling at baseline: no overcooling, price and carbon are not at a top-hour window, and peak headroom is limited.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_3 is overcooled by about 1 C, so I trim its cooling slightly; batteries and tanks hold since prices are not at the top yet.","status":"ok"},{"clamps":[{"applied":0.2542,"point":"Building_3.cooling","reason":"indoor 23.1 C is more than 0.5 C below the setpoint 23.9 C, trim held at 0.050","requested":0.3043,"rule":"trim_hold"}],"fallback":null,"reason":"Holding batteries and tanks at baseline: price is not top, carbon is high now, and the room temperatures are already within safe limits.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Building_1 is overcooled 3.8 C below setpoint, so cooling is trimmed 0.1 below baseline; other devices hold baseline since peak headroom and price timing give no reason to act.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is overcooled by 1.33 C so its held trim applies; others hold baseline, batteries idle as no top-price discharge or cheap-hour charge is due now.","status":"ok"},{"clamps":[{"applied":0.0058,"point":"Building_1.cooling","reason":"indoor 24.4 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.100 by at most 0.02 per hour","requested":0.086,"rule":"trim_hold"}],"fallback":null,"reason":"Building_3 is slightly overcooled so its cooling is trimmed; other actions follow baseline and battery strategy, with charging deferred to cheaper early-morning hours.","status":"clamped"},{"clamps":[{"applied":0.1653,"point":"Building_3.cooling","reason":"indoor 22.8 C is more than 0.5 C below the setpoint 23.3 C, trim held at 0.011","requested":0.1761,"rule":"trim_hold"}],"fallback":null,"reason":"Buildings are warm or near setpoint, so cooling stays at baseline; batteries hold since no top-price hour is now and grid charging waits for cheap hours.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"B1 and B3 overcooled, so cooling is trimmed or held; B2 is warm near its band edge so cooling rises; batteries held per strategy.","status":"ok"},{"clamps":[{"applied":0.0076,"point":"Building_3.cooling","reason":"indoor 23.3 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.011","requested":0.0189,"rule":"trim_hold"}],"fallback":null,"reason":"Overcooling not present except Building_1 at -1.44C; trim ~0.1 needed. Batteries idle: price not top, charging limited, hold strategy.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Hold batteries near baseline since price is low and no top-price hours now; cooling kept at baseline as rooms are within band and Building_3 trim is small.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 0.78C below setpoint so cooling is trimmed slightly; batteries held as prices are low and no top-price hour is now; DHW idle.","status":"ok"},{"clamps":[{"applied":0.03,"point":"Building_1.cooling","reason":"indoor 23.2 C is more than 0.5 C below the setpoint 23.8 C, trim held at 0.022","requested":0.0522,"rule":"trim_hold"}],"fallback":null,"reason":"Building 2 is 2.98C above setpoint so cooling stays at baseline; batteries follow strategy charging in cheap hours; no top price now, DHW idle.","status":"clamped"},{"clamps":[{"applied":0.0064,"point":"Building_1.cooling","reason":"indoor 23.6 C is more than 0.5 C below the setpoint 24.1 C, trim held at 0.022","requested":0.0286,"rule":"trim_hold"}],"fallback":null,"reason":"Cheap, clean hour before the 12-14h top price: charge batteries per strategy, keep cooling at baseline, DHW idle.","status":"clamped"},{"clamps":[{"applied":0.0116,"point":"Building_1.cooling","reason":"indoor 24.1 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.022 by at most 0.02 per hour","requested":0.0138,"rule":"trim_hold"}],"fallback":null,"reason":"Cheap, clean hour before the 16-18h top price: charge Building_2 and Building_3 batteries per strategy; hold Building_1 (soc 0.92) and keep cooling at baseline.","status":"clamped"},{"clamps":[{"applied":0.0042,"point":"Building_1.cooling","reason":"indoor 24.2 C is more than 0.5 C below the setpoint 24.8 C, trim held at 0.002","requested":0.0064,"rule":"trim_hold"}],"fallback":null,"reason":"Hour 6 is cheap, so I follow the strategy battery charge in Buildings 2 and 3, hold Building 1 battery idle, and keep cooling at baseline with the trim held.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Hour 7 is not top-price; B1 is 0.68C under setpoint so keep cooling at 0 with trim held; charge batteries gently per strategy while grid charging is allowed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Holding batteries near baseline; charging Buildings 2 and 3 modestly at the cheap 0.029 price ahead of the 16-18h top-price hours, with cooling at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Holding batteries per strategy; small cheap-hour top-up for Buildings 2 and 3 ahead of top-price hours; cooling unchanged, no overcooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold batteries: price low, not top hour, next top hours 6-8 ahead; B1 and B3 cooling at baseline, B2 unoccupied and warm so keep baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is 1.79C below setpoint but baseline cooling is tiny, so trim is held at 0; batteries idle since top price is not active and charging is not needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold batteries and baseline cooling; Building_1 is only 0.62C above setpoint, price is not top now, and strategy says hold.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold batteries idle: price not at top, next top hours 3-5 ahead; batteries near charge but no cheap charge needed; cooling at baseline, B1 trim within band.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is overcooled so cooling is cut to 0; Building 3 stores cheap solar-hour charge per strategy; other actions keep baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 2 is 2.36C above setpoint so cooling stays at baseline; batteries follow strategy, charging in cheap hours with grid charging allowed; DHW idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Top price now: discharge batteries toward top-price hours; trim overcooled Building_1 by 0.1 cooling; Building_2 is warm so no trim; no grid charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Top-price hour: follow strategy battery discharge; cool buildings 1 and 3 near setpoint at baseline, Building 2 is warm so keep baseline cooling, no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Top-price hour: discharge batteries per strategy, capped by load; no grid charging, tanks idle, cooling at baseline as rooms are not overcooled.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold batteries for the 21-23h top-price window; trim B1 slightly for overcooling and boost B2 cooling since it is 1.6C above setpoint.","status":"ok"},{"clamps":[{"applied":0.1614,"point":"Building_1.cooling","reason":"indoor 23.9 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.025","requested":0.187,"rule":"trim_hold"}],"fallback":null,"reason":"Hold batteries near strategy; prices not at top now, grid charging cheap hours later; trims held, cooling near baseline.","status":"clamped"},{"clamps":[{"applied":0.1362,"point":"Building_1.cooling","reason":"indoor 24.0 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.025 by at most 0.02 per hour","requested":0.1417,"rule":"trim_hold"}],"fallback":null,"reason":"Hold batteries as strategy suggests; price not top now, charging only cheap hours; trim Building_1 held; cool Building_2 at baseline since it is warm.","status":"clamped"},{"clamps":[{"applied":0.1065,"point":"Building_1.cooling","reason":"indoor 23.8 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.005","requested":0.112,"rule":"trim_hold"}],"fallback":null,"reason":"Hold baselines: buildings 1 and 3 near setpoint, B2 overheated so cooling stays baseline; no top price now, batteries idle, grid charging not needed at 0.03 price.","status":"clamped"},{"clamps":[{"applied":0.0854,"point":"Building_1.cooling","reason":"indoor 23.9 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.005","requested":0.0909,"rule":"trim_hold"}],"fallback":null,"reason":"Cheap hour 23 with no top-price now; start small battery top-ups ahead of the 17-19h peak-price hours, cooling baselines kept.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Buildings are warm or near setpoint so cooling stays at baseline; prices are low now, so small battery charging builds charge for the 16-18h top-price hours.","status":"ok"},{"clamps":[{"applied":0.1167,"point":"Building_1.cooling","reason":"indoor 21.7 C is near the bottom of the comfort band, cooling held at the baseline","requested":0.117,"rule":"comfort"}],"fallback":null,"reason":"Overcooled Building_1 trims cooling 0.5C below setpoint; batteries follow strategy charge in cheap hour; no top price now, tank idle.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Hour 2 is cheap and clean; charge batteries gently per strategy, keep cooling at baseline, tanks idle, no trims needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cheap low-carbon hour before top-price window; charge batteries gently per strategy, cooling near baseline, no DHW, Building_1 slightly under setpoint so no trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling trim not needed (B1 0.43 below setpoint); keep baseline cooling, charge batteries gently in cheap hour, no tank use, no trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hour 5 is cheap and not top-price; charge batteries gently per strategy, no DHW, cooling near baseline since rooms are near setpoint.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is overcooled 0.65C below setpoint, so trim cooling slightly; batteries follow strategy, no top price now so no discharge, grid charging ok in cheap hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hour 7 is cheap, not top price; B1 and B2 stay at baseline cooling, B3 uses its gentle strategy charge, no DHW, all within limits.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is 0.58C below setpoint, so trim cooling; hold batteries idle as strategy suggests since prices are not top-priced and district load is near target.","status":"ok"},{"clamps":[{"applied":0.1171,"point":"Building_1.cooling","reason":"indoor 21.9 C is more than 0.5 C below the setpoint 22.8 C, trim held at 0.035","requested":0.1521,"rule":"trim_hold"},{"applied":0.0069,"point":"Building_1.battery","reason":"charge would take charge from 0.94 above 0.95","requested":0.034,"rule":"soc"},{"applied":0.0078,"point":"Building_2.battery","reason":"charge would take charge from 0.94 above 0.95","requested":0.034,"rule":"soc"}],"fallback":null,"reason":"Building_1 overcooled slightly but within 0.5C of setpoint; keep baseline; hold battery idle until top-price hours; charge modestly per strategy.","status":"clamped"},{"clamps":[{"applied":0.1015,"point":"Building_1.cooling","reason":"indoor 22.4 C is more than 0.5 C below the setpoint 23.3 C, trim held at 0.035","requested":0.12,"rule":"trim_hold"}],"fallback":null,"reason":"Hour 10 is not top-price; cooling near baseline with trim held, batteries near full so no grid charge, DHW idle, B3 battery small spare-solar store.","status":"clamped"},{"clamps":[{"applied":0.1067,"point":"Building_1.cooling","reason":"indoor 23.2 C is more than 0.5 C below the setpoint 23.9 C, trim held at 0.035","requested":0.142,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 is overcooled so trim is held; batteries follow strategy, charging modestly in cheap hour before top-price hours ahead; no tank charging.","status":"clamped"},{"clamps":[{"applied":0.117,"point":"Building_1.cooling","reason":"indoor 23.9 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.035","requested":0.14,"rule":"trim_hold"}],"fallback":null,"reason":"Hold batteries idle for upcoming 16-18h top prices; Building_1 cooling eased slightly as room is overcooled; others keep baseline.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Rooms are near setpoint and batteries are already near 0.95 SoC, so baseline cooling and idle storage are kept this hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Batteries are near full and no top-price hour is now, so hold; cooling stays at baseline since no room is overcooled and load is well under target.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold baseline cooling; B2 unoccupied and warm so no trim; battery strategy follows, pre-charge for top price at hours 1-3 with grid charging ok.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Discharging batteries evenly over the remaining top-price hours per strategy; room temps are within comfort so cooling stays at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Top-price hour: discharge batteries per strategy, trim overcooled Building_1 by 0.055, keep others at baseline, tank idle.","status":"ok"},{"clamps":[{"applied":0.5299,"point":"Building_1.cooling","reason":"indoor 23.3 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.056","requested":0.5854,"rule":"trim_hold"}],"fallback":null,"reason":"Top-price hour: discharge batteries evenly over remaining top hours per strategy; B1 overcooled trim held; no DHW or grid charging.","status":"clamped"},{"clamps":[{"applied":0.4215,"point":"Building_1.cooling","reason":"indoor 22.9 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.056","requested":0.477,"rule":"trim_hold"}],"fallback":null,"reason":"Hour 19 with price not top; district load near peak target so limiter on; hold baseline cooling, mild battery discharge per strategy, no grid charging, DHW idle.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Peak limiter is binding at target, so I deepened the overcooled occupied rooms' trims to cut cooling load and kept the code's battery discharge for Building_3.","status":"ok"},{"clamps":[{"applied":0.1625,"point":"Building_1.cooling","reason":"indoor 23.6 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.073","requested":0.2352,"rule":"trim_hold"}],"fallback":null,"reason":"Building 3 is overcooled by 1.84 C, so I deepened its cooling trim; the other buildings and batteries follow the baseline or strategy.","status":"clamped"},{"clamps":[{"applied":0.1406,"point":"Building_1.cooling","reason":"indoor 24.0 C is within 0.5 C of the setpoint 24.3 C, trim eases off from 0.073 by at most 0.02 per hour","requested":0.163,"rule":"trim_hold"},{"applied":0.0937,"point":"Building_3.cooling","reason":"indoor 23.6 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.097","requested":0.191,"rule":"trim_hold"}],"fallback":null,"reason":"Buildings 1 and 3 are overcooled; trim cooling by envelope-held amounts, hold batteries (price not top, grid charging gains little with near-empty usable charge), tanks idle.","status":"clamped"},{"clamps":[{"applied":0.1302,"point":"Building_1.cooling","reason":"indoor 24.1 C is within 0.5 C of the setpoint 24.3 C, trim eases off from 0.053 by at most 0.02 per hour","requested":0.1629,"rule":"trim_hold"},{"applied":0.079,"point":"Building_3.cooling","reason":"indoor 24.3 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.097 by at most 0.02 per hour","requested":0.1561,"rule":"trim_hold"}],"fallback":null,"reason":"Hour 23 at low price with no top-price hours now; hold batteries per strategy, trim cooling per envelope, Building_2 is warm so cooling stays at baseline.","status":"clamped"},{"clamps":[{"applied":0.1214,"point":"Building_1.cooling","reason":"indoor 24.1 C is within 0.5 C of the setpoint 24.3 C, trim eases off from 0.033 by at most 0.02 per hour","requested":0.1341,"rule":"trim_hold"}],"fallback":null,"reason":"Buildings 1 and 3 are slightly overcooled within 0.5 C so trims stay held; price is not top now, batteries hold, no grid charging at low headroom need.","status":"clamped"},{"clamps":[{"applied":0.1452,"point":"Building_2.cooling","reason":"indoor 25.7 C is near the top of the comfort band, cooling held at the baseline","requested":0.145,"rule":"comfort"}],"fallback":null,"reason":"Cheap low-carbon hour before top-price window; charge batteries gently at strategy level, hold cooling near baseline, no DHW charging.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Cheap, clean hour before top-price block; charge batteries gently per strategy, keep cooling at baseline since rooms are near band, no DHW.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 overcooled 1.9C above setpoint so cooling kept at baseline; batteries follow strategy charging in cheap hour; no tank charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is 0.24C below setpoint, so no extra trim; batteries follow strategy charging in cheap hour, tanks idle, cooling at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is 0.47C under setpoint, so no extra trim; keep baseline cooling and battery charge, cheap hour, no top price now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cheap, clean hour before the top-price window: charge batteries at the strategy rate, keep cooling at baseline, and leave the tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Peak limiter on with zero headroom; no grid charging, hold cooling at baseline, battery discharge per strategy to cut district peak.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Charging batteries gently in a cheap, clean hour; trimming overcooled Building_1 slightly; others keep baseline cooling with tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_2 overcooled? No, it is 1.58C warm; keep baseline cooling, follow strategy battery charging in cheap hours, no top-price hour now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 overcooled 0.69C below setpoint, not yet 0.5C-plus trim band edge; hold baseline cooling, charge batteries lightly at low price, avoid tank charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hour 11 is not top-price; B1 and B3 cooling trims held at 0 since comfort fine; B2 unoccupied and above setpoint, keep baseline; mild charge per strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim cooling in overcooled occupied Building_1 per envelope; hold batteries near strategy values, charging only where grid charging is ok and no top price now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 0.81C below setpoint, so trim cooling slightly; hold batteries per strategy, no grid charge at this price beyond small top-up.","status":"ok"},{"clamps":[{"applied":0.1948,"point":"Building_1.cooling","reason":"indoor 24.1 C is more than 0.5 C below the setpoint 25.2 C, trim held at 0.015","requested":0.2093,"rule":"trim_hold"}],"fallback":null,"reason":"Cheap hour before top-price block: follow strategy battery charge for B1 and B3, keep cooling at baseline, tank idle, and B2 near full holds.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Charge batteries in this cheap, clean hour ahead of the top-price hours; keep cooling at baseline since no room is overcooled.","status":"ok"},{"clamps":[{"applied":0.1272,"point":"Building_1.cooling","reason":"indoor 24.5 C is near the bottom of the comfort band, cooling held at the baseline","requested":0.25,"rule":"comfort"}],"fallback":null,"reason":"B1 cooling raised (indoor below band), B3 trims cooling 0.06, B2 and B3 discharge into top-price hours, B1 stores spare solar.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Light cooling trims on overcooled occupied B1 and B3; batteries discharge in the top-price hour per strategy; no grid charging since grid_charging_ok is false.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Discharge batteries on top-price hour per plan; trim Building_3 cooling deeper since it is 2.2C below setpoint; others keep baseline.","status":"ok"},{"clamps":[{"applied":0.229,"point":"Building_3.cooling","reason":"indoor 23.5 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.3286,"rule":"trim_hold"}],"fallback":null,"reason":"Hour 19: top price not yet active, so hold battery per strategy; B1 and B3 slightly overcooled, keep baseline cooling; charge none; no DHW.","status":"clamped"},{"clamps":[{"applied":0.1479,"point":"Building_3.cooling","reason":"indoor 24.3 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.100 by at most 0.02 per hour","requested":0.2275,"rule":"trim_hold"}],"fallback":null,"reason":"Hour 20 is not top price; keep baseline cooling, follow strategy battery, and let Building_3 trim hold since it is overcooled, no DHW.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Use strategy battery discharges to cover load near the peak limit; no cooling trims since rooms are not overcooled; no DHW.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold baseline cooling; Building_1 is 0.31 C under setpoint so no trim, batteries idle as strategy says, top price not active now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is overcooled by 1.19 C but the envelope holds trim at 0; cooling kept near baseline, batteries idle as price is not top and grid charging is marginal.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Buildings 1 and 3 are near setpoint so cooling stays at baseline; Building 2 is warm, so no trim. Batteries idle; price is not top, grid charging small.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Rooms are near setpoint so cooling stays at baseline; batteries take a small grid charge at the low price ahead of the 15-17h top-price hours.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Price is low and not top; charge batteries gently at strategy level, keep cooling near baseline, Building_1 slightly overcooled is within band so no trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 0.89 C below setpoint so cooling trims slightly; other buildings follow baseline with strategy battery charging in cheap hour.","status":"ok"},{"clamps":[{"applied":0.131,"point":"Building_1.cooling","reason":"indoor 21.9 C is within 0.5 C of the setpoint 22.2 C, trim eases off from 0.049 by at most 0.02 per hour","requested":0.16,"rule":"trim_hold"}],"fallback":null,"reason":"Hour 4 is cheap and clean with no top price now; charge batteries gently as strategy says, keep cooling near baseline, tank idle.","status":"clamped"},{"clamps":[{"applied":0.1128,"point":"Building_1.cooling","reason":"indoor 22.0 C is within 0.5 C of the setpoint 22.2 C, trim eases off from 0.029 by at most 0.02 per hour","requested":0.121,"rule":"trim_hold"}],"fallback":null,"reason":"Trim held near setpoint so cooling stays near baseline; Building 1 eases trim; batteries charge gently in cheap hour per strategy, no tank charging.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Charging batteries gently in this cheap, clean hour ahead of the top-price period; cooling and tanks stay at baseline with no comfort issues.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 0.05C above setpoint so no trim; price is not top now, so follow strategy battery charging and idle cooling/DHW at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling not triggered; holding baseline cooling and strategy battery charging in cheap, clean hours ahead of the top-price period.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cooling and battery follow baselines and strategy: Building_3 charges gently in this cheap hour before the top-price hours; no trims needed.","status":"ok"},{"clamps":[{"applied":0.0081,"point":"Building_1.battery","reason":"charge would take charge from 0.94 above 0.95","requested":0.14,"rule":"soc"}],"fallback":null,"reason":"Building_1 overcooled 1.44C below setpoint, so trim cooling; top price is 6-8 hours away, so hold battery and charge gently per strategy.","status":"clamped"},{"clamps":[{"applied":0.1195,"point":"Building_1.cooling","reason":"indoor 23.5 C is within 0.5 C of the setpoint 23.9 C, trim eases off from 0.104 by at most 0.02 per hour","requested":0.203,"rule":"trim_hold"}],"fallback":null,"reason":"Trim cooling where overcooled, hold batteries until top-price hours, and charge only where grid charging is allowed and prices are low.","status":"clamped"},{"clamps":[{"applied":0.2112,"point":"Building_1.cooling","reason":"indoor 24.1 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.084 by at most 0.02 per hour","requested":0.2748,"rule":"trim_hold"}],"fallback":null,"reason":"Hour 12: prices not at top, district load near peak target, so hold batteries mostly per strategy; trim B1 cooling as indoor is near setpoint.","status":"clamped"},{"clamps":[{"applied":0.2772,"point":"Building_1.cooling","reason":"indoor 24.2 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.064 by at most 0.02 per hour","requested":0.3208,"rule":"trim_hold"}],"fallback":null,"reason":"Cooling kept at baseline with trims held; batteries charge gently in this cheap hour ahead of top-price hours 3-5.","status":"clamped"},{"clamps":[{"applied":0.3683,"point":"Building_1.cooling","reason":"indoor 24.3 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.044 by at most 0.02 per hour","requested":0.392,"rule":"trim_hold"}],"fallback":null,"reason":"Trim-hold cooling at baseline with envelope; hold batteries per strategy since top price is 2-4h ahead and grid charging is allowed; no DHW.","status":"clamped"},{"clamps":[{"applied":0.4654,"point":"Building_1.cooling","reason":"indoor 24.0 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.024 by at most 0.02 per hour","requested":0.469,"rule":"trim_hold"}],"fallback":null,"reason":"Cheap low-price hour: charge B1 and B3 batteries per strategy, keep B2 idle near full, no cooling trims needed, tank stays empty.","status":"clamped"},{"clamps":[{"applied":0.3765,"point":"Building_1.cooling","reason":"indoor 23.6 C is more than 0.5 C below the setpoint 25.6 C, trim held at 0.004","requested":0.3801,"rule":"trim_hold"}],"fallback":null,"reason":"Hold the battery discharge on top-price hours per strategy; keep cooling at baseline, dhw idle, and no grid charging since grid_charging_ok is false.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Discharge batteries on top-price hour per strategy; deepen overcooled occupied Building_1 and Building_3 trims, hold Building_2 at baseline.","status":"ok"},{"clamps":[{"applied":0.0949,"point":"Building_1.cooling","reason":"indoor 26.7 C is more than 0.5 C below the setpoint 27.2 C, trim held at 0.100","requested":0.195,"rule":"trim_hold"}],"fallback":null,"reason":"Top-price hour: discharge batteries per strategy, keep cooling trims held, no tank charging or grid charging.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Hold batteries for the 21-23h top-price hours; deepen Building_3 cooling trim since it is overcooled by 1.27 C while occupied.","status":"ok"},{"clamps":[{"applied":0.2913,"point":"Building_3.cooling","reason":"indoor 23.5 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.079","requested":0.3704,"rule":"trim_hold"}],"fallback":null,"reason":"Batteries held at idle since no top-price hour is now and the peak is under target; cooling and DHW follow baseline, with Building_3's held trim kept.","status":"clamped"},{"clamps":[{"applied":0.1966,"point":"Building_3.cooling","reason":"indoor 23.7 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.079","requested":0.2757,"rule":"trim_hold"}],"fallback":null,"reason":"Hold all batteries and tanks at baseline; no top-price hour now, and indoor temps are within band, so Building_3's held trim stays.","status":"clamped"},{"clamps":[{"applied":0.1766,"point":"Building_3.cooling","reason":"indoor 24.2 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.079 by at most 0.02 per hour","requested":0.2357,"rule":"trim_hold"}],"fallback":null,"reason":"Hour 22 at a non-top price; comfort trims held, batteries held per strategy, no tank charging, cooling at baseline.","status":"clamped"},{"clamps":[{"applied":0.1247,"point":"Building_3.cooling","reason":"indoor 24.3 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.059 by at most 0.02 per hour","requested":0.1638,"rule":"trim_hold"}],"fallback":null,"reason":"Hour 23 at low flat-ish price with no top hours now; B1 and B2 indoor near or above setpoint, B3 trim held; keep baseline cooling and idle batteries.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Prices are low and not at the top, so I hold most batteries and add a small grid charge to Building_1, which is near its floor, ahead of the 16-18h price peak.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 2 is 2.2C above setpoint so cooling stays at baseline; batteries hold at zero since top price is not active and grid charging is not needed at this price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_2 is overcooled? No, it is 1.41C warm so no trim; batteries charge gently in cheap hour per strategy, DHW idle, cooling at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cheap, clean hour before the 13-15h top price: charge all three batteries at 0.15 per the strategy; room cooling and hot water stay at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling trim not needed; battery charging at strategy level in cheap hour, tanks idle, cooling baseline kept since Building_1 is only 0.62 above setpoint.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cheap hour with grid charging allowed; follow strategy battery charge of 0.15, no cooling trim since rooms are warm, no DHW.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hour 6 is cheap and low-carbon, top price starts at hour 10; keep the strategy charge, cooling near baseline, and no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hour 7 is cheap, not top price; charge batteries gently per strategy, keep cooling near baseline, no DHW, and avoid overcooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hour 8 is not top-price and tariff is low, so hold batteries per strategy; trims are zero as rooms are near setpoint, cooling at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Holding batteries and cooling at baseline: no overcooling, price not at top, and district load is well below the peak target.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling not triggered; kept baseline cooling, followed battery strategy (store spare solar), no tank charging, no grid charging at the current low price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold cooling at baseline, no overcooling; batteries follow strategy, charging modestly in cheap hours before top-price hours 5-7; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hour 12 is not top price; trim cooling in overcooled occupied Building_1 and follow strategy battery charging within grid_charging_ok limits.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hour 13 is cheap and not top price; keep baselines, mild trim for overcooled occupied Building_1, store spare solar via strategy battery actions.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is overcooled slightly; hold baseline cooling, battery follows strategy, price is low so store modestly, no tank charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cheap clean hour before top-price hours 1-3: B3 tops up gently to about 0.95, others hold; cooling stays at baseline since no room is overcooled.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Top-price hour: discharge batteries per strategy; Building_3 is overcooled by 0.62 C so cooling trimmed slightly; others keep baseline.","status":"ok"},{"clamps":[{"applied":0.5916,"point":"Building_3.cooling","reason":"indoor 23.1 C is more than 0.5 C below the setpoint 23.7 C, trim held at 0.012","requested":0.6039,"rule":"trim_hold"}],"fallback":null,"reason":"Holding the battery for the top-price hours at the strategy discharge rates; cooling and tank stay at baseline or held trim, no grid charging.","status":"clamped"},{"clamps":[{"applied":0.729,"point":"Building_3.cooling","reason":"indoor 22.7 C is more than 0.5 C below the setpoint 23.3 C, trim held at 0.012","requested":0.7413,"rule":"trim_hold"}],"fallback":null,"reason":"Top-price hour with no later top hours, so discharge batteries per strategy; ease Building_1 cooling for overcooling; hold Building_3 trim.","status":"clamped"},{"clamps":[{"applied":0.2797,"point":"Building_1.cooling","reason":"indoor 26.3 C is more than 0.5 C below the setpoint 27.2 C, trim held at 0.034","requested":0.3133,"rule":"trim_hold"},{"applied":0.553,"point":"Building_3.cooling","reason":"indoor 21.7 C is more than 0.5 C below the setpoint 23.3 C, trim held at 0.012","requested":0.5653,"rule":"trim_hold"}],"fallback":null,"reason":"Batteries follow strategy discharge over top-price hours; cooling and DHW hold baseline or held trims to stay within comfort and envelope limits.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Top-price hour: discharge battery per strategy; deepen overcooled rooms' trim in Buildings 1 and 3; hold Building 2 at baseline.","status":"ok"},{"clamps":[{"applied":0.1418,"point":"Building_1.cooling","reason":"indoor 26.6 C is more than 0.5 C below the setpoint 27.2 C, trim held at 0.034","requested":0.1759,"rule":"trim_hold"},{"applied":0.2454,"point":"Building_3.cooling","reason":"indoor 22.6 C is more than 0.5 C below the setpoint 23.3 C, trim held at 0.093","requested":0.338,"rule":"trim_hold"}],"fallback":null,"reason":"Holding held cooling trims and discharging batteries evenly over the two remaining top-price hours, keeping district load under the peak target.","status":"clamped"},{"clamps":[{"applied":0.1313,"point":"Building_1.cooling","reason":"indoor 26.7 C is within 0.5 C of the setpoint 27.2 C, trim eases off from 0.034 by at most 0.02 per hour","requested":0.1454,"rule":"trim_hold"},{"applied":0.1628,"point":"Building_3.cooling","reason":"indoor 22.9 C is more than 0.5 C below the setpoint 23.6 C, trim held at 0.093","requested":0.2554,"rule":"trim_hold"}],"fallback":null,"reason":"Top-price hour with little usable charge: discharge the remaining battery as the strategy says, keep cooling trims held, and leave the tanks idle.","status":"clamped"},{"clamps":[{"applied":0.0972,"point":"Building_1.cooling","reason":"indoor 26.7 C is more than 0.5 C below the setpoint 27.2 C, trim held at 0.014","requested":0.1113,"rule":"trim_hold"},{"applied":0.0997,"point":"Building_3.cooling","reason":"indoor 23.5 C is within 0.5 C of the setpoint 23.9 C, trim eases off from 0.093 by at most 0.02 per hour","requested":0.1723,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day, batteries idle per strategy; trims held, Building_1 eases toward setpoint, Building_3 trim held; no tank or battery action.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries idle; Building_1 and Building_3 cooling near baseline with trims held; no DHW, no top-price hours.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours, so batteries stay idle; no room is overcooled, so cooling and tank stay at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, so batteries stay idle; Building_1 is 0.31 C below setpoint but not past 0.5 C, so baseline cooling holds.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours, so batteries stay idle; cooling kept at baseline since no room is overcooled.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours; batteries idle as suggested, cooling at baseline since no building is overcooled.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours, so batteries stay idle; cooling follows baseline since no room is overcooled.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, no top-price hours, so batteries idle; Building_1 is 0.48C above setpoint so cooling stays at baseline; dhw held at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, no top-price hours, so batteries stay idle; cooling near baseline since rooms are within band and no trim is warranted.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, no top-price hours; batteries idle, cooling near baseline, tanks idle, Building_1 is 0.85C above setpoint so no overcooling trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price with no top-price hours, so batteries stay idle; all rooms are warm, so cooling and tanks keep baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat-price day with no top-price hours and rooms within band; holding baseline cooling, idle batteries and tanks, no trim needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, no top-price hours; batteries idle, cooling at baseline, no overcooling, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours, so batteries idle; cooling at baseline since no building is overcooled beyond 0.5 C; dhw stays at zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, no top-price hours, so batteries idle; Building_1 and Building_3 cooling at baseline; Building_2 is warm so baseline cooling kept.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours; battery idle, Building_1 slightly cold so keep baseline cooling, peak headroom is zero so no grid charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top hours; overcooling none, Building_2 warm so baseline cooling; battery idle per flat_24h, DHW idle, follow baseline and strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours, so battery idles; cooling follows baseline since no building is overcooled beyond 0.5 C; DHW stays at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day so battery idle; Building_1 and 2 at baseline cooling; Building_3 uses its small strategy discharge to shave the district peak.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top-price hours, so battery idle; cooling near baseline since rooms within band; Building 1 is 1.9C below setpoint but cooling is baseline-limited, no trim needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day so battery idle; Building_1 and 2 overcooled? No, Building_1 is 2.3C below setpoint so cooling trimmed; peak limiter active, district load near target.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, so battery idle; Building_1 and 2 are cold/warm within band, keep baseline cooling; Building_3 slightly cool so keep baseline; no DHW.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, so batteries idle; Building_1 is 2.1C below setpoint so trim cooling slightly; others hold baseline.","status":"ok"},{"clamps":[{"applied":0.1638,"point":"Building_1.cooling","reason":"indoor 23.2 C is more than 0.5 C below the setpoint 24.7 C, trim held at 0.055","requested":0.2,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day with no top-price hours, so batteries idle; Building_1 is 1.42C below setpoint so cooling trimmed slightly deeper, others at baseline.","status":"clamped"},{"clamps":[{"applied":0.1317,"point":"Building_1.cooling","reason":"indoor 23.4 C is more than 0.5 C below the setpoint 24.6 C, trim held at 0.055","requested":0.1868,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day with no top-price hours; batteries idle, cooling baselines kept, Building_1 trim held as overcooled room eases toward setpoint.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours, so batteries idle; cooling follows baseline, Building_1 trim held as room is only 0.85 C above setpoint.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, so batteries idle; Building_1 is 2.09 C below setpoint and occupied, so hold its trim and keep cooling at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries idle; Building_1 is 0.8 C below setpoint but occupied within band, so cooling held at baseline with no trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours, so batteries stay idle; cooling holds baseline since Building_1 is only 1.57C below setpoint with trim held at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours, so batteries idle; Building_1 is 1.6C below setpoint and occupied, so hold its cooling trim at baseline without extra depth.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, no top-price hours, so batteries idle; Building_1 is 1.53C below setpoint so trim cooling slightly, others hold baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours, so batteries idle; Building_1 is 0.98 C below setpoint so cooling trimmed modestly, others held at baseline.","status":"ok"},{"clamps":[{"applied":0.0922,"point":"Building_1.cooling","reason":"indoor 21.4 C is more than 0.5 C below the setpoint 22.2 C, trim held at 0.032","requested":0.124,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day with no top-price hours, so batteries stay idle; cooling follows baseline since Building_1 is only 0.82 C under and Building_2 is above setpoint.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Building_1 is 0.6C below setpoint so trim held at -0.032; batteries idle as price is flat-ish and no top-price hour now; tanks idle.","status":"ok"},{"clamps":[{"applied":0.1478,"point":"Building_1.cooling","reason":"indoor 22.0 C is more than 0.5 C below the setpoint 22.8 C, trim held at 0.033","requested":0.1803,"rule":"trim_hold"}],"fallback":null,"reason":"Hold baseline cooling; B1 is 0.76C below setpoint, trim held at -0.033 is fine; batteries idle as price is not at top and charging is marginal.","status":"clamped"},{"clamps":[{"applied":0.0844,"point":"Building_1.cooling","reason":"indoor 22.4 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.033","requested":0.1169,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 overcooled by 2.08C so trim held; flat-ish prices, store spare solar only, no grid charging, no tank use.","status":"clamped"},{"clamps":[{"applied":0.1477,"point":"Building_1.cooling","reason":"indoor 23.7 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.033","requested":0.18,"rule":"trim_hold"}],"fallback":null,"reason":"Trim held for Building_1 overcooling; battery idle-ish, store spare solar, price flat-ish so no grid charging; tanks stay at 0.","status":"clamped"},{"clamps":[{"applied":0.2171,"point":"Building_1.cooling","reason":"indoor 23.8 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.033","requested":0.25,"rule":"trim_hold"}],"fallback":null,"reason":"Overcooled Building_1 trim held; price flat-ish now, not top; store spare solar only; no grid charging, tanks idle, cooling near baseline.","status":"clamped"},{"clamps":[{"applied":0.32,"point":"Building_1.cooling","reason":"indoor 23.9 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.033","requested":0.33,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 is overcooled 0.57C below setpoint, so trim cooling slightly; batteries held per strategy since no top-price hour now and grid charging is cheap-hour only.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Building_1 overcooled 0.83C below setpoint, so trim cooling; hold batteries near strategy since peak headroom is zero and prices nearly flat.","status":"ok"},{"clamps":[{"applied":0.4986,"point":"Building_1.cooling","reason":"indoor 23.5 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.060","requested":0.5583,"rule":"trim_hold"}],"fallback":null,"reason":"Hold batteries and use baseline cooling; Building 1 is overcooled so a small trim is held, no top-price hour now, DHW idle.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Building_1 is overcooled so its cooling is trimmed deeper; the other buildings and batteries hold baseline since prices are not at the top and charging is not worthwhile now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is cold and below its comfort band, so its trim ends; Building_3 gets a small overcool trim; batteries and tanks hold because peak headroom is near zero.","status":"ok","trim_ends":[{"building":"Building_1","reason":"room below comfort band, end held trim"}]},{"clamps":[],"fallback":null,"reason":"Holding baselines: no top-price hour now and batteries hold only tiny usable charge. Building_3 is cold and below its comfort band, so its cooling trim is ended.","status":"ok","trim_ends":[{"building":"Building_3","reason":"indoor below comfort band, ending cooling trim"}]},{"clamps":[],"fallback":null,"reason":"Cool at baseline since rooms are near setpoint; no trim. Battery idle: grid charging is not useful now, top price hours ahead and usable charge is tiny; tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Price is low and top-price hours are ahead; battery soc is near floor so charge is tiny, and baseline cooling is kept since all rooms are within band.","status":"ok"},{"clamps":[{"applied":0.2848,"point":"Building_1.cooling","reason":"indoor 22.2 C is near the bottom of the comfort band, cooling held at the baseline","requested":0.285,"rule":"comfort"}],"fallback":null,"reason":"Buildings 1 and 3 are overcooled-free (indoor below setpoint by ~2C); trim is held at 0 since no trim exists yet; prices are not top, batteries hold, tanks idle.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Building_1 is overcooled but its comfort band edge rule holds cooling at baseline; batteries idle as price is not top and charging is marginal; hold baselines.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hour 23 is low-price with no top-price hours now; hold batteries, trim overcooled Building_1 slightly, keep the others at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 are overcooled, so cooling is trimmed; small battery charging in the cheap hour builds toward the 16-18h top price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Buildings 1 and 3 are slightly warm so baseline cooling holds; batteries idle per strategy since price is low and not top, and no grid charging needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hour 2 is a low-price hour with grid charging allowed, so I store a small amount in each battery; cooling stays at baseline since rooms are near setpoint.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is overcooled by 1.66C, so trim cooling; hold batteries at strategy charge since grid charging is ok and price is low-cost hour.","status":"ok"},{"clamps":[{"applied":0.1047,"point":"Building_1.cooling","reason":"indoor 21.5 C is more than 0.5 C below the setpoint 22.2 C, trim held at 0.100","requested":0.2047,"rule":"trim_hold"}],"fallback":null,"reason":"Building 1 is overcooled 0.74C below setpoint so trim held at -0.1; follow strategy battery charging in cheap hour, no top price now.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Cheap, low-carbon hour before the top-price window: charge batteries at 0.15, trim overcooled Building_3 to zero cooling, and ease Building_1 cooling to its held trim.","status":"ok"},{"clamps":[{"applied":0.0943,"point":"Building_1.cooling","reason":"indoor 22.2 C is within 0.5 C of the setpoint 22.2 C, trim eases off from 0.080 by at most 0.02 per hour","requested":0.1543,"rule":"trim_hold"}],"fallback":null,"reason":"Cheap hour before top-price hours 10-12; keep strategy charging, trim cooling only where overcooled, no DHW.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Building 1 is slightly overcooled, so trim cooling a little; battery charges gently in this cheap hour per strategy, and no tank charging.","status":"ok"},{"clamps":[{"applied":0.1581,"point":"Building_1.cooling","reason":"indoor 22.2 C is within 0.5 C of the setpoint 22.3 C, trim eases off from 0.050 by at most 0.02 per hour","requested":0.1885,"rule":"trim_hold"}],"fallback":null,"reason":"Trim Building_1 cooling slightly, Building_2 cooling held at baseline, and follow strategy battery charging in cheap clean hours; no tank use.","status":"clamped"},{"clamps":[{"applied":0.2571,"point":"Building_1.cooling","reason":"indoor 21.8 C is within 0.5 C of the setpoint 22.2 C, trim eases off from 0.030 by at most 0.02 per hour","requested":0.2675,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 slightly overcooled so trim held; batteries follow strategy, price not top now, charging modestly; tanks idle.","status":"clamped"},{"clamps":[{"applied":0.22,"point":"Building_1.cooling","reason":"indoor 21.1 C is more than 0.5 C below the setpoint 23.3 C, trim held at 0.010","requested":0.2304,"rule":"trim_hold"}],"fallback":null,"reason":"Follow strategy battery charge at low price; trim Building_2 cooling for overcooling; keep Building_1 at baseline since it is cool; Building_3 unoccupied.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Building_1 is overcooled 2 C below setpoint so trim cooling deeper within limits; batteries charge gently in cheap hours per strategy; no top price now, tanks idle.","status":"ok"},{"clamps":[{"applied":0.1534,"point":"Building_1.cooling","reason":"indoor 23.4 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.108","requested":0.262,"rule":"trim_hold"}],"fallback":null,"reason":"Trim cooling modestly in overcooled occupied Building_1, hold battery charge near strategy values, no tank charging, keep load under peak target.","status":"clamped"},{"clamps":[{"applied":0.2457,"point":"Building_1.cooling","reason":"indoor 24.0 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.108 by at most 0.02 per hour","requested":0.3338,"rule":"trim_hold"}],"fallback":null,"reason":"Top price not active now; hold battery per strategy, let baseline cooling run, trim held for Building_1 overcooled, no DHW.","status":"clamped"},{"clamps":[{"applied":0.3391,"point":"Building_1.cooling","reason":"indoor 23.9 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.088","requested":0.4272,"rule":"trim_hold"}],"fallback":null,"reason":"Holding baseline cooling and near-full batteries; Building_3 gently charges its battery in this cheap, clean hour ahead of the top-price hours.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Peak headroom is zero and price is not top now; Building_1 overcooled slightly, trim held. Battery follows strategy shaving peak; no grid charging at this load.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim overcooled occupied rooms 1 and 3 toward setpoint, hold batteries to discharge into the top-price hours as the strategy indicates, and leave Building 2 at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Top-price hour: discharge batteries per strategy, hold cooling trims as held, leave tanks idle and no grid charging.","status":"ok"},{"clamps":[{"applied":0.4204,"point":"Building_1.cooling","reason":"indoor 21.9 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.5207,"rule":"trim_hold"},{"applied":0.4028,"point":"Building_3.cooling","reason":"indoor 22.6 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.5031,"rule":"trim_hold"}],"fallback":null,"reason":"Top-price hour: discharge batteries at strategy levels, keep held cooling trims, leave tanks idle; grid charging is not allowed.","status":"clamped"},{"clamps":[{"applied":0.4075,"point":"Building_1.cooling","reason":"indoor 22.4 C is near the bottom of the comfort band, cooling held at the baseline","requested":0.45,"rule":"comfort"},{"applied":0.3819,"point":"Building_3.cooling","reason":"indoor 23.4 C is more than 0.5 C below the setpoint 23.9 C, trim held at 0.100","requested":0.4822,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 is cool and below band so cooling eases above baseline; others hold; batteries idle until top-price hours, dhw stays at 0.","status":"clamped","trim_ends":[{"building":"Building_1","reason":"room below comfort band, ease trim"}]},{"clamps":[],"fallback":null,"reason":"Building_1 and 3 are overcooled slightly, but envelope holds trim; price not top now, batteries idle per strategy; cooling trims kept at baseline, no grid charging at this price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 and Building_3 are overcooled, so cooling is trimmed; batteries and tanks hold per strategy with no top-price hour now.","status":"ok"},{"clamps":[{"applied":0.0879,"point":"Building_1.cooling","reason":"indoor 23.6 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.1876,"rule":"trim_hold"},{"applied":0.3267,"point":"Building_3.cooling","reason":"indoor 22.5 C is more than 0.5 C below the setpoint 23.3 C, trim held at 0.061","requested":0.3879,"rule":"trim_hold"}],"fallback":null,"reason":"Peak limiter is on with no headroom, so no charging; small battery discharges shave load and cooling holds the envelope trims.","status":"clamped"},{"clamps":[{"applied":0.0757,"point":"Building_1.cooling","reason":"indoor 24.2 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.100 by at most 0.02 per hour","requested":0.1554,"rule":"trim_hold"},{"applied":0.1368,"point":"Building_3.cooling","reason":"indoor 22.1 C is more than 0.5 C below the setpoint 23.8 C, trim held at 0.061","requested":0.198,"rule":"trim_hold"}],"fallback":null,"reason":"Hour 23 at low price with no top-price hours now; keep batteries at baseline, trim cooling as envelope allows, and avoid DHW charging.","status":"clamped"},{"clamps":[{"applied":0.2561,"point":"Building_1.cooling","reason":"indoor 24.5 C is near the top of the comfort band, cooling held at the baseline","requested":0.256,"rule":"comfort"},{"applied":0.0194,"point":"Building_3.cooling","reason":"indoor 23.0 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.061","requested":0.081,"rule":"trim_hold"}],"fallback":null,"reason":"Hold batteries near floor, no top price now; cooling near baseline, trims held; no grid charging at mid price; DHW idle.","status":"clamped"},{"clamps":[{"applied":0.0224,"point":"Building_3.cooling","reason":"indoor 24.1 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.061 by at most 0.02 per hour","requested":0.0636,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 and Building_3 are overcooled slightly; hold trims, batteries idle as strategy suggests since price is cheap now and top hours ahead, small SOC so no charge needed.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Hold batteries as strategy says; price is low and not top, so no discharge, and charging is not needed yet. Cooling near baseline, room within band.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is overcooled by 1.24C but trim held at 0 and cooling is near baseline; battery follows strategy charge while grid charging is ok in a cheap hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cheap hour, no top price now; follow strategy battery charge of 0.15 in all buildings, keep cooling at baseline and tanks idle, Building_1 not overcooled.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hour 5 is cheap and clean; charge batteries gently toward top-price hours 11-13 and keep cooling near baseline, no trim as no building is overcooled.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Top price is 10-12h ahead; charge batteries gently now at low price, keep cooling near baseline, no DHW.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hour 7 is cheap, not top price; grid charging is allowed, so follow strategy charging, hold cooling near baseline, and skip DHW.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is 0.85 C overcooled, so its cooling is trimmed slightly; other buildings and batteries hold baseline, since no top-price hour is active.","status":"ok"},{"clamps":[{"applied":0.0517,"point":"Building_1.cooling","reason":"indoor 22.0 C is near the bottom of the comfort band, cooling held at the baseline","requested":0.052,"rule":"comfort"},{"applied":0.017,"point":"Building_1.cooling","reason":"indoor 22.0 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.035","requested":0.0517,"rule":"trim_hold"}],"fallback":null,"reason":"Overcooled Building_1 gets trim held; batteries follow strategy (store solar, price not top); no grid charging, no tank use.","status":"clamped"},{"clamps":[{"applied":0.0773,"point":"Building_1.cooling","reason":"indoor 23.8 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.035","requested":0.112,"rule":"trim_hold"}],"fallback":null,"reason":"Building 1 and 2 top up batteries gently in this cheap, clean hour before top prices at hours 6-8; Building 3 follows its strategy; cooling kept at baseline or held trim.","status":"clamped"},{"clamps":[{"applied":0.15,"point":"Building_1.cooling","reason":"indoor 23.9 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.035","requested":0.1847,"rule":"trim_hold"}],"fallback":null,"reason":"Holding all batteries and tanks at baseline; Building_1 trim is held at its envelope limit while the room is 0.53 C below setpoint, and no price or peak trigger applies.","status":"clamped"},{"clamps":[{"applied":0.2361,"point":"Building_1.cooling","reason":"indoor 23.9 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.035","requested":0.2708,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 is overcooled so its held trim is kept; batteries and tanks hold since no top-price hour is now and the peak headroom is ample.","status":"clamped"},{"clamps":[{"applied":0.3069,"point":"Building_1.cooling","reason":"indoor 23.4 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.035","requested":0.31,"rule":"trim_hold"}],"fallback":null,"reason":"Hold batteries: price not at top, next top hours ahead; trim B1 cooling slightly for overcooling, others follow baseline.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Building 1 is overcooled by 1.1 C so its cooling is trimmed deeper; Building 3 charges per strategy before the top-price hours; the rest keep baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled occupied Building_1 trimmed cooling; all batteries charge gently ahead of the top-price hours 1-3 using strategy values; tanks stay idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Top-price hour: discharge batteries evenly over remaining top-price hours per strategy; B1 cooling trimmed slightly for overcooling; no grid charging.","status":"ok"},{"clamps":[{"applied":0.6148,"point":"Building_1.cooling","reason":"indoor 22.7 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.079","requested":0.6938,"rule":"trim_hold"}],"fallback":null,"reason":"Battery discharges on top-price hours per strategy; B1 cooling held at trim, others at baseline to stay within comfort and peak limits.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Building_1 is below its comfort band so its trim ends and cooling returns to baseline; batteries discharge on the top-price hours per strategy.","status":"ok","trim_ends":[{"building":"Building_1","reason":"indoor below comfort band, end trim"}]},{"clamps":[],"fallback":null,"reason":"Building_1 and Building_3 are cool-side near or beyond band edges, so cooling stays at baseline; batteries and tanks hold per strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is overcooled 2.7C below setpoint; trim cooling modestly and hold batteries idle as prices are not top now.","status":"ok"},{"clamps":[{"applied":0.2472,"point":"Building_1.cooling","reason":"indoor 22.4 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.068","requested":0.25,"rule":"trim_hold"}],"fallback":null,"reason":"Hold batteries near strategy; B1 overcooled 2.07C below setpoint so trim cooling slightly deeper; no top price now, district load below target.","status":"clamped"},{"clamps":[{"applied":0.2287,"point":"Building_1.cooling","reason":"indoor 22.5 C is near the bottom of the comfort band, cooling held at the baseline","requested":0.229,"rule":"comfort"},{"applied":0.1612,"point":"Building_1.cooling","reason":"indoor 22.5 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.068","requested":0.2287,"rule":"trim_hold"},{"applied":0.6266,"point":"Building_3.cooling","reason":"indoor 22.0 C is near the bottom of the comfort band, cooling held at the baseline","requested":0.627,"rule":"comfort"}],"fallback":null,"reason":"Hold batteries as strategy suggests; trim cooling in overcooled occupied Building_1 by holding trim; no tank charging; price not top now.","status":"clamped"},{"clamps":[{"applied":0.1062,"point":"Building_1.cooling","reason":"indoor 23.2 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.068","requested":0.1737,"rule":"trim_hold"}],"fallback":null,"reason":"Peak headroom is zero, so I follow the peak-shaving battery discharge, keep cooling at baseline and hold DHW at zero.","status":"clamped"},{"clamps":[{"applied":0.129,"point":"Building_3.cooling","reason":"indoor 20.8 C is near the bottom of the comfort band, cooling held at the baseline","requested":0.27,"rule":"comfort"}],"fallback":null,"reason":"Building_3 is overcooled and below its comfort band, so cooling is raised; batteries hold per strategy until the top-price hours 16-18.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Buildings 1 and 3 are overcooled-free (within band), batteries near floor and price not top; hold baseline cooling and idle batteries and tanks this hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Buildings 1 and 2 are near setpoint so baseline cooling holds; batteries idle as strategy says, price is low and not top-price, no clear reason to differ.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hour 3 is cheap and clean; charge batteries gently toward the top-price window, keep cooling at baseline since rooms are not overcooled, no DHW.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 overcooled 1.44C below setpoint so trim cooling; hold battery charge at strategy level in cheap hour, no tank charging, no top-price discharge now.","status":"ok"},{"clamps":[{"applied":0.0782,"point":"Building_1.cooling","reason":"indoor 21.6 C is more than 0.5 C below the setpoint 22.2 C, trim held at 0.052","requested":0.1,"rule":"trim_hold"}],"fallback":null,"reason":"Trim cooling for overcooled Building_1 per envelope; keep strategy battery charging in cheap hour; no tank charging; grid charging allowed.","status":"clamped"},{"clamps":[{"applied":0.0878,"point":"Building_1.cooling","reason":"indoor 22.0 C is within 0.5 C of the setpoint 22.2 C, trim eases off from 0.052 by at most 0.02 per hour","requested":0.1194,"rule":"trim_hold"}],"fallback":null,"reason":"Hour 6 is cheap and not top-price; charge batteries gently per strategy, keep cooling near baseline, and trim B1 cooling as held.","status":"clamped"},{"clamps":[{"applied":0.1134,"point":"Building_1.cooling","reason":"indoor 22.0 C is within 0.5 C of the setpoint 22.2 C, trim eases off from 0.032 by at most 0.02 per hour","requested":0.125,"rule":"trim_hold"}],"fallback":null,"reason":"Price is low and top-price hours are 9-11 ahead; charge batteries gently per strategy, cooling near baseline with Building_1 trim held, no DHW.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Hold batteries: price is low now and not top; B1 mildly cooled, B2 is warm so cooling kept at baseline, DHW idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Rooms are within comfort bands and no top-price hour is active, so I keep baseline cooling and hold the batteries as strategy suggests.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 2.63C below setpoint and occupied, so it gets a cooling trim; batteries follow strategy, charging cheap-hour spare solar, no tank charging.","status":"ok"},{"clamps":[{"applied":0.0672,"point":"Building_1.cooling","reason":"indoor 24.2 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.066 by at most 0.02 per hour","requested":0.1131,"rule":"trim_hold"}],"fallback":null,"reason":"Store spare solar in batteries, no grid charging at this non-top price; hold tanks idle; keep cooling near baseline with small trim in Building_1.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Hold cooling near baseline, store spare solar, no grid charging at this low price; Building_1 trim eases per envelope; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Holding baseline cooling since no room is overcooled; charging B2 and B3 batteries gently in this cheap, clean hour before the top-price hours at 3-5.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Holding baseline cooling since no room is overcooled; battery follows the strategy, with Building_3 gently charging in the cheap hour ahead of the top-price hours.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cheap low-carbon hour before top-price hours: follow strategy battery charging, keep baseline cooling since trims are negligible, and leave DHW idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled occupied rooms 1 and 3 trimmed cooling; battery discharges over the top-price hours per strategy; building 2 unoccupied, cooling kept at baseline.","status":"ok"},{"clamps":[{"applied":0.5568,"point":"Building_1.cooling","reason":"indoor 23.2 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.061","requested":0.6182,"rule":"trim_hold"},{"applied":0.5384,"point":"Building_3.cooling","reason":"indoor 23.0 C is more than 0.5 C below the setpoint 23.9 C, trim held at 0.084","requested":0.6226,"rule":"trim_hold"}],"fallback":null,"reason":"Top-price hour: discharge batteries per strategy, hold cooling at baseline with held trims, no grid charging or tank use.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Overcooled occupied rooms get deeper cooling trims, batteries follow the strategy discharge in the top-price hours, and tanks stay idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cooling trimmed for overcooled Building_1 and Building_3 (occupied, below setpoint); Building_2 is warm and in band, so baseline; batteries and tanks held idle.","status":"ok"},{"clamps":[{"applied":0.3078,"point":"Building_3.cooling","reason":"indoor 23.2 C is more than 0.5 C below the setpoint 23.9 C, trim held at 0.086","requested":0.394,"rule":"trim_hold"}],"fallback":null,"reason":"No top-price hour now and batteries are near floor, so they stay idle; trim cooling only where overcooled and hold baseline elsewhere.","status":"clamped"},{"clamps":[{"applied":0.2625,"point":"Building_1.cooling","reason":"indoor 23.3 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.3629,"rule":"trim_hold"},{"applied":0.2624,"point":"Building_3.cooling","reason":"indoor 23.3 C is more than 0.5 C below the setpoint 23.9 C, trim held at 0.086","requested":0.3486,"rule":"trim_hold"}],"fallback":null,"reason":"Keep baseline cooling with held trims, batteries idle as strategy says, no top price now and no cheap charge window yet; tanks stay at zero.","status":"clamped"},{"clamps":[{"applied":0.1766,"point":"Building_1.cooling","reason":"indoor 23.3 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.263,"rule":"trim_hold"}],"fallback":null,"reason":"Hold batteries as strategy suggests; trim cooling for overcooled Buildings 1 and 3 per held trims; no DHW; price not top now.","status":"clamped"},{"clamps":[{"applied":0.1106,"point":"Building_1.cooling","reason":"indoor 23.8 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.211,"rule":"trim_hold"},{"applied":0.2576,"point":"Building_3.cooling","reason":"indoor 23.3 C is more than 0.5 C below the setpoint 23.9 C, trim held at 0.086","requested":0.3435,"rule":"trim_hold"}],"fallback":null,"reason":"Hold batteries as strategy suggests; top price hours ahead at 17-19, cooling trims held, B1 and B3 slightly overcooled so ease cooling a bit.","status":"clamped"},{"clamps":[{"applied":0.085,"point":"Building_1.cooling","reason":"indoor 24.4 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.100 by at most 0.02 per hour","requested":0.12,"rule":"trim_hold"},{"applied":0.0489,"point":"Building_3.cooling","reason":"indoor 23.3 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.086","requested":0.105,"rule":"trim_hold"}],"fallback":null,"reason":"Trim cooling in overcooled occupied rooms per envelope; hold batteries (no top price now, grid charging at low price is marginal); tanks idle.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Off-peak hour: small grid charge on all three batteries ahead of top-price hours 15-17, differing from the hold strategy; cooling and tanks kept at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold baseline cooling, cut none since rooms are near setpoint; charge batteries gently in cheap hour per strategy, no tank use, no end trims.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cheap, clean hour before top-price block at 13-15h; charge batteries gently, keep cooling near baseline, no DHW, trims held.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 0.96C below setpoint and occupied, so trim cooling modestly; keep batteries at strategy charge in cheap hour before the 12-14h top price.","status":"ok"},{"clamps":[{"applied":0.0873,"point":"Building_1.cooling","reason":"indoor 22.1 C is within 0.5 C of the setpoint 22.2 C, trim eases off from 0.055 by at most 0.02 per hour","requested":0.1222,"rule":"trim_hold"}],"fallback":null,"reason":"Charge batteries gently in cheap, clean early hour before top-price window; cooling near baseline with building 1 trim held; no DHW.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Cheap, clean hour before the top-price window: keep the strategy battery charge of 0.15 in each building, hold tanks at 0, and leave cooling at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold baselines on cooling; Building_1 is near setpoint, so no trim; battery follows strategy charging in cheap hour; no tank charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 0.02 C from setpoint, so no trim; batteries follow strategy, cooling at baseline, tank idle, load is under target.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold cooling near baseline; B1 slightly cold so no trim; top price ahead at hours 7-9, so store small charge now per strategy and hold batteries.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is overcooled but the envelope blocks deeper cooling near its band edge, so baseline holds; Building_3 charges per strategy before top-price hours.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cool baselines kept; rooms are within band. Charge Building_3 gently per strategy in this cheap hour before top-price hours; others near full.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are unneeded (rooms near setpoint), battery follows strategy with cheap-hour charging held; tank idle, cooling at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is overcooled so its cooling is trimmed; batteries hold charge for the 3-5h top-price window, with Building 3 charging gently at low price.","status":"ok"},{"clamps":[{"applied":0.1016,"point":"Building_1.cooling","reason":"indoor 25.8 C is more than 0.5 C below the setpoint 26.7 C, trim held at 0.085","requested":0.1867,"rule":"trim_hold"}],"fallback":null,"reason":"Holding B1 cooling trim, batteries near 0.95 for top-price hours 2-4, B3 gentle charge per strategy, no DHW charging.","status":"clamped"},{"clamps":[{"applied":0.1282,"point":"Building_1.cooling","reason":"indoor 26.6 C is within 0.5 C of the setpoint 26.7 C, trim eases off from 0.085 by at most 0.02 per hour","requested":0.1933,"rule":"trim_hold"}],"fallback":null,"reason":"Trims held in comfort band; B1 and B2 batteries near 0.95, B3 takes small solar-backed charge; holding storage for top-price hours 1-3 ahead.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Top-price hour: discharge batteries per strategy_battery, trim overcooled occupied Building_3 slightly, keep tanks idle, no grid charging.","status":"ok"},{"clamps":[{"applied":0.5914,"point":"Building_3.cooling","reason":"indoor 23.3 C is more than 0.5 C below the setpoint 23.9 C, trim held at 0.015","requested":0.6061,"rule":"trim_hold"}],"fallback":null,"reason":"Top price now: discharge batteries evenly over remaining top hours; hold cooling near baseline, keep trims, no grid charging or DHW.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Discharging batteries across top-price hours per strategy; deepening Building_3 cooling trim since it is overcooled and occupied.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Holding batteries since no top-price hour is now and the district is near peak; Building 3 is overcooled so its cooling trim is held at -0.1.","status":"ok"},{"clamps":[{"applied":0.3667,"point":"Building_3.cooling","reason":"indoor 24.0 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.100 by at most 0.02 per hour","requested":0.4471,"rule":"trim_hold"}],"fallback":null,"reason":"Peak headroom is zero and top price is not now; battery discharge per strategy shaves peak, cooling near baseline, no dhw.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Overcooled occupied rooms get trimmed cooling per the envelope; batteries follow strategy_battery to shave the peak, with Building_2 left at baseline.","status":"ok"},{"clamps":[{"applied":0.1968,"point":"Building_3.cooling","reason":"indoor 23.3 C is more than 0.5 C below the setpoint 24.1 C, trim held at 0.080","requested":0.25,"rule":"trim_hold"}],"fallback":null,"reason":"Hold batteries (price not top, low usable charge); trim cooling mildly where overcooled, hold tanks at 0 and keep baseline cooling elsewhere.","status":"clamped"},{"clamps":[{"applied":0.1376,"point":"Building_1.cooling","reason":"indoor 23.9 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.072","requested":0.2094,"rule":"trim_hold"},{"applied":0.1691,"point":"Building_3.cooling","reason":"indoor 23.7 C is within 0.5 C of the setpoint 23.9 C, trim eases off from 0.080 by at most 0.02 per hour","requested":0.2295,"rule":"trim_hold"}],"fallback":null,"reason":"Trims are held in code and rooms are near setpoint, so baseline cooling stands; batteries hold per strategy since no top-price hour is now.","status":"clamped"},{"clamps":[{"applied":0.1113,"point":"Building_1.cooling","reason":"indoor 24.4 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.072 by at most 0.02 per hour","requested":0.1631,"rule":"trim_hold"},{"applied":0.0578,"point":"Building_3.cooling","reason":"indoor 23.7 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.060","requested":0.1182,"rule":"trim_hold"}],"fallback":null,"reason":"Cheap, low-carbon hour before the 16-18h top price: charge all three batteries at 0.15, keep cooling trims and tanks at baseline.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Overcooled Building_1 and Building_3 trims held; battery charging in cheap hour per strategy, cooling kept near baseline, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling is absent (all rooms within 0.7C of setpoint); follow strategy battery charging in cheap hour, cooling at baseline, no DHW.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cheap hour, no top price now; keep strategy battery charge, cooling at baseline since B1 is 0.63C below setpoint only mildly, hold DHW at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling trim not needed (B1 0.73 below setpoint, trim held 0); battery charging is cheap and clean, so keep strategy charge; DHW idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling none; B1 slightly under setpoint so keep baseline cooling; batteries follow strategy charge in cheap hour, tanks idle, B2/B3 as strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is overcooled 0.92C below setpoint, so trim cooling; top price is 10-12h ahead, so keep the battery plan and follow strategy_battery.","status":"ok"},{"clamps":[{"applied":0.1154,"point":"Building_1.cooling","reason":"indoor 22.1 C is within 0.5 C of the setpoint 22.2 C, trim eases off from 0.032 by at most 0.02 per hour","requested":0.127,"rule":"trim_hold"}],"fallback":null,"reason":"Overcooling trim held; top price is 9 hours ahead, so charge modestly now on cheap clean hours and keep dhw idle.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Trim held at zero, Building_1 and 2 near setpoint; top price hours ahead, so hold batteries; Building_3 follows strategy, dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 0.56C under setpoint, so light trim; batteries follow strategy; headroom zero so no charging; top price not now.","status":"ok"},{"clamps":[{"applied":0.0907,"point":"Building_1.cooling","reason":"indoor 22.4 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.030","requested":0.1211,"rule":"trim_hold"}],"fallback":null,"reason":"Building_2 is overcooled? No: it is 1.87C warm, so keep baseline cooling; hold batteries near strategy, no DHW, no trims since rooms are not overcooled.","status":"clamped"},{"clamps":[{"applied":0.1612,"point":"Building_1.cooling","reason":"indoor 24.0 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.030 by at most 0.02 per hour","requested":0.172,"rule":"trim_hold"}],"fallback":null,"reason":"Trim Building_1 cooling for overcooling, hold batteries per strategy, keep tanks idle; top-price hours are ahead so charge gently and avoid grid peaks.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Indoor temperatures are within band and prices are not at the top, so baseline cooling holds and the cheap-hour battery charge from the strategy is kept.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Top price is 3 hours ahead; hold batteries, cool at baseline, charge gently now in cheap hour per strategy, no DHW, no trim since no overcooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim Building_1 cooling for overcooling; gently charge Buildings 2 and 3 batteries in this cheap, clean hour before top-price hours.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cheap hour before top-price run: keep strategy charging, hold Building 1 near 0.95 SOC, leave cooling at baseline and tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Discharging batteries over the remaining top-price hours per strategy; B1 overcooled 1.4C below setpoint so cooling trimmed slightly; tanks idle.","status":"ok"},{"clamps":[{"applied":0.5194,"point":"Building_1.cooling","reason":"indoor 23.4 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.084","requested":0.6029,"rule":"trim_hold"}],"fallback":null,"reason":"Top-price hour: discharge batteries over the two top hours per strategy; trim overcooled Building_3 slightly; no grid charging or tank use.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Top-price hour with no later top hours, so batteries discharge their usable charge; room trims deepened for overcooled occupied rooms.","status":"ok"},{"clamps":[{"applied":0.5236,"point":"Building_3.cooling","reason":"indoor 22.9 C is more than 0.5 C below the setpoint 23.9 C, trim held at 0.100","requested":0.6239,"rule":"trim_hold"}],"fallback":null,"reason":"Cool Building_1 deeper for overcooling, discharge Building_3 battery over the top-price hours per strategy, hold others at baseline.","status":"clamped"},{"clamps":[{"applied":0.2816,"point":"Building_1.cooling","reason":"indoor 23.1 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.3812,"rule":"trim_hold"},{"applied":0.3738,"point":"Building_3.cooling","reason":"indoor 22.6 C is more than 0.5 C below the setpoint 23.9 C, trim held at 0.100","requested":0.4741,"rule":"trim_hold"}],"fallback":null,"reason":"Holding overcooled trims and battery discharge at strategy levels for top-price hours; no grid charging or tank use.","status":"clamped"},{"clamps":[{"applied":0.1934,"point":"Building_1.cooling","reason":"indoor 23.5 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.293,"rule":"trim_hold"},{"applied":0.265,"point":"Building_3.cooling","reason":"indoor 22.9 C is more than 0.5 C below the setpoint 23.9 C, trim held at 0.100","requested":0.3653,"rule":"trim_hold"}],"fallback":null,"reason":"Top-price hour: discharge stored battery energy as per strategy, keep held cooling trims, leave tanks idle and avoid grid charging.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Final top-price hour: discharge all usable battery charge; keep held cooling trims; tank idle; no grid charging.","status":"ok"},{"clamps":[{"applied":0.1277,"point":"Building_1.cooling","reason":"indoor 23.2 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.080","requested":0.2074,"rule":"trim_hold"},{"applied":0.1372,"point":"Building_3.cooling","reason":"indoor 23.7 C is within 0.5 C of the setpoint 23.9 C, trim eases off from 0.100 by at most 0.02 per hour","requested":0.2175,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day with no top-price hours, so batteries idle; buildings near setpoint, hold baseline cooling and no DHW, trims held.","status":"clamped"},{"clamps":[{"applied":0.0932,"point":"Building_1.cooling","reason":"indoor 24.1 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.080 by at most 0.02 per hour","requested":0.1529,"rule":"trim_hold"},{"applied":0.2607,"point":"Building_3.cooling","reason":"indoor 24.0 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.080 by at most 0.02 per hour","requested":0.321,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day, so batteries idle; cooling follows baseline with held trims, Building_1 and Building_3 are overcooled slightly so keep trim held.","status":"clamped"},{"clamps":[{"applied":0.0601,"point":"Building_3.cooling","reason":"indoor 23.3 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.060","requested":0.1204,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day, batteries idle per strategy; Building_1 and Building_3 are overcooled slightly, so trims held at baseline with null for cooling.","status":"clamped"},{"clamps":[{"applied":0.0419,"point":"Building_3.cooling","reason":"indoor 24.2 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.060 by at most 0.02 per hour","requested":0.0822,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day with no top-price hours, so batteries stay idle; cooling and tanks keep baseline with held trims.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Flat 24h price, no top hours, so batteries idle; buildings near setpoint so cooling stays at baseline and dhw stays at zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries near floor and no top-price hours; hold batteries, keep baseline cooling since no building is overcooled.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries near floor with tiny usable charge; hold batteries and tank, keep baseline cooling since no band edge is breached.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, no top-price hours; hold batteries idle, keep cooling at baseline, no DHW, no trims since rooms are not overcooled.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, so batteries stay idle; Building_1 is 0.59 C below setpoint so trim cooling slightly, others keep baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, no top-price hours, so batteries idle; Building_1 is 0.02C above setpoint so no extra trim; Building_2 is hot, keep baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, no top-price hours; batteries idle per strategy, cooling at baseline since rooms are not overcooled.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries idle; Building_1 overcooled 2.47C below setpoint so trim cooling modestly; others hold baseline.","status":"ok"},{"clamps":[{"applied":0.1459,"point":"Building_1.cooling","reason":"indoor 23.7 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.040","requested":0.186,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day, batteries near floor with little usable charge; hold batteries, keep cooling at baseline, trims held, no DHW.","status":"clamped"},{"clamps":[{"applied":0.1958,"point":"Building_1.cooling","reason":"indoor 23.9 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.040","requested":0.236,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day, batteries idle; trim Building_1 held and cooling near baseline; no DHW; charge only spare solar at low carbon.","status":"clamped"},{"clamps":[{"applied":0.5587,"point":"Building_1.cooling","reason":"indoor 24.2 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.040 by at most 0.02 per hour","requested":0.5788,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day, battery idle; Building_1 overcooled 0.22C so trim held; district load at peak target so no added cooling or charging.","status":"clamped"},{"clamps":[{"applied":0.4407,"point":"Building_1.cooling","reason":"indoor 21.8 C is more than 0.5 C below the setpoint 25.0 C, trim held at 0.020","requested":0.4608,"rule":"trim_hold"}],"fallback":null,"reason":"Flat-price day so batteries stay idle; Building_1 is cool and below its band, so baseline cooling is kept for the held trim, and other devices hold baseline.","status":"clamped"},{"clamps":[{"applied":0.3829,"point":"Building_1.cooling","reason":"indoor 22.9 C is more than 0.5 C below the setpoint 25.6 C, trim held at 0.020","requested":0.403,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day, so batteries idle; Building_1 is overcooled 2.7C below setpoint, so hold the trim and keep cooling near baseline with no extra trim.","status":"clamped"},{"clamps":[{"applied":0.2042,"point":"Building_1.cooling","reason":"indoor 23.4 C is more than 0.5 C below the setpoint 27.2 C, trim held at 0.020","requested":0.2243,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day so batteries idle; Building_1 overcooled 3.8C below setpoint, trim held at -0.02 so keep baseline cooling; no DHW charging.","status":"clamped"},{"clamps":[{"applied":0.2761,"point":"Building_1.cooling","reason":"indoor 25.0 C is more than 0.5 C below the setpoint 27.2 C, trim held at 0.020","requested":0.2962,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price, peak headroom tiny (0.09 kWh); keep cooling near baseline, trim held, battery idle, tanks idle to avoid raising district peak.","status":"clamped"},{"clamps":[{"applied":0.3637,"point":"Building_1.cooling","reason":"indoor 25.1 C is more than 0.5 C below the setpoint 27.2 C, trim held at 0.020","requested":0.37,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day, batteries idle; Building_1 overcooled 2.1C so trim held deeper at -0.02 eased, cooling near baseline; no DHW charging.","status":"clamped"},{"clamps":[{"applied":0.2617,"point":"Building_1.cooling","reason":"indoor 24.6 C is more than 0.5 C below the setpoint 27.2 C, trim held at 0.020","requested":0.2818,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day so batteries idle; Building_1 overcooled 2.65 C so trim held at -0.02, keep baseline cooling; peak headroom ok, dhw idle.","status":"clamped"},{"clamps":[{"applied":0.1853,"point":"Building_1.cooling","reason":"indoor 25.0 C is more than 0.5 C below the setpoint 27.2 C, trim held at 0.020","requested":0.2054,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price and no top-price hours, so batteries stay idle; indoor temperatures are near band edges, so cooling stays at baseline.","status":"clamped"},{"clamps":[{"applied":0.1885,"point":"Building_1.cooling","reason":"indoor 25.2 C is more than 0.5 C below the setpoint 27.2 C, trim held at 0.020","requested":0.2086,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day with no top-price hours, so batteries stay idle; Building_1 and Building_3 are near comfort band edges, so baseline cooling is kept.","status":"clamped"},{"clamps":[{"applied":0.1139,"point":"Building_1.cooling","reason":"indoor 24.9 C is more than 0.5 C below the setpoint 27.2 C, trim held at 0.020","requested":0.134,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day, so batteries idle; cooling baselines kept, Building_1 trim held at -0.02 since it is near setpoint, DHW idle.","status":"clamped"},{"clamps":[{"applied":0.0779,"point":"Building_1.cooling","reason":"indoor 25.4 C is more than 0.5 C below the setpoint 27.2 C, trim held at 0.020","requested":0.098,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day with no top-price hours, so batteries stay idle; cooling follows baseline with Building_1 trim held as envelope allows.","status":"clamped"},{"clamps":[{"applied":0.0542,"point":"Building_1.cooling","reason":"indoor 25.7 C is more than 0.5 C below the setpoint 27.2 C, trim held at 0.020","requested":0.0743,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day with no top-price hours; batteries idle as strategy suggests, cooling at baseline with trims held, tanks idle.","status":"clamped"},{"clamps":[{"applied":0.0376,"point":"Building_1.cooling","reason":"indoor 26.0 C is more than 0.5 C below the setpoint 27.2 C, trim held at 0.020","requested":0.054,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day, so batteries stay idle; Building_1 is overcooled so trim held at -0.02 with cooling near baseline; others follow baseline.","status":"clamped"},{"clamps":[{"applied":0.0247,"point":"Building_1.cooling","reason":"indoor 26.2 C is more than 0.5 C below the setpoint 27.2 C, trim held at 0.020","requested":0.0448,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day with no top-price hours; batteries hold, Building_1 overcooled 0.98 C so trim held at -0.02, others at baseline cooling.","status":"clamped"},{"clamps":[{"applied":0.0151,"point":"Building_1.cooling","reason":"indoor 26.4 C is more than 0.5 C below the setpoint 27.2 C, trim held at 0.020","requested":0.0352,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day, no top-price hours; batteries idle per strategy, cooling trims held near baseline since rooms are within 0.5C of setpoint.","status":"clamped"},{"clamps":[{"applied":0.0066,"point":"Building_1.cooling","reason":"indoor 26.6 C is more than 0.5 C below the setpoint 27.2 C, trim held at 0.020","requested":0.0267,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day so batteries stay idle; Building_1 is 0.58 C below setpoint so cooling is trimmed per envelope, others hold baseline.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Flat price day, so batteries idle; Building_1 is overcooled so trim cooling 0.02 below baseline, others hold baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours, so batteries idle; Building_1 overcooling is slight, so keep baseline cooling and no trim; tanks stay at zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, no top-price hours; batteries idle, cooling at baseline, Building_2 overcooled trim not needed since unoccupied and warm.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold batteries per strategy (flat price, no top hours); cool buildings near baseline, Building_1 slightly below setpoint so trim stays at zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold batteries near floor, no top price now, keep baseline cooling; Building_2 is 1.5C over setpoint so no trim needed beyond baseline, dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Rooms are near setpoint and not overcooled, prices are flat-low, and no top-price hours are now, so all devices keep baseline and batteries hold.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Price is flat-ish and not top now; hold batteries per strategy, cooling at baseline, Building_1 trim held at zero since not overcooled.","status":"ok"},{"clamps":[{"applied":0.3641,"point":"Building_2.cooling","reason":"indoor 26.7 C is near the top of the comfort band, cooling held at the baseline","requested":0.364,"rule":"comfort"}],"fallback":null,"reason":"Buildings are warm or near setpoint, so cooling stays at baseline; batteries hold since grid charging is cheap now but carbon is high and no top-price discharge is due.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Peak is at target with no headroom, so no charging; Building_3 shaves its small battery discharge and cooling stays at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_2 is over its band so cooling is raised slightly; other buildings hold baseline, batteries idle as strategy suggests with no top-price hour now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold batteries near floor, follow baseline cooling; Building_1 is 0.91 above setpoint so no overcool trim; price not top now, so no discharge or charge.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Buildings 1 and 2 are overcooled by 3.5 C and 3.5 C, but envelope trims are off; keep baseline cooling, idle batteries, tanks at 0; price not top now, grid charging minimal.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Buildings 1 and 2 are far above setpoint so keep baseline cooling; batteries have ~0 usable charge and price is not top, so hold batteries idle and no tank action.","status":"ok"},{"clamps":[],"fallback":null,"reason":"All three rooms are warm, so cooling stays at baseline; batteries hold near floor with low price now and no grid charging yet, to build charge for the 22-24h top-price hours.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cheap hour with grid charging allowed: small battery charge ahead of the 21-23h top-price window; cooling kept at baseline since all rooms are warm.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Rooms are warm, not overcooled, so cooling stays at baseline; batteries and tanks hold since no top-price window is now and usable charge is minimal.","status":"ok"},{"clamps":[],"fallback":null,"reason":"All rooms are too warm, so cooling stays at baseline with no trim; batteries hold since prices are low and no top-price hour is now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Indoor temps are above setpoint so no overcooling trim; batteries near floor with tiny usable charge and price not top, so hold batteries and tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 2 are warm and occupied, so cooling is raised toward comfort; batteries held per strategy since usable charge is minimal and no top-price window is active.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_3 is overcooled about 1.2 C, so cooling is trimmed to 0.01; other buildings and batteries hold baseline since prices are low and carbon is high now.","status":"ok"},{"clamps":[{"applied":0.234,"point":"Building_1.cooling","reason":"indoor 24.9 C is near the top of the comfort band, cooling held at the baseline","requested":0.2,"rule":"comfort"},{"applied":0.1999,"point":"Building_2.cooling","reason":"indoor 26.6 C is near the top of the comfort band, cooling held at the baseline","requested":0.18,"rule":"comfort"}],"fallback":null,"reason":"Buildings 1 and 2 are overcooled, so trim cooling modestly; batteries idle as price is not top; no grid charging, tanks idle.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Cheap hour with grid charging allowed: small battery top-up toward 0.95 before the 14-16h top-price window; cooling kept at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hour 3 is a cheap, low-carbon hour; keep the strategy battery charge small, cooling near baseline, and tank idle, with no trim needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cheap hour before top-price block at 12-14h; follow strategy charge, keep cooling near baseline, no overcooling since rooms are within band and not too cold.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hour 5 is cheap and clean, so charge batteries gently per strategy; Building_1 is slightly cool, so keep baseline cooling and no trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling is absent; Building_1 cooling is at baseline, batteries follow strategy charge in cheap hour, no DHW, price not top now.","status":"ok"},{"clamps":[{"applied":0.3332,"point":"Building_2.cooling","reason":"indoor 26.6 C is near the top of the comfort band, cooling held at the baseline","requested":0.333,"rule":"comfort"}],"fallback":null,"reason":"Overcooling trim cuts B1 cooling; batteries charge gently in cheap hour, no DHW; B2 warm so baseline cooling kept.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Hold batteries as strategy suggests; price not at top now, no cheap-hour charge needed; keep cooling at baseline and tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is overcooled so its cooling is trimmed; batteries 1 and 3 start a small grid charge ahead of the top-price hours 7-9.","status":"ok"},{"clamps":[{"applied":0.0082,"point":"Building_1.cooling","reason":"indoor 22.8 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.078","requested":0.0858,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 is cool near its band edge so cooling stays at baseline; batteries hold except B1 storing spare solar; no top-price hour now.","status":"clamped"},{"clamps":[{"applied":0.084,"point":"Building_1.cooling","reason":"indoor 24.4 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.078 by at most 0.02 per hour","requested":0.1416,"rule":"trim_hold"}],"fallback":null,"reason":"Hold batteries as strategy suggests since price is not top now; cool B1 and B2 near baseline, B3 unoccupied at baseline, keep DHW idle.","status":"clamped"},{"clamps":[{"applied":0.1674,"point":"Building_1.cooling","reason":"indoor 24.3 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.058 by at most 0.02 per hour","requested":0.205,"rule":"trim_hold"}],"fallback":null,"reason":"Hold batteries as strategy says: price not at top now, and top hours ahead; keep cooling near baseline with held trims, no DHW.","status":"clamped"},{"clamps":[{"applied":0.2603,"point":"Building_1.cooling","reason":"indoor 24.2 C is within 0.5 C of the setpoint 24.5 C, trim eases off from 0.038 by at most 0.02 per hour","requested":0.278,"rule":"trim_hold"}],"fallback":null,"reason":"Trim held for overcooled B1; batteries follow strategy; top price is 3h ahead so B1 and B3 charge gently, B2 idle, tanks at 0.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"B1 is overcooled so cooling is trimmed deeper; batteries charge gently in this cheap hour ahead of the top-price hours; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is unoccupied and near setpoint; hold baseline. Battery charging at strategy levels in cheap hour before top prices; no trim needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Top-price hour: discharge batteries per strategy over the remaining top-price hours; cooling and DHW stay at baseline, no comfort trim needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Top price now; discharge batteries per strategy, hold cooling at baseline since rooms are not occupied or only mildly cool; no DHW or grid charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Top-price hour: discharge batteries per strategy over remaining top-price hours; cooling kept at baseline near comfort edges; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trimmed cooling in occupied overcooled rooms 1 and 3 per the trim rule; batteries and tanks held as strategy advises, since no top-price hour is now.","status":"ok"},{"clamps":[{"applied":0.301,"point":"Building_1.cooling","reason":"indoor 21.9 C is more than 0.5 C below the setpoint 23.6 C, trim held at 0.092","requested":0.3928,"rule":"trim_hold"},{"applied":0.1628,"point":"Building_3.cooling","reason":"indoor 23.0 C is more than 0.5 C below the setpoint 23.9 C, trim held at 0.073","requested":0.2363,"rule":"trim_hold"}],"fallback":null,"reason":"Holding batteries and tanks at baseline; Building_1 is overcooled by 1.6 C so its held cooling trim stays in place, and the district is under its peak target.","status":"clamped"},{"clamps":[{"applied":0.0838,"point":"Building_1.cooling","reason":"indoor 21.4 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.092","requested":0.12,"rule":"trim_hold"},{"applied":0.134,"point":"Building_3.cooling","reason":"indoor 23.3 C is more than 0.5 C below the setpoint 23.9 C, trim held at 0.073","requested":0.16,"rule":"trim_hold"}],"fallback":null,"reason":"Overcooled Buildings 1 and 3 get trimmed cooling; batteries held at strategy (price not top, grid charging not cheap enough); DHW idle.","status":"clamped"},{"clamps":[{"applied":0.1202,"point":"Building_3.cooling","reason":"indoor 23.5 C is within 0.5 C of the setpoint 23.9 C, trim eases off from 0.073 by at most 0.02 per hour","requested":0.1737,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 and Building_3 cooling trims held as overcooled rooms ease off; batteries held per strategy, load below peak target.","status":"clamped"},{"clamps":[{"applied":0.1407,"point":"Building_1.cooling","reason":"indoor 22.3 C is near the bottom of the comfort band, cooling held at the baseline","requested":0.141,"rule":"comfort"},{"applied":0.0489,"point":"Building_1.cooling","reason":"indoor 22.3 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.092","requested":0.1407,"rule":"trim_hold"},{"applied":0.1019,"point":"Building_3.cooling","reason":"indoor 23.6 C is within 0.5 C of the setpoint 23.9 C, trim eases off from 0.053 by at most 0.02 per hour","requested":0.135,"rule":"trim_hold"}],"fallback":null,"reason":"Overcooled Building_1 gets deeper trim per envelope; batteries follow strategy, charging modestly in cheap hour before top-price 17-19; tanks idle.","status":"clamped"},{"clamps":[{"applied":0.0109,"point":"Building_1.cooling","reason":"indoor 23.6 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.092","requested":0.103,"rule":"trim_hold"},{"applied":0.0302,"point":"Building_3.cooling","reason":"indoor 23.7 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.034","requested":0.064,"rule":"trim_hold"}],"fallback":null,"reason":"Overcooled rooms in B1 and B3 get trims held; B2 is warm so baseline cooling; batteries charge gently in cheap hour per strategy, grid charging ok.","status":"clamped"},{"clamps":[{"applied":0.0415,"point":"Building_3.cooling","reason":"indoor 24.4 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.034 by at most 0.02 per hour","requested":0.055,"rule":"trim_hold"}],"fallback":null,"reason":"Cheap, clean hour before top-price hours 15-17: charge batteries at 0.15 per hour, keep cooling at baseline since rooms are warm or near setpoint.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Cheap, low-carbon hour before the 14-16h top price: gently charge batteries per strategy and keep cooling at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hour 3 is cheap and clean with top-price hours at 13-15 ahead; charge batteries gently and keep cooling near baseline, no DHW.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 overcooled 1.5C below setpoint: trim cooling deeper; batteries follow strategy, charging in cheap hour before top price at 12-14.","status":"ok"},{"clamps":[{"applied":0.0678,"point":"Building_1.cooling","reason":"indoor 21.5 C is more than 0.5 C below the setpoint 22.2 C, trim held at 0.063","requested":0.1304,"rule":"trim_hold"}],"fallback":null,"reason":"Trim-free cooling near baseline, hold batteries at strategy values since top price is 11+ hours away; no tank charging.","status":"clamped"},{"clamps":[{"applied":0.0721,"point":"Building_1.cooling","reason":"indoor 21.9 C is within 0.5 C of the setpoint 22.2 C, trim eases off from 0.063 by at most 0.02 per hour","requested":0.1147,"rule":"trim_hold"}],"fallback":null,"reason":"Trim B1 cooling by held trim, keep batteries near strategy values; top price hours ahead at 10-12 so hold charge; no tank use.","status":"clamped"},{"clamps":[{"applied":0.0851,"point":"Building_1.cooling","reason":"indoor 21.9 C is within 0.5 C of the setpoint 22.2 C, trim eases off from 0.043 by at most 0.02 per hour","requested":0.1,"rule":"trim_hold"},{"applied":0.0087,"point":"Building_1.battery","reason":"charge would take charge from 0.94 above 0.95","requested":0.03,"rule":"soc"},{"applied":0.0069,"point":"Building_2.battery","reason":"charge would take charge from 0.94 above 0.95","requested":0.03,"rule":"soc"}],"fallback":null,"reason":"Hold cooling near baseline with a small trim in Building_1, store spare solar in batteries, no tank use, and follow strategy_battery in Building_3 at a cheap clean hour.","status":"clamped"},{"clamps":[{"applied":0.1035,"point":"Building_1.cooling","reason":"indoor 21.9 C is within 0.5 C of the setpoint 22.3 C, trim eases off from 0.023 by at most 0.02 per hour","requested":0.1061,"rule":"trim_hold"}],"fallback":null,"reason":"Peak headroom is zero, so I discharge batteries per strategy to shave load; cooling and DHW stay at baseline since no room is overcooled.","status":"clamped"},{"clamps":[{"applied":0.0842,"point":"Building_1.cooling","reason":"indoor 21.7 C is more than 0.5 C below the setpoint 22.8 C, trim held at 0.003","requested":0.0868,"rule":"trim_hold"}],"fallback":null,"reason":"Hour 9 is not top price; hold strategy battery charge, cool baseline, trim easing per envelope, no tank use, charge batteries modestly in cheap hour.","status":"clamped"},{"clamps":[{"applied":0.0243,"point":"Building_1.cooling","reason":"indoor 22.1 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.003","requested":0.0269,"rule":"trim_hold"}],"fallback":null,"reason":"Holding baseline cooling and the strategy battery charge; the cool occupied room in Building_1 is outside its band, so no trim applies.","status":"clamped"},{"clamps":[{"applied":0.0421,"point":"Building_1.cooling","reason":"indoor 23.2 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.003","requested":0.045,"rule":"trim_hold"}],"fallback":null,"reason":"Building 1 is overcooled so trim held; batteries follow strategy, top price hours ahead, charging in cheap hours; tanks idle.","status":"clamped"},{"clamps":[{"applied":0.0696,"point":"Building_3.battery","reason":"charge would take charge from 0.88 above 0.95","requested":0.07,"rule":"soc"}],"fallback":null,"reason":"Building 1 is overcooled, so cooling is trimmed; Buildings 2 and 3 charge batteries in the cheap hours before the price peak.","status":"clamped"},{"clamps":[{"applied":0.0706,"point":"Building_1.cooling","reason":"indoor 24.2 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.039 by at most 0.02 per hour","requested":0.0895,"rule":"trim_hold"},{"applied":0.0692,"point":"Building_2.battery","reason":"charge would take charge from 0.88 above 0.95","requested":0.07,"rule":"soc"},{"applied":0.0389,"point":"Building_3.battery","reason":"charge would take charge from 0.91 above 0.95","requested":0.04,"rule":"soc"}],"fallback":null,"reason":"Holding most batteries near baseline; small grid top-up for Building_2 and Building_3 ahead of the 3-5h top-price hours, no tank charging, cooling at baseline.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Building_1 is overcooled 1.2 C below setpoint, so its cooling is trimmed deeper; batteries hold near 0.95 SOC and no top-price hour is now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"District load is at the peak target, so I follow the strategy battery discharges to shave the peak; comfort is within band and cooling stays at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Top-price hour: discharge batteries evenly over remaining peak hours, trim overcooled occupied Building_1 slightly, keep tanks idle and no grid charging.","status":"ok"},{"clamps":[{"applied":0.1322,"point":"Building_1.cooling","reason":"indoor 23.9 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.015","requested":0.1469,"rule":"trim_hold"}],"fallback":null,"reason":"Top-price hour: follow strategy battery discharges across top hours; keep cooling near baseline, no tank action, no grid charging since grid_charging_ok is false.","status":"clamped"},{"clamps":[{"applied":0.1259,"point":"Building_1.cooling","reason":"indoor 23.9 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.015","requested":0.1406,"rule":"trim_hold"}],"fallback":null,"reason":"Following strategy battery discharge for top-price hours; cooling at baseline since no room is overcooled beyond 0.5 C, and load is under the peak target.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Building_3 is overcooled by 0.93 C, so its cooling is trimmed to 0.077; batteries hold for the 21-23h top-price window and other devices stay at baseline.","status":"ok"},{"clamps":[{"applied":0.0382,"point":"Building_3.cooling","reason":"indoor 23.8 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.043","requested":0.0814,"rule":"trim_hold"}],"fallback":null,"reason":"Hour 20 is not top price and no trim needed; B1 and B3 slightly cool, holding baseline; batteries idle as strategy says, top hours 20-22 ahead.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"B1 is overcooled by 0.66 C so cooling is trimmed to 0.068; B3 follows its held trim; batteries and tanks hold since no top-price hour is now.","status":"ok"},{"clamps":[{"applied":0.0752,"point":"Building_3.cooling","reason":"indoor 24.1 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.023 by at most 0.02 per hour","requested":0.0784,"rule":"trim_hold"}],"fallback":null,"reason":"Buildings near setpoint, no top price now; hold batteries per strategy, cooling at baseline, no tank charging, no trim changes needed.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Hold batteries as strategy says; no top price now, cheap hours ahead. Cooling near baseline, rooms within band, trims held at zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Price is low and not top; charge batteries gently in this cheap hour as strategy suggests, cooling kept at baseline since Building_2 is warm and others near band.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Off-peak and low carbon: charge batteries gently ahead of the 15-17h top-price hours, keep cooling at baseline, and leave the hot water tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cheap low-carbon hour before top-price block at 14-16h; charge batteries gently, keep cooling at baseline, tanks idle, no trim needed as rooms are near setpoint.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hour 3 is cheap and clean with no top price ahead until 13h; keep baseline cooling, charge batteries gently at strategy level, no DHW.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is overcooled 0.95C but not beyond 0.5C band edge trigger; hold baseline cooling, follow strategy battery charging in cheap hours before top price at hour 12.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 0.82 C under setpoint so trim cooling slightly; batteries follow strategy charging in cheap hour, no top price now, peak headroom ample.","status":"ok"},{"clamps":[{"applied":0.1022,"point":"Building_1.cooling","reason":"indoor 21.6 C is more than 0.5 C below the setpoint 22.2 C, trim held at 0.029","requested":0.1308,"rule":"trim_hold"}],"fallback":null,"reason":"Building 1 is overcooled within the held trim, so cooling stays with the envelope; batteries follow strategy charge in this cheap hour, with the tanks left at zero.","status":"clamped"},{"clamps":[{"applied":0.1017,"point":"Building_1.cooling","reason":"indoor 21.8 C is within 0.5 C of the setpoint 22.2 C, trim eases off from 0.029 by at most 0.02 per hour","requested":0.1103,"rule":"trim_hold"}],"fallback":null,"reason":"Batteries already near 0.95 and grid charging is allowed at low price; keep strategy charging, no trims needed as rooms are within band, tanks idle.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Hold cooling near baseline with trim easing; charge batteries gently in cheap hour as strategy suggests since top price is 2-3 hours ahead; no tank use.","status":"ok"},{"clamps":[{"applied":0.0064,"point":"Building_1.battery","reason":"charge would take charge from 0.94 above 0.95","requested":0.01,"rule":"soc"},{"applied":0.0033,"point":"Building_2.battery","reason":"charge would take charge from 0.95 above 0.95","requested":0.01,"rule":"soc"}],"fallback":null,"reason":"Battery charging in cheap hour before top-price hours 7-9; Building_1 overcooled slightly, trim held; no dhw; cooling near baseline elsewhere.","status":"clamped"},{"clamps":[{"applied":0.0,"point":"Building_1.cooling","reason":"indoor 21.7 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.035","requested":0.0,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 is 2.75C overcooled while occupied, so cooling is cut to 0; batteries stay near 0.95 and are held for the top-price hours at 6-8.","status":"clamped"},{"clamps":[{"applied":0.0,"point":"Building_1.cooling","reason":"indoor 23.4 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.035","requested":0.0,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 is overcooled so cooling is cut to zero; other buildings keep baseline, batteries are near full and idle until the top-price hours.","status":"clamped"},{"clamps":[{"applied":0.0444,"point":"Building_1.cooling","reason":"indoor 24.2 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.035 by at most 0.02 per hour","requested":0.0596,"rule":"trim_hold"}],"fallback":null,"reason":"Hold batteries idle at non-top price, keep baseline cooling, trims held; Building_1 overcooled slightly so trim held at -0.015 with no change.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Holding baseline everywhere: no overcooling, battery near full and storing only spare solar, no top-price hour now, district load well below peak target.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Prices low, not top; store spare solar only, keep baselines, no trim since buildings near setpoint, no tank charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Rooms are within 0.5 C of setpoint, so baseline cooling holds; batteries are near full and held for the top-price hours ahead, with a tiny charge in Building_3.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Top-price hour: discharge batteries per strategy_battery, capped at load; no overcooling, so cooling and DHW keep baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 and Building_3 are overcooled, so cooling is trimmed slightly; batteries follow the top-price discharge plan; no grid charging or tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Top-price hour: discharge batteries per strategy, trim overcooled occupied rooms, keep the tanks idle, and hold the district peak target.","status":"ok"},{"clamps":[{"applied":0.0303,"point":"Building_1.cooling","reason":"indoor 24.4 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.100 by at most 0.02 per hour","requested":0.1104,"rule":"trim_hold"},{"applied":0.1526,"point":"Building_3.cooling","reason":"indoor 23.1 C is more than 0.5 C below the setpoint 23.9 C, trim held at 0.029","requested":0.1816,"rule":"trim_hold"}],"fallback":null,"reason":"Holding all batteries per strategy: price is near low and top-price hours are ahead; cooling and tanks stay at baseline with held trims.","status":"clamped"},{"clamps":[{"applied":0.1389,"point":"Building_3.cooling","reason":"indoor 23.5 C is within 0.5 C of the setpoint 23.9 C, trim eases off from 0.029 by at most 0.02 per hour","requested":0.1479,"rule":"trim_hold"}],"fallback":null,"reason":"Not a top-price hour and no overcooling, so I keep baseline cooling and hold batteries idle; the district load stays below the peak target.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Rooms are within comfort bands and no top-price hour is now, so I keep baseline cooling and hold the batteries for the evening peak.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hour 22 at non-top price with headroom 0; cooling held at baseline, battery follows strategy hold, charge none since price not lowest, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 3 is 1.6 C overcooled so its cooling is trimmed to 0.05; batteries hold until cheaper early-morning hours before the 17-19h top-price window.","status":"ok"},{"clamps":[{"applied":0.0,"point":"Building_3.cooling","reason":"indoor 23.4 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.099","requested":0.0466,"rule":"trim_hold"}],"fallback":null,"reason":"Hold batteries near strategy; price not top now, grid charging cheap hours later. Building 2 overcooled-warm so cool more; B1/B3 keep baseline cooling.","status":"clamped"},{"clamps":[{"applied":0.0,"point":"Building_3.cooling","reason":"indoor 24.2 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.099 by at most 0.02 per hour","requested":0.037,"rule":"trim_hold"}],"fallback":null,"reason":"Hold batteries as strategy says; price is low and not top, so no discharge; charge battery 1 and 2 lightly from cheap hours is not needed yet; keep cooling at baseline with no trim.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Hour 2 is off-peak with no top-price hours now; hold batteries per strategy, keep cooling at baseline, and let Building_3's trim ease off.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is 0.7C below setpoint so cooling is trimmed lightly; batteries follow strategy, Building_1 charges gently in a cheap hour; no tank charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 overcooled slightly but within 0.5C so no trim; battery charge kept per strategy in cheap hour; peak headroom ample; no tank charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cheap hour before top-price window: charge batteries gently per strategy, keep cooling at baseline, DHW idle, no trim needed as rooms are within band.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cheap, clean hour with grid charging allowed; charge batteries toward 0.95 before top-price hours, no comfort trims needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cheap low-carbon hour before top-price hours 9-11: charge batteries at the strategy rate, keep cooling at baseline, tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold batteries at baseline per strategy; no top price now, cooling near baseline, B1 slightly under setpoint so no trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold batteries and baseline cooling; Building_1 is 0.52C below setpoint so a small trim is allowed, price not at top and grid charging is cheap-ish but no clear need.","status":"ok"},{"clamps":[{"applied":0.0675,"point":"Building_1.cooling","reason":"indoor 22.7 C is near the bottom of the comfort band, cooling held at the baseline","requested":0.068,"rule":"comfort"}],"fallback":null,"reason":"Hour 10 is not top-price; store spare solar only, keep cooling near baseline, no tank charging, no grid charging of batteries.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Comfort is within band and prices are not at top; keep baseline cooling, store spare solar in Building_1 battery per strategy, others idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold baseline cooling; room near setpoint so no trim. Batteries: B3 strategy charge 0.15 in cheap hour; B1/B2 idle since battery near full and price not top.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Temperatures are within band, prices are low and not at top, and batteries are near 0.95 before the top-price hours, so I keep all baseline actions.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 overcooled 1.0C below setpoint, trim cooling modestly; top price 2-4h ahead, so hold batteries and follow strategy charging only lightly.","status":"ok"},{"clamps":[{"applied":0.3452,"point":"Building_1.cooling","reason":"indoor 24.0 C is more than 0.5 C below the setpoint 25.0 C, trim held at 0.050","requested":0.3952,"rule":"trim_hold"}],"fallback":null,"reason":"Cheap hour with no top price now; trim B1 cooling as held, charge B3 gently toward 0.95 before the top-price hours 1-3, and keep the others at baseline.","status":"clamped"},{"clamps":[{"applied":0.4296,"point":"Building_1.cooling","reason":"indoor 23.9 C is more than 0.5 C below the setpoint 24.8 C, trim held at 0.050","requested":0.4796,"rule":"trim_hold"}],"fallback":null,"reason":"Follow strategy battery discharge over top-price hours; keep cooling at baseline with held trim in Building_1; no grid charging or tank action.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Top price now with 3 top hours ahead: discharge batteries evenly per strategy; B1 trim held; B3 overcooled but unoccupied, keep baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Top-price hour: discharge batteries per strategy; room temps near band edges so cooling kept at baseline; district load below 0.9 x forecast.","status":"ok"},{"clamps":[{"applied":0.4777,"point":"Building_1.cooling","reason":"indoor 21.1 C is near the bottom of the comfort band, cooling held at the baseline","requested":0.478,"rule":"comfort"}],"fallback":null,"reason":"Overcooled rooms and peak headroom 0; battery discharge held near strategy values, no grid charging at 0.029 price with top hours ahead, tank idle.","status":"clamped"},{"clamps":[{"applied":0.2948,"point":"Building_1.cooling","reason":"indoor 21.5 C is near the bottom of the comfort band, cooling held at the baseline","requested":0.44,"rule":"comfort"}],"fallback":null,"reason":"Building_1 is cool and below its comfort band, so cooling is raised; Building_3 is overcooled so a small trim applies; batteries and tanks hold.","status":"clamped"},{"clamps":[{"applied":0.2006,"point":"Building_3.cooling","reason":"indoor 24.0 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.055 by at most 0.02 per hour","requested":0.2355,"rule":"trim_hold"}],"fallback":null,"reason":"Hold baseline cooling and idle batteries and tanks; no top-price hour now, load is below the peak target, and Building_1 is cold so no trim.","status":"clamped"},{"clamps":[{"applied":0.1866,"point":"Building_3.cooling","reason":"indoor 24.1 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.035 by at most 0.02 per hour","requested":0.2015,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 is overcooled by 2.1C but trim is held at 0; deepen cooling cut modestly. Hold batteries, price not top, no discharge; hold tanks at 0.","status":"clamped"},{"clamps":[{"applied":0.0631,"point":"Building_1.cooling","reason":"indoor 23.4 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.091","requested":0.1544,"rule":"trim_hold"}],"fallback":null,"reason":"Cheap clean hour before the 17-19h top price: charge batteries at the strategy rate, keep cooling trims held, leave tanks idle.","status":"clamped"},{"clamps":[{"applied":0.0554,"point":"Building_1.cooling","reason":"indoor 24.0 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.091 by at most 0.02 per hour","requested":0.1267,"rule":"trim_hold"}],"fallback":null,"reason":"Cheap low-carbon hour before the 16-18h top price: charge batteries per strategy, cooling at baseline since no room is overcooled.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Cheap, low-carbon hour with grid charging allowed: store 0.15 per battery as strategy says; cooling and tank left at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Charge batteries gently in cheap hour before top-price hours 14-16; no overcooling, cooling at baseline, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Off-peak hour, not top price; charge batteries gently with grid charging ok, keep cooling at baseline, tanks idle, Building_1 slightly overcooled? No, it is 1.24 below setpoint so trim applies.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 overcooled slightly (-1.33C) but within trim rules; price is low, charge batteries gently per strategy, no tank charging, keep baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 overcooled 1.2C below setpoint; trim cooling deeper. Price is low now, so charge batteries gently ahead of top-price hours 11-13.","status":"ok"},{"clamps":[{"applied":0.0273,"point":"Building_1.cooling","reason":"more than 0.15 away from the ideal-load cooling 0.18","requested":0.0,"rule":"deviation"},{"applied":0.1773,"point":"Building_1.cooling","reason":"trim ended, indoor 23.0 C is at or above the setpoint 22.2 C, cooling back to the baseline","requested":0.0273,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 is overcooled by 0.74C so trim cooling; hold batteries per strategy, charging modestly in cheap hour before top-price window at hours 10-12.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Building_1 overcooled so cooling trimmed; batteries discharge to shave the district peak at the 10.35 kWh target, Building_3 move limited to 0.5.","status":"ok"},{"clamps":[{"applied":0.0856,"point":"Building_1.cooling","reason":"indoor 22.0 C is within 0.5 C of the setpoint 22.3 C, trim eases off from 0.100 by at most 0.02 per hour","requested":0.13,"rule":"trim_hold"}],"fallback":null,"reason":"Trim B1 cooling slightly for overcooling, hold batteries per strategy, no grid charge at top-price-ahead hours, DHW idle.","status":"clamped"},{"clamps":[{"applied":0.1292,"point":"Building_1.cooling","reason":"indoor 22.4 C is within 0.5 C of the setpoint 22.8 C, trim eases off from 0.080 by at most 0.02 per hour","requested":0.1895,"rule":"trim_hold"}],"fallback":null,"reason":"Charging batteries gently in a cheap, clean hour before the top-price hours; cooling kept at baseline since no room is overcooled.","status":"clamped"},{"clamps":[{"applied":0.059,"point":"Building_1.cooling","reason":"indoor 22.9 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.060","requested":0.1193,"rule":"trim_hold"}],"fallback":null,"reason":"Cooling kept at baseline where rooms are near band edges or unoccupied; batteries follow the strategy charge in the cheap, clean hour before the top-price hours.","status":"clamped"},{"clamps":[{"applied":0.1557,"point":"Building_1.cooling","reason":"indoor 24.3 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.060 by at most 0.02 per hour","requested":0.196,"rule":"trim_hold"}],"fallback":null,"reason":"Trim Building_1 cooling held, idle Building_2 and Building_3 batteries as strategy suggests, cool baseline elsewhere; top price is 5 hours away, so store gently.","status":"clamped"},{"clamps":[{"applied":0.3889,"point":"Building_1.cooling","reason":"indoor 24.4 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.040 by at most 0.02 per hour","requested":0.409,"rule":"trim_hold"}],"fallback":null,"reason":"Hold cooling near baseline with small trim in B1; idle DHW; battery per strategy since price is not top now and charging is cheap and clean.","status":"clamped"},{"clamps":[{"applied":0.4096,"point":"Building_1.cooling","reason":"indoor 23.3 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.020","requested":0.43,"rule":"trim_hold"}],"fallback":null,"reason":"Building 1 is overcooled slightly, so ease trim per envelope; batteries follow strategy, charging in cheap hour before top price hours 3-5 within headroom.","status":"clamped"},{"clamps":[{"applied":0.3842,"point":"Building_1.cooling","reason":"indoor 23.6 C is more than 0.5 C below the setpoint 25.1 C, trim held at 0.020","requested":0.4045,"rule":"trim_hold"}],"fallback":null,"reason":"Keep baselines; B1 cooling trim blocked by comfort-edge rule, batteries near full with cheap-hour trickle charge only, tanks idle.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Trim Building_1 and Building_3 cooling for overcooling, keep Building_2 at baseline, and hold batteries near the strategy values ahead of the top-price hours.","status":"ok"},{"clamps":[{"applied":0.6164,"point":"Building_3.cooling","reason":"indoor 23.5 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.068","requested":0.6845,"rule":"trim_hold"}],"fallback":null,"reason":"Discharging stored battery energy across the top-price hours as the strategy suggests; cooling held at baseline since rooms are within comfort limits.","status":"clamped"},{"clamps":[{"applied":0.7186,"point":"Building_3.cooling","reason":"indoor 23.3 C is more than 0.5 C below the setpoint 24.1 C, trim held at 0.068","requested":0.7867,"rule":"trim_hold"}],"fallback":null,"reason":"Top-price hour: discharge batteries per strategy over the two remaining top-price hours; B1 room is cold so cooling kept at baseline; others held.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Top-price hour with no later top hours: discharge all usable battery energy, cool overcooled occupied rooms deeper, leave tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled occupied rooms get a 0.1 deeper cooling trim; batteries follow strategy discharge over top-price hours; no grid charging or tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled occupied rooms get held trims of -0.1; batteries follow strategy discharge during top-price hours; tanks stay idle.","status":"ok"},{"clamps":[{"applied":0.2084,"point":"Building_1.cooling","reason":"indoor 22.9 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.218,"rule":"trim_hold"}],"fallback":null,"reason":"Trim held at -0.1 for overcooled occupied rooms; battery follows strategy, top-price discharge; no grid charging; tank idle.","status":"clamped"},{"clamps":[{"applied":0.1496,"point":"Building_1.cooling","reason":"indoor 23.3 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.2496,"rule":"trim_hold"},{"applied":0.2379,"point":"Building_3.cooling","reason":"indoor 22.8 C is more than 0.5 C below the setpoint 23.9 C, trim held at 0.100","requested":0.3383,"rule":"trim_hold"}],"fallback":null,"reason":"Hold battery per strategy; cooling trims held at setpoint-edge rules; no grid charging, no tank charging, top price now so discharge stays small.","status":"clamped"},{"clamps":[{"applied":0.1,"point":"Building_1.cooling","reason":"indoor 23.8 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.2,"rule":"trim_hold"},{"applied":0.1078,"point":"Building_3.cooling","reason":"indoor 23.1 C is more than 0.5 C below the setpoint 24.3 C, trim held at 0.100","requested":0.2082,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day, so batteries idle; overcooled rooms get trim held at -0.1, which is already at the envelope limit; no tank action needed.","status":"clamped"},{"clamps":[{"applied":0.0818,"point":"Building_1.cooling","reason":"indoor 24.3 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.100 by at most 0.02 per hour","requested":0.1,"rule":"trim_hold"},{"applied":0.0567,"point":"Building_3.cooling","reason":"indoor 24.1 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.100 by at most 0.02 per hour","requested":0.1,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day, batteries idle; Building_1 and Building_3 overcooled, so trim cooling deeper but within held trim limits; keep dhw at 0.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours; batteries idle, keep baseline cooling, trims held near setpoint, no DHW action.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, no top-price hours; batteries idle, cooling at baseline since rooms are not overcooled by more than 0.5 C.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, so batteries stay idle; buildings 1 and 3 keep baseline cooling, building 2 is near setpoint so baseline too.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, no top-price hours, so batteries idle; cooling follows baseline since no building is overcooled beyond 0.5 C.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, no top-price hours, so batteries idle; cooling near baseline with small overcool-free rooms; tanks idle; hold strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, no top-price hours, so batteries idle; cooling follows baseline since rooms are within band and Building_1 is only 0.54C under setpoint.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours; batteries idle, cooling at baseline, Building_1 is 0.37 below setpoint so no trim needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries idle; Building_1 is 1.13C above setpoint so cooling stays at baseline, no trim needed; DHW idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day so batteries idle; Building_1 is 0.19C above setpoint so cooling stays at baseline with no trim; dhw held at zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours, so battery follows strategy values to shave peak; Building_1 is cool near its band edge so cooling stays at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, so battery idle; cooling kept at baseline since rooms are near setpoint; Building_1 is 1.7C below setpoint so trim is not allowed to deepen beyond the envelope.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries idle; Building_1 is 1.55C below setpoint so trim cooling modestly, others hold baseline.","status":"ok"},{"clamps":[{"applied":0.4373,"point":"Building_1.cooling","reason":"indoor 23.9 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.098","requested":0.535,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day, no top-price hours; batteries idle, cooling near baseline with trims held, DHW idle, peak headroom is ample.","status":"clamped"},{"clamps":[{"applied":0.4956,"point":"Building_1.cooling","reason":"indoor 23.3 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.098","requested":0.5931,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day so batteries stay idle; buildings 1 and 2 are overcooled, so I keep the held trim and baseline cooling with no extra action.","status":"clamped"},{"clamps":[{"applied":0.5912,"point":"Building_1.cooling","reason":"indoor 23.4 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.098","requested":0.6887,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price and high carbon now, so batteries stay idle; Building_1 trim is already held deeper than needed, others near setpoint, so baseline cooling.","status":"clamped"},{"clamps":[{"applied":0.6952,"point":"Building_1.cooling","reason":"indoor 23.0 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.098","requested":0.7927,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price, no top hours; cooling near baseline with trims held; Building_1 overcooled? no, it is 1.49 below setpoint so trim held; battery idle for peak headroom.","status":"clamped"},{"clamps":[{"applied":0.6096,"point":"Building_1.cooling","reason":"indoor 22.3 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.098","requested":0.7071,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day, so batteries stay idle; Building_1 is 2.2C below setpoint so its trim is held, and other buildings keep baseline cooling.","status":"clamped"},{"clamps":[{"applied":0.54,"point":"Building_1.cooling","reason":"indoor 22.3 C is more than 0.5 C below the setpoint 24.3 C, trim held at 0.098","requested":0.6375,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day with no top-price hours; batteries idle, Building_1 overcooled so trim held, cooling near baseline elsewhere, DHW idle.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Flat-price hour so batteries stay idle; B1 and B3 are overcooled so cooling is trimmed 0.1 below baseline, B2 is near setpoint.","status":"ok"},{"clamps":[{"applied":0.3199,"point":"Building_1.cooling","reason":"indoor 22.0 C is more than 0.5 C below the setpoint 24.0 C, trim held at 0.100","requested":0.4196,"rule":"trim_hold"},{"applied":0.315,"point":"Building_3.cooling","reason":"indoor 21.7 C is more than 0.5 C below the setpoint 23.9 C, trim held at 0.100","requested":0.4154,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price, no top-price hours, batteries near floor and no discharge need; buildings 1 and 3 overcooled, so keep held trim and hold cooling near baseline.","status":"clamped"},{"clamps":[{"applied":0.1741,"point":"Building_1.cooling","reason":"indoor 22.4 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.2,"rule":"trim_hold"},{"applied":0.2178,"point":"Building_3.cooling","reason":"indoor 22.1 C is more than 0.5 C below the setpoint 23.9 C, trim held at 0.100","requested":0.25,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day, batteries idle; Building_1 and Building_3 overcooled so trim held at -0.1 with cooling at baseline; no DHW or grid charging.","status":"clamped"},{"clamps":[{"applied":0.1104,"point":"Building_1.cooling","reason":"indoor 23.3 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.21,"rule":"trim_hold"},{"applied":0.162,"point":"Building_3.cooling","reason":"indoor 22.6 C is more than 0.5 C below the setpoint 23.9 C, trim held at 0.100","requested":0.262,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day, batteries idle; Buildings 1 and 3 overcooled by 1.1-1.3C get held trim; Building 2 at baseline; no dhw.","status":"clamped"},{"clamps":[{"applied":0.3492,"point":"Building_1.cooling","reason":"indoor 24.0 C is near the top of the comfort band, cooling held at the baseline","requested":0.25,"rule":"comfort"},{"applied":0.1113,"point":"Building_3.cooling","reason":"indoor 23.1 C is more than 0.5 C below the setpoint 23.9 C, trim held at 0.100","requested":0.212,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day, batteries idle; Building_1 and Building_3 overcooled, so trim cooling per envelope hold while keeping rooms within band.","status":"clamped"},{"clamps":[{"applied":0.0527,"point":"Building_3.cooling","reason":"indoor 23.5 C is more than 0.5 C below the setpoint 24.0 C, trim held at 0.100","requested":0.1531,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day, batteries idle; Building_1 is 1.8 C below setpoint so cooling trimmed modestly; Building_2 is warm so keep baseline cooling.","status":"clamped"},{"clamps":[{"applied":0.0914,"point":"Building_1.cooling","reason":"indoor 21.0 C is more than 0.5 C below the setpoint 23.3 C, trim held at 0.085","requested":0.176,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day with no top-price hours, so batteries stay idle; Building_1 is overcooled so trim held, Building_3 unchanged at baseline cooling.","status":"clamped"},{"clamps":[{"applied":0.1987,"point":"Building_1.cooling","reason":"trim ended, indoor 22.3 C is at or above the setpoint 22.2 C, cooling back to the baseline","requested":0.12,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day, no top-price hours, so batteries idle; Building_1 is overcooled so trim cooling modestly; others hold baseline.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours; batteries idle, DHW idle, cooling near baseline since rooms are not overcooled.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat-price hour with no top-price window, so batteries stay idle; cooling and tanks keep baseline since no room is overcooled.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours, so batteries idle; buildings 1 and 3 slightly under setpoint, keep baseline cooling and no trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries idle; Building_1 is 0.71 C below setpoint, so a small cooling trim is held, not deepened, and no end_trim needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, no top-price hours; batteries idle per strategy, cooling kept at baseline since rooms are within band and Building_1 only mildly overcooled.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 1.27C below setpoint so trim cooling; flat price and no top hour means battery idle except small charge per strategy; keep dhw zero.","status":"ok"},{"clamps":[{"applied":0.0,"point":"Building_1.cooling","reason":"indoor 22.0 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.088","requested":0.0,"rule":"trim_hold"}],"fallback":null,"reason":"Overcooled Building_1 gets deeper cooling trim; all batteries charge gently at the cheap, low-carbon hour within peak headroom, tanks idle.","status":"clamped"},{"clamps":[{"applied":0.0762,"point":"Building_1.cooling","reason":"indoor 24.0 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.088 by at most 0.02 per hour","requested":0.1446,"rule":"trim_hold"}],"fallback":null,"reason":"Building_2 is overcooled by 1.2 C so its cooling is trimmed; batteries follow strategy charging in this cheap, clean hour before the top-price period.","status":"clamped"},{"clamps":[{"applied":0.1729,"point":"Building_1.cooling","reason":"indoor 24.0 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.068 by at most 0.02 per hour","requested":0.2213,"rule":"trim_hold"}],"fallback":null,"reason":"Hour 11: no top price now, district load 4.2 below target 10.35; hold batteries per strategy, keep baseline cooling with small trim held for Building_1.","status":"clamped"},{"clamps":[{"applied":0.2339,"point":"Building_1.cooling","reason":"indoor 23.8 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.048","requested":0.2823,"rule":"trim_hold"}],"fallback":null,"reason":"Hold batteries as strategy suggests: price is flat-ish, not top-price now; Building_1 is overcooled slightly, so keep trim held and let envelope ease.","status":"clamped"},{"clamps":[{"applied":0.4191,"point":"Building_1.cooling","reason":"indoor 23.8 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.048","requested":0.468,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 is overcooled 0.66C below setpoint so trim is held; batteries follow strategy, district load near peak target so no charging, DHW idle.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Deepened cooling trim for overcooled Building_1 and Building_3 per the strategy; Building_2 is warm so it keeps baseline; batteries held.","status":"ok"},{"clamps":[{"applied":0.19,"point":"Building_1.cooling","reason":"indoor 23.7 C is more than 0.5 C below the setpoint 26.7 C, trim held at 0.100","requested":0.29,"rule":"trim_hold"},{"applied":0.6103,"point":"Building_3.cooling","reason":"indoor 22.8 C is more than 0.5 C below the setpoint 23.9 C, trim held at 0.072","requested":0.6827,"rule":"trim_hold"}],"fallback":null,"reason":"Building 1 is 2.9C below setpoint so cooling trim is held; batteries idle as price is not top now and grid charging is not cheapest, following strategy.","status":"clamped"},{"clamps":[{"applied":0.5401,"point":"Building_1.cooling","reason":"trim ended, indoor 25.3 C is at or above the setpoint 24.2 C, cooling back to the baseline","requested":0.44,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 and Building_3 are overcooled; trim cooling per envelope, hold batteries idle as strategy says, and keep tanks at zero.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 are overcooled so cooling is trimmed; batteries discharge to cover load near the peak per strategy; no grid charging.","status":"ok"},{"clamps":[{"applied":0.6926,"point":"Building_1.cooling","reason":"indoor 21.0 C is more than 0.5 C below the setpoint 24.1 C, trim held at 0.031","requested":0.7234,"rule":"trim_hold"},{"applied":0.6232,"point":"Building_3.cooling","reason":"indoor 21.6 C is more than 0.5 C below the setpoint 23.7 C, trim held at 0.100","requested":0.7235,"rule":"trim_hold"}],"fallback":null,"reason":"Hold batteries near idle, trim cooling in overcooled Building_3 per held trim, price not top now; keep baselines except Building_3 cooling kept at baseline.","status":"clamped"},{"clamps":[{"applied":0.4351,"point":"Building_1.cooling","reason":"indoor 20.9 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.031","requested":0.4659,"rule":"trim_hold"},{"applied":0.5321,"point":"Building_3.cooling","reason":"indoor 21.5 C is more than 0.5 C below the setpoint 23.3 C, trim held at 0.100","requested":0.6324,"rule":"trim_hold"}],"fallback":null,"reason":"Buildings 1 and 3 are overcooled so trims held; batteries idle as top price is 3 hours ahead and charge is minimal; peak headroom is small.","status":"clamped"},{"clamps":[{"applied":0.3156,"point":"Building_1.cooling","reason":"indoor 21.5 C is more than 0.5 C below the setpoint 24.3 C, trim held at 0.031","requested":0.3464,"rule":"trim_hold"},{"applied":0.3388,"point":"Building_3.cooling","reason":"indoor 21.5 C is more than 0.5 C below the setpoint 23.6 C, trim held at 0.100","requested":0.4391,"rule":"trim_hold"}],"fallback":null,"reason":"Buildings 1 and 3 are overcooled, so trims are held; price not top now, batteries hold idle near floor, no grid charging at this hour.","status":"clamped"},{"clamps":[{"applied":0.3137,"point":"Building_1.cooling","reason":"indoor 21.8 C is near the bottom of the comfort band, cooling held at the baseline","requested":0.314,"rule":"comfort"},{"applied":0.2829,"point":"Building_1.cooling","reason":"indoor 21.8 C is more than 0.5 C below the setpoint 23.9 C, trim held at 0.031","requested":0.3137,"rule":"trim_hold"},{"applied":0.2947,"point":"Building_3.cooling","reason":"indoor 22.0 C is near the bottom of the comfort band, cooling held at the baseline","requested":0.295,"rule":"comfort"},{"applied":0.1944,"point":"Building_3.cooling","reason":"indoor 22.0 C is more than 0.5 C below the setpoint 23.9 C, trim held at 0.100","requested":0.2947,"rule":"trim_hold"}],"fallback":null,"reason":"Buildings 1 and 3 are overcooled, so I hold their trims; batteries idle since price is not top and grid charging has little headroom to gain.","status":"clamped"},{"clamps":[{"applied":0.213,"point":"Building_1.cooling","reason":"indoor 21.6 C is more than 0.5 C below the setpoint 24.1 C, trim held at 0.031","requested":0.2438,"rule":"trim_hold"},{"applied":0.1484,"point":"Building_3.cooling","reason":"indoor 22.7 C is more than 0.5 C below the setpoint 23.9 C, trim held at 0.100","requested":0.2487,"rule":"trim_hold"}],"fallback":null,"reason":"Hold baseline cooling; buildings 1 and 3 trims held as envelope requires; batteries idle since usable charge is tiny and no top-price hour now.","status":"clamped"},{"clamps":[{"applied":0.0966,"point":"Building_3.cooling","reason":"indoor 23.1 C is more than 0.5 C below the setpoint 23.9 C, trim held at 0.100","requested":0.148,"rule":"trim_hold"}],"fallback":null,"reason":"Overcooled rooms get trimmed cooling per envelope; batteries idle since price is low and charging is small; no top-price hour now.","status":"clamped"},{"clamps":[{"applied":0.1147,"point":"Building_1.cooling","reason":"indoor 21.6 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.031","requested":0.145,"rule":"trim_hold"},{"applied":0.2703,"point":"Building_2.cooling","reason":"indoor 24.6 C is near the top of the comfort band, cooling held at the baseline","requested":0.27,"rule":"comfort"},{"applied":0.0646,"point":"Building_3.cooling","reason":"indoor 23.5 C is within 0.5 C of the setpoint 24.0 C, trim eases off from 0.100 by at most 0.02 per hour","requested":0.145,"rule":"trim_hold"}],"fallback":null,"reason":"Overcooled Building_3 trim held; batteries idle per strategy since price is low and not top; no charging needed, DHW idle.","status":"clamped"},{"clamps":[{"applied":0.1573,"point":"Building_1.cooling","reason":"indoor 22.3 C is more than 0.5 C below the setpoint 23.3 C, trim held at 0.031","requested":0.188,"rule":"trim_hold"},{"applied":0.0698,"point":"Building_3.cooling","reason":"indoor 23.9 C is within 0.5 C of the setpoint 23.9 C, trim eases off from 0.080 by at most 0.02 per hour","requested":0.13,"rule":"trim_hold"}],"fallback":null,"reason":"Overcooled Building_1 gets held trim; batteries idle as price is not top now and usable charge is tiny; no grid charging at mid price; DHW idle.","status":"clamped"},{"clamps":[{"applied":0.2281,"point":"Building_1.cooling","reason":"indoor 21.6 C is more than 0.5 C below the setpoint 22.4 C, trim held at 0.031","requested":0.259,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 is 0.79C below setpoint so cooling trim is held; batteries idle since price is not top and little usable charge; keep tank at 0.","status":"clamped"},{"clamps":[{"applied":0.1225,"point":"Building_1.cooling","reason":"indoor 20.6 C is more than 0.5 C below the setpoint 23.3 C, trim held at 0.031","requested":0.1533,"rule":"trim_hold"}],"fallback":null,"reason":"Holding baseline cooling and charging batteries gently at the cheap, clean hour; no top-price discharge yet, tanks stay idle, load is well under peak target.","status":"clamped"},{"clamps":[{"applied":0.1011,"point":"Building_1.cooling","reason":"indoor 21.5 C is more than 0.5 C below the setpoint 23.2 C, trim held at 0.031","requested":0.1319,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 overcooled 1.66C below setpoint: trim held; battery charge kept at strategy 0.15 in cheap hour before top-price window at 11-14h.","status":"clamped"},{"clamps":[{"applied":0.1709,"point":"Building_1.cooling","reason":"indoor 21.8 C is within 0.5 C of the setpoint 22.2 C, trim eases off from 0.031 by at most 0.02 per hour","requested":0.1817,"rule":"trim_hold"}],"fallback":null,"reason":"Low-price, low-carbon hour with no overcooling; charge all batteries at 0.15 ahead of the top-price hours 11-13, keeping cooling and tanks at baseline.","status":"clamped"},{"clamps":[{"applied":0.2162,"point":"Building_1.cooling","reason":"indoor 20.9 C is more than 0.5 C below the setpoint 22.2 C, trim held at 0.011","requested":0.227,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 is overcooled 1.37C below setpoint; trim held and eased per envelope. Batteries follow strategy charging in cheap hour; no top price now, tank idle.","status":"clamped"},{"clamps":[{"applied":0.2194,"point":"Building_1.cooling","reason":"indoor 20.4 C is more than 0.5 C below the setpoint 22.2 C, trim held at 0.011","requested":0.2302,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 is overcooled 1.85C below setpoint so trim is held; batteries follow strategy charging in cheap hour; no tank charging.","status":"clamped"},{"clamps":[{"applied":0.1932,"point":"Building_1.cooling","reason":"indoor 20.1 C is more than 0.5 C below the setpoint 22.3 C, trim held at 0.011","requested":0.204,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 is overcooled by 2.2C; trim held at -0.011 and cooling kept near baseline, batteries idle as strategy suggests, DHW off.","status":"clamped"},{"clamps":[{"applied":0.1629,"point":"Building_1.cooling","reason":"indoor 20.4 C is more than 0.5 C below the setpoint 22.8 C, trim held at 0.011","requested":0.1737,"rule":"trim_hold"}],"fallback":null,"reason":"Hold batteries as strategy suggests; price not top now, next top hours 7-9 ahead; keep cooling near baseline, trim held for Building_1 overcooled slightly.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Building_1 is 3.45 C overcooled, so cooling is cut to zero; the other buildings keep baseline cooling and the battery strategy, with no grid charging before the top-price hours.","status":"ok"},{"clamps":[{"applied":0.0554,"point":"Building_1.cooling","reason":"indoor 23.2 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.082","requested":0.1373,"rule":"trim_hold"}],"fallback":null,"reason":"Hold baseline cooling; B1 overcooled 1.2C below setpoint so trim held at -0.082; batteries idle as price not top, charging deferred to cheap hours.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Building 1 is overcooled so its trim is held deeper; batteries charge gently in this cheap hour ahead of the top-price period.","status":"ok"},{"clamps":[{"applied":0.171,"point":"Building_1.cooling","reason":"indoor 23.7 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.083","requested":0.2535,"rule":"trim_hold"}],"fallback":null,"reason":"Trim B1 cooling slightly as it is overcooled; hold batteries at strategy charge in cheap hour; top price is 3 hours away so keep charging; no DHW.","status":"clamped"},{"clamps":[{"applied":0.2495,"point":"Building_1.cooling","reason":"indoor 23.5 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.083","requested":0.332,"rule":"trim_hold"}],"fallback":null,"reason":"Cheap, clean hour before the 16-18h top price; charge batteries at the strategy rate, keep cooling trims held, tank idle.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Trim cooling for overcooled occupied B1 per held trim; hold batteries near strategy since top price is 2-4 hours ahead; no DHW.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Top-price hour: batteries discharge evenly over the three remaining top-price hours; B1 cooling trimmed to the 0.1 depth since it is overcooled.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Top-price hour: discharge batteries per strategy; trim overcooled occupied rooms 1 and 3; hold tank at 0 and keep Building 2 baseline.","status":"ok"},{"clamps":[{"applied":0.1839,"point":"Building_1.cooling","reason":"indoor 22.8 C is more than 0.5 C below the setpoint 25.4 C, trim held at 0.100","requested":0.2839,"rule":"trim_hold"},{"applied":0.3275,"point":"Building_3.cooling","reason":"indoor 22.9 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.092","requested":0.4192,"rule":"trim_hold"}],"fallback":null,"reason":"Top-price hour: spreading the usable battery charge over the remaining top-price hours instead of the front-loaded strategy value; cooling trims held.","status":"clamped"},{"clamps":[{"applied":0.1307,"point":"Building_1.cooling","reason":"indoor 24.0 C is near the bottom of the comfort band, cooling held at the baseline","requested":0.131,"rule":"comfort"},{"applied":0.0307,"point":"Building_1.cooling","reason":"indoor 24.0 C is more than 0.5 C below the setpoint 26.4 C, trim held at 0.100","requested":0.1307,"rule":"trim_hold"},{"applied":0.3318,"point":"Building_3.cooling","reason":"indoor 23.3 C is more than 0.5 C below the setpoint 24.0 C, trim held at 0.092","requested":0.423,"rule":"trim_hold"}],"fallback":null,"reason":"Hold batteries as strategy says; top price hours ahead at 21-23, so keep charge; Building_1 and Building_3 cooling eased per held trim.","status":"clamped"},{"clamps":[{"applied":0.2992,"point":"Building_3.cooling","reason":"indoor 23.0 C is more than 0.5 C below the setpoint 23.9 C, trim held at 0.092","requested":0.3909,"rule":"trim_hold"}],"fallback":null,"reason":"Hour 20: price not top now, so no discharge; keep batteries idle; cooling at baseline, B1 trim held; top-price hours ahead, district load near target so no action beyond baseline.","status":"clamped"},{"clamps":[{"applied":0.2052,"point":"Building_3.cooling","reason":"indoor 23.0 C is more than 0.5 C below the setpoint 23.9 C, trim held at 0.092","requested":0.2969,"rule":"trim_hold"}],"fallback":null,"reason":"Building 1 is overcooled but a trim would be clamped near its band edge, so baseline holds; batteries idle as price is not top and cheaper charging hours come later.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Building 1 is overcooled but the envelope would block deeper cooling near its band edge, so baseline is kept; Building 3 holds its trim; batteries idle as no top-price hour is now.","status":"ok"},{"clamps":[{"applied":0.11,"point":"Building_3.cooling","reason":"indoor 23.6 C is within 0.5 C of the setpoint 23.9 C, trim eases off from 0.092 by at most 0.02 per hour","requested":0.182,"rule":"trim_hold"}],"fallback":null,"reason":"Building 1 is 2.55C below setpoint, so trim cooling; hold batteries idle as price is not top and no charging needed now.","status":"clamped"},{"clamps":[{"applied":0.0163,"point":"Building_3.cooling","reason":"indoor 23.8 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.072","requested":0.0887,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 is cool near its band edge so cooling stays at baseline; batteries start small grid charging in the cheap hours before the 16-18h peak.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Building_1 is overcooled so its cooling is trimmed slightly; others hold baseline, and batteries start small charging in the cheapest hour ahead of top-price hours.","status":"ok"},{"clamps":[{"applied":0.2578,"point":"Building_1.cooling","reason":"indoor 22.1 C is within 0.5 C of the setpoint 22.2 C, trim eases off from 0.033 by at most 0.02 per hour","requested":0.2703,"rule":"trim_hold"}],"fallback":null,"reason":"Price is low and not top-price, so no discharge; battery charging stays at strategy baseline of 0 with grid charging ok; cooling holds baseline, trims near zero.","status":"clamped"},{"clamps":[{"applied":0.2204,"point":"Building_1.cooling","reason":"indoor 20.5 C is more than 0.5 C below the setpoint 22.2 C, trim held at 0.013","requested":0.2329,"rule":"trim_hold"}],"fallback":null,"reason":"Cheap hour before top-price block 12-15h; charge batteries gently, keep cooling near baseline, no tank charging, Building_1 trim held.","status":"clamped"},{"clamps":[{"applied":0.18,"point":"Building_1.cooling","reason":"indoor 20.6 C is more than 0.5 C below the setpoint 22.2 C, trim held at 0.013","requested":0.1925,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 overcooled 1.6C below setpoint: trim held; keep baseline cooling, charge batteries gently in cheap hour as strategy suggests.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Building_1 is over 1.5 C below setpoint, so its cooling trim deepens to 0.1; batteries charge gently in the cheap, clean hour before the top-price period.","status":"ok"},{"clamps":[{"applied":0.0812,"point":"Building_1.cooling","reason":"indoor 21.4 C is more than 0.5 C below the setpoint 22.2 C, trim held at 0.100","requested":0.1811,"rule":"trim_hold"}],"fallback":null,"reason":"Cheap clean hour before top-price block: charge batteries gently per strategy, keep cooling baseline with held trims, tank idle.","status":"clamped"},{"clamps":[{"applied":0.0859,"point":"Building_1.cooling","reason":"indoor 21.8 C is within 0.5 C of the setpoint 22.2 C, trim eases off from 0.100 by at most 0.02 per hour","requested":0.1658,"rule":"trim_hold"}],"fallback":null,"reason":"Follow the strategy battery charge in all buildings before the upcoming top-price hours; cooling trims held, no comfort breach.","status":"clamped"},{"clamps":[{"applied":0.1191,"point":"Building_1.cooling","reason":"indoor 22.0 C is within 0.5 C of the setpoint 22.2 C, trim eases off from 0.080 by at most 0.02 per hour","requested":0.179,"rule":"trim_hold"}],"fallback":null,"reason":"Trim held near setpoint; battery charging from spare solar and cheap grid hour per strategy; no top price now, tank idle.","status":"clamped"},{"clamps":[{"applied":0.11,"point":"Building_1.cooling","reason":"indoor 22.0 C is more than 0.5 C below the setpoint 22.8 C, trim held at 0.060","requested":0.17,"rule":"trim_hold"}],"fallback":null,"reason":"Hold cooling near baseline with held trims, keep batteries idle or small charge in cheap hours before top-price hours 6-9, no tank charging.","status":"clamped"},{"clamps":[{"applied":0.0331,"point":"Building_1.cooling","reason":"indoor 22.6 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.060","requested":0.093,"rule":"trim_hold"}],"fallback":null,"reason":"Keep baseline cooling where rooms are near setpoint, hold Building_1 trim, and follow the battery plan; no tank charging.","status":"clamped"},{"clamps":[{"applied":0.1116,"point":"Building_1.cooling","reason":"indoor 24.0 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.060 by at most 0.02 per hour","requested":0.1515,"rule":"trim_hold"}],"fallback":null,"reason":"Holding baseline cooling and tank idle; building 3 takes the small strategy charge of 0.017 in this cheap, clean hour before the top-price window.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Holding batteries near 0.94 for the top-price hours ahead; B1 trims cooling to keep its held overcooling trim, B3 stores a small amount of cheap solar.","status":"ok"},{"clamps":[{"applied":0.2544,"point":"Building_1.cooling","reason":"indoor 23.9 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.040","requested":0.2943,"rule":"trim_hold"}],"fallback":null,"reason":"Prices are low and no top-price hour is now; batteries are near 0.95 so I keep baseline, with small cooling trims left to the envelope.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Trimmed occupied overcooled rooms in Buildings 1 and 3 toward setpoint; batteries near full and idle, tanks idle, Building 2 unoccupied.","status":"ok"},{"clamps":[{"applied":0.3856,"point":"Building_1.cooling","reason":"indoor 23.3 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.055","requested":0.4403,"rule":"trim_hold"},{"applied":0.511,"point":"Building_3.cooling","reason":"indoor 23.0 C is more than 0.5 C below the setpoint 23.9 C, trim held at 0.037","requested":0.5485,"rule":"trim_hold"}],"fallback":null,"reason":"Top price starts in 1-3 hours; hold batteries, keep cooling near baseline, no tank charging, and follow strategy_battery as a small pre-charge.","status":"clamped"},{"clamps":[{"applied":0.4786,"point":"Building_1.cooling","reason":"indoor 23.1 C is more than 0.5 C below the setpoint 24.1 C, trim held at 0.055","requested":0.5333,"rule":"trim_hold"}],"fallback":null,"reason":"Top-price hour: all three batteries discharge evenly over the three top-price hours; Building_3 cooling trimmed deeper for overcooling, others held.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Building_1 is overcooled so its cooling is trimmed deeper; batteries discharge at the top price per strategy, with no grid charging and tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 are occupied and 2.2 C overcooled, so cooling is trimmed 0.1 below baseline; batteries follow strategy discharge for top-price hours.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Buildings 1 and 3 are overcooled by 1.4 to 2.6 C, so cooling is trimmed by the held 0.1; batteries hold since no top-price hour is now.","status":"ok"},{"clamps":[{"applied":0.2068,"point":"Building_1.cooling","reason":"indoor 23.8 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.3067,"rule":"trim_hold"},{"applied":0.2405,"point":"Building_3.cooling","reason":"indoor 23.4 C is more than 0.5 C below the setpoint 24.2 C, trim held at 0.100","requested":0.3409,"rule":"trim_hold"}],"fallback":null,"reason":"Overcooled Building_1 and Building_3 held trims at -0.1; Building_2 near setpoint. Price not top now, hold batteries per strategy; no grid charging needed.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Holding batteries and tanks at baseline since no top-price hour is now; trim Building_1 cooling to its held depth and ease Building_3 per the envelope.","status":"ok"},{"clamps":[{"applied":0.1332,"point":"Building_1.cooling","reason":"indoor 23.7 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.19,"rule":"trim_hold"},{"applied":0.2148,"point":"Building_3.cooling","reason":"indoor 23.3 C is more than 0.5 C below the setpoint 23.9 C, trim held at 0.080","requested":0.27,"rule":"trim_hold"}],"fallback":null,"reason":"Overcooled Building_1 and Building_3 get small trims per envelope; batteries held per strategy since price is not at top and grid charging is marginal.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Trims cooling for overcooled occupied rooms, holds battery per strategy, headroom zero so no grid charging; price not top now so no discharge.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 2 and 3 are overcooled, so cooling is trimmed; Building 1 is warm so cooling holds baseline; batteries and tanks hold while prices are not at top.","status":"ok"},{"clamps":[{"applied":0.0475,"point":"Building_2.cooling","reason":"indoor 24.2 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.073 by at most 0.02 per hour","requested":0.1002,"rule":"trim_hold"},{"applied":0.0586,"point":"Building_3.cooling","reason":"indoor 24.0 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.072 by at most 0.02 per hour","requested":0.1108,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 is overcooled by 1.81C so cooling is trimmed; batteries held idle as prices are low and not top-price; no DHW.","status":"clamped"},{"clamps":[{"applied":0.0536,"point":"Building_3.cooling","reason":"indoor 24.3 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.052 by at most 0.02 per hour","requested":0.072,"rule":"trim_hold"}],"fallback":null,"reason":"Hour 2 is cheap and clean with no top price now; keep the suggested gentle battery charge, hold cooling near baseline, and leave DHW idle.","status":"clamped"},{"clamps":[{"applied":0.0596,"point":"Building_3.cooling","reason":"indoor 24.4 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.032 by at most 0.02 per hour","requested":0.0718,"rule":"trim_hold"}],"fallback":null,"reason":"Hour 3 is cheap and low-carbon with no top price now; charge batteries gently per strategy, keep cooling near baseline, no DHW.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Building_1 overcooled slightly? No, 1.25C above setpoint is below; cooling near baseline; charge batteries gently in cheap hour per strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling is absent; cooling near baseline. Charge batteries gently in cheap hour per strategy, no tank charge, peak headroom ample.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 0.97 C overcooled so its cooling is trimmed; all batteries charge at 0.15 in this cheap, clean hour before the top-price window.","status":"ok"},{"clamps":[{"applied":0.1098,"point":"Building_1.cooling","reason":"indoor 22.0 C is within 0.5 C of the setpoint 22.2 C, trim eases off from 0.048 by at most 0.02 per hour","requested":0.1376,"rule":"trim_hold"}],"fallback":null,"reason":"Cheap low-carbon hour before top-price hours 9-11: charge batteries toward 0.95 per strategy; cooling trimmed only for overcooled Building_3.","status":"clamped"},{"clamps":[{"applied":0.1725,"point":"Building_1.cooling","reason":"indoor 21.9 C is within 0.5 C of the setpoint 22.2 C, trim eases off from 0.028 by at most 0.02 per hour","requested":0.1803,"rule":"trim_hold"},{"applied":0.1111,"point":"Building_3.cooling","reason":"indoor 24.2 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.037 by at most 0.02 per hour","requested":0.1279,"rule":"trim_hold"}],"fallback":null,"reason":"Holding baseline cooling with held trims, following strategy battery charges at the low price; no tank use and no early trim ends.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Cooling and battery follow baseline and strategy; Building_3 gently charges in this cheap, clean hour before the top-price period; tanks stay idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim Building_2 cooling slightly for overcooling; keep Building_1 and Building_3 on baseline, follow Building_3's gentle battery charge, and leave tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold cooling near baseline, no DHW, batteries follow strategy; top price 5 hours ahead so store spare solar only, no grid charging at this price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is overcooled by 0.83 C, so its cooling is trimmed slightly; batteries hold near 0.94 for the 16-18h top-price window, dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is overcooled by 2.3 C, so cooling is trimmed deeper; other devices hold baseline since prices are low and no top-price hour is now.","status":"ok"},{"clamps":[{"applied":0.0878,"point":"Building_1.cooling","reason":"indoor 26.2 C is within 0.5 C of the setpoint 26.7 C, trim eases off from 0.102 by at most 0.02 per hour","requested":0.169,"rule":"trim_hold"}],"fallback":null,"reason":"Overcooling trims held; price not top now, batteries near full so store only spare solar; no grid charging needed; tanks idle.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Holding baselines; no overcooling, Building_3 unoccupied, and district load is well under the 6.57 kWh peak target.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Top price now; discharge batteries evenly over remaining top hours, trim overcooled occupied Building_1 slightly, keep cooling otherwise at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Top price now; discharge batteries evenly over remaining top hours, keep cooling near baseline, no dhw or grid charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Top-price hour: discharge batteries per strategy; trim overcooled occupied Building_1 by 0.1, keep Building_3 at baseline near band edge, Building_2 unoccupied.","status":"ok"},{"clamps":[{"applied":0.6055,"point":"Building_3.cooling","reason":"indoor 22.1 C is near the bottom of the comfort band, cooling held at the baseline","requested":0.606,"rule":"comfort"}],"fallback":null,"reason":"Building 1 and 2 are overcooled trims held; B1 trim -0.1 held, B2 cooling near baseline; battery idle-ish; price not top now, grid charging minor; keep baseline except trims.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Building_3 is cold, so I keep cooling at baseline; batteries follow strategy, which shaves the peak; no DHW charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 are overcooled, so cooling is trimmed 0.1 below baseline; batteries and tanks hold since prices are not at the top.","status":"ok"},{"clamps":[{"applied":0.2248,"point":"Building_1.cooling","reason":"indoor 22.4 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.3243,"rule":"trim_hold"},{"applied":0.2173,"point":"Building_3.cooling","reason":"indoor 22.7 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.3168,"rule":"trim_hold"}],"fallback":null,"reason":"District load is above 0.9x forecast, so Building_3 discharges to cover its load; overcooled rooms keep their held cooling trim.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Overcooled rooms in B1 and B3 get trim held at -0.1; battery idle per strategy since price is low and not top-price, grid charging low value.","status":"ok"},{"clamps":[{"applied":0.3796,"point":"Building_1.cooling","reason":"trim ended, indoor 23.5 C is at or above the setpoint 22.2 C, cooling back to the baseline","requested":0.28,"rule":"trim_hold"},{"applied":0.0853,"point":"Building_3.cooling","reason":"indoor 23.6 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.1853,"rule":"trim_hold"}],"fallback":null,"reason":"Building 1 is overcooled 1.26C, so trim cooling deeper; batteries idle per strategy, prices are not top-rate now, no grid charging needed.","status":"clamped"},{"clamps":[{"applied":0.066,"point":"Building_3.cooling","reason":"indoor 24.1 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.100 by at most 0.02 per hour","requested":0.146,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 is cold and below its band, so cooling is eased toward its floor; other devices hold baseline, batteries idle since no top price now.","status":"clamped"},{"clamps":[{"applied":0.0572,"point":"Building_3.cooling","reason":"indoor 24.4 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.080 by at most 0.02 per hour","requested":0.1172,"rule":"trim_hold"}],"fallback":null,"reason":"Cheap, clean hour before the 14-16h top price: charge batteries at the strategy rate, keep baseline cooling since no room is overcooled.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Overcooled Building_1 is 2.2C below setpoint, so trim cooling; hold battery charging at strategy level since grid charging is allowed and prices are low.","status":"ok"},{"clamps":[{"applied":0.0569,"point":"Building_1.cooling","reason":"indoor 21.6 C is more than 0.5 C below the setpoint 22.2 C, trim held at 0.124","requested":0.1806,"rule":"trim_hold"}],"fallback":null,"reason":"Cheap, clean hour before top price; charge batteries gently per strategy, cooling near baseline, Building_1 slightly overcooled is within band so no trim change.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Cheap clean hour before top-price hours 11-13: charge batteries at the strategy rate, keep cooling at baseline, tank idle, no trim to end.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hour 6 is cheap and clean; charge batteries gently per strategy, cooling at baseline since rooms are near setpoint, no tank charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold baseline cooling; Building_1 is 0.86C below setpoint trim not needed; battery charging at strategy level within limits, no top price now, grid charging ok.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is overcooled by 1.6 C, so its cooling is trimmed; batteries and tanks hold since no top-price hour is near.","status":"ok"},{"clamps":[{"applied":0.1957,"point":"Building_1.cooling","reason":"indoor 21.9 C is within 0.5 C of the setpoint 22.2 C, trim eases off from 0.100 by at most 0.02 per hour","requested":0.2761,"rule":"trim_hold"}],"fallback":null,"reason":"Building 1 overcooled slightly, keep baseline with held trim; batteries follow strategy, no tank charging; top price hours ahead so charging is modest.","status":"clamped"},{"clamps":[{"applied":0.1341,"point":"Building_1.cooling","reason":"indoor 21.9 C is near the bottom of the comfort band, cooling held at the baseline","requested":0.2,"rule":"comfort"}],"fallback":null,"reason":"B1 is below its comfort band so cooling rises above baseline and its trim ends; B2 and B3 discharge to shave the district peak near target.","status":"clamped","trim_ends":[{"building":"Building_1","reason":"indoor below comfort band, overcooling trim ends"}]},{"clamps":[],"fallback":null,"reason":"Overcooled B1 eases trim; batteries follow strategy, B2/B3 low-SOC charging ok at low price; no top-price discharge now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Top price is 4-6 hours ahead, so hold batteries and trim only overcooled Building_1; Building_3 is cool so no trim, batteries follow strategy charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled Building_1 gets a small cooling trim; batteries follow strategy, with B1 and B3 charging gently in cheap hours and B2 idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cut Building_1 cooling 0.1 below baseline since its occupied room is 1.85 C under setpoint; keep other buildings on baseline and charge batteries in this cheap hour.","status":"ok"},{"clamps":[{"applied":0.5614,"point":"Building_1.cooling","reason":"indoor 23.3 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.661,"rule":"trim_hold"}],"fallback":null,"reason":"Hour 15 is not top price; hold cooling near baseline, let batteries follow strategy, keep tanks idle, and avoid charging B1 beyond strategy since load is near peak target.","status":"clamped"},{"clamps":[{"applied":0.6079,"point":"Building_1.cooling","reason":"indoor 22.5 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.7077,"rule":"trim_hold"}],"fallback":null,"reason":"Top-price hour: discharge batteries evenly per strategy, no grid charging, tanks idle, keep cooling at baseline to avoid comfort clamps.","status":"clamped"},{"clamps":[{"applied":0.6345,"point":"Building_1.cooling","reason":"indoor 22.5 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.7343,"rule":"trim_hold"}],"fallback":null,"reason":"Top-price hour: discharge batteries per strategy, deepen Building_3 cooling trim for overcooling, hold other cooling; no grid charging or DHW.","status":"clamped"},{"clamps":[{"applied":0.6292,"point":"Building_1.cooling","reason":"indoor 22.3 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.729,"rule":"trim_hold"},{"applied":0.6133,"point":"Building_3.cooling","reason":"indoor 21.6 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.7133,"rule":"trim_hold"}],"fallback":null,"reason":"Top-price hour: discharging batteries per strategy over the three top-price hours; cooling trims held, B2 warm so baseline cooling.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Overcooled occupied rooms in B1 and B3 keep trim at -0.1; B2 at setpoint; batteries idle since top price is 21-23h and grid charging is marginal.","status":"ok"},{"clamps":[{"applied":0.4529,"point":"Building_1.cooling","reason":"indoor 22.4 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.5531,"rule":"trim_hold"},{"applied":0.3717,"point":"Building_3.cooling","reason":"indoor 22.6 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.4721,"rule":"trim_hold"}],"fallback":null,"reason":"Hour 20 is not top price now; battery stays near strategy with small discharge to shave peak, cooling trims held, no DHW.","status":"clamped"},{"clamps":[{"applied":0.2684,"point":"Building_1.cooling","reason":"indoor 21.9 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.3686,"rule":"trim_hold"},{"applied":0.2539,"point":"Building_3.cooling","reason":"indoor 23.0 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.3543,"rule":"trim_hold"}],"fallback":null,"reason":"Hold batteries near baseline (price not top, small usable charge); keep cooling trims as held; no DHW; Building_1 and 3 overcooled so trims held.","status":"clamped"},{"clamps":[{"applied":0.2363,"point":"Building_1.cooling","reason":"indoor 22.7 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.3365,"rule":"trim_hold"},{"applied":0.3049,"point":"Building_3.cooling","reason":"indoor 23.5 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.4053,"rule":"trim_hold"}],"fallback":null,"reason":"Peak headroom is zero and battery usable charge is tiny; keep baseline cooling, follow strategy battery, and hold DHW idle.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Overcooled occupied rooms in B1 and B3 get the held trim of -0.1 from baseline; B2 is in band, so baseline holds. Batteries stay idle, as the strategy suggests.","status":"ok"},{"clamps":[{"applied":0.08,"point":"Building_1.cooling","reason":"indoor 23.4 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.13,"rule":"trim_hold"},{"applied":0.0959,"point":"Building_3.cooling","reason":"indoor 23.7 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.16,"rule":"trim_hold"}],"fallback":null,"reason":"Buildings 1 and 3 are over 0.5 C cool so trims are held; batteries idle as price is not top and usable charge is tiny; tanks stay at zero.","status":"clamped"},{"clamps":[{"applied":0.0677,"point":"Building_3.cooling","reason":"indoor 24.2 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.100 by at most 0.02 per hour","requested":0.1481,"rule":"trim_hold"}],"fallback":null,"reason":"Buildings 1 and 3 are overcooled slightly; hold baseline cooling with trims held, batteries idle as price is low and no top-price hours now, tanks at zero.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Cheap hour with grid charging ok: keep strategy battery charge 0.15, cooling at baseline with trims held near zero since rooms are within band.","status":"ok"},{"clamps":[{"applied":0.1801,"point":"Building_1.cooling","reason":"more than 0.15 away from the ideal-load cooling 0.33","requested":0.18,"rule":"deviation"},{"applied":0.0287,"point":"Building_2.cooling","reason":"indoor 23.4 C is near the bottom of the comfort band, cooling held at the baseline","requested":0.029,"rule":"comfort"}],"fallback":null,"reason":"Overcooled B1 1.5C below setpoint gets trim; batteries follow strategy charge in cheap clean hour; no DHW; top price starts at hour 13.","status":"clamped"},{"clamps":[{"applied":0.0778,"point":"Building_1.cooling","reason":"indoor 21.4 C is more than 0.5 C below the setpoint 22.2 C, trim held at 0.150","requested":0.228,"rule":"trim_hold"}],"fallback":null,"reason":"Cheap, clean hour before top-price window: charge batteries gently per strategy; overcooled Building_1 trim held, cooling near baseline; no tank charging.","status":"clamped"},{"clamps":[{"applied":0.1792,"point":"Building_1.cooling","reason":"trim ended, indoor 22.5 C is at or above the setpoint 22.2 C, cooling back to the baseline","requested":0.09,"rule":"trim_hold"}],"fallback":null,"reason":"Overcooled Building_1 gets a trim held, cooling near baseline elsewhere; charge batteries gently in cheap hour per strategy, no tank charging.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Building_1 cooling trimmed for overcooling; all batteries follow strategy charge of 0.15 ahead of the top-price hours; tanks idle.","status":"ok"},{"clamps":[{"applied":0.1638,"point":"Building_1.cooling","reason":"indoor 22.1 C is within 0.5 C of the setpoint 22.2 C, trim eases off from 0.059 by at most 0.02 per hour","requested":0.2032,"rule":"trim_hold"}],"fallback":null,"reason":"Cheap, clean hour before top-price window; charge batteries at 0.15 per strategy, cooling and DHW stay at baseline.","status":"clamped"},{"clamps":[{"applied":0.2047,"point":"Building_1.cooling","reason":"indoor 21.8 C is within 0.5 C of the setpoint 22.2 C, trim eases off from 0.039 by at most 0.02 per hour","requested":0.2241,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 trim held at -0.019 within 0.5C band; keep baseline cooling, follow strategy battery charging in cheap hour; no top price now, no dhw.","status":"clamped"},{"clamps":[{"applied":0.2136,"point":"Building_1.cooling","reason":"indoor 21.8 C is more than 0.5 C below the setpoint 22.8 C, trim held at 0.019","requested":0.233,"rule":"trim_hold"}],"fallback":null,"reason":"Hour 9: no top price now, so hold batteries near strategy values; Building_1 trim eases from baseline, Building_2 idle-unoccupied at baseline, small charging in cheap hour.","status":"clamped"},{"clamps":[{"applied":0.2146,"point":"Building_1.cooling","reason":"indoor 22.2 C is near the bottom of the comfort band, cooling held at the baseline","requested":0.25,"rule":"comfort"}],"fallback":null,"reason":"Building_1 is below its comfort band, so cooling rises above baseline and its trim ends; Building_3 charges gently ahead of top-price hours; others hold.","status":"clamped","trim_ends":[{"building":"Building_1","reason":"room below comfort band, end overcooling trim"}]},{"clamps":[],"fallback":null,"reason":"Holding baselines in all buildings; Building_3 charges 0.1 gently ahead of top-price hours 5-7, Building_1 and Building_2 batteries are near 0.95.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 overcooled 2.5C but unoccupied-band logic keeps trim; batteries follow strategy; top price 4-6h ahead so hold charge; no tank charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hour 13 is not top-price and cheap hours follow, so batteries hold; trim Building_1 slightly is unnecessary, Building_3 strategy charge is small, keep baselines except clear overcool.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Price is not at top now; charge batteries gently in the cheap hour ahead of top-price hours 2-4, keep tank idle, and keep cooling at baseline since rooms are not overcooled.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is cool but its trim cannot be applied near the band edge, so baseline cooling holds; batteries follow strategy, with a small charge in Building_3.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is overcooled by 2.2 C while occupied, so cooling is trimmed 0.1 below baseline; batteries discharge evenly over the three top-price hours.","status":"ok"},{"clamps":[{"applied":0.5914,"point":"Building_1.cooling","reason":"indoor 22.6 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.6912,"rule":"trim_hold"}],"fallback":null,"reason":"Top-price hour: discharge batteries per strategy over the two remaining top hours; cooling trim held for overcooled occupied Building_1; no grid charging.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Top-price hour: discharge all usable battery charge, hold Building_1 cooling at the 0.1 trim, keep other cooling at baseline, tank idle.","status":"ok"},{"clamps":[{"applied":0.2045,"point":"Building_1.cooling","reason":"indoor 23.4 C is more than 0.5 C below the setpoint 26.4 C, trim held at 0.100","requested":0.304,"rule":"trim_hold"},{"applied":0.7036,"point":"Building_3.cooling","reason":"indoor 21.8 C is near the bottom of the comfort band, cooling held at the baseline","requested":0.704,"rule":"comfort"}],"fallback":null,"reason":"Trim cooling in overcooled occupied buildings, hold batteries per strategy, no grid charging, tanks idle; district load near peak target.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Building_2 is overcooled so its cooling is trimmed slightly; batteries follow strategy discharge over top-price hours; tanks stay idle and grid charging is off.","status":"ok"},{"clamps":[{"applied":0.2676,"point":"Building_2.cooling","reason":"indoor 24.3 C is more than 0.5 C below the setpoint 25.0 C, trim held at 0.014","requested":0.2816,"rule":"trim_hold"}],"fallback":null,"reason":"Holding overcooled rooms at baseline due to band-edge rule; discharging batteries per strategy during the top-price hour; no DHW or grid charging.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Top-price hour with flat-ish plan: follow strategy batteries, hold cooling near baseline, no tank use, let envelope trim hold for Building_2.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours; batteries idle, cooling at baseline since no room is more than 0.5C overcooled, DHW held at zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, no top-price hours; batteries idle. Building_1 overcooled 2.9C below setpoint but occupied band logic holds baseline; keep baseline cooling, no DHW.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours; batteries idle, cooling at baseline since no room is overcooled, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours, so batteries stay idle; cooling holds baseline, with trims not needed since rooms are not overcooled.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day and all buildings near or above setpoint with no overcooling; hold batteries idle, keep baseline cooling and no DHW.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours; batteries idle, cooling near baseline, no trim needed as rooms are within band and not overcooled.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day so batteries idle; trim Building_3 cooling slightly for overcooling, hold Building_1 at baseline near its band edge, and keep Building_2 at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours; batteries idle, cooling near baseline since rooms are within band, dhw off.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, so batteries stay idle; cooling follows baseline since no building is overcooled by more than 0.5 C.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, so batteries stay idle; buildings 1 and 2 are near setpoint so baseline cooling holds, and DHW stays at zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, no top-price hours; batteries idle, Building_1 overcooled slightly but within 0.5C of band so keep baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours, so batteries stay idle and cooling follows baseline; Building_1 is 1.67C below setpoint so a small trim applies.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, so batteries stay idle; Building_1 is 2.3C below setpoint so trim cooling held, DHW tanks idle, baseline cooling otherwise.","status":"ok"},{"clamps":[{"applied":0.4061,"point":"Building_1.cooling","reason":"indoor 22.4 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.132","requested":0.44,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day with no top-price hours, so batteries stay idle; Building_1 is 2.08 C below setpoint, so it is overcooled and cooling is trimmed below baseline.","status":"clamped"},{"clamps":[{"applied":0.4755,"point":"Building_1.cooling","reason":"indoor 22.8 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.132","requested":0.5,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day so batteries idle; Building_1 overcooled 1.7C, so trim cooling deeper within envelope; others near baseline with no trim needed.","status":"clamped"},{"clamps":[{"applied":0.574,"point":"Building_1.cooling","reason":"indoor 22.8 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.132","requested":0.7057,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day, so batteries stay idle; cooling holds baseline with Building_1 trim held at -0.132 while it is overcooled.","status":"clamped"},{"clamps":[{"applied":0.6772,"point":"Building_1.cooling","reason":"indoor 22.6 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.132","requested":0.8089,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day so batteries idle; Building_1 is 1.85C below setpoint so trim held, cooling at baseline; DHW and other cooling at baseline.","status":"clamped"},{"clamps":[{"applied":0.8546,"point":"Building_1.cooling","reason":"indoor 22.2 C is near the bottom of the comfort band, cooling held at the baseline","requested":0.855,"rule":"comfort"},{"applied":0.7229,"point":"Building_1.cooling","reason":"indoor 22.2 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.132","requested":0.8546,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day, batteries idle; Building_1 overcooled 2.2C below setpoint so trim held at -0.132 with cooling baseline, dhw and battery at baseline.","status":"clamped"},{"clamps":[{"applied":0.8319,"point":"Building_1.cooling","reason":"indoor 21.9 C is near the bottom of the comfort band, cooling held at the baseline","requested":0.95,"rule":"comfort"},{"applied":0.9582,"point":"Building_3.cooling","reason":"indoor 20.8 C is near the bottom of the comfort band, cooling held at the baseline","requested":1.0,"rule":"comfort"}],"fallback":null,"reason":"Building 1 and 3 are cold and occupied, so cooling rises; Building 1's trim ends. Flat prices mean batteries stay idle and tanks stay at zero.","status":"clamped","trim_ends":[{"building":"Building_1","reason":"room below comfort band, trim ends"}]},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries idle; Buildings 1 and 3 are cold so cooling stays at baseline, Building 2 unoccupied and near setpoint.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day with overcooled Building_1 (4.5C below setpoint); hold batteries, trim cooling modestly, keep dhw idle and let baseline run elsewhere.","status":"ok"},{"clamps":[{"applied":0.3574,"point":"Building_1.cooling","reason":"indoor 21.5 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.068","requested":0.425,"rule":"trim_hold"}],"fallback":null,"reason":"Rooms are cold or near setpoint, flat prices give no battery arbitrage, and district load is well below target, so baseline holds.","status":"clamped"},{"clamps":[{"applied":0.2731,"point":"Building_1.cooling","reason":"indoor 21.5 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.068","requested":0.3407,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day, no top-price hours; batteries idle, cooling at baseline with held trim for overcooled Building_1, DHW idle.","status":"clamped"},{"clamps":[{"applied":0.2152,"point":"Building_1.cooling","reason":"indoor 21.8 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.068","requested":0.2828,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day with no top-price hours; batteries idle as suggested. Building_1 is overcooled, so the held trim stays and cooling is kept at baseline.","status":"clamped"},{"clamps":[{"applied":0.1475,"point":"Building_1.cooling","reason":"indoor 22.0 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.068","requested":0.2151,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day so batteries idle; Building_1 overcooled 2.4C, trim held at -0.068 with no deeper cut needed; others at baseline.","status":"clamped"}],"discomfort_h":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,2.0,3.0,4.0,5.0,5.0,5.0,5.0,5.0,6.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,9.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,11.0,12.0,13.0,14.0,15.0,15.0,15.0,15.0,15.0,15.0,15.0,15.0,15.0,15.0,15.0,15.0,15.0,15.0,15.0,15.0,15.0,15.0,15.0,15.0,15.0,16.0,17.0,19.0,21.0,22.0,23.0,23.0,23.0,23.0,23.0,23.0,23.0,23.0,23.0,23.0,23.0,23.0,23.0,23.0,23.0,23.0,23.0,24.0,25.0,26.0,27.0,28.0,29.0,29.0,29.0,29.0,29.0,29.0,29.0,29.0,29.0,29.0,29.0,29.0,29.0,29.0,29.0,29.0,29.0,29.0,29.0,29.0,29.0,30.0,31.0,32.0,33.0,34.0,35.0,36.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,38.0,39.0,40.0,41.0,42.0,44.0,45.0,46.0,47.0,47.0,47.0,47.0,47.0,47.0,47.0,47.0,47.0,47.0,47.0,47.0,47.0,47.0,47.0,48.0,49.0,50.0,51.0,53.0,55.0,57.0,60.0,63.0,65.0,67.0,67.0,67.0,67.0,67.0,67.0,67.0,67.0,67.0,67.0,67.0,67.0,67.0,67.0,67.0,67.0,67.0,67.0,67.0,67.0,68.0,68.0,69.0,69.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,71.0,72.0,73.0,74.0,75.0,75.0,75.0,75.0,75.0,75.0,75.0,75.0,75.0,75.0,75.0,75.0,75.0,75.0,75.0,75.0,75.0,75.0,75.0,75.0,76.0,77.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,79.0,81.0,83.0,85.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,88.0,90.0,91.0,92.0,93.0,94.0,95.0,96.0,96.0,96.0,96.0,96.0,96.0,96.0,97.0,97.0,97.0,97.0,97.0,97.0,97.0,97.0,97.0,97.0,97.0,97.0,97.0,98.0,99.0,100.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,102.0,104.0,105.0,107.0,108.0,108.0,108.0,108.0,108.0,109.0,109.0,109.0,109.0,109.0,109.0,109.0,109.0,109.0,109.0,109.0,109.0,109.0,109.0,109.0,111.0,113.0,114.0,115.0,115.0,115.0,115.0,115.0,115.0,115.0,115.0,115.0,115.0,115.0,115.0,115.0,115.0,115.0,115.0,115.0,115.0,116.0,117.0,117.0,118.0,120.0,121.0,123.0,125.0,126.0,127.0,128.0,129.0,130.0,131.0,131.0,131.0,131.0,131.0,131.0,131.0,132.0,133.0,133.0,133.0,134.0,136.0,138.0,140.0,142.0,144.0,146.0,148.0,150.0,151.0],"district_grid_kwh":[1.428,1.505,1.446,1.419,1.418,1.731,2.889,2.572,9.774,4.524,2.596,4.693,3.205,3.072,3.749,5.508,4.518,2.425,3.846,4.798,6.35,5.199,4.935,5.313,2.662,1.693,1.42,2.11,2.376,2.591,2.559,1.447,2.937,1.367,2.63,3.47,8.481,6.508,5.504,6.967,7.557,5.909,6.901,4.779,5.918,5.252,5.194,3.539,2.73,2.239,1.924,1.707,1.708,1.824,1.704,3.322,4.782,0.983,1.686,1.836,1.408,7.666,1.84,4.907,5.783,4.224,4.7,3.44,2.933,4.038,2.015,1.998,1.37,1.274,1.608,2.363,1.808,2.916,3.695,2.42,3.176,1.364,1.75,0.977,1.479,0.677,0.393,-0.773,0.408,1.462,3.514,3.092,3.252,2.845,3.3,3.352,2.926,2.89,2.757,2.646,3.336,1.638,2.291,3.892,1.512,0.613,0.276,1.015,1.716,1.858,2.26,1.407,1.653,3.85,5.468,6.605,3.946,2.36,2.645,2.22,3.181,2.766,1.837,3.031,1.625,3.471,11.931,2.928,3.569,7.487,2.738,1.202,1.25,1.579,2.745,0.947,0.949,2.115,3.098,4.646,12.543,4.061,2.756,2.552,2.914,4.076,3.357,3.142,2.845,2.813,5.519,2.823,4.008,1.616,0.796,4.509,3.156,3.192,3.361,0.9,0.925,2.722,5.463,3.815,4.402,3.15,1.961,2.142,1.903,2.941,2.346,2.285,2.268,3.978,3.287,1.919,2.43,0.757,0.633,1.133,0.777,1.626,2.262,1.034,1.302,1.973,4.68,4.83,4.41,3.23,2.838,2.089,2.0,1.615,1.371,1.299,1.264,1.281,2.314,1.681,3.513,1.474,1.431,2.602,2.919,9.291,6.191,5.687,4.933,5.866,6.606,5.413,3.852,3.693,3.788,2.651,2.203,2.125,2.161,1.742,1.507,2.93,1.578,1.493,1.265,0.886,1.289,1.072,2.349,10.873,3.493,4.669,11.31,6.567,7.595,6.376,4.609,3.643,3.227,2.574,2.608,3.106,3.289,1.577,2.637,1.61,7.204,3.648,6.248,4.07,2.427,1.514,1.609,2.848,8.085,2.861,3.338,2.913,5.471,4.896,3.87,9.817,2.286,3.437,2.407,2.315,3.332,3.169,3.085,3.119,3.124,1.675,1.227,2.877,1.673,2.263,1.769,2.995,3.665,3.748,8.384,5.056,6.951,8.503,7.67,8.132,10.967,3.634,2.183,1.974,3.385,2.773,2.691,2.807,4.156,1.783,1.568,0.691,0.902,0.956,1.551,1.476,3.515,2.834,3.169,2.196,4.991,6.073,5.044,4.333,5.147,2.751,2.909,3.262,3.239,2.737,2.673,2.832,3.2,4.736,3.033,0.954,1.079,0.792,2.955,2.758,0.963,0.88,1.239,2.14,4.912,5.635,5.634,3.481,3.157,3.811,3.792,3.821,3.261,3.025,4.134,2.114,2.323,4.15,6.713,3.861,3.027,2.275,2.331,2.004,4.659,1.901,2.218,3.854,5.818,4.534,4.253,5.515,2.645,4.409,2.27,2.524,2.145,1.938,1.769,1.797,1.846,4.154,2.309,2.566,2.084,1.979,7.515,3.188,4.44,3.907,7.421,6.03,5.245,5.283,5.762,4.365,2.495,1.784,1.801,1.728,1.272,1.175,1.383,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.075,4.363,3.944,2.007,3.042,3.178,3.362,3.151,3.036,4.838,6.005,2.505,2.439,3.625,2.946,1.739,3.903,6.805,3.201,2.344,2.283,2.423,3.741,5.53,3.146,5.541,3.05,2.84,3.449,3.476,3.132,3.397,1.371,1.888,3.469,5.529,4.477,3.341,1.959,1.397,2.822,3.085,5.089,0.876,0.72,2.012,2.756,3.247,3.272,2.968,1.98,3.171,3.866,4.588,3.022,2.57,2.625,3.946,1.838,3.059,2.711,1.507,1.077,3.114,2.421,0.864,1.091,0.459,1.278,1.649,2.642,3.106,3.882,6.143,3.819,4.244,2.213,1.919,2.229,3.642,3.194,2.829,3.078,3.85,1.565,1.006,0.934,3.23,1.987,2.222,3.141,1.958,2.888,2.884,7.895,4.354,3.735,4.013,3.742,3.189,3.619,3.916,1.996,3.021,2.325,4.041,7.961,4.826,5.108,2.581,1.491,4.181,3.019,2.155,3.687,4.385,3.677,2.643,5.084,5.674,4.553,4.148,2.807,2.303,2.313,1.654,1.525,1.69,1.423,1.471,2.036,4.291,5.184,12.213,9.224,2.975,4.917,3.697,7.391,11.838,6.626,5.944,6.997,5.246,4.401,3.69,3.356,2.847,2.348,2.359,1.597,1.499,1.796,2.04,2.114,3.156,2.921,2.058,4.002,1.611,7.747,6.152,2.637,4.197,9.548,7.193,7.326,4.817,4.508,4.246,4.569,2.35,2.362,2.212,2.98,1.562,3.133,5.132,5.441,3.648,2.376,1.222,1.928,1.838,3.238,3.061,5.031,1.442,1.886,1.857,2.741,6.318,4.152,4.48,3.781,2.254,2.778,2.272,3.342,3.567,3.858,3.028,2.794,2.459,1.78,2.303,1.134,1.095,2.39,2.704,2.749,1.134,1.588,2.732,3.984,3.963,4.901,3.266,8.24,2.992,3.025,3.464,3.241,3.063,2.967,5.536,3.09,3.041,4.12,2.2,1.085,1.641,0.605,0.701,2.914,2.558,4.346,2.592,6.712,14.271,5.214,7.633,3.054,3.327,2.024,3.599,2.971,1.466,3.075,4.166,6.521,4.009,7.423,7.13,4.001,4.062,4.564,4.337,6.241,3.048,4.126,3.755,5.978,7.441,4.61,18.966,4.239,2.863,2.47,4.851,4.74,2.837,3.257,2.994,5.398,3.205,2.903,3.41,2.945,5.975,4.262,3.399,4.631,2.937,3.751,3.823,13.567,6.44,4.501,5.053,5.277,4.022,2.382,2.05,1.522,1.483,1.472,1.598,1.704,3.256,3.394,6.398,4.925,2.867,4.312,5.35,6.469,7.03,8.005,8.103,7.187,5.896,5.316,5.103,5.225],"emission_kg":[0.575,1.151,1.685,2.206,2.736,3.403,4.545,5.603,9.833,11.772,12.988,15.276,16.851,18.349,20.147,22.744,24.823,25.913,27.601,29.693,32.489,34.814,37.033,39.388,40.535,41.209,41.753,42.54,43.421,44.372,45.326,45.878,47.172,47.781,48.997,50.669,54.776,57.918,60.56,63.861,67.373,70.085,73.196,75.321,77.964,80.37,82.752,84.362,85.64,86.638,87.45,88.134,88.798,89.504,90.177,91.526,93.52,94.099,95.02,96.08,96.852,100.993,101.96,104.514,107.503,109.674,112.07,113.786,115.236,117.248,118.234,119.222,119.883,120.468,121.132,122.042,122.794,124.103,125.744,126.91,128.546,129.259,130.213,130.743,131.535,131.95,132.249,132.354,132.565,133.312,135.106,136.702,138.398,139.861,141.518,143.099,144.384,145.57,146.636,147.683,149.044,149.759,150.825,152.699,153.464,153.815,154.261,155.07,156.068,157.067,158.271,159.011,159.873,161.866,164.662,167.982,169.936,171.06,172.283,173.308,174.69,175.816,176.537,177.66,178.26,179.552,184.28,185.504,187.093,190.513,191.784,192.404,193.226,194.101,195.511,196.029,196.613,197.661,199.16,201.343,207.112,208.948,210.168,211.246,212.443,214.018,215.272,216.448,217.544,218.658,220.951,222.126,223.918,224.704,225.196,227.312,228.824,230.388,232.03,232.469,233.047,234.327,236.822,238.497,240.437,241.829,242.676,243.588,244.391,245.503,246.354,247.164,248.002,249.515,250.857,251.749,252.953,253.346,253.794,254.5,255.006,255.762,256.832,257.324,257.94,258.863,261.05,263.303,265.372,266.893,268.202,269.149,270.028,270.715,271.27,271.789,272.302,272.845,273.871,274.616,276.233,276.9,277.559,278.78,280.176,284.642,287.561,290.212,292.504,295.209,298.225,300.696,302.484,304.191,305.866,306.952,307.834,308.635,309.384,309.975,310.485,311.474,312.016,312.542,312.993,313.447,314.007,314.519,315.567,320.578,322.222,324.425,329.759,332.853,336.335,339.209,341.293,342.925,344.324,345.426,346.505,347.737,348.996,349.59,350.562,351.162,353.89,355.295,357.773,359.341,360.313,361.033,361.805,363.15,367.034,368.416,370.04,371.46,374.131,376.521,378.415,383.152,384.211,385.708,386.745,387.685,388.989,390.224,391.446,392.714,394.045,394.796,395.431,396.711,397.475,398.56,399.418,400.863,402.61,404.378,408.283,410.597,413.735,417.613,421.183,425.035,430.174,431.84,432.844,433.735,435.167,436.307,437.441,438.674,440.625,441.52,442.314,442.828,443.488,444.119,444.991,445.758,447.573,449.015,450.602,451.684,454.117,457.095,459.59,461.742,464.26,465.589,466.91,468.349,469.674,470.762,471.794,472.952,474.364,476.606,478.108,478.711,479.395,479.872,481.297,482.616,483.307,483.722,484.302,485.302,487.574,490.171,492.787,494.397,495.792,497.415,498.936,500.398,501.589,502.664,504.158,504.975,505.925,507.681,510.541,512.238,513.606,514.661,515.7,516.657,518.705,519.54,520.502,522.162,524.681,526.651,528.526,530.983,532.134,533.963,534.888,535.84,536.642,537.359,538.017,538.698,539.406,541.01,541.895,542.858,543.674,544.535,547.714,549.075,550.957,552.617,555.753,558.304,560.524,562.784,565.305,567.278,568.414,569.216,570.063,570.863,571.459,571.998,572.653,572.653,572.653,572.653,572.653,572.653,572.653,572.653,572.653,572.653,572.653,572.653,572.653,572.653,572.653,572.653,574.715,576.938,578.936,579.954,581.474,583.1,584.783,586.334,587.804,590.201,593.243,594.535,595.819,597.717,599.292,600.236,602.348,606.008,607.684,608.886,610.043,611.247,613.077,615.83,617.43,620.251,621.765,623.133,624.666,626.191,627.56,629.058,629.679,630.578,632.319,635.15,637.477,639.199,640.223,641.09,642.59,644.247,646.918,647.374,647.748,648.783,650.18,651.781,653.35,654.75,655.658,657.047,658.786,660.711,661.959,663.084,664.314,666.273,667.213,668.783,670.167,670.985,671.725,673.373,674.737,675.237,675.829,676.078,676.77,677.662,679.092,680.775,682.876,686.18,688.221,690.485,691.622,692.633,693.795,695.724,697.453,699.015,700.719,702.859,703.717,704.296,704.878,706.618,707.693,708.89,710.573,711.618,713.161,714.701,718.931,721.288,723.323,725.478,727.437,729.033,730.65,732.316,733.113,734.295,735.193,736.786,740.266,742.38,744.743,746.057,746.777,748.836,750.329,751.384,753.157,755.252,756.997,758.241,760.602,763.188,765.255,767.127,768.354,769.329,770.284,770.956,771.531,772.146,772.65,773.225,774.068,775.795,777.801,782.368,786.01,787.273,789.437,791.116,794.578,800.188,803.334,806.154,809.465,811.913,813.929,815.606,817.086,818.294,819.233,820.116,820.701,821.227,821.846,822.538,823.268,824.392,825.448,826.305,827.834,828.515,831.842,834.562,835.871,837.787,842.173,845.406,848.618,850.707,852.677,854.532,856.492,857.487,858.501,859.385,860.519,861.131,862.414,864.709,867.292,869.126,870.314,871.092,872.039,873.125,874.74,876.272,878.805,879.553,880.503,881.435,882.805,885.939,887.991,890.212,892.055,893.125,894.329,895.269,896.584,897.979,899.495,900.726,901.903,902.972,903.765,904.866,905.386,905.959,907.075,908.357,909.672,910.214,910.974,912.275,914.174,916.064,918.428,920.002,923.831,925.152,926.406,927.77,929.016,930.185,931.307,933.451,934.701,935.982,937.723,938.701,939.278,940.175,940.984,941.758,943.189,944.451,946.603,947.893,951.224,958.288,960.875,964.635,966.073,967.554,968.389,969.831,970.966,971.51,972.67,974.312,977.049,978.847,982.31,985.509,987.365,989.296,991.502,993.616,996.636,998.091,1000.034,1001.781,1004.536,1007.953,1010.079,1018.85,1020.739,1021.949,1022.953,1024.731,1026.42,1027.419,1028.574,1029.667,1031.719,1032.971,1034.087,1035.382,1036.574,1039.119,1040.996,1042.529,1044.654,1046.008,1047.73,1049.479,1055.672,1058.55,1060.551,1062.805,1065.142,1066.942,1068.015,1068.959,1069.663,1070.352,1071.028,1071.768,1072.548,1074.005,1075.466,1077.993,1079.949,1081.146,1083.009,1085.407,1088.41,1091.707,1095.467,1099.269,1102.612,1105.359,1107.859,1110.218,1112.562],"kpi":{"all_time_peak_average":0.959269,"annual_normalized_unserved_energy_total":0.019385,"carbon_emissions_total":0.96101,"cost_total":0.919048,"daily_one_minus_load_factor_average":0.965129,"daily_peak_average":0.92641,"discomfort_cold_delta_average":0.464022,"discomfort_cold_delta_maximum":3.109464,"discomfort_cold_delta_minimum":0.0,"discomfort_cold_proportion":0.060087,"discomfort_hot_delta_average":0.255475,"discomfort_hot_delta_maximum":5.110755,"discomfort_hot_delta_minimum":0.0,"discomfort_hot_proportion":0.016849,"discomfort_proportion":0.076937,"electricity_consumption_total":0.969511,"monthly_one_minus_load_factor_average":0.999678,"one_minus_thermal_resilience_proportion":0.369841,"power_outage_normalized_unserved_energy_total":0.684992,"ramping_average":1.007618,"zero_net_energy":0.968237},"run":"citylearn_challenge_2023_phase_2_local_evaluation_agent_citylearn_20261022T222703Z","steps":719},"agent_run":{"budget_stopped":false,"budget_usd":2.0,"calls":719,"clamped_hours":312,"cost_usd":0.5315,"envelope":{"battery_rate_per_step":0.5,"comfort_band_k":2.0,"comfort_margin_k":0.5,"cooling_max":1.0,"cooling_max_deviation":0.15,"cooling_min":0.0,"cooling_rate_per_step":0.35,"dhw_rate_per_step":0.5,"overcool_guard_unoccupied":true,"peak_forecast_days":2,"peak_limit":true,"peak_target_fraction":1.0,"soc_max":0.95,"soc_min":0.1,"spread_check":true,"storage_max":1.0,"storage_min":-1.0,"trim_hold":true,"trim_hold_c":0.5,"trim_min_depth":0.002,"trim_release_step":0.02},"fallback_hours":0,"model_id":"claude-haiku-5-5","model_key":"haiku","supervisor":"live","trim_ends_early":7},"agent_sample":false,"baseline":{"buildings":{"Building_1":{"battery_soc":[0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2],"dhw_soc":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],"grid_kwh":[0.678,0.846,0.725,0.633,0.607,1.001,1.608,0.534,4.653,0.483,-0.357,1.817,0.266,0.219,0.945,2.824,3.039,2.14,1.419,2.336,3.167,1.823,1.303,2.042,1.886,1.125,0.744,0.671,1.713,1.752,1.766,0.572,-0.245,-0.069,0.819,1.462,6.669,4.144,2.167,2.167,3.119,2.733,3.531,2.36,3.981,2.93,3.446,2.771,1.996,1.597,1.345,1.167,1.085,1.056,0.979,1.281,1.827,-0.118,-0.286,-0.743,-0.767,-0.321,-0.061,2.823,3.203,2.159,1.652,1.282,0.964,1.54,0.677,1.02,0.69,0.649,0.566,0.452,0.405,1.394,0.36,0.824,0.441,0.178,0.139,0.075,0.006,0.084,-0.175,-0.312,0.37,2.084,1.383,1.363,1.519,1.005,1.032,1.204,0.834,0.908,0.841,0.74,1.702,0.649,1.501,2.044,0.892,0.065,-0.434,-0.302,-0.145,0.399,0.651,1.341,1.712,3.301,2.332,2.04,1.413,1.158,1.266,1.144,0.775,0.658,1.104,1.109,0.93,1.45,5.714,0.799,0.646,5.824,0.119,-0.412,-0.309,-0.341,0.568,-0.373,0.001,3.061,1.979,2.83,8.927,2.165,1.511,1.13,1.289,1.736,1.238,0.991,0.848,0.767,1.873,0.998,2.518,0.266,0.062,5.66,1.286,1.119,1.178,0.97,0.791,2.262,1.689,1.153,2.04,0.959,0.651,0.561,0.49,0.432,0.383,0.35,0.349,3.199,0.452,0.203,1.584,-0.29,-0.446,-0.411,-0.314,0.182,0.323,0.609,0.97,1.585,1.969,1.98,1.566,1.143,0.818,0.682,1.003,0.589,0.549,0.517,0.491,0.446,1.379,0.385,2.23,0.199,0.068,0.72,1.2,1.804,2.687,2.771,2.189,2.53,2.226,2.274,1.659,1.535,1.25,1.57,1.246,1.262,1.367,0.988,0.878,2.232,0.811,0.668,0.35,-0.269,-0.223,-0.154,0.455,0.885,1.278,1.827,5.826,2.385,3.597,2.451,2.338,1.022,1.687,1.019,1.279,1.568,1.391,1.191,1.042,0.981,0.954,1.91,1.899,0.785,0.426,0.228,0.271,0.751,8.035,2.459,2.762,2.716,2.511,1.773,1.42,1.134,0.999,1.867,1.17,1.283,1.227,1.083,0.976,0.919,0.912,0.799,-0.092,-0.027,0.777,1.121,0.266,0.716,1.03,3.647,8.064,3.658,3.461,2.842,2.439,1.622,1.303,1.625,1.095,1.156,1.108,0.973,0.882,0.84,0.823,0.656,0.496,-0.416,-0.483,-0.313,-0.121,0.188,0.744,2.478,3.105,2.534,2.482,3.192,2.715,1.592,1.289,1.509,1.228,1.478,1.224,0.987,0.851,0.773,1.287,3.362,0.391,-0.307,-0.371,-0.205,1.991,1.839,-0.232,0.265,0.758,1.208,2.194,2.594,2.069,1.662,1.447,1.026,1.21,1.481,1.253,1.038,2.151,0.886,0.84,0.753,1.616,-0.171,-0.16,-0.111,0.282,0.224,2.107,1.77,1.998,3.705,2.641,2.159,1.815,3.686,1.274,0.984,1.183,1.504,1.333,1.125,0.968,0.901,0.91,2.903,0.721,0.62,0.328,0.068,4.92,0.98,1.011,0.264,3.799,3.082,1.976,1.843,2.38,1.544,0.885,0.661,0.591,0.537,0.496,0.46,0.429,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.341,1.27,1.438,1.167,1.319,1.597,1.361,1.153,1.011,3.963,1.66,0.809,0.571,0.041,0.632,0.17,0.622,4.299,0.693,1.403,1.806,2.239,2.031,4.027,1.332,4.166,1.122,0.797,0.979,1.289,1.158,1.903,0.884,0.82,0.787,0.652,0.721,1.083,0.014,-0.078,0.686,0.25,0.981,0.693,0.785,0.992,1.271,2.112,1.4,1.165,0.914,0.824,0.827,2.287,1.079,0.924,1.733,2.043,0.857,2.248,1.565,-0.023,-0.235,0.481,-0.126,-0.062,0.121,0.666,1.976,1.994,0.888,1.214,1.11,1.902,1.166,2.755,1.131,1.116,1.039,0.9,1.23,0.752,0.722,0.544,0.213,-0.372,-0.313,1.116,0.465,0.497,1.233,1.444,2.514,2.845,5.034,2.238,1.363,2.117,1.214,0.877,1.089,1.408,1.226,1.032,0.88,2.685,1.355,0.84,0.944,-0.187,0.317,2.427,1.013,0.481,0.986,2.991,3.158,2.811,2.549,2.184,2.534,1.661,1.244,1.04,1.197,0.785,0.677,0.633,0.606,0.579,1.018,0.96,1.038,1.937,6.549,0.489,1.75,1.634,4.402,8.38,2.747,2.775,2.818,2.972,2.443,1.928,1.857,1.732,1.079,1.169,0.69,0.608,0.884,1.063,1.069,0.909,0.01,-0.139,0.892,0.124,7.091,3.778,0.137,1.484,3.241,3.902,2.334,2.013,1.9,1.763,3.035,0.973,1.13,1.417,0.981,0.892,1.095,4.255,2.278,2.019,0.635,-0.163,0.882,-0.051,0.116,0.547,1.941,1.163,1.806,1.093,0.844,3.574,1.744,2.639,2.274,0.928,1.121,1.464,1.309,1.549,2.185,1.682,1.743,1.495,0.39,-0.05,0.108,0.011,0.15,0.716,0.798,1.338,1.966,2.61,1.711,1.991,2.574,1.412,1.201,1.514,1.213,1.31,1.214,1.003,0.926,0.874,0.908,1.117,0.402,-0.219,-0.236,-0.115,-0.644,-0.548,0.954,2.208,3.8,2.127,1.98,2.977,2.506,5.466,1.424,1.916,1.306,1.381,1.271,1.092,0.961,1.979,3.683,2.124,0.769,-0.199,-0.153,2.156,0.873,0.736,3.454,2.032,3.027,2.922,2.843,4.405,2.218,8.411,1.397,1.116,1.28,1.62,3.058,1.286,1.085,1.004,1.852,1.138,0.765,1.284,0.69,1.379,1.5,0.84,1.08,1.649,3.27,3.253,2.696,2.846,2.022,2.601,3.008,1.972,0.991,0.736,0.55,0.552,0.567,0.586,0.613,2.044,1.644,3.571,3.406,1.136,1.332,1.962,2.818,2.816,3.383,3.406,2.488,2.608,2.603,2.726,1.306],"indoor_c":[23.1,22.23,22.22,22.22,22.22,22.22,22.22,22.33,22.77,23.27,24.41,24.44,24.66,24.6,24.34,23.33,22.29,23.64,25.28,24.14,20.64,22.33,22.2,19.53,19.22,20.14,21.16,21.58,21.71,21.76,21.9,22.21,23.79,24.19,24.27,24.25,23.54,23.35,23.15,22.93,22.99,22.29,22.35,22.63,22.06,20.25,18.2,17.59,17.46,17.51,17.65,17.79,18.04,18.13,18.44,18.59,18.56,20.71,21.5,22.96,23.44,23.74,23.72,22.23,20.12,20.13,21.89,22.52,23.0,20.89,22.58,23.02,22.51,22.65,22.93,23.37,23.75,23.96,24.27,23.2,23.56,23.64,24.86,24.07,24.29,25.23,24.97,25.47,24.52,23.58,23.53,23.56,23.55,23.65,23.76,21.56,22.35,21.61,21.68,21.78,21.47,21.93,21.67,21.38,21.87,22.57,23.24,23.89,24.12,23.98,23.68,23.14,22.78,22.29,22.44,22.58,22.79,22.94,23.07,23.18,23.32,23.54,21.49,21.32,21.46,21.65,21.21,21.59,21.82,20.68,22.27,23.42,23.79,24.49,24.34,26.05,26.65,25.5,25.71,24.52,24.03,23.16,23.15,23.37,22.4,21.27,21.29,21.49,21.77,22.04,21.72,22.17,21.75,22.53,23.09,23.28,23.51,23.4,23.21,24.0,25.66,25.96,26.23,26.3,25.78,26.12,26.43,26.71,26.93,27.22,27.53,27.84,28.04,26.6,27.52,28.11,27.36,27.9,27.97,27.88,27.73,27.35,27.01,26.64,26.32,26.01,26.06,26.05,26.08,26.18,26.32,26.5,26.37,26.54,26.63,26.71,26.79,27.0,26.91,27.05,25.78,26.02,25.81,25.44,25.07,24.61,24.11,23.32,23.17,22.65,22.64,22.64,22.69,22.67,22.67,20.95,21.2,20.46,20.43,20.53,20.71,20.78,21.05,21.32,21.67,23.0,23.06,23.21,22.98,22.72,22.5,22.27,23.27,21.93,21.6,21.78,21.99,23.38,22.63,22.48,21.35,20.19,20.17,20.3,20.52,20.57,20.73,20.62,20.23,21.08,21.71,22.3,22.33,22.16,20.54,19.95,20.43,20.7,21.17,21.46,21.73,21.96,22.18,20.54,20.92,20.14,20.16,20.35,20.6,20.78,20.94,21.13,22.84,22.95,23.03,22.59,22.53,22.27,22.06,21.58,20.99,20.92,21.06,21.25,21.23,21.7,21.93,19.91,20.84,20.15,20.23,20.44,20.71,20.95,21.15,21.29,21.26,23.1,23.51,23.71,23.6,23.38,22.99,22.53,22.16,21.82,21.93,21.9,21.75,22.01,22.22,22.41,21.49,20.35,20.42,20.67,20.96,21.26,21.52,21.51,22.1,23.5,23.81,23.87,24.66,25.34,25.84,25.85,25.65,25.32,24.02,22.96,22.82,22.88,23.05,23.24,22.31,21.05,21.04,21.2,20.93,21.43,21.61,21.84,21.73,23.32,23.55,23.77,23.65,24.25,23.01,22.64,22.34,21.84,21.92,22.09,22.3,21.57,22.18,22.51,21.69,20.44,20.42,20.55,20.78,20.98,21.26,20.6,21.47,22.9,23.09,23.38,21.29,22.35,22.9,24.51,24.56,24.06,24.45,24.67,24.37,24.79,25.08,25.32,25.47,25.62,25.78,25.95,26.13,26.52,26.62,26.86,26.91,26.86,26.73,25.93,25.96,26.25,26.8,27.36,28.05,28.68,29.45,29.91,28.54,26.84,25.3,24.9,23.62,22.06,21.89,21.86,21.93,20.97,21.31,21.49,21.96,23.28,23.38,23.48,23.31,23.83,23.23,22.39,22.11,21.68,20.93,20.24,21.54,20.58,21.51,21.87,21.04,19.88,19.96,20.08,20.29,20.46,20.69,20.82,21.34,22.5,22.89,23.1,23.02,23.48,23.27,23.23,23.28,23.32,23.4,23.36,23.38,23.38,23.44,23.51,22.53,21.06,21.06,21.2,21.01,21.22,21.56,20.93,21.01,22.81,23.42,23.57,23.71,23.68,23.4,22.35,22.23,22.87,23.33,23.54,23.62,23.59,23.65,22.62,22.34,21.22,21.16,21.33,21.52,21.68,21.85,22.08,22.59,23.98,24.09,23.9,23.67,23.56,23.42,22.93,21.13,20.92,21.34,21.85,22.18,22.3,22.49,22.66,21.73,20.46,20.48,20.65,20.93,20.41,20.93,21.3,21.79,23.17,23.46,22.63,22.98,23.52,23.36,21.23,20.93,21.06,21.32,21.5,21.67,21.87,22.09,22.28,21.49,22.33,22.67,22.92,23.11,23.33,23.5,22.38,21.82,22.29,22.49,22.82,22.24,22.28,21.8,21.08,20.93,20.61,20.34,20.53,21.16,21.49,19.42,19.21,20.14,19.59,20.9,21.43,20.59,20.14,20.26,20.34,22.17,22.36,22.42,22.47,21.65,22.26,23.68,21.91,20.06,20.12,20.63,20.81,20.65,20.89,20.55,21.24,20.48,19.56,20.43,20.62,20.03,19.59,19.38,19.7,20.32,21.85,21.94,22.11,21.98,21.8,21.44,21.26,21.13,22.02,23.34,21.27,21.49,21.09,21.51,21.8,20.98,19.78,19.85,19.96,19.75,19.96,20.19,20.39,20.96,22.35,22.4,22.57,22.22,22.05,21.89,21.32,20.81,21.03,21.97,21.68,21.63,21.77,21.91,20.46,20.85,20.03,20.04,20.24,20.49,20.72,20.89,20.99,21.37,22.79,23.07,23.27,24.88,25.59,24.33,22.6,21.87,23.34,23.75,20.79,21.59,21.56,21.9,19.95,20.79,20.01,20.09,20.27,20.55,20.65,20.07,20.54,20.62,22.52,22.92,20.17,21.77,22.12,21.39,21.3,21.0,20.78,20.88,20.3,20.8,20.61,21.01,21.3,20.5,19.36,18.87,19.35,19.71,20.04,20.06,20.34,20.75,21.66,20.86,21.64,19.93,21.48,21.53,21.34,20.87,21.92,22.87,21.36,21.34,19.3,18.14,18.36,19.84,20.77,21.73,22.08,22.33,22.51,22.73,22.15,22.49,21.45,21.22,21.47,21.4,21.16,20.79,20.34,19.9,19.57,20.24,20.04,20.14,20.23,20.52]},"Building_2":{"battery_soc":[0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2],"dhw_soc":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],"grid_kwh":[0.187,0.186,0.185,0.187,0.202,0.231,0.248,0.345,2.934,0.672,0.633,0.669,0.97,0.787,1.197,2.665,1.802,1.708,1.202,1.013,1.561,1.204,0.913,0.323,0.212,0.379,0.46,0.201,0.202,0.231,0.243,0.245,2.33,0.564,1.008,1.188,1.013,1.471,1.827,2.989,1.635,1.344,1.37,0.795,0.66,0.629,0.641,0.483,0.374,0.313,0.274,0.251,0.247,0.262,0.256,0.358,0.371,0.5,0.455,1.85,0.977,0.827,0.738,0.363,0.47,0.676,0.656,0.581,0.607,0.85,0.532,0.268,0.202,0.232,0.416,0.352,0.202,0.231,0.254,0.361,0.365,0.437,0.441,0.449,0.404,0.336,0.454,0.428,0.723,1.826,0.673,0.718,0.518,0.511,0.503,0.58,0.518,0.23,0.185,0.187,0.202,0.231,0.241,1.601,0.461,0.556,0.868,1.536,1.003,0.964,1.034,1.16,1.171,1.317,1.129,0.737,0.781,0.715,0.584,0.374,0.514,0.278,0.185,0.187,0.202,0.231,0.298,0.426,0.569,0.516,0.582,0.598,1.149,0.966,0.734,0.822,0.925,1.038,1.108,0.679,0.552,0.488,0.412,0.7,0.563,0.186,0.185,0.187,0.202,0.231,1.118,0.35,0.594,1.127,0.674,0.467,0.628,0.712,0.926,1.0,1.022,1.022,0.857,0.653,0.745,0.511,0.528,0.67,0.764,0.686,0.185,0.187,0.202,0.231,0.24,0.971,0.4,0.494,0.514,0.822,0.672,0.699,0.885,0.926,0.955,1.009,0.942,0.855,0.746,0.725,0.619,0.373,0.307,0.389,0.234,0.217,0.218,0.236,0.332,0.536,0.653,0.738,0.704,0.896,0.874,1.035,1.117,1.233,1.168,1.161,1.067,0.811,0.711,0.665,1.343,0.341,0.295,0.257,0.23,0.215,0.219,0.24,0.318,0.415,0.602,0.865,0.886,0.916,1.168,9.8,1.415,1.521,1.533,1.541,1.605,1.062,0.854,0.539,0.654,0.746,0.36,0.205,0.227,0.235,0.25,0.275,0.345,0.705,2.349,0.969,1.006,0.935,0.907,1.331,1.137,1.166,1.158,1.182,1.092,0.82,0.642,0.518,0.525,0.6,0.753,0.396,0.185,0.187,0.214,0.249,0.358,0.482,0.759,1.709,0.658,0.777,1.085,1.057,1.105,1.215,1.205,1.706,1.345,0.994,0.857,0.933,0.999,0.492,0.207,0.225,0.471,0.223,0.232,0.254,0.353,0.554,0.544,0.592,0.517,0.843,0.679,0.668,1.592,1.638,0.706,0.994,1.2,0.983,1.252,0.897,1.846,0.524,0.596,0.664,0.198,0.187,0.202,0.231,0.414,0.589,2.082,0.685,1.01,0.714,0.885,0.797,0.929,1.012,1.021,2.391,1.077,1.195,0.806,0.751,0.616,0.448,0.681,0.483,0.185,0.187,0.206,0.24,0.452,0.622,6.144,3.19,1.807,1.768,0.757,0.853,1.282,1.227,1.225,1.287,1.232,0.937,0.991,1.101,0.608,0.452,0.497,0.485,0.198,0.221,0.215,0.266,0.444,0.613,0.758,0.985,0.842,0.941,1.124,1.163,2.019,1.939,1.246,1.269,1.286,1.051,0.856,1.04,0.466,0.394,0.568,0.607,0.231,0.198,0.447,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.653,1.154,0.459,0.385,0.638,0.576,0.185,0.192,0.22,0.253,2.199,0.708,0.975,2.712,0.878,0.926,2.237,1.089,1.578,1.481,1.102,0.808,0.802,0.705,0.748,0.601,0.35,0.435,0.696,0.387,0.185,0.187,0.202,0.231,0.278,6.647,1.482,1.563,0.569,0.533,0.915,2.424,6.174,0.663,0.577,0.416,0.357,0.305,0.443,0.45,0.233,0.306,0.613,0.287,0.185,0.187,0.202,0.231,0.252,0.309,0.462,0.816,0.836,2.079,2.033,0.354,0.376,0.551,0.778,0.395,0.796,0.526,0.613,0.496,0.507,0.597,0.66,0.291,0.185,0.187,0.202,0.231,0.266,0.373,0.466,0.572,0.602,0.747,0.823,0.831,1.042,1.565,1.265,0.827,2.076,0.823,0.744,0.702,0.569,0.479,0.63,0.658,0.185,0.187,0.202,0.231,0.359,2.37,0.984,1.299,0.681,0.976,1.447,1.103,1.875,1.984,0.872,1.098,1.164,0.918,0.71,0.814,0.966,1.008,0.385,0.192,0.215,0.457,0.231,0.255,0.368,1.009,3.283,9.608,1.758,1.698,1.542,0.953,1.274,1.445,1.453,1.458,1.829,1.082,1.002,0.906,0.481,0.89,0.818,0.442,0.202,0.216,0.241,0.269,0.389,1.799,1.068,0.766,2.297,0.715,1.178,1.8,1.831,1.158,2.944,1.33,2.405,1.014,1.124,0.708,0.401,0.798,0.713,0.186,0.188,0.216,0.248,0.28,1.013,0.752,0.762,0.72,0.811,0.904,1.367,0.896,1.48,1.583,1.483,0.616,0.58,0.718,0.739,0.65,0.492,0.441,0.33,0.245,0.249,0.247,0.257,0.279,0.369,0.475,0.589,0.698,0.664,0.687,0.862,0.821,0.952,1.007,1.017,1.095,1.025,0.991,0.888,0.851,5.033,0.691,0.413,0.351,0.226,0.232,0.241,0.267,0.467,0.748,1.804,0.926,0.907,1.525,0.928,1.054,1.164,1.302,1.39,1.489,3.266,1.215,1.019,0.949,0.94,0.648,0.664,0.402,0.288,0.242,0.258,0.281,0.447,0.621,1.257,0.909,0.89,0.963,1.7,1.222,1.457,1.592,1.718,1.883,1.726,1.224,1.008,1.208,1.098,1.366,0.579,1.241,0.361,0.264,0.277,0.302,1.734,0.617,1.13,1.053,1.231,1.078,1.197,1.483,2.018,1.833,1.453,1.494,1.359,1.588,0.999,0.877,0.552,0.461,0.59,0.574,0.272,0.26,0.273,0.307,0.395,0.539,0.89,1.092,1.14,1.29,1.624,1.632,1.964,2.077,1.855,1.711,1.995,1.325,0.959,0.855,0.502],"indoor_c":[24.28,24.26,24.21,24.12,24.0,23.89,24.2,24.85,24.99,25.0,25.0,25.0,25.46,25.66,25.65,25.87,26.17,26.25,26.3,26.46,25.57,24.73,23.96,25.42,25.97,24.94,24.06,25.36,26.0,26.02,26.45,26.83,24.44,25.53,25.77,25.61,25.97,25.28,25.2,24.87,25.92,25.96,26.25,26.48,26.48,26.37,25.84,25.91,25.88,26.1,26.35,26.61,26.81,26.86,27.27,27.58,27.69,27.64,27.39,26.93,26.67,25.39,25.48,26.82,26.73,26.64,26.6,26.53,26.14,24.91,24.57,25.4,25.83,25.92,24.47,24.48,25.61,25.72,26.05,26.33,26.51,26.83,27.01,27.22,27.36,27.41,27.3,27.31,26.84,26.65,26.79,26.72,26.69,26.59,25.99,24.94,23.92,24.89,25.54,25.71,25.71,25.57,26.16,25.39,25.86,26.19,24.31,24.24,24.54,24.8,24.77,24.95,25.31,25.53,25.41,25.37,25.46,25.54,25.63,25.69,24.65,25.31,26.01,26.25,26.31,26.26,26.56,26.58,26.49,26.41,26.43,26.43,25.5,25.36,26.09,26.46,26.48,26.49,26.7,26.57,26.52,26.53,26.55,24.62,24.5,26.02,26.5,26.69,26.68,26.53,25.74,26.24,25.59,23.71,25.57,25.9,25.91,25.95,25.77,26.04,26.16,26.28,26.4,26.27,26.32,26.28,25.78,24.44,23.08,22.38,24.39,25.61,25.73,25.56,25.64,25.4,25.59,25.66,25.72,25.59,25.69,25.92,25.83,26.05,26.13,26.21,26.25,26.25,26.18,26.07,25.98,26.05,25.99,26.06,26.17,26.29,26.34,26.28,26.39,26.37,26.24,26.24,26.29,26.3,26.31,26.34,26.08,26.14,26.12,26.09,26.09,26.04,25.95,25.88,24.94,25.57,25.44,25.57,25.72,25.89,26.01,26.04,26.2,26.23,26.01,25.87,25.78,25.72,25.68,25.03,25.26,25.32,25.29,25.26,25.24,25.31,25.42,25.55,24.72,23.83,24.74,25.71,26.0,26.26,26.46,26.57,26.72,25.32,23.35,24.33,23.86,24.38,24.96,25.06,25.03,25.26,25.36,25.41,25.43,25.4,25.48,25.55,25.19,24.45,23.3,24.08,25.32,25.86,26.18,26.35,26.5,26.43,26.17,25.08,25.49,25.47,25.5,25.51,25.36,25.48,25.56,25.5,25.68,25.61,25.57,25.42,24.05,24.56,25.73,25.78,25.83,25.92,26.0,26.03,26.21,26.21,25.93,25.89,25.91,25.88,25.89,25.97,24.06,24.05,25.79,25.8,26.01,25.85,25.67,25.52,24.79,24.96,24.22,23.81,25.18,25.81,25.98,25.92,26.09,26.1,24.47,25.22,25.43,25.49,25.53,25.71,25.6,25.72,25.75,24.46,25.32,25.22,25.39,25.44,25.5,25.34,23.8,24.0,25.46,25.97,26.12,26.04,26.09,26.06,25.49,23.98,23.72,25.07,25.62,25.5,25.3,25.38,25.39,25.37,25.36,25.32,25.15,24.31,24.66,24.97,24.45,24.83,25.86,26.11,26.23,26.15,26.18,26.06,25.92,25.77,25.78,25.69,25.59,25.54,24.04,23.65,24.75,25.05,25.01,25.09,25.24,25.35,25.47,25.51,24.26,23.66,25.03,25.83,25.73,26.01,26.34,26.5,26.54,26.63,26.69,27.01,27.39,27.91,28.54,29.11,29.67,30.24,30.89,31.44,28.82,28.24,27.48,27.07,24.65,24.27,25.84,26.45,26.7,26.79,24.32,24.53,24.23,23.62,24.97,25.35,24.23,24.91,23.86,24.08,24.85,24.82,24.89,25.04,25.09,25.12,25.19,24.55,22.96,23.6,24.76,25.19,25.48,25.64,25.73,25.55,25.62,25.76,25.74,25.8,25.9,25.69,25.37,25.71,25.93,25.99,26.04,25.96,25.84,25.74,25.72,25.14,23.86,24.42,25.2,25.48,25.62,25.64,25.78,25.81,25.85,24.5,24.07,25.43,25.78,25.88,25.74,25.7,25.77,25.73,25.53,25.69,25.67,25.64,25.02,23.62,22.53,23.67,24.99,25.38,25.46,25.37,25.7,25.81,25.77,25.77,25.79,25.7,25.72,25.83,25.65,24.6,24.87,25.83,24.56,25.38,25.42,25.44,25.49,25.53,23.75,23.54,25.13,25.7,25.83,25.74,25.84,24.02,23.69,23.05,24.5,24.52,23.61,24.43,23.27,23.17,24.98,25.17,25.2,25.24,25.26,25.31,24.11,22.99,24.23,25.46,25.68,25.84,25.95,25.9,25.98,25.47,25.18,24.61,24.45,23.38,23.88,25.16,25.02,25.09,25.1,25.12,25.14,25.2,25.22,25.23,25.3,23.61,22.89,24.66,25.46,25.81,26.0,26.02,25.97,23.5,23.79,24.89,23.51,24.47,24.69,23.37,23.32,24.58,23.21,24.15,23.41,24.18,23.49,23.81,24.58,22.74,22.68,24.42,25.06,25.39,25.66,25.81,24.51,24.49,24.83,25.38,25.67,24.59,23.96,24.75,23.2,23.17,22.4,24.13,24.89,25.0,25.05,25.13,24.76,24.64,24.9,25.27,25.35,25.46,25.58,25.7,25.89,25.89,25.76,25.77,25.54,25.48,25.4,25.49,25.36,25.46,25.46,25.44,25.45,25.42,25.32,25.11,23.02,23.76,24.17,24.28,24.83,24.98,25.16,25.31,25.52,25.09,24.27,24.91,25.24,24.87,25.3,25.21,25.37,25.53,25.53,25.51,24.1,24.94,24.9,24.78,24.61,24.48,24.3,24.57,25.04,25.46,25.62,25.67,25.81,25.73,25.19,25.41,25.57,25.67,25.48,25.53,25.32,25.35,25.05,24.83,24.94,25.16,25.16,24.21,24.09,23.59,23.95,23.38,24.77,25.2,25.42,25.51,24.1,24.78,23.58,24.11,24.52,24.51,24.48,24.12,23.36,23.62,24.28,24.29,24.36,24.22,24.52,24.61,24.75,24.86,24.02,23.7,24.8,25.3,25.52,25.54,25.59,25.48,25.15,24.95,24.87,24.78,24.71,24.68,24.4,24.34,24.24,24.25,24.09,24.6,24.76,24.79,25.0]},"Building_3":{"battery_soc":[0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2],"dhw_soc":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],"grid_kwh":[0.563,0.473,0.446,0.433,0.435,0.5,1.033,0.884,2.187,2.132,1.284,0.969,0.731,0.829,0.891,1.994,1.803,1.649,1.968,1.807,1.774,2.584,2.719,2.948,0.809,0.645,0.577,1.238,0.461,0.608,0.55,0.63,0.852,0.872,0.804,0.82,0.798,0.894,1.726,2.027,3.019,2.253,2.421,2.045,1.615,1.693,1.107,0.639,0.589,0.559,0.535,0.519,0.525,0.572,0.535,0.508,1.347,0.915,1.691,0.415,0.565,8.096,1.113,1.721,2.25,1.528,2.802,1.989,1.722,1.679,0.726,0.479,0.478,0.484,0.476,0.472,0.47,0.56,2.248,0.742,2.124,0.749,1.171,0.453,1.069,0.202,0.114,0.249,0.422,0.807,1.332,1.114,1.238,1.352,1.374,0.742,0.579,0.514,0.494,0.481,0.47,0.528,0.458,0.391,0.2,0.105,-0.034,-0.076,0.858,0.495,0.575,0.952,1.225,2.137,2.804,4.356,2.4,0.973,1.143,0.754,0.656,0.592,0.549,0.497,0.492,0.553,8.204,0.944,1.117,1.147,0.941,0.355,0.469,0.49,0.703,1.24,1.54,1.379,1.715,1.358,3.324,1.408,0.834,0.723,0.65,0.917,0.898,0.844,0.592,0.578,1.476,1.06,0.654,0.397,0.281,0.361,1.26,0.871,0.725,0.775,1.628,2.323,3.137,2.229,1.836,1.845,0.891,0.745,0.649,0.586,0.541,0.511,0.48,0.548,1.358,0.745,0.446,0.313,0.188,0.172,0.237,0.744,0.988,1.193,1.485,2.414,2.149,2.623,2.755,2.023,1.66,1.034,0.69,0.636,0.587,0.564,0.555,0.599,0.603,0.761,0.631,0.536,0.658,0.987,0.845,6.452,2.388,1.682,1.651,2.174,3.312,2.328,1.708,1.719,1.421,0.741,0.662,0.605,0.565,0.54,0.528,0.589,0.579,0.544,0.447,0.423,0.577,0.319,0.859,0.703,1.045,1.614,4.011,2.641,2.393,2.863,1.419,2.082,0.97,0.84,0.97,0.92,0.844,0.561,0.48,0.601,4.874,0.917,0.805,1.241,0.534,0.411,0.792,0.886,0.994,1.375,1.684,1.595,2.146,2.303,2.388,9.131,1.259,1.141,0.599,0.637,0.684,0.661,0.657,0.714,0.617,0.536,0.625,0.764,0.382,0.507,0.561,1.241,0.84,1.134,1.53,2.179,2.146,4.945,4.652,5.853,9.45,1.516,0.881,0.593,0.569,0.552,0.551,0.606,1.792,0.574,0.528,0.44,0.794,0.37,0.42,0.379,0.663,1.167,1.71,1.728,1.96,2.549,1.729,2.494,2.664,1.286,0.673,0.622,0.58,0.552,0.526,0.591,0.613,0.785,0.418,0.334,0.219,0.282,0.305,0.403,0.493,1.076,1.46,1.527,1.917,3.356,3.53,1.587,1.556,1.479,0.664,0.62,0.585,0.563,0.54,0.598,0.768,2.533,1.353,0.967,0.685,0.618,0.552,0.556,0.874,1.251,1.729,2.102,2.715,2.296,2.326,1.591,1.314,3.385,0.757,0.647,0.614,0.592,0.586,0.63,0.647,0.638,0.83,1.126,1.079,1.134,1.553,1.127,1.493,1.787,2.459,1.761,2.065,2.472,2.609,1.864,1.226,0.811,0.724,0.666,0.628,0.6,0.587,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.082,1.939,1.791,0.631,1.084,0.593,0.579,0.568,0.567,0.622,0.91,0.988,0.719,0.858,1.673,0.796,0.874,0.753,0.931,1.151,1.215,1.42,1.489,1.38,1.647,1.299,0.812,0.841,0.575,0.563,0.551,0.543,0.542,0.602,2.226,0.732,1.068,0.706,0.581,0.492,1.007,0.706,0.793,0.803,0.736,0.665,1.249,0.949,1.561,1.361,0.834,0.804,1.27,0.776,0.521,0.512,0.495,1.692,0.73,0.558,0.78,0.769,0.578,0.617,0.514,0.572,0.573,0.484,0.834,1.975,1.368,1.391,2.159,3.745,2.419,0.82,0.525,0.513,0.509,1.815,0.524,0.609,0.866,2.932,0.886,0.497,0.475,1.125,0.698,0.725,0.948,1.168,1.311,1.565,1.591,1.445,1.725,1.611,1.096,0.889,0.661,0.613,0.586,0.565,0.548,0.634,8.641,0.92,2.622,1.322,0.42,0.601,0.535,0.613,1.087,1.637,1.918,2.038,2.217,3.475,2.241,2.363,1.288,0.808,0.73,0.677,0.633,0.6,0.586,0.637,0.651,2.323,0.863,0.977,0.917,1.189,2.025,1.51,2.116,2.496,2.828,2.111,3.038,1.88,1.644,1.545,1.298,0.852,0.8,0.748,0.706,0.676,0.671,0.709,0.656,0.81,0.955,1.02,1.012,0.971,1.19,1.186,1.281,1.755,4.027,2.367,2.992,2.196,1.889,2.179,1.534,0.929,0.814,0.737,0.699,0.581,0.597,0.64,0.957,0.922,1.024,0.869,0.572,1.043,0.856,0.72,0.808,0.95,1.266,1.62,1.983,2.28,1.924,1.448,1.216,0.673,0.636,0.615,0.598,0.585,0.589,0.671,0.643,0.594,0.97,1.857,0.499,0.541,1.542,1.496,1.311,1.227,1.175,2.316,1.937,1.67,2.065,1.637,2.575,1.149,1.905,0.655,0.598,0.591,0.562,3.354,0.9,0.883,1.806,1.471,0.414,0.377,0.737,0.53,0.752,1.076,1.373,2.043,2.442,10.08,2.374,2.07,1.379,1.041,0.858,0.744,0.683,0.64,0.618,0.668,1.154,1.676,5.556,7.639,2.401,0.942,1.24,2.053,1.408,1.747,2.14,2.081,2.099,2.959,2.074,10.153,2.433,1.072,0.834,0.753,0.701,0.667,0.656,0.695,0.737,1.006,0.775,0.831,0.864,3.518,1.473,1.025,1.503,1.906,1.666,2.159,10.01,2.211,1.709,1.576,1.716,1.589,0.8,0.74,0.7,0.671,0.668,0.705,0.696,0.673,0.861,1.962,0.921,0.982,1.897,2.298,2.228,2.679,2.766,2.987,2.982,2.241,2.032,1.8,3.695],"indoor_c":[24.43,24.44,24.44,24.44,24.36,24.29,24.11,23.35,23.33,23.33,23.33,23.33,23.1,22.81,22.46,22.34,22.04,22.87,23.26,23.79,24.0,24.11,23.58,22.63,23.22,23.65,23.94,24.63,24.94,24.62,25.03,25.49,25.27,24.87,24.59,24.34,24.15,23.93,23.58,22.75,22.0,22.52,23.01,22.36,22.28,22.31,23.47,24.18,24.53,24.77,24.94,25.04,25.13,25.24,25.45,25.24,24.82,24.88,24.05,24.03,23.92,23.18,22.87,22.56,22.75,22.98,22.65,22.64,22.65,22.64,23.08,24.05,24.34,24.52,24.7,24.84,24.99,25.13,24.6,24.98,24.54,24.86,24.95,24.8,24.61,24.45,24.35,24.38,24.33,24.2,24.37,24.41,23.81,23.21,23.21,23.62,23.96,24.02,24.11,24.21,24.38,24.93,25.4,25.63,25.63,25.46,25.2,24.96,24.8,24.81,24.51,24.3,24.06,23.53,23.72,22.49,23.03,23.43,23.67,23.92,24.22,24.28,24.39,24.57,24.8,24.89,24.81,24.94,24.06,23.63,23.38,22.96,22.71,22.44,22.19,22.1,21.86,22.84,23.45,23.61,22.9,23.46,23.8,24.09,24.36,24.2,24.13,24.15,24.45,24.74,25.09,25.16,25.23,25.15,24.88,24.63,24.25,24.03,23.79,23.51,23.23,22.87,22.9,22.99,23.3,23.47,23.85,24.14,24.28,24.45,24.54,24.66,24.88,25.01,24.93,25.17,25.12,24.94,24.81,24.5,24.21,23.54,23.19,22.98,22.59,21.6,21.76,21.98,22.09,22.51,23.09,23.36,23.57,23.75,23.91,23.98,24.05,24.18,24.41,24.61,24.67,24.68,24.53,24.32,24.17,23.39,23.31,23.13,23.1,22.88,22.39,22.88,23.1,23.31,23.48,23.74,23.92,24.1,24.23,24.31,24.43,24.52,24.78,24.99,25.08,25.0,24.79,24.46,24.06,23.7,23.44,22.64,21.61,21.35,21.26,21.09,21.58,21.83,22.25,22.52,22.04,21.96,22.03,23.0,23.85,24.12,22.85,23.36,23.67,23.64,23.53,23.34,22.73,22.44,22.34,22.39,22.06,22.66,22.55,21.92,21.9,21.47,22.29,23.24,23.65,23.6,23.47,23.58,23.7,23.87,24.39,24.8,24.3,24.0,23.62,23.4,23.28,22.99,22.69,22.48,22.48,22.73,23.13,22.62,22.0,20.79,20.81,22.4,23.01,23.27,23.52,23.78,24.06,24.34,24.27,24.45,23.95,23.57,23.33,23.18,22.99,22.77,22.55,22.55,22.45,22.5,22.49,22.54,22.77,22.38,22.24,23.26,23.66,23.82,23.95,24.12,24.37,24.58,24.99,25.27,25.22,24.89,24.52,24.24,23.94,23.66,23.48,23.1,22.52,22.84,23.21,22.57,22.44,22.7,22.76,23.62,23.86,24.1,24.23,24.37,24.56,24.61,24.79,24.14,24.32,24.27,24.18,23.96,23.59,23.36,23.11,22.54,22.16,22.3,21.86,22.04,22.21,22.48,22.73,22.2,22.95,23.36,23.66,23.88,24.05,24.22,24.48,24.65,24.66,23.99,23.59,23.3,23.0,22.71,22.48,22.11,21.84,22.16,22.42,22.63,22.81,22.99,23.25,23.51,23.73,23.92,24.07,24.16,24.24,24.7,24.99,24.89,24.28,24.03,23.62,23.51,23.45,23.53,23.95,24.38,25.15,25.91,26.8,27.4,23.48,23.41,23.29,24.34,24.51,24.61,24.68,24.72,24.78,24.86,25.04,25.07,24.55,24.02,23.58,23.38,23.13,22.89,22.68,22.49,22.37,22.6,22.58,22.7,22.77,22.85,23.01,23.65,23.91,24.0,24.12,24.27,24.44,24.62,24.17,24.03,23.95,24.39,24.41,24.22,23.9,23.68,23.52,23.4,22.95,23.47,23.45,23.65,23.72,23.75,23.92,24.04,24.26,24.31,24.42,24.59,24.82,24.51,24.75,24.84,24.28,24.1,23.99,23.73,23.49,23.38,23.31,23.16,23.22,22.94,23.25,23.32,23.35,22.2,22.72,23.58,23.97,24.14,24.28,23.73,24.2,24.49,24.86,24.2,23.88,23.6,23.44,23.24,23.05,22.81,22.61,22.48,22.44,22.99,23.38,23.61,23.79,23.92,24.14,23.74,24.3,24.44,24.53,24.63,24.78,24.9,24.69,24.93,23.99,24.08,23.94,23.65,23.43,23.27,23.14,22.9,22.06,22.04,21.9,21.59,21.82,21.98,22.68,23.22,23.43,23.7,23.86,23.98,24.11,24.24,24.48,23.87,24.07,23.97,23.78,23.5,22.78,22.17,21.43,21.1,20.83,21.18,21.18,21.49,21.79,22.06,22.23,22.57,22.66,22.81,22.94,23.03,23.11,23.23,23.74,24.2,24.2,23.7,23.17,22.88,22.6,22.38,22.13,21.71,20.99,20.85,20.7,21.06,21.65,21.86,22.12,22.46,22.65,22.82,22.99,23.56,23.82,24.04,24.26,24.25,23.72,23.59,23.37,23.14,22.86,22.62,22.47,22.37,22.42,22.66,22.34,22.16,22.31,22.5,22.66,23.41,23.7,23.83,23.97,24.12,24.28,24.46,24.73,24.84,24.6,24.42,23.71,23.12,22.9,22.68,22.48,22.32,22.09,22.41,22.72,22.72,22.43,22.5,22.0,22.97,23.31,23.47,23.62,23.8,24.04,23.17,23.71,24.02,23.58,23.67,23.5,23.35,23.11,22.96,22.73,22.48,22.25,22.06,22.25,21.79,22.17,22.37,22.67,22.95,23.25,23.37,23.48,23.66,23.89,24.13,24.22,24.25,23.67,23.03,22.59,22.9,22.52,22.19,21.66,21.31,21.22,21.58,21.94,22.14,22.49,22.06,22.46,22.78,23.0,23.26,23.45,23.65,23.84,24.05,24.32,24.43,24.41,24.2,23.88,22.49,22.62,22.37,22.24,22.04,21.83,21.77,21.48,21.99,22.38,22.64,22.92,23.15,23.29,23.52,23.68,23.8,23.91,24.05,24.26,24.3,24.19,23.29,23.29,23.03,22.34,21.47,21.02,20.78,20.59,20.8,21.24,21.68,22.03,22.34,21.65]}},"complete":true,"cost_usd":[0.0413,0.0849,0.1241,0.1603,0.1964,0.2464,0.33,0.3814,0.6663,0.7621,0.8181,0.9188,0.9761,1.0296,1.118,1.557,1.9468,2.2693,2.4031,2.5534,2.7429,2.9065,3.0492,3.203,3.287,3.3492,3.4008,3.4618,3.5306,3.6055,3.6796,3.7214,3.8135,3.855,3.9311,4.0315,4.2769,4.4651,4.6306,4.8384,5.0633,5.2464,5.4582,5.6087,5.7897,5.9416,6.0919,6.2045,6.2902,6.3616,6.424,6.48,6.5337,6.5884,6.6396,6.7017,6.8043,6.8452,6.9073,6.9728,7.0174,7.2756,7.3291,7.4711,7.6424,7.7686,7.9165,8.0279,8.1231,8.2409,8.2968,8.348,8.3876,8.4271,8.4693,8.5062,8.5374,8.6007,8.6835,8.7396,8.825,8.8648,8.9158,8.9443,8.9874,9.0055,9.0221,9.0618,9.1507,9.4274,9.5262,9.6193,9.7148,9.7984,9.8825,9.9556,10.0115,10.0593,10.1032,10.144,10.2127,10.2534,10.317,10.4347,10.4799,10.5011,10.5264,10.5712,10.6254,10.6796,10.7454,10.9481,11.1891,11.5854,11.768,11.9759,12.1099,12.1928,12.2794,12.3452,12.4015,12.4457,12.4988,12.5507,12.5977,12.6623,13.0736,13.1369,13.2048,13.4231,13.471,13.4988,13.5459,13.5884,13.6468,13.7678,13.9125,14.2339,14.3739,14.5157,14.8889,15.0073,15.0871,15.1609,15.2333,15.3154,15.3825,15.4411,15.4886,15.5341,15.6634,15.7336,15.8434,15.8955,15.9252,16.1143,16.2068,16.2856,16.368,16.5291,16.7309,17.0599,17.2256,17.3432,17.4779,17.5745,17.6344,17.6916,17.7466,17.7959,17.828,17.8583,17.8881,18.0032,18.0625,18.1184,18.1893,18.2128,18.2333,18.2622,18.2887,18.3361,18.4001,18.5601,18.7602,19.054,19.2015,19.3606,19.5083,19.6217,19.7113,19.7717,19.8296,19.8763,19.916,19.9536,19.9901,20.0272,20.0941,20.1428,20.2444,20.287,20.3284,20.4037,20.4881,20.7569,20.936,21.1005,21.2454,21.4151,21.6062,21.7628,21.8808,21.9942,22.1103,22.187,22.2508,22.3122,22.3748,22.4251,22.4722,22.5607,22.6101,22.6572,22.6977,22.7349,22.7773,22.813,22.8848,23.2143,23.3224,23.4659,23.7949,23.9849,24.2046,24.3891,24.5224,24.6278,24.7236,24.799,24.8744,24.9523,25.0236,25.0811,25.1324,25.1861,25.3647,25.4676,25.6149,25.7022,25.7595,25.8054,25.8628,25.9494,26.2457,26.539,26.8678,27.1901,27.3577,27.5004,27.6301,27.9445,28.025,28.1294,28.2024,28.2693,28.33,28.3858,28.4393,28.4937,28.5483,28.6013,28.6416,28.7137,28.7666,28.8367,28.8924,28.9803,29.067,29.4188,30.0524,30.495,30.6976,30.9535,31.1852,31.4303,31.7703,31.8754,31.9386,31.9957,32.0578,32.1083,32.1565,32.2057,32.2915,32.3435,32.3892,32.4193,32.4575,32.4929,32.5249,32.5609,32.6483,32.9582,33.2821,33.5904,33.7549,33.9509,34.117,34.2623,34.43,34.5261,34.5983,34.6782,34.7361,34.7861,34.8318,34.8779,34.9448,35.0829,35.1671,35.1968,35.2327,35.2617,35.3544,35.443,35.4845,35.6225,35.8126,36.1134,36.2647,36.473,36.6597,36.7763,36.881,36.9664,37.0404,37.1151,37.1736,37.2253,37.3092,37.359,37.4186,37.5325,37.7981,37.9193,37.9919,38.0615,38.1079,38.1555,38.2798,38.529,38.8195,39.2357,39.4278,39.5849,39.7345,39.9204,40.0129,40.1524,40.2229,40.2992,40.3612,40.4173,40.4685,40.5205,40.5783,40.6985,40.7653,40.8443,40.9094,40.9714,41.1912,41.2858,41.4166,41.5321,41.7492,41.926,42.0801,42.2353,42.4044,42.5331,42.6077,42.6617,42.7162,42.7685,42.8077,42.8441,42.8865,42.8865,42.8865,42.8865,42.8865,42.8865,42.8865,42.8865,42.8865,42.8865,42.8865,42.8865,42.8865,42.8865,42.8865,42.8865,43.0044,43.1306,43.2373,43.3005,43.3884,43.4684,43.5299,43.5852,43.6372,43.7772,43.9152,43.9882,44.0542,44.1595,44.2523,44.3074,44.4163,44.5953,44.6886,44.9254,45.1672,45.4293,45.5553,45.7335,45.8421,46.0189,46.085,46.145,46.21,46.2748,46.3296,46.4058,46.4529,46.5007,46.5959,46.83,46.9253,47.023,47.057,47.0868,47.1629,47.2614,47.4931,47.6198,47.7429,47.8645,47.9483,48.0465,48.1457,48.2324,48.2897,48.3457,48.424,48.521,48.5726,48.6196,48.6899,48.8046,48.8578,48.9486,49.0304,49.0766,49.1178,49.2104,49.2847,49.3117,49.3429,49.4426,49.6531,49.9092,49.9981,50.0894,50.2026,50.3816,50.5,50.6207,50.6877,50.7432,50.7934,50.8773,50.9339,50.9799,51.0336,51.1458,51.1914,51.2226,51.254,51.3411,51.399,51.4588,51.5528,51.7978,52.0965,52.4037,52.6573,52.7887,52.9004,53.0295,53.1128,53.1777,53.2466,53.3241,53.3819,53.4335,53.4806,53.5834,53.8829,54.0033,54.1359,54.2123,54.2537,54.3704,54.4577,54.5218,54.6369,55.0248,55.3738,55.7227,55.8955,56.0873,56.2471,56.3881,56.4893,56.5719,56.6389,56.6867,56.7308,56.7797,56.8209,56.8634,56.9223,57.0465,57.1965,57.5587,57.8256,57.9232,58.0771,58.1956,58.421,58.7775,58.9807,59.1643,59.3867,59.5583,59.7056,59.8323,59.9374,60.0379,60.116,60.1842,60.2304,60.2738,60.3257,60.3848,60.4459,60.5477,60.6066,60.6582,60.7798,60.8321,61.1058,61.3015,61.3955,61.5227,61.8181,62.038,62.2616,62.4127,62.5548,62.6894,62.8332,62.9113,62.9882,63.0559,63.1099,63.1588,63.2149,63.3646,63.4875,63.5951,63.6657,63.712,63.778,63.8348,63.903,63.966,64.0893,64.3062,64.5734,64.7687,64.868,65.0596,65.1881,65.3262,65.4414,65.5005,65.5608,65.6281,65.6904,65.7593,65.847,65.9232,66.0029,66.0776,66.1344,66.2089,66.2459,66.2821,66.3565,66.445,66.5342,66.7438,66.9877,67.341,67.4772,67.6128,67.7739,67.8876,68.1424,68.2395,68.3416,68.4086,68.4676,68.5204,68.5704,68.7005,68.7663,68.8464,68.9633,69.0332,69.0717,69.1272,69.1757,69.2219,69.3056,69.5746,69.9597,70.2917,70.5158,70.9318,71.1038,71.3511,71.4594,71.5637,71.6455,71.7186,71.7835,71.8407,71.8938,71.9785,72.1314,72.2602,72.4812,72.7304,72.8263,72.9447,73.0559,73.1728,73.357,73.6721,74.076,74.48,74.6744,74.9247,75.0792,75.6556,75.7981,75.9009,75.9789,76.0834,76.2026,76.2668,76.3252,76.3831,76.5081,76.5886,76.6664,76.7588,76.84,77.0141,77.1357,77.2333,77.3674,77.6835,78.0583,78.4635,78.8735,79.0672,79.2051,79.3524,79.5051,79.6215,79.6904,79.7497,79.7937,79.8366,79.8802,79.9264,79.9757,80.0699,80.1681,80.3597,80.5179,80.6165,80.7569,80.9273,81.1301,81.3492,81.5808,81.8152,82.0312,82.2098,82.3716,82.5272,82.6864],"discomfort_h":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,2.0,3.0,4.0,4.0,5.0,5.0,5.0,6.0,7.0,8.0,9.0,11.0,12.0,13.0,14.0,15.0,15.0,15.0,15.0,15.0,16.0,17.0,17.0,17.0,18.0,19.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,21.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,23.0,23.0,23.0,23.0,23.0,23.0,23.0,23.0,23.0,23.0,23.0,23.0,23.0,23.0,23.0,23.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,25.0,26.0,27.0,28.0,29.0,30.0,30.0,30.0,30.0,31.0,31.0,31.0,31.0,31.0,31.0,31.0,31.0,31.0,31.0,31.0,31.0,31.0,31.0,31.0,32.0,33.0,35.0,37.0,39.0,40.0,41.0,41.0,41.0,41.0,42.0,43.0,43.0,43.0,43.0,43.0,43.0,43.0,44.0,45.0,46.0,47.0,48.0,49.0,50.0,51.0,52.0,53.0,54.0,55.0,56.0,57.0,58.0,59.0,60.0,61.0,61.0,61.0,61.0,61.0,61.0,61.0,61.0,61.0,61.0,61.0,62.0,63.0,64.0,65.0,66.0,67.0,68.0,70.0,72.0,74.0,76.0,77.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,79.0,80.0,81.0,82.0,83.0,84.0,85.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,87.0,87.0,87.0,87.0,87.0,87.0,87.0,87.0,87.0,87.0,87.0,87.0,87.0,87.0,87.0,87.0,87.0,87.0,87.0,87.0,88.0,89.0,91.0,92.0,93.0,94.0,95.0,96.0,96.0,96.0,96.0,96.0,96.0,96.0,96.0,96.0,96.0,96.0,96.0,96.0,97.0,98.0,99.0,100.0,102.0,104.0,106.0,107.0,108.0,109.0,110.0,110.0,110.0,110.0,110.0,110.0,110.0,110.0,110.0,110.0,110.0,110.0,110.0,111.0,112.0,113.0,114.0,116.0,118.0,120.0,123.0,126.0,127.0,129.0,130.0,131.0,131.0,131.0,131.0,131.0,131.0,131.0,131.0,131.0,131.0,131.0,131.0,131.0,131.0,131.0,131.0,131.0,131.0,132.0,133.0,134.0,135.0,136.0,137.0,138.0,139.0,140.0,141.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,143.0,144.0,145.0,146.0,147.0,148.0,148.0,148.0,148.0,148.0,148.0,148.0,148.0,148.0,148.0,148.0,148.0,148.0,148.0,148.0,148.0,148.0,148.0,149.0,150.0,152.0,154.0,156.0,158.0,159.0,160.0,161.0,161.0,162.0,162.0,162.0,162.0,162.0,162.0,162.0,162.0,162.0,162.0,162.0,163.0,164.0,166.0,168.0,170.0,172.0,174.0,176.0,178.0,179.0,180.0,181.0,182.0,183.0,184.0,185.0,185.0,186.0,186.0,186.0,187.0,188.0,189.0,189.0,190.0,191.0,192.0,194.0,196.0,198.0,200.0,202.0,204.0,206.0,207.0,208.0,209.0,210.0,211.0,212.0,213.0,214.0,215.0,216.0,217.0,218.0,219.0,220.0,221.0,222.0,223.0,224.0,225.0,226.0,227.0,228.0,229.0,230.0,231.0,232.0,233.0,234.0,235.0,236.0,237.0,238.0,239.0,239.0,239.0,240.0,241.0,241.0,242.0,243.0,244.0,245.0,246.0,248.0,249.0,250.0,251.0,252.0,253.0,254.0,255.0,256.0,257.0,257.0,257.0,257.0,257.0,257.0,257.0,257.0,257.0,257.0,257.0,257.0,257.0,257.0,258.0,260.0,262.0,264.0,266.0,268.0,269.0,270.0,271.0,272.0,273.0,273.0,273.0,273.0,274.0,274.0,274.0,274.0,274.0,275.0,276.0,277.0,278.0,279.0,281.0,283.0,285.0,287.0,288.0,290.0,291.0,292.0,293.0,294.0,295.0,296.0,297.0,298.0,299.0,299.0,300.0,301.0,301.0,302.0,303.0,304.0,305.0,306.0,307.0,309.0,311.0,313.0,315.0,316.0,317.0,318.0,319.0,320.0,321.0,322.0,323.0,323.0,323.0,324.0,324.0,325.0,326.0,327.0,328.0,330.0,332.0,334.0,336.0,338.0,340.0,342.0,344.0,346.0,348.0],"district_grid_kwh":[1.428,1.505,1.355,1.254,1.245,1.731,2.889,1.763,9.774,3.287,1.561,3.455,1.967,1.835,3.033,7.483,6.644,5.496,4.59,5.157,6.502,5.611,4.935,5.313,2.906,2.15,1.782,2.11,2.376,2.591,2.559,1.447,2.937,1.367,2.63,3.47,8.481,6.508,5.72,7.182,7.773,6.33,7.322,5.2,6.256,5.252,5.194,3.894,2.96,2.47,2.155,1.937,1.856,1.89,1.77,2.147,3.545,1.297,1.861,1.522,0.774,8.602,1.79,4.906,5.922,4.363,5.111,3.852,3.293,4.069,1.935,1.768,1.37,1.366,1.458,1.277,1.078,2.185,2.862,1.927,2.93,1.364,1.75,0.977,1.479,0.623,0.393,0.365,1.515,4.717,3.387,3.195,3.275,2.867,2.91,2.527,1.93,1.652,1.52,1.409,2.374,1.408,2.199,4.036,1.553,0.726,0.4,1.158,1.716,1.858,2.26,3.453,4.108,6.755,6.265,7.132,4.595,2.846,2.993,2.272,1.946,1.528,1.837,1.793,1.624,2.234,14.217,2.169,2.332,7.487,1.643,0.541,1.309,1.115,2.005,1.689,2.467,5.478,4.803,4.867,12.803,4.062,2.756,2.552,2.501,2.839,2.32,2.023,1.642,1.576,4.467,2.408,3.766,1.79,1.017,6.488,3.173,2.703,2.828,2.745,3.44,5.607,5.683,4.035,4.621,3.315,2.07,1.976,1.903,1.704,1.108,1.048,1.031,3.978,2.049,1.919,2.43,0.517,0.256,0.583,0.595,1.626,2.196,2.728,3.41,5.008,5.06,5.457,5.067,3.89,3.098,2.089,2.0,1.615,1.371,1.299,1.264,1.281,2.314,1.681,3.513,1.473,1.431,2.602,2.919,9.291,6.191,5.687,5.009,5.866,6.606,5.413,4.078,3.919,4.015,2.651,2.203,2.124,2.162,1.742,1.625,3.061,1.708,1.627,1.398,1.02,1.239,1.081,2.482,11.388,3.738,4.962,11.371,6.567,7.595,6.376,4.61,3.643,3.311,2.605,2.608,2.693,2.462,1.988,1.772,1.857,6.174,3.531,5.053,2.995,1.965,1.574,1.971,2.968,10.165,5.0,5.604,5.494,5.75,4.896,4.45,10.784,2.784,3.608,2.522,2.315,2.095,1.931,1.847,1.882,1.887,1.817,1.292,2.446,1.816,2.405,1.911,3.014,2.975,5.996,10.799,7.544,6.951,8.78,7.948,8.408,11.751,3.634,2.183,1.974,2.148,1.747,1.665,1.699,2.967,1.783,1.568,0.617,0.828,0.9,0.978,1.234,2.998,5.282,5.52,5.256,5.642,6.724,5.696,4.984,5.799,3.32,2.497,2.764,2.001,1.726,1.579,1.594,2.314,4.736,2.89,0.713,0.858,0.792,3.181,3.039,1.191,2.353,3.24,5.127,5.189,7.144,6.405,4.0,3.62,2.954,2.555,2.584,2.023,1.788,2.897,1.723,2.06,3.908,9.112,3.986,2.331,2.275,1.591,1.633,4.263,4.248,4.951,7.094,6.588,5.392,5.131,6.378,3.196,4.822,2.437,2.636,2.145,1.938,1.77,1.797,2.001,4.154,2.309,2.732,2.249,2.143,7.597,3.27,4.523,3.99,7.504,6.113,5.327,5.365,5.845,4.447,2.577,1.867,1.884,1.81,1.354,1.258,1.464,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.075,4.363,3.689,2.183,3.04,2.766,2.125,1.913,1.798,4.838,4.768,2.505,2.265,3.612,3.182,1.893,3.733,6.142,3.201,4.036,4.123,4.467,4.322,6.112,3.727,6.066,2.283,2.073,2.249,2.238,1.894,2.633,1.628,1.653,3.291,8.031,3.27,3.352,1.164,0.947,2.608,3.38,7.948,2.159,2.099,2.072,2.876,3.367,3.404,2.977,1.98,1.933,2.709,3.35,1.785,1.624,2.43,3.966,1.838,3.115,2.807,1.562,1.179,3.177,2.421,0.864,1.071,1.7,3.588,4.364,3.052,3.13,3.882,6.143,4.092,4.172,2.316,1.919,1.733,2.902,1.956,1.592,1.854,3.85,1.565,0.697,0.765,2.988,1.987,2.052,3.223,4.177,5.09,5.236,8.701,4.507,3.832,4.43,2.879,2.245,2.381,2.679,1.996,1.784,1.63,3.55,10.355,4.131,4.549,2.434,1.418,4.005,2.995,2.197,3.948,6.611,5.949,5.947,5.929,6.577,5.484,4.838,3.497,2.856,2.313,1.654,1.525,1.69,1.423,1.471,2.036,4.291,5.184,12.522,9.224,3.376,5.317,4.097,7.792,12.321,7.027,6.345,7.686,5.935,5.089,4.38,3.635,3.474,2.697,2.359,1.597,1.499,1.796,2.04,2.114,3.519,2.034,1.647,4.201,1.81,9.459,6.764,3.249,4.398,10.212,7.598,7.731,5.222,4.913,4.651,4.97,2.7,2.657,2.34,1.869,1.689,1.94,5.176,4.247,3.693,2.421,1.425,2.265,1.896,2.339,2.163,4.23,3.696,4.555,3.329,3.406,6.572,4.407,4.737,3.983,2.042,2.087,2.324,2.156,2.381,3.031,2.633,2.755,2.564,1.949,2.504,1.271,1.24,2.554,3.033,3.06,3.573,4.158,6.021,4.673,4.652,5.527,3.9,8.808,3.354,3.531,2.316,2.037,1.826,1.73,4.495,2.274,2.749,4.012,2.179,1.085,1.787,1.022,1.036,2.87,4.586,6.564,5.659,7.689,14.271,5.899,8.485,3.742,3.605,2.828,2.528,2.242,1.975,1.837,2.928,5.284,4.422,7.582,8.349,3.137,4.062,3.813,4.011,6.318,5.371,6.885,6.885,6.669,8.588,5.3,19.771,4.928,3.554,2.693,3.614,4.12,2.218,2.019,2.001,4.323,2.76,2.671,3.168,2.784,5.975,4.17,3.347,4.601,5.388,6.389,6.906,14.065,6.646,4.731,5.053,5.277,4.022,2.381,2.05,1.522,1.483,1.507,1.598,1.704,3.256,3.394,6.625,5.467,3.408,4.853,5.891,7.011,7.572,8.004,8.103,7.465,6.174,5.593,5.381,5.503],"emission_kg":[0.575,1.151,1.652,2.112,2.577,3.244,4.386,5.112,9.342,10.75,11.628,13.312,14.279,15.174,16.629,20.157,23.213,25.683,27.698,29.946,32.81,35.319,37.538,39.892,41.145,42.001,42.683,43.47,44.351,45.302,46.256,46.808,48.102,48.711,49.927,51.599,55.706,58.848,61.594,64.997,68.609,71.514,74.816,77.127,79.922,82.327,84.709,86.481,87.866,88.967,89.876,90.652,91.374,92.107,92.805,93.678,95.155,95.734,96.655,97.715,98.487,103.113,104.08,106.634,109.696,111.938,114.543,116.465,118.093,120.12,121.067,121.941,122.602,123.228,123.83,124.322,124.771,125.751,127.023,127.951,129.46,130.173,131.127,131.658,132.45,132.78,133.08,133.431,134.213,136.623,138.353,140.002,141.709,143.185,144.645,145.837,146.685,147.363,147.951,148.508,149.476,150.091,151.115,153.058,153.843,154.212,154.658,155.467,156.465,157.464,158.667,160.484,162.627,166.123,169.327,172.911,175.186,176.542,177.926,178.976,179.821,180.444,181.164,181.828,182.429,183.261,188.894,189.8,190.839,194.258,195.021,195.485,196.307,197.057,198.087,199.144,200.391,203.106,205.429,207.717,213.605,215.441,216.662,217.74,218.768,219.864,220.731,221.488,222.121,222.745,224.6,225.603,227.287,228.091,228.556,231.601,233.121,234.445,235.826,237.166,238.824,241.459,244.055,245.827,247.863,249.328,250.222,251.063,251.866,252.511,252.913,253.284,253.665,255.178,256.015,256.906,258.111,258.504,258.837,259.301,259.722,260.479,261.517,262.816,264.428,266.771,269.136,271.682,274.059,275.891,277.32,278.266,279.145,279.833,280.388,280.907,281.42,281.963,282.989,283.734,285.351,286.018,286.677,287.897,289.294,293.759,296.678,299.329,301.656,304.362,307.378,309.848,311.742,313.553,315.328,316.414,317.297,318.098,318.846,319.437,319.987,321.02,321.608,322.18,322.679,323.134,323.693,324.206,325.313,330.562,332.321,334.662,340.025,343.119,346.601,349.475,351.559,353.191,354.626,355.741,356.821,357.889,358.832,359.581,360.234,360.926,363.264,364.624,366.628,367.781,368.569,369.246,370.142,371.543,376.427,378.842,381.568,384.247,387.054,389.443,391.622,396.825,398.114,399.686,400.773,401.712,402.533,403.285,404.017,404.782,405.586,406.4,407.034,408.133,408.963,410.116,411.043,412.498,413.916,416.744,421.774,425.226,428.364,432.368,436.068,440.051,445.557,447.223,448.227,449.118,450.027,450.745,451.446,452.193,453.585,454.481,455.275,455.789,456.449,457.08,457.653,458.294,459.843,462.529,465.293,467.883,470.634,473.931,476.749,479.224,482.061,483.664,484.799,486.017,486.836,487.522,488.132,488.784,489.805,492.047,493.478,493.965,494.546,495.023,496.556,498.009,498.682,499.79,501.306,503.703,506.103,509.396,512.37,514.22,515.82,517.078,518.102,519.091,519.83,520.465,521.512,522.178,523.021,524.674,528.556,530.253,531.308,532.363,533.073,533.8,535.674,537.541,539.687,542.743,545.596,547.938,550.201,553.042,554.432,556.433,557.426,558.42,559.222,559.939,560.597,561.278,562.045,563.649,564.534,565.559,566.44,567.329,570.542,571.939,573.856,575.551,578.722,581.308,583.563,585.858,588.415,590.426,591.6,592.439,593.324,594.163,594.797,595.374,596.067,596.067,596.067,596.067,596.067,596.067,596.067,596.067,596.067,596.067,596.067,596.067,596.067,596.067,596.067,596.067,598.129,600.352,602.221,603.328,604.847,606.262,607.326,608.268,609.139,611.536,613.951,615.243,616.436,618.326,620.028,621.056,623.077,626.379,628.055,630.125,632.214,634.434,636.549,639.591,641.486,644.575,645.709,646.707,647.707,648.689,649.517,650.678,651.415,652.202,653.853,657.966,659.665,661.393,662.001,662.545,663.93,665.72,669.891,671.018,672.108,673.174,674.632,676.292,677.924,679.328,680.236,681.083,682.301,683.707,684.444,685.155,686.294,688.262,689.202,690.8,692.234,693.052,693.791,695.474,696.837,697.337,697.918,698.84,700.782,703.143,704.796,706.492,708.593,711.896,714.084,716.309,717.5,718.51,719.414,720.951,722.01,722.888,723.915,726.055,726.913,727.493,728.074,729.685,730.759,731.865,733.592,735.821,738.539,741.337,745.998,748.438,750.526,752.904,754.412,755.535,756.599,757.738,758.535,759.233,759.863,761.263,765.69,767.499,769.604,770.807,771.492,773.464,774.946,776.021,777.919,781.078,783.902,786.702,789.455,792.453,794.942,797.126,798.654,799.863,800.818,801.49,802.065,802.68,803.184,803.759,804.602,806.329,808.335,813.018,816.66,818.093,820.433,822.294,825.944,831.782,835.119,838.129,841.766,844.535,846.867,848.857,850.46,851.935,853.013,853.896,854.481,855.007,855.626,856.318,857.048,858.302,859.036,859.684,861.289,862.02,866.082,869.073,870.534,872.542,877.233,880.648,884.037,886.302,888.45,890.482,892.614,893.756,894.896,895.832,896.543,897.205,897.999,900.314,902.33,904.187,905.397,906.175,907.287,908.253,909.42,910.503,912.632,914.492,916.787,918.458,920.161,923.421,925.599,927.947,929.888,930.858,931.763,932.723,933.572,934.503,935.694,936.764,937.924,939.039,939.908,940.989,941.545,942.115,943.3,944.738,946.202,947.911,949.899,952.768,954.995,957.214,959.88,961.759,965.852,967.333,968.797,969.709,970.493,971.189,971.843,973.584,974.504,975.662,977.358,978.327,978.904,979.801,980.61,981.384,982.794,985.055,988.307,991.121,994.937,1002.001,1004.928,1009.108,1010.869,1012.474,1013.641,1014.653,1015.51,1016.243,1016.936,1018.09,1020.308,1022.291,1025.828,1029.643,1031.158,1033.089,1034.932,1036.887,1039.945,1042.509,1045.751,1048.955,1052.028,1055.973,1058.417,1067.561,1069.756,1071.259,1072.353,1073.677,1075.146,1075.926,1076.642,1077.373,1079.017,1080.095,1081.121,1082.325,1083.451,1085.996,1087.833,1089.343,1091.453,1093.937,1096.87,1100.03,1106.45,1109.419,1111.524,1113.777,1116.114,1117.914,1118.987,1119.932,1120.635,1121.324,1122.016,1122.757,1123.536,1124.993,1126.454,1129.071,1131.242,1132.665,1134.762,1137.402,1140.657,1144.208,1147.968,1151.77,1155.242,1158.118,1160.749,1163.237,1165.706],"kpi":{"all_time_peak_average":1.0,"annual_normalized_unserved_energy_total":0.018316,"carbon_emissions_total":1.0,"cost_total":1.0,"daily_one_minus_load_factor_average":1.0,"daily_peak_average":1.0,"discomfort_cold_delta_average":0.790764,"discomfort_cold_delta_maximum":3.437551,"discomfort_cold_delta_minimum":0.0,"discomfort_cold_proportion":0.15377,"discomfort_hot_delta_average":0.237991,"discomfort_hot_delta_maximum":5.059987,"discomfort_hot_delta_minimum":0.0,"discomfort_hot_proportion":0.017627,"discomfort_proportion":0.171398,"electricity_consumption_total":1.0,"monthly_one_minus_load_factor_average":1.0,"one_minus_thermal_resilience_proportion":0.369841,"power_outage_normalized_unserved_energy_total":0.684408,"ramping_average":1.0,"zero_net_energy":1.0},"run":"baseline","steps":719},"baseline_sample":false,"carbon":[0.4025,0.3826,0.3695,0.367,0.374,0.3852,0.3954,0.4112,0.4328,0.4285,0.4576,0.4875,0.4915,0.4876,0.4797,0.4715,0.46,0.4494,0.4389,0.4361,0.4404,0.4471,0.4497,0.4431,0.431,0.3983,0.3831,0.3726,0.371,0.3669,0.3727,0.3815,0.4067,0.4241,0.4621,0.4818,0.4843,0.4828,0.48,0.4738,0.4647,0.459,0.4509,0.4446,0.4466,0.458,0.4586,0.455,0.4681,0.4455,0.4221,0.4006,0.3888,0.3875,0.3949,0.4061,0.4168,0.4094,0.429,0.468,0.5007,0.5185,0.5224,0.5205,0.517,0.5139,0.5097,0.4989,0.4943,0.4983,0.4894,0.4943,0.4825,0.4589,0.413,0.3851,0.4159,0.4486,0.4443,0.4817,0.5151,0.5229,0.5451,0.5432,0.5356,0.5314,0.5271,0.5193,0.5156,0.511,0.5107,0.5161,0.5213,0.5146,0.502,0.4717,0.4391,0.4105,0.3868,0.3956,0.4078,0.4366,0.4654,0.4814,0.5058,0.5082,0.5142,0.5267,0.5363,0.5374,0.5328,0.526,0.5216,0.5175,0.5113,0.5026,0.4951,0.4765,0.4624,0.4618,0.4347,0.4071,0.3921,0.3705,0.3695,0.3723,0.3963,0.4178,0.4454,0.4567,0.4645,0.4861,0.508,0.5154,0.5138,0.5126,0.5056,0.4957,0.4837,0.47,0.4599,0.452,0.4427,0.4223,0.411,0.3863,0.3738,0.3741,0.3852,0.3962,0.4154,0.4162,0.4471,0.4496,0.457,0.4693,0.479,0.4898,0.4885,0.4881,0.482,0.4699,0.4568,0.4392,0.4405,0.4419,0.432,0.4257,0.422,0.3781,0.3629,0.3546,0.3694,0.3803,0.4083,0.4647,0.4958,0.4864,0.4747,0.4667,0.463,0.4656,0.4728,0.4764,0.4727,0.468,0.4674,0.4664,0.4691,0.4709,0.4614,0.4531,0.4395,0.4258,0.405,0.3994,0.4061,0.4235,0.4433,0.4432,0.4603,0.4527,0.4604,0.4691,0.4786,0.4806,0.4715,0.4662,0.4646,0.4612,0.4566,0.4564,0.4643,0.4623,0.4421,0.4098,0.4005,0.3769,0.3463,0.3391,0.3386,0.3375,0.3438,0.3518,0.3569,0.3526,0.3825,0.4152,0.4462,0.4609,0.4704,0.4719,0.4717,0.4711,0.4585,0.4507,0.4521,0.448,0.4334,0.4279,0.4141,0.3964,0.383,0.3768,0.3684,0.3729,0.3787,0.3851,0.3966,0.3851,0.4006,0.4304,0.4545,0.4721,0.4805,0.4829,0.4865,0.4877,0.4882,0.4879,0.4896,0.4825,0.4631,0.4357,0.4309,0.4058,0.3914,0.3897,0.3963,0.4066,0.4258,0.4484,0.4584,0.4444,0.4566,0.4795,0.4853,0.4825,0.4767,0.4716,0.4659,0.4575,0.4515,0.4561,0.4655,0.4737,0.4685,0.4584,0.4601,0.4513,0.423,0.4112,0.4213,0.4395,0.4692,0.5021,0.5067,0.4979,0.5033,0.5202,0.5214,0.5194,0.5164,0.5085,0.5007,0.4927,0.4876,0.4904,0.4946,0.4965,0.4894,0.4829,0.4542,0.4409,0.4092,0.3975,0.3858,0.409,0.4413,0.4734,0.495,0.4785,0.4719,0.4788,0.4821,0.4782,0.4728,0.4713,0.4679,0.4675,0.4625,0.4609,0.4643,0.4625,0.4421,0.4257,0.401,0.3826,0.3652,0.3553,0.3614,0.3867,0.4089,0.4231,0.426,0.4083,0.4236,0.4421,0.4459,0.4454,0.4396,0.4394,0.4335,0.4307,0.4331,0.4344,0.441,0.4455,0.4348,0.415,0.4075,0.3772,0.3739,0.3702,0.3717,0.3788,0.3836,0.386,0.3835,0.3753,0.3914,0.415,0.423,0.4272,0.4238,0.4247,0.4226,0.423,0.4234,0.4277,0.4375,0.4522,0.4554,0.4494,0.4699,0.4636,0.4684,0.4589,0.4732,0.4855,0.4789,0.4768,0.498,0.497,0.498,0.504,0.4996,0.4978,0.494,0.4969,0.4925,0.49,0.4953,0.49,0.5059,0.5096,0.5066,0.5072,0.4997,0.5116,0.5008,0.4922,0.4842,0.4955,0.5066,0.5156,0.5266,0.5235,0.5347,0.5428,0.5414,0.5377,0.5237,0.5128,0.5068,0.497,0.4892,0.4979,0.5083,0.5091,0.4967,0.4817,0.4443,0.4388,0.4372,0.4411,0.4525,0.4759,0.5019,0.512,0.5197,0.5154,0.5226,0.5302,0.5315,0.5295,0.5248,0.5216,0.5196,0.5143,0.5069,0.4931,0.4796,0.4716,0.4583,0.4382,0.4497,0.4196,0.4129,0.4379,0.4687,0.4964,0.5112,0.5131,0.5107,0.5163,0.5228,0.5295,0.5354,0.5401,0.5424,0.5426,0.5412,0.541,0.5415,0.5417,0.5413,0.5378,0.5346,0.5334,0.514,0.5264,0.5217,0.5296,0.5413,0.5521,0.5536,0.5561,0.5483,0.542,0.5397,0.5388,0.5407,0.539,0.5357,0.5338,0.534,0.5344,0.5357,0.5413,0.5449,0.5369,0.5236,0.5002,0.447,0.4253,0.3993,0.3911,0.3865,0.3941,0.4275,0.438,0.4626,0.4592,0.4826,0.4924,0.4948,0.4893,0.4809,0.4778,0.4747,0.4708,0.4643,0.4558,0.454,0.4513,0.4369,0.4235,0.4127,0.4064,0.3774,0.3634,0.3545,0.391,0.4141,0.4023,0.387,0.374,0.3948,0.4243,0.44,0.4543,0.4684,0.4738,0.4748,0.4745,0.4732,0.4667,0.4581,0.4544,0.4411,0.4244,0.4,0.3742,0.3659,0.351,0.3448,0.3389,0.3452,0.3564,0.3613,0.3623,0.3822,0.4039,0.4294,0.4422,0.4495,0.4567,0.4594,0.4494,0.4384,0.4336,0.4372,0.4369,0.4289,0.4231,0.4292,0.4,0.3806,0.3916,0.4096,0.4473,0.4746,0.5027,0.5002,0.4897,0.4909,0.4962,0.4989,0.5006,0.5034,0.5033,0.5037,0.5021,0.4998,0.496,0.4942,0.4957,0.4874,0.4749,0.4333,0.4133,0.3936,0.3909,0.393,0.4066,0.4211,0.4348,0.4457,0.4234,0.4368,0.4599,0.4642,0.4741,0.4782,0.4784,0.4781,0.4765,0.4766,0.4771,0.4823,0.4817,0.4647,0.4416,0.4147,0.3936,0.3846,0.3815,0.3782,0.3873,0.4045,0.4211,0.4227,0.4043,0.4363,0.4719,0.4859,0.4885,0.4911,0.4931,0.4954,0.4974,0.4963,0.495,0.4962,0.4926,0.4706,0.4453,0.4126,0.4005,0.3821,0.3709,0.3773,0.3942,0.4197,0.4484,0.4666,0.4463,0.4606,0.4754,0.4833,0.4874,0.484,0.4774,0.4709,0.4654,0.4609,0.4593,0.4611,0.4625,0.4455,0.4228,0.4063,0.3665,0.3565,0.3518,0.3547,0.365,0.3802,0.3906,0.3844,0.3798,0.4046,0.4259,0.4406,0.4509,0.4588,0.461,0.459,0.4576,0.4565,0.4468,0.4448,0.446,0.4428,0.4476,0.4507,0.4607,0.462,0.4648,0.4593,0.4635,0.4575,0.4475,0.4305,0.395,0.397,0.4176,0.432,0.4482,0.4642,0.4689,0.4698,0.4692,0.4652,0.4658,0.4703,0.4624,0.4486],"day":[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30],"episode_hours":719,"headline":{"cost_pct":-8.1,"discomfort_points":-9.4,"emissions_pct":-3.9,"text":"Cost down 8.1% and emissions down 3.9% at equal or better comfort","tone":"win"},"hour_of_day":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23],"hours":719,"id":"citylearn_challenge_2023_phase_2_local_evaluation","name":"CityLearn 2023 challenge, local evaluation","occupied":{"Building_1":[1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],"Building_2":[1,1,1,1,1,1,1,1,1,1,1,0,1,0,0,1,1,1,0,1,1,1,0,0,0,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1],"Building_3":[1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1]},"outdoor_c":[24.7,24.1,23.9,23.9,23.8,23.9,25.0,26.9,29.3,31.7,33.9,35.9,37.5,38.7,39.3,39.5,39.2,38.1,36.1,32.6,31.2,29.6,28.0,26.8,25.9,25.2,24.9,24.8,24.8,24.7,25.4,27.0,29.4,32.1,34.5,36.6,38.3,39.5,40.2,40.3,39.8,38.7,36.5,32.4,31.3,30.8,29.3,27.8,26.7,26.0,25.5,25.2,25.0,24.9,25.3,26.4,28.4,30.5,32.6,32.2,31.2,31.7,31.8,31.6,31.1,30.1,28.7,26.9,26.3,25.9,25.4,24.9,24.8,24.6,24.5,24.2,23.7,23.4,23.8,24.9,26.7,28.3,29.2,29.6,29.7,29.8,29.6,29.5,29.6,29.8,29.1,27.6,26.0,25.2,24.8,24.4,23.9,23.2,22.8,22.4,22.2,22.2,23.5,25.5,27.8,30.0,32.3,34.1,35.5,36.5,36.9,37.0,36.6,35.7,33.9,29.9,28.6,27.9,27.4,26.6,25.3,24.5,23.8,23.4,23.1,23.2,24.6,26.8,28.8,30.8,32.7,34.2,35.3,36.2,36.8,36.9,36.4,35.4,33.2,29.9,28.9,28.4,27.5,26.7,25.9,25.1,24.5,23.7,22.9,22.9,24.6,26.6,28.8,30.9,32.8,34.4,35.6,36.4,36.8,37.0,36.5,35.0,32.2,29.7,28.9,28.3,27.3,26.0,24.7,23.5,22.6,22.0,21.6,21.4,23.5,26.0,28.5,30.8,32.7,34.3,35.6,36.5,36.7,36.5,36.0,35.1,33.2,30.3,29.0,28.5,27.9,26.5,25.5,24.8,24.2,23.9,23.5,23.3,24.6,26.5,28.8,30.9,32.8,34.4,35.5,36.3,36.5,36.2,35.3,34.0,32.2,29.1,27.8,27.0,26.4,25.8,25.2,24.5,23.9,23.5,23.4,23.4,24.6,26.6,29.4,31.5,33.5,35.1,36.5,37.4,37.8,37.7,37.1,35.9,33.8,31.3,29.4,28.1,27.1,26.5,25.9,25.6,25.4,25.4,25.3,25.2,25.7,27.3,29.3,31.0,33.0,35.2,36.6,37.3,37.4,37.0,36.3,35.2,33.4,31.0,29.2,28.0,27.0,26.2,25.7,25.4,25.3,25.3,25.2,25.0,25.7,27.5,29.4,31.1,32.8,34.2,35.4,36.2,36.8,37.0,36.8,35.9,34.1,31.0,29.6,28.4,27.4,26.3,25.3,24.6,24.4,24.1,24.1,24.1,25.3,27.2,28.8,30.3,31.8,33.1,34.3,35.4,36.3,36.8,36.7,36.0,34.2,31.5,30.9,29.7,28.1,26.9,26.0,24.9,23.9,23.1,22.6,22.4,24.4,26.8,29.3,31.6,33.3,34.5,35.2,35.6,35.6,35.4,35.0,34.2,32.9,30.2,28.8,28.1,27.4,26.6,25.7,24.9,24.2,23.8,23.6,23.6,24.9,27.1,29.4,31.6,33.5,35.0,36.0,36.6,36.8,36.6,36.2,35.3,33.8,31.8,29.9,28.5,27.5,26.7,26.0,25.5,25.2,24.9,24.5,24.2,24.9,26.8,29.0,31.0,32.8,34.3,35.6,36.4,36.8,36.7,36.0,34.9,33.3,31.3,29.7,28.6,27.7,26.8,26.1,25.4,25.1,24.7,24.3,23.9,24.7,26.8,29.3,31.5,33.4,35.0,36.2,36.8,36.8,36.2,34.8,33.4,32.0,30.6,29.4,28.3,27.3,26.4,25.7,25.2,24.8,24.5,24.2,24.0,24.7,26.2,28.7,31.0,32.9,34.3,35.3,35.4,35.2,34.9,33.3,30.9,28.5,26.8,26.1,25.7,25.4,25.0,24.6,24.3,24.2,24.0,23.8,23.7,24.0,24.7,25.7,26.7,27.3,27.7,28.2,28.6,28.7,28.3,27.7,26.8,25.7,24.5,23.8,23.7,23.8,24.0,24.2,24.3,24.1,23.9,23.8,23.7,23.9,24.5,25.4,26.3,27.3,28.0,28.4,28.4,28.0,27.7,27.4,26.8,26.0,25.0,24.5,24.4,24.2,24.1,23.9,23.8,23.6,23.5,23.4,23.3,24.5,25.9,28.1,30.7,32.5,33.9,35.0,35.7,35.9,35.8,35.2,34.2,32.5,29.4,28.2,27.3,26.4,25.6,25.0,24.6,24.2,23.8,23.3,22.9,24.7,27.0,29.6,32.1,34.3,36.2,37.5,38.4,38.7,38.6,37.7,36.3,34.1,31.8,30.1,29.0,27.9,26.9,26.0,25.3,24.7,24.2,23.9,23.8,25.1,27.2,29.6,32.0,34.2,35.9,37.1,37.8,37.9,37.3,36.2,34.5,32.7,30.6,29.0,27.9,26.8,26.0,25.5,25.2,25.0,24.9,24.7,24.6,25.5,27.4,29.3,31.2,32.8,34.1,35.8,36.8,37.0,36.6,35.3,33.8,32.0,30.0,28.7,27.7,26.8,26.0,25.6,25.5,25.4,25.3,25.2,25.1,25.6,26.6,27.8,29.2,30.8,32.1,33.4,34.0,34.0,33.6,32.9,32.1,31.0,29.2,28.0,27.2,26.5,25.9,25.5,25.2,25.0,24.8,24.5,24.4,25.2,26.3,28.0,29.9,31.9,33.6,34.7,35.3,35.5,35.4,34.9,34.1,32.6,30.5,29.5,28.4,27.4,26.5,25.8,25.1,24.5,23.9,23.8,23.8,25.0,27.1,29.4,31.9,34.1,35.8,37.0,37.8,38.3,38.3,38.0,37.0,35.2,32.1,30.4,29.0,28.0,27.1,26.4,25.6,25.0,24.4,23.9,23.9,25.5,27.6,30.0,32.5,34.7,36.4,37.7,38.6,39.0,38.9,38.1,36.8,34.8,32.2,30.4,29.1,28.0,27.0,26.2,25.7,25.4,25.2,24.9,24.7,25.9,28.1,30.4,32.6,34.6,36.3,37.6,38.4,38.7,38.5,37.6,36.0,33.8,31.5,29.8,28.6,27.5,26.7,26.1,25.7,25.6,25.4,25.2,25.1,26.1,28.0,30.2,32.6,34.8,36.7,38.1,39.0,39.4,39.1,38.1,36.6,34.5,32.0,29.9,28.5,27.3],"price":[0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289],"setpoint_c":{"Building_1":[23.22,22.22,22.22,22.22,22.22,22.22,22.22,22.33,22.78,23.33,24.44,24.44,24.44,24.44,24.44,24.44,23.56,25.56,26.5,24.44,21.67,24.44,22.83,20.72,20.56,21.67,22.22,22.22,22.22,22.22,22.22,22.33,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.61,25.0,24.5,24.44,24.44,24.44,22.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,22.44,22.78,24.44,24.44,24.44,24.39,23.56,22.22,22.56,24.44,24.44,24.44,22.22,24.44,24.44,23.22,23.56,23.83,24.11,24.44,24.78,25.06,23.33,23.89,23.89,25.67,24.44,24.44,25.83,25.0,25.83,24.44,24.44,24.44,24.44,24.44,24.44,24.44,22.22,23.22,22.22,22.22,22.22,22.22,22.22,22.22,22.33,22.78,23.33,23.89,24.44,24.44,24.44,24.44,24.44,24.39,24.39,24.39,24.39,24.39,24.33,24.33,24.33,24.33,24.44,22.22,22.22,22.22,22.22,22.22,22.22,22.22,22.78,23.89,24.44,24.44,25.22,25.0,27.22,27.22,27.22,26.67,25.67,25.78,24.44,24.44,24.44,23.22,22.22,22.22,22.22,22.22,22.22,22.22,22.33,22.78,23.33,23.89,24.44,24.44,24.44,24.44,25.56,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.11,27.0,26.89,26.78,26.67,26.56,26.39,26.28,26.17,26.06,25.94,25.83,25.72,25.61,25.5,25.39,25.28,25.11,25.0,24.89,24.78,24.67,24.56,22.78,23.22,22.22,22.22,22.22,22.22,22.22,22.22,22.33,22.78,24.44,24.44,24.44,24.44,24.44,24.44,24.56,26.28,24.17,24.28,24.44,24.44,25.78,24.44,24.44,23.22,22.22,22.22,22.22,22.22,22.22,22.22,22.33,22.22,23.33,23.89,24.44,24.44,24.44,23.61,23.33,24.17,24.44,24.44,24.44,24.44,24.44,24.44,22.78,23.22,22.22,22.22,22.22,22.22,22.22,22.22,22.33,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,22.22,23.28,22.22,22.22,22.22,22.22,22.22,22.22,22.28,22.22,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,23.28,22.22,22.22,22.22,22.22,22.22,22.22,22.28,22.78,24.44,24.44,24.44,25.67,26.67,26.67,26.67,26.67,26.67,25.33,24.44,24.44,24.44,24.44,24.44,23.28,22.22,22.22,22.22,22.22,22.22,22.22,22.28,22.78,24.44,24.44,24.44,24.44,25.33,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,23.28,22.22,22.22,22.22,22.22,22.22,22.22,22.28,22.78,24.44,24.44,24.44,24.44,25.0,25.56,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,25.56,25.0,26.67,25.56,23.5,23.33,24.28,24.44,25.33,26.67,24.78,24.44,24.44,23.28,22.22,22.22,22.22,22.22,22.22,22.22,22.28,22.78,24.44,24.44,24.44,24.5,25.67,24.44,24.44,24.44,24.22,23.33,23.56,24.44,24.44,24.44,24.44,23.28,22.22,22.22,22.22,22.22,22.22,22.22,22.28,22.78,24.44,24.44,24.44,24.44,25.06,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,23.28,22.22,22.22,22.22,22.22,22.22,22.22,22.28,22.22,24.44,24.44,24.44,24.44,24.44,24.17,23.33,23.61,24.44,24.44,24.44,24.44,24.44,24.44,24.44,23.28,22.22,22.22,22.22,22.22,22.22,22.22,22.28,22.78,24.44,24.44,24.44,24.44,24.78,25.0,24.78,23.33,23.78,24.44,24.44,24.44,24.44,24.44,24.44,23.28,22.22,22.22,22.22,22.22,22.22,22.22,22.28,22.78,24.44,24.44,24.44,24.44,25.11,24.94,23.33,23.72,24.44,24.44,24.44,24.44,24.44,24.44,24.44,23.39,24.44,24.44,24.44,24.44,24.44,24.44,23.06,22.78,24.17,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.33,23.89,24.0,24.44,24.44,22.22,22.22,23.28,22.22,23.67,23.89,22.44,22.22,22.22,22.28,24.44,24.44,24.44,24.44,24.44,25.44,26.67,24.22,23.33,24.06,24.44,24.28,23.89,24.06,24.44,24.44,23.28,22.39,23.33,23.17,22.22,22.22,22.22,22.28,22.78,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,25.44,26.39,24.44,24.44,24.44,24.44,24.44,23.33,22.22,22.22,22.22,22.22,22.22,22.22,22.22,22.78,24.44,24.44,24.44,24.44,24.44,24.44,24.11,23.89,24.44,25.17,24.44,24.44,24.44,24.44,22.78,23.33,22.22,22.22,22.22,22.22,22.22,22.22,22.22,22.78,24.44,24.44,24.44,26.39,26.67,25.0,24.44,24.44,26.67,26.0,23.33,24.44,24.44,24.44,22.22,23.33,22.22,22.22,22.22,22.22,22.22,22.22,22.22,22.22,24.44,24.44,22.22,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,23.33,22.22,22.22,22.22,22.22,22.22,22.22,22.22,22.78,24.44,22.78,24.44,22.22,24.44,24.44,24.44,24.44,25.94,26.44,24.44,24.44,22.22,21.11,21.67,23.33,23.72,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,25.06,24.44,24.44,24.44,24.44],"Building_2":[24.44,24.44,24.44,24.44,24.44,24.44,24.78,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,23.39,22.78,23.94,24.44,23.44,22.78,23.78,24.44,24.44,24.78,25.0,25.0,25.0,25.0,25.0,24.89,23.89,24.0,25.0,25.0,25.0,25.0,25.0,25.0,24.94,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.78,25.0,25.0,25.0,25.0,25.0,24.61,23.33,23.72,25.0,25.0,25.0,25.0,25.0,24.67,23.61,23.33,24.0,24.44,24.28,22.78,22.94,24.44,24.44,24.78,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.94,24.44,23.61,22.78,23.61,24.44,24.44,24.44,24.44,24.94,25.0,25.0,25.0,23.33,23.33,23.44,23.5,23.61,23.67,23.78,23.89,23.94,24.06,24.11,24.22,24.33,24.39,23.33,23.94,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.11,23.89,24.78,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,23.33,23.33,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.44,23.22,24.89,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.56,23.39,22.22,21.67,23.28,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.17,23.33,24.17,25.0,25.0,25.0,25.0,25.0,25.0,24.0,23.89,24.39,23.89,24.44,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.61,23.89,22.78,23.56,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.83,23.44,24.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,23.33,23.33,25.0,25.0,25.0,25.0,25.0,25.0,24.39,24.44,23.67,23.33,24.5,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.78,23.33,23.56,25.0,25.0,25.0,25.0,25.0,25.0,25.0,23.61,23.33,24.72,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.72,23.89,24.17,24.33,23.89,24.17,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,23.67,23.33,24.67,25.0,25.0,25.0,25.0,25.0,25.0,25.0,23.89,23.33,24.44,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,23.5,23.33,24.83,25.0,25.0,25.0,25.0,24.17,23.89,24.72,25.0,25.0,25.0,24.72,23.89,24.17,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.33,22.78,23.44,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.44,23.33,23.89,25.0,25.0,25.0,25.0,25.0,25.0,25.0,23.56,23.33,24.78,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.44,23.17,22.22,23.11,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,23.78,24.17,25.0,25.0,25.0,25.0,25.0,25.0,25.0,23.39,23.33,24.94,25.0,25.0,25.0,25.0,25.0,23.83,23.33,24.5,24.28,23.33,24.06,22.94,22.78,24.78,25.0,25.0,25.0,25.0,25.0,23.83,22.78,23.94,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.5,23.33,23.83,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,23.39,22.78,24.39,25.0,25.0,25.0,25.0,24.89,23.89,24.0,25.0,25.0,25.0,25.0,23.39,23.33,24.94,25.0,25.0,25.0,25.0,24.06,24.17,24.78,22.78,22.78,24.94,25.0,25.0,25.0,25.0,24.17,24.11,24.44,24.83,25.0,24.22,23.89,24.67,23.44,23.22,22.78,24.44,25.0,25.0,25.0,25.0,24.56,24.44,24.67,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.83,24.44,24.22,24.44,24.5,25.0,25.0,25.0,25.0,25.0,24.72,25.0,25.0,25.0,25.0,25.0,24.72,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.83,24.61,24.44,24.22,24.44,24.78,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.78,24.44,24.67,25.0,25.0,24.0,23.89,24.28,23.89,24.56,25.0,25.0,25.0,25.0,25.0,25.0,24.06,24.61,25.0,25.0,25.0,24.56,23.89,24.33,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.17,23.89,24.72,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.67,25.0,25.0,25.0,25.11],"Building_3":[24.44,24.44,24.44,24.44,24.44,24.44,24.11,23.33,23.33,23.33,23.33,23.33,23.33,23.33,23.33,23.33,23.33,24.44,24.44,24.44,24.44,24.44,24.44,23.94,23.89,23.89,23.89,24.39,24.44,23.94,24.17,24.44,24.11,23.89,23.89,23.89,23.89,23.89,23.89,23.39,23.33,24.44,24.44,23.33,23.17,23.11,24.06,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,23.94,23.89,23.89,23.89,23.89,23.89,23.89,23.33,23.33,23.61,23.89,23.33,23.33,23.33,23.33,23.56,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,23.78,23.33,23.39,23.72,23.89,23.89,23.89,23.89,23.89,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.17,23.33,23.33,23.33,23.33,23.33,23.33,23.33,23.33,23.33,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,23.89,23.89,23.89,23.72,23.33,23.33,23.33,23.33,23.56,23.89,23.89,23.94,23.94,24.0,24.0,24.0,24.06,24.06,24.11,24.11,24.17,24.17,24.17,24.22,24.22,24.28,24.28,24.33,24.33,24.33,24.39,24.39,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.39,23.89,23.39,23.78,23.33,23.33,23.33,23.33,23.5,23.56,22.78,22.78,22.78,23.67,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.0,23.89,23.89,23.89,23.67,24.44,23.89,23.33,23.33,23.33,23.78,24.44,24.44,24.17,23.89,23.89,23.89,23.89,24.17,24.44,23.89,23.89,23.89,23.89,23.89,23.89,23.89,23.89,23.89,24.44,24.44,24.44,24.44,23.61,23.39,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.0,23.89,23.89,23.89,23.89,23.89,23.89,23.89,23.89,24.28,23.89,23.89,23.89,23.89,23.89,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.17,23.89,24.44,24.44,24.44,24.44,24.11,23.89,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.0,23.89,24.28,23.89,23.89,23.89,23.89,23.89,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,23.94,23.89,23.89,23.89,23.89,23.89,23.89,23.89,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.22,23.89,23.89,23.89,23.89,23.89,23.89,23.89,23.89,23.89,24.44,24.11,23.67,23.33,23.33,23.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.06,23.89,23.89,23.89,23.89,23.89,23.89,23.89,23.89,24.11,23.89,23.89,23.89,23.89,23.89,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,23.94,23.89,24.33,24.44,24.44,24.44,24.44,24.44,24.39,23.89,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.39,23.89,23.89,23.89,23.89,23.89,23.89,23.89,23.89,23.89,24.17,23.89,23.89,23.89,23.89,23.89,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,23.94,23.89,23.89,23.89,23.89,23.89,23.89,23.89,23.89,24.44,24.44,24.44,24.44,24.44,24.44,23.94,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.06,24.44,24.06,23.89,23.89,23.89,24.28,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.11,23.89,23.89,23.89,23.89,24.33,23.89,23.89,23.89,23.89,23.89,24.0,23.89,23.89,23.89,23.89,23.89,23.89,24.17,24.44,24.44,24.11,23.89,23.89,23.89,23.89,23.89,23.89,23.89,23.72,23.33,23.56,23.89,23.89,23.89,24.0,23.89,23.89,23.89,24.33,24.44,24.44,24.44,24.28,23.89,23.89,23.89,23.89,23.89,23.89,23.89,23.89,23.89,24.44,24.0,23.89,23.89,23.89,23.89,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.0,23.89,23.89,23.89,23.89,23.89,23.89,24.44,24.44,24.22,23.89,23.89,23.89,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.17,23.89,23.89,23.89,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.28,23.89,23.89,23.89,23.89,24.44,24.44,24.44,24.44,24.44,24.44]}}],"schema":2}; +window.HYPERBOLIC_VIEWER_DATA = {"buildings":[{"id":"Building_1","name":"Building 1"},{"id":"Building_2","name":"Building 2"},{"id":"Building_3","name":"Building 3"}],"comfort_band_k":2.0,"dataset":"citylearn_challenge_2023_phase_2_local_evaluation","kpis":[{"id":"cost_total","name":"Electricity cost","unit":"ratio to no control"},{"id":"carbon_emissions_total","name":"Carbon emissions","unit":"ratio to no control"},{"id":"electricity_consumption_total","name":"Grid import","unit":"ratio to no control"},{"id":"discomfort_proportion","name":"Discomfort","unit":"share of occupied hours"},{"id":"discomfort_hot_proportion","name":"Too warm","unit":"share of occupied hours"},{"id":"discomfort_cold_proportion","name":"Too cool","unit":"share of occupied hours"},{"id":"ramping_average","name":"Ramping","unit":"ratio to no control"},{"id":"daily_peak_average","name":"Daily peak","unit":"ratio to no control"},{"id":"all_time_peak_average","name":"All-time peak","unit":"ratio to no control"},{"id":"daily_one_minus_load_factor_average","name":"1 - daily load factor","unit":"ratio to no control"},{"id":"one_minus_thermal_resilience_proportion","name":"1 - thermal resilience","unit":"share of outage hours"},{"id":"power_outage_normalized_unserved_energy_total","name":"Unserved energy in outages","unit":"share"}],"sample":false,"scenarios":[{"agent":{"actions":{"Building_1":{"battery":[0.0,0.0,0.011,0.02,0.021,0.0,0.0,0.098,0.0,0.15,0.089,0.15,0.15,0.15,0.095,-0.242,-0.255,-0.286,0.0,-0.011,-0.011,-0.012,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.061,0.017,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.0,0.029,0.071,0.185,0.191,0.0,0.015,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.0,0.0,0.07,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.016,0.0,-0.092,-0.521,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.07,0.016,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.006,-0.249,-0.263,-0.294,-0.033,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,-0.5,0.15,0.15,-0.5,0.15,0.103,0.077,0.085,0.15,0.093,0.0,-0.5,-0.148,-0.017,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.044,0.011,0.0,0.0,-0.5,0.15,0.15,0.15,-0.228,-0.197,-0.311,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.128,0.0,0.0,0.028,0.0,0.0,0.0,0.0,0.0,-0.152,-0.242,-0.391,-0.012,-0.012,-0.013,-0.015,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.067,0.055,0.038,0.0,-0.126,0.0,-0.014,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.0,0.0,0.15,0.044,0.011,0.0,0.0,-0.5,-0.111,-0.118,-0.131,0.0,0.0,0.0,-0.014,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.0,0.023,0.0,0.0,0.0,0.0,0.0,0.143,-0.238,-0.252,-0.282,0.0,0.0,0.0,0.0,-0.032,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.0,0.0,0.104,0.079,0.018,0.0,0.0,0.0,-0.247,-0.261,-0.293,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.13,0.028,0.0,0.0,0.0,0.009,0.0,0.0,0.0,-0.066,-0.189,-0.302,0.0,-0.254,-0.028,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.043,0.01,0.0,-0.404,0.042,0.04,0.027,0.15,0.15,0.037,-0.245,-0.26,-0.291,0.0,-0.011,-0.011,-0.013,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.0,0.0,0.0,0.0,0.0,0.0,0.127,0.063,-0.244,-0.258,-0.288,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.131,0.028,0.0,0.0,-0.163,0.15,0.034,0.0,0.0,0.0,0.0,-0.245,-0.173,-0.184,-0.205,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.139,0.031,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.166,-0.296,-0.331,0.0,0.0,0.0,-0.038,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.0,0.0,0.093,0.078,0.0,0.0,0.026,0.0,-0.247,-0.261,-0.292,-0.033,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.043,0.01,-0.338,0.15,0.15,0.046,0.03,0.0,0.0,0.0,0.0,-0.246,-0.26,-0.292,0.0,-0.011,-0.124,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.034,0.0,0.0,-0.259,0.0,0.0,0.0,-0.03,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.0,0.0,0.04,0.0,0.012,0.0,0.0,0.121,-0.24,-0.253,-0.273,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.122,0.026,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.247,-0.26,-0.292,0.0,0.0,0.0,0.0,-0.033,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.042,0.011,0.0,0.0,0.0,0.0,0.0,0.0,-0.248,-0.262,-0.294,-0.033,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.0,0.0,0.043,0.01,0.0,0.0,0.0,0.0,-0.248,-0.262,-0.294,0.0,-0.033,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.042,0.011,0.0,0.0,0.0,0.0,0.0,0.0,-0.248,-0.262,-0.294,0.0,-0.011,-0.011,-0.013,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],"cooling":[0.068,0.081,0.079,0.072,0.063,0.072,0.072,0.085,0.293,0.199,0.146,0.306,0.307,0.368,0.461,0.647,0.781,0.477,0.233,0.306,0.642,0.216,0.214,0.41,0.373,0.188,0.096,0.0,0.087,0.094,0.106,0.12,0.0,0.08,0.12,0.277,0.456,0.582,0.652,0.537,0.5,0.55,0.439,0.25,0.411,0.558,0.706,0.433,0.25,0.153,0.242,0.053,0.179,0.022,0.165,0.185,0.251,0.103,0.136,0.073,0.078,0.108,0.151,0.307,0.56,0.49,0.162,0.1,0.0,0.22,0.0,0.0,0.081,0.072,0.052,0.029,0.014,0.006,0.0,0.079,0.072,0.092,0.009,0.103,0.12,0.046,0.097,0.078,0.178,0.274,0.239,0.187,0.142,0.112,0.091,0.206,0.117,0.135,0.119,0.095,0.109,0.074,0.103,0.155,0.152,0.0,0.142,0.152,0.2,0.2,0.376,0.469,0.534,0.585,0.477,0.313,0.235,0.193,0.013,0.134,0.102,0.074,0.183,0.185,0.142,0.121,0.169,0.17,0.21,0.402,0.233,0.1,0.065,0.209,0.295,0.127,0.143,0.31,0.258,0.29,0.3,0.337,0.265,0.188,0.227,0.28,0.2,0.01,0.121,0.103,0.15,0.149,0.25,0.204,0.203,0.275,0.321,0.392,0.469,0.38,0.184,0.195,0.149,0.11,0.148,0.101,0.071,0.0,0.033,0.019,0.008,0.0,0.0,0.069,0.017,0.012,0.101,0.081,0.112,0.153,0.202,0.261,0.317,0.352,0.371,0.388,0.313,0.224,0.176,0.145,0.111,0.079,0.081,0.059,0.048,0.041,0.035,0.024,0.049,0.07,0.203,0.202,0.242,0.307,0.379,0.461,0.535,0.627,0.593,0.568,0.445,0.165,0.105,0.089,0.187,0.286,0.2,0.2,0.044,0.155,0.129,0.122,0.0,0.148,0.18,0.117,0.18,0.25,0.352,0.46,0.408,0.451,0.267,0.561,0.554,0.388,0.135,0.0,0.16,0.161,0.225,0.296,0.103,0.055,0.172,0.154,0.15,0.189,0.268,0.23,0.238,0.112,0.194,0.277,0.689,0.798,0.625,0.521,0.407,0.155,0.087,0.058,0.155,0.256,0.199,0.226,0.063,0.178,0.153,0.139,0.14,0.168,0.052,0.112,0.185,0.271,0.342,0.423,0.503,0.599,0.694,0.669,0.525,0.367,0.315,0.079,0.024,0.309,0.18,0.196,0.034,0.022,0.13,0.119,0.125,0.147,0.194,0.066,0.113,0.162,0.233,0.328,0.3,0.401,0.468,0.475,0.348,0.234,0.223,0.13,0.211,0.015,0.213,0.274,0.2,0.142,0.1,0.1,0.125,0.19,0.027,0.0,0.153,0.211,0.189,0.037,0.193,0.248,0.3,0.32,0.43,0.45,0.355,0.272,0.209,0.163,0.208,0.275,0.219,0.167,0.18,0.132,0.127,0.156,0.23,0.121,0.172,0.236,0.331,0.32,0.519,0.604,0.603,0.616,0.5,0.381,0.293,0.329,0.207,0.153,0.202,0.28,0.239,0.189,0.154,0.135,0.138,0.251,0.208,0.115,0.186,0.236,0.5,0.311,0.253,0.074,0.146,0.234,0.132,0.055,0.209,0.0,0.0,0.074,0.058,0.045,0.035,0.027,0.02,0.008,0.018,0.033,0.066,0.103,0.159,0.406,0.706,0.459,0.53,0.909,0.972,0.66,0.444,0.243,0.089,0.176,0.233,0.193,0.234,0.305,0.249,0.195,0.161,0.227,0.018,0.162,0.163,0.086,0.142,0.205,0.278,0.261,0.352,0.482,0.471,0.283,0.262,0.243,0.026,0.107,0.0,0.103,0.152,0.228,0.196,0.163,0.13,0.115,0.0,0.106,0.087,0.0,0.0,0.034,0.085,0.069,0.069,0.1,0.13,0.141,0.118,0.101,0.084,0.075,0.066,0.06,0.115,0.203,0.177,0.14,0.149,0.131,0.11,0.161,0.165,0.013,0.025,0.06,0.08,0.106,0.143,0.236,0.24,0.151,0.11,0.097,0.088,0.084,0.074,0.134,0.135,0.186,0.017,0.134,0.115,0.09,0.101,0.116,0.124,0.068,0.124,0.209,0.296,0.35,0.395,0.48,0.708,0.687,0.478,0.145,0.073,0.041,0.154,0.127,0.179,0.257,0.213,0.166,0.132,0.177,0.148,0.166,0.19,0.119,0.196,0.409,0.43,0.405,0.493,0.831,0.895,0.703,0.519,0.387,0.308,0.25,0.2,0.162,0.205,0.105,0.079,0.069,0.063,0.0,0.04,0.209,0.184,0.175,0.215,0.247,0.535,0.593,0.689,0.793,0.707,0.637,0.555,0.42,0.274,0.21,0.249,0.185,0.026,0.199,0.085,0.063,0.13,0.174,0.029,0.208,0.085,0.145,0.221,0.282,0.468,0.448,0.29,0.54,0.851,0.723,0.466,0.346,0.314,0.244,0.243,0.145,0.188,0.259,0.003,0.0,0.182,0.077,0.08,0.054,0.024,0.0,0.007,0.184,0.254,0.332,0.264,0.283,0.277,0.134,0.0,0.306,0.276,0.268,0.188,0.0,0.186,0.27,0.233,0.193,0.204,0.181,0.016,0.179,0.17,0.093,0.151,0.211,0.144,0.225,0.29,0.403,0.459,0.392,0.177,0.307,0.288,0.233,0.19,0.282,0.209,0.233,0.21,0.166,0.141,0.128,0.138,0.18,0.189,0.122,0.186,0.256,0.141,0.169,0.401,0.707,0.825,0.44,0.199,0.598,0.404,0.174,0.094,0.38,0.232,0.25,0.224,0.181,0.149,0.149,0.238,0.237,0.276,0.134,0.199,0.584,0.431,0.452,0.661,0.708,0.734,0.729,0.592,0.403,0.219,0.186,0.087,0.03,0.225,0.31,0.33,0.228,0.179,0.159,0.203,0.074,0.093,0.065,0.386,0.237,0.654,0.491,0.525,0.627,0.691,0.313,0.154,0.426,0.383,0.4,0.443,0.243,0.005,0.0,0.0,0.0,0.053,0.058,0.073,0.179,0.215,0.405,0.532,0.538,0.607,0.706,0.809,0.855,0.832,0.778,0.518,0.425,0.341,0.283,0.215],"dhw":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0]},"Building_2":{"battery":[0.0,0.0,0.011,0.02,0.021,0.0,0.0,0.098,0.0,0.15,0.15,0.15,0.15,0.15,0.048,-0.245,-0.255,-0.294,0.0,-0.011,-0.011,-0.013,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.0,0.0,0.0,-0.206,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.111,-0.107,-0.18,-0.456,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.093,0.02,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.007,-0.249,-0.263,-0.294,-0.033,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,-0.074,0.108,0.024,-0.129,0.12,0.026,0.0,0.0,0.0,-0.205,-0.231,-0.259,-0.126,-0.013,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.044,0.011,0.0,0.0,-0.116,0.104,0.023,0.0,-0.247,-0.255,-0.255,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.092,0.0,0.0,0.0,0.0,0.021,0.0,0.0,0.0,-0.231,-0.238,-0.252,-0.025,-0.027,-0.028,-0.033,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.0,0.0,0.15,0.044,0.011,0.0,0.0,-0.284,-0.164,-0.174,-0.195,0.0,0.0,0.0,-0.021,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.043,-0.245,-0.259,-0.291,0.0,0.0,0.0,0.0,-0.033,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.043,-0.245,-0.176,-0.248,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.136,0.029,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.246,-0.255,-0.296,0.0,-0.033,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.042,0.01,0.0,-0.5,0.15,0.15,0.15,0.075,0.016,0.0,-0.247,-0.261,-0.293,0.0,-0.011,-0.011,-0.014,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.0,0.0,0.0,0.0,0.0,0.0,0.127,0.064,-0.244,-0.258,-0.202,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.054,0.012,0.0,0.0,-0.5,0.15,0.15,0.15,0.0,0.0,0.0,-0.5,-0.077,-0.082,-0.091,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.035,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.137,-0.194,-0.098,0.0,0.0,0.0,-0.124,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.148,0.0,0.0,0.0,0.0,0.0,0.0,0.034,0.0,-0.246,-0.26,-0.206,-0.108,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.149,0.034,0.0,-0.089,0.086,0.019,0.0,0.0,0.0,0.0,0.0,0.0,-0.247,-0.218,-0.274,-0.021,-0.023,-0.15,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.0,0.0,0.0,-0.231,0.0,0.0,0.0,-0.027,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.043,-0.245,-0.259,-0.154,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.127,0.027,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.246,-0.254,-0.273,0.0,0.0,0.0,0.0,-0.055,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.039,0.01,0.0,0.0,0.0,0.0,0.0,0.0,-0.248,-0.262,-0.294,-0.033,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.0,0.0,-0.227,0.15,0.128,0.027,0.0,0.0,-0.247,-0.26,-0.292,0.0,-0.033,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.042,0.011,0.0,0.0,0.0,0.0,0.0,0.0,-0.248,-0.262,-0.294,0.0,-0.011,-0.011,-0.013,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],"cooling":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.497,0.159,0.233,0.3,0.401,0.474,0.604,0.696,0.671,0.622,0.462,0.276,0.346,0.362,0.32,0.06,0.011,0.089,0.129,0.006,0.0,0.0,0.0,0.023,0.453,0.189,0.278,0.428,0.47,0.728,0.838,0.984,0.64,0.601,0.479,0.256,0.203,0.192,0.199,0.131,0.083,0.057,0.04,0.028,0.02,0.014,0.007,0.026,0.074,0.121,0.181,0.255,0.271,0.448,0.403,0.167,0.204,0.203,0.152,0.099,0.107,0.178,0.15,0.035,0.007,0.02,0.103,0.073,0.0,0.0,0.0,0.0,0.0,0.027,0.059,0.069,0.091,0.111,0.164,0.176,0.235,0.236,0.167,0.104,0.068,0.055,0.077,0.118,0.147,0.02,0.0,0.0,0.0,0.0,0.0,0.215,0.099,0.144,0.392,0.456,0.451,0.487,0.575,0.586,0.585,0.547,0.433,0.23,0.185,0.145,0.113,0.082,0.145,0.041,0.0,0.0,0.0,0.0,0.0,0.065,0.137,0.171,0.21,0.261,0.458,0.543,0.448,0.452,0.486,0.469,0.366,0.204,0.156,0.13,0.097,0.227,0.167,0.0,0.0,0.0,0.0,0.0,0.134,0.064,0.19,0.416,0.169,0.255,0.342,0.425,0.541,0.535,0.527,0.457,0.31,0.193,0.169,0.14,0.148,0.214,0.256,0.222,0.0,0.0,0.0,0.0,0.0,0.104,0.085,0.137,0.211,0.28,0.346,0.408,0.495,0.485,0.493,0.452,0.35,0.22,0.169,0.15,0.129,0.082,0.053,0.036,0.022,0.013,0.007,0.002,0.04,0.104,0.181,0.224,0.267,0.328,0.384,0.448,0.541,0.521,0.498,0.442,0.343,0.201,0.154,0.123,0.188,0.067,0.048,0.032,0.02,0.012,0.008,0.004,0.035,0.093,0.203,0.276,0.346,0.419,0.502,0.719,0.698,0.695,0.685,0.622,0.476,0.313,0.217,0.152,0.205,0.247,0.076,0.009,0.019,0.021,0.021,0.02,0.046,0.219,0.567,0.303,0.452,0.446,0.441,0.525,0.611,0.588,0.569,0.522,0.415,0.267,0.195,0.143,0.147,0.182,0.251,0.093,0.0,0.0,0.005,0.008,0.051,0.121,0.208,0.423,0.295,0.362,0.421,0.491,0.596,0.604,0.605,0.639,0.474,0.282,0.218,0.189,0.297,0.135,0.0,0.017,0.021,0.016,0.013,0.01,0.049,0.111,0.168,0.194,0.221,0.277,0.335,0.402,0.81,0.805,0.384,0.452,0.41,0.277,0.259,0.226,0.248,0.149,0.181,0.16,0.1,0.0,0.0,0.0,0.047,0.119,0.452,0.243,0.293,0.347,0.399,0.446,0.525,0.527,0.529,0.758,0.415,0.293,0.196,0.161,0.127,0.115,0.219,0.132,0.0,0.0,0.002,0.004,0.062,0.139,0.288,0.509,0.578,0.316,0.379,0.479,0.593,0.602,0.608,0.574,0.48,0.319,0.278,0.317,0.184,0.117,0.138,0.08,0.006,0.015,0.013,0.012,0.059,0.129,0.191,0.247,0.3,0.379,0.459,0.536,0.879,0.917,0.567,0.511,0.447,0.308,0.218,0.165,0.121,0.091,0.169,0.187,0.02,0.005,0.037,0.012,0.045,0.156,0.173,0.213,0.287,0.364,0.444,0.503,0.587,0.564,0.515,0.495,0.363,0.268,0.2,0.164,0.118,0.087,0.2,0.173,0.0,0.002,0.008,0.01,0.333,0.17,0.269,0.379,0.066,0.311,0.635,0.476,0.692,0.62,0.403,0.328,0.227,0.154,0.118,0.095,0.069,0.109,0.226,0.089,0.0,0.0,0.0,0.0,0.008,0.064,0.046,0.07,0.082,0.1,0.127,0.174,0.225,0.153,0.134,0.095,0.064,0.039,0.035,0.028,0.018,0.052,0.137,0.045,0.0,0.0,0.0,0.0,0.001,0.017,0.031,0.158,0.227,0.059,0.084,0.116,0.146,0.149,0.148,0.118,0.136,0.074,0.059,0.048,0.079,0.16,0.21,0.047,0.0,0.0,0.0,0.0,0.011,0.072,0.121,0.177,0.231,0.303,0.367,0.426,0.521,0.729,0.595,0.349,0.526,0.207,0.168,0.14,0.106,0.077,0.197,0.158,0.0,0.0,0.0,0.0,0.045,0.428,0.357,0.505,0.299,0.433,0.7,0.6,0.948,0.972,0.472,0.507,0.455,0.31,0.226,0.189,0.282,0.343,0.083,0.003,0.013,0.018,0.013,0.011,0.057,0.206,0.29,0.445,0.507,0.768,0.71,0.515,0.667,0.706,0.693,0.605,0.482,0.321,0.232,0.179,0.128,0.26,0.28,0.012,0.007,0.013,0.017,0.017,0.066,0.44,0.364,0.238,0.621,0.38,0.499,0.859,0.904,0.565,0.896,0.551,0.623,0.292,0.337,0.227,0.092,0.27,0.233,0.0,0.001,0.013,0.02,0.022,0.182,0.175,0.17,0.166,0.204,0.373,0.505,0.377,0.654,0.685,0.688,0.262,0.187,0.161,0.145,0.116,0.133,0.112,0.063,0.026,0.029,0.027,0.024,0.021,0.053,0.115,0.189,0.233,0.285,0.335,0.412,0.443,0.522,0.525,0.529,0.498,0.388,0.281,0.232,0.206,0.453,0.173,0.1,0.073,0.018,0.02,0.017,0.016,0.07,0.194,0.429,0.306,0.363,0.551,0.478,0.592,0.65,0.68,0.71,0.688,0.947,0.38,0.291,0.249,0.221,0.183,0.162,0.096,0.046,0.024,0.025,0.022,0.089,0.179,0.336,0.339,0.392,0.469,0.562,0.639,0.77,0.789,0.839,0.855,0.649,0.234,0.286,0.364,0.291,0.295,0.169,0.218,0.029,0.034,0.033,0.032,0.298,0.168,0.404,0.355,0.377,0.492,0.589,0.768,1.0,0.907,0.721,0.671,0.54,0.44,0.282,0.2,0.099,0.121,0.179,0.172,0.039,0.032,0.031,0.034,0.067,0.15,0.278,0.375,0.464,0.572,0.692,0.797,0.933,0.933,0.867,0.748,0.663,0.38,0.264,0.207,0.137],"dhw":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0]},"Building_3":{"battery":[0.0,0.0,0.011,0.02,0.021,0.0,0.0,0.098,0.0,0.15,0.15,0.15,0.15,0.15,0.15,-0.158,-0.196,-0.291,-0.035,-0.04,-0.049,-0.074,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.0,0.0,0.0,0.0,-0.157,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,-0.075,-0.127,-0.244,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.104,0.058,0.032,0.019,0.012,0.0,0.01,0.0,0.0,0.01,-0.247,-0.306,-0.452,-0.22,-0.105,-0.051,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,-0.434,0.15,0.15,-0.347,0.15,0.15,0.15,0.15,0.15,-0.169,-0.21,-0.312,-0.149,-0.072,-0.034,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.118,-0.109,0.123,0.067,0.038,-0.234,-0.301,-0.446,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.0,0.0,0.0,0.0,0.132,0.071,0.04,0.023,-0.244,-0.302,-0.448,-0.054,-0.063,-0.078,-0.115,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.049,-0.023,-0.011,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.0,0.15,0.15,0.15,0.15,0.135,0.0,-0.3,-0.171,-0.213,-0.315,0.0,0.0,0.0,-0.149,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.0,0.0,0.15,0.0,0.0,0.0,0.15,0.15,-0.203,-0.252,-0.372,0.0,0.0,0.0,0.0,-0.179,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,-0.208,-0.257,-0.381,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.089,0.05,0.028,0.017,0.011,0.0,-0.246,-0.305,-0.451,0.0,-0.218,-0.105,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,-0.409,0.15,0.15,0.15,0.09,0.05,0.028,-0.243,-0.301,-0.446,-0.054,-0.063,-0.077,-0.114,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.049,0.0,0.0,0.0,-0.023,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.0,0.0,0.0,0.0,0.0,0.15,0.127,0.15,-0.177,-0.219,-0.325,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.117,0.063,-0.221,0.15,0.084,0.046,0.0,0.0,0.0,-0.24,-0.197,-0.223,-0.201,0.0,0.0,0.0,0.0,0.0,0.15,0.0,0.15,0.15,0.15,0.15,0.145,0.08,0.044,0.025,0.015,0.011,0.0,0.0,0.0,0.011,-0.146,-0.252,-0.49,0.0,0.0,0.0,-0.278,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.0,0.0,0.0,0.0,0.15,0.15,0.142,0.078,-0.234,-0.29,-0.43,-0.208,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,-0.49,0.15,0.15,0.15,0.148,0.081,0.045,0.026,0.016,-0.245,-0.304,-0.451,-0.054,-0.063,-0.259,-0.022,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.0,0.0,-0.205,0.0,0.0,0.0,-0.096,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,-0.195,-0.241,-0.357,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.102,0.056,0.032,0.018,0.012,0.0,0.01,-0.247,-0.306,-0.452,0.0,0.0,0.0,0.0,-0.217,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.097,0.054,0.0,0.0,0.0,0.035,-0.242,-0.3,-0.444,-0.215,-0.103,0.0,-0.049,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.0,0.107,-0.481,0.15,0.15,0.15,0.15,0.15,-0.191,-0.238,-0.352,0.0,-0.168,0.0,-0.08,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.095,0.052,0.03,0.017,0.011,-0.246,-0.305,-0.452,-0.054,-0.064,-0.078,-0.117,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],"cooling":[0.053,0.019,0.01,0.005,0.0,0.0,0.053,0.103,0.269,0.351,0.319,0.36,0.435,0.526,0.599,0.694,0.6,0.39,0.282,0.297,0.253,0.224,0.27,0.328,0.139,0.081,0.058,0.018,0.009,0.039,0.033,0.05,0.13,0.225,0.296,0.373,0.448,0.537,0.644,0.819,0.911,0.679,0.485,0.475,0.419,0.358,0.149,0.077,0.06,0.051,0.043,0.036,0.032,0.026,0.031,0.071,0.173,0.176,0.322,0.266,0.246,0.394,0.422,0.431,0.37,0.304,0.301,0.09,0.201,0.176,0.104,0.019,0.02,0.024,0.021,0.019,0.013,0.012,0.121,0.041,0.144,0.078,0.084,0.076,0.092,0.097,0.114,0.147,0.171,0.2,0.181,0.14,0.172,0.193,0.148,0.078,0.045,0.035,0.028,0.022,0.013,0.0,0.001,0.03,0.054,0.088,0.13,0.178,0.266,0.342,0.404,0.468,0.504,0.527,0.449,0.516,0.297,0.191,0.006,0.118,0.084,0.062,0.048,0.036,0.02,0.019,0.098,0.114,0.234,0.27,0.301,0.333,0.386,0.449,0.52,0.598,0.635,0.294,0.179,0.228,0.357,0.213,0.143,0.106,0.082,0.1,0.1,0.0,0.041,0.028,0.055,0.116,0.125,0.152,0.199,0.267,0.349,0.414,0.48,0.5,0.583,0.623,0.489,0.37,0.276,0.236,0.164,0.115,0.082,0.06,0.045,0.033,0.016,0.018,0.081,0.083,0.089,0.124,0.17,0.224,0.285,0.451,0.53,0.56,0.604,0.741,0.565,0.413,0.338,0.255,0.172,0.129,0.097,0.078,0.061,0.052,0.043,0.036,0.054,0.09,0.134,0.172,0.233,0.306,0.364,0.534,0.549,0.55,0.527,0.52,0.537,0.308,0.229,0.191,0.158,0.113,0.086,0.067,0.053,0.043,0.033,0.032,0.047,0.079,0.136,0.192,0.266,0.326,0.41,0.472,0.414,0.694,0.862,0.799,0.648,0.552,0.199,0.129,0.062,0.149,0.197,0.18,0.154,0.0,0.0,0.0,0.362,0.139,0.15,0.192,0.244,0.322,0.47,0.561,0.599,0.621,0.653,0.503,0.482,0.326,0.236,0.258,0.058,0.0,0.064,0.078,0.096,0.087,0.08,0.067,0.058,0.074,0.169,0.235,0.274,0.333,0.4,0.48,0.542,0.587,0.622,0.55,0.441,0.438,0.512,0.477,0.301,0.0,0.0,0.0,0.055,0.048,0.042,0.038,0.137,0.091,0.151,0.193,0.229,0.272,0.328,0.394,0.476,0.408,0.473,0.423,0.352,0.264,0.219,0.382,0.344,0.0,0.09,0.0,0.059,0.048,0.033,0.033,0.055,0.097,0.124,0.166,0.216,0.274,0.329,0.381,0.429,0.525,0.606,0.5,0.41,0.447,0.411,0.277,0.23,0.118,0.087,0.072,0.061,0.052,0.038,0.035,0.061,0.248,0.187,0.213,0.269,0.336,0.391,0.45,0.508,0.616,0.684,0.622,0.624,0.474,0.365,0.279,0.217,0.321,0.12,0.082,0.071,0.062,0.054,0.047,0.066,0.1,0.146,0.264,0.339,0.41,0.491,0.548,0.629,0.683,0.702,0.568,0.457,0.366,0.145,0.093,0.056,0.139,0.109,0.089,0.076,0.065,0.055,0.049,0.072,0.205,0.269,0.326,0.412,0.43,0.691,0.594,0.592,0.587,0.563,0.454,0.415,0.417,0.39,0.318,0.23,0.074,0.068,0.063,0.058,0.053,0.048,0.044,0.066,0.101,0.146,0.208,0.264,0.316,0.373,0.412,0.456,0.497,0.479,0.244,0.164,0.106,0.207,0.174,0.135,0.064,0.055,0.052,0.049,0.045,0.038,0.037,0.157,0.089,0.097,0.058,0.063,0.079,0.098,0.114,0.127,0.134,0.175,0.101,0.12,0.081,0.08,0.078,0.058,0.051,0.051,0.044,0.037,0.034,0.028,0.107,0.045,0.037,0.078,0.091,0.106,0.12,0.137,0.164,0.18,0.176,0.179,0.243,0.182,0.148,0.138,0.294,0.149,0.047,0.037,0.034,0.0,0.128,0.038,0.029,0.051,0.242,0.175,0.199,0.243,0.314,0.376,0.441,0.506,0.55,0.549,0.468,0.36,0.111,0.235,0.202,0.153,0.166,0.086,0.07,0.061,0.053,0.041,0.038,0.131,0.125,0.334,0.254,0.277,0.339,0.41,0.487,0.588,0.684,0.787,0.699,0.601,0.567,0.421,0.338,0.208,0.137,0.111,0.093,0.078,0.065,0.054,0.049,0.071,0.252,0.2,0.117,0.341,0.434,0.596,0.724,0.861,0.853,0.811,0.626,0.549,0.415,0.318,0.262,0.112,0.003,0.136,0.118,0.104,0.092,0.085,0.075,0.072,0.106,0.177,0.283,0.383,0.448,0.538,0.616,0.683,0.732,0.809,0.724,0.632,0.439,0.295,0.249,0.197,0.145,0.13,0.114,0.0,0.0,0.0,0.051,0.073,0.107,0.178,0.212,0.234,0.288,0.347,0.394,0.437,0.456,0.312,0.269,0.274,0.241,0.147,0.227,0.182,0.089,0.077,0.071,0.065,0.06,0.055,0.052,0.062,0.09,0.173,0.208,0.296,0.367,0.46,0.363,0.399,0.428,0.572,0.559,0.258,0.191,0.358,0.295,0.342,0.141,0.111,0.086,0.072,0.062,0.052,0.253,0.109,0.128,0.272,0.261,0.285,0.342,0.412,0.479,0.557,0.626,0.668,0.712,0.456,0.431,0.255,0.167,0.091,0.055,0.146,0.117,0.096,0.08,0.066,0.061,0.126,0.164,0.315,0.46,0.543,0.468,0.553,0.655,0.776,0.837,0.852,0.713,0.561,0.322,0.204,0.255,0.13,0.046,0.148,0.12,0.102,0.089,0.08,0.07,0.096,0.152,0.2,0.262,0.344,0.533,0.482,0.634,0.697,0.748,0.747,0.574,0.554,0.313,0.192,0.123,0.075,0.173,0.136,0.116,0.102,0.091,0.084,0.074,0.086,0.129,0.202,0.404,0.398,0.48,0.704,0.918,0.974,1.0,0.958,0.839,0.626,0.456,0.346,0.273,0.371],"dhw":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0]}},"buildings":{"Building_1":{"battery_soc":[0.2,0.2,0.209,0.224,0.24,0.24,0.24,0.317,0.317,0.433,0.503,0.619,0.736,0.853,0.927,0.713,0.487,0.234,0.234,0.224,0.214,0.204,0.204,0.204,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.251,0.264,0.264,0.264,0.264,0.264,0.264,0.264,0.264,0.264,0.264,0.264,0.264,0.264,0.264,0.264,0.264,0.264,0.264,0.264,0.264,0.264,0.263,0.38,0.38,0.403,0.458,0.602,0.751,0.751,0.762,0.762,0.762,0.762,0.762,0.762,0.762,0.762,0.762,0.761,0.761,0.761,0.761,0.878,0.878,0.878,0.932,0.932,0.932,0.932,0.932,0.932,0.932,0.932,0.944,0.944,0.862,0.411,0.411,0.411,0.411,0.411,0.411,0.411,0.528,0.644,0.761,0.878,0.932,0.945,0.944,0.944,0.944,0.944,0.944,0.944,0.944,0.944,0.949,0.728,0.495,0.235,0.206,0.206,0.206,0.206,0.206,0.206,0.323,0.439,0.556,0.673,0.79,0.906,0.472,0.589,0.706,0.272,0.389,0.469,0.529,0.595,0.712,0.784,0.784,0.35,0.219,0.204,0.204,0.204,0.204,0.204,0.204,0.321,0.437,0.554,0.671,0.788,0.904,0.938,0.947,0.947,0.947,0.538,0.655,0.772,0.888,0.686,0.512,0.237,0.237,0.237,0.237,0.237,0.237,0.237,0.237,0.354,0.471,0.587,0.704,0.821,0.92,0.92,0.92,0.942,0.942,0.942,0.942,0.942,0.941,0.807,0.593,0.25,0.239,0.228,0.217,0.204,0.204,0.204,0.204,0.204,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.255,0.298,0.327,0.327,0.216,0.216,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.32,0.437,0.553,0.67,0.787,0.787,0.787,0.903,0.938,0.946,0.946,0.946,0.535,0.437,0.332,0.216,0.216,0.216,0.216,0.204,0.204,0.204,0.204,0.204,0.321,0.437,0.554,0.671,0.788,0.788,0.805,0.805,0.805,0.805,0.805,0.805,0.916,0.706,0.483,0.233,0.233,0.233,0.233,0.233,0.205,0.205,0.205,0.204,0.321,0.438,0.555,0.671,0.788,0.788,0.788,0.869,0.93,0.944,0.944,0.944,0.944,0.725,0.494,0.235,0.235,0.235,0.235,0.235,0.235,0.235,0.235,0.352,0.468,0.585,0.702,0.819,0.92,0.942,0.941,0.941,0.941,0.948,0.948,0.948,0.948,0.889,0.722,0.455,0.455,0.23,0.205,0.205,0.205,0.322,0.438,0.555,0.672,0.789,0.905,0.939,0.946,0.946,0.592,0.625,0.656,0.677,0.794,0.911,0.939,0.722,0.492,0.235,0.235,0.225,0.215,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.319,0.436,0.553,0.67,0.786,0.786,0.786,0.786,0.786,0.786,0.786,0.885,0.934,0.718,0.489,0.235,0.234,0.234,0.234,0.234,0.351,0.468,0.585,0.701,0.818,0.92,0.942,0.942,0.942,0.797,0.914,0.94,0.94,0.94,0.94,0.94,0.723,0.57,0.407,0.226,0.226,0.226,0.226,0.226,0.226,0.342,0.459,0.576,0.693,0.809,0.917,0.942,0.941,0.941,0.941,0.941,0.941,0.941,0.941,0.941,0.941,0.794,0.532,0.24,0.24,0.24,0.24,0.206,0.206,0.206,0.206,0.206,0.323,0.439,0.556,0.673,0.79,0.79,0.789,0.862,0.922,0.922,0.922,0.942,0.942,0.724,0.493,0.234,0.205,0.205,0.205,0.205,0.322,0.439,0.555,0.672,0.789,0.905,0.939,0.947,0.649,0.765,0.882,0.918,0.941,0.941,0.941,0.941,0.941,0.723,0.493,0.234,0.234,0.225,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.317,0.434,0.46,0.46,0.46,0.231,0.231,0.231,0.231,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.321,0.437,0.554,0.671,0.788,0.788,0.787,0.819,0.818,0.828,0.828,0.828,0.922,0.709,0.485,0.244,0.244,0.244,0.244,0.244,0.244,0.244,0.36,0.477,0.594,0.711,0.827,0.922,0.942,0.942,0.942,0.942,0.942,0.942,0.942,0.942,0.942,0.723,0.493,0.234,0.234,0.234,0.234,0.234,0.205,0.205,0.205,0.322,0.439,0.555,0.672,0.789,0.906,0.938,0.947,0.947,0.946,0.946,0.946,0.946,0.946,0.727,0.495,0.234,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.322,0.439,0.555,0.672,0.789,0.906,0.905,0.905,0.939,0.946,0.946,0.946,0.946,0.946,0.727,0.495,0.234,0.234,0.205,0.205,0.205,0.205,0.205,0.205,0.322,0.439,0.555,0.672,0.789,0.906,0.938,0.947,0.947,0.946,0.946,0.946,0.946,0.946,0.727,0.495,0.235,0.234,0.225,0.215,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203],"dhw_soc":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],"grid_kwh":[0.678,0.846,0.762,0.699,0.677,1.001,1.608,0.86,4.653,0.981,-0.061,2.315,0.764,0.716,1.26,2.02,2.193,1.19,1.419,2.3,3.13,1.784,1.303,2.042,1.886,1.125,0.744,0.35,1.713,1.752,1.766,0.572,-0.159,-0.047,0.556,1.462,6.669,4.144,2.167,1.55,2.503,2.116,2.915,1.785,3.982,2.93,3.446,2.155,1.38,0.981,1.346,0.551,1.085,0.44,0.979,1.779,1.827,-0.021,-0.05,-0.129,-0.133,-0.321,-0.011,2.823,3.203,2.159,1.652,1.244,0.611,1.54,0.483,0.871,0.69,0.649,0.565,0.95,0.405,1.394,0.592,0.824,0.441,0.178,0.139,0.075,0.006,0.086,-0.122,-0.312,0.065,0.355,1.383,1.363,1.519,1.005,1.033,1.204,1.332,1.406,1.338,1.238,1.934,0.704,1.501,2.044,0.892,-0.496,-0.434,-0.302,-0.145,0.048,0.672,0.514,0.839,2.325,2.222,2.04,1.414,1.158,0.65,1.143,1.273,1.156,1.602,1.607,1.429,1.948,4.054,1.297,1.144,4.164,0.617,-0.409,-0.67,-0.058,1.067,-0.064,0.001,1.401,1.488,2.773,8.927,2.165,1.511,1.129,1.289,2.234,1.659,0.873,1.346,1.265,2.371,1.144,2.555,0.266,0.062,4.102,1.784,1.617,1.676,0.213,0.137,1.23,1.691,1.153,2.04,0.959,0.651,0.356,0.49,0.93,0.881,0.848,0.847,3.696,0.877,0.203,1.584,-0.197,-0.446,-0.411,-0.314,0.182,0.323,0.104,0.167,0.286,1.929,1.94,1.523,1.093,0.818,0.682,1.003,0.589,0.549,0.519,0.491,0.446,1.379,0.384,2.23,0.199,0.068,0.72,1.2,1.804,2.687,2.771,2.189,2.53,2.226,1.657,1.043,1.001,1.25,1.57,1.179,1.167,0.75,0.987,0.878,2.233,0.301,0.668,0.35,-0.046,-0.041,-0.028,0.455,0.467,0.662,1.164,5.21,2.385,3.597,2.451,1.722,0.608,1.687,1.018,1.278,1.568,1.273,1.073,1.54,1.478,1.452,1.91,1.899,1.283,0.572,-0.352,-0.304,0.134,6.467,2.09,2.37,2.281,2.511,1.157,0.803,0.554,0.999,1.867,1.17,1.283,1.108,1.58,1.474,1.417,1.41,0.8,-0.016,-0.027,0.778,1.121,0.266,0.716,1.505,2.857,7.227,2.722,3.461,2.842,2.439,1.006,0.58,1.625,1.095,1.156,0.99,0.937,1.38,1.337,1.32,0.656,0.496,-0.071,-0.221,-0.253,-0.121,0.188,0.201,1.041,1.622,0.945,1.866,2.576,2.14,0.988,1.289,0.893,1.228,1.976,1.671,1.434,1.258,1.256,1.718,3.455,-0.226,-0.719,-0.371,-0.176,1.991,1.222,-0.232,0.045,0.131,0.206,2.194,1.75,1.976,1.662,1.447,1.524,1.708,1.979,1.751,1.536,2.649,1.029,0.873,0.753,0.275,-0.031,-0.028,-0.021,0.781,0.722,2.23,0.957,1.135,2.739,2.641,2.122,1.778,3.643,1.274,0.984,1.183,1.504,1.334,1.125,0.968,0.901,0.91,2.903,0.721,0.62,0.328,0.068,4.596,0.363,0.395,-0.353,3.182,2.466,1.359,1.226,2.38,0.993,0.483,0.661,0.591,0.538,0.496,0.461,0.429,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.34,1.27,1.438,1.167,1.318,1.597,1.859,1.651,1.509,4.461,1.541,0.809,0.572,0.041,0.632,0.17,0.622,4.721,0.902,0.593,0.949,0.667,1.414,3.41,0.716,3.591,1.042,1.295,1.477,1.788,1.656,2.337,0.977,0.82,0.345,0.111,1.219,1.085,-0.17,-0.18,0.667,0.231,-0.02,-0.032,0.105,0.311,1.271,2.112,1.4,1.166,0.913,1.322,1.324,2.785,1.577,1.422,2.194,2.146,0.857,2.247,1.565,-0.023,-0.235,0.481,-0.126,-0.062,0.121,0.115,0.993,0.895,0.886,1.214,1.11,1.775,1.166,2.755,1.131,1.115,0.921,1.398,1.728,1.215,1.22,0.544,0.213,-0.063,-0.054,1.117,0.465,0.583,1.233,0.624,1.647,1.875,4.924,1.622,0.747,1.501,1.712,1.375,1.587,1.906,1.724,1.529,1.022,2.718,0.233,1.338,1.442,-0.034,0.416,2.427,1.013,0.481,0.986,2.174,2.295,1.841,2.549,2.147,2.442,1.661,1.243,1.04,1.197,0.785,0.676,0.633,0.606,0.349,0.876,0.96,0.421,1.32,5.933,-0.127,1.75,1.634,4.402,8.38,2.747,2.775,2.818,2.972,2.443,1.928,1.446,1.116,0.462,1.169,0.69,0.608,0.884,1.063,0.453,1.406,0.508,-0.026,0.892,0.124,6.231,3.778,0.137,1.484,3.142,3.902,2.334,2.013,1.9,1.763,3.035,0.973,1.13,1.417,0.863,0.848,1.593,4.137,2.159,1.402,0.018,-0.367,0.347,-0.012,0.117,0.547,1.727,-0.25,0.349,-0.43,0.307,3.574,1.744,2.639,2.274,0.356,1.619,1.962,1.807,2.047,2.683,2.087,1.212,1.495,0.39,-0.051,0.108,0.011,-0.466,0.1,0.181,-0.016,0.486,1.024,1.095,1.991,2.574,1.412,1.092,1.514,1.213,1.808,1.712,1.501,1.424,1.372,1.408,1.257,0.439,-0.219,-0.236,-0.115,-0.644,-0.548,0.954,1.385,2.93,1.15,1.254,2.977,2.506,4.849,0.807,1.916,1.306,1.879,1.769,1.59,1.459,2.477,4.181,2.124,0.768,-0.056,-0.12,2.156,0.873,0.736,3.454,1.208,2.157,1.946,2.843,3.679,1.601,7.794,0.78,0.5,1.28,2.118,3.556,1.784,1.583,1.502,2.35,0.661,0.227,0.669,0.69,0.762,1.498,0.84,1.08,0.826,2.4,1.66,2.079,2.81,1.986,2.055,2.392,1.356,0.375,0.353,0.351,0.35,0.567,0.586,0.613,2.044,1.643,3.571,3.406,1.136,1.332,1.962,2.819,2.816,3.384,3.406,2.488,2.608,2.603,2.726,1.305],"indoor_c":[23.1,22.23,22.22,22.22,22.22,22.22,22.22,22.33,22.77,23.27,24.41,24.44,24.66,24.6,24.34,23.33,22.29,23.64,25.28,24.14,20.64,22.33,22.2,19.53,19.22,20.14,21.16,22.82,21.78,21.93,21.99,22.3,24.14,24.35,25.01,24.34,23.71,23.45,23.25,23.92,24.18,23.72,24.06,24.73,22.92,21.24,18.96,19.25,19.78,20.54,19.04,21.07,19.1,21.17,19.29,19.81,19.52,21.57,22.34,23.73,24.16,24.41,24.32,22.78,20.59,20.56,22.27,23.01,24.56,20.81,23.07,23.75,22.74,22.9,23.14,23.57,23.94,24.14,24.44,23.34,23.68,23.76,24.96,24.17,24.38,25.31,25.04,25.54,24.58,23.63,23.58,23.61,23.59,23.69,23.79,21.59,22.37,21.64,21.7,21.8,21.49,21.94,21.69,21.4,21.88,24.05,23.2,24.01,24.17,24.83,23.72,23.32,22.88,22.39,22.53,22.67,22.87,23.01,24.87,23.23,23.53,23.7,21.64,21.45,21.58,21.76,21.3,21.67,21.9,20.74,22.32,24.2,25.38,24.77,24.66,26.3,26.86,25.68,25.87,24.66,24.15,23.26,23.25,23.46,22.48,21.34,21.55,23.54,21.85,22.3,21.89,22.34,21.89,22.66,23.21,23.38,23.6,23.48,23.28,24.07,25.72,26.02,26.27,26.35,25.82,26.16,26.47,27.5,27.19,27.44,27.7,27.99,28.18,26.7,27.62,28.22,27.44,27.99,28.05,27.94,27.78,27.39,27.04,26.67,26.34,26.03,26.07,26.06,26.1,26.19,26.34,26.52,26.38,26.55,26.64,26.71,26.8,27.01,26.92,27.06,25.78,26.02,25.82,25.45,25.08,24.61,24.11,23.32,23.17,22.65,22.65,23.96,24.64,24.94,23.45,21.74,21.97,21.32,22.88,21.01,21.37,21.3,23.06,21.64,22.18,23.43,23.48,23.58,23.32,23.02,23.77,23.63,24.98,22.33,22.2,22.28,23.83,25.58,23.31,23.19,21.93,20.72,22.17,22.89,21.34,21.43,21.42,21.26,20.81,21.61,22.2,24.04,24.05,24.1,21.0,20.66,21.0,21.26,21.67,23.3,24.14,24.68,23.29,21.65,21.81,20.96,22.57,20.91,21.36,21.4,21.54,21.67,23.33,23.42,23.45,22.97,22.88,22.58,22.34,21.83,21.22,21.13,21.25,21.42,21.39,23.29,24.29,19.79,21.01,20.29,22.18,22.7,21.33,21.58,21.65,21.75,21.66,23.46,23.85,24.01,23.88,23.62,24.22,23.85,23.63,23.43,23.85,24.16,24.12,24.84,23.64,25.47,22.27,21.47,21.47,21.71,22.1,22.14,22.28,22.17,24.15,25.47,24.61,24.61,25.27,27.17,26.39,26.42,26.1,25.72,24.35,23.23,23.07,23.11,23.26,23.43,22.48,21.19,21.17,21.32,21.04,21.53,21.71,21.93,21.81,23.39,23.62,23.82,23.7,24.29,23.04,22.67,22.37,21.86,21.94,22.11,22.32,21.59,22.2,22.53,21.7,20.46,20.43,20.56,20.79,20.98,21.27,20.61,21.48,22.91,23.09,23.38,21.89,23.4,24.32,26.31,26.56,26.09,26.79,27.41,25.46,27.09,27.64,26.75,26.7,26.71,26.78,26.89,27.01,27.38,27.43,27.62,27.6,27.49,27.28,26.39,26.36,26.6,27.13,27.67,28.34,28.96,29.72,30.17,28.77,27.03,25.45,25.04,23.73,22.15,21.97,21.94,21.99,21.02,22.94,21.29,22.03,23.32,23.45,23.53,23.36,23.88,23.27,22.43,22.14,22.94,22.55,22.25,24.33,23.42,24.98,23.3,22.47,20.99,20.98,21.01,21.14,21.24,22.85,21.38,22.02,23.42,24.11,24.09,23.72,24.11,24.36,24.22,24.07,23.87,23.89,23.8,23.78,23.74,23.78,23.82,22.81,21.3,21.27,21.4,21.19,21.37,21.7,21.05,21.12,22.92,23.52,23.67,23.8,23.76,23.47,22.41,22.28,22.92,23.38,23.58,23.66,23.63,23.69,22.65,22.36,21.25,23.11,21.27,21.71,21.91,21.99,22.21,22.7,24.08,24.18,23.97,23.73,23.62,23.47,22.97,21.17,20.95,21.36,23.13,24.16,24.89,23.27,23.41,22.32,20.97,20.93,21.07,21.32,20.76,21.25,21.58,22.06,23.41,23.68,22.82,23.15,23.67,23.5,21.34,21.03,21.15,21.4,21.57,21.74,21.93,22.14,22.33,21.54,22.37,22.72,22.96,23.15,24.16,24.16,22.54,23.27,23.9,24.27,24.68,22.79,22.91,22.3,21.56,21.36,21.01,20.71,20.87,21.47,21.78,20.88,21.25,22.96,20.2,21.54,22.05,21.22,20.72,22.39,20.6,22.45,22.7,22.78,22.82,21.98,22.55,23.94,22.16,20.28,20.31,20.81,20.98,20.8,21.03,20.67,21.36,20.6,19.66,22.05,22.69,20.21,21.45,21.47,22.26,23.18,24.19,24.8,23.16,23.08,22.7,23.46,23.39,23.52,24.8,26.5,22.27,22.63,22.12,22.47,24.48,21.4,20.64,20.49,20.59,20.3,20.46,22.35,20.56,21.39,22.71,22.76,22.9,23.89,23.71,23.73,23.03,22.74,23.12,24.49,22.81,22.79,22.78,22.86,21.33,21.64,20.76,20.7,20.84,21.04,21.22,21.34,21.4,21.75,23.13,23.39,23.56,25.14,25.83,24.53,22.77,22.02,23.48,25.06,20.37,21.53,22.82,23.79,19.87,20.94,20.13,20.24,20.41,20.68,20.77,20.18,20.64,20.71,22.6,23.0,20.23,21.83,22.17,21.44,21.34,21.04,20.81,20.91,21.3,22.3,22.55,23.53,24.44,21.41,20.48,19.73,20.16,20.47,20.73,20.69,22.33,22.86,24.05,21.46,23.26,20.13,21.9,21.93,21.75,21.23,23.13,24.69,21.61,21.81,20.69,19.64,20.5,22.83,23.68,24.25,24.59,23.97,23.98,24.02,23.29,23.51,22.36,22.02,22.2,22.06,21.76,21.34,20.84,20.36,19.99,20.62,20.4,20.48,20.54,20.81]},"Building_2":{"battery_soc":[0.2,0.2,0.209,0.224,0.24,0.24,0.24,0.317,0.317,0.433,0.55,0.667,0.784,0.9,0.938,0.721,0.495,0.235,0.235,0.225,0.215,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.32,0.437,0.437,0.437,0.437,0.254,0.254,0.254,0.254,0.254,0.254,0.254,0.254,0.254,0.254,0.254,0.254,0.254,0.371,0.487,0.604,0.721,0.838,0.838,0.837,0.837,0.837,0.837,0.837,0.837,0.923,0.829,0.669,0.272,0.272,0.272,0.272,0.272,0.272,0.272,0.388,0.505,0.622,0.739,0.855,0.928,0.943,0.943,0.943,0.943,0.943,0.943,0.943,0.943,0.948,0.728,0.495,0.235,0.206,0.206,0.206,0.206,0.206,0.206,0.322,0.439,0.556,0.673,0.789,0.906,0.84,0.924,0.943,0.829,0.922,0.942,0.942,0.942,0.942,0.761,0.556,0.327,0.215,0.204,0.204,0.204,0.204,0.204,0.204,0.32,0.437,0.554,0.671,0.787,0.904,0.938,0.947,0.947,0.947,0.844,0.925,0.943,0.943,0.724,0.498,0.273,0.272,0.272,0.272,0.272,0.272,0.272,0.272,0.389,0.506,0.623,0.739,0.856,0.928,0.927,0.927,0.927,0.927,0.943,0.943,0.943,0.943,0.739,0.528,0.305,0.283,0.259,0.234,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.321,0.437,0.554,0.671,0.788,0.788,0.787,0.904,0.938,0.947,0.947,0.947,0.695,0.55,0.396,0.223,0.223,0.223,0.223,0.205,0.205,0.205,0.205,0.205,0.322,0.438,0.555,0.672,0.788,0.788,0.788,0.788,0.788,0.788,0.788,0.905,0.938,0.721,0.492,0.234,0.234,0.234,0.234,0.234,0.205,0.205,0.205,0.205,0.322,0.439,0.555,0.672,0.789,0.789,0.789,0.789,0.789,0.788,0.788,0.905,0.938,0.722,0.566,0.346,0.346,0.346,0.346,0.346,0.346,0.346,0.346,0.463,0.58,0.696,0.813,0.919,0.941,0.941,0.941,0.941,0.941,0.941,0.941,0.941,0.941,0.723,0.497,0.235,0.235,0.206,0.206,0.206,0.206,0.323,0.439,0.556,0.673,0.79,0.906,0.939,0.947,0.947,0.523,0.64,0.757,0.873,0.932,0.944,0.944,0.725,0.494,0.235,0.235,0.225,0.216,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.202,0.202,0.202,0.202,0.202,0.202,0.202,0.202,0.202,0.202,0.202,0.202,0.202,0.202,0.202,0.202,0.202,0.202,0.202,0.202,0.202,0.202,0.319,0.436,0.552,0.669,0.786,0.786,0.786,0.786,0.785,0.785,0.785,0.884,0.934,0.718,0.49,0.311,0.311,0.311,0.311,0.311,0.427,0.544,0.661,0.778,0.894,0.936,0.946,0.945,0.945,0.518,0.635,0.752,0.868,0.868,0.868,0.868,0.434,0.366,0.293,0.213,0.213,0.213,0.213,0.213,0.213,0.33,0.446,0.563,0.68,0.796,0.913,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.939,0.818,0.646,0.56,0.56,0.56,0.56,0.45,0.45,0.45,0.45,0.45,0.45,0.566,0.683,0.8,0.915,0.915,0.915,0.915,0.915,0.914,0.914,0.941,0.941,0.723,0.493,0.31,0.215,0.215,0.215,0.215,0.332,0.448,0.565,0.682,0.799,0.914,0.941,0.941,0.862,0.929,0.943,0.943,0.943,0.943,0.943,0.943,0.943,0.724,0.531,0.289,0.27,0.25,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.317,0.434,0.434,0.433,0.433,0.229,0.229,0.229,0.229,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.322,0.438,0.555,0.672,0.789,0.788,0.788,0.788,0.788,0.788,0.788,0.905,0.938,0.721,0.492,0.356,0.356,0.356,0.356,0.356,0.356,0.356,0.356,0.472,0.589,0.706,0.823,0.921,0.942,0.942,0.942,0.942,0.942,0.942,0.942,0.942,0.941,0.724,0.499,0.257,0.257,0.257,0.257,0.257,0.209,0.209,0.208,0.325,0.442,0.559,0.675,0.792,0.909,0.939,0.947,0.947,0.947,0.947,0.947,0.946,0.946,0.727,0.495,0.235,0.206,0.206,0.205,0.205,0.205,0.205,0.205,0.322,0.439,0.556,0.672,0.789,0.906,0.906,0.906,0.705,0.821,0.921,0.942,0.942,0.942,0.723,0.493,0.235,0.235,0.205,0.205,0.205,0.205,0.205,0.205,0.322,0.439,0.556,0.672,0.789,0.906,0.938,0.947,0.947,0.947,0.947,0.946,0.946,0.946,0.727,0.495,0.235,0.235,0.225,0.215,0.204,0.204,0.204,0.204,0.204,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203],"dhw_soc":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],"grid_kwh":[0.187,0.186,0.221,0.254,0.272,0.231,0.248,0.671,2.934,1.17,1.131,1.167,1.468,1.285,1.356,1.851,0.956,0.732,1.202,0.976,1.524,1.161,0.913,0.323,0.212,0.379,0.46,0.201,0.202,0.231,0.243,0.245,2.33,0.564,1.008,1.188,1.013,1.47,1.827,2.989,1.635,1.344,1.37,0.795,0.66,0.629,0.641,0.483,0.374,0.313,0.274,0.251,0.247,0.262,0.256,0.358,0.869,0.998,0.456,1.85,0.976,0.143,0.738,0.363,0.47,0.676,0.656,0.581,0.607,0.849,0.532,0.268,0.202,0.232,0.914,0.85,0.7,0.729,0.752,0.361,0.365,0.437,0.441,0.449,0.404,0.337,0.822,0.072,0.125,0.312,0.673,0.718,0.518,0.511,0.503,0.58,1.016,0.728,0.683,0.685,0.7,0.54,0.307,1.601,0.461,0.556,0.868,1.536,1.003,0.964,1.059,0.334,0.298,0.341,1.02,0.737,0.781,0.715,0.584,0.374,1.012,0.776,0.683,0.685,0.7,0.729,0.053,0.785,0.649,0.088,0.981,0.684,1.149,0.966,0.734,0.141,0.158,0.178,0.689,0.636,0.552,0.488,0.412,0.7,0.563,0.684,0.683,0.685,0.7,0.729,1.616,0.496,0.631,1.126,0.674,0.082,0.973,0.788,0.925,0.18,0.175,0.175,0.856,0.653,0.745,0.511,0.528,0.67,0.764,1.184,0.683,0.685,0.7,0.729,0.545,0.971,0.4,0.494,0.514,0.892,0.672,0.7,0.885,0.159,0.165,0.173,0.859,0.765,0.653,0.615,0.62,0.373,0.307,0.389,0.234,0.217,0.218,0.236,0.332,0.536,0.653,0.739,0.704,0.895,0.874,1.035,1.117,1.233,1.168,1.161,1.067,0.811,0.711,0.665,1.343,0.341,0.295,0.258,0.23,0.215,0.219,0.24,0.318,0.415,0.602,0.865,0.886,0.916,1.168,9.801,1.415,1.521,1.533,1.541,1.605,1.062,0.854,0.539,0.654,0.745,0.36,0.205,0.725,0.733,0.748,0.774,0.844,0.705,2.349,1.467,1.152,0.971,0.907,1.331,0.194,0.621,0.581,0.535,1.092,0.82,0.642,0.449,0.525,0.6,0.753,0.396,0.683,0.685,0.712,0.747,0.856,0.482,0.759,1.709,0.658,0.777,1.085,1.555,1.247,0.402,0.345,0.74,1.345,0.994,0.857,0.933,0.89,0.492,0.187,0.225,0.968,0.72,0.73,0.752,0.851,0.554,0.544,0.592,0.517,0.843,0.679,1.165,1.734,0.824,0.121,0.171,1.199,0.983,1.252,0.897,1.846,0.524,0.596,1.162,0.908,0.685,0.7,0.682,0.511,0.589,2.082,0.686,1.01,0.714,0.885,0.797,0.929,0.196,0.175,1.409,1.077,1.085,0.806,0.751,0.616,0.947,1.179,0.981,0.683,0.685,0.704,0.379,0.485,0.622,4.526,3.688,2.305,2.265,1.006,0.906,1.282,0.407,0.358,0.314,1.231,0.901,0.954,1.054,0.608,0.452,0.498,0.485,0.198,0.221,0.215,0.266,0.444,0.613,0.758,0.985,0.842,0.941,1.124,1.164,2.018,1.939,1.245,1.269,1.286,1.051,0.856,1.04,0.466,0.394,0.568,0.607,0.231,0.199,0.447,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.653,1.154,0.46,0.385,0.638,0.576,0.683,0.691,0.718,0.751,2.697,0.708,0.975,2.374,0.54,0.926,2.236,1.511,1.79,0.671,0.245,0.137,0.802,0.705,0.748,0.601,0.848,0.933,1.194,0.884,0.683,0.367,0.242,0.231,0.278,5.014,1.98,2.061,1.067,0.533,0.915,2.424,4.514,0.407,0.305,0.114,0.357,0.305,0.443,0.45,0.233,0.804,1.111,0.785,0.683,0.685,0.7,0.347,0.252,0.309,0.462,0.816,0.836,2.079,2.033,0.354,0.376,0.096,0.134,0.07,0.796,0.526,0.613,0.084,0.507,0.597,0.66,0.291,0.185,0.685,0.7,0.729,0.757,0.373,0.466,0.572,0.602,0.747,0.823,0.944,1.042,0.748,0.402,0.143,1.717,0.823,0.744,0.702,1.067,0.977,1.129,1.156,0.683,0.682,0.315,0.231,0.063,2.656,1.047,1.299,0.681,0.976,1.447,1.103,1.875,1.164,0.148,0.189,1.094,0.842,0.523,0.814,0.966,1.008,0.385,0.192,0.215,0.457,0.231,0.255,0.368,1.009,3.283,9.608,1.758,1.698,1.542,0.953,1.274,1.445,1.453,1.458,1.829,1.082,1.002,0.906,0.48,0.89,0.818,0.442,0.202,0.216,0.241,0.269,0.389,2.298,1.566,0.766,2.297,0.715,0.411,1.8,1.831,1.158,2.854,1.33,2.405,1.014,1.124,0.708,0.401,0.798,0.713,0.186,0.686,0.714,0.746,0.778,1.511,0.752,0.762,0.72,0.811,0.904,1.367,1.394,1.623,0.77,0.623,0.105,0.58,0.718,0.739,0.65,0.492,0.441,0.33,0.743,0.747,0.745,0.754,0.701,0.459,0.475,0.589,0.699,0.664,0.687,0.862,0.821,0.952,0.191,0.174,0.188,1.025,0.991,0.888,0.851,4.85,0.691,0.413,0.849,0.724,0.73,0.739,0.765,0.966,0.878,1.837,0.926,0.907,1.525,0.928,1.053,1.164,0.479,0.52,0.513,3.157,1.215,1.019,0.949,0.94,0.648,0.664,0.9,0.786,0.74,0.756,0.779,0.945,0.621,1.257,0.156,1.388,1.388,1.79,1.222,1.457,0.772,0.855,0.913,1.726,0.777,1.008,1.208,1.098,1.366,0.58,1.739,0.859,0.762,0.775,0.8,2.232,0.756,1.166,1.053,1.231,1.079,1.197,1.483,2.018,1.01,0.583,0.518,1.359,1.552,0.962,0.795,0.417,0.461,0.59,0.574,0.272,0.26,0.273,0.307,0.395,0.539,0.891,1.092,1.139,1.29,1.623,1.632,1.965,2.077,1.855,1.711,1.995,1.325,0.959,0.855,0.502],"indoor_c":[24.28,24.26,24.21,24.12,24.0,23.89,24.2,24.85,24.99,25.0,25.0,25.0,25.46,25.66,25.65,25.87,26.17,26.25,26.3,26.46,25.57,24.73,23.96,25.42,25.97,24.94,24.06,25.36,26.0,26.02,26.45,26.83,24.44,25.53,25.77,25.61,25.97,25.28,25.2,24.87,25.92,25.96,26.26,26.48,26.48,26.37,25.84,25.91,25.88,26.1,26.35,26.61,26.81,26.86,27.27,27.58,27.69,27.64,27.39,26.93,26.67,25.39,25.48,26.82,26.73,26.64,26.6,26.53,26.14,24.91,24.57,25.4,25.83,25.92,24.47,24.48,25.61,25.72,26.05,26.33,26.52,26.83,27.01,27.23,27.36,27.41,27.29,27.31,26.84,26.65,26.79,26.72,26.69,26.59,25.99,24.94,23.92,24.89,25.54,25.71,25.71,25.57,26.16,25.39,25.86,26.19,24.31,24.24,24.54,24.8,24.77,24.95,25.31,25.53,25.41,25.37,25.45,25.54,25.62,25.69,24.65,25.31,26.01,26.25,26.31,26.26,26.56,26.58,26.49,26.41,26.43,26.43,25.5,25.36,26.09,26.46,26.48,26.49,26.7,26.57,26.52,26.53,26.56,24.62,24.5,26.02,26.5,26.69,26.68,26.53,25.74,26.24,25.59,23.71,25.57,25.9,25.91,25.95,25.77,26.04,26.16,26.28,26.4,26.28,26.32,26.28,25.78,24.45,23.08,22.38,24.39,25.61,25.73,25.56,25.64,25.4,25.59,25.66,25.72,25.59,25.69,25.92,25.83,26.05,26.13,26.21,26.25,26.25,26.18,26.07,25.98,26.05,25.99,26.06,26.17,26.3,26.34,26.28,26.39,26.37,26.24,26.24,26.29,26.31,26.31,26.34,26.09,26.15,26.12,26.09,26.09,26.04,25.95,25.88,24.94,25.56,25.44,25.57,25.72,25.89,26.01,26.04,26.2,26.23,26.01,25.87,25.78,25.72,25.68,25.03,25.26,25.32,25.29,25.26,25.24,25.31,25.42,25.55,24.72,23.84,24.74,25.71,26.0,26.26,26.46,26.57,26.72,25.32,23.35,24.33,23.86,24.38,24.96,25.06,25.03,25.26,25.36,25.41,25.43,25.4,25.48,25.55,25.19,24.45,23.3,24.08,25.32,25.86,26.18,26.35,26.5,26.43,26.17,25.08,25.49,25.47,25.5,25.51,25.36,25.48,25.56,25.5,25.68,25.61,25.57,25.42,24.05,24.56,25.84,25.82,25.87,25.96,26.03,26.05,26.23,26.22,25.94,25.9,25.92,25.88,25.9,25.97,24.07,24.06,25.79,25.8,26.01,25.85,25.67,25.52,24.79,24.96,24.22,23.81,24.1,25.25,25.6,25.65,25.89,25.93,24.39,25.14,25.36,25.42,25.48,25.66,25.56,25.69,25.72,24.45,25.3,25.21,25.38,25.43,25.49,25.34,23.8,24.0,25.46,25.96,26.12,26.03,26.09,26.06,25.48,23.98,23.72,25.07,25.62,25.5,25.3,25.38,25.39,25.37,25.36,25.32,25.15,24.31,24.66,24.97,24.45,24.83,25.86,26.11,26.23,26.15,26.18,26.06,25.92,25.77,25.78,25.69,25.59,25.54,24.04,23.65,24.75,25.05,25.01,25.09,25.24,25.35,25.47,25.51,24.26,23.66,25.03,25.83,25.73,26.01,26.33,26.5,26.54,26.63,26.69,27.01,27.39,27.91,28.54,29.11,29.67,30.24,30.89,31.44,28.82,28.24,27.48,27.07,24.65,24.27,25.84,26.45,26.7,26.79,24.32,24.53,24.23,24.35,26.05,25.81,24.55,25.15,24.04,24.22,24.96,24.91,24.97,25.1,25.15,25.17,25.24,24.59,22.98,23.62,24.79,25.22,25.51,25.66,25.75,25.57,25.64,25.77,25.75,25.81,25.91,25.7,25.37,25.72,25.94,26.0,26.04,25.96,25.84,25.75,25.72,25.14,23.86,24.42,25.2,25.48,25.62,25.64,25.78,25.81,25.85,24.5,24.07,25.43,25.78,25.88,25.74,25.7,25.77,25.73,25.53,25.69,25.67,25.64,25.02,23.62,22.53,23.67,24.99,25.38,25.46,25.37,25.7,25.81,25.77,25.77,25.79,25.7,25.72,25.83,25.65,24.6,24.87,25.83,24.56,25.38,25.42,25.44,25.49,25.53,23.75,23.54,25.13,25.7,25.83,25.74,25.84,24.02,23.69,23.05,24.5,24.52,23.61,24.43,23.27,23.17,24.98,25.17,25.2,25.24,25.26,25.31,24.11,22.99,24.23,25.46,25.68,25.84,25.95,25.9,25.97,25.47,25.18,24.61,24.45,23.38,23.88,25.16,25.02,25.09,25.1,25.12,25.14,25.2,25.22,25.23,25.3,23.61,22.89,24.66,25.46,25.81,26.0,26.02,25.97,23.49,23.79,24.88,23.51,24.47,24.69,23.37,23.32,24.58,23.21,24.15,23.41,24.18,23.49,23.81,24.58,22.74,22.68,24.42,25.06,25.39,25.66,25.81,24.51,24.49,24.83,25.38,25.67,24.59,23.96,24.75,23.2,23.17,22.4,24.13,24.89,25.0,25.05,25.13,24.76,24.64,24.9,25.27,25.35,25.45,25.58,25.7,25.9,25.89,25.76,25.77,25.54,25.48,25.4,25.49,25.36,25.46,25.46,25.44,25.45,25.42,25.32,25.11,23.02,23.76,24.17,24.28,24.83,24.98,25.16,25.31,25.52,25.09,24.27,24.91,25.24,24.87,25.3,25.21,25.37,25.53,25.53,25.51,24.1,24.94,24.9,24.78,24.61,24.48,24.3,24.57,25.04,25.47,25.62,25.67,25.81,25.73,25.19,25.41,25.57,25.67,25.48,25.53,25.32,25.34,25.05,24.83,24.94,26.0,25.25,24.36,24.17,23.64,24.0,23.42,24.81,25.23,25.44,25.52,24.1,24.79,23.59,24.12,24.53,24.52,24.48,24.13,23.36,23.62,24.28,24.29,24.37,24.22,24.52,24.73,25.26,24.97,24.13,23.77,24.87,25.36,25.57,25.57,25.61,25.5,25.17,24.97,24.88,24.79,24.72,24.69,24.41,24.35,24.25,24.26,24.1,24.6,24.77,24.79,25.0]},"Building_3":{"battery_soc":[0.2,0.2,0.205,0.214,0.223,0.223,0.223,0.267,0.267,0.335,0.404,0.472,0.541,0.609,0.677,0.594,0.492,0.341,0.322,0.301,0.275,0.236,0.236,0.235,0.235,0.235,0.234,0.234,0.234,0.233,0.233,0.232,0.232,0.232,0.231,0.231,0.231,0.23,0.23,0.229,0.229,0.229,0.228,0.228,0.228,0.227,0.227,0.227,0.226,0.226,0.225,0.225,0.225,0.224,0.224,0.293,0.361,0.361,0.36,0.36,0.359,0.277,0.277,0.276,0.276,0.275,0.275,0.275,0.274,0.274,0.273,0.273,0.272,0.272,0.341,0.409,0.477,0.546,0.614,0.613,0.612,0.611,0.61,0.609,0.677,0.745,0.813,0.773,0.706,0.579,0.578,0.577,0.576,0.575,0.574,0.573,0.572,0.64,0.708,0.776,0.844,0.89,0.916,0.929,0.936,0.94,0.939,0.942,0.94,0.939,0.942,0.813,0.653,0.422,0.307,0.253,0.226,0.226,0.225,0.225,0.293,0.362,0.431,0.499,0.567,0.635,0.413,0.481,0.549,0.37,0.438,0.507,0.575,0.643,0.711,0.622,0.513,0.351,0.273,0.236,0.218,0.217,0.217,0.217,0.216,0.285,0.354,0.422,0.49,0.559,0.627,0.695,0.763,0.831,0.884,0.826,0.881,0.91,0.926,0.804,0.647,0.419,0.418,0.417,0.417,0.416,0.415,0.415,0.414,0.482,0.551,0.619,0.687,0.755,0.823,0.821,0.82,0.819,0.817,0.877,0.908,0.925,0.934,0.806,0.649,0.42,0.391,0.358,0.317,0.257,0.257,0.256,0.256,0.255,0.255,0.254,0.254,0.254,0.253,0.253,0.252,0.252,0.252,0.251,0.251,0.225,0.213,0.207,0.206,0.206,0.206,0.205,0.205,0.205,0.204,0.204,0.204,0.204,0.203,0.203,0.203,0.202,0.202,0.202,0.201,0.201,0.201,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.269,0.338,0.406,0.475,0.543,0.542,0.61,0.678,0.746,0.814,0.875,0.873,0.717,0.627,0.516,0.353,0.352,0.352,0.351,0.273,0.273,0.272,0.272,0.272,0.34,0.409,0.477,0.545,0.614,0.613,0.612,0.68,0.679,0.677,0.676,0.744,0.812,0.706,0.574,0.383,0.382,0.381,0.381,0.38,0.287,0.286,0.286,0.286,0.354,0.423,0.491,0.559,0.627,0.626,0.625,0.624,0.623,0.622,0.69,0.758,0.826,0.717,0.583,0.387,0.386,0.386,0.385,0.384,0.384,0.383,0.383,0.382,0.45,0.519,0.587,0.655,0.723,0.791,0.859,0.898,0.92,0.931,0.938,0.941,0.94,0.811,0.652,0.421,0.42,0.307,0.252,0.252,0.251,0.32,0.389,0.457,0.525,0.593,0.662,0.73,0.797,0.865,0.654,0.722,0.79,0.858,0.898,0.92,0.931,0.804,0.647,0.419,0.39,0.357,0.316,0.257,0.257,0.256,0.256,0.255,0.255,0.255,0.254,0.254,0.253,0.253,0.253,0.252,0.252,0.251,0.226,0.225,0.225,0.225,0.212,0.212,0.212,0.211,0.211,0.211,0.21,0.21,0.21,0.209,0.209,0.209,0.208,0.208,0.208,0.207,0.207,0.207,0.206,0.206,0.206,0.205,0.205,0.205,0.204,0.204,0.204,0.203,0.203,0.203,0.202,0.202,0.202,0.201,0.27,0.339,0.407,0.476,0.544,0.543,0.542,0.541,0.54,0.539,0.608,0.665,0.733,0.64,0.526,0.358,0.357,0.356,0.356,0.355,0.424,0.492,0.56,0.629,0.697,0.765,0.832,0.885,0.912,0.797,0.865,0.902,0.922,0.92,0.919,0.917,0.792,0.688,0.572,0.467,0.466,0.466,0.465,0.464,0.463,0.532,0.531,0.599,0.667,0.735,0.803,0.868,0.904,0.923,0.933,0.938,0.942,0.94,0.939,0.937,0.941,0.864,0.732,0.482,0.481,0.48,0.48,0.335,0.335,0.334,0.334,0.333,0.402,0.47,0.538,0.606,0.674,0.673,0.672,0.671,0.67,0.738,0.806,0.87,0.905,0.782,0.631,0.41,0.302,0.302,0.301,0.301,0.369,0.438,0.506,0.574,0.642,0.71,0.778,0.846,0.596,0.664,0.732,0.8,0.867,0.903,0.922,0.932,0.938,0.81,0.652,0.421,0.392,0.359,0.224,0.213,0.212,0.212,0.212,0.211,0.211,0.211,0.21,0.21,0.21,0.209,0.209,0.209,0.208,0.208,0.208,0.207,0.207,0.207,0.206,0.206,0.206,0.205,0.205,0.205,0.204,0.204,0.204,0.203,0.203,0.203,0.202,0.202,0.202,0.271,0.339,0.408,0.407,0.406,0.3,0.299,0.299,0.298,0.248,0.248,0.247,0.247,0.246,0.246,0.246,0.245,0.245,0.245,0.313,0.382,0.45,0.518,0.587,0.586,0.585,0.584,0.583,0.582,0.65,0.718,0.786,0.684,0.558,0.374,0.373,0.372,0.372,0.371,0.371,0.37,0.37,0.438,0.506,0.575,0.643,0.711,0.779,0.846,0.892,0.916,0.93,0.936,0.94,0.939,0.942,0.813,0.653,0.422,0.421,0.421,0.42,0.419,0.306,0.306,0.305,0.374,0.442,0.511,0.579,0.647,0.715,0.783,0.851,0.894,0.917,0.916,0.915,0.913,0.928,0.801,0.645,0.417,0.305,0.252,0.251,0.225,0.225,0.225,0.224,0.293,0.362,0.43,0.498,0.567,0.635,0.634,0.682,0.436,0.505,0.573,0.641,0.709,0.777,0.677,0.553,0.371,0.37,0.283,0.282,0.241,0.24,0.24,0.239,0.308,0.377,0.445,0.513,0.582,0.65,0.718,0.786,0.853,0.896,0.918,0.931,0.937,0.941,0.812,0.653,0.421,0.393,0.359,0.318,0.257,0.257,0.256,0.256,0.256,0.255,0.255,0.254,0.254,0.254,0.253,0.253,0.252,0.252,0.252,0.251,0.251,0.25,0.25,0.25,0.249,0.249,0.248,0.248,0.248,0.247],"dhw_soc":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],"grid_kwh":[0.563,0.473,0.463,0.466,0.469,0.5,1.033,1.042,2.187,2.373,1.526,1.211,0.972,1.07,1.133,1.74,1.119,0.765,1.495,1.743,1.695,2.464,2.719,2.948,0.809,0.645,0.577,1.238,0.461,0.608,0.55,0.63,0.852,0.872,0.804,0.82,0.798,0.894,1.726,2.027,3.019,2.253,2.421,2.045,1.615,1.693,1.107,0.64,0.59,0.559,0.535,0.519,0.525,0.572,0.535,0.749,1.588,0.915,1.691,0.415,0.565,7.843,1.113,1.721,2.25,1.528,2.802,1.572,1.721,1.679,0.725,0.479,0.478,0.484,0.718,0.714,0.712,0.802,2.49,0.742,2.123,0.749,1.171,0.453,1.31,0.443,0.356,0.129,0.218,0.414,1.332,1.114,1.238,1.352,1.374,0.742,0.579,0.756,0.736,0.722,0.712,0.695,0.551,0.443,0.231,0.124,-0.034,-0.06,0.858,0.495,0.591,0.554,0.732,1.41,2.45,4.187,2.318,0.973,0.726,0.754,0.898,0.834,0.79,0.739,0.733,0.795,7.505,1.186,1.358,0.589,1.183,0.597,0.711,0.731,0.945,0.968,1.202,0.46,1.059,1.242,3.269,1.408,0.834,0.721,0.65,1.159,1.155,0.858,0.834,0.819,1.718,1.302,0.895,0.639,0.471,0.185,1.458,0.979,0.786,0.399,1.143,1.605,3.136,2.229,1.836,1.845,0.891,0.746,0.649,0.828,0.782,0.752,0.721,0.79,1.599,0.745,0.446,0.313,0.188,0.385,0.351,0.808,1.025,0.8,0.999,1.693,2.062,2.521,2.629,1.838,1.66,1.034,0.69,0.636,0.587,0.563,0.555,0.6,0.603,0.761,0.631,0.536,0.659,0.987,0.845,6.373,2.35,1.665,1.651,2.174,3.312,2.328,1.708,1.719,1.422,0.741,0.662,0.605,0.565,0.54,0.528,0.589,0.579,0.544,0.447,0.423,0.577,0.319,0.859,0.703,0.629,1.614,4.011,2.641,2.393,2.863,1.002,1.666,0.608,0.841,0.97,0.92,1.085,0.66,0.677,0.769,5.116,0.917,1.046,1.482,0.775,0.652,1.009,0.886,0.51,1.1,1.341,1.088,2.146,1.886,1.972,8.53,0.871,0.917,0.599,0.637,0.925,0.903,0.898,0.955,0.859,0.536,0.625,1.005,0.382,0.507,0.561,1.482,1.081,0.807,1.124,1.581,2.145,4.945,4.652,5.437,8.745,1.158,0.665,0.419,0.81,0.794,0.792,0.848,2.033,0.574,0.528,0.44,0.794,0.37,0.662,0.62,0.904,0.415,0.879,0.698,1.543,2.188,1.368,2.495,2.664,0.912,0.673,0.419,0.821,0.793,0.767,0.833,0.855,1.027,0.659,0.477,0.3,0.327,0.332,0.421,0.493,0.68,0.969,0.801,1.917,3.005,3.361,1.587,1.556,1.721,0.905,0.862,0.827,0.804,0.781,0.839,1.01,2.775,0.694,1.208,0.926,0.86,0.696,0.636,0.919,0.86,1.244,1.384,2.628,2.194,2.202,1.407,1.314,3.385,0.757,0.647,0.614,0.592,0.586,0.63,0.647,0.638,0.83,1.126,1.079,1.134,1.475,1.127,1.493,1.787,2.422,1.761,2.065,2.472,2.192,1.448,0.865,0.811,0.724,0.666,0.628,0.599,0.587,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.082,1.939,1.791,0.631,1.084,0.593,0.82,0.809,0.809,0.863,1.151,0.988,0.719,0.858,1.673,0.796,1.116,0.958,1.172,0.866,0.862,0.48,1.073,1.018,1.647,1.299,1.054,1.082,0.816,0.805,0.793,0.784,0.783,0.79,2.328,0.376,1.309,0.841,0.655,0.492,1.007,0.706,0.407,0.486,0.377,0.341,1.249,0.949,1.561,1.361,0.834,1.046,1.27,1.018,0.762,0.754,0.736,1.925,0.859,0.629,0.82,0.793,0.595,0.617,0.514,0.572,0.591,0.249,0.429,1.186,1.369,1.391,2.159,3.298,2.419,0.82,0.525,0.513,0.658,2.056,0.766,0.85,1.108,2.932,0.886,0.497,0.475,1.368,0.94,0.954,1.074,0.791,0.844,0.872,1.256,1.028,1.725,1.61,1.338,1.13,0.903,0.855,0.827,0.806,0.79,0.876,7.852,1.162,2.863,1.564,0.659,0.732,0.608,0.655,1.113,1.242,1.429,1.312,2.13,3.374,1.824,2.328,1.288,0.808,0.73,0.677,0.633,0.599,0.586,0.637,0.65,2.323,0.828,0.561,0.917,1.19,2.025,1.51,2.116,2.495,2.828,2.111,3.038,1.88,1.645,1.545,1.02,0.435,0.8,0.748,0.705,0.676,0.671,0.709,0.656,1.051,1.197,1.262,1.012,0.971,0.86,1.186,1.281,1.755,3.872,2.367,2.992,2.196,1.889,2.179,1.534,0.929,0.814,0.737,0.658,0.66,0.677,0.882,1.198,0.922,1.024,0.869,0.572,1.043,1.098,0.961,1.05,0.636,0.461,0.629,1.566,1.864,1.508,1.448,1.216,0.673,0.636,0.857,0.839,0.827,0.829,0.913,0.885,0.836,1.135,1.947,0.55,0.57,1.561,1.079,0.911,0.413,0.682,1.588,1.52,1.253,2.065,1.637,2.225,1.148,1.905,0.897,0.839,0.832,0.804,3.596,1.142,1.125,2.047,1.627,0.501,0.377,0.737,0.531,0.809,0.686,0.89,1.328,1.679,9.498,1.957,1.574,0.962,0.68,0.858,0.986,0.925,0.882,0.859,0.91,1.395,1.676,5.728,6.864,2.642,1.184,1.481,2.295,1.649,1.44,1.757,1.514,2.099,2.272,1.657,9.607,2.017,0.655,0.833,0.995,0.943,0.909,0.898,0.937,0.979,1.247,1.017,1.073,1.017,3.185,1.104,1.052,1.521,1.51,1.175,1.015,9.507,1.692,1.167,0.971,1.328,1.589,0.8,0.74,0.7,0.671,0.668,0.705,0.696,0.673,0.86,1.962,0.921,0.982,1.897,2.298,2.228,2.679,2.766,2.987,2.982,2.241,2.032,1.8,3.696],"indoor_c":[24.43,24.44,24.44,24.44,24.36,24.29,24.11,23.35,23.33,23.33,23.33,23.33,23.1,22.81,22.46,22.34,22.66,23.8,24.47,24.34,24.52,24.5,23.89,22.87,23.43,23.84,24.11,24.78,25.09,24.75,25.15,25.6,25.37,24.96,24.67,24.4,24.21,23.97,23.61,22.78,22.03,22.53,23.03,22.37,22.29,22.31,23.48,24.18,24.54,24.77,24.94,25.05,25.13,25.25,25.45,25.25,24.82,24.88,24.05,24.03,23.92,23.18,22.87,22.57,22.76,22.98,22.65,23.75,22.71,22.8,23.19,24.14,24.41,24.58,24.75,24.89,25.04,25.17,24.64,25.01,24.57,24.89,24.98,24.82,24.63,24.47,24.37,24.39,24.34,24.21,24.37,24.42,23.81,23.21,23.21,23.62,23.96,24.03,24.11,24.22,24.38,24.94,25.41,25.64,25.63,25.46,25.21,24.96,24.8,24.81,24.51,24.3,24.06,23.53,23.72,22.5,23.03,23.43,24.73,24.1,24.45,24.48,24.55,24.71,24.92,25.01,24.91,25.04,24.15,23.71,23.44,23.01,22.75,22.48,22.21,22.12,21.87,23.56,24.52,23.94,23.22,23.7,24.0,24.27,24.51,24.33,24.21,24.88,24.76,25.05,25.39,25.42,25.46,25.35,25.05,24.78,24.38,24.13,23.88,23.57,23.28,22.91,22.94,23.02,23.33,23.49,23.86,24.15,24.29,24.46,24.55,24.67,24.89,25.02,24.94,25.18,25.12,24.95,24.81,24.5,24.21,23.54,23.2,22.98,22.59,21.6,21.76,21.98,22.09,22.51,23.09,23.36,23.57,23.75,23.91,23.98,24.05,24.18,24.41,24.61,24.67,24.68,24.53,24.32,24.17,23.39,23.31,23.13,23.1,22.88,22.39,22.88,23.1,23.31,23.48,23.74,23.92,24.1,24.23,24.31,24.43,24.52,24.78,24.99,25.08,25.0,24.79,24.46,24.06,23.7,24.22,22.61,21.73,21.4,21.3,21.12,22.41,23.1,23.76,23.13,22.58,22.35,22.34,23.62,24.36,24.68,23.18,23.61,23.88,23.81,23.67,23.44,22.81,22.5,22.38,22.42,22.08,22.67,22.56,22.8,23.06,22.69,23.93,24.79,24.62,24.42,24.14,24.15,24.2,24.32,24.8,25.18,24.64,24.3,23.87,23.58,23.43,23.1,22.77,22.54,22.53,22.77,23.17,22.65,22.02,21.43,21.75,23.66,24.19,24.5,24.35,24.49,24.68,24.89,24.74,24.89,24.35,23.92,23.62,23.41,23.17,22.91,22.66,23.39,23.36,23.62,23.79,23.88,24.3,23.07,22.83,24.56,24.22,24.92,24.59,24.71,24.9,25.05,25.43,25.68,25.6,25.24,24.82,24.48,24.14,23.82,23.61,23.2,22.6,22.91,23.26,22.62,22.47,22.73,22.79,23.64,23.88,24.12,24.25,24.39,24.57,24.62,24.8,24.14,24.33,24.28,24.18,23.97,23.6,23.37,23.12,22.54,22.16,22.3,21.86,22.04,22.21,22.48,22.73,22.2,22.95,23.36,23.66,23.88,24.06,24.22,24.48,24.65,24.66,23.99,23.59,23.3,22.99,22.71,22.48,22.11,21.84,22.16,22.42,22.63,23.7,24.28,24.82,24.25,24.34,24.4,24.45,24.48,24.52,24.96,25.23,25.1,24.46,24.18,23.75,23.6,23.53,23.6,24.0,24.42,25.19,25.95,26.84,27.43,23.51,23.43,23.31,24.35,24.52,24.62,24.69,24.73,24.79,24.87,25.04,25.07,24.56,24.03,23.59,23.38,23.13,22.89,22.68,22.49,22.37,23.44,23.7,23.98,23.2,23.24,23.3,23.89,24.11,24.17,24.27,24.4,24.56,24.73,24.27,24.11,24.02,24.45,24.47,24.27,23.94,23.73,23.55,23.43,22.98,23.49,23.47,23.66,23.73,23.76,23.93,24.05,24.27,24.32,24.43,24.6,24.82,24.51,24.76,24.85,24.28,24.11,23.99,23.73,23.49,23.39,23.31,23.16,23.22,22.94,23.24,23.32,23.35,22.2,22.72,23.59,23.97,24.14,24.55,23.79,24.26,24.55,24.91,24.24,23.91,23.63,23.46,23.26,23.06,22.82,22.62,22.49,22.44,22.99,23.38,24.51,23.84,24.1,24.26,23.84,24.37,24.5,24.59,24.68,24.83,24.95,24.73,24.97,24.02,24.1,23.96,23.67,23.44,23.28,23.15,22.91,22.06,22.05,21.9,21.59,21.82,21.98,22.68,23.22,23.43,23.7,23.86,23.98,24.11,24.24,24.48,23.87,24.13,24.83,23.87,23.67,22.86,22.25,21.48,21.15,20.87,21.2,21.2,21.51,21.81,22.07,22.93,24.01,22.96,23.14,23.2,23.24,23.28,23.37,23.86,24.31,24.29,23.77,23.23,22.93,22.64,22.41,22.15,21.72,21.0,20.85,20.71,21.07,21.65,21.86,22.12,22.46,22.65,22.82,23.76,24.29,24.66,24.59,24.73,24.65,24.05,23.86,23.59,23.31,22.99,22.72,22.54,22.42,23.28,23.66,23.52,23.55,23.96,23.24,23.29,23.91,24.12,24.18,24.28,24.39,24.52,24.68,24.94,25.02,24.76,24.56,23.83,23.21,22.97,23.48,23.36,23.37,22.39,22.69,23.69,23.92,22.81,22.88,22.26,23.18,23.49,23.62,23.76,23.93,24.15,23.25,23.79,24.09,23.64,23.72,23.54,23.38,23.14,22.98,22.74,22.5,22.26,22.07,22.94,22.63,23.32,23.79,24.4,24.86,24.33,24.31,24.27,24.33,24.47,24.65,24.7,24.68,24.03,23.33,22.82,23.08,22.66,22.3,21.74,21.37,21.27,21.62,21.97,22.9,23.56,23.34,24.1,24.82,24.03,24.19,24.22,24.28,24.38,24.53,24.76,24.82,24.76,24.5,24.14,23.35,23.58,22.7,22.51,22.23,21.97,22.48,22.29,23.07,23.82,24.41,24.98,24.23,24.23,24.27,24.29,24.32,24.35,24.44,24.61,24.6,24.45,23.5,23.45,23.15,22.43,21.54,21.08,20.82,20.62,20.82,21.25,21.69,22.04,22.35,21.66]}},"complete":true,"cost_usd":[0.0413,0.0849,0.1267,0.1677,0.2088,0.2588,0.3424,0.4174,0.7023,0.8342,0.9117,1.0485,1.1419,1.2314,1.3407,1.6699,1.9204,2.078,2.198,2.3443,2.5294,2.6871,2.8298,2.9836,3.0676,3.1298,3.1814,3.2331,3.3019,3.3768,3.4509,3.4927,3.5848,3.6264,3.6948,3.7952,4.0406,4.2289,4.3943,4.5843,4.7913,4.9566,5.1506,5.2844,5.4654,5.6173,5.7676,5.8624,5.9302,5.9838,6.0462,6.0844,6.1381,6.1749,6.2262,6.3097,6.4336,6.489,6.5511,6.6166,6.6612,6.8922,6.9458,7.0877,7.259,7.3852,7.5331,7.6314,7.7164,7.8341,7.8844,7.9313,7.9709,8.0104,8.074,8.1467,8.1993,8.2839,8.3948,8.451,8.5364,8.5761,8.6271,8.6556,8.7057,8.731,8.7653,8.7771,8.801,8.8644,8.9631,9.0563,9.1517,9.2353,9.3195,9.3926,9.4773,9.5609,9.6406,9.7172,9.814,9.8701,9.9383,10.0575,10.1037,10.1235,10.1488,10.1936,10.2478,10.2917,10.3594,10.4417,10.5513,10.7904,10.9563,11.1593,11.2909,11.3738,11.4305,11.4963,11.5883,11.6684,11.7573,11.845,11.9278,12.0282,12.3642,12.4594,12.5513,12.6923,12.7734,12.8108,12.865,12.9144,12.9945,13.0595,13.1394,13.259,13.3534,13.489,13.8606,13.979,14.0587,14.1325,14.2049,14.3228,14.4239,14.4938,14.5771,14.6585,14.8236,14.9093,15.0283,15.0875,15.1227,15.25,15.3729,15.4715,15.5703,15.6167,15.7021,15.8787,16.0444,16.162,16.2967,16.3933,16.4532,16.5045,16.5595,16.6446,16.7125,16.7786,16.8442,16.9951,17.0825,17.1384,17.2093,17.2328,17.2533,17.2905,17.3203,17.3696,17.4347,17.497,17.575,17.7013,17.8427,17.995,18.1351,18.2385,18.3281,18.3885,18.4464,18.4931,18.5327,18.5703,18.6069,18.644,18.7109,18.7596,18.8612,18.9038,18.9452,19.0205,19.1049,19.3714,19.5495,19.7135,19.8584,20.0281,20.2192,20.3579,20.4581,20.556,20.6722,20.7489,20.8107,20.8694,20.9141,20.9645,21.0115,21.1001,21.1347,21.1818,21.2223,21.2596,21.3019,21.3376,21.4094,21.7268,21.805,21.9294,22.2405,22.4305,22.6502,22.8347,22.9382,23.0195,23.1048,23.1802,23.2556,23.3335,23.4227,23.4941,23.5799,23.6673,23.8817,23.9846,24.139,24.2623,24.3352,24.3825,24.4384,24.5069,24.716,24.9396,25.1914,25.4204,25.5881,25.7007,25.8003,26.0781,26.1474,26.2453,26.3183,26.3853,26.4638,26.5555,26.6447,26.735,26.8254,26.8783,26.9187,26.9978,27.0508,27.1209,27.1766,27.286,27.3977,27.6363,28.1465,28.4424,28.645,28.9009,29.1326,29.3476,29.6431,29.7379,29.7942,29.8463,29.9264,29.9973,30.0812,30.1662,30.2878,30.3398,30.3855,30.4156,30.4538,30.4892,30.5283,30.5858,30.6686,30.8024,30.9562,31.0626,31.197,31.3645,31.5032,31.6309,31.7987,31.866,31.9383,32.0412,32.1396,32.2238,32.3027,32.3828,32.472,32.6198,32.6998,32.7336,32.7718,32.8022,32.8957,32.9668,33.0083,33.0623,33.1371,33.2789,33.4301,33.6004,33.7794,33.896,34.0007,34.122,34.2317,34.3423,34.4366,34.5241,34.6437,34.7087,34.7772,34.8982,35.0584,35.2011,35.2953,35.3864,35.4588,35.5248,35.654,35.7844,35.945,36.2054,36.3949,36.547,36.6908,36.8687,36.9612,37.1007,37.1712,37.2475,37.3095,37.3656,37.4168,37.4688,37.5266,37.6468,37.7136,37.7926,37.8577,37.9197,38.1279,38.2046,38.3177,38.4255,38.6236,38.7826,38.9189,39.0563,39.2134,39.314,39.3665,39.4205,39.475,39.5274,39.5666,39.603,39.6454,39.6454,39.6454,39.6454,39.6454,39.6454,39.6454,39.6454,39.6454,39.6454,39.6454,39.6454,39.6454,39.6454,39.6454,39.6454,39.7633,39.8895,39.9962,40.0594,40.1473,40.2273,40.3246,40.4157,40.5035,40.6793,40.8352,40.9082,40.9743,41.0697,41.1527,41.2079,41.3237,41.5333,41.6459,41.7709,41.8916,41.9669,42.0628,42.2124,42.3031,42.4632,42.5483,42.6441,42.745,42.8456,42.9362,43.0371,43.095,43.1483,43.2336,43.394,43.5254,43.6416,43.6918,43.7217,43.7972,43.8951,44.0386,44.091,44.1372,44.1821,44.266,44.3641,44.4633,44.5501,44.6074,44.6991,44.8063,44.939,45.0265,45.1092,45.2143,45.3421,45.399,45.4919,45.5749,45.6218,45.6635,45.7561,45.8303,45.8573,45.8891,45.916,46.0072,46.1334,46.2224,46.3136,46.4268,46.5771,46.6955,46.8162,46.8832,46.9388,46.9898,47.1095,47.2019,47.2828,47.372,47.4842,47.5298,47.561,47.5924,47.6866,47.7516,47.8239,47.9215,48.0484,48.2182,48.3878,48.618,48.7192,48.813,48.9241,49.0432,49.144,49.2487,49.362,49.4555,49.5428,49.6044,49.715,49.9507,50.101,50.2571,50.3405,50.3917,50.5122,50.6017,50.6669,50.7828,51.0515,51.2787,51.4747,51.643,51.8285,51.9681,52.1081,52.2092,52.2919,52.3588,52.4066,52.4507,52.4996,52.5407,52.5766,52.6314,52.7556,52.8867,53.2191,53.4681,53.5516,53.7055,53.824,54.0494,54.4059,54.6092,54.7927,55.0151,55.1867,55.334,55.4607,55.5459,55.6165,55.6767,55.745,55.7912,55.8345,55.8865,55.9455,55.9889,56.1264,56.2211,56.2797,56.4013,56.4536,56.6706,56.8663,56.9603,57.0876,57.373,57.5929,57.8165,57.9676,58.1097,58.2443,58.3881,58.4662,58.5431,58.6107,58.6746,58.7389,58.8261,58.9938,59.1347,59.2243,59.2769,59.3232,59.3737,59.4304,59.5057,59.5903,59.7185,59.801,59.8851,59.9281,59.9997,60.1791,60.2955,60.4335,60.5487,60.5913,60.6661,60.7691,60.8673,60.972,61.0954,61.2025,61.2764,61.3582,61.4198,61.4969,61.5354,61.5724,61.643,61.7013,61.7609,61.7963,61.8751,62.0394,62.1455,62.269,62.4301,62.5438,62.7801,62.8771,62.9792,63.082,63.1768,63.2654,63.3512,63.5171,63.6188,63.7138,63.8398,63.9142,63.9553,64.0107,64.0593,64.1055,64.1908,64.3404,64.595,64.7706,64.9481,65.3471,65.5069,65.7218,65.8002,65.8941,65.9759,66.0848,66.1855,66.2784,66.3674,66.4879,66.6766,66.8055,67.0315,67.2361,67.3536,67.4914,67.6122,67.7362,67.9274,68.128,68.4078,68.6644,68.8588,69.0549,69.1793,69.7217,69.8344,69.9073,69.9852,70.1256,70.2806,70.3806,70.4748,70.5685,70.7293,70.807,70.8772,70.9587,71.0443,71.1908,71.3016,71.4,71.5346,71.7309,71.9749,72.1622,72.5395,72.716,72.836,72.9473,73.067,73.1655,73.2166,73.2648,73.3031,73.3402,73.3838,73.43,73.4793,73.5735,73.6716,73.8633,74.0215,74.1201,74.2605,74.4309,74.6337,74.8528,75.0844,75.3188,75.5347,75.7133,75.8752,76.0308,76.19],"decisions":[{"clamps":[],"fallback":null,"reason":"Building_1 is 0.2 C below setpoint so no trim; batteries empty and no price spread, so hold batteries and tank at baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is at setpoint with trim end, so baseline cooling; batteries are empty at soc floor and price is not top, so hold all batteries and tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended and rooms are near setpoint, so baseline cooling holds; batteries follow the strategy's gentle pre-peak charge; tanks stay idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cooling at baseline-plus-range for Building_1 and Building_3 with trim off; batteries follow strategy values; no tank charging; flat-ish cheap hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim ended in Buildings 1-3 (state end, no baseline cooling); follow baseline cooling, use strategy battery charge of 0.021 each, tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is at setpoint with trim end, so baseline cooling; batteries idle per strategy since price is not top and charging is marginal; hold tank at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim ended or idle in all buildings; cooling at baseline, batteries held per strategy (no top-price discharge or cheap charge needed), DHW idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off for B1 and B3 so baseline cooling kept; B2 at baseline; battery follows strategy values; no tank use; cheap hour charging per plan.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 3 is at setpoint with trim end; baseline cooling kept, battery idle per strategy, no top-price discharge now, DHW idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended and rooms are near setpoint, so baseline cooling is kept; batteries follow the cheap-hour strategy charge of 0.15 with no tank action.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end in most buildings; B1 cooling at baseline, battery per strategy; B2 and B3 follow strategy battery; no top-price discharge now, tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended, so cooling stays at baseline; batteries follow strategy charging in cheap hours, and tanks stay idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling absent (all at setpoint), so baseline cooling; battery strategy charges in cheap hour before top-price hours 3-5; tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Buildings 1 and 2 unoccupied with trim end, so baseline cooling; follow strategy battery charging in cheap hour; no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"All buildings unoccupied with trim in end state, so cooling uses baseline; follow strategy_battery values, no tank use, no end_trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled rooms are not held; Building_3 is below setpoint with trim off. Follow strategy batteries (top-price discharge, grid charging disallowed), cooling at baseline, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled Building_3 is 1.0C below setpoint so trim held; battery follows strategy discharge over top-price hour; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims held or off per envelope; batteries discharge at strategy level over top-price hour; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Held trim in B3 kept at range edge; B1 and B2 stay at baseline cooling; batteries follow strategy during top-price hours; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cooling at baseline or held trims per state; battery follows strategy (discharge over top-price hours); no grid charging; tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cooling at baseline or trim end for all; battery follows strategy (small discharge, top price now); no grid charging; tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling trim is off for B1 and B3 and ending for B2, so baseline cooling; battery follows strategy as top-price now, discharge within load limits.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day so battery idle; Building_1 is 0.5C below setpoint so cooling trim is off, use baseline; B2 unoccupied, B3 at setpoint, keep baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is 1.48 C above setpoint so trim is ended; cooling at baseline, batteries idle on flat prices, DHW held at zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price and no top-price hours; batteries held per strategy, buildings 1 and 3 overcooled but trim off so baseline cooling kept, Building 2 unoccupied.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries idle; Building_1 and 3 cooling within range, Building_2 above setpoint with trim end so baseline cooling kept.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 are near or below setpoint with no trim; Building 2 is above setpoint so trim ends. Flat price, batteries idle, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries idle per strategy; Building_1 is 1.06C below setpoint so cooling cut to 0.0 within hold range; others unchanged.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price and no top-price hours; batteries idle per strategy, trim ends with baseline cooling, tanks held at zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, no top-price hours; batteries idle per strategy, cooling at baseline for B1 and B3 (trim off/end), B2 no cooling needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price and low battery usable energy; hold batteries idle, keep baseline cooling except trim-free buildings, and no DHW.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top-price hours; batteries idle per strategy. Cooling trims are off or end, so baseline cooling kept; Building_1 within band.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day so battery idle except spare solar storage; Building_1 and Building_3 cooling trimmed by envelope ranges; Building_2 unoccupied, baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top hours; B1 ease trim keeps cooling in range, B2 unoccupied uses baseline, B3 above setpoint uses baseline; batteries per strategy, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries idle per strategy; Building_1 eased trim within cooling range; Building_2 and 3 above setpoint at baseline cooling; no DHW.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries idle per strategy; cooling at baseline or trimmed inside range; trim ended state so null cooling; no dhw.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top-price hours, batteries held per strategy; cooling at baseline for Building_2 and 3 (trim end) and mild trim-free for Building_1.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top-price hours, batteries held per strategy; B1 and B2 overcooled, but trim state off or end so baseline cooling kept; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries idle per strategy; B1 and B2 trims state off/end so baseline cooling; B1 at -0.99C, B3 near setpoint, keep baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price and no top-price hours: batteries idle per strategy; cool to baseline in Building_1 and 2 (no trim), Building_3 at baseline, DHW idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top-price hours; B1 held trim at 0.5 cooling, B2 and B3 baseline-ish, batteries idle per strategy, no DHW.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, batteries idle per strategy; trim Building_1 held in ease at baseline-range cooling; Building_3 overcooled? no, it is 2.4C above? kept baseline; tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim B1 hold at 0.44 cooling (depth 0.15 respected), B2 and B3 at baseline, batteries idle per strategy, flat price, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top hours; batteries idle as strategy says. Cooling within ranges; B1 and B2 trims eased, B3 baseline, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top-price hours, batteries idle per strategy; B1 and B2 trims ended by state, B3 at baseline cooling with no trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price and no top-price hours; batteries idle per strategy. Building 1 and 2 cooling at baseline (trim ended); Building 3 trim off, baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price and no top-price hours, so batteries idle; B1 and B2 trim ended, cooling at baseline; B3 cooling baseline since trim off.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top-price hours; batteries idle per strategy. Building 1 is 1.04C below setpoint so cooling trimmed within range; others at baseline or end.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is 0.8 C below setpoint in hold, so cooling sent at 0.2496 (range floor) to ease the held trim; batteries idle on flat price; DHW left at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top-price hours, batteries idle per strategy; cooling set inside range with ease trim, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, no top-price hours; batteries idle per strategy. Cooling at baseline or trimmed per envelope; building 1 trim ended, so use null.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top-price hours, batteries idle per strategy; Building_1 overcooled 0.96 C so trim to 0.0526 floor within range; others at or above setpoint use baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is in end state and prices are flat, so cooling stays at baseline and batteries and tanks hold at zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price and no top-price hours; batteries idle per strategy. Building 1 is overcooled 0.9C so cooling trimmed within range; B2 and B3 at or above setpoint, keep baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price and no top-price hours; batteries idle per strategy, cooling at baseline or trimmed only where a held trim applies. Trim state is end, so null cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold cooling at baseline in B1 and B2/B3 (trim off or end); battery per strategy, price flat-ish, no top-price discharge now; no DHW.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or ended for all buildings, so baseline cooling; follow strategy battery values; no tank use; battery actions as given.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or ended; use baseline cooling except overcooled none. Follow strategy_battery values; no DHW; price flat-ish, no top price now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off in B1 and B3 with cooling at baseline; B2 unoccupied, trim end. Follow strategy batteries, no top-price now, no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end in all buildings so baseline cooling; B1 cooling near baseline; batteries follow strategy; no top-price now, store solar and hold tanks at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled rooms are not trimmed (state off/end), so baseline cooling; batteries follow strategy, which stores spare solar now since price is flat-low and no top hour is now.","status":"ok"},{"clamps":[{"applied":0.0,"point":"Building_1.battery","reason":"district load 8.92 kWh would pass the peak target 8.60 kWh, charging trimmed","requested":0.08,"rule":"peak"}],"fallback":null,"reason":"Overcooled rooms are not present; cooling at baseline or within range, battery per strategy, peak limiter on so no extra draw; tank idle.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Trim idle in B1 and B3 at baseline, B2 overcooled but trim off; keep cooling baseline, follow strategy battery and idle tank.","status":"ok"},{"clamps":[],"fallback":null,"reason":"All buildings are at or near setpoint with trim off or ended, so baseline cooling is kept and batteries stay idle per strategy_battery; tank held at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim ended in B1 and B2 with state end; B3 off. Cooling at baseline, batteries idle per strategy, tanks at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended in all buildings, so cooling stays at baseline; strategy batteries are idle and tanks stay at zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended and battery strategy is idle with no top-price hour now, so all devices keep baseline actions.","status":"ok"},{"clamps":[{"applied":0.0901,"point":"Building_3.cooling","reason":"more than 0.15 away from the ideal-load cooling 0.24","requested":0.09,"rule":"deviation"}],"fallback":null,"reason":"Overcooled occupied rooms get cooling cut to the envelope floor; batteries and tanks held per strategy since no top-price hour is now.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Hold hour: Building_1 and Building_3 need cooling in hold/end states; batteries idle per strategy, no top price now, DHW idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"All trims are off or ended and batteries follow strategy (idle); no top-price discharge or allowed charge this hour, so baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 overcooled 3.6C: cut cooling to 0; batteries idle per strategy, no top-price hour now; DHW idle.","status":"ok"},{"clamps":[{"applied":0.0,"point":"Building_1.cooling","reason":"indoor 23.1 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.047","requested":0.0,"rule":"trim_hold"}],"fallback":null,"reason":"B1 overcooled 1.4C below setpoint, cool at 0 within range; B2 at setpoint, baseline; B3 hold trim at baseline range; batteries idle per strategy, no top price now.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Building 1 cooling trim is in end state so baseline cooling; batteries idle per strategy since no top-price hour now and cheap hours ahead are low-value; dhw kept at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 2 is above setpoint with trim end, so baseline cooling; batteries idle per strategy since price is not top and charging is not cheap enough; no dhw.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off for B1; B2 and B3 at or above setpoint so baseline cooling; batteries follow strategy, cheap hour charging allowed, no top-price discharge yet.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled B1 and B3 not held; cooling at baseline unless trim active; follow strategy_battery charging in cheap hour; B2 above setpoint so cooling at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled rooms are off-trim; use baseline cooling, follow strategy battery, no DHW, no end trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 overcooled slightly but trim is off so baseline cooling; batteries follow strategy (charge in cheap hours, idle before top-price hours); no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 and 2 have no baseline cooling, so null; Building_3 cooling trim ended, use baseline; batteries follow strategy; no top price now, so charge per strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are at end state, so cooling uses baseline; batteries follow strategy (idle), no tank charging, no top-price discharge now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 0.55C below setpoint on hold-free ease; keep baseline cooling in range, batteries idle per strategy, no top-price discharge now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 and Building_3 cooling stay at baseline; Building_2 is unoccupied with trim end, so baseline; batteries idle per strategy, no top price now, dhw held at 0.","status":"ok"},{"clamps":[{"applied":0.0087,"point":"Building_1.cooling","reason":"indoor 23.8 C is near the bottom of the comfort band, cooling held at the baseline","requested":0.009,"rule":"comfort"}],"fallback":null,"reason":"Building 1 and 3 cooling at baseline-plus-trim within range; Building 2 unoccupied, trim end so baseline cooling; batteries idle per strategy, no top-price now.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Building_1 cooling held at baseline (trim ended, indoor near setpoint); batteries idle per strategy, price not top now, district load well under target.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling is absent in B1 and B3; B2 unoccupied so baseline. Follow strategy battery: B1 idle, B3 small charge in cheap hour; no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 trim off so baseline cooling; Building_2 and 3 unoccupied with trim end; follow strategy battery, no tank charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold cooling at baseline or trim as envelope allows; follow strategy_battery charging before top-price hours; no tank use; Building_2 overcooled slightly so trim not applicable.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end for all buildings so cooling at baseline; Building_2 overcooled? no, above setpoint; use baseline and strategy battery values; no grid charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim ends in B1/B2 (at setpoint or above), B3 idle; follow strategy_battery discharge over top-price hours, no grid charging, DHW off.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended and no room is overcooled, so cooling stays at baseline; batteries follow the strategy discharge for the top-price hours.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled B1 trimmed by null-equivalent baseline; B2 at setpoint+1.65 keeps baseline; batteries idle per strategy, tanks at 0, no end trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 are slightly below setpoint with trim off, so use baseline cooling; batteries follow strategy (idle) since no top-price hour now and no cheap charge window at 0.029.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_2 is above setpoint with trim end, so baseline cooling; batteries idle per strategy since no top-price now and no cheap-hour charge needed; tanks at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended in all buildings and strategy_battery is 0 everywhere, so the baseline cooling and idle batteries are kept this hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 are near setpoint with no trim; Building 2 is above setpoint, so cooling at baseline; batteries idle per strategy, no top price now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Buildings 1 and 2 are overcooled but trim state is end, so baseline cooling; batteries idle per strategy, no top-price hours now and no charging needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 1.63C below setpoint so cooling trim is off; follow strategy batteries (charge gently in cheap hour), no tank use, cooling at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim ended in all buildings (at setpoint); follow strategy battery charging in cheap hour, no DHW, cooling at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hour 3 is cheap and clean; charge batteries gently per strategy, cool at baseline with no trim, leave tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: charge batteries in cheap hour, cooling at baseline where trim is off or end; no dhw; B1 trim off so baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is 0.42C below setpoint with trim off, so baseline cooling; batteries follow strategy values; no top price now, DHW idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is 0.73C below setpoint so trim is off; cool near baseline, follow strategy battery charging in cheap hour, no top price now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold cooling near baseline with trims off, follow strategy battery actions, leave tanks idle; top-price hours start in 9h, so charge cheaply now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or end in all buildings so baseline cooling; B1 and B3 battery follow strategy; B2 battery stays at strategy 0; no tank charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled Building_1 is 1.38C below setpoint but trim is off, so baseline cooling; batteries follow strategy values; no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cut cooling in overcooled occupied rooms is not needed; B1 is 1.45C below setpoint so send low cooling in range; battery per strategy; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim ends in B1 and B3 (end state, at or above setpoint); B2 unoccupied and hot, so use baseline cooling; follow strategy battery values, which are zero or tiny.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold cooling at baseline or within ranges, follow strategy_battery (small charge in B3, idle elsewhere), no tank use, no trim since none is active.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end in most buildings; B1 cooling at baseline-ish within range, storing solar in batteries per strategy, tank idle; B2 unoccupied end trim, use baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 0.27C below setpoint so baseline cooling stays; Building 2 unoccupied ends trim; batteries idle per strategy, price not at top.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled-free: buildings 1 and 3 at baseline in end trim; building 2 unoccupied; battery per strategy, small charge in cheap hour before top price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended, so cooling stays at baseline; batteries follow strategy discharge over top-price hours; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended, so cooling stays at baseline; batteries follow strategy_battery discharge for top-price hours, all within ranges; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended in all buildings so cooling stays at baseline; batteries discharge per strategy over top-price hours to cut district peak.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hour 19: B1 and B3 cooling inside ranges; B2 unoccupied trim end so null; battery per strategy, B2 idle; top price not yet, charge none.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end in all buildings; hold cooling at baseline, follow strategy battery values, peak headroom zero so no charging, no DHW.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold cooling at baseline for B2 (end state); B1 and B3 overcooled but trim off so baseline; batteries idle per strategy, no top price now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended and strategy batteries are idle, so all devices keep baseline actions this hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 are over 1.3C below setpoint with trim off, so baseline cooling is kept; batteries idle per strategy and no peak-shaving discharge needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"All trims are in end state with no held cooling, so baseline cooling; batteries follow strategy (idle), no tank charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end for all but none held; cooling at baseline where state off, B2 end uses null; battery per strategy, cheap hour charge within grid_charging_ok; no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling trim is off in B1 and B3 and ended in B2; cooling at baseline, follow strategy_battery charging 0.15 in all buildings, DHW idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cooling at baseline for B1 (trim end), B2/B3 near baseline; batteries follow strategy charging in cheap hour; no top price now, DHW idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling trim off in B1 and B3 at baseline; B2 idle; batteries follow strategy charging in cheap hour; no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 trim is off so baseline cooling; Building_2 and 3 use baseline; batteries follow strategy charging in cheap hour; no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end in all buildings; keep baseline cooling, follow strategy battery charging in cheap hour, no DHW.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 and Building_3 cooling trims are off or ended; Building_2 has no baseline cooling. Following strategy battery actions, with peak headroom zero and no top price now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled B1 and B3 trims are off/end so baseline cooling; follow strategy battery charging in cheap hour, tank idle, B2 battery per strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended, so cooling stays at baseline; batteries follow strategy_battery, which charges in this cheap hour before the top-price hours.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold cooling at baseline where trim is off or ended; follow strategy battery and skip DHW and grid charging as price is not top and district load is near target.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off in B1 and B3 so baseline cooling; B2 unoccupied at end state, use null; batteries follow strategy; no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off in B1/B3 so baseline cooling; B2 unoccupied end state uses baseline; follow strategy_battery values; no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim eases cooling within ranges; battery follows strategy values; no top price now, so tanks stay idle and batteries charge gently.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling trims are off or ended; follow strategy_battery charging in cheap hour before top-price window, no DHW, cooling at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling trim off; Building_1 and 3 batteries follow strategy; Building_2 unoccupied, cooling baseline; tank idle and no grid charging spike.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off in B1/B3 so baseline cooling; B2 unoccupied end state uses baseline; follow strategy_battery for all, no DHW, top-price discharge.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended so cooling stays at baseline; batteries follow strategy, discharging B2 and B3 into top-price hours and B1 idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_3 is overcooled so its cooling is cut to the range floor; batteries follow strategy discharge over top-price hours; others keep baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim B3 held at 0.15 depth; B1 and B2 at baseline; battery follows strategy values since top price is not yet active and load is near peak target.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cooling at baseline or trim-held per state; battery follows strategy values since price is not top now; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended in all buildings, so cooling stays at baseline; Building_3 follows strategy battery discharge for peak shaving.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 are below setpoint with trim off, so baseline cooling; Building 2 at end state, baseline; batteries idle per strategy, DHW idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 are overcooled-ish but trim off; B2 at setpoint+1.5 with end trim state; keep baselines, batteries idle per strategy, no grid charging at near-flat price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 are within band with cooling inside range; Building 2 is overheated above setpoint with trim end, so baseline cooling; batteries idle per strategy; no hot water.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim states: B1 and B2 at end and B3 off, so cooling uses baseline; batteries idle per strategy since price not top and grid charging gains negligible.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is at setpoint so trim ends; hold cooling at baseline, follow strategy_battery charging, and leave tank idle since prices are low now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is 0.88 C below setpoint so trim is off; use baseline-range cooling, follow strategy battery charging in cheap hour, no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is 0.7C below setpoint so cooling trim held at range floor; batteries follow strategy charging in cheap hour; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hour 5 is cheap and clean with no top price now; follow strategy battery charging, cool only within ranges, and end the trim as baseline cooling applies.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hour 6 is cheap with no top price now; keep the strategy battery charge, cool per baseline, and leave dhw idle with trims off.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 2 is 1.5C above setpoint so trim is off; cooling at baseline, batteries follow strategy, tank idle, no end_trim since not held.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended, so baseline cooling holds; follow strategy_battery (small charge, cheap hour) and leave tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or ended, so baseline cooling; battery follows strategy values, which are small charges in a cheap hour with headroom; no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold baseline cooling where unoccupied or in-band; Building_1 overcooled slightly but ranges allow only tiny trim; follow strategy battery; no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end for all; hold cooling at baseline, follow strategy_battery (charge in cheap hour before top price), dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended, so cooling stays at baseline; batteries follow strategy_battery; no tank use and no top-price discharge now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled Building_1 is 1.07C below setpoint but trim is off, so baseline cooling; batteries follow strategy values; no tank use, no top price now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold cooling at baseline where trim is off; Building_2 unoccupied with end state so baseline; batteries follow strategy, dhw idle, no top price now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off and rooms are within band, so cooling stays at baseline; batteries follow strategy_battery, charging gently ahead of the top-price hours.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or ended in B1/B3/B2 so baseline cooling; B1 at -2.28C with trim off keeps baseline; batteries follow strategy_battery during top-price hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended so cooling stays at baseline; batteries follow strategy discharge for the top-price hour; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended, so cooling stays at baseline; batteries follow the strategy discharge for the top-price hours and tanks stay idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hour 19 is not a top-price hour and strategy_battery is 0 for all; cool per trim rules, no hold trims active, keep batteries and tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"All trims are off or ended and strategy_battery is 0, so baseline cooling and idle storage hold; no peak or price action needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 2 is at setpoint with trim end, so baseline cooling; batteries follow strategy (idle), building 1 and 3 hold baseline cooling; no peak or price action needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is overcooled 1.4 C below setpoint but trim is off, so baseline cooling; batteries follow strategy (hold), no tank charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 are overcooled by about 1 C but trim is off, so baseline cooling; batteries idle per strategy, price not top and no discharge needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 2 is overcooled but trim is end with no end_trim, so baseline cooling; batteries follow strategy (idle), dhw idle, no price peak now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim states: B1 end, B2 end, B3 off so cooling at baseline; batteries idle per strategy since no top-price now and grid charging cheap hours ahead is small; hold tank at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling trim off; cooling at baseline, batteries follow strategy charging in cheap hours; no tank use; top-price hours ahead.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cooling at baseline or ceded to envelope; battery follows strategy charging in cheap hour; tanks idle; no trim active.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim ended in B1 and B3 has no trim; B2 overcooled but no cooling trim active, so baseline cooling. Battery follows strategy; cheap hour, charge modestly.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cooling: B1 and B2 trim ended, use baseline 0; B3 at baseline within range; batteries follow strategy charging in cheap hour; no DHW.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim ended or off for all; keep baseline cooling, follow strategy battery charging in cheap hour, no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end in all buildings so cooling at baseline except B1 hold-free; follow strategy batteries; no tank use; cooling kept at baseline where null.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim ended for all buildings; keep baseline cooling, follow strategy_battery (idle), no tank charging, no grid charge at this price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim ends in B1 and B3 are not needed; B2 unoccupied, all cooling at baseline; battery strategy idle as given, no top-price now, DHW off.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim ended in B1 and B3; B2 unoccupied idle. Follow strategy_battery (store solar), keep cooling at baseline, no DHW, no grid charging at this price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 0.76C above setpoint so cooling stays at baseline; batteries follow strategy, storing spare solar as price is low and top-price hours are ahead.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold cooling at baseline or trimmed per envelope; Building_1 trim ended, battery follows strategy; no tank use; cooling null where trim is end.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims ended in unoccupied/at-setpoint rooms; follow baseline cooling, use strategy battery values (charging is cheap, top price 3-5h ahead), no tank action.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold cooling at baseline where trim is off; battery per strategy: Building 3 small charge in cheap hour, others idle; no DHW, no end_trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended and no room is overcooled, so cooling stays at baseline; Building_3 follows its strategy battery charge of 0.023 in the cheap hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended and no building is overcooled, so cooling stays at baseline; batteries follow strategy discharge for the top-price hours.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended, so cooling stays at baseline; batteries follow the strategy discharge for the top-price hour within range.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended, so cooling stays at baseline; batteries discharge per strategy_battery over the top-price hour, within ranges.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended in all buildings, so cooling stays at baseline; batteries follow strategy_battery for the top-price hours; DHW stays idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended in all buildings, so cooling stays at baseline; batteries follow strategy discharge for the top-price hours, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended in all buildings so cooling stays at baseline; batteries follow strategy discharge for the top-price hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end in all buildings so cooling stays at baseline; battery follows strategy values, dhw idle, top-price discharge to shave peak.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price and no top-price hours, so batteries stay idle; Building_2 is at setpoint with trim end, so baseline cooling; Building_1 and 3 use baseline with no trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top-price hours; batteries idle per strategy, cooling at baseline or trimmed only where overcooled, tanks left at zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day so batteries idle; Building_2 is at setpoint with trim end, so null cooling; Buildings 1 and 3 are cooled at baseline since trim is off.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price and no top-price hours; batteries idle per strategy, B1 and B3 cooling at baseline, B2 trim ended with null cooling and end_trim not allowed so baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price and no top-price hours; batteries idle per strategy. Buildings 1 and 3 slightly below setpoint, so cooling kept at baseline; Building 2 trim off.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, strategy_battery is 0 for all; hold batteries idle, keep cooling near baseline within ranges, no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_2 is 1.3 C above setpoint so cooling stays at baseline; batteries idle per strategy on flat prices; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price and no top-price hours; batteries idle per strategy, cooling at baseline-range minimum since trims are off or ended, dhw held at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top-price hours, strategy says hold; cooling at baseline-range minimum is fine since trims are end and buildings are near setpoint; keep tanks and batteries idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top-price hours, strategy batteries idle; cooling trims are in end state so use baseline (null); no dhw, batteries held.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, batteries near floor and strategy says hold; buildings at end trim so baseline cooling; tank idle, no battery action.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, batteries near floor and strategy says hold; B2 and B3 at or above setpoint so cooling at baseline; B1 slightly below setpoint, keep baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top-price hours, strategy battery idle; buildings above setpoint keep baseline cooling, Building_2 is 1.24C above so baseline held, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 2 is above setpoint with trim end, so baseline cooling; flat price, strategy batteries idle, tanks idle, all as baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day so batteries idle; cooling at baseline for B1 and B3 in end state, B2 end state at baseline; no tank action.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end in all buildings so cooling at baseline; flat price, battery strategy near zero; B1 and B3 follow strategy, B2 idle; peak limiter on.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat prices and no trim active, so cooling stays at baseline; Building_3 battery follows the small peak-shaving strategy value.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended so baseline cooling holds; batteries are near floor, so I follow strategy_battery and keep tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price and tiny battery usable charge, so storage stays idle; trims are off or ended, so all cooling stays at baseline and the tank is untouched.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day so battery idle; cooling trims are off except B1 and B3 at baseline; B2 above setpoint in end state, so baseline cooling kept.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Buildings 1 and 3 are overcooled but trim is off, so baseline cooling is kept; battery idle on flat price with tiny usable charge; no tank action.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries nearly empty so idle; cool per baseline where trim is off, hold cooling inside ranges for overcooled rooms.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price and tiny battery usable energy: keep batteries idle per strategy; trim Building_1 at range floor, Building_2 at baseline, Building_3 at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day so battery idle; trim states respected: B1 ease at cooling 0.105 within range, B2 end with null, B3 off with null, no tank charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day with batteries near floor and no top-price hours; hold batteries, use cooling within range, keep dhw idle, no end_trim as trims are off or end.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top-price hours and batteries near floor; hold battery and tank, let cooling follow baseline since trims are off or ended.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours; batteries idle per strategy, Building_1 and Building_3 cooling within range at baseline, Building_2 at baseline with trim end.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, batteries idle per strategy; trim ease in B1 and B3 hold-free, so send baseline-level cooling within ranges; B2 at setpoint uses baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 0.9 C below setpoint in hold, so cooling goes to 0.0441 (range minimum) to ease the overcool; batteries and tanks idle on flat price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price and no top-price hours; batteries idle per strategy. Building 1 and 2 trims ended, so cooling at baseline; Building 3 trim off, baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top-price hours, batteries near floor; keep baseline cooling where trim is off, hold batteries idle as strategy says, no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries idle per strategy; Building_1 and Building_3 cooling held at baseline; Building_2 above setpoint so baseline cooling; dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries idle per strategy; Building_1 is 0.92 C below setpoint so hold a cooling trim within range; others at or above setpoint use baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim ended in all buildings; cooling at baseline, batteries idle per strategy, no grid charging at flat price, tanks at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling trims not active; Building_1 cooling near baseline, batteries idle per strategy since prices flat-ish and SOC near floor; keep baseline and tank at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 2.26C below setpoint in hold-free off state; use baseline cooling, battery per strategy, end trims unused, no grid charging at flat-ish price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 1.0C below setpoint with trim off, so baseline cooling; batteries follow strategy, Building 2 and 3 at or above setpoint use baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end in all buildings so cooling stays at baseline; battery follows strategy values; no tank action; price flat-ish, no top-price discharge now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended and no top-price hours are active, so all devices keep baseline; batteries idle per strategy, tanks at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or ended in all buildings; follow baseline cooling, use strategy battery values within ranges, no tank use, peak limiter on.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 1.42C below setpoint so trim hold applies; cut cooling to 0.1 and keep batteries idle per strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim held in B1 and B3 at min depth; cooling set inside ranges; batteries follow strategy (B1 small discharge, others idle); no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is held 2.6 C below setpoint, so cooling is cut to the range floor; batteries stay idle per strategy with negligible usable charge.","status":"ok"},{"clamps":[],"fallback":null,"reason":"All buildings hold baseline cooling, trims are off or ended, batteries are at floor with negligible usable charge, and tanks stay idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended and all batteries are near floor with no usable charge, so baseline cooling and idle storage are kept.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended in all buildings, so cooling stays at baseline; batteries idle per strategy since no top-price hour is active and load is under target.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 are overcooled by over 2 C but cooling_range has no trim state; send baseline-equivalent cooling within range, batteries idle as strategy says, tanks idle.","status":"ok"},{"clamps":[{"applied":0.1008,"point":"Building_1.cooling","reason":"indoor 23.8 C is near the bottom of the comfort band, cooling held at the baseline","requested":0.101,"rule":"comfort"},{"applied":0.0,"point":"Building_1.cooling","reason":"indoor 23.8 C is more than 0.5 C below the setpoint 25.8 C, trim held at 0.150","requested":0.1008,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 and 3 are held below setpoint so cooling sent at trim-allowed levels; batteries idle per strategy, DHW stays zero.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Building 1 and 2 trims are at end, so baseline cooling; Building 3 trim eases with cooling inside range; batteries idle per strategy, no top price now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 and 3 cooling within ranges, Building_2 above setpoint so trim ends; batteries idle per strategy, tanks at zero, price not top now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling trim is off in all buildings; batteries near floor with no top-price now, so hold strategy battery idle and keep dhw at zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling is small (under 0.5 C below setpoint, trim off), so cooling stays at baseline; batteries hold per strategy with no top-price discharge or useful charge now.","status":"ok"},{"clamps":[{"applied":0.103,"point":"Building_1.cooling","reason":"more than 0.15 away from the ideal-load cooling 0.25","requested":0.1,"rule":"deviation"}],"fallback":null,"reason":"Overcooled Building_1 by 1.5C: cut cooling to 0.1; batteries follow strategy (charge gently in cheap hour); no hot water action.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Ease trims near setpoint, use strategy battery charging in cheap clean hour, no DHW, keep cooling inside ranges; Building_2 at baseline cooling since above setpoint.","status":"ok"},{"clamps":[{"applied":0.0,"point":"Building_3.cooling","reason":"indoor 23.6 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.051","requested":0.0,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 and 2 at or above setpoint so baseline cooling; Building_3 held trim at min depth; batteries follow strategy charging in cheap hour.","status":"clamped"},{"clamps":[{"applied":0.0,"point":"Building_3.cooling","reason":"indoor 24.4 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.051 by at most 0.02 per hour","requested":0.031,"rule":"trim_hold"}],"fallback":null,"reason":"Trim hold on B3 ease state; B1 and B2 at baseline cooling; follow strategy battery charging in cheap hour, no DHW.","status":"clamped"},{"clamps":[{"applied":0.2122,"point":"Building_3.cooling","reason":"more than 0.15 away from the ideal-load cooling 0.36","requested":0.0,"rule":"deviation"},{"applied":0.3622,"point":"Building_3.cooling","reason":"trim ended, indoor 24.7 C is at or above the setpoint 24.4 C, cooling back to the baseline","requested":0.2122,"rule":"trim_hold"}],"fallback":null,"reason":"Hold cooling at baseline for B1 and B2 (trim off or end), trim B3 per eased hold, follow strategy batteries, no DHW.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Building_1 and Building_3 cooling stay at baseline (not overcooled); Building_2 is above setpoint with trim end, so baseline cooling; batteries idle per strategy; no tank charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off for B1 and B3 so baseline cooling; B2 in end state at baseline; battery per strategy; no tank charging; hour 9 is not top price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hour 10: no top price now, cooling at baseline with trim off; batteries follow strategy values (0.15 charge), tanks idle, no end_trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or ended for all; use baseline cooling, follow strategy battery values, no tank use, respect ranges and no top-price discharge now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled occupied Building_1 gets cooling cut to 0.1115; batteries follow strategy values, which charge gently ahead of the top-price hours.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim in ease state: cool at baseline-ish within range; battery per strategy (small charge in cheap hour), no tank, no end trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim in ease state: keep cooling near ease level within range; batteries idle per strategy, no top price now, grid charging deferred.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended in all buildings, so baseline cooling is kept; batteries follow strategy peak-shaving discharge and tanks stay idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended in all buildings, so cooling stays at baseline; batteries follow strategy discharge for the top-price hours, dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended in all buildings, so cooling stays at baseline; batteries follow strategy discharge for the top-price hour, within ranges.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended, so cooling stays at baseline; batteries discharge per strategy over top-price hours; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 are overcooled-free (trim off); keep baseline cooling, batteries per strategy (idle), no grid charging at current price, DHW zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled occupied Building_1 cut cooling to range floor; batteries idle per strategy, no top price now, load below target.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled occupied rooms in B1 and B3 get their only allowed cooling value; B2 is at setpoint so baseline; batteries idle per strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Peak limiter at target with no headroom: discharge batteries per strategy, ease cooling within range, and let Building_2 trim sit at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Buildings 1 and 2 are at baseline cooling with trim ended; Building 3 is held overcooled so its cooling is cut within range; batteries and tanks stay idle per strategy.","status":"ok"},{"clamps":[{"applied":0.0,"point":"Building_3.cooling","reason":"indoor 23.9 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.140","requested":0.0,"rule":"trim_hold"}],"fallback":null,"reason":"Building_3 is held 0.5 C below setpoint so its cooling is cut to 0; the other two stay at baseline and batteries idle, as strategy says.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Building 1 is 1.57 C below setpoint with trim off, so baseline cooling is kept; batteries hold per strategy, prices not at top, and tanks stay idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 2 are slightly below setpoint with trim off, so baseline cooling; batteries idle per strategy, no top-price hour now and grid charging is not warranted.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling trims are off; Building_1 is 1.26C below setpoint with trim off so baseline cooling held; batteries follow strategy charge 0.15 in cheap hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are in end state so cooling uses baseline; batteries follow strategy charging in cheap hour, no tank use, no end_trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled Building_1 is 1.31C below setpoint; trim off so baseline cooling kept; batteries follow strategy charging in cheap hour, no DHW.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hour 6 is cheap and not top-price; follow strategy battery charging, cool at baseline unless overcooled, keep tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end in all buildings so baseline cooling; B1 near setpoint, B2/B3 above; follow strategy battery charging of 0.15 in cheap hour, no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended and batteries follow strategy (hold); baseline cooling kept, tanks idle, peak limiter headroom ample.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling trims are off; B1 and B3 cooling at baseline per trim state, B2 at end. Batteries follow strategy; no top price now, store spare solar, no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or ended in all buildings; follow strategy battery values, cooling at baseline where state is off or end, no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is 1.03C below setpoint, so trim is off and baseline cooling holds; batteries and tanks follow strategy (idle, no top price now).","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is 0.99C below setpoint so cooling trim is inactive; keep baseline-ish cooling, batteries idle per strategy, no top-price hour now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_2 unoccupied with trim end, so baseline cooling; Building_1 and Building_3 trim off, use baseline cooling; batteries idle per strategy, no top-price now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off in B1/B3 so baseline cooling; B2 unoccupied end state uses baseline. Battery per strategy: B1 idle, B2 small charge, B3 small charge; no top price now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended, so cooling stays at baseline; batteries follow strategy_battery since top price is not active now and grid charging is allowed; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended in all buildings so cooling stays at baseline; batteries follow strategy discharge for the top-price hours, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended, so baseline cooling is kept; batteries follow strategy discharge for top-price hours; tanks stay idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended so cooling stays at baseline; batteries follow strategy discharge for the top-price hours; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 are overcooled-free (within band); B2 at setpoint ends trim; batteries idle per strategy, no top price now, load below peak target.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 are overcooled below setpoint with trim off; keep baseline cooling since trim is off, battery idle per strategy, price not top now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended and no building is held, so cooling stays at baseline; batteries hold per strategy since no top-price hour is now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 are overcooled below setpoint but trim is off, so baseline cooling in range; batteries idle per strategy, DHW zero, Building 2 trim ended.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold trims for B1 and B3 at range limits, B2 ends trim with null; battery per strategy, peak headroom zero so no charging.","status":"ok"},{"clamps":[{"applied":0.0,"point":"Building_3.cooling","reason":"indoor 21.7 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.150","requested":0.0,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 and 3 cooling per envelope ranges; Building_1 trim ended so baseline; Building_3 overcooled 2.7C below setpoint so cooling at 0; batteries idle per strategy.","status":"clamped"},{"clamps":[{"applied":0.0,"point":"Building_3.cooling","reason":"indoor 23.7 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.150","requested":0.0,"rule":"trim_hold"}],"fallback":null,"reason":"Building_3 is held 0.8 C below setpoint so cooling must stay at trim depth 0.15 on hold; batteries idle per strategy, no top-price hour now.","status":"clamped"},{"clamps":[{"applied":0.0,"point":"Building_3.cooling","reason":"indoor 24.2 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.150 by at most 0.02 per hour","requested":0.0,"rule":"trim_hold"}],"fallback":null,"reason":"Building 1 is overcooled but trim is off so baseline cooling; Building 3 holds trim at 0.15 within range; batteries idle per strategy, no top-price hours now.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Overcooled buildings held at trim floor; battery follows strategy values (gentle charge in cheap hour), tank idle, no end_trim since not allowed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim states ease/end/off; cooling at baseline-ish within ranges, battery follows strategy charging in cheap hour; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are in end state with no hold, so baseline cooling; battery follows strategy charging in a cheap hour, dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cooling at baseline or trimmed per state; battery follows strategy charge 0.15 in cheap hour; no tank use; no end_trim as trim is off or end.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended and rooms are not overcooled, so baseline cooling is kept; batteries follow the strategy charge of 0.15 in this cheap hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 0.63C below setpoint so trim is off; cooling at baseline, batteries idle per strategy, no top-price discharge now, DHW idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off for Building_1 and ended for 2 and 3; sending baseline cooling, batteries idle per strategy, no grid charging at this price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is overcooled but trim is off so cooling stays at baseline; battery follows strategy, storing solar before top-price hours 6-8.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end in all buildings so cooling at baseline; batteries follow strategy, storing spare solar now since price is not top and grid charging is cheap-hour only.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end in all buildings so cooling stays at baseline; batteries follow strategy values, storing spare solar while no top-price hour is now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow envelope baselines; building 1 has overcooling-free state off, trims off; batteries per strategy, charging only Building_3 via strategy 0.15 within range.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end in all buildings; keep baseline cooling, follow strategy battery values, no tank use; top price not active now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end in most buildings; overcooled B1 held via cooling in range; batteries follow strategy, no top price now, no peak discharge yet.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Ease trims toward baseline within range, follow strategy battery discharge at top price, keep DHW idle, no grid charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Held cooling at the range limits for overcooled rooms, followed strategy battery discharge into the top-price hour; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold trims at range-fixed cooling, follow strategy battery discharge for top-price hours, leave unoccupied Building_2 at baseline and tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is 1.0C below setpoint in hold, so cool at 0.3482 (range min); batteries idle per strategy; no price peak now, no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is overcooled so its cooling is set to the range max, Building_2 is at end with null cooling, Building_3 eases to range max, and batteries hold per strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim eased within 0.5 C in B1 and B3, B2 at setpoint with no trim; hold cooling near baseline, batteries idle per strategy, no grid charging at this price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 0.32 C below setpoint in ease state, so cooling stays near the trim floor; batteries idle per strategy since no top-price hour now and next top hours are later.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims: B1 end, B2 end, B3 off so cooling at baseline; batteries idle per strategy, top price not until hour 17; no tank charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 and 3 are overcooled-capable only within range; Building_2 trim ended, send baseline; batteries idle per strategy; no top price now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are at end state with no cooling change needed; batteries idle per strategy, price not top now and charging not warranted; dhw held at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow envelope and strategy: cooling inside ranges, battery per strategy in cheap hour, no tank use, end trim not needed.","status":"ok"},{"clamps":[{"applied":0.0587,"point":"Building_3.cooling","reason":"trim ended, indoor 24.9 C is at or above the setpoint 24.4 C, cooling back to the baseline","requested":0.0,"rule":"trim_hold"}],"fallback":null,"reason":"Overcooled-free hour: B1 and B2 at baseline-ish cooling within range, B3 trim ended; batteries follow strategy charging in cheap hour.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Trim B1 hold at min depth, use strategy battery; B2 and B3 baseline cooling, battery charge per strategy in cheap hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold trim on Building_1 at minimal depth, use strategy battery charging in cheap hour, no DHW, Building_2 and 3 baseline cooling with strategy battery.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim eased per state; cooling at baseline-ish within range, strategy battery charging given cheap hour, no tank use, no top price now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim in ease state: keep cooling within range near baseline; battery follows strategy values; no tank use; end_trim not needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended, so baseline cooling holds; batteries follow strategy values, within ranges; tanks idle as required.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled B1 gets trimmed cooling via cooling_range; B3 unoccupied so baseline; B2 at setpoint uses baseline; batteries follow strategy, with the B1 charge being minor.","status":"ok"},{"clamps":[{"applied":0.0,"point":"Building_1.cooling","reason":"indoor 24.2 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.150 by at most 0.02 per hour","requested":0.0,"rule":"trim_hold"}],"fallback":null,"reason":"Trim states: B1 ease keeps cooling at range 0; B2 and B3 unoccupied so baseline; follow strategy_battery and hold DHW at 0.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Trim eases in Building_1 and 2 uncooled; batteries follow strategy, Building_3 stores spare solar, dhw idle, no peak-shaving needed yet.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim ended in all buildings; cooling at baseline, battery per strategy (small charge from spare solar), tanks idle, no top-price discharge now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off in B1 and ends in B2/B3 so cooling stays at baseline; battery follows strategy values; no top price now, tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled Building_1 is 1.4C below setpoint so trim cuts cooling to 0.0367; batteries follow strategy; B2 and B3 unoccupied, baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim ends in B1 and B3 unoccupied/at setpoint, B2 unoccupied; follow strategy battery (idle now, top-price ahead), dhw idle, cooling at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended, so cooling stays at baseline; batteries follow strategy_battery for the top-price discharge; DHW idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end for all but B1 (off, no trim); keep baseline cooling, follow strategy battery discharge over top-price hours, no DHW.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended so cooling stays at baseline; batteries follow strategy discharge for top-price hours; tanks stay idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended and no top-price discharge applies, so baseline cooling, idle batteries and idle tanks hold this hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Peak is at target with zero headroom, so I follow the strategy battery discharges for peak shaving; cooling stays at baseline since no trim is active.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 and Building_3 are 1.2-1.8C below setpoint, so trim is off and cooling stays at baseline; batteries follow strategy, no top price now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended in all buildings so baseline cooling is kept; batteries idle per strategy as price is not at top and headroom is ample.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 are overcooled-free (state off), so baseline cooling; Building 2 end trim not needed; batteries idle per strategy, no top-price discharge now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end for most buildings; follow strategy battery charging in cheap hour, no tank use; Building_2 at setpoint so null cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim ends or is off in all buildings; follow baseline cooling, use strategy battery charging in cheap hour, no dhw, Building_2 overcooled but at setpoint+2 so baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cooling at baseline or trimmed per state; battery charges at strategy level in cheap hour; no tank action; grid charging allowed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 1.03C below setpoint, so cooling trim is off and baseline cooling is kept; batteries follow strategy charging in this cheap hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling trim off; use baseline cooling, follow strategy battery charging in cheap hour, no DHW, end_trim not applicable.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling trims are off; keep baselines for cooling, hold battery per strategy (charge in cheap hour), tank idle, no end_trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 overcooled 1.18C below setpoint so cooling trim is off; follow strategy batteries, no tank use, cheap hour charging within limits.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled buildings are off trim so baseline cooling is kept; batteries follow strategy values, which are inside ranges, with no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end in all buildings, so baseline cooling; follow strategy_battery (B3 discharge-free charge 0.15 cheap hour), tank idle, battery per strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Peak limiter is on and load is at target, so batteries follow the strategy discharge for peak shaving; cooling stays at baseline since trims are off or ended.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy_battery; cool at baseline in B1 and B3 (trim off), end trim in B2 is off so baseline cooling; no DHW; battery per strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end in all buildings; follow strategy_battery (cheap hour pre-peak, store spare solar); no tank use; cooling at baseline except none overcooled.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy battery values; overcooling trim is off for all, so baseline cooling; no tank use, no end trims needed this hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or end for all buildings so cooling uses baseline; battery follows strategy values, charging gently in a cheap hour before top price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled Building_1 trimmed nothing (trim off); follow strategy battery charging, cooling at baseline, no tank use, end trims as needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off for B1 and B3 so baseline cooling; B2 unoccupied trim end so baseline; follow strategy battery values, no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end on all buildings except B1 (state off), so baseline cooling; follow strategy_battery discharge over top-price hours, DHW idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold cooling at baseline in B1/B3 (trim off) and B2 (unoccupied, end); discharge batteries per strategy since top price now and load near peak target.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended, so cooling stays at baseline; batteries follow strategy discharge for the current top-price hour; tanks stay idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off in all buildings so cooling stays at baseline; batteries follow strategy_battery during the top-price hours and DHW stays at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off in B1 and B3 so baseline cooling; B2 unoccupied end state uses baseline; battery follows strategy discharge for top-price hours; no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended, so cooling stays at baseline; batteries follow strategy_battery during the top-price hour; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Use baseline cooling where trim is off or ended, and follow the strategy battery discharges over the top-price hour with dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price and strategy_battery is 0, so batteries idle; trims are off or ended, so cooling stays at baseline and the tanks stay at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top hours; Building_1 and Building_3 are overcooled but trim is off so baseline cooling kept; batteries idle per strategy, tanks at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours, so batteries stay idle and tanks stay at 0; cooling kept at baseline since trims are off or ended.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top-price hours; batteries held at strategy 0, Building_1 and Building_2 at baseline cooling, Building_3 within trim-free range; dhw held at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off in all buildings so baseline cooling is kept; flat price means batteries stay idle and tanks stay at zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries idle per strategy; Building_1 and Building_3 cooling within range at baseline, Building_2 trim ended, tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price and no top-price hours, so batteries stay idle; cooling trims are off or ended, so baseline cooling is kept and dhw stays at zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries held idle per strategy; Building_1 overcooled slightly but trim off so baseline cooling kept; Building_2 at setpoint so baseline; Building_3 baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top-price hours, strategy batteries idle; Building_1 and Building_3 cooling at baseline, Building_2 trim ended at setpoint so baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat prices and no trim hold, so all devices stay at baseline; batteries and tanks idle per strategy_battery.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended in all buildings and prices are flat, so cooling stays at baseline and batteries and tanks stay idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top-price hours: batteries idle as strategy says; cool buildings at baseline or within ranges, no trim active, dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, batteries near floor and strategy says hold; cool per trim state, Building_1 overcooled is off so baseline, Building_2 and 3 at baseline; tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top-price hours, batteries idle per strategy; Building_1 and Building_3 cooling within trim-off ranges; Building_2 trim end so baseline cooling kept.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, peak limiter on; hold cooling at baseline for B1/B3 in range, B2 end state so null; battery idle per strategy, no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top hours; Building_1 overcooled 3.1C so cool at range floor, others follow baseline with strategy battery idle, tank held at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is overcooled 2.15 C below setpoint so cooling sits at range floor; other buildings use baseline, batteries idle on flat prices.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold Building_1 cooling trim inside its range, leave Building_2 and Building_3 at baseline, and keep batteries and tanks idle since prices are flat.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim B1 held at 0.9C below setpoint with cooling_range fixed; B2 and B3 at baseline-range cooling; batteries follow strategy, flat price so no arbitrage, peak limiter active.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price and no top-price hours; batteries idle per strategy. Building 1 and 3 are below setpoint so trim/cooling set within ranges; Building 3 cooling raised to hold comfort.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is 1.1C below setpoint on hold, so cool at range minimum; Building_3 cools at baseline; batteries idle on flat price; no DHW.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top hours, batteries near floor; hold batteries, trim cooling within ranges, leave DHW idle, Building_1 eases trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 and Building_2 trims are at end, so baseline cooling; Building_3 is 1.81C below setpoint, so cool at 0 under the held trim range; batteries idle per strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_3 is 0.7C below setpoint in hold, so cooling at its range floor 0.0927; flat price, batteries idle, tanks idle, no end_trim.","status":"ok"},{"clamps":[{"applied":0.0,"point":"Building_1.cooling","reason":"indoor 27.1 C is within 0.5 C of the setpoint 27.2 C, trim eases off from 0.134 by at most 0.02 per hour","requested":0.098,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price and no top-price hours; batteries idle per strategy, cooling trims held within ranges, tanks at zero.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Flat price and no top-price hours; batteries idle per strategy, cooling held within trim ranges, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries idle per strategy; trim off for B1 and B3 so null cooling; B2 at end state so null cooling; no DHW or battery action.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top-price hours, batteries near floor and strategy says hold; B1 and B2 cooling within range, B3 at baseline; hold DHW at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries idle per strategy; Building_1 and Building_3 cooling near baseline, Building_2 slightly overcooled but no trim active.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, batteries near floor and strategy says hold; cooling at baseline-plus-trim within ranges, no tank use, no end_trim needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries idle per strategy; overcooling not present, so cooling stays at baseline-compatible values within ranges; tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price and no top-price hours; batteries idle per strategy, cooling at baseline or slight trim-free values within ranges, no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, batteries near floor and strategy says hold; cooling set to baseline for buildings in end state, Building_1 and Building_3 at baseline, Building_2 unoccupied at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are in end state with no overcooling; batteries idle per strategy, price flat-ish and no top-price discharge now, so baseline cooling and zero storage actions.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim ended for all buildings at or above setpoint; batteries idle per strategy, price flat-ish and no top-price discharge now; cooling at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are at end state and rooms are above setpoint, so baseline cooling; batteries idle per strategy, and no tank charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are at end state and buildings are near setpoint, so baseline cooling; batteries idle per strategy, no top-price hour now, and charging is negligible.","status":"ok"},{"clamps":[],"fallback":null,"reason":"All buildings are at or above setpoint with trim off or ended, so cooling stays at baseline; batteries held per strategy with no top-price hour now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim ends in B1/B3 idle; B2 cooling at baseline; battery strategy is 0 since peak headroom is zero and flat-ish prices; keep tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_2 is 2.39C above setpoint, so trim is end; keep baseline cooling. Batteries idle per strategy, price not top now; hold dhw at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 2 is 2.9C over setpoint in end state, so cooling stays at baseline; batteries idle per strategy, price not at top, no trim to hold.","status":"ok"},{"clamps":[],"fallback":null,"reason":"All buildings are at or above setpoint with trim in end state, so cooling stays at baseline; batteries are nearly empty and strategy gives 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 overcooled 4.3C with trim ended; cooling at baseline per end state. Battery strategy: idle to store/peak-shave as given; no top price now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 2 are overcooled but trim is end, so baseline cooling; batteries idle per strategy, no top-price hour now and charge is negligible.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Buildings 1 and 3 are above setpoint so trim is off; batteries idle as strategy says, no top-price hour now, no cooling trim needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"All buildings are in trim end and overheated, so cooling stays at baseline; batteries idle as strategy says, price not top now and battery usable charge is negligible.","status":"ok"},{"clamps":[],"fallback":null,"reason":"All buildings are in trim state end, so cooling stays at baseline; batteries and tanks hold since no top-price hour is now and strategy says idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Buildings 1 and 2 are overcooled? No: trim is end, so baseline cooling; batteries idle per strategy, DHW idle, hour 22 price not top.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 2 are overcooled? No: all trims are off or end, so baseline cooling; batteries idle per strategy, no top-price discharge or cheap charging worthwhile.","status":"ok"},{"clamps":[],"fallback":null,"reason":"All trims are off or ended and batteries follow strategy (hold), so baseline cooling and zero storage actions are sent.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 2 are overcooled but trim is end, so baseline cooling; batteries idle per strategy, no top price now, tank held at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling is absent (indoor above setpoint), so baseline cooling; batteries idle per strategy, tanks at 0, no end_trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end in all buildings so baseline cooling; battery strategy as given, small charging in cheap hour; no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or end for all buildings so cooling stays at baseline; follow strategy_battery charging in cheap hours, tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end for all; cooling at baseline-ish within ranges, battery follows strategy charging in cheap hour, dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling trims not active; keep baseline cooling in held-off states, follow strategy battery charging in cheap hour, no DHW, end trims not needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hour 7 is not top-price; cut overcooled B1 cooling per trim rules, keep strategy battery charging, B2/B3 at baseline, no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are at end state with no overcooling; batteries held per strategy since top price is not now and grid charging offers no clear gain; dhw kept at zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 and Building_3 cooling within range at baseline; Building_2 trim ended so baseline cooling; batteries idle per strategy, no top price now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 cooling held at baseline; Building 2 overcooled slightly so cooling trimmed within range; batteries idle per strategy, no top-price discharge now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim B2 at hold within range; B1 and B3 baseline cooling; batteries idle per strategy since price not top and no peak pressure.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 2 is above setpoint with end trim, so cooling follows baseline; batteries idle per strategy since no top-price hour now and price is low.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Buildings 1 and 2 stay on baseline cooling since trim is off or ended; Building 3 follows its strategy battery charge of 0.15 in this cheap hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold cooling at baseline for B1/B2 (trim off), B3 unoccupied trim end with null; batteries follow strategy charging since top price is 2-4 hours ahead; DHW idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 unoccupied with trim end; Building 2 above setpoint so baseline cooling; batteries follow strategy_battery in cheap hour before top price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Top-price hour: discharge batteries per strategy_battery, cooling at baseline since trims are off or ended, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Buildings 1 and 3 unoccupied with trim end, so baseline cooling; Building 2 trim off, baseline; battery per strategy discharge at top price, no tank or grid charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled occupied rooms trimmed within cooling_range; battery follows strategy discharge for top-price hours; no tank or grid charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim held in ease state, so cooling stays in range; batteries idle per strategy since top price is not now and grid charging is cheap but tiny gain; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Holding cooling in ranges for trimmed rooms, baseline for Building_2, batteries idle per strategy as load is under the peak target and prices are not at top.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is 2.2C below setpoint so cooling trimmed to range floor; batteries idle per strategy, no top-price discharge now, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hour 22 is not a top-price hour, so batteries stay idle; Building 1 eases cooling inside its range and others keep baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim B1 held at baseline-depth cooling within range, batteries follow strategy (charge 0.15 in cheap hour), no tank use, B2 and B3 at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim ended on B1 and B3 has no trim; cooling at baseline or ease-held, battery per strategy_battery 0.15 charging in cheap hour before 16-18 peak.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is ended or off in all buildings, so cooling stays at baseline; batteries follow the strategy charge in this cheap, clean hour before the top-price window.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold cooling at baseline or within ranges, keep battery at strategy values, no tank use; no top-price now and no overcooled rooms.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled? No: Building_1 is 1.23C below setpoint so trim is off; use baseline cooling. Follow strategy battery charging of 0.15 in cheap hour, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off in B1 and B3 so baseline cooling kept; B2 has no baseline cooling. Batteries follow strategy, charging in cheap hour with no top price now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end in all buildings, so baseline cooling kept except none overcooled; strategy battery actions sent; no DHW; no top-price discharge now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended; keep baseline cooling, follow strategy battery, no tank use, and limit clamps to protect comfort and peaks.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled B1 gets trimmed cooling per envelope; B2 and B3 sit at baseline; batteries follow strategy, storing in cheap hour and holding for top-price hours.","status":"ok"},{"clamps":[],"fallback":null,"reason":"District load is at its peak target, so batteries discharge per strategy; cooling stays at baseline since no trim is active.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end for all; cooling at baseline except Building_1 and Building_3 hold baseline; battery per strategy, grid charging ok in cheap hour; no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled Building_1 cut to 0 cooling per 0.5C rule; trims elsewhere off/end; batteries follow strategy, no tank use, no top price now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold cooling trim in B1 within range, follow strategy battery values; top price not now so no peak discharge; B2 and B3 at baseline cooling with end trim unavailable.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim cooling in ease state within range; battery per strategy (store solar); no top price now, no DHW; end_trim not used for ease-state buildings.","status":"ok"},{"clamps":[{"applied":0.0848,"point":"Building_1.cooling","reason":"indoor 24.1 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.025 by at most 0.02 per hour","requested":0.089,"rule":"trim_hold"}],"fallback":null,"reason":"Trim B1 ease, B2 and B3 end with null cooling; batteries idle per strategy since price not top and no discharge trigger yet.","status":"clamped"},{"clamps":[{"applied":0.069,"point":"Building_1.cooling","reason":"indoor 23.7 C is more than 0.5 C below the setpoint 25.1 C, trim held at 0.005","requested":0.0848,"rule":"trim_hold"}],"fallback":null,"reason":"Hold batteries as strategy says; trim B1 eases within hold rules, B2 and B3 at baseline cooling, no DHW, no end trim.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Hold cooling at envelope limits for comfort, follow strategy battery actions for peak shaving ahead of top-price hours, no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim ease states allow baseline-near cooling; battery follows strategy discharge for top-price hours; no grid charging; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Battery follows strategy values for top-price hours; Building_1 cooling held at 0.13 under ease trim; other cooling at baseline; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Top-price hour: discharge batteries per strategy; cool per trim/ease within ranges; keep tank idle; ease trims toward baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end in all buildings; B1 and B3 slightly below setpoint so baseline cooling kept; batteries idle per strategy, price not top now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 and 3 are under setpoint in hold-free states; keep baseline cooling, battery idle per strategy, no grid charging at this price, dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 are overcooled-ish but trim off; keep baseline cooling, battery idle per strategy, no grid charging at this price, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold batteries as strategy says; hour 22 price is not top, no discharge; trim off for B1 and B3, B2 at setpoint so baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 2 is at setpoint with trim end, so baseline cooling; batteries follow strategy (idle), no grid charging at current price, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cooling at baseline with trims off; Building_2 overheated so use baseline; batteries follow strategy charging in cheap hour; DHW idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim ends for B1 and B2 at baseline cooling; B3 uses baseline; battery follows strategy; no tank charging, cheap hour before peak.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 overcooled 0.59C above setpoint with trim end; use baseline. Batteries follow strategy charging in cheap hour; no top price now; dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 0.92 C below setpoint so cooling trim is off; keep baseline cooling, follow strategy battery charge at 0.15 in cheap hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is 0.96C below setpoint but trim is off, so baseline cooling; batteries follow strategy charging in cheap hour; no trim or tank action.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling trim not active; follow strategy battery charging in cheap hour, no DHW, cooling at baseline with trim off.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end in all buildings, so baseline cooling; B1 and B3 use baseline, B2 idle; batteries follow strategy_battery as given; no top price now, no tank charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended in all buildings, so cooling stays at baseline; batteries follow strategy values, with Building_3 charging gently ahead of the top-price hours.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Keep baseline cooling where trim is off/end, follow strategy battery values, no tank use; buildings 1 and 3 charge slightly, building 2 idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended in all buildings so cooling stays at baseline; batteries follow strategy (B3 small charge, others idle) ahead of the 7-9h top-price hours.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is overcooled but its trim is off, so baseline; Building 2 trim ended; Building 3 unoccupied with strategy battery charge applied; no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end for B2/B3 so cooling baseline; B1 held at 0.025 within range; batteries follow strategy_battery; no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off in B1/B2 and ended in B3, so baseline cooling; batteries idle per strategy since no top-price now and cheap hours ahead are not needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 0.78C below setpoint so trim is off; use baseline cooling, follow strategy battery (store solar), no DHW, no trim end.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold battery idle until top-price hours ahead; cooling at baseline for B1/B3, trim off; B2 unoccupied, null cooling; no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 are near setpoint with no trim, so baseline cooling; battery per strategy, top-price hours ahead so charging is modest and tank stays idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy_battery discharge over top-price hours; cooling at baseline in end state; no tank use; no grid charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Battery follows strategy discharge for top-price hours; trims are off or ended, so cooling stays at baseline and DHW idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cooling kept at baseline since trim is off or ended; batteries follow strategy discharge for top-price hours; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold batteries per strategy (no top price now, charging unneeded); cool at baseline for Building_1 and 3, Building_2 trim ended, dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended in all buildings, so cooling stays at baseline; batteries hold per strategy since no top-price hour is now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim only in B1 and B3 (off), B2 at setpoint; use baseline cooling, follow strategy battery idle, no tank charging, no grid charge at this price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off in B1 and B3, B2 at end; follow strategy battery; charging blocked at current price; peak limiter on so no extra load.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended in all buildings and strategy batteries are zero, so the baseline holds with no tank or battery action this hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off for B1 and B3, B2 at setpoint with end state; use baseline cooling, idle batteries and tanks per strategy and no top-price hour now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 are below setpoint so cooling stays at baseline; Building 2 is above setpoint with trim ended, so cooling is baseline; batteries idle per strategy, price not top now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 trim ended; cooling at baseline. Buildings 2 and 3 are not overcooled. Batteries idle per strategy, DHW zero, no top-price hours now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled B1 gets cooling cut to 0.0 within range; batteries follow strategy values, grid charging allowed at low price; no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are in end state so cooling stays at baseline; batteries follow strategy charging in cheap hours, tank idle, no top-price discharge now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling trim is off in B1 and B3, so baseline cooling holds; batteries follow strategy charging in cheap hour; DHW idle, no peak discharge needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 0.51C below setpoint so cooling is set just below baseline within range; batteries follow strategy since top price is ahead; no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Ease cooling within range, follow strategy battery charging in cheap hour, no tank use, no end trim needed while trim eases.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 cooling at baseline (trim off/end); building 2 trim ended; batteries idle per strategy, price not top now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim idle in all buildings; battery strategy is zero (no top-price now, load under target), so keep baseline cooling and hold batteries and tank.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off in B1 so cooling at baseline; B2/B3 unoccupied, end state so baseline; batteries follow strategy, grid charging cheap hour, no DHW.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended, so baseline cooling; batteries follow strategy (store solar, no top-price discharge now); tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 cooling within range at baseline; Building 2 unoccupied, trim end, so baseline; batteries follow strategy, no top price now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end in all buildings; keep baseline cooling except none overcooled; follow strategy_battery (B1 0, B2 0, B3 0.15); no dhw; price not top now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end in all buildings; follow strategy battery values, charge gently in cheap hour, no tank use, cooling at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end for all; cooling at baseline except Building_1 and Building_3 kept at baseline; battery follows strategy values; dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end for all; cooling at baseline, battery follows strategy discharge in top-price hour, dhw idle, no grid charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold cooling at baseline where trim is off; Building 1 slightly under setpoint so no trim; discharge batteries per strategy over top-price hours, tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cooling trims are off or ended so baseline cooling is kept; batteries follow strategy discharge over top-price hours; tanks stay idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended in all buildings so cooling stays at baseline; batteries follow the strategy values for peak shaving, with no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 3.08C below setpoint so cut cooling to 0.1448 floor; batteries hold per strategy, prices not top now, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is 1.3 C below setpoint in hold, so cooling sits at the range floor; batteries hold per strategy; tanks idle, no top price now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled B1 is 0.29C below setpoint, so trim cooling deeper within range; batteries idle per strategy, no top price now, tank held at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 2 trims are at end, so baseline cooling; Building 3 cooling baseline; batteries follow strategy (small charge), no dhw, no end_trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended and no room is overcooled, so cooling stays at baseline; batteries follow the cheap-hour strategy charge of 0.15.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 2 cooling at baseline (trim off/end), battery follows strategy charging in cheap hour; no tank use, no top-price discharge now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling is absent (indoor near setpoint, trims off or end), so cooling stays at baseline; battery follows strategy 0.15 charge in cheap hour; dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or ended for all; cooling at baseline except none overcooled; battery follows strategy charging in cheap hour; tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled-free: Building_1 cooling trim off so baseline; battery follows strategy charging in cheap clean hour; no tank use; price not top now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling trim off; follow baseline cooling and strategy battery values, which charge in cheap hours; no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling trim off in B1; follow strategy batteries (B1 0.01, B2 0, B3 0.15), no tank use, baseline cooling where trim off or end.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended and cooling is at baseline; batteries follow the strategy discharge to shave the district peak at its target.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling trim is off in B1 and B3 and B2 is at setpoint; follow strategy battery, cooling at baseline, tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off for B1 and ends for B2/B3; follow baseline cooling, follow strategy battery actions, leave tanks idle, no top price now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or ended in B2/B3 and B1 ease-free; use baseline cooling, follow strategy_battery, leave dhw at 0, no grid-charge beyond given plan.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is overcooled but trim is off so baseline cooling; batteries follow strategy; top price not yet active, no tank charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end in all buildings, so baseline cooling; battery per strategy_battery, cheap hour pre-top-price, no discharge yet; dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end for B1/B3 so baseline cooling; B2 unoccupied end; battery follows strategy values; no tank action; keep actions within ranges.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended in all buildings so cooling stays at baseline; batteries follow strategy values, with a gentle charge in Building_3 ahead of top-price hours.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cooling and trim left at baseline since rooms are not overcooled; batteries follow strategy_battery in the cheap, clean hour before the price peak.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim states: B1 end, B2 end, B3 off; use baseline cooling. Follow strategy_battery discharges over top-price hours; no DHW; no grid charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended, so cooling stays at baseline; batteries discharge at the strategy values during the top-price hour, within envelope ranges.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended, so cooling stays at baseline; batteries discharge at strategy values during the top-price hour, within ranges.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended in all buildings so cooling stays at baseline; batteries follow strategy_battery, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended in all buildings, so cooling stays at baseline; batteries follow strategy_battery for the top-price discharge.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 and 3 are overcooled-state off so baseline cooling; battery follows strategy; no trim, tank idle; grid charging off.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended in all buildings, so baseline cooling is kept; batteries follow strategy, with Building_3 discharging slightly at the top price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 are overcooled but trim is off, so baseline cooling is used; batteries idle per strategy on flat price day; dhw stays at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 cooling trim is off, Building 2 is at end state above setpoint; flat price so batteries idle, baseline cooling kept.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Buildings 1 and 2 are overcooled but trim is off so baseline cooling; batteries idle on flat price day, tank at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price and no top-price hours, batteries idle per strategy; buildings 1 and 3 are over 0.5C below setpoint so cooling sits at baseline trim state off; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, batteries idle; Building_1 and Building_3 cooling within range; Building_2 at/above setpoint with no trim, so baseline cooling kept.","status":"ok"},{"clamps":[{"applied":0.0689,"point":"Building_1.cooling","reason":"indoor 22.7 C is near the bottom of the comfort band, cooling held at the baseline","requested":0.069,"rule":"comfort"}],"fallback":null,"reason":"Flat price, batteries idle per strategy; cooling trims off or end so use baseline; Building_1 and 3 have cooling ranges, send baseline-level values within range.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries idle per strategy; Building_2 trim ended and cooling at baseline; Building_1 and 3 are near setpoint so cooling held at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price and batteries near floor with no top-price hours; hold batteries idle, use baseline cooling, trim is off except Building_1 and 3 off, Building_2 at end state.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price and no top-price hours; batteries idle per strategy. Building_1 in ease trim, cooling within range; Building_2 at setpoint, Building_3 off, baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, batteries idle per strategy; Building_1 and Building_3 trims in end state with no cooling override; Building_2 at setpoint, baseline cooling kept.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price and no top-price hours; batteries idle per strategy, trim only where overcooled, dhw held at zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold cooling trims per envelope for overcooled B1 and B3, keep battery per strategy, no tank use; B2 at baseline since trim ended.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold cooling trim for B1 (0.215 in range), keep B2 and B3 at baseline; batteries idle per strategy, flat price, no DHW.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, batteries idle; Building_1 and Building_3 ease cooling inside range, Building_2 at baseline with trim ended, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, batteries near floor and strategy says hold; trim ended for B1, B2 and B3 at baseline cooling, B1 at 0.5348 minimum within range.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, batteries idle, trims off so cooling at baseline; district load below peak target, DHW tank stays at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, batteries idle per strategy; Building_1 and Building_3 are overcooled but trim is off, so baseline cooling; hold dhw and battery at zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended and the battery has no usable charge on a flat-price day, so all devices keep baseline actions.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price and no top-price hours; B1 and B3 overcooled but trim off so baseline cooling; B2 at setpoint, baseline; batteries idle, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price and battery idle; Building_1 and Building_3 overcooled but trim off so baseline cooling; Building_2 at setpoint, baseline; dhw and battery idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top-price hours, batteries idle; B1 and B3 overcooled but trim off so baseline cooling; B2 at setpoint, baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, batteries idle per strategy; B1 and B3 overcooled but trim is off so baseline cooling; B2 at setpoint uses baseline; no DHW.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price and no top-price hours, so batteries idle; trims are off or ended, so cooling stays at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is overcooled 2.98C but trim is off so baseline cooling; batteries idle on flat price with negligible usable charge; tanks stay at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price and no top-price hours, batteries idle per strategy; Building_1 and Building_3 are below setpoint so cooling sits at the baseline-inside range; Building_2 trim ended.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 are held below setpoint, so trim cooling at the range floor; batteries idle on flat price; tanks left at zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is 2 C below setpoint in hold, so cool at the envelope minimum; batteries idle on flat price with no usable charge; tanks stay at zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 trim in end state with end_trim not ok, so cooling baseline; batteries idle per strategy, flat price, DHW off.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 3.46 C below setpoint so cooling is cut to 0 under hold-free trim rules; trim is off, so use baseline except overcooled cases; batteries idle as flat price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 are overcooled-ish but trim is off so baseline cooling; Building 2 trim end, so baseline; batteries idle per strategy, flat price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top-price hours, batteries empty at floor; hold batteries and keep baseline cooling except Building_2 at end state, so null actions.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is 1.0C below setpoint and trim is off, so baseline cooling is kept; batteries idle on flat price, strategy_battery 0 and no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, batteries near floor with no top-price hours; hold batteries, use cooling within range for overcooled Building_1 and keep others at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 hold at end/off so baseline cooling; Building 2 is 2.09C above setpoint so cooling stays at baseline range; batteries follow strategy, dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 overcooled 3.85C with trim off so cooling stays baseline; batteries follow strategy; no tank use; no top price now, so no discharge.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended in all buildings, so cooling stays at baseline; batteries follow the strategy values given this hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off everywhere and no building is overcooled; batteries idle per strategy, cooling at baseline, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 cooling near baseline with no trim; Building 2 unoccupied trim end; batteries idle per strategy, no top-price hour now, hold tanks at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off so cooling stays at baseline; batteries follow strategy values, which shave the district peak since load is near target.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim states are off or end and strategy_battery is 0 in all buildings, so I keep baseline cooling, idle batteries and tanks.","status":"ok"},{"clamps":[],"fallback":null,"reason":"All trims are off or ended and price is flat-ish with no top-price hour now, so keep baseline cooling and hold batteries and tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 2 is 1.63 C below setpoint so cut its cooling to 0.1 (within range); others hold baseline cooling; batteries idle per strategy, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off everywhere so cooling at baseline; strategy battery values sent as given; hour not top price, district near peak target so battery per strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Buildings overcooled 0.5-3.8C but trim state off so baseline cooling kept; batteries nearly empty, strategy says hold, price not top, so idle; no tank charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"All buildings overcooled-ish but trim off, so baseline cooling; batteries idle per strategy, tanks at 0; price not top now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Buildings are below setpoint so no trim; use baseline cooling, batteries idle per strategy, no top-price discharge now, tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 are overcooled 2.8 C below setpoint but trim is off, so baseline cooling; batteries idle per strategy, no top-price now, tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off and batteries stay idle per strategy; district load 4.65 kWh is under the 10.35 kWh target, so baseline actions are kept.","status":"ok"},{"clamps":[],"fallback":null,"reason":"All buildings are overcooled but trim is off, so baseline cooling; batteries idle per strategy, price not top and grid charging unneeded; DHW idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"All trims are off or ended and rooms are not overcooled, so baseline cooling holds; batteries and tanks stay idle per strategy with no top-price hour now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Buildings 1 and 3 are overcooled but trim is off, so baseline cooling is kept; batteries idle per strategy, no cheap-hour charging worth it at low SOC.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is overcooled 1.79C but trim is off, so baseline cooling; batteries idle per strategy, price not at top, no trim changes.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled rooms cut cooling to 0 per trim rules; batteries follow strategy (charge in cheap hour before top-price 13-15); no tank use.","status":"ok"},{"clamps":[{"applied":0.0,"point":"Building_1.cooling","reason":"indoor 22.1 C is more than 0.5 C below the setpoint 23.2 C, trim held at 0.150","requested":0.0,"rule":"trim_hold"},{"applied":0.0,"point":"Building_3.cooling","reason":"indoor 23.8 C is more than 0.5 C below the setpoint 24.3 C, trim held at 0.102","requested":0.0,"rule":"trim_hold"}],"fallback":null,"reason":"Hold cooling trims in B1 and B3 at range, B2 at baseline (end), batteries follow strategy charging in cheap hour, tank idle.","status":"clamped"},{"clamps":[{"applied":0.0,"point":"Building_3.cooling","reason":"indoor 24.3 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.102 by at most 0.02 per hour","requested":0.0,"rule":"trim_hold"}],"fallback":null,"reason":"Building 1 and 3 trims held or ended per envelope; batteries follow strategy charging in cheap hour; no top price now, district load below target.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Hold cooling at envelope values; B2 and B3 trims are ending, B1 is not trimmed. Battery follows strategy; no tank use; no early trim end.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is overcooled so cooling is cut to the range floor; Buildings 2 and 3 use baseline in end state; all batteries charge at the strategy rate in a cheap hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim B1 held at depth 0.15 with cooling 0.054 inside range; batteries idle per strategy, B2/B3 cooling at baseline with end state.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 0.5 C below setpoint so trim holds; cooling set just inside range, batteries idle per strategy, tanks off.","status":"ok"},{"clamps":[{"applied":0.0,"point":"Building_1.cooling","reason":"indoor 23.2 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.150","requested":0.0,"rule":"trim_hold"}],"fallback":null,"reason":"Overcooled Building_1 trimmed to 0 cooling within range; batteries follow strategy (store solar), no tank use, Building_2 and 3 at baseline cooling.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Building_1 is 0.25C below setpoint in ease state so cooling stays at its range max; batteries idle per strategy, no top-price hour now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim ends in B1 and B2 is unoccupied; cooling at baseline, battery per strategy, B1 near setpoint so no trim; store solar only.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or ended, so baseline cooling; Building 1 overcooled slightly needs no trim; follow strategy_battery; no DHW; top price not now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off for B1; B2/B3 unoccupied end state so null cooling; battery per strategy, B1 idle, B2/B3 small charge in cheap hour; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold cooling at baseline or trim where overcooled; follow strategy battery charging in cheap hours; no tank use; top-price hours ahead.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled B1 held at range cap 0.2827; batteries follow strategy discharge into top-price hours; B2 and B3 keep baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim B1/B3 with strategy battery discharge; B2 unoccupied uses baseline cooling, end trim; top-price discharge per strategy, no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cooling held at envelope range for overcooled occupied rooms; battery follows strategy discharge for top-price hours; tank idle; Building_2 unoccupied so baseline cooling.","status":"ok"},{"clamps":[{"applied":0.0,"point":"Building_1.cooling","reason":"indoor 24.8 C is more than 0.5 C below the setpoint 26.4 C, trim held at 0.150","requested":0.0,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 is 1.6C below setpoint so trim holds; cooling range is 0 so null-free cooling is 0. Batteries idle per strategy; price not top now.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Hour 20: B1 is 2 C above setpoint so cooling stays at baseline; B2 and B3 use baseline or hold, batteries idle per strategy, no tank charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 and Building_3 are overcooled-trim cases; Building_2 at setpoint with end trim. Batteries idle per strategy, tanks idle, cooling sent inside ranges.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is 1.81C below setpoint with trim off, so baseline cooling; batteries idle per strategy as price is not top and no cheap-hour charge is clearly needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Buildings 1 and 3 are below setpoint in hold-free ease-off states so cooling stays at baseline; batteries idle per strategy, no top-price or peak discharge needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 1.98C below setpoint so cut cooling to 0 within range; others hold near baseline; batteries idle per strategy, no top-price now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 overcooled 1.15C with trim in end state, so cooling at baseline; batteries follow strategy; B2 and B3 at baseline with no trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling is small; use trim-free baseline cooling, battery charges per strategy in cheap hour, no DHW, no end_trim since trim is off.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cooling at baseline or trimmed per envelope; battery follows strategy charging in cheap hour; no tank use; trim off or end so null.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled Building_1 cannot trim (state off); use baseline cooling, charge batteries per strategy in cheap hour, no tank use.","status":"ok"},{"clamps":[{"applied":0.2039,"point":"Building_1.cooling","reason":"indoor 20.6 C is near the bottom of the comfort band, cooling held at the baseline","requested":0.204,"rule":"comfort"}],"fallback":null,"reason":"Overcooling trim is off for B1 and B3; cooling near baseline, B2 at end. Batteries follow strategy charging in cheap hours; no tank use.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Overcooling not present; cooling at baseline, battery per strategy (gentle charge in cheap hour), no tank charging, no top-price discharge yet.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled-free baseline cooling kept; battery follows strategy values; top price is 2-4 hours away so charging stays modest and tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are in end state with no cooling change needed; follow strategy_battery (charge in cheap hour), no tank use, baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end for all; cooling at baseline except none overcooled; battery follows strategy values; tanks idle; spare solar stored, price not top now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end in all buildings, so cooling at baseline; battery per strategy (charge small, top price hours ahead); no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 trim is off so baseline cooling is kept; Buildings 2 and 3 are unoccupied with trim ended; batteries follow strategy values; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end for all; cooling at baseline, battery per strategy (small charge in cheap hour), tanks idle, no top-price discharge yet.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled B1 gets trim-free cooling within range; B2 unoccupied uses baseline; B3 near setpoint uses baseline; batteries follow strategy, tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold cooling at the envelope trim for B1 and B3, keep B2 at baseline (unoccupied), follow strategy batteries, no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold trims per envelope; B1 and B3 cooling at range minimum; B2 unoccupied at baseline; batteries follow strategy; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cooling held inside envelope ranges with trims easing; batteries discharge per strategy over top-price hours; no tank use or end trims.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 held trim cuts cooling inside range; batteries follow strategy discharge for top-price hours; trims ended elsewhere; no tank or grid charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Held Building_1 cooling at its only allowed value, followed strategy battery discharge for top-price hours; Building_3 trim is off so baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is 2 C overcooled in hold, so cooling goes to 0.1769 (range floor) with ending trim not needed; batteries follow strategy (idle), tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Builders 1 and 2 are at baseline trim end; Building 3 is held 0.5 C below setpoint so cooling sits at its range value; batteries idle as strategy says.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 and 3 cooling within range; B1 overcooled slightly no trim; B2 end trim so baseline; batteries idle per strategy; no top-price discharge now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled Building_1 and Building_3 are not in trim hold, so baseline cooling is kept; batteries idle per strategy since price is not top and grid charging is not needed now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended, so cooling stays at baseline; batteries follow strategy_battery to shave the district peak and the tanks stay idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 2 cooling trims are off or end; B1 at setpoint, B2 and B3 below band so cooling stays at baseline. Batteries idle per strategy; no top price now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 2 C below setpoint so cooling must follow baseline or trim rules; batteries idle per strategy since no top-price now and charging is not cheap enough to warrant it.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling trims are off, so baseline cooling stays; batteries follow strategy (gentle charge in cheap hour); tanks idle; no top-price discharge now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled rooms are not in hold trim, so cooling stays at baseline; battery follows strategy charging in a cheap hour; tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling trim is off in all buildings; cooling kept at baseline, battery follows strategy charging in cheap hour with no top price now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling trims not active; keep baseline cooling, follow strategy battery charging in cheap hour, no DHW, end_trim not applicable.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off in B1 and B3, B2 at setpoint; use baseline cooling, follow strategy battery charging in cheap hour with grid charging allowed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling only in Building_1 and 3 is modest; use baseline cooling within ranges, follow strategy battery charging, no tank use, no trim ending needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling trims are off; cooling at baseline, batteries follow strategy values since top-price hours start soon, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or ended; cooling at baseline except Building_1 unoccupied at end state; batteries follow strategy values; no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off everywhere so baseline cooling is kept; batteries follow strategy values, which charge gently before the top-price hours 6-8 and hold otherwise.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off in B1/B2 so baseline cooling; B3 unoccupied end state uses null; battery follows strategy values, grid charging ok in cheap hour before top price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off in B1, B2 and B3 at end state, so cooling at baseline; battery per strategy (store solar); no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended, so baseline cooling is kept; batteries and tanks hold per strategy with no grid charging at this price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end in all buildings so baseline cooling; batteries follow strategy (store spare solar, idle otherwise); tanks stay at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold cooling at baseline or within range; battery follows strategy values; Building_3 cooling trim ended (end state) so use baseline; no tank action.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Top-price hour: follow strategy battery discharge; Building_1 and Building_2 cooling at baseline, Building_3 overcooled cooling in range; no DHW, no grid charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cooling at baseline since trims are off or ended; batteries follow strategy discharge for the top-price hours, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended, so cooling stays at baseline; batteries follow strategy discharge over top-price hours, within ranges; tanks stay at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled B1 and B3 get cooling below baseline; B2 at setpoint keeps baseline; battery follows strategy, no grid charging at current price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim B1 held at end state, B3 hold so keep cooling in range; batteries follow strategy, peak headroom zero so no charging; DHW idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 and 2 overcooled? No: B1 is 4 C below setpoint so trim off, use baseline; B3 hold trim, cool at range min; batteries idle per strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled Building_3 held trim at min depth; other buildings at baseline; batteries idle or per strategy, no grid charging at this price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold trims at minimum depth for B1 and B3 using range-bound cooling; B2 at setpoint takes baseline; batteries per strategy (idle); no DHW or end_trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 and Building_2 trims are at end so baseline cooling; Building_3 eases within range; batteries idle per strategy, no top-price hour now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is overcooled 3.46C but trim is off, so baseline cooling; batteries idle per strategy, no grid charge at low SOC, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling trims not active; keep baseline cooling, follow strategy battery charge in cheap hour, no DHW, end_trim unavailable.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Buildings 1 and 3 are not overcooled, so baseline cooling holds; batteries follow strategy charging in this cheap clean hour, tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled Building_1 is held at baseline per trim off; follow strategy_battery charging in cheap hour, cooling at baseline where trim is off or end.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled-free: Building_1 indoor 1.8C below setpoint but trim off so baseline cooling; batteries follow strategy charge; no DHW; hour 5 cheap, clean.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold cooling at baseline for overcooled-free buildings, follow strategy battery charging in cheap hour; no dhw; B2 and B3 trim ended so null cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling trims are off; cooling at baseline, batteries follow strategy (gentle charge in cheap hour), tanks idle, no end trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Holding all batteries and tanks idle per strategy; no top-price hour now, and trim is off or ended so baseline cooling is kept.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold cooling at baseline for B1/B3 (trim off/end), B2 at baseline; batteries follow strategy; no tank use; top price is 3 hours ahead.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Buildings 1 and 3 have trim off and Building 2 is at end, so baseline cooling is kept; batteries follow strategy values inside their ranges.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off in B1 and B3, B2 at setpoint; follow strategy batteries (small charge, cheap hour before top price) and baseline cooling, no hot water.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim ends in B1/B2 and B3 is in off state, so use baseline cooling; follow strategy battery values; leave DHW idle at zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or ended in B1 and B3 uses baseline cooling, B2 unoccupied ends trim; battery follows strategy values with no top-price discharge now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or ended; cooling at baseline for Building_1, Building_3 is pinned, Building_2 unoccupied; batteries follow strategy, no top price now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end in all buildings so baseline cooling; battery follows strategy values; no tank action; B1 and B3 mirror strategy battery, B2 idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Holding baseline cooling since no trim is active; discharging batteries over top-price hours per strategy_battery, within ranges; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Top-price hour: follow strategy battery discharge; cool baseline in occupied rooms near setpoint, no tank use, district load near target so limit discharge to strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended in all buildings, so cooling stays at baseline; batteries follow strategy_battery to discharge over the top-price hours; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"All trims are off or ended and strategy_battery is 0 with no top-price hour now, so baseline cooling and idle storage are kept.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled rooms get trimmed from baseline; batteries follow strategy values; hour 20 price is not top, so no discharge beyond peak-limit needs.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold trims on B1 and B3 at envelope minimum; B2 at setpoint with end state so use baseline; batteries idle per strategy; no tank charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold cooling at envelope range for overcooled rooms, follow strategy battery, no DHW, no end trim; peak headroom is zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 hold trims at range minimum; Building 2 at setpoint uses baseline; batteries idle per strategy, no top-price now and low SOC.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold batteries as strategy says; trim cooling within ranges; no top price now, small battery soc, no clear charge or discharge gain.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim ends on B1 and B3 (at setpoint), B2 trim off so baseline cooling; batteries idle per strategy, no top price now, tank stays at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling trim is off and room temps are within band; follow baseline cooling, use strategy battery charge of 0.15 in cheap hour, tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Buildings 1 and 3 hold cooling at baseline; Building 2 has no trim. Battery follows strategy; no tank charging, no top price now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled-free: buildings near setpoint, trim off, so use baseline cooling; follow strategy battery charging in cheap hour, tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended so baseline cooling is kept; batteries charge 0.15 per strategy in this cheap, clean hour; tanks stay idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling trim is off in B1 and B3, B2 at setpoint; use baseline cooling, follow strategy battery charging in cheap hour, dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled rooms are off trim so baseline cooling kept; batteries follow strategy charging in cheap hours, dhw idle, no trim ending.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled occupied room B1 gets cooling cut to 0 per hold rule; B2 unoccupied and B3 at setpoint use baseline; batteries follow strategy values.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow the envelope: ease cooling in Building_1 within range, hold Building_2 and 3 at baseline, use strategy battery values, no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 held trim is deepened to the range floor while overcooled; batteries follow strategy, charging Building 3 in this cheap, clean hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are in end state so baseline cooling; batteries follow strategy values, which charge in cheap hours before top-price hours 5-7; DHW idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled occupied rooms are 3 C below setpoint so Building_1 cooling is trimmed; battery follows strategy, dhw idle, no top-price discharge now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim B1 ends (above setpoint), B3 holds cooling at min depth; batteries follow strategy, no tank charging, B2 unoccupied at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end for all; cooling at baseline for B1 and B3 held by trim state, B2 unoccupied uses baseline; battery per strategy, dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end for all; cooling at baseline except Building_1 and Building_3 kept in range; batteries follow strategy, dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled occupied rooms are below setpoint but trim is off, so baseline cooling; battery follows strategy discharge over top-price hours; no tank action.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cooling kept at baseline where trim is off or ended; batteries follow strategy for the top-price hour; tanks held at zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled occupied rooms get trimmed cooling inside ranges; battery follows strategy during top-price hour; no grid charging; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cooling held at the envelope-only ranges for overcooled occupied rooms; batteries follow strategy_battery, with B2 idle as unoccupied and on end trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 3 is held 2.2 C below setpoint so cooling is pinned to its range; batteries follow the strategy discharge over the top-price hours.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 3 held at its only allowed cooling value; batteries follow strategy discharge over the single top-price hour; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim Building_3 held at min depth, cooling inside range; batteries follow strategy, Building_1/2 at baseline cooling range; no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day; buildings 1 and 2 are slightly below setpoint in ease state, so cooling stays near baseline within ranges; batteries idle per strategy; no trim end.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is 2 C below setpoint in hold, so cool at the range minimum; batteries idle per strategy and flat price; tanks stay at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries idle per strategy; Building_1 overcooled 2.8C below setpoint so trim held at minimum depth; B2 and B3 at baseline cooling within ranges.","status":"ok"},{"clamps":[{"applied":0.0,"point":"Building_1.cooling","reason":"indoor 22.8 C is more than 0.5 C below the setpoint 23.7 C, trim held at 0.150","requested":0.0,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price, no top-price hours; batteries idle per strategy. B1 is 0.9C below setpoint so hold trim at min depth; B2 at setpoint, baseline; B3 baseline.","status":"clamped"},{"clamps":[{"applied":0.0,"point":"Building_1.cooling","reason":"indoor 23.7 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.150","requested":0.0,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 is held 0.8 C below setpoint so cooling must stay at 0.0 within range; batteries idle on flat price; dhw stays 0.","status":"clamped"},{"clamps":[{"applied":0.0,"point":"Building_1.cooling","reason":"indoor 24.2 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.150 by at most 0.02 per hour","requested":0.0,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price, no top-price hours; batteries idle per strategy, cooling trims held where ease/hold allow, tanks idle.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Flat price, no top-price hours, batteries held per strategy; B1 trim ended, cooling at baseline; B2/B3 at baseline cooling, dhw off.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price all day and battery usable charge is tiny, so hold batteries idle; Building 1 and 3 cooling near setpoint, use baseline; Building 2 trim end, null.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price and no top-price hours; batteries idle per strategy, cooling at baseline or trimmed only if held, dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, battery idle; B1 and B3 cooling at baseline (state off/end), B2 at baseline since end state at or above setpoint; no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries idle per strategy; Building 1 and 3 are 0.16-1.16C from setpoint so trim off; use baseline cooling within ranges, no DHW.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top-price hours, strategy batteries idle; B1 and B2 cooling trims off so baseline, B3 unoccupied so baseline; keep tanks at zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries idle per strategy; Building_1 and Building_3 overcooled? No, trim off so baseline cooling; Building_2 near setpoint, baseline; dhw and battery held at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is overcooled but trim is off so baseline cooling; flat price, strategy battery idle, no tank use, cooling stays at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Buildings 1 and 2 are not overcooled and trim is off, so baseline cooling; batteries idle on flat price, tanks at zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries idle; buildings overcooled-free (no trim), so baseline cooling kept; battery and tank idle per strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Buildings 1 and 3 are over 0.5C below setpoint, so cooling trims are off; keep baseline cooling, batteries idle on flat price, tank at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top-price hours, batteries idle per strategy; cool at baseline for B1 and B3 (trim off), B2 baseline; no dhw or battery action.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price and no top-price hours; batteries idle per strategy, cooling held at baseline for occupied rooms, trim off, DHW idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, trim held only for B1 and B3 is off; use baseline cooling, idle batteries and tanks as strategy says, since no top-price hours and grid charging gains nothing.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Buildings 1 and 3 are overcooled but trim is off so baseline cooling kept; batteries held per strategy, flat price, no hot water charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Buildings 1 and 3 are overcooled 3+ C but trim is off so baseline cooling; flat price, batteries held idle per strategy; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off so baseline cooling is kept; flat price with no top-price hours means batteries stay idle and tanks stay at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top-price hours, batteries idle; Building 1 and 3 overcooled but trim is off, so baseline cooling; no dhw.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price and no top-price hours; batteries idle per strategy, cool at baseline while trim is off, tank idle.","status":"ok"}],"discomfort_h":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,2.0,3.0,4.0,5.0,6.0,6.0,6.0,6.0,6.0,7.0,8.0,8.0,8.0,8.0,8.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,10.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,13.0,14.0,15.0,16.0,16.0,16.0,16.0,16.0,16.0,16.0,16.0,16.0,16.0,16.0,16.0,16.0,16.0,16.0,16.0,16.0,16.0,16.0,16.0,16.0,16.0,16.0,17.0,19.0,21.0,21.0,21.0,21.0,21.0,21.0,21.0,21.0,21.0,21.0,21.0,21.0,21.0,21.0,21.0,21.0,21.0,21.0,21.0,22.0,23.0,24.0,25.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,27.0,28.0,29.0,30.0,31.0,32.0,34.0,35.0,35.0,36.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,38.0,39.0,41.0,42.0,43.0,44.0,45.0,46.0,46.0,46.0,46.0,46.0,46.0,46.0,46.0,46.0,46.0,46.0,46.0,46.0,47.0,47.0,47.0,47.0,48.0,49.0,50.0,50.0,50.0,50.0,50.0,50.0,50.0,50.0,50.0,50.0,50.0,50.0,50.0,50.0,50.0,50.0,50.0,51.0,52.0,53.0,54.0,56.0,58.0,60.0,63.0,66.0,68.0,70.0,71.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,73.0,74.0,75.0,75.0,75.0,75.0,75.0,75.0,75.0,75.0,75.0,75.0,75.0,75.0,75.0,75.0,75.0,75.0,75.0,75.0,75.0,75.0,75.0,75.0,76.0,78.0,80.0,82.0,84.0,85.0,86.0,87.0,87.0,88.0,88.0,88.0,88.0,88.0,88.0,88.0,88.0,88.0,88.0,88.0,88.0,88.0,90.0,92.0,94.0,96.0,98.0,100.0,102.0,103.0,103.0,103.0,103.0,104.0,105.0,105.0,105.0,105.0,105.0,105.0,105.0,105.0,105.0,105.0,106.0,107.0,108.0,110.0,112.0,114.0,116.0,118.0,120.0,122.0,123.0,124.0,125.0,126.0,126.0,126.0,127.0,127.0,127.0,127.0,127.0,127.0,127.0,127.0,127.0,127.0,127.0,127.0,127.0,127.0,127.0,128.0,128.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,130.0,132.0,132.0,133.0,134.0,134.0,134.0,135.0,136.0,137.0,137.0,137.0,137.0,137.0,138.0,138.0,138.0,138.0,138.0,138.0,139.0,140.0,141.0,142.0,144.0,146.0,148.0,149.0,150.0,150.0,150.0,150.0,150.0,150.0,151.0,152.0,152.0,152.0,152.0,152.0,152.0,152.0,152.0,152.0,153.0,154.0,155.0,156.0,157.0,158.0,159.0,160.0,161.0,161.0,161.0,161.0,161.0,161.0,161.0,161.0,161.0,161.0,161.0,161.0,161.0,162.0,163.0,164.0,165.0,167.0,169.0,171.0,173.0,175.0,177.0,179.0,181.0,183.0,185.0],"district_grid_kwh":[1.428,1.505,1.446,1.419,1.418,1.731,2.889,2.572,9.774,4.524,2.596,4.693,3.205,3.072,3.749,5.612,4.268,2.687,4.116,5.019,6.35,5.409,4.935,5.313,2.906,2.149,1.782,1.789,2.376,2.591,2.559,1.447,3.023,1.39,2.367,3.47,8.481,6.508,5.72,6.566,7.156,5.713,6.706,4.625,6.256,5.252,5.194,3.277,2.344,1.853,2.155,1.321,1.856,1.274,1.77,2.887,4.284,1.892,2.097,2.136,1.408,7.666,1.84,4.907,5.922,4.363,5.111,3.397,2.939,4.068,1.739,1.619,1.37,1.366,2.197,2.514,1.817,2.925,3.834,1.927,2.929,1.364,1.75,0.977,1.72,0.865,1.056,-0.111,0.408,1.081,3.387,3.195,3.275,2.867,2.91,2.527,2.926,2.89,2.757,2.646,3.346,1.939,2.359,4.088,1.583,0.184,0.4,1.175,1.715,1.507,2.321,1.402,1.869,4.075,5.691,6.963,4.513,2.846,1.96,2.272,3.183,2.766,3.075,3.031,2.862,3.471,11.612,3.267,3.151,4.84,2.781,0.872,1.19,1.639,2.745,1.045,1.362,2.039,3.236,4.651,12.748,4.061,2.756,2.55,2.501,4.076,3.496,2.416,2.88,2.813,5.705,2.942,4.081,2.031,1.207,4.369,4.214,3.385,3.387,0.792,1.455,3.01,5.683,4.035,4.621,3.314,2.07,1.773,1.903,2.941,2.346,2.285,2.268,5.215,3.022,1.919,2.43,0.611,0.256,0.865,0.709,1.69,2.233,1.063,1.33,2.152,4.85,5.226,4.806,3.546,3.098,2.089,2.0,1.615,1.371,1.298,1.264,1.282,2.314,1.681,3.513,1.474,1.431,2.602,2.919,9.212,6.154,5.669,5.009,5.866,6.606,4.796,3.462,3.385,4.015,2.651,2.136,2.03,1.545,1.742,1.625,3.061,1.199,1.627,1.399,1.242,1.422,1.207,2.482,10.97,2.705,4.298,10.754,6.567,7.595,6.376,3.577,2.812,2.95,2.604,2.608,2.693,3.083,2.467,2.965,3.021,7.411,3.531,5.295,4.232,2.499,1.272,1.613,2.352,7.172,3.811,4.292,3.904,5.75,3.863,3.416,9.533,2.395,3.384,2.522,2.315,2.716,3.169,3.085,3.119,3.124,1.817,1.368,2.687,1.817,2.405,1.911,3.753,3.834,4.066,8.697,5.042,6.951,8.78,7.948,7.376,10.214,3.276,1.947,1.8,2.769,2.451,2.902,2.937,4.204,1.783,1.568,0.962,1.091,0.96,1.219,1.974,2.839,2.281,2.623,1.813,4.609,5.747,4.76,4.38,5.799,2.329,2.497,3.557,3.4,2.912,2.725,2.771,3.084,5.071,2.516,0.443,0.939,0.866,3.208,2.44,1.19,0.921,1.275,2.416,5.189,5.84,6.143,3.999,3.62,4.192,3.792,3.821,3.261,3.025,4.134,2.247,2.368,4.15,5.495,4.865,3.203,3.104,2.484,2.264,4.431,2.224,2.737,4.437,6.501,5.217,4.934,6.104,3.196,4.822,2.437,2.636,2.145,1.938,1.769,1.797,2.001,4.154,2.309,2.731,2.249,2.143,7.196,2.654,3.906,3.373,6.85,5.496,4.711,4.749,5.428,3.48,1.813,1.867,1.884,1.811,1.355,1.259,1.464,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.075,4.363,3.689,2.184,3.04,2.766,3.362,3.151,3.036,6.075,5.389,2.505,2.267,3.274,2.844,1.893,3.974,7.189,3.865,2.131,2.057,1.284,3.289,5.134,3.111,5.491,2.943,3.311,3.487,3.477,3.132,3.488,2.003,1.841,2.95,5.501,4.508,3.988,1.552,0.845,2.588,3.361,4.9,0.861,0.787,0.766,2.876,3.367,3.404,2.977,1.98,3.171,3.705,4.588,3.022,2.861,3.631,4.419,1.967,3.186,2.847,1.586,1.197,3.177,2.421,0.864,1.088,0.459,1.555,2.151,3.051,3.131,3.882,5.157,4.092,4.172,2.316,1.919,1.764,4.14,3.194,2.793,3.085,3.85,1.565,1.006,1.024,3.233,2.228,2.48,3.348,2.164,2.893,2.89,7.898,3.474,3.215,3.813,4.117,3.482,3.619,3.916,3.234,3.018,2.127,3.825,8.148,5.156,5.352,2.828,1.756,4.135,3.068,2.239,3.974,4.58,3.872,3.342,5.773,6.363,4.789,4.802,3.497,2.856,2.313,1.654,1.524,1.69,1.423,1.241,1.894,4.291,4.532,11.489,8.607,2.761,5.317,4.097,7.792,12.321,7.027,6.345,7.686,5.934,5.09,4.379,2.946,2.441,2.08,2.359,1.597,1.499,1.796,2.04,1.498,4.755,3.271,2.001,4.201,1.81,7.502,6.764,3.249,4.397,9.868,7.598,7.731,5.223,4.913,4.651,4.97,2.7,2.657,2.339,2.207,2.222,3.016,5.797,4.869,3.076,1.804,1.222,1.731,1.936,2.581,2.902,4.399,1.156,1.433,0.304,2.453,6.156,3.991,4.737,3.982,1.47,2.585,3.561,3.394,3.619,4.267,3.701,2.556,2.805,2.113,2.595,1.322,1.269,1.957,2.0,2.044,0.588,1.342,2.801,3.64,4.236,5.527,3.9,8.167,3.354,3.531,3.553,3.275,3.063,2.967,5.732,3.515,3.259,4.323,2.335,1.172,1.787,1.022,1.036,2.927,2.55,4.341,2.992,6.09,13.689,5.483,7.373,2.709,3.244,2.829,3.765,3.48,3.212,3.075,4.166,6.521,4.422,7.753,6.963,3.91,4.728,4.144,4.253,6.56,3.42,4.768,4.373,6.668,6.728,4.267,18.609,3.895,2.521,2.693,4.851,5.358,3.455,3.257,3.239,5.56,2.665,2.41,2.795,2.937,5.026,3.8,3.375,4.618,3.346,4.158,3.193,12.945,6.053,4.115,3.821,4.136,3.405,1.765,1.666,1.324,1.281,1.508,1.598,1.704,3.256,3.393,6.625,5.466,3.408,4.853,5.892,7.011,7.572,8.005,8.103,7.465,6.173,5.594,5.38,5.503],"emission_kg":[0.575,1.151,1.685,2.206,2.736,3.403,4.545,5.603,9.833,11.772,12.988,15.276,16.851,18.349,20.147,22.793,24.757,25.964,27.771,29.96,32.756,35.175,37.394,39.748,41.001,41.857,42.539,43.206,44.088,45.038,45.992,46.544,47.838,48.448,49.542,51.213,55.321,58.463,61.209,64.32,67.645,70.267,73.291,75.347,78.141,80.547,82.929,84.42,85.517,86.343,87.252,87.781,88.503,88.997,89.696,90.868,92.654,93.437,94.358,95.418,96.189,100.33,101.297,103.851,106.913,109.155,111.76,113.455,114.907,116.935,117.786,118.586,119.247,119.874,120.781,121.749,122.505,123.818,125.521,126.449,127.958,128.671,129.625,130.156,131.077,131.536,132.158,132.262,132.472,133.024,134.754,136.403,138.111,139.586,141.047,142.239,143.524,144.71,145.776,146.823,148.188,149.034,150.132,152.1,152.901,153.246,153.693,154.502,155.5,156.31,157.546,158.284,159.259,161.368,164.278,167.778,170.013,171.369,172.275,173.324,174.708,175.834,177.039,178.162,179.22,180.512,185.114,186.479,187.882,190.093,191.384,192.007,192.952,193.827,195.237,195.806,196.494,197.505,199.07,201.256,207.12,208.956,210.176,211.253,212.281,213.855,215.162,216.066,217.175,218.29,220.66,221.884,223.709,224.622,225.173,227.224,229.243,230.9,232.555,232.942,233.643,235.057,237.653,239.425,241.461,242.926,243.82,244.574,245.378,246.49,247.341,248.151,248.989,250.972,252.206,253.098,254.302,254.695,255.029,255.624,256.098,256.885,257.94,258.447,259.075,260.082,262.349,264.787,267.041,268.711,270.14,271.086,271.966,272.653,273.208,273.727,274.24,274.783,275.809,276.554,278.171,278.838,279.497,280.717,282.114,286.542,289.443,292.086,294.413,297.118,300.135,302.324,303.931,305.496,307.271,308.357,309.213,309.978,310.513,311.104,311.654,312.687,313.1,313.672,314.171,314.625,315.185,315.698,316.805,321.861,323.134,325.162,330.234,333.328,336.81,339.684,341.302,342.561,343.84,344.954,346.034,347.102,348.283,349.212,350.304,351.431,354.237,355.597,357.697,359.327,360.328,361.027,361.898,363.009,366.454,368.295,370.383,372.287,375.094,376.979,378.652,383.251,384.36,385.835,386.922,387.861,388.924,390.159,391.381,392.65,393.98,394.795,395.429,396.635,397.465,398.618,399.546,401.357,403.184,405.102,409.153,411.46,414.598,418.603,422.302,425.796,430.582,432.084,432.979,433.792,434.963,435.971,437.193,438.484,440.457,441.352,442.146,442.661,443.321,443.951,444.65,445.676,447.142,448.302,449.615,450.508,452.755,455.574,457.928,460.103,462.941,464.065,465.199,466.768,468.16,469.317,470.369,471.502,472.863,475.263,476.62,477.177,477.795,478.293,479.84,481.007,481.679,482.113,482.71,483.839,486.239,488.931,491.783,493.633,495.233,497.018,498.538,500.001,501.192,502.266,503.761,504.629,505.597,507.353,509.694,511.693,513.062,514.444,515.551,516.56,518.507,519.484,520.671,522.582,525.397,527.664,529.84,532.559,533.949,535.95,536.943,537.937,538.739,539.457,540.114,540.795,541.563,543.166,544.052,545.077,545.957,546.846,549.889,551.023,552.679,554.261,557.156,559.481,561.476,563.507,565.882,567.455,568.281,569.12,570.005,570.845,571.479,572.057,572.75,572.75,572.75,572.75,572.75,572.75,572.75,572.75,572.75,572.75,572.75,572.75,572.75,572.75,572.75,572.75,574.811,577.035,578.903,580.011,581.53,582.945,584.628,586.179,587.649,590.659,593.39,594.681,595.875,597.588,599.11,600.137,602.289,606.154,608.178,609.271,610.313,610.951,612.56,615.116,616.698,619.493,620.955,622.549,624.099,625.624,626.993,628.532,629.439,630.315,631.795,634.612,636.955,639.01,639.91,640.454,641.83,643.609,646.191,646.657,647.066,647.46,648.918,650.578,652.211,653.615,654.522,655.912,657.578,659.503,660.751,662.003,663.705,665.899,666.904,668.539,669.993,670.824,671.572,673.254,674.618,675.118,675.708,675.957,676.799,677.963,679.615,681.311,683.412,686.186,688.373,690.599,691.789,692.799,693.72,695.912,697.641,699.183,700.891,703.031,703.889,704.469,705.05,706.792,707.997,709.334,711.128,712.283,713.828,715.372,719.603,721.483,723.235,725.283,727.439,729.18,730.798,732.464,733.755,734.935,735.758,737.265,740.749,743.007,745.483,746.797,747.645,749.681,751.199,752.295,754.206,756.394,758.232,759.805,762.486,765.386,767.56,769.727,771.255,772.465,773.419,774.091,774.666,775.28,775.785,776.27,777.054,778.781,780.535,784.832,788.23,789.456,791.796,793.657,797.307,803.145,806.481,809.492,813.129,815.898,818.23,820.22,821.519,822.555,823.387,824.27,824.855,825.381,826.0,826.692,827.209,828.903,830.085,830.82,832.425,833.156,836.378,839.369,840.829,842.838,847.371,850.786,854.175,856.439,858.587,860.619,862.751,863.894,865.034,865.97,866.81,867.68,868.915,871.508,873.819,875.365,876.267,877.045,877.895,878.861,880.149,881.602,883.816,884.524,885.246,885.614,886.84,889.894,891.866,894.214,896.155,896.854,897.974,899.446,900.782,902.196,903.873,905.378,906.454,907.674,908.616,909.736,910.313,910.897,912.022,912.97,913.947,914.236,914.877,916.212,917.947,919.968,922.633,924.512,928.307,929.789,931.253,932.651,933.911,935.08,936.202,938.422,939.844,941.217,943.044,944.077,944.691,945.588,946.398,947.172,948.609,949.866,952.017,953.505,956.527,963.303,966.023,969.655,970.93,972.375,973.542,975.05,976.379,977.571,978.731,980.373,983.11,985.093,988.71,991.843,993.699,995.947,997.95,1000.023,1003.198,1004.83,1007.075,1009.111,1012.184,1015.274,1017.242,1025.848,1027.583,1028.649,1029.743,1031.521,1033.431,1034.646,1035.802,1036.984,1039.098,1040.139,1041.065,1042.127,1043.315,1045.456,1047.13,1048.652,1050.771,1052.313,1054.221,1055.682,1061.591,1064.296,1066.127,1067.831,1069.662,1071.186,1071.982,1072.75,1073.361,1073.957,1074.649,1075.39,1076.169,1077.626,1079.087,1081.704,1083.874,1085.298,1087.394,1090.035,1093.29,1096.84,1100.601,1104.402,1107.875,1110.751,1113.382,1115.87,1118.339],"kpi":{"all_time_peak_average":0.941216,"annual_normalized_unserved_energy_total":0.019148,"carbon_emissions_total":0.964845,"cost_total":0.924545,"daily_one_minus_load_factor_average":0.956573,"daily_peak_average":0.918181,"discomfort_cold_delta_average":0.540431,"discomfort_cold_delta_maximum":3.290486,"discomfort_cold_delta_minimum":0.0,"discomfort_cold_proportion":0.075855,"discomfort_hot_delta_average":0.26335,"discomfort_hot_delta_maximum":5.160054,"discomfort_hot_delta_minimum":0.0,"discomfort_hot_proportion":0.018095,"discomfort_proportion":0.093951,"electricity_consumption_total":0.974389,"monthly_one_minus_load_factor_average":0.993772,"one_minus_thermal_resilience_proportion":0.369841,"power_outage_normalized_unserved_energy_total":0.684409,"ramping_average":0.986369,"zero_net_energy":0.974457},"run":"citylearn_challenge_2023_phase_2_local_evaluation_agent_citylearn_20261023T135430Z","steps":719},"agent_run":{"budget_stopped":false,"budget_usd":2.0,"calls":719,"clamped_hours":27,"cost_usd":0.4607,"envelope":{"battery_rate_per_step":0.5,"comfort_band_k":2.0,"comfort_margin_k":0.5,"cooling_max":1.0,"cooling_max_deviation":0.15,"cooling_min":0.0,"cooling_rate_per_step":0.35,"dhw_rate_per_step":0.5,"overcool_guard_unoccupied":true,"peak_forecast_days":2,"peak_limit":true,"peak_target_fraction":1.0,"soc_max":0.95,"soc_min":0.1,"spread_check":true,"storage_max":1.0,"storage_min":-1.0,"trim_hold":true,"trim_hold_c":0.5,"trim_min_depth":0.002,"trim_release_step":0.02},"fallback_hours":0,"model_id":"claude-haiku-5-5","model_key":"haiku","supervisor":"live","trim_ends_early":0},"agent_sample":false,"baseline":{"buildings":{"Building_1":{"battery_soc":[0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2],"dhw_soc":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],"grid_kwh":[0.678,0.846,0.725,0.633,0.607,1.001,1.608,0.534,4.653,0.483,-0.357,1.817,0.266,0.219,0.945,2.824,3.039,2.14,1.419,2.336,3.167,1.823,1.303,2.042,1.886,1.125,0.744,0.671,1.713,1.752,1.766,0.572,-0.245,-0.069,0.819,1.462,6.669,4.144,2.167,2.167,3.119,2.733,3.531,2.36,3.981,2.93,3.446,2.771,1.996,1.597,1.345,1.167,1.085,1.056,0.979,1.281,1.827,-0.118,-0.286,-0.743,-0.767,-0.321,-0.061,2.823,3.203,2.159,1.652,1.282,0.964,1.54,0.677,1.02,0.69,0.649,0.566,0.452,0.405,1.394,0.36,0.824,0.441,0.178,0.139,0.075,0.006,0.084,-0.175,-0.312,0.37,2.084,1.383,1.363,1.519,1.005,1.032,1.204,0.834,0.908,0.841,0.74,1.702,0.649,1.501,2.044,0.892,0.065,-0.434,-0.302,-0.145,0.399,0.651,1.341,1.712,3.301,2.332,2.04,1.413,1.158,1.266,1.144,0.775,0.658,1.104,1.109,0.93,1.45,5.714,0.799,0.646,5.824,0.119,-0.412,-0.309,-0.341,0.568,-0.373,0.001,3.061,1.979,2.83,8.927,2.165,1.511,1.13,1.289,1.736,1.238,0.991,0.848,0.767,1.873,0.998,2.518,0.266,0.062,5.66,1.286,1.119,1.178,0.97,0.791,2.262,1.689,1.153,2.04,0.959,0.651,0.561,0.49,0.432,0.383,0.35,0.349,3.199,0.452,0.203,1.584,-0.29,-0.446,-0.411,-0.314,0.182,0.323,0.609,0.97,1.585,1.969,1.98,1.566,1.143,0.818,0.682,1.003,0.589,0.549,0.517,0.491,0.446,1.379,0.385,2.23,0.199,0.068,0.72,1.2,1.804,2.687,2.771,2.189,2.53,2.226,2.274,1.659,1.535,1.25,1.57,1.246,1.262,1.367,0.988,0.878,2.232,0.811,0.668,0.35,-0.269,-0.223,-0.154,0.455,0.885,1.278,1.827,5.826,2.385,3.597,2.451,2.338,1.022,1.687,1.019,1.279,1.568,1.391,1.191,1.042,0.981,0.954,1.91,1.899,0.785,0.426,0.228,0.271,0.751,8.035,2.459,2.762,2.716,2.511,1.773,1.42,1.134,0.999,1.867,1.17,1.283,1.227,1.083,0.976,0.919,0.912,0.799,-0.092,-0.027,0.777,1.121,0.266,0.716,1.03,3.647,8.064,3.658,3.461,2.842,2.439,1.622,1.303,1.625,1.095,1.156,1.108,0.973,0.882,0.84,0.823,0.656,0.496,-0.416,-0.483,-0.313,-0.121,0.188,0.744,2.478,3.105,2.534,2.482,3.192,2.715,1.592,1.289,1.509,1.228,1.478,1.224,0.987,0.851,0.773,1.287,3.362,0.391,-0.307,-0.371,-0.205,1.991,1.839,-0.232,0.265,0.758,1.208,2.194,2.594,2.069,1.662,1.447,1.026,1.21,1.481,1.253,1.038,2.151,0.886,0.84,0.753,1.616,-0.171,-0.16,-0.111,0.282,0.224,2.107,1.77,1.998,3.705,2.641,2.159,1.815,3.686,1.274,0.984,1.183,1.504,1.333,1.125,0.968,0.901,0.91,2.903,0.721,0.62,0.328,0.068,4.92,0.98,1.011,0.264,3.799,3.082,1.976,1.843,2.38,1.544,0.885,0.661,0.591,0.537,0.496,0.46,0.429,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.341,1.27,1.438,1.167,1.319,1.597,1.361,1.153,1.011,3.963,1.66,0.809,0.571,0.041,0.632,0.17,0.622,4.299,0.693,1.403,1.806,2.239,2.031,4.027,1.332,4.166,1.122,0.797,0.979,1.289,1.158,1.903,0.884,0.82,0.787,0.652,0.721,1.083,0.014,-0.078,0.686,0.25,0.981,0.693,0.785,0.992,1.271,2.112,1.4,1.165,0.914,0.824,0.827,2.287,1.079,0.924,1.733,2.043,0.857,2.248,1.565,-0.023,-0.235,0.481,-0.126,-0.062,0.121,0.666,1.976,1.994,0.888,1.214,1.11,1.902,1.166,2.755,1.131,1.116,1.039,0.9,1.23,0.752,0.722,0.544,0.213,-0.372,-0.313,1.116,0.465,0.497,1.233,1.444,2.514,2.845,5.034,2.238,1.363,2.117,1.214,0.877,1.089,1.408,1.226,1.032,0.88,2.685,1.355,0.84,0.944,-0.187,0.317,2.427,1.013,0.481,0.986,2.991,3.158,2.811,2.549,2.184,2.534,1.661,1.244,1.04,1.197,0.785,0.677,0.633,0.606,0.579,1.018,0.96,1.038,1.937,6.549,0.489,1.75,1.634,4.402,8.38,2.747,2.775,2.818,2.972,2.443,1.928,1.857,1.732,1.079,1.169,0.69,0.608,0.884,1.063,1.069,0.909,0.01,-0.139,0.892,0.124,7.091,3.778,0.137,1.484,3.241,3.902,2.334,2.013,1.9,1.763,3.035,0.973,1.13,1.417,0.981,0.892,1.095,4.255,2.278,2.019,0.635,-0.163,0.882,-0.051,0.116,0.547,1.941,1.163,1.806,1.093,0.844,3.574,1.744,2.639,2.274,0.928,1.121,1.464,1.309,1.549,2.185,1.682,1.743,1.495,0.39,-0.05,0.108,0.011,0.15,0.716,0.798,1.338,1.966,2.61,1.711,1.991,2.574,1.412,1.201,1.514,1.213,1.31,1.214,1.003,0.926,0.874,0.908,1.117,0.402,-0.219,-0.236,-0.115,-0.644,-0.548,0.954,2.208,3.8,2.127,1.98,2.977,2.506,5.466,1.424,1.916,1.306,1.381,1.271,1.092,0.961,1.979,3.683,2.124,0.769,-0.199,-0.153,2.156,0.873,0.736,3.454,2.032,3.027,2.922,2.843,4.405,2.218,8.411,1.397,1.116,1.28,1.62,3.058,1.286,1.085,1.004,1.852,1.138,0.765,1.284,0.69,1.379,1.5,0.84,1.08,1.649,3.27,3.253,2.696,2.846,2.022,2.601,3.008,1.972,0.991,0.736,0.55,0.552,0.567,0.586,0.613,2.044,1.644,3.571,3.406,1.136,1.332,1.962,2.818,2.816,3.383,3.406,2.488,2.608,2.603,2.726,1.306],"indoor_c":[23.1,22.23,22.22,22.22,22.22,22.22,22.22,22.33,22.77,23.27,24.41,24.44,24.66,24.6,24.34,23.33,22.29,23.64,25.28,24.14,20.64,22.33,22.2,19.53,19.22,20.14,21.16,21.58,21.71,21.76,21.9,22.21,23.79,24.19,24.27,24.25,23.54,23.35,23.15,22.93,22.99,22.29,22.35,22.63,22.06,20.25,18.2,17.59,17.46,17.51,17.65,17.79,18.04,18.13,18.44,18.59,18.56,20.71,21.5,22.96,23.44,23.74,23.72,22.23,20.12,20.13,21.89,22.52,23.0,20.89,22.58,23.02,22.51,22.65,22.93,23.37,23.75,23.96,24.27,23.2,23.56,23.64,24.86,24.07,24.29,25.23,24.97,25.47,24.52,23.58,23.53,23.56,23.55,23.65,23.76,21.56,22.35,21.61,21.68,21.78,21.47,21.93,21.67,21.38,21.87,22.57,23.24,23.89,24.12,23.98,23.68,23.14,22.78,22.29,22.44,22.58,22.79,22.94,23.07,23.18,23.32,23.54,21.49,21.32,21.46,21.65,21.21,21.59,21.82,20.68,22.27,23.42,23.79,24.49,24.34,26.05,26.65,25.5,25.71,24.52,24.03,23.16,23.15,23.37,22.4,21.27,21.29,21.49,21.77,22.04,21.72,22.17,21.75,22.53,23.09,23.28,23.51,23.4,23.21,24.0,25.66,25.96,26.23,26.3,25.78,26.12,26.43,26.71,26.93,27.22,27.53,27.84,28.04,26.6,27.52,28.11,27.36,27.9,27.97,27.88,27.73,27.35,27.01,26.64,26.32,26.01,26.06,26.05,26.08,26.18,26.32,26.5,26.37,26.54,26.63,26.71,26.79,27.0,26.91,27.05,25.78,26.02,25.81,25.44,25.07,24.61,24.11,23.32,23.17,22.65,22.64,22.64,22.69,22.67,22.67,20.95,21.2,20.46,20.43,20.53,20.71,20.78,21.05,21.32,21.67,23.0,23.06,23.21,22.98,22.72,22.5,22.27,23.27,21.93,21.6,21.78,21.99,23.38,22.63,22.48,21.35,20.19,20.17,20.3,20.52,20.57,20.73,20.62,20.23,21.08,21.71,22.3,22.33,22.16,20.54,19.95,20.43,20.7,21.17,21.46,21.73,21.96,22.18,20.54,20.92,20.14,20.16,20.35,20.6,20.78,20.94,21.13,22.84,22.95,23.03,22.59,22.53,22.27,22.06,21.58,20.99,20.92,21.06,21.25,21.23,21.7,21.93,19.91,20.84,20.15,20.23,20.44,20.71,20.95,21.15,21.29,21.26,23.1,23.51,23.71,23.6,23.38,22.99,22.53,22.16,21.82,21.93,21.9,21.75,22.01,22.22,22.41,21.49,20.35,20.42,20.67,20.96,21.26,21.52,21.51,22.1,23.5,23.81,23.87,24.66,25.34,25.84,25.85,25.65,25.32,24.02,22.96,22.82,22.88,23.05,23.24,22.31,21.05,21.04,21.2,20.93,21.43,21.61,21.84,21.73,23.32,23.55,23.77,23.65,24.25,23.01,22.64,22.34,21.84,21.92,22.09,22.3,21.57,22.18,22.51,21.69,20.44,20.42,20.55,20.78,20.98,21.26,20.6,21.47,22.9,23.09,23.38,21.29,22.35,22.9,24.51,24.56,24.06,24.45,24.67,24.37,24.79,25.08,25.32,25.47,25.62,25.78,25.95,26.13,26.52,26.62,26.86,26.91,26.86,26.73,25.93,25.96,26.25,26.8,27.36,28.05,28.68,29.45,29.91,28.54,26.84,25.3,24.9,23.62,22.06,21.89,21.86,21.93,20.97,21.31,21.49,21.96,23.28,23.38,23.48,23.31,23.83,23.23,22.39,22.11,21.68,20.93,20.24,21.54,20.58,21.51,21.87,21.04,19.88,19.96,20.08,20.29,20.46,20.69,20.82,21.34,22.5,22.89,23.1,23.02,23.48,23.27,23.23,23.28,23.32,23.4,23.36,23.38,23.38,23.44,23.51,22.53,21.06,21.06,21.2,21.01,21.22,21.56,20.93,21.01,22.81,23.42,23.57,23.71,23.68,23.4,22.35,22.23,22.87,23.33,23.54,23.62,23.59,23.65,22.62,22.34,21.22,21.16,21.33,21.52,21.68,21.85,22.08,22.59,23.98,24.09,23.9,23.67,23.56,23.42,22.93,21.13,20.92,21.34,21.85,22.18,22.3,22.49,22.66,21.73,20.46,20.48,20.65,20.93,20.41,20.93,21.3,21.79,23.17,23.46,22.63,22.98,23.52,23.36,21.23,20.93,21.06,21.32,21.5,21.67,21.87,22.09,22.28,21.49,22.33,22.67,22.92,23.11,23.33,23.5,22.38,21.82,22.29,22.49,22.82,22.24,22.28,21.8,21.08,20.93,20.61,20.34,20.53,21.16,21.49,19.42,19.21,20.14,19.59,20.9,21.43,20.59,20.14,20.26,20.34,22.17,22.36,22.42,22.47,21.65,22.26,23.68,21.91,20.06,20.12,20.63,20.81,20.65,20.89,20.55,21.24,20.48,19.56,20.43,20.62,20.03,19.59,19.38,19.7,20.32,21.85,21.94,22.11,21.98,21.8,21.44,21.26,21.13,22.02,23.34,21.27,21.49,21.09,21.51,21.8,20.98,19.78,19.85,19.96,19.75,19.96,20.19,20.39,20.96,22.35,22.4,22.57,22.22,22.05,21.89,21.32,20.81,21.03,21.97,21.68,21.63,21.77,21.91,20.46,20.85,20.03,20.04,20.24,20.49,20.72,20.89,20.99,21.37,22.79,23.07,23.27,24.88,25.59,24.33,22.6,21.87,23.34,23.75,20.79,21.59,21.56,21.9,19.95,20.79,20.01,20.09,20.27,20.55,20.65,20.07,20.54,20.62,22.52,22.92,20.17,21.77,22.12,21.39,21.3,21.0,20.78,20.88,20.3,20.8,20.61,21.01,21.3,20.5,19.36,18.87,19.35,19.71,20.04,20.06,20.34,20.75,21.66,20.86,21.64,19.93,21.48,21.53,21.34,20.87,21.92,22.87,21.36,21.34,19.3,18.14,18.36,19.84,20.77,21.73,22.08,22.33,22.51,22.73,22.15,22.49,21.45,21.22,21.47,21.4,21.16,20.79,20.34,19.9,19.57,20.24,20.04,20.14,20.23,20.52]},"Building_2":{"battery_soc":[0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2],"dhw_soc":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],"grid_kwh":[0.187,0.186,0.185,0.187,0.202,0.231,0.248,0.345,2.934,0.672,0.633,0.669,0.97,0.787,1.197,2.665,1.802,1.708,1.202,1.013,1.561,1.204,0.913,0.323,0.212,0.379,0.46,0.201,0.202,0.231,0.243,0.245,2.33,0.564,1.008,1.188,1.013,1.471,1.827,2.989,1.635,1.344,1.37,0.795,0.66,0.629,0.641,0.483,0.374,0.313,0.274,0.251,0.247,0.262,0.256,0.358,0.371,0.5,0.455,1.85,0.977,0.827,0.738,0.363,0.47,0.676,0.656,0.581,0.607,0.85,0.532,0.268,0.202,0.232,0.416,0.352,0.202,0.231,0.254,0.361,0.365,0.437,0.441,0.449,0.404,0.336,0.454,0.428,0.723,1.826,0.673,0.718,0.518,0.511,0.503,0.58,0.518,0.23,0.185,0.187,0.202,0.231,0.241,1.601,0.461,0.556,0.868,1.536,1.003,0.964,1.034,1.16,1.171,1.317,1.129,0.737,0.781,0.715,0.584,0.374,0.514,0.278,0.185,0.187,0.202,0.231,0.298,0.426,0.569,0.516,0.582,0.598,1.149,0.966,0.734,0.822,0.925,1.038,1.108,0.679,0.552,0.488,0.412,0.7,0.563,0.186,0.185,0.187,0.202,0.231,1.118,0.35,0.594,1.127,0.674,0.467,0.628,0.712,0.926,1.0,1.022,1.022,0.857,0.653,0.745,0.511,0.528,0.67,0.764,0.686,0.185,0.187,0.202,0.231,0.24,0.971,0.4,0.494,0.514,0.822,0.672,0.699,0.885,0.926,0.955,1.009,0.942,0.855,0.746,0.725,0.619,0.373,0.307,0.389,0.234,0.217,0.218,0.236,0.332,0.536,0.653,0.738,0.704,0.896,0.874,1.035,1.117,1.233,1.168,1.161,1.067,0.811,0.711,0.665,1.343,0.341,0.295,0.257,0.23,0.215,0.219,0.24,0.318,0.415,0.602,0.865,0.886,0.916,1.168,9.8,1.415,1.521,1.533,1.541,1.605,1.062,0.854,0.539,0.654,0.746,0.36,0.205,0.227,0.235,0.25,0.275,0.345,0.705,2.349,0.969,1.006,0.935,0.907,1.331,1.137,1.166,1.158,1.182,1.092,0.82,0.642,0.518,0.525,0.6,0.753,0.396,0.185,0.187,0.214,0.249,0.358,0.482,0.759,1.709,0.658,0.777,1.085,1.057,1.105,1.215,1.205,1.706,1.345,0.994,0.857,0.933,0.999,0.492,0.207,0.225,0.471,0.223,0.232,0.254,0.353,0.554,0.544,0.592,0.517,0.843,0.679,0.668,1.592,1.638,0.706,0.994,1.2,0.983,1.252,0.897,1.846,0.524,0.596,0.664,0.198,0.187,0.202,0.231,0.414,0.589,2.082,0.685,1.01,0.714,0.885,0.797,0.929,1.012,1.021,2.391,1.077,1.195,0.806,0.751,0.616,0.448,0.681,0.483,0.185,0.187,0.206,0.24,0.452,0.622,6.144,3.19,1.807,1.768,0.757,0.853,1.282,1.227,1.225,1.287,1.232,0.937,0.991,1.101,0.608,0.452,0.497,0.485,0.198,0.221,0.215,0.266,0.444,0.613,0.758,0.985,0.842,0.941,1.124,1.163,2.019,1.939,1.246,1.269,1.286,1.051,0.856,1.04,0.466,0.394,0.568,0.607,0.231,0.198,0.447,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.653,1.154,0.459,0.385,0.638,0.576,0.185,0.192,0.22,0.253,2.199,0.708,0.975,2.712,0.878,0.926,2.237,1.089,1.578,1.481,1.102,0.808,0.802,0.705,0.748,0.601,0.35,0.435,0.696,0.387,0.185,0.187,0.202,0.231,0.278,6.647,1.482,1.563,0.569,0.533,0.915,2.424,6.174,0.663,0.577,0.416,0.357,0.305,0.443,0.45,0.233,0.306,0.613,0.287,0.185,0.187,0.202,0.231,0.252,0.309,0.462,0.816,0.836,2.079,2.033,0.354,0.376,0.551,0.778,0.395,0.796,0.526,0.613,0.496,0.507,0.597,0.66,0.291,0.185,0.187,0.202,0.231,0.266,0.373,0.466,0.572,0.602,0.747,0.823,0.831,1.042,1.565,1.265,0.827,2.076,0.823,0.744,0.702,0.569,0.479,0.63,0.658,0.185,0.187,0.202,0.231,0.359,2.37,0.984,1.299,0.681,0.976,1.447,1.103,1.875,1.984,0.872,1.098,1.164,0.918,0.71,0.814,0.966,1.008,0.385,0.192,0.215,0.457,0.231,0.255,0.368,1.009,3.283,9.608,1.758,1.698,1.542,0.953,1.274,1.445,1.453,1.458,1.829,1.082,1.002,0.906,0.481,0.89,0.818,0.442,0.202,0.216,0.241,0.269,0.389,1.799,1.068,0.766,2.297,0.715,1.178,1.8,1.831,1.158,2.944,1.33,2.405,1.014,1.124,0.708,0.401,0.798,0.713,0.186,0.188,0.216,0.248,0.28,1.013,0.752,0.762,0.72,0.811,0.904,1.367,0.896,1.48,1.583,1.483,0.616,0.58,0.718,0.739,0.65,0.492,0.441,0.33,0.245,0.249,0.247,0.257,0.279,0.369,0.475,0.589,0.698,0.664,0.687,0.862,0.821,0.952,1.007,1.017,1.095,1.025,0.991,0.888,0.851,5.033,0.691,0.413,0.351,0.226,0.232,0.241,0.267,0.467,0.748,1.804,0.926,0.907,1.525,0.928,1.054,1.164,1.302,1.39,1.489,3.266,1.215,1.019,0.949,0.94,0.648,0.664,0.402,0.288,0.242,0.258,0.281,0.447,0.621,1.257,0.909,0.89,0.963,1.7,1.222,1.457,1.592,1.718,1.883,1.726,1.224,1.008,1.208,1.098,1.366,0.579,1.241,0.361,0.264,0.277,0.302,1.734,0.617,1.13,1.053,1.231,1.078,1.197,1.483,2.018,1.833,1.453,1.494,1.359,1.588,0.999,0.877,0.552,0.461,0.59,0.574,0.272,0.26,0.273,0.307,0.395,0.539,0.89,1.092,1.14,1.29,1.624,1.632,1.964,2.077,1.855,1.711,1.995,1.325,0.959,0.855,0.502],"indoor_c":[24.28,24.26,24.21,24.12,24.0,23.89,24.2,24.85,24.99,25.0,25.0,25.0,25.46,25.66,25.65,25.87,26.17,26.25,26.3,26.46,25.57,24.73,23.96,25.42,25.97,24.94,24.06,25.36,26.0,26.02,26.45,26.83,24.44,25.53,25.77,25.61,25.97,25.28,25.2,24.87,25.92,25.96,26.25,26.48,26.48,26.37,25.84,25.91,25.88,26.1,26.35,26.61,26.81,26.86,27.27,27.58,27.69,27.64,27.39,26.93,26.67,25.39,25.48,26.82,26.73,26.64,26.6,26.53,26.14,24.91,24.57,25.4,25.83,25.92,24.47,24.48,25.61,25.72,26.05,26.33,26.51,26.83,27.01,27.22,27.36,27.41,27.3,27.31,26.84,26.65,26.79,26.72,26.69,26.59,25.99,24.94,23.92,24.89,25.54,25.71,25.71,25.57,26.16,25.39,25.86,26.19,24.31,24.24,24.54,24.8,24.77,24.95,25.31,25.53,25.41,25.37,25.46,25.54,25.63,25.69,24.65,25.31,26.01,26.25,26.31,26.26,26.56,26.58,26.49,26.41,26.43,26.43,25.5,25.36,26.09,26.46,26.48,26.49,26.7,26.57,26.52,26.53,26.55,24.62,24.5,26.02,26.5,26.69,26.68,26.53,25.74,26.24,25.59,23.71,25.57,25.9,25.91,25.95,25.77,26.04,26.16,26.28,26.4,26.27,26.32,26.28,25.78,24.44,23.08,22.38,24.39,25.61,25.73,25.56,25.64,25.4,25.59,25.66,25.72,25.59,25.69,25.92,25.83,26.05,26.13,26.21,26.25,26.25,26.18,26.07,25.98,26.05,25.99,26.06,26.17,26.29,26.34,26.28,26.39,26.37,26.24,26.24,26.29,26.3,26.31,26.34,26.08,26.14,26.12,26.09,26.09,26.04,25.95,25.88,24.94,25.57,25.44,25.57,25.72,25.89,26.01,26.04,26.2,26.23,26.01,25.87,25.78,25.72,25.68,25.03,25.26,25.32,25.29,25.26,25.24,25.31,25.42,25.55,24.72,23.83,24.74,25.71,26.0,26.26,26.46,26.57,26.72,25.32,23.35,24.33,23.86,24.38,24.96,25.06,25.03,25.26,25.36,25.41,25.43,25.4,25.48,25.55,25.19,24.45,23.3,24.08,25.32,25.86,26.18,26.35,26.5,26.43,26.17,25.08,25.49,25.47,25.5,25.51,25.36,25.48,25.56,25.5,25.68,25.61,25.57,25.42,24.05,24.56,25.73,25.78,25.83,25.92,26.0,26.03,26.21,26.21,25.93,25.89,25.91,25.88,25.89,25.97,24.06,24.05,25.79,25.8,26.01,25.85,25.67,25.52,24.79,24.96,24.22,23.81,25.18,25.81,25.98,25.92,26.09,26.1,24.47,25.22,25.43,25.49,25.53,25.71,25.6,25.72,25.75,24.46,25.32,25.22,25.39,25.44,25.5,25.34,23.8,24.0,25.46,25.97,26.12,26.04,26.09,26.06,25.49,23.98,23.72,25.07,25.62,25.5,25.3,25.38,25.39,25.37,25.36,25.32,25.15,24.31,24.66,24.97,24.45,24.83,25.86,26.11,26.23,26.15,26.18,26.06,25.92,25.77,25.78,25.69,25.59,25.54,24.04,23.65,24.75,25.05,25.01,25.09,25.24,25.35,25.47,25.51,24.26,23.66,25.03,25.83,25.73,26.01,26.34,26.5,26.54,26.63,26.69,27.01,27.39,27.91,28.54,29.11,29.67,30.24,30.89,31.44,28.82,28.24,27.48,27.07,24.65,24.27,25.84,26.45,26.7,26.79,24.32,24.53,24.23,23.62,24.97,25.35,24.23,24.91,23.86,24.08,24.85,24.82,24.89,25.04,25.09,25.12,25.19,24.55,22.96,23.6,24.76,25.19,25.48,25.64,25.73,25.55,25.62,25.76,25.74,25.8,25.9,25.69,25.37,25.71,25.93,25.99,26.04,25.96,25.84,25.74,25.72,25.14,23.86,24.42,25.2,25.48,25.62,25.64,25.78,25.81,25.85,24.5,24.07,25.43,25.78,25.88,25.74,25.7,25.77,25.73,25.53,25.69,25.67,25.64,25.02,23.62,22.53,23.67,24.99,25.38,25.46,25.37,25.7,25.81,25.77,25.77,25.79,25.7,25.72,25.83,25.65,24.6,24.87,25.83,24.56,25.38,25.42,25.44,25.49,25.53,23.75,23.54,25.13,25.7,25.83,25.74,25.84,24.02,23.69,23.05,24.5,24.52,23.61,24.43,23.27,23.17,24.98,25.17,25.2,25.24,25.26,25.31,24.11,22.99,24.23,25.46,25.68,25.84,25.95,25.9,25.98,25.47,25.18,24.61,24.45,23.38,23.88,25.16,25.02,25.09,25.1,25.12,25.14,25.2,25.22,25.23,25.3,23.61,22.89,24.66,25.46,25.81,26.0,26.02,25.97,23.5,23.79,24.89,23.51,24.47,24.69,23.37,23.32,24.58,23.21,24.15,23.41,24.18,23.49,23.81,24.58,22.74,22.68,24.42,25.06,25.39,25.66,25.81,24.51,24.49,24.83,25.38,25.67,24.59,23.96,24.75,23.2,23.17,22.4,24.13,24.89,25.0,25.05,25.13,24.76,24.64,24.9,25.27,25.35,25.46,25.58,25.7,25.89,25.89,25.76,25.77,25.54,25.48,25.4,25.49,25.36,25.46,25.46,25.44,25.45,25.42,25.32,25.11,23.02,23.76,24.17,24.28,24.83,24.98,25.16,25.31,25.52,25.09,24.27,24.91,25.24,24.87,25.3,25.21,25.37,25.53,25.53,25.51,24.1,24.94,24.9,24.78,24.61,24.48,24.3,24.57,25.04,25.46,25.62,25.67,25.81,25.73,25.19,25.41,25.57,25.67,25.48,25.53,25.32,25.35,25.05,24.83,24.94,25.16,25.16,24.21,24.09,23.59,23.95,23.38,24.77,25.2,25.42,25.51,24.1,24.78,23.58,24.11,24.52,24.51,24.48,24.12,23.36,23.62,24.28,24.29,24.36,24.22,24.52,24.61,24.75,24.86,24.02,23.7,24.8,25.3,25.52,25.54,25.59,25.48,25.15,24.95,24.87,24.78,24.71,24.68,24.4,24.34,24.24,24.25,24.09,24.6,24.76,24.79,25.0]},"Building_3":{"battery_soc":[0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2],"dhw_soc":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],"grid_kwh":[0.563,0.473,0.446,0.433,0.435,0.5,1.033,0.884,2.187,2.132,1.284,0.969,0.731,0.829,0.891,1.994,1.803,1.649,1.968,1.807,1.774,2.584,2.719,2.948,0.809,0.645,0.577,1.238,0.461,0.608,0.55,0.63,0.852,0.872,0.804,0.82,0.798,0.894,1.726,2.027,3.019,2.253,2.421,2.045,1.615,1.693,1.107,0.639,0.589,0.559,0.535,0.519,0.525,0.572,0.535,0.508,1.347,0.915,1.691,0.415,0.565,8.096,1.113,1.721,2.25,1.528,2.802,1.989,1.722,1.679,0.726,0.479,0.478,0.484,0.476,0.472,0.47,0.56,2.248,0.742,2.124,0.749,1.171,0.453,1.069,0.202,0.114,0.249,0.422,0.807,1.332,1.114,1.238,1.352,1.374,0.742,0.579,0.514,0.494,0.481,0.47,0.528,0.458,0.391,0.2,0.105,-0.034,-0.076,0.858,0.495,0.575,0.952,1.225,2.137,2.804,4.356,2.4,0.973,1.143,0.754,0.656,0.592,0.549,0.497,0.492,0.553,8.204,0.944,1.117,1.147,0.941,0.355,0.469,0.49,0.703,1.24,1.54,1.379,1.715,1.358,3.324,1.408,0.834,0.723,0.65,0.917,0.898,0.844,0.592,0.578,1.476,1.06,0.654,0.397,0.281,0.361,1.26,0.871,0.725,0.775,1.628,2.323,3.137,2.229,1.836,1.845,0.891,0.745,0.649,0.586,0.541,0.511,0.48,0.548,1.358,0.745,0.446,0.313,0.188,0.172,0.237,0.744,0.988,1.193,1.485,2.414,2.149,2.623,2.755,2.023,1.66,1.034,0.69,0.636,0.587,0.564,0.555,0.599,0.603,0.761,0.631,0.536,0.658,0.987,0.845,6.452,2.388,1.682,1.651,2.174,3.312,2.328,1.708,1.719,1.421,0.741,0.662,0.605,0.565,0.54,0.528,0.589,0.579,0.544,0.447,0.423,0.577,0.319,0.859,0.703,1.045,1.614,4.011,2.641,2.393,2.863,1.419,2.082,0.97,0.84,0.97,0.92,0.844,0.561,0.48,0.601,4.874,0.917,0.805,1.241,0.534,0.411,0.792,0.886,0.994,1.375,1.684,1.595,2.146,2.303,2.388,9.131,1.259,1.141,0.599,0.637,0.684,0.661,0.657,0.714,0.617,0.536,0.625,0.764,0.382,0.507,0.561,1.241,0.84,1.134,1.53,2.179,2.146,4.945,4.652,5.853,9.45,1.516,0.881,0.593,0.569,0.552,0.551,0.606,1.792,0.574,0.528,0.44,0.794,0.37,0.42,0.379,0.663,1.167,1.71,1.728,1.96,2.549,1.729,2.494,2.664,1.286,0.673,0.622,0.58,0.552,0.526,0.591,0.613,0.785,0.418,0.334,0.219,0.282,0.305,0.403,0.493,1.076,1.46,1.527,1.917,3.356,3.53,1.587,1.556,1.479,0.664,0.62,0.585,0.563,0.54,0.598,0.768,2.533,1.353,0.967,0.685,0.618,0.552,0.556,0.874,1.251,1.729,2.102,2.715,2.296,2.326,1.591,1.314,3.385,0.757,0.647,0.614,0.592,0.586,0.63,0.647,0.638,0.83,1.126,1.079,1.134,1.553,1.127,1.493,1.787,2.459,1.761,2.065,2.472,2.609,1.864,1.226,0.811,0.724,0.666,0.628,0.6,0.587,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.082,1.939,1.791,0.631,1.084,0.593,0.579,0.568,0.567,0.622,0.91,0.988,0.719,0.858,1.673,0.796,0.874,0.753,0.931,1.151,1.215,1.42,1.489,1.38,1.647,1.299,0.812,0.841,0.575,0.563,0.551,0.543,0.542,0.602,2.226,0.732,1.068,0.706,0.581,0.492,1.007,0.706,0.793,0.803,0.736,0.665,1.249,0.949,1.561,1.361,0.834,0.804,1.27,0.776,0.521,0.512,0.495,1.692,0.73,0.558,0.78,0.769,0.578,0.617,0.514,0.572,0.573,0.484,0.834,1.975,1.368,1.391,2.159,3.745,2.419,0.82,0.525,0.513,0.509,1.815,0.524,0.609,0.866,2.932,0.886,0.497,0.475,1.125,0.698,0.725,0.948,1.168,1.311,1.565,1.591,1.445,1.725,1.611,1.096,0.889,0.661,0.613,0.586,0.565,0.548,0.634,8.641,0.92,2.622,1.322,0.42,0.601,0.535,0.613,1.087,1.637,1.918,2.038,2.217,3.475,2.241,2.363,1.288,0.808,0.73,0.677,0.633,0.6,0.586,0.637,0.651,2.323,0.863,0.977,0.917,1.189,2.025,1.51,2.116,2.496,2.828,2.111,3.038,1.88,1.644,1.545,1.298,0.852,0.8,0.748,0.706,0.676,0.671,0.709,0.656,0.81,0.955,1.02,1.012,0.971,1.19,1.186,1.281,1.755,4.027,2.367,2.992,2.196,1.889,2.179,1.534,0.929,0.814,0.737,0.699,0.581,0.597,0.64,0.957,0.922,1.024,0.869,0.572,1.043,0.856,0.72,0.808,0.95,1.266,1.62,1.983,2.28,1.924,1.448,1.216,0.673,0.636,0.615,0.598,0.585,0.589,0.671,0.643,0.594,0.97,1.857,0.499,0.541,1.542,1.496,1.311,1.227,1.175,2.316,1.937,1.67,2.065,1.637,2.575,1.149,1.905,0.655,0.598,0.591,0.562,3.354,0.9,0.883,1.806,1.471,0.414,0.377,0.737,0.53,0.752,1.076,1.373,2.043,2.442,10.08,2.374,2.07,1.379,1.041,0.858,0.744,0.683,0.64,0.618,0.668,1.154,1.676,5.556,7.639,2.401,0.942,1.24,2.053,1.408,1.747,2.14,2.081,2.099,2.959,2.074,10.153,2.433,1.072,0.834,0.753,0.701,0.667,0.656,0.695,0.737,1.006,0.775,0.831,0.864,3.518,1.473,1.025,1.503,1.906,1.666,2.159,10.01,2.211,1.709,1.576,1.716,1.589,0.8,0.74,0.7,0.671,0.668,0.705,0.696,0.673,0.861,1.962,0.921,0.982,1.897,2.298,2.228,2.679,2.766,2.987,2.982,2.241,2.032,1.8,3.695],"indoor_c":[24.43,24.44,24.44,24.44,24.36,24.29,24.11,23.35,23.33,23.33,23.33,23.33,23.1,22.81,22.46,22.34,22.04,22.87,23.26,23.79,24.0,24.11,23.58,22.63,23.22,23.65,23.94,24.63,24.94,24.62,25.03,25.49,25.27,24.87,24.59,24.34,24.15,23.93,23.58,22.75,22.0,22.52,23.01,22.36,22.28,22.31,23.47,24.18,24.53,24.77,24.94,25.04,25.13,25.24,25.45,25.24,24.82,24.88,24.05,24.03,23.92,23.18,22.87,22.56,22.75,22.98,22.65,22.64,22.65,22.64,23.08,24.05,24.34,24.52,24.7,24.84,24.99,25.13,24.6,24.98,24.54,24.86,24.95,24.8,24.61,24.45,24.35,24.38,24.33,24.2,24.37,24.41,23.81,23.21,23.21,23.62,23.96,24.02,24.11,24.21,24.38,24.93,25.4,25.63,25.63,25.46,25.2,24.96,24.8,24.81,24.51,24.3,24.06,23.53,23.72,22.49,23.03,23.43,23.67,23.92,24.22,24.28,24.39,24.57,24.8,24.89,24.81,24.94,24.06,23.63,23.38,22.96,22.71,22.44,22.19,22.1,21.86,22.84,23.45,23.61,22.9,23.46,23.8,24.09,24.36,24.2,24.13,24.15,24.45,24.74,25.09,25.16,25.23,25.15,24.88,24.63,24.25,24.03,23.79,23.51,23.23,22.87,22.9,22.99,23.3,23.47,23.85,24.14,24.28,24.45,24.54,24.66,24.88,25.01,24.93,25.17,25.12,24.94,24.81,24.5,24.21,23.54,23.19,22.98,22.59,21.6,21.76,21.98,22.09,22.51,23.09,23.36,23.57,23.75,23.91,23.98,24.05,24.18,24.41,24.61,24.67,24.68,24.53,24.32,24.17,23.39,23.31,23.13,23.1,22.88,22.39,22.88,23.1,23.31,23.48,23.74,23.92,24.1,24.23,24.31,24.43,24.52,24.78,24.99,25.08,25.0,24.79,24.46,24.06,23.7,23.44,22.64,21.61,21.35,21.26,21.09,21.58,21.83,22.25,22.52,22.04,21.96,22.03,23.0,23.85,24.12,22.85,23.36,23.67,23.64,23.53,23.34,22.73,22.44,22.34,22.39,22.06,22.66,22.55,21.92,21.9,21.47,22.29,23.24,23.65,23.6,23.47,23.58,23.7,23.87,24.39,24.8,24.3,24.0,23.62,23.4,23.28,22.99,22.69,22.48,22.48,22.73,23.13,22.62,22.0,20.79,20.81,22.4,23.01,23.27,23.52,23.78,24.06,24.34,24.27,24.45,23.95,23.57,23.33,23.18,22.99,22.77,22.55,22.55,22.45,22.5,22.49,22.54,22.77,22.38,22.24,23.26,23.66,23.82,23.95,24.12,24.37,24.58,24.99,25.27,25.22,24.89,24.52,24.24,23.94,23.66,23.48,23.1,22.52,22.84,23.21,22.57,22.44,22.7,22.76,23.62,23.86,24.1,24.23,24.37,24.56,24.61,24.79,24.14,24.32,24.27,24.18,23.96,23.59,23.36,23.11,22.54,22.16,22.3,21.86,22.04,22.21,22.48,22.73,22.2,22.95,23.36,23.66,23.88,24.05,24.22,24.48,24.65,24.66,23.99,23.59,23.3,23.0,22.71,22.48,22.11,21.84,22.16,22.42,22.63,22.81,22.99,23.25,23.51,23.73,23.92,24.07,24.16,24.24,24.7,24.99,24.89,24.28,24.03,23.62,23.51,23.45,23.53,23.95,24.38,25.15,25.91,26.8,27.4,23.48,23.41,23.29,24.34,24.51,24.61,24.68,24.72,24.78,24.86,25.04,25.07,24.55,24.02,23.58,23.38,23.13,22.89,22.68,22.49,22.37,22.6,22.58,22.7,22.77,22.85,23.01,23.65,23.91,24.0,24.12,24.27,24.44,24.62,24.17,24.03,23.95,24.39,24.41,24.22,23.9,23.68,23.52,23.4,22.95,23.47,23.45,23.65,23.72,23.75,23.92,24.04,24.26,24.31,24.42,24.59,24.82,24.51,24.75,24.84,24.28,24.1,23.99,23.73,23.49,23.38,23.31,23.16,23.22,22.94,23.25,23.32,23.35,22.2,22.72,23.58,23.97,24.14,24.28,23.73,24.2,24.49,24.86,24.2,23.88,23.6,23.44,23.24,23.05,22.81,22.61,22.48,22.44,22.99,23.38,23.61,23.79,23.92,24.14,23.74,24.3,24.44,24.53,24.63,24.78,24.9,24.69,24.93,23.99,24.08,23.94,23.65,23.43,23.27,23.14,22.9,22.06,22.04,21.9,21.59,21.82,21.98,22.68,23.22,23.43,23.7,23.86,23.98,24.11,24.24,24.48,23.87,24.07,23.97,23.78,23.5,22.78,22.17,21.43,21.1,20.83,21.18,21.18,21.49,21.79,22.06,22.23,22.57,22.66,22.81,22.94,23.03,23.11,23.23,23.74,24.2,24.2,23.7,23.17,22.88,22.6,22.38,22.13,21.71,20.99,20.85,20.7,21.06,21.65,21.86,22.12,22.46,22.65,22.82,22.99,23.56,23.82,24.04,24.26,24.25,23.72,23.59,23.37,23.14,22.86,22.62,22.47,22.37,22.42,22.66,22.34,22.16,22.31,22.5,22.66,23.41,23.7,23.83,23.97,24.12,24.28,24.46,24.73,24.84,24.6,24.42,23.71,23.12,22.9,22.68,22.48,22.32,22.09,22.41,22.72,22.72,22.43,22.5,22.0,22.97,23.31,23.47,23.62,23.8,24.04,23.17,23.71,24.02,23.58,23.67,23.5,23.35,23.11,22.96,22.73,22.48,22.25,22.06,22.25,21.79,22.17,22.37,22.67,22.95,23.25,23.37,23.48,23.66,23.89,24.13,24.22,24.25,23.67,23.03,22.59,22.9,22.52,22.19,21.66,21.31,21.22,21.58,21.94,22.14,22.49,22.06,22.46,22.78,23.0,23.26,23.45,23.65,23.84,24.05,24.32,24.43,24.41,24.2,23.88,22.49,22.62,22.37,22.24,22.04,21.83,21.77,21.48,21.99,22.38,22.64,22.92,23.15,23.29,23.52,23.68,23.8,23.91,24.05,24.26,24.3,24.19,23.29,23.29,23.03,22.34,21.47,21.02,20.78,20.59,20.8,21.24,21.68,22.03,22.34,21.65]}},"complete":true,"cost_usd":[0.0413,0.0849,0.1241,0.1603,0.1964,0.2464,0.33,0.3814,0.6663,0.7621,0.8181,0.9188,0.9761,1.0296,1.118,1.557,1.9468,2.2693,2.4031,2.5534,2.7429,2.9065,3.0492,3.203,3.287,3.3492,3.4008,3.4618,3.5306,3.6055,3.6796,3.7214,3.8135,3.855,3.9311,4.0315,4.2769,4.4651,4.6306,4.8384,5.0633,5.2464,5.4582,5.6087,5.7897,5.9416,6.0919,6.2045,6.2902,6.3616,6.424,6.48,6.5337,6.5884,6.6396,6.7017,6.8043,6.8452,6.9073,6.9728,7.0174,7.2756,7.3291,7.4711,7.6424,7.7686,7.9165,8.0279,8.1231,8.2409,8.2968,8.348,8.3876,8.4271,8.4693,8.5062,8.5374,8.6007,8.6835,8.7396,8.825,8.8648,8.9158,8.9443,8.9874,9.0055,9.0221,9.0618,9.1507,9.4274,9.5262,9.6193,9.7148,9.7984,9.8825,9.9556,10.0115,10.0593,10.1032,10.144,10.2127,10.2534,10.317,10.4347,10.4799,10.5011,10.5264,10.5712,10.6254,10.6796,10.7454,10.9481,11.1891,11.5854,11.768,11.9759,12.1099,12.1928,12.2794,12.3452,12.4015,12.4457,12.4988,12.5507,12.5977,12.6623,13.0736,13.1369,13.2048,13.4231,13.471,13.4988,13.5459,13.5884,13.6468,13.7678,13.9125,14.2339,14.3739,14.5157,14.8889,15.0073,15.0871,15.1609,15.2333,15.3154,15.3825,15.4411,15.4886,15.5341,15.6634,15.7336,15.8434,15.8955,15.9252,16.1143,16.2068,16.2856,16.368,16.5291,16.7309,17.0599,17.2256,17.3432,17.4779,17.5745,17.6344,17.6916,17.7466,17.7959,17.828,17.8583,17.8881,18.0032,18.0625,18.1184,18.1893,18.2128,18.2333,18.2622,18.2887,18.3361,18.4001,18.5601,18.7602,19.054,19.2015,19.3606,19.5083,19.6217,19.7113,19.7717,19.8296,19.8763,19.916,19.9536,19.9901,20.0272,20.0941,20.1428,20.2444,20.287,20.3284,20.4037,20.4881,20.7569,20.936,21.1005,21.2454,21.4151,21.6062,21.7628,21.8808,21.9942,22.1103,22.187,22.2508,22.3122,22.3748,22.4251,22.4722,22.5607,22.6101,22.6572,22.6977,22.7349,22.7773,22.813,22.8848,23.2143,23.3224,23.4659,23.7949,23.9849,24.2046,24.3891,24.5224,24.6278,24.7236,24.799,24.8744,24.9523,25.0236,25.0811,25.1324,25.1861,25.3647,25.4676,25.6149,25.7022,25.7595,25.8054,25.8628,25.9494,26.2457,26.539,26.8678,27.1901,27.3577,27.5004,27.6301,27.9445,28.025,28.1294,28.2024,28.2693,28.33,28.3858,28.4393,28.4937,28.5483,28.6013,28.6416,28.7137,28.7666,28.8367,28.8924,28.9803,29.067,29.4188,30.0524,30.495,30.6976,30.9535,31.1852,31.4303,31.7703,31.8754,31.9386,31.9957,32.0578,32.1083,32.1565,32.2057,32.2915,32.3435,32.3892,32.4193,32.4575,32.4929,32.5249,32.5609,32.6483,32.9582,33.2821,33.5904,33.7549,33.9509,34.117,34.2623,34.43,34.5261,34.5983,34.6782,34.7361,34.7861,34.8318,34.8779,34.9448,35.0829,35.1671,35.1968,35.2327,35.2617,35.3544,35.443,35.4845,35.6225,35.8126,36.1134,36.2647,36.473,36.6597,36.7763,36.881,36.9664,37.0404,37.1151,37.1736,37.2253,37.3092,37.359,37.4186,37.5325,37.7981,37.9193,37.9919,38.0615,38.1079,38.1555,38.2798,38.529,38.8195,39.2357,39.4278,39.5849,39.7345,39.9204,40.0129,40.1524,40.2229,40.2992,40.3612,40.4173,40.4685,40.5205,40.5783,40.6985,40.7653,40.8443,40.9094,40.9714,41.1912,41.2858,41.4166,41.5321,41.7492,41.926,42.0801,42.2353,42.4044,42.5331,42.6077,42.6617,42.7162,42.7685,42.8077,42.8441,42.8865,42.8865,42.8865,42.8865,42.8865,42.8865,42.8865,42.8865,42.8865,42.8865,42.8865,42.8865,42.8865,42.8865,42.8865,42.8865,43.0044,43.1306,43.2373,43.3005,43.3884,43.4684,43.5299,43.5852,43.6372,43.7772,43.9152,43.9882,44.0542,44.1595,44.2523,44.3074,44.4163,44.5953,44.6886,44.9254,45.1672,45.4293,45.5553,45.7335,45.8421,46.0189,46.085,46.145,46.21,46.2748,46.3296,46.4058,46.4529,46.5007,46.5959,46.83,46.9253,47.023,47.057,47.0868,47.1629,47.2614,47.4931,47.6198,47.7429,47.8645,47.9483,48.0465,48.1457,48.2324,48.2897,48.3457,48.424,48.521,48.5726,48.6196,48.6899,48.8046,48.8578,48.9486,49.0304,49.0766,49.1178,49.2104,49.2847,49.3117,49.3429,49.4426,49.6531,49.9092,49.9981,50.0894,50.2026,50.3816,50.5,50.6207,50.6877,50.7432,50.7934,50.8773,50.9339,50.9799,51.0336,51.1458,51.1914,51.2226,51.254,51.3411,51.399,51.4588,51.5528,51.7978,52.0965,52.4037,52.6573,52.7887,52.9004,53.0295,53.1128,53.1777,53.2466,53.3241,53.3819,53.4335,53.4806,53.5834,53.8829,54.0033,54.1359,54.2123,54.2537,54.3704,54.4577,54.5218,54.6369,55.0248,55.3738,55.7227,55.8955,56.0873,56.2471,56.3881,56.4893,56.5719,56.6389,56.6867,56.7308,56.7797,56.8209,56.8634,56.9223,57.0465,57.1965,57.5587,57.8256,57.9232,58.0771,58.1956,58.421,58.7775,58.9807,59.1643,59.3867,59.5583,59.7056,59.8323,59.9374,60.0379,60.116,60.1842,60.2304,60.2738,60.3257,60.3848,60.4459,60.5477,60.6066,60.6582,60.7798,60.8321,61.1058,61.3015,61.3955,61.5227,61.8181,62.038,62.2616,62.4127,62.5548,62.6894,62.8332,62.9113,62.9882,63.0559,63.1099,63.1588,63.2149,63.3646,63.4875,63.5951,63.6657,63.712,63.778,63.8348,63.903,63.966,64.0893,64.3062,64.5734,64.7687,64.868,65.0596,65.1881,65.3262,65.4414,65.5005,65.5608,65.6281,65.6904,65.7593,65.847,65.9232,66.0029,66.0776,66.1344,66.2089,66.2459,66.2821,66.3565,66.445,66.5342,66.7438,66.9877,67.341,67.4772,67.6128,67.7739,67.8876,68.1424,68.2395,68.3416,68.4086,68.4676,68.5204,68.5704,68.7005,68.7663,68.8464,68.9633,69.0332,69.0717,69.1272,69.1757,69.2219,69.3056,69.5746,69.9597,70.2917,70.5158,70.9318,71.1038,71.3511,71.4594,71.5637,71.6455,71.7186,71.7835,71.8407,71.8938,71.9785,72.1314,72.2602,72.4812,72.7304,72.8263,72.9447,73.0559,73.1728,73.357,73.6721,74.076,74.48,74.6744,74.9247,75.0792,75.6556,75.7981,75.9009,75.9789,76.0834,76.2026,76.2668,76.3252,76.3831,76.5081,76.5886,76.6664,76.7588,76.84,77.0141,77.1357,77.2333,77.3674,77.6835,78.0583,78.4635,78.8735,79.0672,79.2051,79.3524,79.5051,79.6215,79.6904,79.7497,79.7937,79.8366,79.8802,79.9264,79.9757,80.0699,80.1681,80.3597,80.5179,80.6165,80.7569,80.9273,81.1301,81.3492,81.5808,81.8152,82.0312,82.2098,82.3716,82.5272,82.6864],"discomfort_h":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,2.0,3.0,4.0,4.0,5.0,5.0,5.0,6.0,7.0,8.0,9.0,11.0,12.0,13.0,14.0,15.0,15.0,15.0,15.0,15.0,16.0,17.0,17.0,17.0,18.0,19.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,21.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,23.0,23.0,23.0,23.0,23.0,23.0,23.0,23.0,23.0,23.0,23.0,23.0,23.0,23.0,23.0,23.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,25.0,26.0,27.0,28.0,29.0,30.0,30.0,30.0,30.0,31.0,31.0,31.0,31.0,31.0,31.0,31.0,31.0,31.0,31.0,31.0,31.0,31.0,31.0,31.0,32.0,33.0,35.0,37.0,39.0,40.0,41.0,41.0,41.0,41.0,42.0,43.0,43.0,43.0,43.0,43.0,43.0,43.0,44.0,45.0,46.0,47.0,48.0,49.0,50.0,51.0,52.0,53.0,54.0,55.0,56.0,57.0,58.0,59.0,60.0,61.0,61.0,61.0,61.0,61.0,61.0,61.0,61.0,61.0,61.0,61.0,62.0,63.0,64.0,65.0,66.0,67.0,68.0,70.0,72.0,74.0,76.0,77.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,79.0,80.0,81.0,82.0,83.0,84.0,85.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,87.0,87.0,87.0,87.0,87.0,87.0,87.0,87.0,87.0,87.0,87.0,87.0,87.0,87.0,87.0,87.0,87.0,87.0,87.0,87.0,88.0,89.0,91.0,92.0,93.0,94.0,95.0,96.0,96.0,96.0,96.0,96.0,96.0,96.0,96.0,96.0,96.0,96.0,96.0,96.0,97.0,98.0,99.0,100.0,102.0,104.0,106.0,107.0,108.0,109.0,110.0,110.0,110.0,110.0,110.0,110.0,110.0,110.0,110.0,110.0,110.0,110.0,110.0,111.0,112.0,113.0,114.0,116.0,118.0,120.0,123.0,126.0,127.0,129.0,130.0,131.0,131.0,131.0,131.0,131.0,131.0,131.0,131.0,131.0,131.0,131.0,131.0,131.0,131.0,131.0,131.0,131.0,131.0,132.0,133.0,134.0,135.0,136.0,137.0,138.0,139.0,140.0,141.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,143.0,144.0,145.0,146.0,147.0,148.0,148.0,148.0,148.0,148.0,148.0,148.0,148.0,148.0,148.0,148.0,148.0,148.0,148.0,148.0,148.0,148.0,148.0,149.0,150.0,152.0,154.0,156.0,158.0,159.0,160.0,161.0,161.0,162.0,162.0,162.0,162.0,162.0,162.0,162.0,162.0,162.0,162.0,162.0,163.0,164.0,166.0,168.0,170.0,172.0,174.0,176.0,178.0,179.0,180.0,181.0,182.0,183.0,184.0,185.0,185.0,186.0,186.0,186.0,187.0,188.0,189.0,189.0,190.0,191.0,192.0,194.0,196.0,198.0,200.0,202.0,204.0,206.0,207.0,208.0,209.0,210.0,211.0,212.0,213.0,214.0,215.0,216.0,217.0,218.0,219.0,220.0,221.0,222.0,223.0,224.0,225.0,226.0,227.0,228.0,229.0,230.0,231.0,232.0,233.0,234.0,235.0,236.0,237.0,238.0,239.0,239.0,239.0,240.0,241.0,241.0,242.0,243.0,244.0,245.0,246.0,248.0,249.0,250.0,251.0,252.0,253.0,254.0,255.0,256.0,257.0,257.0,257.0,257.0,257.0,257.0,257.0,257.0,257.0,257.0,257.0,257.0,257.0,257.0,258.0,260.0,262.0,264.0,266.0,268.0,269.0,270.0,271.0,272.0,273.0,273.0,273.0,273.0,274.0,274.0,274.0,274.0,274.0,275.0,276.0,277.0,278.0,279.0,281.0,283.0,285.0,287.0,288.0,290.0,291.0,292.0,293.0,294.0,295.0,296.0,297.0,298.0,299.0,299.0,300.0,301.0,301.0,302.0,303.0,304.0,305.0,306.0,307.0,309.0,311.0,313.0,315.0,316.0,317.0,318.0,319.0,320.0,321.0,322.0,323.0,323.0,323.0,324.0,324.0,325.0,326.0,327.0,328.0,330.0,332.0,334.0,336.0,338.0,340.0,342.0,344.0,346.0,348.0],"district_grid_kwh":[1.428,1.505,1.355,1.254,1.245,1.731,2.889,1.763,9.774,3.287,1.561,3.455,1.967,1.835,3.033,7.483,6.644,5.496,4.59,5.157,6.502,5.611,4.935,5.313,2.906,2.15,1.782,2.11,2.376,2.591,2.559,1.447,2.937,1.367,2.63,3.47,8.481,6.508,5.72,7.182,7.773,6.33,7.322,5.2,6.256,5.252,5.194,3.894,2.96,2.47,2.155,1.937,1.856,1.89,1.77,2.147,3.545,1.297,1.861,1.522,0.774,8.602,1.79,4.906,5.922,4.363,5.111,3.852,3.293,4.069,1.935,1.768,1.37,1.366,1.458,1.277,1.078,2.185,2.862,1.927,2.93,1.364,1.75,0.977,1.479,0.623,0.393,0.365,1.515,4.717,3.387,3.195,3.275,2.867,2.91,2.527,1.93,1.652,1.52,1.409,2.374,1.408,2.199,4.036,1.553,0.726,0.4,1.158,1.716,1.858,2.26,3.453,4.108,6.755,6.265,7.132,4.595,2.846,2.993,2.272,1.946,1.528,1.837,1.793,1.624,2.234,14.217,2.169,2.332,7.487,1.643,0.541,1.309,1.115,2.005,1.689,2.467,5.478,4.803,4.867,12.803,4.062,2.756,2.552,2.501,2.839,2.32,2.023,1.642,1.576,4.467,2.408,3.766,1.79,1.017,6.488,3.173,2.703,2.828,2.745,3.44,5.607,5.683,4.035,4.621,3.315,2.07,1.976,1.903,1.704,1.108,1.048,1.031,3.978,2.049,1.919,2.43,0.517,0.256,0.583,0.595,1.626,2.196,2.728,3.41,5.008,5.06,5.457,5.067,3.89,3.098,2.089,2.0,1.615,1.371,1.299,1.264,1.281,2.314,1.681,3.513,1.473,1.431,2.602,2.919,9.291,6.191,5.687,5.009,5.866,6.606,5.413,4.078,3.919,4.015,2.651,2.203,2.124,2.162,1.742,1.625,3.061,1.708,1.627,1.398,1.02,1.239,1.081,2.482,11.388,3.738,4.962,11.371,6.567,7.595,6.376,4.61,3.643,3.311,2.605,2.608,2.693,2.462,1.988,1.772,1.857,6.174,3.531,5.053,2.995,1.965,1.574,1.971,2.968,10.165,5.0,5.604,5.494,5.75,4.896,4.45,10.784,2.784,3.608,2.522,2.315,2.095,1.931,1.847,1.882,1.887,1.817,1.292,2.446,1.816,2.405,1.911,3.014,2.975,5.996,10.799,7.544,6.951,8.78,7.948,8.408,11.751,3.634,2.183,1.974,2.148,1.747,1.665,1.699,2.967,1.783,1.568,0.617,0.828,0.9,0.978,1.234,2.998,5.282,5.52,5.256,5.642,6.724,5.696,4.984,5.799,3.32,2.497,2.764,2.001,1.726,1.579,1.594,2.314,4.736,2.89,0.713,0.858,0.792,3.181,3.039,1.191,2.353,3.24,5.127,5.189,7.144,6.405,4.0,3.62,2.954,2.555,2.584,2.023,1.788,2.897,1.723,2.06,3.908,9.112,3.986,2.331,2.275,1.591,1.633,4.263,4.248,4.951,7.094,6.588,5.392,5.131,6.378,3.196,4.822,2.437,2.636,2.145,1.938,1.77,1.797,2.001,4.154,2.309,2.732,2.249,2.143,7.597,3.27,4.523,3.99,7.504,6.113,5.327,5.365,5.845,4.447,2.577,1.867,1.884,1.81,1.354,1.258,1.464,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.075,4.363,3.689,2.183,3.04,2.766,2.125,1.913,1.798,4.838,4.768,2.505,2.265,3.612,3.182,1.893,3.733,6.142,3.201,4.036,4.123,4.467,4.322,6.112,3.727,6.066,2.283,2.073,2.249,2.238,1.894,2.633,1.628,1.653,3.291,8.031,3.27,3.352,1.164,0.947,2.608,3.38,7.948,2.159,2.099,2.072,2.876,3.367,3.404,2.977,1.98,1.933,2.709,3.35,1.785,1.624,2.43,3.966,1.838,3.115,2.807,1.562,1.179,3.177,2.421,0.864,1.071,1.7,3.588,4.364,3.052,3.13,3.882,6.143,4.092,4.172,2.316,1.919,1.733,2.902,1.956,1.592,1.854,3.85,1.565,0.697,0.765,2.988,1.987,2.052,3.223,4.177,5.09,5.236,8.701,4.507,3.832,4.43,2.879,2.245,2.381,2.679,1.996,1.784,1.63,3.55,10.355,4.131,4.549,2.434,1.418,4.005,2.995,2.197,3.948,6.611,5.949,5.947,5.929,6.577,5.484,4.838,3.497,2.856,2.313,1.654,1.525,1.69,1.423,1.471,2.036,4.291,5.184,12.522,9.224,3.376,5.317,4.097,7.792,12.321,7.027,6.345,7.686,5.935,5.089,4.38,3.635,3.474,2.697,2.359,1.597,1.499,1.796,2.04,2.114,3.519,2.034,1.647,4.201,1.81,9.459,6.764,3.249,4.398,10.212,7.598,7.731,5.222,4.913,4.651,4.97,2.7,2.657,2.34,1.869,1.689,1.94,5.176,4.247,3.693,2.421,1.425,2.265,1.896,2.339,2.163,4.23,3.696,4.555,3.329,3.406,6.572,4.407,4.737,3.983,2.042,2.087,2.324,2.156,2.381,3.031,2.633,2.755,2.564,1.949,2.504,1.271,1.24,2.554,3.033,3.06,3.573,4.158,6.021,4.673,4.652,5.527,3.9,8.808,3.354,3.531,2.316,2.037,1.826,1.73,4.495,2.274,2.749,4.012,2.179,1.085,1.787,1.022,1.036,2.87,4.586,6.564,5.659,7.689,14.271,5.899,8.485,3.742,3.605,2.828,2.528,2.242,1.975,1.837,2.928,5.284,4.422,7.582,8.349,3.137,4.062,3.813,4.011,6.318,5.371,6.885,6.885,6.669,8.588,5.3,19.771,4.928,3.554,2.693,3.614,4.12,2.218,2.019,2.001,4.323,2.76,2.671,3.168,2.784,5.975,4.17,3.347,4.601,5.388,6.389,6.906,14.065,6.646,4.731,5.053,5.277,4.022,2.381,2.05,1.522,1.483,1.507,1.598,1.704,3.256,3.394,6.625,5.467,3.408,4.853,5.891,7.011,7.572,8.004,8.103,7.465,6.174,5.593,5.381,5.503],"emission_kg":[0.575,1.151,1.652,2.112,2.577,3.244,4.386,5.112,9.342,10.75,11.628,13.312,14.279,15.174,16.629,20.157,23.213,25.683,27.698,29.946,32.81,35.319,37.538,39.892,41.145,42.001,42.683,43.47,44.351,45.302,46.256,46.808,48.102,48.711,49.927,51.599,55.706,58.848,61.594,64.997,68.609,71.514,74.816,77.127,79.922,82.327,84.709,86.481,87.866,88.967,89.876,90.652,91.374,92.107,92.805,93.678,95.155,95.734,96.655,97.715,98.487,103.113,104.08,106.634,109.696,111.938,114.543,116.465,118.093,120.12,121.067,121.941,122.602,123.228,123.83,124.322,124.771,125.751,127.023,127.951,129.46,130.173,131.127,131.658,132.45,132.78,133.08,133.431,134.213,136.623,138.353,140.002,141.709,143.185,144.645,145.837,146.685,147.363,147.951,148.508,149.476,150.091,151.115,153.058,153.843,154.212,154.658,155.467,156.465,157.464,158.667,160.484,162.627,166.123,169.327,172.911,175.186,176.542,177.926,178.976,179.821,180.444,181.164,181.828,182.429,183.261,188.894,189.8,190.839,194.258,195.021,195.485,196.307,197.057,198.087,199.144,200.391,203.106,205.429,207.717,213.605,215.441,216.662,217.74,218.768,219.864,220.731,221.488,222.121,222.745,224.6,225.603,227.287,228.091,228.556,231.601,233.121,234.445,235.826,237.166,238.824,241.459,244.055,245.827,247.863,249.328,250.222,251.063,251.866,252.511,252.913,253.284,253.665,255.178,256.015,256.906,258.111,258.504,258.837,259.301,259.722,260.479,261.517,262.816,264.428,266.771,269.136,271.682,274.059,275.891,277.32,278.266,279.145,279.833,280.388,280.907,281.42,281.963,282.989,283.734,285.351,286.018,286.677,287.897,289.294,293.759,296.678,299.329,301.656,304.362,307.378,309.848,311.742,313.553,315.328,316.414,317.297,318.098,318.846,319.437,319.987,321.02,321.608,322.18,322.679,323.134,323.693,324.206,325.313,330.562,332.321,334.662,340.025,343.119,346.601,349.475,351.559,353.191,354.626,355.741,356.821,357.889,358.832,359.581,360.234,360.926,363.264,364.624,366.628,367.781,368.569,369.246,370.142,371.543,376.427,378.842,381.568,384.247,387.054,389.443,391.622,396.825,398.114,399.686,400.773,401.712,402.533,403.285,404.017,404.782,405.586,406.4,407.034,408.133,408.963,410.116,411.043,412.498,413.916,416.744,421.774,425.226,428.364,432.368,436.068,440.051,445.557,447.223,448.227,449.118,450.027,450.745,451.446,452.193,453.585,454.481,455.275,455.789,456.449,457.08,457.653,458.294,459.843,462.529,465.293,467.883,470.634,473.931,476.749,479.224,482.061,483.664,484.799,486.017,486.836,487.522,488.132,488.784,489.805,492.047,493.478,493.965,494.546,495.023,496.556,498.009,498.682,499.79,501.306,503.703,506.103,509.396,512.37,514.22,515.82,517.078,518.102,519.091,519.83,520.465,521.512,522.178,523.021,524.674,528.556,530.253,531.308,532.363,533.073,533.8,535.674,537.541,539.687,542.743,545.596,547.938,550.201,553.042,554.432,556.433,557.426,558.42,559.222,559.939,560.597,561.278,562.045,563.649,564.534,565.559,566.44,567.329,570.542,571.939,573.856,575.551,578.722,581.308,583.563,585.858,588.415,590.426,591.6,592.439,593.324,594.163,594.797,595.374,596.067,596.067,596.067,596.067,596.067,596.067,596.067,596.067,596.067,596.067,596.067,596.067,596.067,596.067,596.067,596.067,598.129,600.352,602.221,603.328,604.847,606.262,607.326,608.268,609.139,611.536,613.951,615.243,616.436,618.326,620.028,621.056,623.077,626.379,628.055,630.125,632.214,634.434,636.549,639.591,641.486,644.575,645.709,646.707,647.707,648.689,649.517,650.678,651.415,652.202,653.853,657.966,659.665,661.393,662.001,662.545,663.93,665.72,669.891,671.018,672.108,673.174,674.632,676.292,677.924,679.328,680.236,681.083,682.301,683.707,684.444,685.155,686.294,688.262,689.202,690.8,692.234,693.052,693.791,695.474,696.837,697.337,697.918,698.84,700.782,703.143,704.796,706.492,708.593,711.896,714.084,716.309,717.5,718.51,719.414,720.951,722.01,722.888,723.915,726.055,726.913,727.493,728.074,729.685,730.759,731.865,733.592,735.821,738.539,741.337,745.998,748.438,750.526,752.904,754.412,755.535,756.599,757.738,758.535,759.233,759.863,761.263,765.69,767.499,769.604,770.807,771.492,773.464,774.946,776.021,777.919,781.078,783.902,786.702,789.455,792.453,794.942,797.126,798.654,799.863,800.818,801.49,802.065,802.68,803.184,803.759,804.602,806.329,808.335,813.018,816.66,818.093,820.433,822.294,825.944,831.782,835.119,838.129,841.766,844.535,846.867,848.857,850.46,851.935,853.013,853.896,854.481,855.007,855.626,856.318,857.048,858.302,859.036,859.684,861.289,862.02,866.082,869.073,870.534,872.542,877.233,880.648,884.037,886.302,888.45,890.482,892.614,893.756,894.896,895.832,896.543,897.205,897.999,900.314,902.33,904.187,905.397,906.175,907.287,908.253,909.42,910.503,912.632,914.492,916.787,918.458,920.161,923.421,925.599,927.947,929.888,930.858,931.763,932.723,933.572,934.503,935.694,936.764,937.924,939.039,939.908,940.989,941.545,942.115,943.3,944.738,946.202,947.911,949.899,952.768,954.995,957.214,959.88,961.759,965.852,967.333,968.797,969.709,970.493,971.189,971.843,973.584,974.504,975.662,977.358,978.327,978.904,979.801,980.61,981.384,982.794,985.055,988.307,991.121,994.937,1002.001,1004.928,1009.108,1010.869,1012.474,1013.641,1014.653,1015.51,1016.243,1016.936,1018.09,1020.308,1022.291,1025.828,1029.643,1031.158,1033.089,1034.932,1036.887,1039.945,1042.509,1045.751,1048.955,1052.028,1055.973,1058.417,1067.561,1069.756,1071.259,1072.353,1073.677,1075.146,1075.926,1076.642,1077.373,1079.017,1080.095,1081.121,1082.325,1083.451,1085.996,1087.833,1089.343,1091.453,1093.937,1096.87,1100.03,1106.45,1109.419,1111.524,1113.777,1116.114,1117.914,1118.987,1119.932,1120.635,1121.324,1122.016,1122.757,1123.536,1124.993,1126.454,1129.071,1131.242,1132.665,1134.762,1137.402,1140.657,1144.208,1147.968,1151.77,1155.242,1158.118,1160.749,1163.237,1165.706],"kpi":{"all_time_peak_average":1.0,"annual_normalized_unserved_energy_total":0.018316,"carbon_emissions_total":1.0,"cost_total":1.0,"daily_one_minus_load_factor_average":1.0,"daily_peak_average":1.0,"discomfort_cold_delta_average":0.790764,"discomfort_cold_delta_maximum":3.437551,"discomfort_cold_delta_minimum":0.0,"discomfort_cold_proportion":0.15377,"discomfort_hot_delta_average":0.237991,"discomfort_hot_delta_maximum":5.059987,"discomfort_hot_delta_minimum":0.0,"discomfort_hot_proportion":0.017627,"discomfort_proportion":0.171398,"electricity_consumption_total":1.0,"monthly_one_minus_load_factor_average":1.0,"one_minus_thermal_resilience_proportion":0.369841,"power_outage_normalized_unserved_energy_total":0.684408,"ramping_average":1.0,"zero_net_energy":1.0},"run":"baseline","steps":719},"baseline_sample":false,"carbon":[0.4025,0.3826,0.3695,0.367,0.374,0.3852,0.3954,0.4112,0.4328,0.4285,0.4576,0.4875,0.4915,0.4876,0.4797,0.4715,0.46,0.4494,0.4389,0.4361,0.4404,0.4471,0.4497,0.4431,0.431,0.3983,0.3831,0.3726,0.371,0.3669,0.3727,0.3815,0.4067,0.4241,0.4621,0.4818,0.4843,0.4828,0.48,0.4738,0.4647,0.459,0.4509,0.4446,0.4466,0.458,0.4586,0.455,0.4681,0.4455,0.4221,0.4006,0.3888,0.3875,0.3949,0.4061,0.4168,0.4094,0.429,0.468,0.5007,0.5185,0.5224,0.5205,0.517,0.5139,0.5097,0.4989,0.4943,0.4983,0.4894,0.4943,0.4825,0.4589,0.413,0.3851,0.4159,0.4486,0.4443,0.4817,0.5151,0.5229,0.5451,0.5432,0.5356,0.5314,0.5271,0.5193,0.5156,0.511,0.5107,0.5161,0.5213,0.5146,0.502,0.4717,0.4391,0.4105,0.3868,0.3956,0.4078,0.4366,0.4654,0.4814,0.5058,0.5082,0.5142,0.5267,0.5363,0.5374,0.5328,0.526,0.5216,0.5175,0.5113,0.5026,0.4951,0.4765,0.4624,0.4618,0.4347,0.4071,0.3921,0.3705,0.3695,0.3723,0.3963,0.4178,0.4454,0.4567,0.4645,0.4861,0.508,0.5154,0.5138,0.5126,0.5056,0.4957,0.4837,0.47,0.4599,0.452,0.4427,0.4223,0.411,0.3863,0.3738,0.3741,0.3852,0.3962,0.4154,0.4162,0.4471,0.4496,0.457,0.4693,0.479,0.4898,0.4885,0.4881,0.482,0.4699,0.4568,0.4392,0.4405,0.4419,0.432,0.4257,0.422,0.3781,0.3629,0.3546,0.3694,0.3803,0.4083,0.4647,0.4958,0.4864,0.4747,0.4667,0.463,0.4656,0.4728,0.4764,0.4727,0.468,0.4674,0.4664,0.4691,0.4709,0.4614,0.4531,0.4395,0.4258,0.405,0.3994,0.4061,0.4235,0.4433,0.4432,0.4603,0.4527,0.4604,0.4691,0.4786,0.4806,0.4715,0.4662,0.4646,0.4612,0.4566,0.4564,0.4643,0.4623,0.4421,0.4098,0.4005,0.3769,0.3463,0.3391,0.3386,0.3375,0.3438,0.3518,0.3569,0.3526,0.3825,0.4152,0.4462,0.4609,0.4704,0.4719,0.4717,0.4711,0.4585,0.4507,0.4521,0.448,0.4334,0.4279,0.4141,0.3964,0.383,0.3768,0.3684,0.3729,0.3787,0.3851,0.3966,0.3851,0.4006,0.4304,0.4545,0.4721,0.4805,0.4829,0.4865,0.4877,0.4882,0.4879,0.4896,0.4825,0.4631,0.4357,0.4309,0.4058,0.3914,0.3897,0.3963,0.4066,0.4258,0.4484,0.4584,0.4444,0.4566,0.4795,0.4853,0.4825,0.4767,0.4716,0.4659,0.4575,0.4515,0.4561,0.4655,0.4737,0.4685,0.4584,0.4601,0.4513,0.423,0.4112,0.4213,0.4395,0.4692,0.5021,0.5067,0.4979,0.5033,0.5202,0.5214,0.5194,0.5164,0.5085,0.5007,0.4927,0.4876,0.4904,0.4946,0.4965,0.4894,0.4829,0.4542,0.4409,0.4092,0.3975,0.3858,0.409,0.4413,0.4734,0.495,0.4785,0.4719,0.4788,0.4821,0.4782,0.4728,0.4713,0.4679,0.4675,0.4625,0.4609,0.4643,0.4625,0.4421,0.4257,0.401,0.3826,0.3652,0.3553,0.3614,0.3867,0.4089,0.4231,0.426,0.4083,0.4236,0.4421,0.4459,0.4454,0.4396,0.4394,0.4335,0.4307,0.4331,0.4344,0.441,0.4455,0.4348,0.415,0.4075,0.3772,0.3739,0.3702,0.3717,0.3788,0.3836,0.386,0.3835,0.3753,0.3914,0.415,0.423,0.4272,0.4238,0.4247,0.4226,0.423,0.4234,0.4277,0.4375,0.4522,0.4554,0.4494,0.4699,0.4636,0.4684,0.4589,0.4732,0.4855,0.4789,0.4768,0.498,0.497,0.498,0.504,0.4996,0.4978,0.494,0.4969,0.4925,0.49,0.4953,0.49,0.5059,0.5096,0.5066,0.5072,0.4997,0.5116,0.5008,0.4922,0.4842,0.4955,0.5066,0.5156,0.5266,0.5235,0.5347,0.5428,0.5414,0.5377,0.5237,0.5128,0.5068,0.497,0.4892,0.4979,0.5083,0.5091,0.4967,0.4817,0.4443,0.4388,0.4372,0.4411,0.4525,0.4759,0.5019,0.512,0.5197,0.5154,0.5226,0.5302,0.5315,0.5295,0.5248,0.5216,0.5196,0.5143,0.5069,0.4931,0.4796,0.4716,0.4583,0.4382,0.4497,0.4196,0.4129,0.4379,0.4687,0.4964,0.5112,0.5131,0.5107,0.5163,0.5228,0.5295,0.5354,0.5401,0.5424,0.5426,0.5412,0.541,0.5415,0.5417,0.5413,0.5378,0.5346,0.5334,0.514,0.5264,0.5217,0.5296,0.5413,0.5521,0.5536,0.5561,0.5483,0.542,0.5397,0.5388,0.5407,0.539,0.5357,0.5338,0.534,0.5344,0.5357,0.5413,0.5449,0.5369,0.5236,0.5002,0.447,0.4253,0.3993,0.3911,0.3865,0.3941,0.4275,0.438,0.4626,0.4592,0.4826,0.4924,0.4948,0.4893,0.4809,0.4778,0.4747,0.4708,0.4643,0.4558,0.454,0.4513,0.4369,0.4235,0.4127,0.4064,0.3774,0.3634,0.3545,0.391,0.4141,0.4023,0.387,0.374,0.3948,0.4243,0.44,0.4543,0.4684,0.4738,0.4748,0.4745,0.4732,0.4667,0.4581,0.4544,0.4411,0.4244,0.4,0.3742,0.3659,0.351,0.3448,0.3389,0.3452,0.3564,0.3613,0.3623,0.3822,0.4039,0.4294,0.4422,0.4495,0.4567,0.4594,0.4494,0.4384,0.4336,0.4372,0.4369,0.4289,0.4231,0.4292,0.4,0.3806,0.3916,0.4096,0.4473,0.4746,0.5027,0.5002,0.4897,0.4909,0.4962,0.4989,0.5006,0.5034,0.5033,0.5037,0.5021,0.4998,0.496,0.4942,0.4957,0.4874,0.4749,0.4333,0.4133,0.3936,0.3909,0.393,0.4066,0.4211,0.4348,0.4457,0.4234,0.4368,0.4599,0.4642,0.4741,0.4782,0.4784,0.4781,0.4765,0.4766,0.4771,0.4823,0.4817,0.4647,0.4416,0.4147,0.3936,0.3846,0.3815,0.3782,0.3873,0.4045,0.4211,0.4227,0.4043,0.4363,0.4719,0.4859,0.4885,0.4911,0.4931,0.4954,0.4974,0.4963,0.495,0.4962,0.4926,0.4706,0.4453,0.4126,0.4005,0.3821,0.3709,0.3773,0.3942,0.4197,0.4484,0.4666,0.4463,0.4606,0.4754,0.4833,0.4874,0.484,0.4774,0.4709,0.4654,0.4609,0.4593,0.4611,0.4625,0.4455,0.4228,0.4063,0.3665,0.3565,0.3518,0.3547,0.365,0.3802,0.3906,0.3844,0.3798,0.4046,0.4259,0.4406,0.4509,0.4588,0.461,0.459,0.4576,0.4565,0.4468,0.4448,0.446,0.4428,0.4476,0.4507,0.4607,0.462,0.4648,0.4593,0.4635,0.4575,0.4475,0.4305,0.395,0.397,0.4176,0.432,0.4482,0.4642,0.4689,0.4698,0.4692,0.4652,0.4658,0.4703,0.4624,0.4486],"day":[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30],"episode_hours":719,"headline":{"cost_pct":-7.5,"discomfort_points":-7.7,"emissions_pct":-3.5,"text":"Cost down 7.5% and emissions down 3.5% at equal or better comfort","tone":"win"},"hour_of_day":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23],"hours":719,"id":"citylearn_challenge_2023_phase_2_local_evaluation","name":"CityLearn 2023 challenge, local evaluation","occupied":{"Building_1":[1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],"Building_2":[1,1,1,1,1,1,1,1,1,1,1,0,1,0,0,1,1,1,0,1,1,1,0,0,0,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1],"Building_3":[1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1]},"outdoor_c":[24.7,24.1,23.9,23.9,23.8,23.9,25.0,26.9,29.3,31.7,33.9,35.9,37.5,38.7,39.3,39.5,39.2,38.1,36.1,32.6,31.2,29.6,28.0,26.8,25.9,25.2,24.9,24.8,24.8,24.7,25.4,27.0,29.4,32.1,34.5,36.6,38.3,39.5,40.2,40.3,39.8,38.7,36.5,32.4,31.3,30.8,29.3,27.8,26.7,26.0,25.5,25.2,25.0,24.9,25.3,26.4,28.4,30.5,32.6,32.2,31.2,31.7,31.8,31.6,31.1,30.1,28.7,26.9,26.3,25.9,25.4,24.9,24.8,24.6,24.5,24.2,23.7,23.4,23.8,24.9,26.7,28.3,29.2,29.6,29.7,29.8,29.6,29.5,29.6,29.8,29.1,27.6,26.0,25.2,24.8,24.4,23.9,23.2,22.8,22.4,22.2,22.2,23.5,25.5,27.8,30.0,32.3,34.1,35.5,36.5,36.9,37.0,36.6,35.7,33.9,29.9,28.6,27.9,27.4,26.6,25.3,24.5,23.8,23.4,23.1,23.2,24.6,26.8,28.8,30.8,32.7,34.2,35.3,36.2,36.8,36.9,36.4,35.4,33.2,29.9,28.9,28.4,27.5,26.7,25.9,25.1,24.5,23.7,22.9,22.9,24.6,26.6,28.8,30.9,32.8,34.4,35.6,36.4,36.8,37.0,36.5,35.0,32.2,29.7,28.9,28.3,27.3,26.0,24.7,23.5,22.6,22.0,21.6,21.4,23.5,26.0,28.5,30.8,32.7,34.3,35.6,36.5,36.7,36.5,36.0,35.1,33.2,30.3,29.0,28.5,27.9,26.5,25.5,24.8,24.2,23.9,23.5,23.3,24.6,26.5,28.8,30.9,32.8,34.4,35.5,36.3,36.5,36.2,35.3,34.0,32.2,29.1,27.8,27.0,26.4,25.8,25.2,24.5,23.9,23.5,23.4,23.4,24.6,26.6,29.4,31.5,33.5,35.1,36.5,37.4,37.8,37.7,37.1,35.9,33.8,31.3,29.4,28.1,27.1,26.5,25.9,25.6,25.4,25.4,25.3,25.2,25.7,27.3,29.3,31.0,33.0,35.2,36.6,37.3,37.4,37.0,36.3,35.2,33.4,31.0,29.2,28.0,27.0,26.2,25.7,25.4,25.3,25.3,25.2,25.0,25.7,27.5,29.4,31.1,32.8,34.2,35.4,36.2,36.8,37.0,36.8,35.9,34.1,31.0,29.6,28.4,27.4,26.3,25.3,24.6,24.4,24.1,24.1,24.1,25.3,27.2,28.8,30.3,31.8,33.1,34.3,35.4,36.3,36.8,36.7,36.0,34.2,31.5,30.9,29.7,28.1,26.9,26.0,24.9,23.9,23.1,22.6,22.4,24.4,26.8,29.3,31.6,33.3,34.5,35.2,35.6,35.6,35.4,35.0,34.2,32.9,30.2,28.8,28.1,27.4,26.6,25.7,24.9,24.2,23.8,23.6,23.6,24.9,27.1,29.4,31.6,33.5,35.0,36.0,36.6,36.8,36.6,36.2,35.3,33.8,31.8,29.9,28.5,27.5,26.7,26.0,25.5,25.2,24.9,24.5,24.2,24.9,26.8,29.0,31.0,32.8,34.3,35.6,36.4,36.8,36.7,36.0,34.9,33.3,31.3,29.7,28.6,27.7,26.8,26.1,25.4,25.1,24.7,24.3,23.9,24.7,26.8,29.3,31.5,33.4,35.0,36.2,36.8,36.8,36.2,34.8,33.4,32.0,30.6,29.4,28.3,27.3,26.4,25.7,25.2,24.8,24.5,24.2,24.0,24.7,26.2,28.7,31.0,32.9,34.3,35.3,35.4,35.2,34.9,33.3,30.9,28.5,26.8,26.1,25.7,25.4,25.0,24.6,24.3,24.2,24.0,23.8,23.7,24.0,24.7,25.7,26.7,27.3,27.7,28.2,28.6,28.7,28.3,27.7,26.8,25.7,24.5,23.8,23.7,23.8,24.0,24.2,24.3,24.1,23.9,23.8,23.7,23.9,24.5,25.4,26.3,27.3,28.0,28.4,28.4,28.0,27.7,27.4,26.8,26.0,25.0,24.5,24.4,24.2,24.1,23.9,23.8,23.6,23.5,23.4,23.3,24.5,25.9,28.1,30.7,32.5,33.9,35.0,35.7,35.9,35.8,35.2,34.2,32.5,29.4,28.2,27.3,26.4,25.6,25.0,24.6,24.2,23.8,23.3,22.9,24.7,27.0,29.6,32.1,34.3,36.2,37.5,38.4,38.7,38.6,37.7,36.3,34.1,31.8,30.1,29.0,27.9,26.9,26.0,25.3,24.7,24.2,23.9,23.8,25.1,27.2,29.6,32.0,34.2,35.9,37.1,37.8,37.9,37.3,36.2,34.5,32.7,30.6,29.0,27.9,26.8,26.0,25.5,25.2,25.0,24.9,24.7,24.6,25.5,27.4,29.3,31.2,32.8,34.1,35.8,36.8,37.0,36.6,35.3,33.8,32.0,30.0,28.7,27.7,26.8,26.0,25.6,25.5,25.4,25.3,25.2,25.1,25.6,26.6,27.8,29.2,30.8,32.1,33.4,34.0,34.0,33.6,32.9,32.1,31.0,29.2,28.0,27.2,26.5,25.9,25.5,25.2,25.0,24.8,24.5,24.4,25.2,26.3,28.0,29.9,31.9,33.6,34.7,35.3,35.5,35.4,34.9,34.1,32.6,30.5,29.5,28.4,27.4,26.5,25.8,25.1,24.5,23.9,23.8,23.8,25.0,27.1,29.4,31.9,34.1,35.8,37.0,37.8,38.3,38.3,38.0,37.0,35.2,32.1,30.4,29.0,28.0,27.1,26.4,25.6,25.0,24.4,23.9,23.9,25.5,27.6,30.0,32.5,34.7,36.4,37.7,38.6,39.0,38.9,38.1,36.8,34.8,32.2,30.4,29.1,28.0,27.0,26.2,25.7,25.4,25.2,24.9,24.7,25.9,28.1,30.4,32.6,34.6,36.3,37.6,38.4,38.7,38.5,37.6,36.0,33.8,31.5,29.8,28.6,27.5,26.7,26.1,25.7,25.6,25.4,25.2,25.1,26.1,28.0,30.2,32.6,34.8,36.7,38.1,39.0,39.4,39.1,38.1,36.6,34.5,32.0,29.9,28.5,27.3],"price":[0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289],"setpoint_c":{"Building_1":[23.22,22.22,22.22,22.22,22.22,22.22,22.22,22.33,22.78,23.33,24.44,24.44,24.44,24.44,24.44,24.44,23.56,25.56,26.5,24.44,21.67,24.44,22.83,20.72,20.56,21.67,22.22,22.22,22.22,22.22,22.22,22.33,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.61,25.0,24.5,24.44,24.44,24.44,22.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,22.44,22.78,24.44,24.44,24.44,24.39,23.56,22.22,22.56,24.44,24.44,24.44,22.22,24.44,24.44,23.22,23.56,23.83,24.11,24.44,24.78,25.06,23.33,23.89,23.89,25.67,24.44,24.44,25.83,25.0,25.83,24.44,24.44,24.44,24.44,24.44,24.44,24.44,22.22,23.22,22.22,22.22,22.22,22.22,22.22,22.22,22.33,22.78,23.33,23.89,24.44,24.44,24.44,24.44,24.44,24.39,24.39,24.39,24.39,24.39,24.33,24.33,24.33,24.33,24.44,22.22,22.22,22.22,22.22,22.22,22.22,22.22,22.78,23.89,24.44,24.44,25.22,25.0,27.22,27.22,27.22,26.67,25.67,25.78,24.44,24.44,24.44,23.22,22.22,22.22,22.22,22.22,22.22,22.22,22.33,22.78,23.33,23.89,24.44,24.44,24.44,24.44,25.56,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.11,27.0,26.89,26.78,26.67,26.56,26.39,26.28,26.17,26.06,25.94,25.83,25.72,25.61,25.5,25.39,25.28,25.11,25.0,24.89,24.78,24.67,24.56,22.78,23.22,22.22,22.22,22.22,22.22,22.22,22.22,22.33,22.78,24.44,24.44,24.44,24.44,24.44,24.44,24.56,26.28,24.17,24.28,24.44,24.44,25.78,24.44,24.44,23.22,22.22,22.22,22.22,22.22,22.22,22.22,22.33,22.22,23.33,23.89,24.44,24.44,24.44,23.61,23.33,24.17,24.44,24.44,24.44,24.44,24.44,24.44,22.78,23.22,22.22,22.22,22.22,22.22,22.22,22.22,22.33,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,22.22,23.28,22.22,22.22,22.22,22.22,22.22,22.22,22.28,22.22,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,23.28,22.22,22.22,22.22,22.22,22.22,22.22,22.28,22.78,24.44,24.44,24.44,25.67,26.67,26.67,26.67,26.67,26.67,25.33,24.44,24.44,24.44,24.44,24.44,23.28,22.22,22.22,22.22,22.22,22.22,22.22,22.28,22.78,24.44,24.44,24.44,24.44,25.33,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,23.28,22.22,22.22,22.22,22.22,22.22,22.22,22.28,22.78,24.44,24.44,24.44,24.44,25.0,25.56,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,25.56,25.0,26.67,25.56,23.5,23.33,24.28,24.44,25.33,26.67,24.78,24.44,24.44,23.28,22.22,22.22,22.22,22.22,22.22,22.22,22.28,22.78,24.44,24.44,24.44,24.5,25.67,24.44,24.44,24.44,24.22,23.33,23.56,24.44,24.44,24.44,24.44,23.28,22.22,22.22,22.22,22.22,22.22,22.22,22.28,22.78,24.44,24.44,24.44,24.44,25.06,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,23.28,22.22,22.22,22.22,22.22,22.22,22.22,22.28,22.22,24.44,24.44,24.44,24.44,24.44,24.17,23.33,23.61,24.44,24.44,24.44,24.44,24.44,24.44,24.44,23.28,22.22,22.22,22.22,22.22,22.22,22.22,22.28,22.78,24.44,24.44,24.44,24.44,24.78,25.0,24.78,23.33,23.78,24.44,24.44,24.44,24.44,24.44,24.44,23.28,22.22,22.22,22.22,22.22,22.22,22.22,22.28,22.78,24.44,24.44,24.44,24.44,25.11,24.94,23.33,23.72,24.44,24.44,24.44,24.44,24.44,24.44,24.44,23.39,24.44,24.44,24.44,24.44,24.44,24.44,23.06,22.78,24.17,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.33,23.89,24.0,24.44,24.44,22.22,22.22,23.28,22.22,23.67,23.89,22.44,22.22,22.22,22.28,24.44,24.44,24.44,24.44,24.44,25.44,26.67,24.22,23.33,24.06,24.44,24.28,23.89,24.06,24.44,24.44,23.28,22.39,23.33,23.17,22.22,22.22,22.22,22.28,22.78,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,25.44,26.39,24.44,24.44,24.44,24.44,24.44,23.33,22.22,22.22,22.22,22.22,22.22,22.22,22.22,22.78,24.44,24.44,24.44,24.44,24.44,24.44,24.11,23.89,24.44,25.17,24.44,24.44,24.44,24.44,22.78,23.33,22.22,22.22,22.22,22.22,22.22,22.22,22.22,22.78,24.44,24.44,24.44,26.39,26.67,25.0,24.44,24.44,26.67,26.0,23.33,24.44,24.44,24.44,22.22,23.33,22.22,22.22,22.22,22.22,22.22,22.22,22.22,22.22,24.44,24.44,22.22,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,23.33,22.22,22.22,22.22,22.22,22.22,22.22,22.22,22.78,24.44,22.78,24.44,22.22,24.44,24.44,24.44,24.44,25.94,26.44,24.44,24.44,22.22,21.11,21.67,23.33,23.72,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,25.06,24.44,24.44,24.44,24.44],"Building_2":[24.44,24.44,24.44,24.44,24.44,24.44,24.78,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,23.39,22.78,23.94,24.44,23.44,22.78,23.78,24.44,24.44,24.78,25.0,25.0,25.0,25.0,25.0,24.89,23.89,24.0,25.0,25.0,25.0,25.0,25.0,25.0,24.94,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.78,25.0,25.0,25.0,25.0,25.0,24.61,23.33,23.72,25.0,25.0,25.0,25.0,25.0,24.67,23.61,23.33,24.0,24.44,24.28,22.78,22.94,24.44,24.44,24.78,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.94,24.44,23.61,22.78,23.61,24.44,24.44,24.44,24.44,24.94,25.0,25.0,25.0,23.33,23.33,23.44,23.5,23.61,23.67,23.78,23.89,23.94,24.06,24.11,24.22,24.33,24.39,23.33,23.94,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.11,23.89,24.78,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,23.33,23.33,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.44,23.22,24.89,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.56,23.39,22.22,21.67,23.28,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.17,23.33,24.17,25.0,25.0,25.0,25.0,25.0,25.0,24.0,23.89,24.39,23.89,24.44,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.61,23.89,22.78,23.56,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.83,23.44,24.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,23.33,23.33,25.0,25.0,25.0,25.0,25.0,25.0,24.39,24.44,23.67,23.33,24.5,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.78,23.33,23.56,25.0,25.0,25.0,25.0,25.0,25.0,25.0,23.61,23.33,24.72,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.72,23.89,24.17,24.33,23.89,24.17,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,23.67,23.33,24.67,25.0,25.0,25.0,25.0,25.0,25.0,25.0,23.89,23.33,24.44,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,23.5,23.33,24.83,25.0,25.0,25.0,25.0,24.17,23.89,24.72,25.0,25.0,25.0,24.72,23.89,24.17,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.33,22.78,23.44,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.44,23.33,23.89,25.0,25.0,25.0,25.0,25.0,25.0,25.0,23.56,23.33,24.78,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.44,23.17,22.22,23.11,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,23.78,24.17,25.0,25.0,25.0,25.0,25.0,25.0,25.0,23.39,23.33,24.94,25.0,25.0,25.0,25.0,25.0,23.83,23.33,24.5,24.28,23.33,24.06,22.94,22.78,24.78,25.0,25.0,25.0,25.0,25.0,23.83,22.78,23.94,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.5,23.33,23.83,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,23.39,22.78,24.39,25.0,25.0,25.0,25.0,24.89,23.89,24.0,25.0,25.0,25.0,25.0,23.39,23.33,24.94,25.0,25.0,25.0,25.0,24.06,24.17,24.78,22.78,22.78,24.94,25.0,25.0,25.0,25.0,24.17,24.11,24.44,24.83,25.0,24.22,23.89,24.67,23.44,23.22,22.78,24.44,25.0,25.0,25.0,25.0,24.56,24.44,24.67,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.83,24.44,24.22,24.44,24.5,25.0,25.0,25.0,25.0,25.0,24.72,25.0,25.0,25.0,25.0,25.0,24.72,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.83,24.61,24.44,24.22,24.44,24.78,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.78,24.44,24.67,25.0,25.0,24.0,23.89,24.28,23.89,24.56,25.0,25.0,25.0,25.0,25.0,25.0,24.06,24.61,25.0,25.0,25.0,24.56,23.89,24.33,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.17,23.89,24.72,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.67,25.0,25.0,25.0,25.11],"Building_3":[24.44,24.44,24.44,24.44,24.44,24.44,24.11,23.33,23.33,23.33,23.33,23.33,23.33,23.33,23.33,23.33,23.33,24.44,24.44,24.44,24.44,24.44,24.44,23.94,23.89,23.89,23.89,24.39,24.44,23.94,24.17,24.44,24.11,23.89,23.89,23.89,23.89,23.89,23.89,23.39,23.33,24.44,24.44,23.33,23.17,23.11,24.06,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,23.94,23.89,23.89,23.89,23.89,23.89,23.89,23.33,23.33,23.61,23.89,23.33,23.33,23.33,23.33,23.56,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,23.78,23.33,23.39,23.72,23.89,23.89,23.89,23.89,23.89,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.17,23.33,23.33,23.33,23.33,23.33,23.33,23.33,23.33,23.33,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,23.89,23.89,23.89,23.72,23.33,23.33,23.33,23.33,23.56,23.89,23.89,23.94,23.94,24.0,24.0,24.0,24.06,24.06,24.11,24.11,24.17,24.17,24.17,24.22,24.22,24.28,24.28,24.33,24.33,24.33,24.39,24.39,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.39,23.89,23.39,23.78,23.33,23.33,23.33,23.33,23.5,23.56,22.78,22.78,22.78,23.67,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.0,23.89,23.89,23.89,23.67,24.44,23.89,23.33,23.33,23.33,23.78,24.44,24.44,24.17,23.89,23.89,23.89,23.89,24.17,24.44,23.89,23.89,23.89,23.89,23.89,23.89,23.89,23.89,23.89,24.44,24.44,24.44,24.44,23.61,23.39,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.0,23.89,23.89,23.89,23.89,23.89,23.89,23.89,23.89,24.28,23.89,23.89,23.89,23.89,23.89,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.17,23.89,24.44,24.44,24.44,24.44,24.11,23.89,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.0,23.89,24.28,23.89,23.89,23.89,23.89,23.89,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,23.94,23.89,23.89,23.89,23.89,23.89,23.89,23.89,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.22,23.89,23.89,23.89,23.89,23.89,23.89,23.89,23.89,23.89,24.44,24.11,23.67,23.33,23.33,23.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.06,23.89,23.89,23.89,23.89,23.89,23.89,23.89,23.89,24.11,23.89,23.89,23.89,23.89,23.89,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,23.94,23.89,24.33,24.44,24.44,24.44,24.44,24.44,24.39,23.89,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.39,23.89,23.89,23.89,23.89,23.89,23.89,23.89,23.89,23.89,24.17,23.89,23.89,23.89,23.89,23.89,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,23.94,23.89,23.89,23.89,23.89,23.89,23.89,23.89,23.89,24.44,24.44,24.44,24.44,24.44,24.44,23.94,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.06,24.44,24.06,23.89,23.89,23.89,24.28,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.11,23.89,23.89,23.89,23.89,24.33,23.89,23.89,23.89,23.89,23.89,24.0,23.89,23.89,23.89,23.89,23.89,23.89,24.17,24.44,24.44,24.11,23.89,23.89,23.89,23.89,23.89,23.89,23.89,23.72,23.33,23.56,23.89,23.89,23.89,24.0,23.89,23.89,23.89,24.33,24.44,24.44,24.44,24.28,23.89,23.89,23.89,23.89,23.89,23.89,23.89,23.89,23.89,24.44,24.0,23.89,23.89,23.89,23.89,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.0,23.89,23.89,23.89,23.89,23.89,23.89,24.44,24.44,24.22,23.89,23.89,23.89,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.17,23.89,23.89,23.89,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.28,23.89,23.89,23.89,23.89,24.44,24.44,24.44,24.44,24.44,24.44]}}],"schema":2}; diff --git a/docs/data/viewer.json b/docs/data/viewer.json index fbc86c8..10c4e96 100644 --- a/docs/data/viewer.json +++ b/docs/data/viewer.json @@ -1 +1 @@ -{"buildings":[{"id":"Building_1","name":"Building 1"},{"id":"Building_2","name":"Building 2"},{"id":"Building_3","name":"Building 3"}],"comfort_band_k":2.0,"dataset":"citylearn_challenge_2023_phase_2_local_evaluation","kpis":[{"id":"cost_total","name":"Electricity cost","unit":"ratio to no control"},{"id":"carbon_emissions_total","name":"Carbon emissions","unit":"ratio to no control"},{"id":"electricity_consumption_total","name":"Grid import","unit":"ratio to no control"},{"id":"discomfort_proportion","name":"Discomfort","unit":"share of occupied hours"},{"id":"discomfort_hot_proportion","name":"Too warm","unit":"share of occupied hours"},{"id":"discomfort_cold_proportion","name":"Too cool","unit":"share of occupied hours"},{"id":"ramping_average","name":"Ramping","unit":"ratio to no control"},{"id":"daily_peak_average","name":"Daily peak","unit":"ratio to no control"},{"id":"all_time_peak_average","name":"All-time peak","unit":"ratio to no control"},{"id":"daily_one_minus_load_factor_average","name":"1 - daily load factor","unit":"ratio to no control"},{"id":"one_minus_thermal_resilience_proportion","name":"1 - thermal resilience","unit":"share of outage hours"},{"id":"power_outage_normalized_unserved_energy_total","name":"Unserved energy in outages","unit":"share"}],"sample":false,"scenarios":[{"agent":{"actions":{"Building_1":{"battery":[0.0,0.0,0.011,0.02,0.021,0.0,0.0,0.098,0.0,0.15,0.089,0.15,0.15,0.15,0.095,-0.242,-0.255,-0.286,0.0,-0.011,-0.011,-0.012,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.029,0.071,0.185,0.191,0.0,0.015,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.132,0.0,0.0,0.028,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.2,-0.092,-0.481,0.0,0.0,0.0,0.0,0.05,0.1,0.15,0.15,0.15,0.15,0.1,0.023,0.0,0.0,0.007,0.0,0.0,0.0,0.0,0.0,0.0,-0.249,-0.262,-0.295,-0.033,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.0,0.15,0.0,0.15,-0.471,0.03,0.15,0.0,0.15,0.103,0.0,0.085,0.15,0.093,0.0,-0.5,-0.218,0.0,-0.025,0.0,0.0,0.0,0.05,0.15,0.15,0.15,0.15,0.15,0.121,0.026,0.0,0.008,0.0,-0.5,0.0,0.15,0.15,-0.191,-0.197,-0.231,0.0,0.0,0.0,0.0,0.0,0.05,0.0,0.15,0.15,0.15,0.15,0.0,0.15,0.0,0.0,0.072,0.041,0.01,0.0,0.0,0.0,-0.152,-0.242,-0.396,-0.012,-0.012,-0.013,-0.016,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.055,0.038,0.0,-0.074,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.05,0.0,0.05,0.15,0.0,0.15,0.0,0.15,0.0,0.15,0.15,0.077,0.017,0.0,0.0,-0.5,-0.108,-0.114,-0.128,0.0,0.0,0.0,-0.013,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.0,0.023,0.05,0.0,0.0,0.0,0.0,0.104,-0.241,-0.254,-0.285,0.0,0.0,0.0,0.0,-0.033,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.0,0.0,0.104,0.079,0.017,0.0,0.0,0.0,-0.247,-0.261,-0.293,0.0,0.0,0.0,0.0,0.0,0.0,0.05,0.15,0.15,0.15,0.15,0.15,0.091,0.0,0.02,0.0,0.0,0.0,0.0,0.0,0.0,-0.066,-0.189,-0.302,0.0,-0.249,-0.027,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.042,0.011,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.248,-0.262,-0.294,0.0,-0.011,-0.011,-0.013,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.05,0.0,0.0,0.0,0.0,0.0,0.0,0.05,0.15,0.15,0.15,0.0,0.15,0.0,0.1,0.1,0.0,0.0,0.0,0.05,0.0,-0.233,-0.247,-0.275,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.131,0.0,0.028,0.009,-0.163,0.144,0.0,0.032,0.0,0.0,0.0,-0.245,-0.173,-0.184,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.074,0.016,0.0,0.0,0.0,0.006,0.0,0.0,0.0,0.0,0.0,0.0,-0.166,-0.3,-0.334,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.0,0.0,0.093,0.051,0.0,0.0,0.012,0.0,-0.247,-0.262,-0.294,-0.033,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.0,0.15,0.15,0.042,-0.338,0.15,0.15,0.046,0.0,0.039,0.01,0.0,0.0,-0.248,-0.262,-0.295,0.0,-0.011,-0.011,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.013,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.034,0.0,0.0,-0.144,0.0,0.0,0.0,-0.016,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.0,0.15,0.0,0.15,0.0,0.0,0.04,0.0,0.012,0.15,0.15,0.121,-0.24,-0.254,-0.1,0.0,0.0,0.0,0.0,0.0,0.05,0.1,0.0,0.15,0.15,0.15,0.085,0.019,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.247,-0.261,-0.292,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.131,0.028,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.246,-0.261,-0.292,-0.033,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.0,0.15,0.15,0.15,0.0,0.0,0.049,0.038,0.0,0.092,0.021,0.0,-0.247,-0.261,-0.293,0.0,-0.033,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.042,0.011,0.0,0.0,0.0,0.0,0.0,0.0,-0.248,-0.262,-0.294,0.0,-0.011,-0.011,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],"cooling":[0.068,0.081,0.079,0.072,0.063,0.072,0.072,0.085,0.293,0.15,0.08,0.26,0.281,0.368,0.461,0.647,0.781,0.377,0.133,0.306,0.642,0.116,0.214,0.41,0.35,0.1,0.008,0.078,0.087,0.094,0.106,0.12,0.028,0.088,0.184,0.277,0.456,0.582,0.6,0.634,0.598,0.598,0.487,0.287,0.329,0.558,0.706,0.527,0.344,0.247,0.186,0.146,0.143,0.156,0.148,0.17,0.251,0.003,0.036,0.0,0.078,0.108,0.151,0.307,0.56,0.49,0.062,0.009,0.006,0.22,0.047,0.1,0.081,0.05,0.03,0.006,0.012,0.004,0.0,0.079,0.072,0.092,0.009,0.103,0.12,0.0,0.097,0.078,0.178,0.274,0.214,0.161,0.136,0.106,0.085,0.206,0.117,0.135,0.119,0.095,0.109,0.05,0.103,0.12,0.117,0.102,0.107,0.117,0.2,0.285,0.376,0.469,0.479,0.53,0.421,0.24,0.163,0.141,0.13,0.121,0.102,0.074,0.183,0.185,0.142,0.121,0.169,0.15,0.21,0.402,0.233,0.182,0.2,0.195,0.295,0.127,0.093,0.31,0.258,0.29,0.3,0.337,0.265,0.188,0.227,0.28,0.17,0.131,0.113,0.103,0.15,0.149,0.25,0.1,0.119,0.211,0.277,0.368,0.465,0.377,0.084,0.095,0.149,0.11,0.148,0.101,0.071,0.05,0.033,0.019,0.008,0.0,0.0,0.069,0.017,0.012,0.101,0.081,0.112,0.153,0.202,0.261,0.317,0.352,0.371,0.354,0.28,0.19,0.142,0.131,0.097,0.079,0.081,0.059,0.048,0.041,0.035,0.024,0.049,0.07,0.203,0.202,0.242,0.307,0.379,0.461,0.535,0.627,0.593,0.568,0.445,0.315,0.2,0.164,0.132,0.286,0.216,0.223,0.194,0.155,0.1,0.09,0.092,0.116,0.148,0.084,0.148,0.217,0.32,0.4,0.499,0.53,0.417,0.561,0.554,0.388,0.285,0.101,0.14,0.12,0.225,0.296,0.153,0.105,0.092,0.094,0.1,0.158,0.257,0.22,0.13,0.153,0.246,0.339,0.689,0.698,0.525,0.42,0.407,0.305,0.137,0.088,0.076,0.256,0.199,0.226,0.213,0.178,0.153,0.139,0.14,0.133,0.017,0.077,0.15,0.236,0.307,0.36,0.43,0.52,0.615,0.669,0.525,0.3,0.247,0.161,0.106,0.309,0.18,0.196,0.184,0.1,0.078,0.088,0.113,0.147,0.194,0.0,0.067,0.162,0.233,0.328,0.432,0.49,0.557,0.525,0.398,0.284,0.263,0.177,0.111,0.085,0.213,0.274,0.212,0.1,0.087,0.104,0.125,0.19,0.177,0.1,0.153,0.211,0.104,0.102,0.128,0.248,0.3,0.32,0.43,0.45,0.284,0.2,0.138,0.111,0.208,0.275,0.219,0.167,0.18,0.1,0.115,0.156,0.2,0.091,0.161,0.236,0.331,0.23,0.519,0.52,0.519,0.532,0.4,0.282,0.193,0.249,0.128,0.093,0.202,0.28,0.239,0.189,0.154,0.135,0.1,0.251,0.208,0.075,0.146,0.196,0.559,0.441,0.383,0.204,0.276,0.364,0.262,0.185,0.189,0.114,0.078,0.054,0.038,0.025,0.015,0.007,0.0,0.008,0.018,0.033,0.066,0.103,0.159,0.406,0.706,0.459,0.53,0.909,0.972,0.66,0.444,0.243,0.089,0.176,0.25,0.193,0.234,0.305,0.249,0.195,0.161,0.227,0.168,0.162,0.085,0.008,0.084,0.167,0.26,0.23,0.352,0.482,0.471,0.433,0.32,0.301,0.084,0.155,0.049,0.011,0.152,0.228,0.196,0.1,0.068,0.072,0.085,0.103,0.084,0.024,0.042,0.02,0.071,0.002,0.115,0.122,0.132,0.126,0.118,0.101,0.068,0.075,0.066,0.06,0.115,0.203,0.177,0.14,0.12,0.102,0.102,0.13,0.13,0.0,0.0,0.044,0.08,0.106,0.143,0.236,0.19,0.051,0.03,0.097,0.088,0.084,0.074,0.134,0.135,0.186,0.167,0.134,0.115,0.099,0.101,0.116,0.124,0.068,0.124,0.209,0.296,0.3,0.345,0.43,0.708,0.687,0.478,0.295,0.223,0.1,0.063,0.055,0.179,0.257,0.213,0.166,0.0,0.177,0.048,0.086,0.129,0.059,0.156,0.389,0.41,0.384,0.47,0.831,0.895,0.603,0.419,0.287,0.208,0.15,0.1,0.082,0.205,0.105,0.079,0.069,0.063,0.056,0.074,0.209,0.334,0.325,0.365,0.3,0.437,0.496,0.591,0.695,0.61,0.54,0.455,0.32,0.174,0.11,0.349,0.25,0.091,0.199,0.085,0.063,0.13,0.174,0.179,0.12,0.0,0.076,0.173,0.234,0.419,0.348,0.19,0.54,0.82,0.693,0.435,0.316,0.283,0.213,0.213,0.115,0.157,0.228,0.122,0.101,0.171,0.216,0.219,0.193,0.163,0.0,0.055,0.102,0.171,0.249,0.331,0.333,0.327,0.184,0.031,0.306,0.276,0.268,0.188,0.139,0.154,0.258,0.22,0.18,0.104,0.081,0.086,0.119,0.11,0.033,0.112,0.171,0.254,0.32,0.386,0.479,0.52,0.442,0.227,0.207,0.19,0.133,0.1,0.282,0.15,0.233,0.21,0.166,0.141,0.08,0.11,0.172,0.189,0.122,0.186,0.22,0.04,0.088,0.401,0.707,0.825,0.34,0.25,0.598,0.304,0.225,0.144,0.38,0.09,0.25,0.1,0.057,0.149,0.149,0.238,0.137,0.196,0.134,0.199,0.584,0.36,0.352,0.561,0.608,0.634,0.629,0.492,0.453,0.268,0.236,0.137,0.08,0.225,0.31,0.18,0.078,0.179,0.1,0.164,0.205,0.214,0.215,0.386,0.387,0.654,0.491,0.525,0.527,0.591,0.363,0.204,0.426,0.383,0.522,0.593,0.393,0.155,0.093,0.048,0.049,0.053,0.058,0.073,0.179,0.215,0.35,0.4,0.406,0.475,0.574,0.677,0.723,0.832,0.778,0.45,0.357,0.273,0.215,0.147],"dhw":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0]},"Building_2":{"battery":[0.0,0.0,0.011,0.02,0.021,0.0,0.0,0.098,0.0,0.15,0.15,0.15,0.15,0.15,0.048,-0.245,-0.259,-0.291,0.0,-0.011,-0.011,-0.012,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.0,0.0,0.0,0.0,-0.206,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.1,0.05,0.0,0.0,0.0,0.0,0.0,0.0,-0.107,-0.18,-0.381,0.0,0.0,0.0,0.0,0.05,0.1,0.15,0.15,0.15,0.15,0.117,0.025,0.0,0.0,0.008,0.0,0.0,0.0,0.0,0.0,0.0,-0.249,-0.262,-0.294,-0.033,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.0,0.15,0.0,0.15,-0.074,0.15,0.15,0.0,0.107,0.024,0.0,0.0,0.0,-0.2,-0.231,-0.259,-0.13,0.0,-0.014,0.0,0.0,0.0,0.05,0.15,0.15,0.15,0.15,0.15,0.123,0.026,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.247,-0.255,-0.255,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.0,0.15,0.0,0.0,0.0,0.0,0.093,0.021,0.0,0.0,-0.231,-0.238,-0.252,-0.025,-0.027,-0.028,-0.033,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.05,0.15,0.0,0.15,0.0,0.15,0.0,0.15,0.15,0.123,0.026,0.0,0.0,0.0,-0.247,-0.26,-0.292,0.0,0.0,0.0,-0.033,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.0,0.0,0.05,0.0,0.0,0.0,0.0,0.122,-0.24,-0.254,-0.284,0.0,0.0,0.0,0.0,-0.033,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.0,0.0,0.0,0.0,0.0,0.1,0.0,0.083,-0.243,-0.176,-0.248,0.0,0.0,0.0,0.0,0.0,0.0,0.05,0.0,0.15,0.15,0.15,0.15,0.103,0.0,0.023,0.0,0.0,0.0,0.0,0.0,0.0,-0.247,-0.255,-0.297,0.0,-0.033,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.042,0.01,0.0,-0.5,0.0,0.15,0.0,0.15,0.15,0.074,-0.243,-0.257,-0.288,0.0,-0.011,-0.011,-0.012,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.05,0.0,0.0,0.0,0.0,0.0,0.0,0.05,0.15,0.15,0.15,0.0,0.15,0.0,0.0,0.0,0.0,0.0,0.0,0.127,0.0,-0.201,-0.214,-0.202,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.104,0.0,0.023,0.007,-0.49,0.15,0.0,0.15,0.15,0.069,0.0,-0.5,-0.099,-0.105,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.045,0.011,0.0,0.0,0.003,0.0,0.0,0.0,0.0,0.0,0.0,-0.137,-0.194,-0.098,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.146,0.0,0.0,0.0,0.0,0.0,0.0,0.033,0.0,-0.246,-0.26,-0.206,-0.108,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.0,0.15,0.15,0.033,-0.089,0.086,0.02,0.0,0.0,0.0,0.0,0.0,0.0,-0.247,-0.218,-0.274,-0.021,-0.023,-0.024,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.027,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.0,0.0,-0.237,0.0,0.0,0.0,-0.026,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.0,0.15,0.0,0.15,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,-0.234,-0.248,-0.093,0.0,0.0,0.0,0.0,0.0,0.05,0.1,0.0,0.15,0.15,0.15,0.085,0.019,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.247,-0.254,-0.273,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.107,0.024,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.247,-0.261,-0.292,-0.033,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.0,0.15,0.15,0.15,0.0,0.0,-0.227,0.15,0.0,0.15,0.128,0.028,-0.247,-0.261,-0.292,0.0,-0.033,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.043,0.01,0.0,0.0,0.0,0.0,0.0,0.0,-0.248,-0.262,-0.293,0.0,-0.011,-0.011,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],"cooling":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.497,0.159,0.233,0.3,0.401,0.474,0.604,0.696,0.671,0.622,0.462,0.276,0.346,0.45,0.32,0.06,0.011,0.089,0.129,0.006,0.0,0.0,0.0,0.023,0.453,0.189,0.278,0.428,0.47,0.728,0.838,0.984,0.64,0.601,0.479,0.256,0.203,0.192,0.199,0.131,0.083,0.057,0.04,0.028,0.02,0.014,0.007,0.026,0.074,0.121,0.181,0.255,0.271,0.448,0.403,0.167,0.204,0.203,0.152,0.099,0.107,0.178,0.2,0.035,0.007,0.02,0.103,0.073,0.0,0.0,0.0,0.0,0.0,0.027,0.059,0.069,0.091,0.111,0.164,0.176,0.235,0.236,0.27,0.104,0.068,0.055,0.077,0.118,0.147,0.02,0.0,0.0,0.0,0.0,0.0,0.215,0.099,0.144,0.392,0.456,0.451,0.487,0.575,0.586,0.585,0.547,0.433,0.23,0.185,0.145,0.113,0.082,0.145,0.041,0.0,0.0,0.0,0.0,0.0,0.065,0.137,0.171,0.21,0.261,0.458,0.543,0.448,0.452,0.486,0.469,0.366,0.204,0.156,0.13,0.097,0.227,0.167,0.0,0.0,0.0,0.0,0.0,0.134,0.064,0.19,0.416,0.169,0.255,0.342,0.425,0.541,0.535,0.527,0.457,0.31,0.193,0.169,0.14,0.148,0.214,0.256,0.222,0.0,0.0,0.0,0.0,0.0,0.104,0.085,0.137,0.211,0.28,0.346,0.408,0.495,0.485,0.493,0.452,0.35,0.22,0.169,0.15,0.129,0.082,0.053,0.036,0.022,0.013,0.007,0.002,0.04,0.104,0.181,0.224,0.267,0.328,0.384,0.448,0.541,0.521,0.498,0.442,0.343,0.201,0.154,0.123,0.188,0.067,0.048,0.032,0.02,0.012,0.008,0.004,0.035,0.093,0.203,0.276,0.346,0.419,0.502,0.719,0.698,0.695,0.685,0.622,0.476,0.313,0.217,0.152,0.205,0.247,0.076,0.009,0.019,0.021,0.021,0.02,0.046,0.219,0.567,0.25,0.452,0.446,0.441,0.525,0.611,0.588,0.569,0.522,0.415,0.267,0.195,0.143,0.147,0.182,0.251,0.093,0.0,0.0,0.005,0.008,0.051,0.121,0.208,0.423,0.295,0.362,0.421,0.491,0.596,0.604,0.605,0.639,0.474,0.282,0.218,0.189,0.297,0.135,0.009,0.017,0.021,0.016,0.013,0.01,0.049,0.111,0.168,0.194,0.221,0.277,0.335,0.402,0.81,0.805,0.384,0.452,0.41,0.277,0.259,0.226,0.248,0.149,0.181,0.16,0.006,0.0,0.0,0.0,0.047,0.119,0.452,0.243,0.293,0.347,0.399,0.446,0.525,0.527,0.529,0.758,0.415,0.293,0.196,0.161,0.127,0.115,0.219,0.132,0.0,0.0,0.002,0.004,0.062,0.139,0.288,0.509,0.578,0.316,0.379,0.479,0.593,0.602,0.608,0.574,0.48,0.319,0.278,0.317,0.184,0.117,0.138,0.08,0.006,0.015,0.013,0.012,0.059,0.129,0.191,0.247,0.3,0.379,0.459,0.536,0.879,0.917,0.567,0.511,0.447,0.308,0.218,0.165,0.121,0.091,0.169,0.187,0.02,0.005,0.037,0.012,0.045,0.156,0.173,0.213,0.287,0.364,0.444,0.62,0.587,0.564,0.515,0.495,0.363,0.268,0.2,0.164,0.2,0.087,0.2,0.173,0.0,0.002,0.008,0.01,0.333,0.17,0.269,0.529,0.216,0.311,0.635,0.476,0.692,0.62,0.403,0.328,0.227,0.154,0.118,0.095,0.069,0.109,0.226,0.089,0.0,0.0,0.0,0.0,0.008,0.064,0.046,0.07,0.082,0.1,0.127,0.174,0.225,0.153,0.134,0.095,0.064,0.039,0.035,0.028,0.018,0.052,0.137,0.045,0.0,0.0,0.0,0.0,0.001,0.04,0.031,0.158,0.227,0.059,0.084,0.116,0.146,0.149,0.148,0.118,0.136,0.074,0.059,0.048,0.079,0.25,0.21,0.047,0.0,0.0,0.0,0.0,0.011,0.072,0.121,0.177,0.231,0.303,0.367,0.426,0.521,0.729,0.595,0.349,0.526,0.207,0.168,0.14,0.106,0.077,0.197,0.158,0.0,0.0,0.0,0.0,0.045,0.428,0.357,0.505,0.299,0.433,0.7,0.6,0.948,0.972,0.472,0.507,0.455,0.31,0.226,0.189,0.282,0.343,0.083,0.003,0.013,0.018,0.013,0.011,0.057,0.206,0.29,0.445,0.507,0.768,0.71,0.515,0.667,0.706,0.693,0.605,0.482,0.321,0.232,0.179,0.128,0.26,0.28,0.012,0.007,0.013,0.017,0.017,0.066,0.44,0.364,0.167,0.621,0.38,0.499,0.859,0.904,0.565,0.896,0.551,0.623,0.292,0.337,0.227,0.092,0.27,0.233,0.0,0.001,0.013,0.02,0.022,0.182,0.175,0.17,0.166,0.204,0.373,0.505,0.377,0.654,0.685,0.688,0.262,0.187,0.161,0.145,0.116,0.133,0.112,0.063,0.026,0.029,0.027,0.024,0.021,0.053,0.115,0.189,0.233,0.285,0.335,0.412,0.443,0.522,0.525,0.529,0.498,0.388,0.281,0.232,0.206,0.453,0.1,0.048,0.073,0.018,0.02,0.017,0.016,0.07,0.194,0.429,0.288,0.363,0.551,0.478,0.592,0.65,0.68,0.71,0.688,0.947,0.38,0.291,0.249,0.221,0.183,0.162,0.096,0.046,0.024,0.025,0.022,0.089,0.179,0.336,0.339,0.392,0.469,0.562,0.639,0.77,0.789,0.839,0.855,0.649,0.385,0.286,0.364,0.291,0.295,0.169,0.218,0.029,0.034,0.033,0.032,0.298,0.168,0.404,0.355,0.377,0.492,0.589,0.768,1.0,0.907,0.721,0.671,0.54,0.426,0.268,0.217,0.159,0.121,0.179,0.172,0.039,0.032,0.031,0.034,0.067,0.15,0.278,0.375,0.464,0.572,0.692,0.797,0.933,0.933,0.867,0.748,0.663,0.38,0.264,0.207,0.137],"dhw":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0]},"Building_3":{"battery":[0.0,0.0,0.011,0.02,0.021,0.0,0.0,0.098,0.0,0.15,0.15,0.15,0.15,0.15,0.15,-0.158,-0.196,-0.291,-0.035,-0.04,-0.049,-0.074,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.0,0.0,0.0,0.0,-0.157,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.1,0.05,0.0,0.0,0.0,0.0,0.15,0.0,-0.075,-0.127,-0.244,0.0,0.0,0.0,0.0,0.05,0.1,0.0,0.15,0.15,0.15,0.15,0.104,0.057,0.0,0.034,0.02,0.012,0.0,0.0,0.0,0.0,-0.244,-0.303,-0.448,-0.217,-0.104,-0.05,0.0,0.0,0.0,0.15,0.15,0.0,0.15,0.0,0.15,-0.296,0.15,0.15,0.0,0.15,0.15,0.0,0.15,0.15,-0.14,-0.238,-0.352,-0.169,0.0,-0.081,0.0,0.0,0.0,0.05,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.14,0.077,-0.109,0.101,0.056,0.031,-0.234,-0.303,-0.448,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.0,0.15,0.0,0.0,0.0,0.15,0.13,0.07,0.0,0.041,-0.241,-0.298,-0.442,-0.053,-0.062,-0.077,-0.113,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.047,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.015,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.05,0.0,0.05,0.15,0.0,0.15,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.0,0.15,-0.3,-0.168,-0.208,-0.308,0.0,0.0,0.0,-0.146,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.0,0.0,0.15,0.0,0.0,0.0,0.15,0.15,-0.203,-0.251,-0.371,0.0,0.0,0.0,0.0,-0.179,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,-0.208,-0.257,-0.381,0.0,0.0,0.0,0.0,0.0,0.0,0.05,0.0,0.15,0.15,0.15,0.15,0.15,0.0,0.0,0.15,0.137,0.0,0.077,0.043,0.025,-0.244,-0.302,-0.447,0.0,-0.217,-0.104,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,-0.409,0.0,0.15,0.0,0.15,0.15,0.093,-0.232,-0.287,-0.425,-0.051,-0.06,-0.073,-0.109,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.037,0.0,0.0,-0.017,0.0,0.0,0.05,0.0,0.0,0.0,0.0,0.0,0.0,0.05,0.15,0.15,0.15,0.0,0.15,0.0,0.1,0.0,0.0,0.0,0.15,0.127,0.0,-0.156,-0.192,-0.286,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.0,0.15,0.136,-0.221,0.15,0.0,0.125,0.07,0.039,0.0,-0.24,-0.199,-0.223,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.1,0.15,0.15,0.126,0.068,0.038,0.022,0.014,0.01,0.0,0.0,0.0,0.0,0.0,0.013,-0.146,-0.252,-0.49,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.0,0.0,0.0,0.0,0.15,0.0,0.14,0.077,-0.234,-0.291,-0.43,-0.209,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.0,0.15,0.15,0.15,-0.35,0.15,0.15,0.15,0.148,0.081,0.046,0.026,0.015,-0.245,-0.304,-0.45,-0.054,-0.063,-0.078,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.11,0.0,0.0,0.0,0.0,0.0,-0.051,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.0,0.0,-0.154,0.0,0.0,0.0,-0.074,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.0,0.15,0.0,0.15,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,-0.168,-0.209,-0.103,0.0,0.0,0.0,0.0,0.0,0.05,0.1,0.0,0.15,0.15,0.15,0.15,0.15,0.089,0.049,0.028,0.017,0.011,0.0,0.0,0.011,-0.247,-0.306,-0.452,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.123,0.067,0.038,0.0,0.0,0.0,0.0,0.027,-0.243,-0.301,-0.446,-0.217,0.0,0.0,-0.103,0.0,0.0,0.0,0.15,0.15,0.0,0.15,0.15,0.15,0.0,0.107,-0.39,0.15,0.0,0.15,0.15,0.15,-0.169,-0.21,-0.311,0.0,-0.148,0.0,-0.071,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.1,0.0,0.057,0.032,0.019,-0.245,-0.303,-0.449,-0.054,-0.063,-0.078,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],"cooling":[0.053,0.019,0.01,0.005,0.0,0.0,0.053,0.103,0.269,0.351,0.319,0.36,0.435,0.526,0.599,0.657,0.695,0.44,0.333,0.218,0.253,0.224,0.27,0.328,0.085,0.047,0.058,0.018,0.009,0.039,0.033,0.05,0.13,0.225,0.296,0.373,0.448,0.537,0.644,0.819,0.911,0.679,0.485,0.475,0.419,0.358,0.149,0.032,0.06,0.051,0.043,0.036,0.032,0.026,0.031,0.071,0.173,0.176,0.322,0.266,0.246,0.394,0.422,0.431,0.32,0.254,0.301,0.24,0.19,0.165,0.093,0.008,0.02,0.024,0.021,0.019,0.013,0.012,0.121,0.041,0.144,0.078,0.084,0.076,0.092,0.097,0.114,0.147,0.171,0.2,0.181,0.14,0.172,0.193,0.148,0.078,0.045,0.035,0.028,0.022,0.013,0.0,0.001,0.03,0.054,0.088,0.13,0.178,0.266,0.342,0.404,0.468,0.504,0.527,0.449,0.494,0.2,0.094,0.079,0.118,0.084,0.062,0.048,0.036,0.02,0.019,0.098,0.114,0.234,0.27,0.301,0.333,0.386,0.449,0.52,0.54,0.577,0.344,0.229,0.148,0.357,0.213,0.143,0.106,0.082,0.1,0.094,0.082,0.041,0.028,0.055,0.116,0.125,0.152,0.199,0.267,0.349,0.414,0.48,0.5,0.542,0.573,0.41,0.291,0.197,0.177,0.125,0.115,0.082,0.06,0.045,0.033,0.016,0.018,0.081,0.083,0.089,0.124,0.17,0.224,0.285,0.451,0.53,0.548,0.592,0.729,0.553,0.32,0.245,0.163,0.1,0.129,0.097,0.078,0.061,0.052,0.043,0.036,0.054,0.09,0.134,0.172,0.233,0.306,0.364,0.534,0.549,0.55,0.527,0.52,0.537,0.308,0.229,0.191,0.158,0.113,0.086,0.067,0.053,0.043,0.033,0.032,0.047,0.079,0.136,0.192,0.266,0.326,0.41,0.472,0.564,0.694,0.84,0.799,0.648,0.552,0.348,0.279,0.192,0.11,0.197,0.18,0.154,0.051,0.0,0.026,0.362,0.139,0.15,0.192,0.244,0.322,0.47,0.561,0.599,0.521,0.553,0.403,0.382,0.476,0.325,0.327,0.137,0.019,0.022,0.078,0.096,0.087,0.08,0.067,0.058,0.074,0.169,0.235,0.274,0.333,0.4,0.48,0.542,0.587,0.622,0.55,0.441,0.438,0.512,0.627,0.451,0.129,0.078,0.063,0.055,0.048,0.042,0.038,0.137,0.091,0.151,0.193,0.229,0.272,0.328,0.394,0.476,0.474,0.538,0.487,0.416,0.308,0.262,0.296,0.258,0.049,0.09,0.073,0.059,0.048,0.033,0.033,0.055,0.097,0.124,0.166,0.216,0.274,0.329,0.381,0.429,0.51,0.591,0.4,0.31,0.367,0.331,0.197,0.169,0.058,0.087,0.072,0.061,0.052,0.038,0.035,0.061,0.248,0.187,0.213,0.269,0.336,0.391,0.45,0.508,0.616,0.61,0.522,0.524,0.374,0.265,0.179,0.137,0.261,0.06,0.042,0.071,0.062,0.054,0.047,0.066,0.1,0.146,0.264,0.339,0.41,0.491,0.548,0.629,0.683,0.702,0.568,0.457,0.366,0.295,0.243,0.186,0.139,0.109,0.089,0.076,0.065,0.055,0.049,0.072,0.205,0.269,0.326,0.412,0.43,0.691,0.594,0.592,0.587,0.563,0.454,0.415,0.417,0.39,0.318,0.23,0.01,0.068,0.063,0.058,0.053,0.048,0.044,0.066,0.101,0.146,0.208,0.264,0.316,0.373,0.412,0.456,0.497,0.479,0.394,0.24,0.163,0.134,0.12,0.102,0.03,0.042,0.052,0.049,0.045,0.038,0.037,0.157,0.089,0.097,0.058,0.063,0.079,0.098,0.114,0.127,0.134,0.175,0.101,0.077,0.038,0.057,0.075,0.058,0.051,0.051,0.044,0.037,0.034,0.028,0.107,0.045,0.037,0.078,0.091,0.106,0.12,0.137,0.164,0.18,0.176,0.158,0.214,0.153,0.139,0.138,0.294,0.05,0.0,0.0,0.034,0.033,0.128,0.038,0.029,0.051,0.242,0.175,0.199,0.243,0.314,0.376,0.441,0.506,0.55,0.549,0.468,0.36,0.206,0.201,0.187,0.153,0.166,0.086,0.07,0.061,0.053,0.041,0.038,0.131,0.125,0.334,0.254,0.277,0.339,0.41,0.487,0.52,0.616,0.719,0.599,0.501,0.467,0.321,0.238,0.108,0.057,0.111,0.093,0.078,0.065,0.054,0.049,0.071,0.252,0.213,0.267,0.341,0.434,0.596,0.724,0.861,0.853,0.811,0.626,0.449,0.315,0.218,0.162,0.111,0.053,0.136,0.118,0.104,0.092,0.085,0.075,0.072,0.106,0.177,0.283,0.383,0.448,0.538,0.544,0.61,0.66,0.709,0.623,0.532,0.339,0.194,0.148,0.097,0.065,0.07,0.114,0.102,0.058,0.058,0.051,0.073,0.107,0.178,0.212,0.234,0.288,0.347,0.394,0.437,0.456,0.37,0.328,0.332,0.299,0.205,0.135,0.11,0.016,0.077,0.071,0.065,0.06,0.055,0.052,0.062,0.09,0.173,0.208,0.296,0.367,0.46,0.476,0.511,0.515,0.572,0.459,0.308,0.24,0.278,0.215,0.27,0.07,0.059,0.054,0.06,0.062,0.052,0.253,0.072,0.111,0.272,0.261,0.285,0.342,0.412,0.479,0.557,0.626,0.668,0.712,0.606,0.581,0.305,0.217,0.141,0.085,0.066,0.057,0.096,0.08,0.066,0.061,0.126,0.164,0.315,0.46,0.543,0.468,0.553,0.655,0.776,0.837,0.752,0.613,0.461,0.372,0.254,0.305,0.18,0.096,0.068,0.12,0.102,0.089,0.08,0.07,0.096,0.152,0.2,0.262,0.344,0.683,0.632,0.634,0.697,0.748,0.747,0.724,0.704,0.463,0.342,0.273,0.215,0.173,0.136,0.116,0.102,0.091,0.071,0.074,0.086,0.129,0.202,0.404,0.398,0.48,0.704,0.918,0.974,1.0,0.958,0.839,0.626,0.456,0.346,0.273,0.371],"dhw":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0]}},"buildings":{"Building_1":{"battery_soc":[0.2,0.2,0.209,0.224,0.24,0.24,0.24,0.317,0.317,0.433,0.503,0.619,0.736,0.853,0.927,0.713,0.487,0.234,0.234,0.224,0.214,0.204,0.204,0.204,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.32,0.436,0.459,0.514,0.658,0.807,0.807,0.818,0.818,0.818,0.818,0.818,0.818,0.818,0.818,0.818,0.818,0.818,0.817,0.817,0.92,0.92,0.92,0.942,0.941,0.941,0.941,0.941,0.941,0.941,0.941,0.941,0.764,0.682,0.264,0.264,0.264,0.264,0.264,0.303,0.381,0.497,0.614,0.731,0.848,0.925,0.943,0.943,0.943,0.948,0.948,0.948,0.948,0.948,0.948,0.948,0.727,0.496,0.234,0.205,0.205,0.205,0.205,0.205,0.205,0.322,0.439,0.439,0.555,0.555,0.672,0.262,0.285,0.402,0.402,0.519,0.599,0.599,0.665,0.782,0.854,0.854,0.42,0.227,0.227,0.205,0.205,0.205,0.205,0.244,0.361,0.477,0.594,0.711,0.828,0.922,0.942,0.942,0.948,0.948,0.543,0.543,0.66,0.777,0.608,0.433,0.229,0.229,0.229,0.229,0.229,0.229,0.268,0.268,0.384,0.501,0.618,0.735,0.735,0.851,0.851,0.851,0.907,0.939,0.947,0.947,0.946,0.946,0.812,0.598,0.25,0.24,0.229,0.218,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.246,0.275,0.275,0.21,0.21,0.21,0.209,0.209,0.209,0.209,0.209,0.209,0.209,0.248,0.248,0.287,0.404,0.404,0.521,0.521,0.637,0.637,0.754,0.871,0.931,0.944,0.944,0.944,0.525,0.43,0.329,0.215,0.215,0.215,0.215,0.204,0.204,0.204,0.204,0.204,0.321,0.437,0.554,0.671,0.787,0.787,0.805,0.844,0.844,0.844,0.844,0.844,0.925,0.711,0.486,0.234,0.234,0.234,0.234,0.234,0.205,0.205,0.205,0.205,0.322,0.438,0.555,0.672,0.789,0.789,0.788,0.869,0.931,0.944,0.944,0.944,0.944,0.725,0.494,0.235,0.235,0.235,0.235,0.235,0.235,0.235,0.274,0.39,0.507,0.624,0.74,0.857,0.928,0.928,0.943,0.943,0.943,0.943,0.943,0.943,0.943,0.884,0.717,0.45,0.45,0.229,0.205,0.205,0.205,0.322,0.439,0.556,0.672,0.789,0.906,0.938,0.947,0.947,0.947,0.947,0.947,0.946,0.946,0.946,0.946,0.727,0.495,0.235,0.235,0.225,0.215,0.204,0.204,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.241,0.358,0.475,0.592,0.592,0.708,0.708,0.786,0.864,0.864,0.864,0.864,0.902,0.902,0.696,0.477,0.234,0.234,0.234,0.234,0.234,0.351,0.468,0.584,0.701,0.818,0.92,0.92,0.941,0.948,0.804,0.916,0.916,0.94,0.94,0.94,0.94,0.723,0.57,0.407,0.407,0.407,0.407,0.407,0.407,0.407,0.524,0.641,0.757,0.874,0.932,0.944,0.944,0.944,0.944,0.948,0.948,0.948,0.948,0.948,0.948,0.948,0.801,0.535,0.241,0.241,0.241,0.241,0.241,0.241,0.241,0.241,0.241,0.357,0.474,0.591,0.708,0.824,0.824,0.824,0.897,0.936,0.936,0.936,0.945,0.945,0.726,0.495,0.234,0.205,0.205,0.205,0.205,0.322,0.439,0.555,0.672,0.672,0.789,0.906,0.938,0.64,0.757,0.874,0.909,0.909,0.939,0.947,0.947,0.947,0.727,0.496,0.234,0.234,0.225,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.32,0.346,0.346,0.346,0.218,0.218,0.218,0.218,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.321,0.321,0.438,0.437,0.554,0.554,0.554,0.585,0.585,0.594,0.711,0.828,0.922,0.71,0.485,0.396,0.396,0.396,0.396,0.396,0.396,0.435,0.513,0.513,0.629,0.746,0.863,0.929,0.944,0.944,0.943,0.943,0.943,0.943,0.943,0.943,0.943,0.724,0.493,0.235,0.235,0.235,0.235,0.235,0.235,0.235,0.235,0.351,0.468,0.585,0.702,0.818,0.92,0.942,0.942,0.942,0.942,0.942,0.942,0.941,0.941,0.724,0.493,0.234,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.322,0.438,0.438,0.555,0.672,0.789,0.789,0.788,0.827,0.856,0.856,0.927,0.944,0.944,0.725,0.494,0.235,0.235,0.205,0.205,0.205,0.205,0.205,0.205,0.322,0.439,0.556,0.672,0.789,0.906,0.938,0.947,0.947,0.947,0.947,0.947,0.946,0.946,0.727,0.495,0.235,0.235,0.225,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215],"dhw_soc":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],"grid_kwh":[0.678,0.846,0.762,0.699,0.677,1.001,1.608,0.86,4.653,0.981,-0.061,2.315,0.764,0.716,1.26,2.02,2.193,0.78,1.009,2.3,3.13,1.373,1.303,2.042,1.793,0.764,0.383,0.671,1.713,1.752,1.766,0.572,-0.246,-0.069,0.819,1.462,6.669,4.144,1.951,1.951,2.903,2.312,3.11,1.939,3.643,2.93,3.446,2.541,1.766,1.367,1.115,0.937,0.936,0.99,0.913,1.716,2.325,-0.432,-0.46,-0.43,-0.133,-0.321,-0.011,2.823,3.203,2.159,1.242,0.87,0.635,1.54,0.677,1.282,0.69,0.558,0.475,0.799,0.396,1.385,0.453,0.824,0.441,0.178,0.139,0.075,0.006,-0.103,-0.175,-0.975,0.065,0.487,1.278,1.258,1.496,0.982,1.176,1.536,1.332,1.406,1.338,1.238,2.034,0.629,1.501,1.9,0.771,-0.079,-0.578,-0.446,-0.144,0.399,0.651,0.514,0.614,2.093,1.994,1.741,1.115,0.941,1.132,1.091,1.271,1.156,1.104,1.607,0.931,1.948,4.15,0.818,1.144,5.824,0.617,-0.072,-0.369,-0.118,1.067,-0.064,-0.205,1.401,1.256,2.83,8.844,2.165,1.511,1.13,1.455,2.234,1.535,1.371,1.31,1.265,2.275,1.085,2.518,-0.133,-0.282,3.856,1.107,1.52,1.661,0.321,-0.274,1.084,1.689,1.153,2.04,0.959,0.651,0.727,0.49,0.93,0.881,0.848,0.847,3.198,0.95,0.203,1.584,-0.051,-0.31,-0.38,-0.314,0.182,0.323,0.104,0.167,0.132,1.791,1.799,1.383,1.031,0.76,0.682,1.003,0.589,0.549,0.517,0.491,0.446,1.379,0.384,2.23,0.199,0.068,0.72,1.2,1.804,2.687,2.771,2.189,2.53,2.226,2.274,1.433,1.308,1.024,1.57,1.246,1.262,1.367,0.987,0.76,2.101,0.68,0.534,0.216,-0.402,-0.174,-0.161,0.321,0.394,1.033,1.535,5.826,2.385,3.597,2.451,2.338,1.022,1.604,1.015,1.278,1.734,1.478,0.78,1.212,0.734,1.245,1.785,2.354,1.24,0.238,-0.159,-0.091,0.389,6.437,1.688,1.972,1.879,2.511,1.773,1.01,0.682,0.672,1.867,1.17,1.283,1.725,1.58,1.474,1.417,1.41,0.657,-0.158,-0.003,0.634,0.978,0.123,0.456,1.074,2.522,6.896,2.711,3.461,2.565,2.162,1.345,0.916,1.625,1.095,1.156,1.606,1.259,1.168,1.208,1.273,0.656,0.496,-0.342,-0.409,-0.256,-0.121,0.188,0.744,1.405,1.986,1.149,2.071,2.781,2.303,1.18,0.876,1.179,1.394,1.976,1.722,1.259,1.205,1.271,1.589,3.362,0.457,-0.307,-0.371,-0.205,1.641,1.489,-0.5,0.045,0.131,0.206,2.194,1.767,1.688,1.367,1.152,1.311,1.708,1.979,1.751,1.536,2.649,0.895,0.829,0.753,1.491,-0.296,-0.203,-0.111,0.283,-0.145,2.107,0.604,0.785,2.383,2.232,1.713,1.369,3.315,0.946,0.739,1.183,1.504,1.334,1.125,0.968,0.901,0.755,2.903,0.721,0.455,0.163,-0.097,4.838,0.897,0.929,0.181,3.716,3.0,1.893,1.76,2.298,1.461,0.803,0.579,0.509,0.454,0.413,0.377,0.349,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.34,1.27,1.51,1.167,1.318,1.763,1.859,1.651,1.509,3.963,2.156,0.809,0.584,0.054,0.395,0.016,0.55,4.337,0.693,0.63,0.986,1.326,1.653,3.649,0.955,3.789,1.242,0.918,1.477,1.787,1.656,2.08,0.627,0.738,0.723,0.101,1.188,1.072,0.109,-0.238,0.608,-0.045,0.168,0.059,0.114,0.932,1.271,2.112,1.333,1.166,0.913,1.322,1.324,2.785,1.577,1.17,1.668,1.926,0.822,2.119,1.441,-0.078,-0.337,0.419,-0.126,-0.062,0.121,0.115,0.775,0.474,0.559,1.214,1.11,1.902,1.166,2.755,1.131,1.115,1.536,1.398,1.728,1.25,1.22,0.544,0.213,-0.063,-0.143,1.116,0.465,0.331,1.028,0.419,1.644,1.869,4.924,2.238,1.363,1.742,1.337,1.082,1.587,1.906,1.226,1.529,0.834,2.825,-0.18,1.008,1.194,-0.282,0.151,2.473,0.963,0.397,0.89,2.167,2.289,1.42,2.139,1.737,2.086,1.25,0.832,0.711,1.197,0.785,0.677,0.633,0.606,0.579,1.018,0.96,1.038,1.894,6.549,0.088,1.35,1.233,4.001,7.98,2.346,2.374,2.409,2.563,2.033,1.518,1.857,1.383,0.73,1.169,0.69,0.608,0.884,1.063,1.069,0.546,0.158,-0.307,0.693,-0.075,6.414,3.367,-0.274,1.484,3.062,3.775,2.207,1.887,1.773,1.637,2.913,0.846,1.003,1.29,1.353,0.766,1.549,4.211,2.731,1.974,0.59,-0.367,0.545,-0.351,0.275,0.706,2.003,-0.043,0.551,0.35,0.433,3.574,1.744,2.639,2.273,1.094,1.319,1.412,1.755,1.995,2.273,1.554,1.477,1.249,0.144,-0.297,-0.056,-0.152,-0.014,0.492,0.573,0.294,0.732,1.231,1.301,1.58,2.17,1.002,0.832,1.514,0.971,1.808,1.712,1.501,1.424,1.176,1.229,1.178,0.403,-0.219,-0.236,-0.261,-1.061,-0.883,0.954,1.391,2.934,0.747,1.463,2.977,2.097,5.057,1.013,1.916,0.724,1.879,1.26,0.584,1.459,2.477,4.181,1.712,0.438,-0.036,-0.029,2.156,0.884,0.396,3.044,0.802,1.75,1.539,2.432,3.883,1.806,7.999,0.985,0.704,1.28,2.118,2.939,1.168,1.583,1.258,2.188,1.197,0.722,1.284,0.69,1.379,1.5,0.84,1.08,0.416,1.99,1.865,2.285,2.81,1.986,2.601,3.008,1.972,0.991,0.736,0.55,0.552,0.567,0.586,0.613,2.044,1.644,3.344,2.865,0.595,0.791,1.42,2.277,2.274,3.384,3.406,2.21,2.33,2.325,2.448,1.028],"indoor_c":[23.1,22.23,22.22,22.22,22.22,22.22,22.22,22.33,22.77,23.27,24.41,24.44,24.66,24.6,24.34,23.33,22.29,24.19,26.3,24.15,20.89,23.08,22.21,19.81,19.57,21.34,23.0,22.16,22.28,22.21,22.3,22.57,24.12,24.5,24.55,24.5,23.75,23.54,23.63,23.43,23.57,23.27,23.49,24.1,23.43,20.91,18.94,18.54,18.62,18.88,19.21,19.5,19.56,19.4,19.65,19.71,19.44,22.25,23.28,24.73,24.33,24.55,24.41,22.86,20.67,20.63,23.12,24.42,25.01,21.3,23.0,22.37,22.78,23.2,23.6,24.12,24.22,24.38,24.61,23.49,23.81,23.87,25.07,24.26,24.46,25.89,25.1,25.64,24.65,23.7,23.89,24.0,23.82,23.93,24.03,21.71,22.49,21.74,21.79,21.89,21.57,22.36,21.76,21.94,22.44,23.21,23.89,24.54,24.41,24.25,23.89,23.34,23.34,22.86,23.14,23.6,24.01,24.12,24.11,24.0,23.96,24.12,21.99,21.75,21.85,22.0,21.52,22.08,22.09,20.95,22.5,23.64,24.12,24.82,24.52,26.22,27.29,25.61,25.86,24.64,24.14,23.25,23.24,23.45,22.47,21.33,21.86,22.0,22.12,22.27,21.92,22.34,21.9,23.52,24.11,24.18,24.26,23.97,23.59,24.35,26.67,27.33,26.75,26.77,26.17,26.49,26.8,27.06,27.27,27.55,27.85,28.15,28.33,26.83,27.76,28.36,27.57,28.11,28.16,28.05,27.87,27.47,27.1,26.72,26.38,26.35,26.48,26.59,26.73,26.7,26.86,26.87,26.69,26.83,26.9,26.97,27.04,27.24,27.13,27.25,25.93,26.15,25.93,25.54,25.15,24.68,24.17,23.36,23.21,22.69,22.68,22.67,23.24,23.43,23.63,21.13,21.43,20.65,20.61,20.7,21.24,21.41,21.74,22.01,22.36,23.71,23.76,23.88,23.61,23.53,23.29,23.17,23.83,22.45,22.04,22.18,22.35,23.72,23.25,23.4,21.67,20.57,21.48,21.94,22.19,22.12,22.19,21.77,21.1,21.88,23.37,24.03,23.92,23.72,21.24,21.27,21.86,22.37,22.2,22.44,23.61,24.2,24.46,21.48,21.87,20.98,20.93,21.06,21.24,21.37,21.48,22.01,23.8,23.91,23.94,23.43,23.33,23.26,23.1,22.67,22.09,21.62,21.74,22.38,22.49,23.15,23.61,20.51,21.48,20.75,20.78,21.58,21.97,22.03,21.97,21.92,21.81,24.18,24.49,24.23,24.08,23.78,23.33,23.24,22.85,22.83,23.12,23.33,23.31,23.84,24.36,24.61,22.5,21.35,21.26,22.12,22.27,22.14,22.3,22.17,22.7,24.06,24.31,24.32,25.78,26.62,27.05,26.4,26.12,25.71,24.34,23.23,23.6,23.91,24.37,24.55,22.89,21.59,21.49,21.61,21.3,22.12,22.12,22.22,22.38,24.02,24.02,24.11,23.94,25.16,23.06,23.36,23.1,22.76,23.13,23.54,24.03,23.18,24.06,24.41,22.72,21.43,21.26,21.33,21.5,21.63,22.3,21.11,21.97,23.7,23.92,24.23,21.79,22.87,23.43,25.05,25.1,24.57,24.97,25.22,24.93,25.39,25.74,26.04,26.24,26.44,26.64,26.86,27.07,27.19,27.19,27.37,27.36,27.26,27.08,26.21,26.21,26.47,27.0,27.56,28.23,28.85,29.62,30.08,28.69,26.96,25.15,24.91,23.63,22.08,21.91,21.88,21.94,20.98,21.33,21.5,22.81,24.35,24.28,24.16,23.77,24.38,23.48,22.65,22.33,21.89,21.93,21.37,23.14,22.31,23.62,24.38,21.84,20.8,20.7,21.54,21.9,21.92,21.88,21.69,22.12,23.21,23.55,24.19,23.83,24.91,23.8,23.94,23.94,23.98,23.86,23.79,24.0,23.77,23.8,23.83,22.82,21.31,21.27,21.4,21.56,21.81,21.96,21.59,21.7,23.41,24.16,24.16,24.1,24.02,23.69,22.6,22.95,24.38,25.05,24.21,24.22,24.09,24.11,23.01,22.69,21.53,21.43,21.57,21.74,21.88,22.04,22.26,22.75,24.13,24.22,24.01,23.77,24.05,23.93,23.48,21.3,21.14,21.51,22.02,22.33,23.45,24.04,24.28,22.23,20.98,20.89,21.02,22.96,20.39,22.01,22.43,22.9,24.34,24.37,23.26,23.58,24.09,23.92,21.55,21.25,21.87,22.38,22.86,23.28,23.76,24.27,24.5,22.56,23.31,23.59,23.78,23.91,24.07,24.18,22.97,22.31,22.73,22.89,23.87,23.27,23.41,22.95,22.25,22.25,22.07,21.99,22.39,23.31,23.96,20.4,21.01,22.29,20.68,21.91,22.4,21.51,20.97,21.01,21.97,24.03,24.05,23.81,23.78,22.81,23.72,25.32,22.51,21.02,20.94,21.53,21.76,21.61,21.9,21.56,22.35,21.6,20.6,21.51,21.75,20.85,20.37,20.1,20.39,21.0,23.22,23.43,23.66,23.5,23.28,22.88,22.88,22.85,23.98,25.66,22.07,22.39,21.9,22.26,22.52,22.1,20.5,20.59,20.67,21.45,21.83,22.02,22.02,22.6,24.03,23.77,23.87,23.43,23.31,23.11,22.52,22.22,22.56,23.78,23.67,23.7,24.06,24.32,21.53,22.5,20.91,20.97,21.06,21.26,22.01,21.94,21.8,22.05,23.39,23.62,24.08,26.24,26.94,24.73,23.06,22.21,24.15,24.93,20.91,22.36,22.76,23.48,20.26,22.29,20.03,21.6,22.33,21.24,21.36,20.61,21.94,21.91,23.35,23.62,20.7,22.6,23.3,22.53,22.53,22.3,22.14,22.4,21.9,22.65,22.65,23.37,24.01,21.81,20.7,21.39,22.46,21.21,22.1,21.76,21.84,22.15,22.8,21.91,22.57,20.79,22.23,22.22,22.61,22.13,23.41,24.63,22.07,22.12,19.97,18.75,18.92,20.35,21.27,22.2,22.53,22.74,22.9,23.08,22.46,22.77,22.17,22.37,22.76,22.79,22.59,22.25,21.89,20.86,20.55,21.5,21.49,21.77,22.03,22.53]},"Building_2":{"battery_soc":[0.2,0.2,0.209,0.224,0.24,0.24,0.24,0.317,0.317,0.433,0.55,0.667,0.784,0.9,0.938,0.721,0.492,0.234,0.234,0.224,0.214,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.32,0.437,0.437,0.437,0.437,0.436,0.254,0.254,0.254,0.254,0.254,0.254,0.254,0.254,0.254,0.254,0.254,0.254,0.254,0.254,0.371,0.487,0.604,0.721,0.799,0.838,0.837,0.837,0.837,0.837,0.837,0.837,0.742,0.583,0.248,0.248,0.248,0.248,0.248,0.287,0.365,0.482,0.599,0.715,0.832,0.923,0.942,0.942,0.942,0.948,0.948,0.948,0.948,0.948,0.948,0.948,0.727,0.495,0.235,0.206,0.206,0.206,0.206,0.206,0.206,0.323,0.439,0.439,0.556,0.556,0.673,0.607,0.724,0.841,0.841,0.924,0.942,0.942,0.942,0.942,0.765,0.561,0.331,0.216,0.216,0.204,0.204,0.204,0.204,0.243,0.36,0.476,0.593,0.71,0.826,0.922,0.942,0.942,0.942,0.942,0.942,0.942,0.942,0.942,0.723,0.497,0.272,0.272,0.272,0.272,0.272,0.272,0.271,0.271,0.388,0.505,0.622,0.738,0.738,0.855,0.855,0.855,0.855,0.855,0.927,0.943,0.943,0.943,0.739,0.528,0.305,0.283,0.259,0.234,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.243,0.36,0.359,0.476,0.476,0.593,0.593,0.71,0.826,0.922,0.942,0.942,0.942,0.942,0.723,0.493,0.235,0.235,0.235,0.235,0.205,0.205,0.205,0.205,0.205,0.322,0.439,0.556,0.672,0.789,0.789,0.789,0.828,0.828,0.828,0.828,0.827,0.922,0.71,0.485,0.234,0.234,0.234,0.234,0.234,0.204,0.204,0.204,0.204,0.321,0.438,0.555,0.671,0.788,0.788,0.788,0.788,0.788,0.788,0.866,0.865,0.93,0.715,0.559,0.34,0.34,0.34,0.34,0.34,0.339,0.339,0.378,0.378,0.495,0.612,0.729,0.845,0.925,0.925,0.943,0.943,0.943,0.943,0.943,0.943,0.943,0.724,0.498,0.235,0.235,0.206,0.206,0.206,0.206,0.323,0.44,0.556,0.673,0.79,0.906,0.939,0.947,0.947,0.524,0.524,0.64,0.64,0.757,0.874,0.931,0.716,0.489,0.234,0.234,0.224,0.214,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.242,0.358,0.475,0.592,0.592,0.709,0.709,0.708,0.708,0.708,0.708,0.708,0.807,0.807,0.629,0.44,0.261,0.261,0.261,0.261,0.261,0.378,0.494,0.611,0.728,0.844,0.925,0.925,0.943,0.948,0.531,0.647,0.647,0.764,0.881,0.935,0.935,0.501,0.413,0.32,0.32,0.32,0.32,0.32,0.32,0.32,0.437,0.553,0.67,0.787,0.903,0.938,0.947,0.947,0.947,0.949,0.949,0.949,0.949,0.949,0.949,0.949,0.827,0.656,0.569,0.569,0.569,0.569,0.569,0.569,0.568,0.568,0.568,0.568,0.568,0.685,0.802,0.915,0.915,0.915,0.915,0.915,0.915,0.915,0.94,0.94,0.723,0.492,0.31,0.214,0.214,0.214,0.214,0.331,0.448,0.565,0.681,0.681,0.798,0.915,0.94,0.862,0.928,0.944,0.944,0.944,0.944,0.944,0.943,0.943,0.725,0.532,0.289,0.271,0.25,0.229,0.229,0.229,0.229,0.229,0.229,0.229,0.229,0.229,0.229,0.229,0.229,0.229,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.204,0.204,0.204,0.204,0.204,0.204,0.321,0.438,0.438,0.438,0.228,0.228,0.228,0.228,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.322,0.322,0.438,0.438,0.555,0.555,0.555,0.555,0.555,0.555,0.671,0.788,0.905,0.698,0.478,0.396,0.396,0.396,0.396,0.396,0.396,0.435,0.512,0.512,0.629,0.746,0.863,0.929,0.943,0.943,0.943,0.943,0.943,0.943,0.943,0.943,0.943,0.724,0.499,0.258,0.258,0.258,0.258,0.258,0.257,0.257,0.257,0.374,0.491,0.608,0.724,0.841,0.924,0.943,0.943,0.943,0.943,0.943,0.942,0.942,0.942,0.724,0.493,0.234,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.322,0.438,0.438,0.555,0.672,0.789,0.789,0.788,0.588,0.704,0.704,0.821,0.92,0.942,0.724,0.493,0.234,0.234,0.205,0.205,0.205,0.205,0.205,0.205,0.322,0.438,0.555,0.672,0.789,0.905,0.939,0.946,0.946,0.946,0.946,0.946,0.946,0.946,0.726,0.494,0.235,0.235,0.225,0.216,0.216,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215,0.215],"dhw_soc":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],"grid_kwh":[0.187,0.186,0.221,0.254,0.272,0.231,0.248,0.671,2.934,1.17,1.131,1.167,1.468,1.285,1.356,1.851,0.942,0.742,1.202,0.976,1.524,1.361,0.913,0.323,0.212,0.379,0.46,0.201,0.202,0.231,0.243,0.245,2.33,0.564,1.008,1.188,1.013,1.47,1.827,2.989,1.635,1.344,1.37,0.795,0.66,0.629,0.641,0.483,0.374,0.313,0.274,0.251,0.247,0.262,0.256,0.856,0.869,0.5,0.455,1.85,0.976,0.143,0.738,0.363,0.47,0.676,0.656,0.581,0.607,0.849,0.644,0.268,0.202,0.232,0.416,0.85,0.7,0.729,0.752,0.693,0.531,0.437,0.441,0.449,0.404,0.336,0.454,0.073,0.125,0.561,0.904,0.719,0.518,0.511,0.669,0.912,1.016,0.728,0.683,0.685,0.591,0.314,0.241,1.601,0.487,0.555,0.868,1.536,1.003,0.964,1.034,0.334,0.302,0.341,1.02,0.737,0.781,0.715,0.584,0.374,1.012,0.776,0.185,0.685,0.202,0.729,0.053,0.924,1.067,0.516,0.937,0.678,1.149,0.966,0.734,0.158,0.158,0.178,0.676,0.679,0.506,0.488,0.412,0.7,0.729,0.684,0.683,0.685,0.7,0.729,1.526,0.436,0.594,1.126,0.673,0.467,0.628,0.712,0.925,0.18,0.175,0.175,0.857,0.653,0.745,0.511,0.528,0.67,0.764,1.184,0.683,0.685,0.7,0.231,0.738,0.971,0.4,0.494,0.514,1.132,0.742,0.7,0.885,0.159,0.165,0.173,0.859,0.765,0.653,0.615,0.62,0.373,0.307,0.389,0.234,0.217,0.218,0.236,0.332,0.536,0.653,0.739,0.704,0.895,0.874,1.035,1.117,1.233,1.168,1.161,1.067,0.811,0.711,0.665,1.343,0.341,0.295,0.258,0.23,0.215,0.219,0.24,0.318,0.415,0.602,0.865,0.885,0.916,1.168,9.801,1.415,1.521,1.533,1.541,1.605,1.062,0.853,0.539,0.654,0.746,0.36,0.371,0.725,0.235,0.748,0.275,0.844,0.705,2.847,1.347,1.414,1.021,0.907,1.331,1.137,0.346,0.295,0.213,1.092,0.82,0.642,0.409,0.525,0.599,0.753,0.396,0.683,0.685,0.712,0.747,0.856,0.482,0.759,1.875,0.658,0.777,1.085,1.057,1.51,0.418,0.362,0.763,1.345,0.994,0.857,0.934,0.89,0.492,0.207,0.225,0.968,0.72,0.73,0.752,0.851,0.554,0.544,0.592,0.517,0.843,1.011,0.667,1.867,0.831,0.121,0.171,1.199,0.983,1.252,0.897,1.846,0.525,0.762,0.664,0.696,0.685,0.7,0.729,0.756,0.589,2.158,0.686,1.01,0.714,0.885,0.797,0.929,0.192,0.175,1.405,1.077,1.085,0.806,0.751,0.616,0.947,1.179,0.981,0.683,0.685,0.704,0.379,0.484,0.622,4.528,3.19,2.305,1.767,1.255,1.351,1.528,0.42,0.372,0.331,1.231,0.901,0.954,1.062,0.608,0.452,0.498,0.485,0.198,0.221,0.215,0.266,0.444,0.613,0.758,0.985,0.842,0.942,1.124,1.164,2.018,1.939,1.246,1.269,1.286,1.051,0.856,1.04,0.466,0.394,0.568,0.607,0.231,0.198,0.447,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.653,1.154,0.644,0.385,0.638,0.742,0.683,0.691,0.718,0.253,2.697,0.708,0.975,2.712,0.878,0.926,2.236,1.511,1.578,0.814,0.392,0.137,0.802,0.705,0.748,0.601,0.847,0.933,1.194,0.885,0.683,0.533,0.202,0.307,0.301,5.053,1.98,1.563,1.068,1.031,1.145,2.424,4.514,0.334,0.229,0.416,0.357,0.305,0.443,0.45,0.233,0.804,1.111,0.785,0.683,0.685,0.352,0.267,0.252,0.36,0.473,0.816,0.836,2.079,2.033,0.354,0.376,0.096,0.134,0.07,0.796,0.526,0.613,0.496,0.508,0.799,0.66,0.291,0.185,0.187,0.7,0.729,0.75,0.373,0.466,0.573,0.602,0.747,0.823,0.94,1.042,0.748,0.402,0.143,1.717,0.823,0.744,0.702,1.067,0.977,1.128,1.156,0.185,0.685,0.7,0.34,0.063,2.656,1.05,1.299,0.681,0.976,1.446,1.103,1.875,1.164,0.148,0.189,1.094,0.842,0.63,0.814,0.966,1.008,0.385,0.192,0.215,0.457,0.231,0.255,0.368,1.009,3.283,9.519,1.758,1.698,1.543,0.953,1.274,1.445,1.453,1.458,1.829,1.082,1.002,0.905,0.48,0.89,0.818,0.442,0.202,0.216,0.241,0.269,0.389,1.799,1.566,1.104,2.297,0.715,0.391,1.8,1.831,1.158,2.857,1.33,2.405,1.014,1.124,0.708,0.4,0.798,0.712,0.186,0.686,0.216,0.746,0.28,1.511,0.752,0.762,0.72,0.811,0.904,1.865,1.394,1.978,0.807,0.66,0.308,0.58,0.718,0.739,0.65,0.493,0.607,0.662,0.245,0.747,0.745,0.755,0.561,0.433,0.474,0.588,0.699,0.664,0.687,0.862,0.821,0.952,0.187,0.174,0.188,1.025,0.991,0.888,0.852,5.033,0.528,0.294,0.848,0.724,0.73,0.739,0.765,0.822,0.828,1.804,0.886,0.907,1.525,0.928,1.054,1.164,0.482,0.524,0.52,3.156,1.215,1.019,0.949,0.94,0.648,0.664,0.9,0.786,0.242,0.756,0.779,0.945,0.621,1.257,0.156,1.388,0.963,2.198,1.647,1.549,0.772,0.851,0.913,1.726,1.115,1.008,1.208,1.098,1.366,0.58,1.739,0.859,0.762,0.775,0.8,2.232,0.76,1.164,1.053,1.231,1.079,1.197,1.483,2.018,1.01,0.583,0.521,1.359,1.52,0.931,0.877,0.552,0.461,0.59,0.574,0.272,0.26,0.273,0.307,0.395,0.539,0.89,1.092,1.139,1.29,1.623,1.632,1.965,2.076,1.855,1.711,1.995,1.325,0.959,0.855,0.502],"indoor_c":[24.28,24.26,24.21,24.12,24.0,23.89,24.2,24.85,24.99,25.0,25.0,25.0,25.46,25.66,25.65,25.87,26.17,26.25,26.3,26.46,25.57,24.16,23.82,25.31,25.84,24.85,24.0,25.3,25.96,25.98,26.41,26.79,24.43,25.51,25.75,25.59,25.96,25.27,25.19,24.86,25.91,25.96,26.25,26.48,26.48,26.37,25.84,25.9,25.88,26.1,26.35,26.61,26.81,26.86,27.27,27.58,27.69,27.64,27.39,26.93,26.67,25.39,25.48,26.82,26.73,26.64,26.6,26.53,26.14,24.91,24.1,25.18,25.65,25.76,24.35,24.39,25.54,25.66,25.99,26.27,26.45,26.75,26.94,27.16,27.3,27.36,27.25,27.27,26.81,26.63,25.92,26.41,26.4,26.36,25.81,24.82,23.84,24.81,25.46,25.64,25.65,25.51,26.11,25.36,25.82,26.16,24.29,24.22,24.52,24.79,24.76,24.94,25.3,25.52,25.41,25.37,25.45,25.54,25.62,25.69,24.65,25.31,26.01,26.24,26.31,26.26,26.56,26.58,26.48,26.41,26.43,26.43,25.5,25.36,26.09,26.46,26.48,26.49,26.7,26.57,26.52,26.53,26.55,24.62,24.5,26.02,26.5,26.69,26.68,26.53,25.74,26.24,25.59,23.71,25.57,25.9,25.91,25.95,25.77,26.04,26.16,26.28,26.4,26.27,26.32,26.28,25.78,24.45,23.08,22.38,24.39,25.61,25.73,25.56,25.64,25.4,25.59,25.66,25.72,25.59,25.69,25.92,25.83,26.05,26.13,26.21,26.25,26.25,26.18,26.07,25.98,26.05,25.99,26.06,26.17,26.29,26.34,26.28,26.39,26.37,26.24,26.24,26.29,26.3,26.31,26.34,26.09,26.15,26.12,26.09,26.09,26.04,25.95,25.88,24.94,25.56,25.44,25.57,25.72,25.89,26.01,26.04,26.2,26.23,26.01,25.87,25.78,25.72,25.68,25.03,25.26,25.32,25.29,25.26,25.24,25.31,25.43,25.55,24.72,23.83,24.74,25.7,26.0,26.26,26.46,26.57,26.72,25.32,23.35,24.54,23.92,24.42,24.99,25.08,25.04,25.28,25.37,25.41,25.44,25.4,25.48,25.56,25.19,24.46,23.3,24.08,25.33,25.86,26.19,26.36,26.5,26.43,26.18,25.08,25.49,25.47,25.5,25.51,25.36,25.48,25.56,25.5,25.68,25.61,25.57,25.42,24.05,24.56,25.73,25.78,25.83,25.92,26.01,26.03,26.21,26.21,25.93,25.89,25.91,25.88,25.89,25.97,24.06,24.05,25.79,25.8,26.01,25.85,25.67,25.52,24.79,24.96,24.22,23.81,25.18,25.81,25.98,25.92,26.09,26.1,24.47,25.22,25.43,25.49,25.53,25.71,25.6,25.72,25.75,24.46,25.32,25.22,25.4,25.44,25.5,25.34,23.8,24.0,25.46,25.97,26.12,26.04,26.1,26.06,25.49,23.98,23.72,25.07,25.62,25.5,25.3,25.38,25.39,25.37,25.36,25.32,25.15,24.3,24.66,24.97,24.45,24.83,25.86,26.11,26.23,26.15,26.18,26.06,25.92,25.77,25.78,25.69,25.59,25.54,24.04,23.65,24.75,25.05,25.01,25.09,25.24,25.35,25.47,25.51,24.26,23.66,25.03,25.83,25.73,26.01,26.34,26.5,26.54,26.63,26.69,27.01,27.39,27.91,28.54,29.11,29.67,30.24,30.89,31.44,28.82,28.24,26.32,26.64,24.32,24.07,25.66,26.29,26.54,26.64,24.27,24.45,24.17,23.59,24.93,25.31,24.2,24.89,23.84,24.06,24.83,24.8,24.88,25.03,25.08,25.12,25.19,24.55,22.96,23.59,24.75,25.18,25.48,25.64,25.72,25.55,25.62,25.75,25.73,25.8,25.9,25.69,25.36,25.71,25.93,25.99,26.04,25.96,25.84,25.74,25.72,25.14,23.85,24.42,25.2,25.48,25.62,25.64,25.78,25.67,25.75,24.45,24.03,25.4,25.75,25.86,25.72,25.68,25.75,25.71,25.52,25.68,25.66,25.64,25.02,22.77,22.3,23.48,24.8,25.24,25.36,25.28,25.63,25.74,25.71,25.72,25.74,25.66,25.69,25.8,25.63,24.59,24.85,25.82,24.55,25.37,25.41,25.43,25.48,25.52,23.75,23.54,25.13,25.7,25.83,25.73,25.84,24.02,23.69,23.05,24.5,24.52,23.62,24.43,23.27,23.17,24.98,25.17,25.2,25.24,25.26,25.31,24.11,22.99,24.23,25.46,25.68,25.84,25.95,25.9,25.97,25.47,25.18,24.61,24.45,23.38,23.88,25.16,25.02,25.09,25.1,25.12,25.14,25.2,25.22,25.23,25.3,23.61,22.89,24.66,25.46,25.81,26.0,26.02,25.97,23.49,23.79,25.21,23.51,24.5,24.7,23.38,23.32,24.58,23.21,24.15,23.41,24.18,23.49,23.8,24.58,22.74,22.68,24.42,25.06,25.39,25.66,25.81,24.51,24.49,24.83,25.38,25.67,24.59,23.96,24.75,23.2,23.17,22.4,24.13,24.89,25.0,25.05,25.13,24.76,24.64,24.9,25.27,25.35,25.46,25.58,25.7,25.89,25.89,25.76,25.77,25.54,25.48,25.4,25.49,25.36,25.46,25.46,25.44,25.45,25.42,25.32,25.11,23.02,24.23,24.85,24.56,25.12,25.24,25.38,25.47,25.64,25.18,24.32,25.04,25.31,24.92,25.34,25.25,25.4,25.55,25.55,25.52,24.11,24.95,24.9,24.79,24.62,24.48,24.31,24.58,25.05,25.47,25.62,25.68,25.82,25.73,25.19,25.41,25.57,25.67,25.48,25.53,25.32,25.35,25.05,24.83,24.94,25.16,25.16,24.21,24.09,23.59,23.95,23.38,24.77,25.2,25.42,25.51,24.1,24.78,23.58,24.11,24.52,24.51,24.47,24.12,23.36,23.62,24.28,24.29,24.36,24.29,24.63,24.64,24.79,24.88,24.03,23.71,24.81,25.31,25.53,25.54,25.59,25.48,25.16,24.96,24.87,24.78,24.71,24.68,24.4,24.35,24.24,24.26,24.1,24.6,24.76,24.79,25.0]},"Building_3":{"battery_soc":[0.2,0.2,0.205,0.214,0.223,0.223,0.223,0.267,0.267,0.335,0.404,0.472,0.541,0.609,0.677,0.594,0.492,0.341,0.322,0.301,0.275,0.236,0.236,0.235,0.235,0.235,0.234,0.234,0.234,0.233,0.233,0.232,0.232,0.232,0.231,0.231,0.231,0.23,0.23,0.229,0.229,0.229,0.228,0.228,0.228,0.227,0.227,0.227,0.226,0.226,0.225,0.225,0.225,0.224,0.224,0.293,0.361,0.361,0.36,0.36,0.359,0.277,0.277,0.276,0.276,0.275,0.275,0.275,0.274,0.274,0.273,0.273,0.272,0.272,0.341,0.409,0.477,0.546,0.614,0.659,0.681,0.68,0.679,0.678,0.677,0.744,0.743,0.703,0.637,0.509,0.508,0.508,0.507,0.506,0.528,0.573,0.573,0.641,0.709,0.777,0.844,0.891,0.916,0.914,0.928,0.936,0.94,0.939,0.937,0.936,0.934,0.807,0.649,0.419,0.306,0.252,0.226,0.225,0.225,0.225,0.293,0.362,0.361,0.43,0.429,0.497,0.344,0.412,0.48,0.48,0.548,0.616,0.615,0.683,0.751,0.678,0.553,0.371,0.283,0.283,0.241,0.24,0.24,0.239,0.262,0.331,0.399,0.468,0.536,0.604,0.672,0.74,0.808,0.871,0.905,0.847,0.892,0.917,0.93,0.807,0.649,0.42,0.419,0.418,0.418,0.417,0.416,0.416,0.415,0.483,0.552,0.62,0.688,0.687,0.755,0.754,0.752,0.751,0.819,0.878,0.908,0.907,0.924,0.798,0.643,0.416,0.388,0.356,0.315,0.256,0.256,0.255,0.255,0.255,0.254,0.254,0.253,0.253,0.253,0.252,0.252,0.251,0.251,0.251,0.25,0.25,0.249,0.249,0.224,0.224,0.224,0.223,0.223,0.222,0.222,0.222,0.221,0.221,0.221,0.22,0.22,0.22,0.219,0.219,0.219,0.218,0.218,0.218,0.217,0.209,0.209,0.208,0.208,0.208,0.207,0.207,0.207,0.206,0.206,0.229,0.228,0.251,0.32,0.319,0.388,0.387,0.456,0.524,0.592,0.66,0.728,0.796,0.795,0.863,0.706,0.618,0.509,0.349,0.349,0.348,0.348,0.272,0.271,0.271,0.27,0.27,0.339,0.407,0.475,0.544,0.612,0.611,0.61,0.678,0.677,0.676,0.675,0.743,0.811,0.704,0.573,0.382,0.381,0.381,0.38,0.38,0.286,0.286,0.285,0.285,0.354,0.422,0.49,0.559,0.627,0.626,0.625,0.624,0.623,0.622,0.69,0.758,0.826,0.717,0.583,0.386,0.386,0.385,0.384,0.384,0.383,0.383,0.405,0.404,0.473,0.541,0.609,0.677,0.745,0.744,0.743,0.811,0.872,0.871,0.905,0.923,0.933,0.806,0.648,0.419,0.419,0.306,0.252,0.251,0.251,0.319,0.388,0.456,0.525,0.593,0.661,0.729,0.797,0.865,0.654,0.653,0.721,0.72,0.788,0.855,0.897,0.775,0.626,0.408,0.381,0.349,0.311,0.254,0.253,0.253,0.253,0.252,0.252,0.251,0.251,0.251,0.25,0.25,0.249,0.249,0.249,0.248,0.248,0.247,0.247,0.247,0.246,0.246,0.245,0.245,0.245,0.244,0.244,0.243,0.243,0.243,0.242,0.242,0.242,0.241,0.241,0.24,0.24,0.24,0.239,0.239,0.219,0.219,0.219,0.209,0.209,0.209,0.208,0.208,0.208,0.207,0.207,0.207,0.206,0.229,0.298,0.366,0.435,0.434,0.502,0.502,0.547,0.546,0.545,0.544,0.612,0.67,0.669,0.587,0.487,0.338,0.338,0.337,0.337,0.336,0.405,0.473,0.541,0.609,0.677,0.745,0.744,0.812,0.873,0.758,0.826,0.824,0.88,0.911,0.928,0.926,0.8,0.696,0.58,0.579,0.578,0.577,0.576,0.575,0.574,0.642,0.687,0.755,0.823,0.88,0.91,0.926,0.934,0.939,0.942,0.941,0.939,0.938,0.936,0.935,0.939,0.862,0.731,0.481,0.48,0.479,0.478,0.478,0.477,0.476,0.475,0.475,0.474,0.542,0.61,0.678,0.746,0.745,0.744,0.743,0.742,0.809,0.808,0.871,0.905,0.783,0.631,0.411,0.302,0.301,0.301,0.3,0.369,0.437,0.506,0.574,0.573,0.641,0.709,0.777,0.596,0.664,0.732,0.8,0.867,0.902,0.922,0.933,0.938,0.81,0.651,0.421,0.392,0.359,0.318,0.318,0.317,0.317,0.316,0.316,0.315,0.315,0.314,0.314,0.313,0.313,0.312,0.255,0.254,0.254,0.254,0.253,0.253,0.226,0.226,0.225,0.225,0.225,0.224,0.224,0.224,0.223,0.223,0.222,0.222,0.222,0.221,0.221,0.221,0.22,0.289,0.358,0.357,0.356,0.276,0.276,0.275,0.275,0.236,0.236,0.235,0.235,0.235,0.234,0.234,0.234,0.233,0.233,0.301,0.301,0.37,0.369,0.437,0.437,0.436,0.435,0.435,0.503,0.571,0.639,0.707,0.619,0.51,0.456,0.455,0.455,0.454,0.453,0.453,0.475,0.52,0.519,0.588,0.656,0.724,0.791,0.859,0.899,0.92,0.931,0.938,0.941,0.94,0.938,0.942,0.813,0.653,0.422,0.421,0.42,0.42,0.419,0.418,0.418,0.417,0.485,0.554,0.622,0.69,0.758,0.826,0.881,0.91,0.926,0.925,0.923,0.922,0.921,0.931,0.804,0.647,0.419,0.306,0.306,0.305,0.251,0.251,0.251,0.25,0.319,0.387,0.387,0.455,0.523,0.592,0.591,0.639,0.438,0.506,0.506,0.574,0.642,0.71,0.621,0.512,0.35,0.35,0.273,0.272,0.235,0.235,0.234,0.234,0.303,0.371,0.44,0.508,0.576,0.644,0.712,0.78,0.848,0.893,0.891,0.916,0.929,0.937,0.808,0.65,0.421,0.392,0.359,0.318,0.317,0.317,0.316,0.316,0.315,0.315,0.314,0.314,0.313,0.313,0.312,0.312,0.311,0.311,0.31,0.31,0.309,0.309,0.308,0.308,0.307,0.307,0.306,0.306,0.305,0.305],"dhw_soc":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],"grid_kwh":[0.563,0.473,0.463,0.466,0.469,0.5,1.033,1.042,2.187,2.373,1.526,1.211,0.972,1.07,1.133,1.637,1.384,0.904,1.635,1.522,1.695,2.464,2.719,2.948,0.658,0.55,0.577,1.238,0.461,0.608,0.55,0.63,0.852,0.872,0.804,0.82,0.798,0.894,1.726,2.027,3.019,2.253,2.421,2.045,1.615,1.693,1.107,0.516,0.59,0.559,0.535,0.519,0.525,0.572,0.535,0.749,1.588,0.915,1.691,0.416,0.565,7.843,1.113,1.721,2.111,1.389,2.802,1.989,1.691,1.649,0.694,0.448,0.478,0.484,0.718,0.714,0.712,0.802,2.49,0.903,2.205,0.749,1.171,0.453,1.069,0.444,0.114,0.129,0.218,0.414,1.332,1.115,1.238,1.352,1.455,0.903,0.578,0.756,0.736,0.722,0.712,0.695,0.549,0.391,0.255,0.137,-0.014,-0.076,0.858,0.495,0.575,0.559,0.737,1.416,2.455,4.128,2.05,0.703,0.929,0.754,0.897,0.834,0.549,0.739,0.492,0.795,7.728,1.186,1.358,1.147,1.183,0.596,0.469,0.731,0.945,0.853,0.996,0.535,1.167,1.137,3.193,1.408,0.833,0.723,0.73,1.159,1.139,1.086,0.834,0.819,1.718,1.302,0.895,0.623,0.404,0.185,1.422,0.96,0.775,0.399,1.025,1.463,2.917,2.009,1.617,1.681,0.782,0.745,0.649,0.828,0.782,0.752,0.721,0.548,1.599,0.745,0.446,0.313,0.429,0.381,0.35,0.744,1.054,0.771,0.971,1.669,2.029,2.266,2.374,1.584,1.459,1.034,0.69,0.636,0.587,0.564,0.555,0.599,0.603,0.761,0.631,0.536,0.659,0.987,0.845,6.451,2.387,1.683,1.576,2.174,3.312,2.328,1.708,1.719,1.421,0.741,0.662,0.605,0.565,0.54,0.528,0.589,0.579,0.544,0.447,0.423,0.577,0.318,0.859,0.679,1.045,1.614,3.951,2.641,2.393,2.863,1.417,2.082,0.97,0.813,0.97,1.0,1.085,0.561,0.677,0.601,5.116,1.158,1.046,1.482,0.775,0.652,0.792,1.128,0.51,0.828,1.07,0.821,1.868,2.303,2.218,8.726,1.09,0.971,0.484,0.637,0.925,0.903,0.898,0.955,0.859,0.536,0.626,1.005,0.382,0.507,0.561,1.482,1.081,0.807,1.126,1.582,2.145,4.945,4.652,5.853,9.161,1.516,0.881,0.593,0.81,0.793,0.793,0.848,2.033,0.574,0.528,0.44,0.794,0.37,0.662,0.62,0.904,0.598,1.062,0.877,1.72,2.309,1.49,2.256,2.425,1.048,0.753,0.622,0.821,0.793,0.767,0.832,0.855,0.785,0.418,0.575,0.44,0.282,0.429,0.472,0.534,0.642,0.933,0.529,1.64,2.783,3.139,1.363,1.389,1.553,0.905,0.862,0.827,0.804,0.781,0.839,1.011,2.775,0.694,0.966,0.925,0.619,0.793,0.797,1.024,0.878,1.061,1.139,2.354,1.921,1.93,1.138,1.091,3.218,0.589,0.535,0.614,0.592,0.586,0.63,0.647,0.638,0.83,1.126,1.079,1.135,1.553,1.127,1.493,1.787,2.459,1.761,2.065,2.472,2.609,1.864,1.226,0.811,0.724,0.666,0.628,0.599,0.587,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.082,1.939,1.791,0.455,1.085,0.673,0.82,0.809,0.809,0.622,1.152,0.988,0.88,0.858,1.673,0.796,1.117,0.958,0.931,0.9,0.906,0.959,1.285,1.175,1.443,1.15,0.961,0.989,0.779,0.804,0.793,0.784,0.542,0.843,2.445,0.376,1.309,0.706,0.783,0.604,1.069,0.706,0.407,0.483,0.377,0.665,1.129,0.829,1.497,1.352,0.834,1.046,1.431,1.018,0.762,0.715,0.605,1.753,0.765,0.579,0.796,0.769,0.578,0.617,0.514,0.572,0.594,0.249,0.369,1.105,1.287,1.366,2.159,3.745,2.145,0.69,0.422,0.513,0.508,2.056,0.766,0.85,1.108,2.932,0.886,0.496,0.475,1.366,0.698,0.951,1.072,0.791,0.842,0.872,1.253,1.292,1.628,1.569,1.338,1.13,0.903,0.855,0.586,0.806,0.791,0.876,8.077,1.162,2.863,1.564,0.659,0.732,0.61,0.655,0.922,1.053,1.24,1.035,1.851,3.095,1.837,2.084,1.009,0.584,0.73,0.677,0.633,0.6,0.586,0.637,0.65,2.323,0.863,0.8,0.917,1.189,2.024,1.51,2.116,2.413,2.828,2.111,2.759,1.601,1.366,1.267,1.019,0.573,0.8,0.748,0.705,0.676,0.671,0.709,0.656,0.81,1.197,1.262,1.012,0.971,0.942,0.985,1.08,1.555,3.629,2.088,2.714,1.917,1.611,1.901,1.255,0.706,0.647,0.736,0.941,0.581,0.838,0.64,1.198,0.922,1.024,0.869,0.572,1.284,1.098,0.961,1.05,0.679,0.674,1.199,1.728,2.026,1.67,1.192,1.015,0.553,0.797,0.615,0.839,0.827,0.83,0.913,0.885,0.736,1.049,1.902,0.526,0.559,1.542,1.392,1.225,0.653,0.682,1.312,1.658,1.391,1.843,1.413,2.374,0.951,1.76,0.807,0.805,0.832,0.804,3.596,1.039,1.035,1.914,1.532,0.414,0.377,0.737,0.53,0.796,0.684,0.889,1.325,2.093,10.08,2.098,1.628,1.101,0.763,0.636,0.819,0.925,0.64,0.859,0.91,1.395,1.676,5.728,7.011,2.642,0.943,1.481,2.295,1.648,1.475,1.524,1.302,1.82,2.442,1.795,9.759,2.157,0.793,0.61,0.995,0.941,0.908,0.898,0.937,0.979,1.247,1.017,1.073,1.025,3.518,1.565,1.076,1.533,1.511,1.178,1.436,9.924,2.11,1.584,1.576,1.716,1.589,0.8,0.74,0.7,0.671,0.632,0.705,0.696,0.673,0.861,1.962,0.921,0.982,1.897,2.298,2.228,2.679,2.766,2.987,2.982,2.241,2.032,1.8,3.696],"indoor_c":[24.43,24.44,24.44,24.44,24.36,24.29,24.11,23.35,23.33,23.33,23.33,23.33,23.1,22.81,22.46,22.52,22.24,23.42,23.98,24.63,24.42,24.49,23.86,22.85,23.81,24.24,24.28,24.94,25.22,24.87,25.25,25.69,25.45,25.03,24.73,24.45,24.25,24.01,23.64,22.8,22.04,22.55,23.04,22.38,22.29,22.32,23.49,24.54,24.62,24.87,25.03,25.11,25.19,25.3,25.5,25.29,24.86,24.91,24.08,24.05,23.94,23.2,22.88,22.57,23.05,23.37,22.76,22.74,22.81,22.81,23.27,24.27,24.47,24.63,24.8,24.93,25.07,25.2,24.66,25.03,24.59,24.9,24.99,24.84,24.64,24.48,24.37,24.39,24.35,24.21,24.38,24.42,23.81,23.22,23.21,23.63,23.97,24.03,24.12,24.22,24.38,24.94,25.41,25.64,25.63,25.46,25.21,24.96,24.8,24.81,24.51,24.3,24.06,23.53,23.72,22.61,23.58,24.27,24.61,24.43,24.66,24.65,24.7,24.85,25.05,25.13,25.01,25.14,24.24,23.8,23.52,23.07,22.8,22.51,22.24,22.44,22.21,23.49,24.3,24.5,23.25,23.77,24.06,24.32,24.56,24.37,24.29,24.29,24.57,24.86,25.2,25.26,25.32,25.23,24.95,24.69,24.3,24.08,23.83,23.53,23.46,23.18,23.45,23.68,24.16,24.33,24.7,24.72,24.79,24.88,24.92,24.99,25.19,25.29,25.18,25.41,25.33,25.14,24.98,24.65,24.33,23.64,23.27,23.11,22.71,21.72,21.89,22.57,22.87,23.52,24.17,23.96,24.08,24.17,24.26,24.28,24.32,24.41,24.62,24.81,24.84,24.83,24.66,24.43,24.25,23.46,23.36,23.17,23.14,22.9,22.42,22.9,23.12,23.33,23.49,23.75,23.93,24.11,24.24,24.32,24.43,24.52,24.78,24.99,25.09,25.01,24.79,24.46,24.06,23.71,23.44,22.65,21.7,21.38,21.28,21.11,21.6,21.84,22.26,22.83,22.05,22.0,22.06,23.03,23.98,24.18,22.91,23.41,23.7,23.67,23.56,23.36,22.74,22.45,22.34,22.89,22.61,23.38,23.4,22.22,22.51,22.07,23.03,24.14,24.5,24.15,23.94,23.97,24.04,24.17,24.67,25.05,24.53,24.2,23.79,23.52,23.38,23.07,22.75,22.52,22.51,22.76,23.16,22.64,22.01,20.8,20.82,22.41,23.02,23.28,23.52,23.78,24.06,24.34,24.27,24.45,23.95,23.57,23.34,23.18,22.99,22.77,22.55,22.97,22.91,23.09,23.18,23.32,23.67,23.31,23.26,24.5,24.39,24.47,24.51,24.6,24.8,24.98,25.36,25.62,25.55,25.19,24.78,24.45,24.11,23.79,23.59,23.26,22.67,23.42,23.98,23.32,23.27,23.69,23.74,24.75,24.57,24.74,24.78,24.84,24.98,24.98,25.12,24.42,24.58,24.49,24.36,24.11,23.72,23.46,23.19,22.6,22.54,22.9,22.59,22.92,23.27,23.72,24.02,23.27,24.16,24.5,24.44,24.55,24.63,24.71,24.92,25.05,25.0,24.29,23.84,23.49,23.15,22.83,22.57,22.19,21.9,22.2,22.45,22.66,22.84,23.01,23.27,23.53,23.74,23.93,24.08,24.17,24.25,24.71,25.0,24.9,24.29,24.04,23.63,23.51,23.35,23.52,23.93,24.3,25.13,25.89,26.78,27.38,23.47,23.4,23.29,24.81,24.59,24.71,24.77,24.79,24.84,24.91,25.08,25.11,24.59,24.05,23.61,23.4,23.14,22.9,22.69,22.5,22.37,22.6,23.04,23.29,23.52,23.58,23.67,24.36,24.47,24.42,24.49,24.58,24.72,24.87,24.38,24.22,24.12,24.54,24.54,24.34,24.01,23.78,23.59,23.47,23.01,23.52,23.79,24.07,24.09,24.0,24.11,24.2,24.39,24.42,24.53,24.69,24.9,24.58,24.82,24.91,24.34,24.16,24.04,23.77,23.53,23.42,23.34,23.18,23.37,23.14,23.52,23.49,23.47,22.28,23.39,24.2,24.65,24.6,24.68,24.05,24.49,24.74,25.1,24.4,24.06,23.76,23.57,23.35,23.13,22.88,22.66,22.52,22.47,23.01,23.4,23.95,24.11,24.2,24.33,23.9,24.43,24.55,24.63,24.72,24.86,24.98,24.75,24.99,24.04,24.12,23.97,23.68,23.45,23.29,23.48,23.29,22.51,22.69,22.66,22.45,22.83,23.14,24.08,24.7,24.3,24.46,24.49,24.51,24.57,24.64,24.83,24.16,24.32,24.18,23.96,23.64,22.89,22.26,21.49,21.15,20.87,21.21,21.66,22.13,22.62,23.11,23.47,24.03,23.33,23.39,23.4,23.4,23.42,23.5,23.97,24.4,24.37,23.84,23.28,22.97,22.67,22.78,22.56,22.21,21.6,21.54,21.5,21.99,22.74,23.09,23.52,23.86,23.95,23.62,23.65,24.12,24.29,24.45,24.63,24.58,24.0,23.82,23.56,23.28,22.97,22.7,22.52,22.42,22.95,23.26,23.04,22.97,23.27,23.64,23.78,24.69,24.46,24.47,24.51,24.59,24.69,24.83,25.08,25.16,24.88,24.66,23.91,23.28,23.02,22.95,22.75,22.75,22.21,23.01,23.44,23.59,23.26,23.44,22.88,23.98,24.28,24.37,24.38,24.42,24.58,23.58,24.23,24.5,23.95,23.98,23.74,23.54,23.26,23.07,22.81,22.55,22.3,22.1,22.28,21.82,22.65,23.05,23.6,24.1,24.44,24.58,24.3,24.38,24.5,24.66,24.69,24.67,24.02,23.32,22.82,23.07,22.66,22.3,21.74,21.37,21.65,22.11,22.62,22.95,23.47,23.09,23.67,24.22,24.5,24.2,24.29,24.35,24.43,24.57,24.79,24.85,24.78,24.52,24.15,22.69,22.77,22.5,22.33,22.11,21.88,21.81,21.51,22.02,22.4,22.66,22.94,23.16,23.3,23.53,23.69,23.81,24.01,24.09,24.3,24.33,24.21,23.31,23.3,23.04,22.35,21.47,21.03,20.78,20.59,20.8,21.24,21.68,22.03,22.34,21.65]}},"complete":true,"cost_usd":[0.0413,0.0849,0.1267,0.1677,0.2088,0.2588,0.3424,0.4174,0.7023,0.8342,0.9117,1.0485,1.1419,1.2314,1.3407,1.6638,1.9289,2.0712,2.1833,2.3232,2.5083,2.6598,2.8026,2.9563,3.0334,3.0823,3.1234,3.1845,3.2532,3.3282,3.4022,3.4441,3.5361,3.5777,3.6538,3.7542,3.9995,4.1878,4.3471,4.5486,4.7672,4.9382,5.1378,5.2761,5.4473,5.5992,5.7495,5.8519,5.9309,5.9956,6.0513,6.1007,6.1501,6.2029,6.2522,6.3483,6.4866,6.5275,6.5897,6.6552,6.6998,6.9308,6.9844,7.1263,7.2936,7.4158,7.5518,7.6513,7.7362,7.853,7.9113,7.9691,8.0088,8.0456,8.0921,8.1605,8.2128,8.2972,8.4041,8.4746,8.5672,8.607,8.658,8.6864,8.7295,8.7523,8.7688,8.7807,8.8046,8.8904,8.9929,9.083,9.1778,9.2607,9.3562,9.4531,9.5378,9.6214,9.7012,9.7777,9.8742,9.9216,9.9879,10.1013,10.1454,10.1656,10.1909,10.2357,10.2899,10.3441,10.4099,10.4925,10.5895,10.8154,10.9748,11.1673,11.2823,11.3511,11.4276,11.4918,11.5839,11.6639,11.717,11.8047,11.8517,11.9521,12.2973,12.3827,12.4867,12.7049,12.7847,12.8219,12.8691,12.9185,12.9986,13.0579,13.1256,13.2496,13.34,13.4754,13.841,13.9594,14.0391,14.113,14.1973,14.3152,14.4123,14.5032,14.5855,14.6669,14.8266,14.9088,15.0257,15.0766,15.108,15.2395,15.3315,15.4245,15.5225,15.5753,15.6457,15.8054,15.9647,16.0759,16.2042,16.296,16.3528,16.4147,16.4698,16.5549,16.6227,16.6889,16.7545,16.8695,16.9646,17.0206,17.0914,17.1149,17.1425,17.1866,17.2184,17.2658,17.3317,17.3923,17.4687,17.5845,17.7209,17.8617,17.9902,18.0844,18.1665,18.2269,18.2848,18.3315,18.3712,18.4087,18.4453,18.4824,18.5493,18.598,18.6996,18.7422,18.7836,18.8589,18.9433,19.2121,19.3912,19.5557,19.6985,19.8681,20.0593,20.2159,20.3273,20.4341,20.5437,20.6204,20.6841,20.7456,20.8081,20.8585,20.9021,20.9869,21.0325,21.0757,21.1123,21.1496,21.1919,21.2276,21.2956,21.6101,21.7112,21.8463,22.1735,22.3634,22.5832,22.7676,22.901,23.0063,23.0997,23.1742,23.2496,23.3395,23.4346,23.4802,23.5565,23.6031,23.8115,23.9179,24.1,24.2186,24.2894,24.3381,24.3877,24.4707,24.7064,24.8742,25.0701,25.241,25.4005,25.5432,25.656,25.9421,26.0083,26.1077,26.1774,26.2443,26.3407,26.4324,26.5216,26.6119,26.7023,26.7511,26.7915,26.8754,26.9242,26.9901,27.0417,27.129,27.2358,27.4557,27.9476,28.2442,28.4469,28.6947,28.9183,29.1554,29.4726,29.5778,29.6409,29.698,29.796,29.8762,29.954,30.0352,30.1555,30.2074,30.2531,30.2833,30.3215,30.3568,30.4056,30.4486,30.5511,30.7174,30.9033,31.0322,31.1776,31.3547,31.5017,31.628,31.7769,31.8565,31.9407,32.035,32.1287,32.2079,32.2853,32.3672,32.4598,32.5978,32.6862,32.723,32.7653,32.7943,32.8804,32.9608,33.0035,33.0551,33.1278,33.2534,33.3965,33.5608,33.725,33.8265,33.9178,34.0281,34.1378,34.2484,34.3427,34.4302,34.5498,34.611,34.6782,34.7991,34.9948,35.116,35.2101,35.2797,35.3476,35.4103,35.5461,35.6576,35.7878,36.0138,36.1834,36.3156,36.4396,36.6003,36.6769,36.8044,36.8701,36.9431,37.0052,37.0612,37.1124,37.1644,37.2178,37.338,37.4048,37.479,37.5393,37.5994,37.8168,37.909,38.0375,38.1505,38.3652,38.5397,38.6914,38.8442,39.0109,39.1372,39.2094,39.261,39.3131,39.3631,39.3999,39.4339,39.4739,39.4739,39.4739,39.4739,39.4739,39.4739,39.4739,39.4739,39.4739,39.4739,39.4739,39.4739,39.4739,39.4739,39.4739,39.4739,39.5918,39.718,39.8321,39.8902,39.9782,40.0701,40.1674,40.2585,40.3463,40.4863,40.66,40.733,40.8041,40.9098,40.9957,41.0464,41.1601,41.3585,41.4518,41.5893,41.7233,41.8654,41.9745,42.1357,42.2274,42.3889,42.4771,42.5592,42.659,42.7596,42.8502,42.9485,42.9881,43.0428,43.1431,43.3043,43.4348,43.5322,43.5893,43.637,43.7193,43.8105,43.9589,44.0102,44.0524,44.1705,44.2508,44.3455,44.4409,44.5274,44.5847,44.6764,44.7882,44.921,45.0084,45.0828,45.1587,45.2729,45.326,45.4152,45.4942,45.5404,45.5816,45.6724,45.7467,45.7736,45.8055,45.8324,45.9074,46.0041,46.0811,46.1717,46.2848,46.4639,46.5744,46.6972,46.7612,46.8167,46.8812,46.9865,47.0789,47.1608,47.2498,47.362,47.4077,47.4388,47.4702,47.5644,47.6223,47.6871,47.7786,47.8935,48.063,48.2321,48.4623,48.5892,48.6981,48.8151,48.9233,49.0156,49.1203,49.2336,49.2913,49.3787,49.446,49.5629,49.7984,49.9391,50.0879,50.1714,50.2149,50.3367,50.4247,50.4876,50.5951,50.8523,51.068,51.2231,51.3713,51.5367,51.6694,51.7903,51.8715,51.9382,52.0051,52.0529,52.097,52.1459,52.1871,52.2297,52.2886,52.4127,52.5627,52.916,53.1828,53.2689,53.4112,53.5181,53.7319,54.0744,54.2661,54.4381,54.6405,54.7922,54.9196,55.0263,55.1234,55.2057,55.2737,55.3419,55.3881,55.4315,55.4834,55.5425,55.6036,55.6949,55.7795,55.8479,55.9637,56.0124,56.2366,56.4145,56.4988,56.6202,56.8964,57.1045,57.3164,57.4558,57.5862,57.709,57.8412,57.9092,57.9776,58.0415,58.1277,58.1729,58.2636,58.412,58.5694,58.6758,58.745,58.7913,58.8476,58.9114,59.0057,59.095,59.2416,59.3288,59.4394,59.5484,59.6283,59.8125,59.9335,60.0641,60.1735,60.2387,60.3191,60.3848,60.4815,60.5847,60.6963,60.7839,60.8647,60.9364,60.9883,61.0641,61.0988,61.1351,61.2052,61.284,61.3642,61.4307,61.5239,61.6842,61.8003,61.9158,62.0587,62.1539,62.3923,62.4788,62.5664,62.6666,62.7603,62.8489,62.9348,63.0949,63.1843,63.273,63.3931,63.4635,63.5021,63.5575,63.6061,63.6522,63.7372,63.8872,64.1422,64.2943,64.4899,64.906,65.0579,65.2805,65.3688,65.4651,65.5236,65.6278,65.7137,65.7561,65.8451,65.9656,66.1543,66.2711,66.4875,66.6964,66.8139,66.9323,67.0653,67.1918,67.3737,67.5525,67.7946,68.0149,68.1891,68.406,68.5404,69.0932,69.2159,69.2987,69.3701,69.5105,69.6476,69.7297,69.8239,69.9106,70.0667,70.1601,70.2448,70.3442,70.43,70.6042,70.7285,70.8275,70.9625,71.1348,71.3549,71.5792,71.9747,72.1625,72.2937,72.441,72.5936,72.71,72.7789,72.8382,72.8822,72.9251,72.9677,73.0139,73.0632,73.1574,73.2556,73.4406,73.5831,73.6661,73.7908,73.9456,74.1328,74.3361,74.5677,74.8021,75.0101,75.1806,75.3344,75.482,75.6332],"decisions":[{"clamps":[],"fallback":null,"reason":"Batteries are empty with no price spike now, so hold them; baseline cooling is kept since rooms are within band and near setpoint.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold batteries at floor (no usable charge, price not top, grid charge not needed); cooling at baseline since Building_1 is only 0.88C above setpoint; no trims, no DHW.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cheap clean hour with no top price: small battery charge per strategy, cooling and tank at baseline, no overcooling, peak headroom respected.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overnight low-price hour with grid charging allowed; small battery charge per strategy, rooms within band, no trim, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 0.0 from setpoint so cooling stays at baseline; batteries follow strategy, price is not top now and grid charging is ok, so use the suggested small charge.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cheap hour but peak headroom is zero and the batteries hold little usable charge, so hold batteries and keep baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Peak limiter is at target with zero headroom, so no grid charging; batteries and tanks held, cooling kept at baseline, Building_2 already at zero cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Charging all batteries gently at 0.098 in this cheap hour ahead of top-price hours; cooling kept at baseline since no room is overcooled enough to trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Rooms are near setpoint so no trim; batteries hold per strategy since price is not at top and grid charging at low price is marginal; keep baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 0.56C below setpoint, so trim cooling; keep battery strategy since top price is ahead; avoid tank charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is overcooled, so cooling is trimmed deeper; batteries charge gently in the cheap hour before the top-price period.","status":"ok"},{"clamps":[{"applied":0.2604,"point":"Building_1.cooling","reason":"indoor 24.4 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.066 by at most 0.02 per hour","requested":0.3065,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 slightly overcooled, trim held; batteries follow strategy, charging at low price; top price not active now, no tank charging.","status":"clamped"},{"clamps":[{"applied":0.2812,"point":"Building_1.cooling","reason":"indoor 24.4 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.046 by at most 0.02 per hour","requested":0.307,"rule":"trim_hold"}],"fallback":null,"reason":"Cheap, clean hour before top-price hours 3-5: charge batteries gently per strategy; hold cooling near baseline, no DHW, trims held.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Follow the strategy battery charge in cheap, clean hours before the top-price window; keep cooling at baseline with no overcooling and dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Buildings unoccupied and not overcooled; hold baseline cooling, follow strategy battery charging in cheap hours, no DHW, no trims.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Top-price hour: discharge batteries per strategy; trim Building_3 cooling for overcooling; hold tanks at zero.","status":"ok"},{"clamps":[{"applied":0.6953,"point":"Building_3.cooling","reason":"indoor 22.5 C is more than 0.5 C below the setpoint 23.3 C, trim held at 0.037","requested":0.7326,"rule":"trim_hold"}],"fallback":null,"reason":"Top-price hour: discharge batteries per strategy; Building_3 is overcooled so the held trim stays; other cooling at baseline.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Top-price final hour: discharge all usable battery charge; trim overcooled occupied rooms 1 and 3 by 0.1 below baseline.","status":"ok"},{"clamps":[{"applied":0.1329,"point":"Building_1.cooling","reason":"indoor 24.2 C is more than 0.5 C below the setpoint 26.5 C, trim held at 0.100","requested":0.2328,"rule":"trim_hold"},{"applied":0.3325,"point":"Building_3.cooling","reason":"indoor 23.4 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.4321,"rule":"trim_hold"}],"fallback":null,"reason":"Top-price hours are near-flat; keep strategy battery actions, hold cooling trims, and leave tanks idle.","status":"clamped"},{"clamps":[{"applied":0.2179,"point":"Building_3.cooling","reason":"indoor 24.0 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.100 by at most 0.02 per hour","requested":0.2975,"rule":"trim_hold"}],"fallback":null,"reason":"Top-price hour: discharge batteries evenly over remaining top-price hours per strategy; keep baseline cooling since rooms are within band.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Keep strategy battery discharge for the top-price hour, hold cooling at baseline since rooms are warm or near setpoint, and leave the hot water tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Top-price hour with no later top hours, so batteries discharge their small usable charge now; B1 is overcooled and cooling is eased, B2 is warm and gets more cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, so batteries idle; Building_1 is 0.25C above setpoint so baseline cooling kept; Building_2 overcooled? No, unoccupied and warm, baseline kept.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours; batteries hold, no overcooling, and cooling stays at baseline; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat-price hour so batteries stay idle; trim cooling in occupied overcooled rooms 1 and 3, leave unoccupied Building_2 at baseline.","status":"ok"},{"clamps":[{"applied":0.0471,"point":"Building_3.cooling","reason":"indoor 23.8 C is within 0.5 C of the setpoint 23.9 C, trim eases off from 0.054 by at most 0.02 per hour","requested":0.0813,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day, no top-price hours; batteries idle per strategy. Building_1 is 2.1C below setpoint so cooling trimmed; others held at baseline.","status":"clamped"},{"clamps":[{"applied":0.0076,"point":"Building_1.cooling","reason":"indoor 21.3 C is more than 0.5 C below the setpoint 22.2 C, trim held at 0.088","requested":0.0956,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day, batteries near floor with no top-price hours; hold batteries, keep baseline cooling, and let trims follow envelope rules.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours, so batteries stay idle; cooling near baseline, Building_1 trim held at 0 since it is not below setpoint by 0.5 C.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours, so batteries stay idle; cooling follows baseline since no zone is overcooled by more than 0.5 C.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours, so batteries stay idle; Building_1 is 0.06 C above setpoint so cooling stays at baseline and no trim is needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries near floor with tiny usable charge; hold batteries and keep baseline cooling, Building_1 at setpoint so no trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries near floor with little usable charge; hold batteries and tank, keep baseline cooling; Building_1 is slightly cool but within band, no trim needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, so battery stays idle; cooling near baseline; Building_1 is 1.87C below setpoint but occupied with a trim held at zero, so I keep baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, so battery idles except spare-solar storage; cooling stays at baseline since rooms are near setpoint; no DHW.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours, so batteries stay idle; cooling trims are zero since no room is more than 0.5 C below setpoint.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours; batteries idle, cooling at baseline since no room is overcooled by over 0.5 C, dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day with load below peak target and no overcooling, so cooling, storage and tanks hold baseline with batteries idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries idle; Building_1 overcooled 0.69C below setpoint is not occupied-cold enough for trim, keep baseline cooling; Building_2 warm, keep baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries idle per strategy; Building_1 is 0.91 C below setpoint so cooling trimmed slightly; others hold baseline.","status":"ok"},{"clamps":[{"applied":0.6341,"point":"Building_1.cooling","reason":"indoor 23.6 C is more than 0.5 C below the setpoint 24.6 C, trim held at 0.052","requested":0.6866,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day, batteries idle; Building_1 is 0.98 C below setpoint so trim held at -0.052 with cooling baseline kept; peak headroom limits charging.","status":"clamped"},{"clamps":[{"applied":0.5975,"point":"Building_1.cooling","reason":"indoor 23.4 C is more than 0.5 C below the setpoint 25.0 C, trim held at 0.052","requested":0.6,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day with no top-price hours, so batteries idle; Building_1 is overcooled so trim held, cooling kept at baseline; dhw idle.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Flat price day so batteries idle; Building_1 is overcooled so trim held; Building_3 is 2.4C below setpoint, so cooling kept at baseline; DHW idle.","status":"ok"},{"clamps":[{"applied":0.487,"point":"Building_1.cooling","reason":"indoor 23.3 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.102","requested":0.5894,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day with no top-price hours, so batteries stay idle; Building_1 is 1.18C below setpoint so cooling trim is held at baseline cooling.","status":"clamped"},{"clamps":[{"applied":0.2873,"point":"Building_1.cooling","reason":"indoor 23.5 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.102","requested":0.39,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day, batteries idle; Building_1 overcooled 0.96C below setpoint so trim held; others use baseline cooling with no tank or battery action.","status":"clamped"},{"clamps":[{"applied":0.329,"point":"Building_1.cooling","reason":"indoor 24.1 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.102 by at most 0.02 per hour","requested":0.4114,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day so batteries idle; Building_1 is 0.35C below setpoint so cooling trim held; other buildings use baseline cooling and no tank charging.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries idle; Building_1 overcooled 1.43C so trim held, cooling kept at baseline; no DHW charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours; batteries idle as strategy says, cooling at baseline since no room is overcooled, dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top-price hours, so batteries stay idle; trim cooling in overcooled occupied rooms B1 and B3, B2 is warm so baseline.","status":"ok"},{"clamps":[{"applied":0.3435,"point":"Building_1.cooling","reason":"indoor 18.5 C is more than 0.5 C below the setpoint 20.0 C, trim held at 0.056","requested":0.35,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 is 1.46C below setpoint, so trim cooling deeper; flat price means batteries idle and dhw stays at zero.","status":"clamped"},{"clamps":[{"applied":0.2467,"point":"Building_1.cooling","reason":"indoor 18.6 C is more than 0.5 C below the setpoint 20.0 C, trim held at 0.056","requested":0.25,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 is overcooled 1.38C below setpoint, so trim cooling modestly deeper; batteries idle on flat prices with negligible usable charge.","status":"clamped"},{"clamps":[{"applied":0.1858,"point":"Building_1.cooling","reason":"indoor 18.9 C is more than 0.5 C below the setpoint 20.0 C, trim held at 0.056","requested":0.2419,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day with no top-price hours, so batteries stay idle; Building_1 is overcooled so trim held at baseline cooling, others hold baseline.","status":"clamped"},{"clamps":[{"applied":0.1465,"point":"Building_1.cooling","reason":"indoor 19.2 C is more than 0.5 C below the setpoint 20.0 C, trim held at 0.056","requested":0.19,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day, batteries idle; Building_1 overcooled 0.79C below setpoint so trim deepened slightly within limits; others baseline.","status":"clamped"},{"clamps":[{"applied":0.143,"point":"Building_1.cooling","reason":"indoor 19.5 C is within 0.5 C of the setpoint 20.0 C, trim eases off from 0.056 by at most 0.02 per hour","requested":0.1791,"rule":"trim_hold"}],"fallback":null,"reason":"Flat prices and no top-price hours; hold batteries and tanks idle, keep baseline cooling, and do not end trims since rooms are near setpoint.","status":"clamped"},{"clamps":[{"applied":0.156,"point":"Building_1.cooling","reason":"indoor 19.6 C is within 0.5 C of the setpoint 20.0 C, trim eases off from 0.036 by at most 0.02 per hour","requested":0.1721,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day, batteries idle; Building_1 is 0.44 C below setpoint so trim held, cooling at baseline; no DHW.","status":"clamped"},{"clamps":[{"applied":0.1485,"point":"Building_1.cooling","reason":"indoor 19.4 C is more than 0.5 C below the setpoint 20.0 C, trim held at 0.016","requested":0.1646,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price, no top-price hours, batteries near floor so hold; Building_1 is 0.6C below setpoint so trim held and cooling kept near baseline; others hold.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Price is flat with no top-price hour now; hold batteries per strategy, cool at baseline, and trim Building_1 slightly as it is overcooled.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is 0.29C below setpoint so no extra trim; price is flat-ish, not top, so keep strategy battery charge at 0.15 for all buildings; cooling at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"B1 is overcooled 3 C, so its cooling trim is deepened; B1 stores a little solar; other buildings keep baseline.","status":"ok"},{"clamps":[{"applied":0.0361,"point":"Building_1.cooling","reason":"indoor 22.2 C is more than 0.5 C below the setpoint 22.8 C, trim held at 0.100","requested":0.136,"rule":"trim_hold"}],"fallback":null,"reason":"Prices flat with no top-price hour now; overcooled Building_1 trim held, store spare solar in batteries, no tank charging, cooling at baseline elsewhere.","status":"clamped"},{"clamps":[{"applied":0.0,"point":"Building_1.cooling","reason":"indoor 23.3 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.073,"rule":"trim_hold"},{"applied":0.2553,"point":"Building_2.cooling","reason":"indoor 27.4 C is near the top of the comfort band, cooling held at the baseline","requested":0.255,"rule":"comfort"}],"fallback":null,"reason":"Trim building 1 for overcooling, hold batteries near strategy, no grid charging at flat price; keep tanks idle and cooling near baseline.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Price is flat-low now with no top-price hour, so store spare solar only; Building_1 and 2 cooling trims per envelope; no grid charging, no tank use.","status":"ok"},{"clamps":[{"applied":0.0,"point":"Building_1.battery","reason":"district load 8.92 kWh would pass the peak target 8.60 kWh, charging trimmed","requested":0.08,"rule":"peak"}],"fallback":null,"reason":"Holding baseline cooling since rooms are near setpoint; following battery strategy to shave the peak at the target with no headroom and no top-price hour now.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Cooling kept at baseline with no trim needed; only Building_1 stores spare solar, since no top-price hour is now and load is well under peak target.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold all batteries and cooling at baseline: no overcooling, price and carbon are not at a top-hour window, and peak headroom is limited.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_3 is overcooled by about 1 C, so I trim its cooling slightly; batteries and tanks hold since prices are not at the top yet.","status":"ok"},{"clamps":[{"applied":0.2542,"point":"Building_3.cooling","reason":"indoor 23.1 C is more than 0.5 C below the setpoint 23.9 C, trim held at 0.050","requested":0.3043,"rule":"trim_hold"}],"fallback":null,"reason":"Holding batteries and tanks at baseline: price is not top, carbon is high now, and the room temperatures are already within safe limits.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Building_1 is overcooled 3.8 C below setpoint, so cooling is trimmed 0.1 below baseline; other devices hold baseline since peak headroom and price timing give no reason to act.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is overcooled by 1.33 C so its held trim applies; others hold baseline, batteries idle as no top-price discharge or cheap-hour charge is due now.","status":"ok"},{"clamps":[{"applied":0.0058,"point":"Building_1.cooling","reason":"indoor 24.4 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.100 by at most 0.02 per hour","requested":0.086,"rule":"trim_hold"}],"fallback":null,"reason":"Building_3 is slightly overcooled so its cooling is trimmed; other actions follow baseline and battery strategy, with charging deferred to cheaper early-morning hours.","status":"clamped"},{"clamps":[{"applied":0.1653,"point":"Building_3.cooling","reason":"indoor 22.8 C is more than 0.5 C below the setpoint 23.3 C, trim held at 0.011","requested":0.1761,"rule":"trim_hold"}],"fallback":null,"reason":"Buildings are warm or near setpoint, so cooling stays at baseline; batteries hold since no top-price hour is now and grid charging waits for cheap hours.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"B1 and B3 overcooled, so cooling is trimmed or held; B2 is warm near its band edge so cooling rises; batteries held per strategy.","status":"ok"},{"clamps":[{"applied":0.0076,"point":"Building_3.cooling","reason":"indoor 23.3 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.011","requested":0.0189,"rule":"trim_hold"}],"fallback":null,"reason":"Overcooling not present except Building_1 at -1.44C; trim ~0.1 needed. Batteries idle: price not top, charging limited, hold strategy.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Hold batteries near baseline since price is low and no top-price hours now; cooling kept at baseline as rooms are within band and Building_3 trim is small.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 0.78C below setpoint so cooling is trimmed slightly; batteries held as prices are low and no top-price hour is now; DHW idle.","status":"ok"},{"clamps":[{"applied":0.03,"point":"Building_1.cooling","reason":"indoor 23.2 C is more than 0.5 C below the setpoint 23.8 C, trim held at 0.022","requested":0.0522,"rule":"trim_hold"}],"fallback":null,"reason":"Building 2 is 2.98C above setpoint so cooling stays at baseline; batteries follow strategy charging in cheap hours; no top price now, DHW idle.","status":"clamped"},{"clamps":[{"applied":0.0064,"point":"Building_1.cooling","reason":"indoor 23.6 C is more than 0.5 C below the setpoint 24.1 C, trim held at 0.022","requested":0.0286,"rule":"trim_hold"}],"fallback":null,"reason":"Cheap, clean hour before the 12-14h top price: charge batteries per strategy, keep cooling at baseline, DHW idle.","status":"clamped"},{"clamps":[{"applied":0.0116,"point":"Building_1.cooling","reason":"indoor 24.1 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.022 by at most 0.02 per hour","requested":0.0138,"rule":"trim_hold"}],"fallback":null,"reason":"Cheap, clean hour before the 16-18h top price: charge Building_2 and Building_3 batteries per strategy; hold Building_1 (soc 0.92) and keep cooling at baseline.","status":"clamped"},{"clamps":[{"applied":0.0042,"point":"Building_1.cooling","reason":"indoor 24.2 C is more than 0.5 C below the setpoint 24.8 C, trim held at 0.002","requested":0.0064,"rule":"trim_hold"}],"fallback":null,"reason":"Hour 6 is cheap, so I follow the strategy battery charge in Buildings 2 and 3, hold Building 1 battery idle, and keep cooling at baseline with the trim held.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Hour 7 is not top-price; B1 is 0.68C under setpoint so keep cooling at 0 with trim held; charge batteries gently per strategy while grid charging is allowed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Holding batteries near baseline; charging Buildings 2 and 3 modestly at the cheap 0.029 price ahead of the 16-18h top-price hours, with cooling at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Holding batteries per strategy; small cheap-hour top-up for Buildings 2 and 3 ahead of top-price hours; cooling unchanged, no overcooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold batteries: price low, not top hour, next top hours 6-8 ahead; B1 and B3 cooling at baseline, B2 unoccupied and warm so keep baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is 1.79C below setpoint but baseline cooling is tiny, so trim is held at 0; batteries idle since top price is not active and charging is not needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold batteries and baseline cooling; Building_1 is only 0.62C above setpoint, price is not top now, and strategy says hold.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold batteries idle: price not at top, next top hours 3-5 ahead; batteries near charge but no cheap charge needed; cooling at baseline, B1 trim within band.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is overcooled so cooling is cut to 0; Building 3 stores cheap solar-hour charge per strategy; other actions keep baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 2 is 2.36C above setpoint so cooling stays at baseline; batteries follow strategy, charging in cheap hours with grid charging allowed; DHW idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Top price now: discharge batteries toward top-price hours; trim overcooled Building_1 by 0.1 cooling; Building_2 is warm so no trim; no grid charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Top-price hour: follow strategy battery discharge; cool buildings 1 and 3 near setpoint at baseline, Building 2 is warm so keep baseline cooling, no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Top-price hour: discharge batteries per strategy, capped by load; no grid charging, tanks idle, cooling at baseline as rooms are not overcooled.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold batteries for the 21-23h top-price window; trim B1 slightly for overcooling and boost B2 cooling since it is 1.6C above setpoint.","status":"ok"},{"clamps":[{"applied":0.1614,"point":"Building_1.cooling","reason":"indoor 23.9 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.025","requested":0.187,"rule":"trim_hold"}],"fallback":null,"reason":"Hold batteries near strategy; prices not at top now, grid charging cheap hours later; trims held, cooling near baseline.","status":"clamped"},{"clamps":[{"applied":0.1362,"point":"Building_1.cooling","reason":"indoor 24.0 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.025 by at most 0.02 per hour","requested":0.1417,"rule":"trim_hold"}],"fallback":null,"reason":"Hold batteries as strategy suggests; price not top now, charging only cheap hours; trim Building_1 held; cool Building_2 at baseline since it is warm.","status":"clamped"},{"clamps":[{"applied":0.1065,"point":"Building_1.cooling","reason":"indoor 23.8 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.005","requested":0.112,"rule":"trim_hold"}],"fallback":null,"reason":"Hold baselines: buildings 1 and 3 near setpoint, B2 overheated so cooling stays baseline; no top price now, batteries idle, grid charging not needed at 0.03 price.","status":"clamped"},{"clamps":[{"applied":0.0854,"point":"Building_1.cooling","reason":"indoor 23.9 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.005","requested":0.0909,"rule":"trim_hold"}],"fallback":null,"reason":"Cheap hour 23 with no top-price now; start small battery top-ups ahead of the 17-19h peak-price hours, cooling baselines kept.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Buildings are warm or near setpoint so cooling stays at baseline; prices are low now, so small battery charging builds charge for the 16-18h top-price hours.","status":"ok"},{"clamps":[{"applied":0.1167,"point":"Building_1.cooling","reason":"indoor 21.7 C is near the bottom of the comfort band, cooling held at the baseline","requested":0.117,"rule":"comfort"}],"fallback":null,"reason":"Overcooled Building_1 trims cooling 0.5C below setpoint; batteries follow strategy charge in cheap hour; no top price now, tank idle.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Hour 2 is cheap and clean; charge batteries gently per strategy, keep cooling at baseline, tanks idle, no trims needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cheap low-carbon hour before top-price window; charge batteries gently per strategy, cooling near baseline, no DHW, Building_1 slightly under setpoint so no trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling trim not needed (B1 0.43 below setpoint); keep baseline cooling, charge batteries gently in cheap hour, no tank use, no trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hour 5 is cheap and not top-price; charge batteries gently per strategy, no DHW, cooling near baseline since rooms are near setpoint.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is overcooled 0.65C below setpoint, so trim cooling slightly; batteries follow strategy, no top price now so no discharge, grid charging ok in cheap hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hour 7 is cheap, not top price; B1 and B2 stay at baseline cooling, B3 uses its gentle strategy charge, no DHW, all within limits.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is 0.58C below setpoint, so trim cooling; hold batteries idle as strategy suggests since prices are not top-priced and district load is near target.","status":"ok"},{"clamps":[{"applied":0.1171,"point":"Building_1.cooling","reason":"indoor 21.9 C is more than 0.5 C below the setpoint 22.8 C, trim held at 0.035","requested":0.1521,"rule":"trim_hold"},{"applied":0.0069,"point":"Building_1.battery","reason":"charge would take charge from 0.94 above 0.95","requested":0.034,"rule":"soc"},{"applied":0.0078,"point":"Building_2.battery","reason":"charge would take charge from 0.94 above 0.95","requested":0.034,"rule":"soc"}],"fallback":null,"reason":"Building_1 overcooled slightly but within 0.5C of setpoint; keep baseline; hold battery idle until top-price hours; charge modestly per strategy.","status":"clamped"},{"clamps":[{"applied":0.1015,"point":"Building_1.cooling","reason":"indoor 22.4 C is more than 0.5 C below the setpoint 23.3 C, trim held at 0.035","requested":0.12,"rule":"trim_hold"}],"fallback":null,"reason":"Hour 10 is not top-price; cooling near baseline with trim held, batteries near full so no grid charge, DHW idle, B3 battery small spare-solar store.","status":"clamped"},{"clamps":[{"applied":0.1067,"point":"Building_1.cooling","reason":"indoor 23.2 C is more than 0.5 C below the setpoint 23.9 C, trim held at 0.035","requested":0.142,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 is overcooled so trim is held; batteries follow strategy, charging modestly in cheap hour before top-price hours ahead; no tank charging.","status":"clamped"},{"clamps":[{"applied":0.117,"point":"Building_1.cooling","reason":"indoor 23.9 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.035","requested":0.14,"rule":"trim_hold"}],"fallback":null,"reason":"Hold batteries idle for upcoming 16-18h top prices; Building_1 cooling eased slightly as room is overcooled; others keep baseline.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Rooms are near setpoint and batteries are already near 0.95 SoC, so baseline cooling and idle storage are kept this hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Batteries are near full and no top-price hour is now, so hold; cooling stays at baseline since no room is overcooled and load is well under target.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold baseline cooling; B2 unoccupied and warm so no trim; battery strategy follows, pre-charge for top price at hours 1-3 with grid charging ok.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Discharging batteries evenly over the remaining top-price hours per strategy; room temps are within comfort so cooling stays at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Top-price hour: discharge batteries per strategy, trim overcooled Building_1 by 0.055, keep others at baseline, tank idle.","status":"ok"},{"clamps":[{"applied":0.5299,"point":"Building_1.cooling","reason":"indoor 23.3 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.056","requested":0.5854,"rule":"trim_hold"}],"fallback":null,"reason":"Top-price hour: discharge batteries evenly over remaining top hours per strategy; B1 overcooled trim held; no DHW or grid charging.","status":"clamped"},{"clamps":[{"applied":0.4215,"point":"Building_1.cooling","reason":"indoor 22.9 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.056","requested":0.477,"rule":"trim_hold"}],"fallback":null,"reason":"Hour 19 with price not top; district load near peak target so limiter on; hold baseline cooling, mild battery discharge per strategy, no grid charging, DHW idle.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Peak limiter is binding at target, so I deepened the overcooled occupied rooms' trims to cut cooling load and kept the code's battery discharge for Building_3.","status":"ok"},{"clamps":[{"applied":0.1625,"point":"Building_1.cooling","reason":"indoor 23.6 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.073","requested":0.2352,"rule":"trim_hold"}],"fallback":null,"reason":"Building 3 is overcooled by 1.84 C, so I deepened its cooling trim; the other buildings and batteries follow the baseline or strategy.","status":"clamped"},{"clamps":[{"applied":0.1406,"point":"Building_1.cooling","reason":"indoor 24.0 C is within 0.5 C of the setpoint 24.3 C, trim eases off from 0.073 by at most 0.02 per hour","requested":0.163,"rule":"trim_hold"},{"applied":0.0937,"point":"Building_3.cooling","reason":"indoor 23.6 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.097","requested":0.191,"rule":"trim_hold"}],"fallback":null,"reason":"Buildings 1 and 3 are overcooled; trim cooling by envelope-held amounts, hold batteries (price not top, grid charging gains little with near-empty usable charge), tanks idle.","status":"clamped"},{"clamps":[{"applied":0.1302,"point":"Building_1.cooling","reason":"indoor 24.1 C is within 0.5 C of the setpoint 24.3 C, trim eases off from 0.053 by at most 0.02 per hour","requested":0.1629,"rule":"trim_hold"},{"applied":0.079,"point":"Building_3.cooling","reason":"indoor 24.3 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.097 by at most 0.02 per hour","requested":0.1561,"rule":"trim_hold"}],"fallback":null,"reason":"Hour 23 at low price with no top-price hours now; hold batteries per strategy, trim cooling per envelope, Building_2 is warm so cooling stays at baseline.","status":"clamped"},{"clamps":[{"applied":0.1214,"point":"Building_1.cooling","reason":"indoor 24.1 C is within 0.5 C of the setpoint 24.3 C, trim eases off from 0.033 by at most 0.02 per hour","requested":0.1341,"rule":"trim_hold"}],"fallback":null,"reason":"Buildings 1 and 3 are slightly overcooled within 0.5 C so trims stay held; price is not top now, batteries hold, no grid charging at low headroom need.","status":"clamped"},{"clamps":[{"applied":0.1452,"point":"Building_2.cooling","reason":"indoor 25.7 C is near the top of the comfort band, cooling held at the baseline","requested":0.145,"rule":"comfort"}],"fallback":null,"reason":"Cheap low-carbon hour before top-price window; charge batteries gently at strategy level, hold cooling near baseline, no DHW charging.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Cheap, clean hour before top-price block; charge batteries gently per strategy, keep cooling at baseline since rooms are near band, no DHW.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 overcooled 1.9C above setpoint so cooling kept at baseline; batteries follow strategy charging in cheap hour; no tank charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is 0.24C below setpoint, so no extra trim; batteries follow strategy charging in cheap hour, tanks idle, cooling at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is 0.47C under setpoint, so no extra trim; keep baseline cooling and battery charge, cheap hour, no top price now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cheap, clean hour before the top-price window: charge batteries at the strategy rate, keep cooling at baseline, and leave the tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Peak limiter on with zero headroom; no grid charging, hold cooling at baseline, battery discharge per strategy to cut district peak.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Charging batteries gently in a cheap, clean hour; trimming overcooled Building_1 slightly; others keep baseline cooling with tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_2 overcooled? No, it is 1.58C warm; keep baseline cooling, follow strategy battery charging in cheap hours, no top-price hour now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 overcooled 0.69C below setpoint, not yet 0.5C-plus trim band edge; hold baseline cooling, charge batteries lightly at low price, avoid tank charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hour 11 is not top-price; B1 and B3 cooling trims held at 0 since comfort fine; B2 unoccupied and above setpoint, keep baseline; mild charge per strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim cooling in overcooled occupied Building_1 per envelope; hold batteries near strategy values, charging only where grid charging is ok and no top price now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 0.81C below setpoint, so trim cooling slightly; hold batteries per strategy, no grid charge at this price beyond small top-up.","status":"ok"},{"clamps":[{"applied":0.1948,"point":"Building_1.cooling","reason":"indoor 24.1 C is more than 0.5 C below the setpoint 25.2 C, trim held at 0.015","requested":0.2093,"rule":"trim_hold"}],"fallback":null,"reason":"Cheap hour before top-price block: follow strategy battery charge for B1 and B3, keep cooling at baseline, tank idle, and B2 near full holds.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Charge batteries in this cheap, clean hour ahead of the top-price hours; keep cooling at baseline since no room is overcooled.","status":"ok"},{"clamps":[{"applied":0.1272,"point":"Building_1.cooling","reason":"indoor 24.5 C is near the bottom of the comfort band, cooling held at the baseline","requested":0.25,"rule":"comfort"}],"fallback":null,"reason":"B1 cooling raised (indoor below band), B3 trims cooling 0.06, B2 and B3 discharge into top-price hours, B1 stores spare solar.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Light cooling trims on overcooled occupied B1 and B3; batteries discharge in the top-price hour per strategy; no grid charging since grid_charging_ok is false.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Discharge batteries on top-price hour per plan; trim Building_3 cooling deeper since it is 2.2C below setpoint; others keep baseline.","status":"ok"},{"clamps":[{"applied":0.229,"point":"Building_3.cooling","reason":"indoor 23.5 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.3286,"rule":"trim_hold"}],"fallback":null,"reason":"Hour 19: top price not yet active, so hold battery per strategy; B1 and B3 slightly overcooled, keep baseline cooling; charge none; no DHW.","status":"clamped"},{"clamps":[{"applied":0.1479,"point":"Building_3.cooling","reason":"indoor 24.3 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.100 by at most 0.02 per hour","requested":0.2275,"rule":"trim_hold"}],"fallback":null,"reason":"Hour 20 is not top price; keep baseline cooling, follow strategy battery, and let Building_3 trim hold since it is overcooled, no DHW.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Use strategy battery discharges to cover load near the peak limit; no cooling trims since rooms are not overcooled; no DHW.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold baseline cooling; Building_1 is 0.31 C under setpoint so no trim, batteries idle as strategy says, top price not active now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is overcooled by 1.19 C but the envelope holds trim at 0; cooling kept near baseline, batteries idle as price is not top and grid charging is marginal.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Buildings 1 and 3 are near setpoint so cooling stays at baseline; Building 2 is warm, so no trim. Batteries idle; price is not top, grid charging small.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Rooms are near setpoint so cooling stays at baseline; batteries take a small grid charge at the low price ahead of the 15-17h top-price hours.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Price is low and not top; charge batteries gently at strategy level, keep cooling near baseline, Building_1 slightly overcooled is within band so no trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 0.89 C below setpoint so cooling trims slightly; other buildings follow baseline with strategy battery charging in cheap hour.","status":"ok"},{"clamps":[{"applied":0.131,"point":"Building_1.cooling","reason":"indoor 21.9 C is within 0.5 C of the setpoint 22.2 C, trim eases off from 0.049 by at most 0.02 per hour","requested":0.16,"rule":"trim_hold"}],"fallback":null,"reason":"Hour 4 is cheap and clean with no top price now; charge batteries gently as strategy says, keep cooling near baseline, tank idle.","status":"clamped"},{"clamps":[{"applied":0.1128,"point":"Building_1.cooling","reason":"indoor 22.0 C is within 0.5 C of the setpoint 22.2 C, trim eases off from 0.029 by at most 0.02 per hour","requested":0.121,"rule":"trim_hold"}],"fallback":null,"reason":"Trim held near setpoint so cooling stays near baseline; Building 1 eases trim; batteries charge gently in cheap hour per strategy, no tank charging.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Charging batteries gently in this cheap, clean hour ahead of the top-price period; cooling and tanks stay at baseline with no comfort issues.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 0.05C above setpoint so no trim; price is not top now, so follow strategy battery charging and idle cooling/DHW at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling not triggered; holding baseline cooling and strategy battery charging in cheap, clean hours ahead of the top-price period.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cooling and battery follow baselines and strategy: Building_3 charges gently in this cheap hour before the top-price hours; no trims needed.","status":"ok"},{"clamps":[{"applied":0.0081,"point":"Building_1.battery","reason":"charge would take charge from 0.94 above 0.95","requested":0.14,"rule":"soc"}],"fallback":null,"reason":"Building_1 overcooled 1.44C below setpoint, so trim cooling; top price is 6-8 hours away, so hold battery and charge gently per strategy.","status":"clamped"},{"clamps":[{"applied":0.1195,"point":"Building_1.cooling","reason":"indoor 23.5 C is within 0.5 C of the setpoint 23.9 C, trim eases off from 0.104 by at most 0.02 per hour","requested":0.203,"rule":"trim_hold"}],"fallback":null,"reason":"Trim cooling where overcooled, hold batteries until top-price hours, and charge only where grid charging is allowed and prices are low.","status":"clamped"},{"clamps":[{"applied":0.2112,"point":"Building_1.cooling","reason":"indoor 24.1 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.084 by at most 0.02 per hour","requested":0.2748,"rule":"trim_hold"}],"fallback":null,"reason":"Hour 12: prices not at top, district load near peak target, so hold batteries mostly per strategy; trim B1 cooling as indoor is near setpoint.","status":"clamped"},{"clamps":[{"applied":0.2772,"point":"Building_1.cooling","reason":"indoor 24.2 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.064 by at most 0.02 per hour","requested":0.3208,"rule":"trim_hold"}],"fallback":null,"reason":"Cooling kept at baseline with trims held; batteries charge gently in this cheap hour ahead of top-price hours 3-5.","status":"clamped"},{"clamps":[{"applied":0.3683,"point":"Building_1.cooling","reason":"indoor 24.3 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.044 by at most 0.02 per hour","requested":0.392,"rule":"trim_hold"}],"fallback":null,"reason":"Trim-hold cooling at baseline with envelope; hold batteries per strategy since top price is 2-4h ahead and grid charging is allowed; no DHW.","status":"clamped"},{"clamps":[{"applied":0.4654,"point":"Building_1.cooling","reason":"indoor 24.0 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.024 by at most 0.02 per hour","requested":0.469,"rule":"trim_hold"}],"fallback":null,"reason":"Cheap low-price hour: charge B1 and B3 batteries per strategy, keep B2 idle near full, no cooling trims needed, tank stays empty.","status":"clamped"},{"clamps":[{"applied":0.3765,"point":"Building_1.cooling","reason":"indoor 23.6 C is more than 0.5 C below the setpoint 25.6 C, trim held at 0.004","requested":0.3801,"rule":"trim_hold"}],"fallback":null,"reason":"Hold the battery discharge on top-price hours per strategy; keep cooling at baseline, dhw idle, and no grid charging since grid_charging_ok is false.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Discharge batteries on top-price hour per strategy; deepen overcooled occupied Building_1 and Building_3 trims, hold Building_2 at baseline.","status":"ok"},{"clamps":[{"applied":0.0949,"point":"Building_1.cooling","reason":"indoor 26.7 C is more than 0.5 C below the setpoint 27.2 C, trim held at 0.100","requested":0.195,"rule":"trim_hold"}],"fallback":null,"reason":"Top-price hour: discharge batteries per strategy, keep cooling trims held, no tank charging or grid charging.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Hold batteries for the 21-23h top-price hours; deepen Building_3 cooling trim since it is overcooled by 1.27 C while occupied.","status":"ok"},{"clamps":[{"applied":0.2913,"point":"Building_3.cooling","reason":"indoor 23.5 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.079","requested":0.3704,"rule":"trim_hold"}],"fallback":null,"reason":"Batteries held at idle since no top-price hour is now and the peak is under target; cooling and DHW follow baseline, with Building_3's held trim kept.","status":"clamped"},{"clamps":[{"applied":0.1966,"point":"Building_3.cooling","reason":"indoor 23.7 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.079","requested":0.2757,"rule":"trim_hold"}],"fallback":null,"reason":"Hold all batteries and tanks at baseline; no top-price hour now, and indoor temps are within band, so Building_3's held trim stays.","status":"clamped"},{"clamps":[{"applied":0.1766,"point":"Building_3.cooling","reason":"indoor 24.2 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.079 by at most 0.02 per hour","requested":0.2357,"rule":"trim_hold"}],"fallback":null,"reason":"Hour 22 at a non-top price; comfort trims held, batteries held per strategy, no tank charging, cooling at baseline.","status":"clamped"},{"clamps":[{"applied":0.1247,"point":"Building_3.cooling","reason":"indoor 24.3 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.059 by at most 0.02 per hour","requested":0.1638,"rule":"trim_hold"}],"fallback":null,"reason":"Hour 23 at low flat-ish price with no top hours now; B1 and B2 indoor near or above setpoint, B3 trim held; keep baseline cooling and idle batteries.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Prices are low and not at the top, so I hold most batteries and add a small grid charge to Building_1, which is near its floor, ahead of the 16-18h price peak.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 2 is 2.2C above setpoint so cooling stays at baseline; batteries hold at zero since top price is not active and grid charging is not needed at this price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_2 is overcooled? No, it is 1.41C warm so no trim; batteries charge gently in cheap hour per strategy, DHW idle, cooling at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cheap, clean hour before the 13-15h top price: charge all three batteries at 0.15 per the strategy; room cooling and hot water stay at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling trim not needed; battery charging at strategy level in cheap hour, tanks idle, cooling baseline kept since Building_1 is only 0.62 above setpoint.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cheap hour with grid charging allowed; follow strategy battery charge of 0.15, no cooling trim since rooms are warm, no DHW.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hour 6 is cheap and low-carbon, top price starts at hour 10; keep the strategy charge, cooling near baseline, and no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hour 7 is cheap, not top price; charge batteries gently per strategy, keep cooling near baseline, no DHW, and avoid overcooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hour 8 is not top-price and tariff is low, so hold batteries per strategy; trims are zero as rooms are near setpoint, cooling at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Holding batteries and cooling at baseline: no overcooling, price not at top, and district load is well below the peak target.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling not triggered; kept baseline cooling, followed battery strategy (store spare solar), no tank charging, no grid charging at the current low price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold cooling at baseline, no overcooling; batteries follow strategy, charging modestly in cheap hours before top-price hours 5-7; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hour 12 is not top price; trim cooling in overcooled occupied Building_1 and follow strategy battery charging within grid_charging_ok limits.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hour 13 is cheap and not top price; keep baselines, mild trim for overcooled occupied Building_1, store spare solar via strategy battery actions.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is overcooled slightly; hold baseline cooling, battery follows strategy, price is low so store modestly, no tank charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cheap clean hour before top-price hours 1-3: B3 tops up gently to about 0.95, others hold; cooling stays at baseline since no room is overcooled.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Top-price hour: discharge batteries per strategy; Building_3 is overcooled by 0.62 C so cooling trimmed slightly; others keep baseline.","status":"ok"},{"clamps":[{"applied":0.5916,"point":"Building_3.cooling","reason":"indoor 23.1 C is more than 0.5 C below the setpoint 23.7 C, trim held at 0.012","requested":0.6039,"rule":"trim_hold"}],"fallback":null,"reason":"Holding the battery for the top-price hours at the strategy discharge rates; cooling and tank stay at baseline or held trim, no grid charging.","status":"clamped"},{"clamps":[{"applied":0.729,"point":"Building_3.cooling","reason":"indoor 22.7 C is more than 0.5 C below the setpoint 23.3 C, trim held at 0.012","requested":0.7413,"rule":"trim_hold"}],"fallback":null,"reason":"Top-price hour with no later top hours, so discharge batteries per strategy; ease Building_1 cooling for overcooling; hold Building_3 trim.","status":"clamped"},{"clamps":[{"applied":0.2797,"point":"Building_1.cooling","reason":"indoor 26.3 C is more than 0.5 C below the setpoint 27.2 C, trim held at 0.034","requested":0.3133,"rule":"trim_hold"},{"applied":0.553,"point":"Building_3.cooling","reason":"indoor 21.7 C is more than 0.5 C below the setpoint 23.3 C, trim held at 0.012","requested":0.5653,"rule":"trim_hold"}],"fallback":null,"reason":"Batteries follow strategy discharge over top-price hours; cooling and DHW hold baseline or held trims to stay within comfort and envelope limits.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Top-price hour: discharge battery per strategy; deepen overcooled rooms' trim in Buildings 1 and 3; hold Building 2 at baseline.","status":"ok"},{"clamps":[{"applied":0.1418,"point":"Building_1.cooling","reason":"indoor 26.6 C is more than 0.5 C below the setpoint 27.2 C, trim held at 0.034","requested":0.1759,"rule":"trim_hold"},{"applied":0.2454,"point":"Building_3.cooling","reason":"indoor 22.6 C is more than 0.5 C below the setpoint 23.3 C, trim held at 0.093","requested":0.338,"rule":"trim_hold"}],"fallback":null,"reason":"Holding held cooling trims and discharging batteries evenly over the two remaining top-price hours, keeping district load under the peak target.","status":"clamped"},{"clamps":[{"applied":0.1313,"point":"Building_1.cooling","reason":"indoor 26.7 C is within 0.5 C of the setpoint 27.2 C, trim eases off from 0.034 by at most 0.02 per hour","requested":0.1454,"rule":"trim_hold"},{"applied":0.1628,"point":"Building_3.cooling","reason":"indoor 22.9 C is more than 0.5 C below the setpoint 23.6 C, trim held at 0.093","requested":0.2554,"rule":"trim_hold"}],"fallback":null,"reason":"Top-price hour with little usable charge: discharge the remaining battery as the strategy says, keep cooling trims held, and leave the tanks idle.","status":"clamped"},{"clamps":[{"applied":0.0972,"point":"Building_1.cooling","reason":"indoor 26.7 C is more than 0.5 C below the setpoint 27.2 C, trim held at 0.014","requested":0.1113,"rule":"trim_hold"},{"applied":0.0997,"point":"Building_3.cooling","reason":"indoor 23.5 C is within 0.5 C of the setpoint 23.9 C, trim eases off from 0.093 by at most 0.02 per hour","requested":0.1723,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day, batteries idle per strategy; trims held, Building_1 eases toward setpoint, Building_3 trim held; no tank or battery action.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries idle; Building_1 and Building_3 cooling near baseline with trims held; no DHW, no top-price hours.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours, so batteries stay idle; no room is overcooled, so cooling and tank stay at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, so batteries stay idle; Building_1 is 0.31 C below setpoint but not past 0.5 C, so baseline cooling holds.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours, so batteries stay idle; cooling kept at baseline since no room is overcooled.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours; batteries idle as suggested, cooling at baseline since no building is overcooled.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours, so batteries stay idle; cooling follows baseline since no room is overcooled.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, no top-price hours, so batteries idle; Building_1 is 0.48C above setpoint so cooling stays at baseline; dhw held at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, no top-price hours, so batteries stay idle; cooling near baseline since rooms are within band and no trim is warranted.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, no top-price hours; batteries idle, cooling near baseline, tanks idle, Building_1 is 0.85C above setpoint so no overcooling trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price with no top-price hours, so batteries stay idle; all rooms are warm, so cooling and tanks keep baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat-price day with no top-price hours and rooms within band; holding baseline cooling, idle batteries and tanks, no trim needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, no top-price hours; batteries idle, cooling at baseline, no overcooling, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours, so batteries idle; cooling at baseline since no building is overcooled beyond 0.5 C; dhw stays at zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, no top-price hours, so batteries idle; Building_1 and Building_3 cooling at baseline; Building_2 is warm so baseline cooling kept.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours; battery idle, Building_1 slightly cold so keep baseline cooling, peak headroom is zero so no grid charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top hours; overcooling none, Building_2 warm so baseline cooling; battery idle per flat_24h, DHW idle, follow baseline and strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours, so battery idles; cooling follows baseline since no building is overcooled beyond 0.5 C; DHW stays at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day so battery idle; Building_1 and 2 at baseline cooling; Building_3 uses its small strategy discharge to shave the district peak.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top-price hours, so battery idle; cooling near baseline since rooms within band; Building 1 is 1.9C below setpoint but cooling is baseline-limited, no trim needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day so battery idle; Building_1 and 2 overcooled? No, Building_1 is 2.3C below setpoint so cooling trimmed; peak limiter active, district load near target.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, so battery idle; Building_1 and 2 are cold/warm within band, keep baseline cooling; Building_3 slightly cool so keep baseline; no DHW.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, so batteries idle; Building_1 is 2.1C below setpoint so trim cooling slightly; others hold baseline.","status":"ok"},{"clamps":[{"applied":0.1638,"point":"Building_1.cooling","reason":"indoor 23.2 C is more than 0.5 C below the setpoint 24.7 C, trim held at 0.055","requested":0.2,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day with no top-price hours, so batteries idle; Building_1 is 1.42C below setpoint so cooling trimmed slightly deeper, others at baseline.","status":"clamped"},{"clamps":[{"applied":0.1317,"point":"Building_1.cooling","reason":"indoor 23.4 C is more than 0.5 C below the setpoint 24.6 C, trim held at 0.055","requested":0.1868,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day with no top-price hours; batteries idle, cooling baselines kept, Building_1 trim held as overcooled room eases toward setpoint.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours, so batteries idle; cooling follows baseline, Building_1 trim held as room is only 0.85 C above setpoint.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, so batteries idle; Building_1 is 2.09 C below setpoint and occupied, so hold its trim and keep cooling at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries idle; Building_1 is 0.8 C below setpoint but occupied within band, so cooling held at baseline with no trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours, so batteries stay idle; cooling holds baseline since Building_1 is only 1.57C below setpoint with trim held at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours, so batteries idle; Building_1 is 1.6C below setpoint and occupied, so hold its cooling trim at baseline without extra depth.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, no top-price hours, so batteries idle; Building_1 is 1.53C below setpoint so trim cooling slightly, others hold baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours, so batteries idle; Building_1 is 0.98 C below setpoint so cooling trimmed modestly, others held at baseline.","status":"ok"},{"clamps":[{"applied":0.0922,"point":"Building_1.cooling","reason":"indoor 21.4 C is more than 0.5 C below the setpoint 22.2 C, trim held at 0.032","requested":0.124,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day with no top-price hours, so batteries stay idle; cooling follows baseline since Building_1 is only 0.82 C under and Building_2 is above setpoint.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Building_1 is 0.6C below setpoint so trim held at -0.032; batteries idle as price is flat-ish and no top-price hour now; tanks idle.","status":"ok"},{"clamps":[{"applied":0.1478,"point":"Building_1.cooling","reason":"indoor 22.0 C is more than 0.5 C below the setpoint 22.8 C, trim held at 0.033","requested":0.1803,"rule":"trim_hold"}],"fallback":null,"reason":"Hold baseline cooling; B1 is 0.76C below setpoint, trim held at -0.033 is fine; batteries idle as price is not at top and charging is marginal.","status":"clamped"},{"clamps":[{"applied":0.0844,"point":"Building_1.cooling","reason":"indoor 22.4 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.033","requested":0.1169,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 overcooled by 2.08C so trim held; flat-ish prices, store spare solar only, no grid charging, no tank use.","status":"clamped"},{"clamps":[{"applied":0.1477,"point":"Building_1.cooling","reason":"indoor 23.7 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.033","requested":0.18,"rule":"trim_hold"}],"fallback":null,"reason":"Trim held for Building_1 overcooling; battery idle-ish, store spare solar, price flat-ish so no grid charging; tanks stay at 0.","status":"clamped"},{"clamps":[{"applied":0.2171,"point":"Building_1.cooling","reason":"indoor 23.8 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.033","requested":0.25,"rule":"trim_hold"}],"fallback":null,"reason":"Overcooled Building_1 trim held; price flat-ish now, not top; store spare solar only; no grid charging, tanks idle, cooling near baseline.","status":"clamped"},{"clamps":[{"applied":0.32,"point":"Building_1.cooling","reason":"indoor 23.9 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.033","requested":0.33,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 is overcooled 0.57C below setpoint, so trim cooling slightly; batteries held per strategy since no top-price hour now and grid charging is cheap-hour only.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Building_1 overcooled 0.83C below setpoint, so trim cooling; hold batteries near strategy since peak headroom is zero and prices nearly flat.","status":"ok"},{"clamps":[{"applied":0.4986,"point":"Building_1.cooling","reason":"indoor 23.5 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.060","requested":0.5583,"rule":"trim_hold"}],"fallback":null,"reason":"Hold batteries and use baseline cooling; Building 1 is overcooled so a small trim is held, no top-price hour now, DHW idle.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Building_1 is overcooled so its cooling is trimmed deeper; the other buildings and batteries hold baseline since prices are not at the top and charging is not worthwhile now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is cold and below its comfort band, so its trim ends; Building_3 gets a small overcool trim; batteries and tanks hold because peak headroom is near zero.","status":"ok","trim_ends":[{"building":"Building_1","reason":"room below comfort band, end held trim"}]},{"clamps":[],"fallback":null,"reason":"Holding baselines: no top-price hour now and batteries hold only tiny usable charge. Building_3 is cold and below its comfort band, so its cooling trim is ended.","status":"ok","trim_ends":[{"building":"Building_3","reason":"indoor below comfort band, ending cooling trim"}]},{"clamps":[],"fallback":null,"reason":"Cool at baseline since rooms are near setpoint; no trim. Battery idle: grid charging is not useful now, top price hours ahead and usable charge is tiny; tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Price is low and top-price hours are ahead; battery soc is near floor so charge is tiny, and baseline cooling is kept since all rooms are within band.","status":"ok"},{"clamps":[{"applied":0.2848,"point":"Building_1.cooling","reason":"indoor 22.2 C is near the bottom of the comfort band, cooling held at the baseline","requested":0.285,"rule":"comfort"}],"fallback":null,"reason":"Buildings 1 and 3 are overcooled-free (indoor below setpoint by ~2C); trim is held at 0 since no trim exists yet; prices are not top, batteries hold, tanks idle.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Building_1 is overcooled but its comfort band edge rule holds cooling at baseline; batteries idle as price is not top and charging is marginal; hold baselines.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hour 23 is low-price with no top-price hours now; hold batteries, trim overcooled Building_1 slightly, keep the others at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 are overcooled, so cooling is trimmed; small battery charging in the cheap hour builds toward the 16-18h top price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Buildings 1 and 3 are slightly warm so baseline cooling holds; batteries idle per strategy since price is low and not top, and no grid charging needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hour 2 is a low-price hour with grid charging allowed, so I store a small amount in each battery; cooling stays at baseline since rooms are near setpoint.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is overcooled by 1.66C, so trim cooling; hold batteries at strategy charge since grid charging is ok and price is low-cost hour.","status":"ok"},{"clamps":[{"applied":0.1047,"point":"Building_1.cooling","reason":"indoor 21.5 C is more than 0.5 C below the setpoint 22.2 C, trim held at 0.100","requested":0.2047,"rule":"trim_hold"}],"fallback":null,"reason":"Building 1 is overcooled 0.74C below setpoint so trim held at -0.1; follow strategy battery charging in cheap hour, no top price now.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Cheap, low-carbon hour before the top-price window: charge batteries at 0.15, trim overcooled Building_3 to zero cooling, and ease Building_1 cooling to its held trim.","status":"ok"},{"clamps":[{"applied":0.0943,"point":"Building_1.cooling","reason":"indoor 22.2 C is within 0.5 C of the setpoint 22.2 C, trim eases off from 0.080 by at most 0.02 per hour","requested":0.1543,"rule":"trim_hold"}],"fallback":null,"reason":"Cheap hour before top-price hours 10-12; keep strategy charging, trim cooling only where overcooled, no DHW.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Building 1 is slightly overcooled, so trim cooling a little; battery charges gently in this cheap hour per strategy, and no tank charging.","status":"ok"},{"clamps":[{"applied":0.1581,"point":"Building_1.cooling","reason":"indoor 22.2 C is within 0.5 C of the setpoint 22.3 C, trim eases off from 0.050 by at most 0.02 per hour","requested":0.1885,"rule":"trim_hold"}],"fallback":null,"reason":"Trim Building_1 cooling slightly, Building_2 cooling held at baseline, and follow strategy battery charging in cheap clean hours; no tank use.","status":"clamped"},{"clamps":[{"applied":0.2571,"point":"Building_1.cooling","reason":"indoor 21.8 C is within 0.5 C of the setpoint 22.2 C, trim eases off from 0.030 by at most 0.02 per hour","requested":0.2675,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 slightly overcooled so trim held; batteries follow strategy, price not top now, charging modestly; tanks idle.","status":"clamped"},{"clamps":[{"applied":0.22,"point":"Building_1.cooling","reason":"indoor 21.1 C is more than 0.5 C below the setpoint 23.3 C, trim held at 0.010","requested":0.2304,"rule":"trim_hold"}],"fallback":null,"reason":"Follow strategy battery charge at low price; trim Building_2 cooling for overcooling; keep Building_1 at baseline since it is cool; Building_3 unoccupied.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Building_1 is overcooled 2 C below setpoint so trim cooling deeper within limits; batteries charge gently in cheap hours per strategy; no top price now, tanks idle.","status":"ok"},{"clamps":[{"applied":0.1534,"point":"Building_1.cooling","reason":"indoor 23.4 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.108","requested":0.262,"rule":"trim_hold"}],"fallback":null,"reason":"Trim cooling modestly in overcooled occupied Building_1, hold battery charge near strategy values, no tank charging, keep load under peak target.","status":"clamped"},{"clamps":[{"applied":0.2457,"point":"Building_1.cooling","reason":"indoor 24.0 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.108 by at most 0.02 per hour","requested":0.3338,"rule":"trim_hold"}],"fallback":null,"reason":"Top price not active now; hold battery per strategy, let baseline cooling run, trim held for Building_1 overcooled, no DHW.","status":"clamped"},{"clamps":[{"applied":0.3391,"point":"Building_1.cooling","reason":"indoor 23.9 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.088","requested":0.4272,"rule":"trim_hold"}],"fallback":null,"reason":"Holding baseline cooling and near-full batteries; Building_3 gently charges its battery in this cheap, clean hour ahead of the top-price hours.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Peak headroom is zero and price is not top now; Building_1 overcooled slightly, trim held. Battery follows strategy shaving peak; no grid charging at this load.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim overcooled occupied rooms 1 and 3 toward setpoint, hold batteries to discharge into the top-price hours as the strategy indicates, and leave Building 2 at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Top-price hour: discharge batteries per strategy, hold cooling trims as held, leave tanks idle and no grid charging.","status":"ok"},{"clamps":[{"applied":0.4204,"point":"Building_1.cooling","reason":"indoor 21.9 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.5207,"rule":"trim_hold"},{"applied":0.4028,"point":"Building_3.cooling","reason":"indoor 22.6 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.5031,"rule":"trim_hold"}],"fallback":null,"reason":"Top-price hour: discharge batteries at strategy levels, keep held cooling trims, leave tanks idle; grid charging is not allowed.","status":"clamped"},{"clamps":[{"applied":0.4075,"point":"Building_1.cooling","reason":"indoor 22.4 C is near the bottom of the comfort band, cooling held at the baseline","requested":0.45,"rule":"comfort"},{"applied":0.3819,"point":"Building_3.cooling","reason":"indoor 23.4 C is more than 0.5 C below the setpoint 23.9 C, trim held at 0.100","requested":0.4822,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 is cool and below band so cooling eases above baseline; others hold; batteries idle until top-price hours, dhw stays at 0.","status":"clamped","trim_ends":[{"building":"Building_1","reason":"room below comfort band, ease trim"}]},{"clamps":[],"fallback":null,"reason":"Building_1 and 3 are overcooled slightly, but envelope holds trim; price not top now, batteries idle per strategy; cooling trims kept at baseline, no grid charging at this price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 and Building_3 are overcooled, so cooling is trimmed; batteries and tanks hold per strategy with no top-price hour now.","status":"ok"},{"clamps":[{"applied":0.0879,"point":"Building_1.cooling","reason":"indoor 23.6 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.1876,"rule":"trim_hold"},{"applied":0.3267,"point":"Building_3.cooling","reason":"indoor 22.5 C is more than 0.5 C below the setpoint 23.3 C, trim held at 0.061","requested":0.3879,"rule":"trim_hold"}],"fallback":null,"reason":"Peak limiter is on with no headroom, so no charging; small battery discharges shave load and cooling holds the envelope trims.","status":"clamped"},{"clamps":[{"applied":0.0757,"point":"Building_1.cooling","reason":"indoor 24.2 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.100 by at most 0.02 per hour","requested":0.1554,"rule":"trim_hold"},{"applied":0.1368,"point":"Building_3.cooling","reason":"indoor 22.1 C is more than 0.5 C below the setpoint 23.8 C, trim held at 0.061","requested":0.198,"rule":"trim_hold"}],"fallback":null,"reason":"Hour 23 at low price with no top-price hours now; keep batteries at baseline, trim cooling as envelope allows, and avoid DHW charging.","status":"clamped"},{"clamps":[{"applied":0.2561,"point":"Building_1.cooling","reason":"indoor 24.5 C is near the top of the comfort band, cooling held at the baseline","requested":0.256,"rule":"comfort"},{"applied":0.0194,"point":"Building_3.cooling","reason":"indoor 23.0 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.061","requested":0.081,"rule":"trim_hold"}],"fallback":null,"reason":"Hold batteries near floor, no top price now; cooling near baseline, trims held; no grid charging at mid price; DHW idle.","status":"clamped"},{"clamps":[{"applied":0.0224,"point":"Building_3.cooling","reason":"indoor 24.1 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.061 by at most 0.02 per hour","requested":0.0636,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 and Building_3 are overcooled slightly; hold trims, batteries idle as strategy suggests since price is cheap now and top hours ahead, small SOC so no charge needed.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Hold batteries as strategy says; price is low and not top, so no discharge, and charging is not needed yet. Cooling near baseline, room within band.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is overcooled by 1.24C but trim held at 0 and cooling is near baseline; battery follows strategy charge while grid charging is ok in a cheap hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cheap hour, no top price now; follow strategy battery charge of 0.15 in all buildings, keep cooling at baseline and tanks idle, Building_1 not overcooled.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hour 5 is cheap and clean; charge batteries gently toward top-price hours 11-13 and keep cooling near baseline, no trim as no building is overcooled.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Top price is 10-12h ahead; charge batteries gently now at low price, keep cooling near baseline, no DHW.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hour 7 is cheap, not top price; grid charging is allowed, so follow strategy charging, hold cooling near baseline, and skip DHW.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is 0.85 C overcooled, so its cooling is trimmed slightly; other buildings and batteries hold baseline, since no top-price hour is active.","status":"ok"},{"clamps":[{"applied":0.0517,"point":"Building_1.cooling","reason":"indoor 22.0 C is near the bottom of the comfort band, cooling held at the baseline","requested":0.052,"rule":"comfort"},{"applied":0.017,"point":"Building_1.cooling","reason":"indoor 22.0 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.035","requested":0.0517,"rule":"trim_hold"}],"fallback":null,"reason":"Overcooled Building_1 gets trim held; batteries follow strategy (store solar, price not top); no grid charging, no tank use.","status":"clamped"},{"clamps":[{"applied":0.0773,"point":"Building_1.cooling","reason":"indoor 23.8 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.035","requested":0.112,"rule":"trim_hold"}],"fallback":null,"reason":"Building 1 and 2 top up batteries gently in this cheap, clean hour before top prices at hours 6-8; Building 3 follows its strategy; cooling kept at baseline or held trim.","status":"clamped"},{"clamps":[{"applied":0.15,"point":"Building_1.cooling","reason":"indoor 23.9 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.035","requested":0.1847,"rule":"trim_hold"}],"fallback":null,"reason":"Holding all batteries and tanks at baseline; Building_1 trim is held at its envelope limit while the room is 0.53 C below setpoint, and no price or peak trigger applies.","status":"clamped"},{"clamps":[{"applied":0.2361,"point":"Building_1.cooling","reason":"indoor 23.9 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.035","requested":0.2708,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 is overcooled so its held trim is kept; batteries and tanks hold since no top-price hour is now and the peak headroom is ample.","status":"clamped"},{"clamps":[{"applied":0.3069,"point":"Building_1.cooling","reason":"indoor 23.4 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.035","requested":0.31,"rule":"trim_hold"}],"fallback":null,"reason":"Hold batteries: price not at top, next top hours ahead; trim B1 cooling slightly for overcooling, others follow baseline.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Building 1 is overcooled by 1.1 C so its cooling is trimmed deeper; Building 3 charges per strategy before the top-price hours; the rest keep baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled occupied Building_1 trimmed cooling; all batteries charge gently ahead of the top-price hours 1-3 using strategy values; tanks stay idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Top-price hour: discharge batteries evenly over remaining top-price hours per strategy; B1 cooling trimmed slightly for overcooling; no grid charging.","status":"ok"},{"clamps":[{"applied":0.6148,"point":"Building_1.cooling","reason":"indoor 22.7 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.079","requested":0.6938,"rule":"trim_hold"}],"fallback":null,"reason":"Battery discharges on top-price hours per strategy; B1 cooling held at trim, others at baseline to stay within comfort and peak limits.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Building_1 is below its comfort band so its trim ends and cooling returns to baseline; batteries discharge on the top-price hours per strategy.","status":"ok","trim_ends":[{"building":"Building_1","reason":"indoor below comfort band, end trim"}]},{"clamps":[],"fallback":null,"reason":"Building_1 and Building_3 are cool-side near or beyond band edges, so cooling stays at baseline; batteries and tanks hold per strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is overcooled 2.7C below setpoint; trim cooling modestly and hold batteries idle as prices are not top now.","status":"ok"},{"clamps":[{"applied":0.2472,"point":"Building_1.cooling","reason":"indoor 22.4 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.068","requested":0.25,"rule":"trim_hold"}],"fallback":null,"reason":"Hold batteries near strategy; B1 overcooled 2.07C below setpoint so trim cooling slightly deeper; no top price now, district load below target.","status":"clamped"},{"clamps":[{"applied":0.2287,"point":"Building_1.cooling","reason":"indoor 22.5 C is near the bottom of the comfort band, cooling held at the baseline","requested":0.229,"rule":"comfort"},{"applied":0.1612,"point":"Building_1.cooling","reason":"indoor 22.5 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.068","requested":0.2287,"rule":"trim_hold"},{"applied":0.6266,"point":"Building_3.cooling","reason":"indoor 22.0 C is near the bottom of the comfort band, cooling held at the baseline","requested":0.627,"rule":"comfort"}],"fallback":null,"reason":"Hold batteries as strategy suggests; trim cooling in overcooled occupied Building_1 by holding trim; no tank charging; price not top now.","status":"clamped"},{"clamps":[{"applied":0.1062,"point":"Building_1.cooling","reason":"indoor 23.2 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.068","requested":0.1737,"rule":"trim_hold"}],"fallback":null,"reason":"Peak headroom is zero, so I follow the peak-shaving battery discharge, keep cooling at baseline and hold DHW at zero.","status":"clamped"},{"clamps":[{"applied":0.129,"point":"Building_3.cooling","reason":"indoor 20.8 C is near the bottom of the comfort band, cooling held at the baseline","requested":0.27,"rule":"comfort"}],"fallback":null,"reason":"Building_3 is overcooled and below its comfort band, so cooling is raised; batteries hold per strategy until the top-price hours 16-18.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Buildings 1 and 3 are overcooled-free (within band), batteries near floor and price not top; hold baseline cooling and idle batteries and tanks this hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Buildings 1 and 2 are near setpoint so baseline cooling holds; batteries idle as strategy says, price is low and not top-price, no clear reason to differ.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hour 3 is cheap and clean; charge batteries gently toward the top-price window, keep cooling at baseline since rooms are not overcooled, no DHW.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 overcooled 1.44C below setpoint so trim cooling; hold battery charge at strategy level in cheap hour, no tank charging, no top-price discharge now.","status":"ok"},{"clamps":[{"applied":0.0782,"point":"Building_1.cooling","reason":"indoor 21.6 C is more than 0.5 C below the setpoint 22.2 C, trim held at 0.052","requested":0.1,"rule":"trim_hold"}],"fallback":null,"reason":"Trim cooling for overcooled Building_1 per envelope; keep strategy battery charging in cheap hour; no tank charging; grid charging allowed.","status":"clamped"},{"clamps":[{"applied":0.0878,"point":"Building_1.cooling","reason":"indoor 22.0 C is within 0.5 C of the setpoint 22.2 C, trim eases off from 0.052 by at most 0.02 per hour","requested":0.1194,"rule":"trim_hold"}],"fallback":null,"reason":"Hour 6 is cheap and not top-price; charge batteries gently per strategy, keep cooling near baseline, and trim B1 cooling as held.","status":"clamped"},{"clamps":[{"applied":0.1134,"point":"Building_1.cooling","reason":"indoor 22.0 C is within 0.5 C of the setpoint 22.2 C, trim eases off from 0.032 by at most 0.02 per hour","requested":0.125,"rule":"trim_hold"}],"fallback":null,"reason":"Price is low and top-price hours are 9-11 ahead; charge batteries gently per strategy, cooling near baseline with Building_1 trim held, no DHW.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Hold batteries: price is low now and not top; B1 mildly cooled, B2 is warm so cooling kept at baseline, DHW idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Rooms are within comfort bands and no top-price hour is active, so I keep baseline cooling and hold the batteries as strategy suggests.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 2.63C below setpoint and occupied, so it gets a cooling trim; batteries follow strategy, charging cheap-hour spare solar, no tank charging.","status":"ok"},{"clamps":[{"applied":0.0672,"point":"Building_1.cooling","reason":"indoor 24.2 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.066 by at most 0.02 per hour","requested":0.1131,"rule":"trim_hold"}],"fallback":null,"reason":"Store spare solar in batteries, no grid charging at this non-top price; hold tanks idle; keep cooling near baseline with small trim in Building_1.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Hold cooling near baseline, store spare solar, no grid charging at this low price; Building_1 trim eases per envelope; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Holding baseline cooling since no room is overcooled; charging B2 and B3 batteries gently in this cheap, clean hour before the top-price hours at 3-5.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Holding baseline cooling since no room is overcooled; battery follows the strategy, with Building_3 gently charging in the cheap hour ahead of the top-price hours.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cheap low-carbon hour before top-price hours: follow strategy battery charging, keep baseline cooling since trims are negligible, and leave DHW idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled occupied rooms 1 and 3 trimmed cooling; battery discharges over the top-price hours per strategy; building 2 unoccupied, cooling kept at baseline.","status":"ok"},{"clamps":[{"applied":0.5568,"point":"Building_1.cooling","reason":"indoor 23.2 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.061","requested":0.6182,"rule":"trim_hold"},{"applied":0.5384,"point":"Building_3.cooling","reason":"indoor 23.0 C is more than 0.5 C below the setpoint 23.9 C, trim held at 0.084","requested":0.6226,"rule":"trim_hold"}],"fallback":null,"reason":"Top-price hour: discharge batteries per strategy, hold cooling at baseline with held trims, no grid charging or tank use.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Overcooled occupied rooms get deeper cooling trims, batteries follow the strategy discharge in the top-price hours, and tanks stay idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cooling trimmed for overcooled Building_1 and Building_3 (occupied, below setpoint); Building_2 is warm and in band, so baseline; batteries and tanks held idle.","status":"ok"},{"clamps":[{"applied":0.3078,"point":"Building_3.cooling","reason":"indoor 23.2 C is more than 0.5 C below the setpoint 23.9 C, trim held at 0.086","requested":0.394,"rule":"trim_hold"}],"fallback":null,"reason":"No top-price hour now and batteries are near floor, so they stay idle; trim cooling only where overcooled and hold baseline elsewhere.","status":"clamped"},{"clamps":[{"applied":0.2625,"point":"Building_1.cooling","reason":"indoor 23.3 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.3629,"rule":"trim_hold"},{"applied":0.2624,"point":"Building_3.cooling","reason":"indoor 23.3 C is more than 0.5 C below the setpoint 23.9 C, trim held at 0.086","requested":0.3486,"rule":"trim_hold"}],"fallback":null,"reason":"Keep baseline cooling with held trims, batteries idle as strategy says, no top price now and no cheap charge window yet; tanks stay at zero.","status":"clamped"},{"clamps":[{"applied":0.1766,"point":"Building_1.cooling","reason":"indoor 23.3 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.263,"rule":"trim_hold"}],"fallback":null,"reason":"Hold batteries as strategy suggests; trim cooling for overcooled Buildings 1 and 3 per held trims; no DHW; price not top now.","status":"clamped"},{"clamps":[{"applied":0.1106,"point":"Building_1.cooling","reason":"indoor 23.8 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.211,"rule":"trim_hold"},{"applied":0.2576,"point":"Building_3.cooling","reason":"indoor 23.3 C is more than 0.5 C below the setpoint 23.9 C, trim held at 0.086","requested":0.3435,"rule":"trim_hold"}],"fallback":null,"reason":"Hold batteries as strategy suggests; top price hours ahead at 17-19, cooling trims held, B1 and B3 slightly overcooled so ease cooling a bit.","status":"clamped"},{"clamps":[{"applied":0.085,"point":"Building_1.cooling","reason":"indoor 24.4 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.100 by at most 0.02 per hour","requested":0.12,"rule":"trim_hold"},{"applied":0.0489,"point":"Building_3.cooling","reason":"indoor 23.3 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.086","requested":0.105,"rule":"trim_hold"}],"fallback":null,"reason":"Trim cooling in overcooled occupied rooms per envelope; hold batteries (no top price now, grid charging at low price is marginal); tanks idle.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Off-peak hour: small grid charge on all three batteries ahead of top-price hours 15-17, differing from the hold strategy; cooling and tanks kept at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold baseline cooling, cut none since rooms are near setpoint; charge batteries gently in cheap hour per strategy, no tank use, no end trims.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cheap, clean hour before top-price block at 13-15h; charge batteries gently, keep cooling near baseline, no DHW, trims held.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 0.96C below setpoint and occupied, so trim cooling modestly; keep batteries at strategy charge in cheap hour before the 12-14h top price.","status":"ok"},{"clamps":[{"applied":0.0873,"point":"Building_1.cooling","reason":"indoor 22.1 C is within 0.5 C of the setpoint 22.2 C, trim eases off from 0.055 by at most 0.02 per hour","requested":0.1222,"rule":"trim_hold"}],"fallback":null,"reason":"Charge batteries gently in cheap, clean early hour before top-price window; cooling near baseline with building 1 trim held; no DHW.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Cheap, clean hour before the top-price window: keep the strategy battery charge of 0.15 in each building, hold tanks at 0, and leave cooling at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold baselines on cooling; Building_1 is near setpoint, so no trim; battery follows strategy charging in cheap hour; no tank charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 0.02 C from setpoint, so no trim; batteries follow strategy, cooling at baseline, tank idle, load is under target.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold cooling near baseline; B1 slightly cold so no trim; top price ahead at hours 7-9, so store small charge now per strategy and hold batteries.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is overcooled but the envelope blocks deeper cooling near its band edge, so baseline holds; Building_3 charges per strategy before top-price hours.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cool baselines kept; rooms are within band. Charge Building_3 gently per strategy in this cheap hour before top-price hours; others near full.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are unneeded (rooms near setpoint), battery follows strategy with cheap-hour charging held; tank idle, cooling at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is overcooled so its cooling is trimmed; batteries hold charge for the 3-5h top-price window, with Building 3 charging gently at low price.","status":"ok"},{"clamps":[{"applied":0.1016,"point":"Building_1.cooling","reason":"indoor 25.8 C is more than 0.5 C below the setpoint 26.7 C, trim held at 0.085","requested":0.1867,"rule":"trim_hold"}],"fallback":null,"reason":"Holding B1 cooling trim, batteries near 0.95 for top-price hours 2-4, B3 gentle charge per strategy, no DHW charging.","status":"clamped"},{"clamps":[{"applied":0.1282,"point":"Building_1.cooling","reason":"indoor 26.6 C is within 0.5 C of the setpoint 26.7 C, trim eases off from 0.085 by at most 0.02 per hour","requested":0.1933,"rule":"trim_hold"}],"fallback":null,"reason":"Trims held in comfort band; B1 and B2 batteries near 0.95, B3 takes small solar-backed charge; holding storage for top-price hours 1-3 ahead.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Top-price hour: discharge batteries per strategy_battery, trim overcooled occupied Building_3 slightly, keep tanks idle, no grid charging.","status":"ok"},{"clamps":[{"applied":0.5914,"point":"Building_3.cooling","reason":"indoor 23.3 C is more than 0.5 C below the setpoint 23.9 C, trim held at 0.015","requested":0.6061,"rule":"trim_hold"}],"fallback":null,"reason":"Top price now: discharge batteries evenly over remaining top hours; hold cooling near baseline, keep trims, no grid charging or DHW.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Discharging batteries across top-price hours per strategy; deepening Building_3 cooling trim since it is overcooled and occupied.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Holding batteries since no top-price hour is now and the district is near peak; Building 3 is overcooled so its cooling trim is held at -0.1.","status":"ok"},{"clamps":[{"applied":0.3667,"point":"Building_3.cooling","reason":"indoor 24.0 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.100 by at most 0.02 per hour","requested":0.4471,"rule":"trim_hold"}],"fallback":null,"reason":"Peak headroom is zero and top price is not now; battery discharge per strategy shaves peak, cooling near baseline, no dhw.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Overcooled occupied rooms get trimmed cooling per the envelope; batteries follow strategy_battery to shave the peak, with Building_2 left at baseline.","status":"ok"},{"clamps":[{"applied":0.1968,"point":"Building_3.cooling","reason":"indoor 23.3 C is more than 0.5 C below the setpoint 24.1 C, trim held at 0.080","requested":0.25,"rule":"trim_hold"}],"fallback":null,"reason":"Hold batteries (price not top, low usable charge); trim cooling mildly where overcooled, hold tanks at 0 and keep baseline cooling elsewhere.","status":"clamped"},{"clamps":[{"applied":0.1376,"point":"Building_1.cooling","reason":"indoor 23.9 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.072","requested":0.2094,"rule":"trim_hold"},{"applied":0.1691,"point":"Building_3.cooling","reason":"indoor 23.7 C is within 0.5 C of the setpoint 23.9 C, trim eases off from 0.080 by at most 0.02 per hour","requested":0.2295,"rule":"trim_hold"}],"fallback":null,"reason":"Trims are held in code and rooms are near setpoint, so baseline cooling stands; batteries hold per strategy since no top-price hour is now.","status":"clamped"},{"clamps":[{"applied":0.1113,"point":"Building_1.cooling","reason":"indoor 24.4 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.072 by at most 0.02 per hour","requested":0.1631,"rule":"trim_hold"},{"applied":0.0578,"point":"Building_3.cooling","reason":"indoor 23.7 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.060","requested":0.1182,"rule":"trim_hold"}],"fallback":null,"reason":"Cheap, low-carbon hour before the 16-18h top price: charge all three batteries at 0.15, keep cooling trims and tanks at baseline.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Overcooled Building_1 and Building_3 trims held; battery charging in cheap hour per strategy, cooling kept near baseline, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling is absent (all rooms within 0.7C of setpoint); follow strategy battery charging in cheap hour, cooling at baseline, no DHW.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cheap hour, no top price now; keep strategy battery charge, cooling at baseline since B1 is 0.63C below setpoint only mildly, hold DHW at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling trim not needed (B1 0.73 below setpoint, trim held 0); battery charging is cheap and clean, so keep strategy charge; DHW idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling none; B1 slightly under setpoint so keep baseline cooling; batteries follow strategy charge in cheap hour, tanks idle, B2/B3 as strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is overcooled 0.92C below setpoint, so trim cooling; top price is 10-12h ahead, so keep the battery plan and follow strategy_battery.","status":"ok"},{"clamps":[{"applied":0.1154,"point":"Building_1.cooling","reason":"indoor 22.1 C is within 0.5 C of the setpoint 22.2 C, trim eases off from 0.032 by at most 0.02 per hour","requested":0.127,"rule":"trim_hold"}],"fallback":null,"reason":"Overcooling trim held; top price is 9 hours ahead, so charge modestly now on cheap clean hours and keep dhw idle.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Trim held at zero, Building_1 and 2 near setpoint; top price hours ahead, so hold batteries; Building_3 follows strategy, dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 0.56C under setpoint, so light trim; batteries follow strategy; headroom zero so no charging; top price not now.","status":"ok"},{"clamps":[{"applied":0.0907,"point":"Building_1.cooling","reason":"indoor 22.4 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.030","requested":0.1211,"rule":"trim_hold"}],"fallback":null,"reason":"Building_2 is overcooled? No: it is 1.87C warm, so keep baseline cooling; hold batteries near strategy, no DHW, no trims since rooms are not overcooled.","status":"clamped"},{"clamps":[{"applied":0.1612,"point":"Building_1.cooling","reason":"indoor 24.0 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.030 by at most 0.02 per hour","requested":0.172,"rule":"trim_hold"}],"fallback":null,"reason":"Trim Building_1 cooling for overcooling, hold batteries per strategy, keep tanks idle; top-price hours are ahead so charge gently and avoid grid peaks.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Indoor temperatures are within band and prices are not at the top, so baseline cooling holds and the cheap-hour battery charge from the strategy is kept.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Top price is 3 hours ahead; hold batteries, cool at baseline, charge gently now in cheap hour per strategy, no DHW, no trim since no overcooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim Building_1 cooling for overcooling; gently charge Buildings 2 and 3 batteries in this cheap, clean hour before top-price hours.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cheap hour before top-price run: keep strategy charging, hold Building 1 near 0.95 SOC, leave cooling at baseline and tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Discharging batteries over the remaining top-price hours per strategy; B1 overcooled 1.4C below setpoint so cooling trimmed slightly; tanks idle.","status":"ok"},{"clamps":[{"applied":0.5194,"point":"Building_1.cooling","reason":"indoor 23.4 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.084","requested":0.6029,"rule":"trim_hold"}],"fallback":null,"reason":"Top-price hour: discharge batteries over the two top hours per strategy; trim overcooled Building_3 slightly; no grid charging or tank use.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Top-price hour with no later top hours, so batteries discharge their usable charge; room trims deepened for overcooled occupied rooms.","status":"ok"},{"clamps":[{"applied":0.5236,"point":"Building_3.cooling","reason":"indoor 22.9 C is more than 0.5 C below the setpoint 23.9 C, trim held at 0.100","requested":0.6239,"rule":"trim_hold"}],"fallback":null,"reason":"Cool Building_1 deeper for overcooling, discharge Building_3 battery over the top-price hours per strategy, hold others at baseline.","status":"clamped"},{"clamps":[{"applied":0.2816,"point":"Building_1.cooling","reason":"indoor 23.1 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.3812,"rule":"trim_hold"},{"applied":0.3738,"point":"Building_3.cooling","reason":"indoor 22.6 C is more than 0.5 C below the setpoint 23.9 C, trim held at 0.100","requested":0.4741,"rule":"trim_hold"}],"fallback":null,"reason":"Holding overcooled trims and battery discharge at strategy levels for top-price hours; no grid charging or tank use.","status":"clamped"},{"clamps":[{"applied":0.1934,"point":"Building_1.cooling","reason":"indoor 23.5 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.293,"rule":"trim_hold"},{"applied":0.265,"point":"Building_3.cooling","reason":"indoor 22.9 C is more than 0.5 C below the setpoint 23.9 C, trim held at 0.100","requested":0.3653,"rule":"trim_hold"}],"fallback":null,"reason":"Top-price hour: discharge stored battery energy as per strategy, keep held cooling trims, leave tanks idle and avoid grid charging.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Final top-price hour: discharge all usable battery charge; keep held cooling trims; tank idle; no grid charging.","status":"ok"},{"clamps":[{"applied":0.1277,"point":"Building_1.cooling","reason":"indoor 23.2 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.080","requested":0.2074,"rule":"trim_hold"},{"applied":0.1372,"point":"Building_3.cooling","reason":"indoor 23.7 C is within 0.5 C of the setpoint 23.9 C, trim eases off from 0.100 by at most 0.02 per hour","requested":0.2175,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day with no top-price hours, so batteries idle; buildings near setpoint, hold baseline cooling and no DHW, trims held.","status":"clamped"},{"clamps":[{"applied":0.0932,"point":"Building_1.cooling","reason":"indoor 24.1 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.080 by at most 0.02 per hour","requested":0.1529,"rule":"trim_hold"},{"applied":0.2607,"point":"Building_3.cooling","reason":"indoor 24.0 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.080 by at most 0.02 per hour","requested":0.321,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day, so batteries idle; cooling follows baseline with held trims, Building_1 and Building_3 are overcooled slightly so keep trim held.","status":"clamped"},{"clamps":[{"applied":0.0601,"point":"Building_3.cooling","reason":"indoor 23.3 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.060","requested":0.1204,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day, batteries idle per strategy; Building_1 and Building_3 are overcooled slightly, so trims held at baseline with null for cooling.","status":"clamped"},{"clamps":[{"applied":0.0419,"point":"Building_3.cooling","reason":"indoor 24.2 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.060 by at most 0.02 per hour","requested":0.0822,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day with no top-price hours, so batteries stay idle; cooling and tanks keep baseline with held trims.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Flat 24h price, no top hours, so batteries idle; buildings near setpoint so cooling stays at baseline and dhw stays at zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries near floor and no top-price hours; hold batteries, keep baseline cooling since no building is overcooled.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries near floor with tiny usable charge; hold batteries and tank, keep baseline cooling since no band edge is breached.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, no top-price hours; hold batteries idle, keep cooling at baseline, no DHW, no trims since rooms are not overcooled.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, so batteries stay idle; Building_1 is 0.59 C below setpoint so trim cooling slightly, others keep baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, no top-price hours, so batteries idle; Building_1 is 0.02C above setpoint so no extra trim; Building_2 is hot, keep baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, no top-price hours; batteries idle per strategy, cooling at baseline since rooms are not overcooled.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries idle; Building_1 overcooled 2.47C below setpoint so trim cooling modestly; others hold baseline.","status":"ok"},{"clamps":[{"applied":0.1459,"point":"Building_1.cooling","reason":"indoor 23.7 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.040","requested":0.186,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day, batteries near floor with little usable charge; hold batteries, keep cooling at baseline, trims held, no DHW.","status":"clamped"},{"clamps":[{"applied":0.1958,"point":"Building_1.cooling","reason":"indoor 23.9 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.040","requested":0.236,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day, batteries idle; trim Building_1 held and cooling near baseline; no DHW; charge only spare solar at low carbon.","status":"clamped"},{"clamps":[{"applied":0.5587,"point":"Building_1.cooling","reason":"indoor 24.2 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.040 by at most 0.02 per hour","requested":0.5788,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day, battery idle; Building_1 overcooled 0.22C so trim held; district load at peak target so no added cooling or charging.","status":"clamped"},{"clamps":[{"applied":0.4407,"point":"Building_1.cooling","reason":"indoor 21.8 C is more than 0.5 C below the setpoint 25.0 C, trim held at 0.020","requested":0.4608,"rule":"trim_hold"}],"fallback":null,"reason":"Flat-price day so batteries stay idle; Building_1 is cool and below its band, so baseline cooling is kept for the held trim, and other devices hold baseline.","status":"clamped"},{"clamps":[{"applied":0.3829,"point":"Building_1.cooling","reason":"indoor 22.9 C is more than 0.5 C below the setpoint 25.6 C, trim held at 0.020","requested":0.403,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day, so batteries idle; Building_1 is overcooled 2.7C below setpoint, so hold the trim and keep cooling near baseline with no extra trim.","status":"clamped"},{"clamps":[{"applied":0.2042,"point":"Building_1.cooling","reason":"indoor 23.4 C is more than 0.5 C below the setpoint 27.2 C, trim held at 0.020","requested":0.2243,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day so batteries idle; Building_1 overcooled 3.8C below setpoint, trim held at -0.02 so keep baseline cooling; no DHW charging.","status":"clamped"},{"clamps":[{"applied":0.2761,"point":"Building_1.cooling","reason":"indoor 25.0 C is more than 0.5 C below the setpoint 27.2 C, trim held at 0.020","requested":0.2962,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price, peak headroom tiny (0.09 kWh); keep cooling near baseline, trim held, battery idle, tanks idle to avoid raising district peak.","status":"clamped"},{"clamps":[{"applied":0.3637,"point":"Building_1.cooling","reason":"indoor 25.1 C is more than 0.5 C below the setpoint 27.2 C, trim held at 0.020","requested":0.37,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day, batteries idle; Building_1 overcooled 2.1C so trim held deeper at -0.02 eased, cooling near baseline; no DHW charging.","status":"clamped"},{"clamps":[{"applied":0.2617,"point":"Building_1.cooling","reason":"indoor 24.6 C is more than 0.5 C below the setpoint 27.2 C, trim held at 0.020","requested":0.2818,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day so batteries idle; Building_1 overcooled 2.65 C so trim held at -0.02, keep baseline cooling; peak headroom ok, dhw idle.","status":"clamped"},{"clamps":[{"applied":0.1853,"point":"Building_1.cooling","reason":"indoor 25.0 C is more than 0.5 C below the setpoint 27.2 C, trim held at 0.020","requested":0.2054,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price and no top-price hours, so batteries stay idle; indoor temperatures are near band edges, so cooling stays at baseline.","status":"clamped"},{"clamps":[{"applied":0.1885,"point":"Building_1.cooling","reason":"indoor 25.2 C is more than 0.5 C below the setpoint 27.2 C, trim held at 0.020","requested":0.2086,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day with no top-price hours, so batteries stay idle; Building_1 and Building_3 are near comfort band edges, so baseline cooling is kept.","status":"clamped"},{"clamps":[{"applied":0.1139,"point":"Building_1.cooling","reason":"indoor 24.9 C is more than 0.5 C below the setpoint 27.2 C, trim held at 0.020","requested":0.134,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day, so batteries idle; cooling baselines kept, Building_1 trim held at -0.02 since it is near setpoint, DHW idle.","status":"clamped"},{"clamps":[{"applied":0.0779,"point":"Building_1.cooling","reason":"indoor 25.4 C is more than 0.5 C below the setpoint 27.2 C, trim held at 0.020","requested":0.098,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day with no top-price hours, so batteries stay idle; cooling follows baseline with Building_1 trim held as envelope allows.","status":"clamped"},{"clamps":[{"applied":0.0542,"point":"Building_1.cooling","reason":"indoor 25.7 C is more than 0.5 C below the setpoint 27.2 C, trim held at 0.020","requested":0.0743,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day with no top-price hours; batteries idle as strategy suggests, cooling at baseline with trims held, tanks idle.","status":"clamped"},{"clamps":[{"applied":0.0376,"point":"Building_1.cooling","reason":"indoor 26.0 C is more than 0.5 C below the setpoint 27.2 C, trim held at 0.020","requested":0.054,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day, so batteries stay idle; Building_1 is overcooled so trim held at -0.02 with cooling near baseline; others follow baseline.","status":"clamped"},{"clamps":[{"applied":0.0247,"point":"Building_1.cooling","reason":"indoor 26.2 C is more than 0.5 C below the setpoint 27.2 C, trim held at 0.020","requested":0.0448,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day with no top-price hours; batteries hold, Building_1 overcooled 0.98 C so trim held at -0.02, others at baseline cooling.","status":"clamped"},{"clamps":[{"applied":0.0151,"point":"Building_1.cooling","reason":"indoor 26.4 C is more than 0.5 C below the setpoint 27.2 C, trim held at 0.020","requested":0.0352,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day, no top-price hours; batteries idle per strategy, cooling trims held near baseline since rooms are within 0.5C of setpoint.","status":"clamped"},{"clamps":[{"applied":0.0066,"point":"Building_1.cooling","reason":"indoor 26.6 C is more than 0.5 C below the setpoint 27.2 C, trim held at 0.020","requested":0.0267,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day so batteries stay idle; Building_1 is 0.58 C below setpoint so cooling is trimmed per envelope, others hold baseline.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Flat price day, so batteries idle; Building_1 is overcooled so trim cooling 0.02 below baseline, others hold baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours, so batteries idle; Building_1 overcooling is slight, so keep baseline cooling and no trim; tanks stay at zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, no top-price hours; batteries idle, cooling at baseline, Building_2 overcooled trim not needed since unoccupied and warm.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold batteries per strategy (flat price, no top hours); cool buildings near baseline, Building_1 slightly below setpoint so trim stays at zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold batteries near floor, no top price now, keep baseline cooling; Building_2 is 1.5C over setpoint so no trim needed beyond baseline, dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Rooms are near setpoint and not overcooled, prices are flat-low, and no top-price hours are now, so all devices keep baseline and batteries hold.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Price is flat-ish and not top now; hold batteries per strategy, cooling at baseline, Building_1 trim held at zero since not overcooled.","status":"ok"},{"clamps":[{"applied":0.3641,"point":"Building_2.cooling","reason":"indoor 26.7 C is near the top of the comfort band, cooling held at the baseline","requested":0.364,"rule":"comfort"}],"fallback":null,"reason":"Buildings are warm or near setpoint, so cooling stays at baseline; batteries hold since grid charging is cheap now but carbon is high and no top-price discharge is due.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Peak is at target with no headroom, so no charging; Building_3 shaves its small battery discharge and cooling stays at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_2 is over its band so cooling is raised slightly; other buildings hold baseline, batteries idle as strategy suggests with no top-price hour now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold batteries near floor, follow baseline cooling; Building_1 is 0.91 above setpoint so no overcool trim; price not top now, so no discharge or charge.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Buildings 1 and 2 are overcooled by 3.5 C and 3.5 C, but envelope trims are off; keep baseline cooling, idle batteries, tanks at 0; price not top now, grid charging minimal.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Buildings 1 and 2 are far above setpoint so keep baseline cooling; batteries have ~0 usable charge and price is not top, so hold batteries idle and no tank action.","status":"ok"},{"clamps":[],"fallback":null,"reason":"All three rooms are warm, so cooling stays at baseline; batteries hold near floor with low price now and no grid charging yet, to build charge for the 22-24h top-price hours.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cheap hour with grid charging allowed: small battery charge ahead of the 21-23h top-price window; cooling kept at baseline since all rooms are warm.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Rooms are warm, not overcooled, so cooling stays at baseline; batteries and tanks hold since no top-price window is now and usable charge is minimal.","status":"ok"},{"clamps":[],"fallback":null,"reason":"All rooms are too warm, so cooling stays at baseline with no trim; batteries hold since prices are low and no top-price hour is now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Indoor temps are above setpoint so no overcooling trim; batteries near floor with tiny usable charge and price not top, so hold batteries and tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 2 are warm and occupied, so cooling is raised toward comfort; batteries held per strategy since usable charge is minimal and no top-price window is active.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_3 is overcooled about 1.2 C, so cooling is trimmed to 0.01; other buildings and batteries hold baseline since prices are low and carbon is high now.","status":"ok"},{"clamps":[{"applied":0.234,"point":"Building_1.cooling","reason":"indoor 24.9 C is near the top of the comfort band, cooling held at the baseline","requested":0.2,"rule":"comfort"},{"applied":0.1999,"point":"Building_2.cooling","reason":"indoor 26.6 C is near the top of the comfort band, cooling held at the baseline","requested":0.18,"rule":"comfort"}],"fallback":null,"reason":"Buildings 1 and 2 are overcooled, so trim cooling modestly; batteries idle as price is not top; no grid charging, tanks idle.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Cheap hour with grid charging allowed: small battery top-up toward 0.95 before the 14-16h top-price window; cooling kept at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hour 3 is a cheap, low-carbon hour; keep the strategy battery charge small, cooling near baseline, and tank idle, with no trim needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cheap hour before top-price block at 12-14h; follow strategy charge, keep cooling near baseline, no overcooling since rooms are within band and not too cold.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hour 5 is cheap and clean, so charge batteries gently per strategy; Building_1 is slightly cool, so keep baseline cooling and no trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling is absent; Building_1 cooling is at baseline, batteries follow strategy charge in cheap hour, no DHW, price not top now.","status":"ok"},{"clamps":[{"applied":0.3332,"point":"Building_2.cooling","reason":"indoor 26.6 C is near the top of the comfort band, cooling held at the baseline","requested":0.333,"rule":"comfort"}],"fallback":null,"reason":"Overcooling trim cuts B1 cooling; batteries charge gently in cheap hour, no DHW; B2 warm so baseline cooling kept.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Hold batteries as strategy suggests; price not at top now, no cheap-hour charge needed; keep cooling at baseline and tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is overcooled so its cooling is trimmed; batteries 1 and 3 start a small grid charge ahead of the top-price hours 7-9.","status":"ok"},{"clamps":[{"applied":0.0082,"point":"Building_1.cooling","reason":"indoor 22.8 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.078","requested":0.0858,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 is cool near its band edge so cooling stays at baseline; batteries hold except B1 storing spare solar; no top-price hour now.","status":"clamped"},{"clamps":[{"applied":0.084,"point":"Building_1.cooling","reason":"indoor 24.4 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.078 by at most 0.02 per hour","requested":0.1416,"rule":"trim_hold"}],"fallback":null,"reason":"Hold batteries as strategy suggests since price is not top now; cool B1 and B2 near baseline, B3 unoccupied at baseline, keep DHW idle.","status":"clamped"},{"clamps":[{"applied":0.1674,"point":"Building_1.cooling","reason":"indoor 24.3 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.058 by at most 0.02 per hour","requested":0.205,"rule":"trim_hold"}],"fallback":null,"reason":"Hold batteries as strategy says: price not at top now, and top hours ahead; keep cooling near baseline with held trims, no DHW.","status":"clamped"},{"clamps":[{"applied":0.2603,"point":"Building_1.cooling","reason":"indoor 24.2 C is within 0.5 C of the setpoint 24.5 C, trim eases off from 0.038 by at most 0.02 per hour","requested":0.278,"rule":"trim_hold"}],"fallback":null,"reason":"Trim held for overcooled B1; batteries follow strategy; top price is 3h ahead so B1 and B3 charge gently, B2 idle, tanks at 0.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"B1 is overcooled so cooling is trimmed deeper; batteries charge gently in this cheap hour ahead of the top-price hours; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is unoccupied and near setpoint; hold baseline. Battery charging at strategy levels in cheap hour before top prices; no trim needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Top-price hour: discharge batteries per strategy over the remaining top-price hours; cooling and DHW stay at baseline, no comfort trim needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Top price now; discharge batteries per strategy, hold cooling at baseline since rooms are not occupied or only mildly cool; no DHW or grid charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Top-price hour: discharge batteries per strategy over remaining top-price hours; cooling kept at baseline near comfort edges; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trimmed cooling in occupied overcooled rooms 1 and 3 per the trim rule; batteries and tanks held as strategy advises, since no top-price hour is now.","status":"ok"},{"clamps":[{"applied":0.301,"point":"Building_1.cooling","reason":"indoor 21.9 C is more than 0.5 C below the setpoint 23.6 C, trim held at 0.092","requested":0.3928,"rule":"trim_hold"},{"applied":0.1628,"point":"Building_3.cooling","reason":"indoor 23.0 C is more than 0.5 C below the setpoint 23.9 C, trim held at 0.073","requested":0.2363,"rule":"trim_hold"}],"fallback":null,"reason":"Holding batteries and tanks at baseline; Building_1 is overcooled by 1.6 C so its held cooling trim stays in place, and the district is under its peak target.","status":"clamped"},{"clamps":[{"applied":0.0838,"point":"Building_1.cooling","reason":"indoor 21.4 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.092","requested":0.12,"rule":"trim_hold"},{"applied":0.134,"point":"Building_3.cooling","reason":"indoor 23.3 C is more than 0.5 C below the setpoint 23.9 C, trim held at 0.073","requested":0.16,"rule":"trim_hold"}],"fallback":null,"reason":"Overcooled Buildings 1 and 3 get trimmed cooling; batteries held at strategy (price not top, grid charging not cheap enough); DHW idle.","status":"clamped"},{"clamps":[{"applied":0.1202,"point":"Building_3.cooling","reason":"indoor 23.5 C is within 0.5 C of the setpoint 23.9 C, trim eases off from 0.073 by at most 0.02 per hour","requested":0.1737,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 and Building_3 cooling trims held as overcooled rooms ease off; batteries held per strategy, load below peak target.","status":"clamped"},{"clamps":[{"applied":0.1407,"point":"Building_1.cooling","reason":"indoor 22.3 C is near the bottom of the comfort band, cooling held at the baseline","requested":0.141,"rule":"comfort"},{"applied":0.0489,"point":"Building_1.cooling","reason":"indoor 22.3 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.092","requested":0.1407,"rule":"trim_hold"},{"applied":0.1019,"point":"Building_3.cooling","reason":"indoor 23.6 C is within 0.5 C of the setpoint 23.9 C, trim eases off from 0.053 by at most 0.02 per hour","requested":0.135,"rule":"trim_hold"}],"fallback":null,"reason":"Overcooled Building_1 gets deeper trim per envelope; batteries follow strategy, charging modestly in cheap hour before top-price 17-19; tanks idle.","status":"clamped"},{"clamps":[{"applied":0.0109,"point":"Building_1.cooling","reason":"indoor 23.6 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.092","requested":0.103,"rule":"trim_hold"},{"applied":0.0302,"point":"Building_3.cooling","reason":"indoor 23.7 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.034","requested":0.064,"rule":"trim_hold"}],"fallback":null,"reason":"Overcooled rooms in B1 and B3 get trims held; B2 is warm so baseline cooling; batteries charge gently in cheap hour per strategy, grid charging ok.","status":"clamped"},{"clamps":[{"applied":0.0415,"point":"Building_3.cooling","reason":"indoor 24.4 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.034 by at most 0.02 per hour","requested":0.055,"rule":"trim_hold"}],"fallback":null,"reason":"Cheap, clean hour before top-price hours 15-17: charge batteries at 0.15 per hour, keep cooling at baseline since rooms are warm or near setpoint.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Cheap, low-carbon hour before the 14-16h top price: gently charge batteries per strategy and keep cooling at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hour 3 is cheap and clean with top-price hours at 13-15 ahead; charge batteries gently and keep cooling near baseline, no DHW.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 overcooled 1.5C below setpoint: trim cooling deeper; batteries follow strategy, charging in cheap hour before top price at 12-14.","status":"ok"},{"clamps":[{"applied":0.0678,"point":"Building_1.cooling","reason":"indoor 21.5 C is more than 0.5 C below the setpoint 22.2 C, trim held at 0.063","requested":0.1304,"rule":"trim_hold"}],"fallback":null,"reason":"Trim-free cooling near baseline, hold batteries at strategy values since top price is 11+ hours away; no tank charging.","status":"clamped"},{"clamps":[{"applied":0.0721,"point":"Building_1.cooling","reason":"indoor 21.9 C is within 0.5 C of the setpoint 22.2 C, trim eases off from 0.063 by at most 0.02 per hour","requested":0.1147,"rule":"trim_hold"}],"fallback":null,"reason":"Trim B1 cooling by held trim, keep batteries near strategy values; top price hours ahead at 10-12 so hold charge; no tank use.","status":"clamped"},{"clamps":[{"applied":0.0851,"point":"Building_1.cooling","reason":"indoor 21.9 C is within 0.5 C of the setpoint 22.2 C, trim eases off from 0.043 by at most 0.02 per hour","requested":0.1,"rule":"trim_hold"},{"applied":0.0087,"point":"Building_1.battery","reason":"charge would take charge from 0.94 above 0.95","requested":0.03,"rule":"soc"},{"applied":0.0069,"point":"Building_2.battery","reason":"charge would take charge from 0.94 above 0.95","requested":0.03,"rule":"soc"}],"fallback":null,"reason":"Hold cooling near baseline with a small trim in Building_1, store spare solar in batteries, no tank use, and follow strategy_battery in Building_3 at a cheap clean hour.","status":"clamped"},{"clamps":[{"applied":0.1035,"point":"Building_1.cooling","reason":"indoor 21.9 C is within 0.5 C of the setpoint 22.3 C, trim eases off from 0.023 by at most 0.02 per hour","requested":0.1061,"rule":"trim_hold"}],"fallback":null,"reason":"Peak headroom is zero, so I discharge batteries per strategy to shave load; cooling and DHW stay at baseline since no room is overcooled.","status":"clamped"},{"clamps":[{"applied":0.0842,"point":"Building_1.cooling","reason":"indoor 21.7 C is more than 0.5 C below the setpoint 22.8 C, trim held at 0.003","requested":0.0868,"rule":"trim_hold"}],"fallback":null,"reason":"Hour 9 is not top price; hold strategy battery charge, cool baseline, trim easing per envelope, no tank use, charge batteries modestly in cheap hour.","status":"clamped"},{"clamps":[{"applied":0.0243,"point":"Building_1.cooling","reason":"indoor 22.1 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.003","requested":0.0269,"rule":"trim_hold"}],"fallback":null,"reason":"Holding baseline cooling and the strategy battery charge; the cool occupied room in Building_1 is outside its band, so no trim applies.","status":"clamped"},{"clamps":[{"applied":0.0421,"point":"Building_1.cooling","reason":"indoor 23.2 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.003","requested":0.045,"rule":"trim_hold"}],"fallback":null,"reason":"Building 1 is overcooled so trim held; batteries follow strategy, top price hours ahead, charging in cheap hours; tanks idle.","status":"clamped"},{"clamps":[{"applied":0.0696,"point":"Building_3.battery","reason":"charge would take charge from 0.88 above 0.95","requested":0.07,"rule":"soc"}],"fallback":null,"reason":"Building 1 is overcooled, so cooling is trimmed; Buildings 2 and 3 charge batteries in the cheap hours before the price peak.","status":"clamped"},{"clamps":[{"applied":0.0706,"point":"Building_1.cooling","reason":"indoor 24.2 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.039 by at most 0.02 per hour","requested":0.0895,"rule":"trim_hold"},{"applied":0.0692,"point":"Building_2.battery","reason":"charge would take charge from 0.88 above 0.95","requested":0.07,"rule":"soc"},{"applied":0.0389,"point":"Building_3.battery","reason":"charge would take charge from 0.91 above 0.95","requested":0.04,"rule":"soc"}],"fallback":null,"reason":"Holding most batteries near baseline; small grid top-up for Building_2 and Building_3 ahead of the 3-5h top-price hours, no tank charging, cooling at baseline.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Building_1 is overcooled 1.2 C below setpoint, so its cooling is trimmed deeper; batteries hold near 0.95 SOC and no top-price hour is now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"District load is at the peak target, so I follow the strategy battery discharges to shave the peak; comfort is within band and cooling stays at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Top-price hour: discharge batteries evenly over remaining peak hours, trim overcooled occupied Building_1 slightly, keep tanks idle and no grid charging.","status":"ok"},{"clamps":[{"applied":0.1322,"point":"Building_1.cooling","reason":"indoor 23.9 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.015","requested":0.1469,"rule":"trim_hold"}],"fallback":null,"reason":"Top-price hour: follow strategy battery discharges across top hours; keep cooling near baseline, no tank action, no grid charging since grid_charging_ok is false.","status":"clamped"},{"clamps":[{"applied":0.1259,"point":"Building_1.cooling","reason":"indoor 23.9 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.015","requested":0.1406,"rule":"trim_hold"}],"fallback":null,"reason":"Following strategy battery discharge for top-price hours; cooling at baseline since no room is overcooled beyond 0.5 C, and load is under the peak target.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Building_3 is overcooled by 0.93 C, so its cooling is trimmed to 0.077; batteries hold for the 21-23h top-price window and other devices stay at baseline.","status":"ok"},{"clamps":[{"applied":0.0382,"point":"Building_3.cooling","reason":"indoor 23.8 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.043","requested":0.0814,"rule":"trim_hold"}],"fallback":null,"reason":"Hour 20 is not top price and no trim needed; B1 and B3 slightly cool, holding baseline; batteries idle as strategy says, top hours 20-22 ahead.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"B1 is overcooled by 0.66 C so cooling is trimmed to 0.068; B3 follows its held trim; batteries and tanks hold since no top-price hour is now.","status":"ok"},{"clamps":[{"applied":0.0752,"point":"Building_3.cooling","reason":"indoor 24.1 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.023 by at most 0.02 per hour","requested":0.0784,"rule":"trim_hold"}],"fallback":null,"reason":"Buildings near setpoint, no top price now; hold batteries per strategy, cooling at baseline, no tank charging, no trim changes needed.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Hold batteries as strategy says; no top price now, cheap hours ahead. Cooling near baseline, rooms within band, trims held at zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Price is low and not top; charge batteries gently in this cheap hour as strategy suggests, cooling kept at baseline since Building_2 is warm and others near band.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Off-peak and low carbon: charge batteries gently ahead of the 15-17h top-price hours, keep cooling at baseline, and leave the hot water tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cheap low-carbon hour before top-price block at 14-16h; charge batteries gently, keep cooling at baseline, tanks idle, no trim needed as rooms are near setpoint.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hour 3 is cheap and clean with no top price ahead until 13h; keep baseline cooling, charge batteries gently at strategy level, no DHW.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is overcooled 0.95C but not beyond 0.5C band edge trigger; hold baseline cooling, follow strategy battery charging in cheap hours before top price at hour 12.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 0.82 C under setpoint so trim cooling slightly; batteries follow strategy charging in cheap hour, no top price now, peak headroom ample.","status":"ok"},{"clamps":[{"applied":0.1022,"point":"Building_1.cooling","reason":"indoor 21.6 C is more than 0.5 C below the setpoint 22.2 C, trim held at 0.029","requested":0.1308,"rule":"trim_hold"}],"fallback":null,"reason":"Building 1 is overcooled within the held trim, so cooling stays with the envelope; batteries follow strategy charge in this cheap hour, with the tanks left at zero.","status":"clamped"},{"clamps":[{"applied":0.1017,"point":"Building_1.cooling","reason":"indoor 21.8 C is within 0.5 C of the setpoint 22.2 C, trim eases off from 0.029 by at most 0.02 per hour","requested":0.1103,"rule":"trim_hold"}],"fallback":null,"reason":"Batteries already near 0.95 and grid charging is allowed at low price; keep strategy charging, no trims needed as rooms are within band, tanks idle.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Hold cooling near baseline with trim easing; charge batteries gently in cheap hour as strategy suggests since top price is 2-3 hours ahead; no tank use.","status":"ok"},{"clamps":[{"applied":0.0064,"point":"Building_1.battery","reason":"charge would take charge from 0.94 above 0.95","requested":0.01,"rule":"soc"},{"applied":0.0033,"point":"Building_2.battery","reason":"charge would take charge from 0.95 above 0.95","requested":0.01,"rule":"soc"}],"fallback":null,"reason":"Battery charging in cheap hour before top-price hours 7-9; Building_1 overcooled slightly, trim held; no dhw; cooling near baseline elsewhere.","status":"clamped"},{"clamps":[{"applied":0.0,"point":"Building_1.cooling","reason":"indoor 21.7 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.035","requested":0.0,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 is 2.75C overcooled while occupied, so cooling is cut to 0; batteries stay near 0.95 and are held for the top-price hours at 6-8.","status":"clamped"},{"clamps":[{"applied":0.0,"point":"Building_1.cooling","reason":"indoor 23.4 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.035","requested":0.0,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 is overcooled so cooling is cut to zero; other buildings keep baseline, batteries are near full and idle until the top-price hours.","status":"clamped"},{"clamps":[{"applied":0.0444,"point":"Building_1.cooling","reason":"indoor 24.2 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.035 by at most 0.02 per hour","requested":0.0596,"rule":"trim_hold"}],"fallback":null,"reason":"Hold batteries idle at non-top price, keep baseline cooling, trims held; Building_1 overcooled slightly so trim held at -0.015 with no change.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Holding baseline everywhere: no overcooling, battery near full and storing only spare solar, no top-price hour now, district load well below peak target.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Prices low, not top; store spare solar only, keep baselines, no trim since buildings near setpoint, no tank charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Rooms are within 0.5 C of setpoint, so baseline cooling holds; batteries are near full and held for the top-price hours ahead, with a tiny charge in Building_3.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Top-price hour: discharge batteries per strategy_battery, capped at load; no overcooling, so cooling and DHW keep baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 and Building_3 are overcooled, so cooling is trimmed slightly; batteries follow the top-price discharge plan; no grid charging or tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Top-price hour: discharge batteries per strategy, trim overcooled occupied rooms, keep the tanks idle, and hold the district peak target.","status":"ok"},{"clamps":[{"applied":0.0303,"point":"Building_1.cooling","reason":"indoor 24.4 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.100 by at most 0.02 per hour","requested":0.1104,"rule":"trim_hold"},{"applied":0.1526,"point":"Building_3.cooling","reason":"indoor 23.1 C is more than 0.5 C below the setpoint 23.9 C, trim held at 0.029","requested":0.1816,"rule":"trim_hold"}],"fallback":null,"reason":"Holding all batteries per strategy: price is near low and top-price hours are ahead; cooling and tanks stay at baseline with held trims.","status":"clamped"},{"clamps":[{"applied":0.1389,"point":"Building_3.cooling","reason":"indoor 23.5 C is within 0.5 C of the setpoint 23.9 C, trim eases off from 0.029 by at most 0.02 per hour","requested":0.1479,"rule":"trim_hold"}],"fallback":null,"reason":"Not a top-price hour and no overcooling, so I keep baseline cooling and hold batteries idle; the district load stays below the peak target.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Rooms are within comfort bands and no top-price hour is now, so I keep baseline cooling and hold the batteries for the evening peak.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hour 22 at non-top price with headroom 0; cooling held at baseline, battery follows strategy hold, charge none since price not lowest, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 3 is 1.6 C overcooled so its cooling is trimmed to 0.05; batteries hold until cheaper early-morning hours before the 17-19h top-price window.","status":"ok"},{"clamps":[{"applied":0.0,"point":"Building_3.cooling","reason":"indoor 23.4 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.099","requested":0.0466,"rule":"trim_hold"}],"fallback":null,"reason":"Hold batteries near strategy; price not top now, grid charging cheap hours later. Building 2 overcooled-warm so cool more; B1/B3 keep baseline cooling.","status":"clamped"},{"clamps":[{"applied":0.0,"point":"Building_3.cooling","reason":"indoor 24.2 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.099 by at most 0.02 per hour","requested":0.037,"rule":"trim_hold"}],"fallback":null,"reason":"Hold batteries as strategy says; price is low and not top, so no discharge; charge battery 1 and 2 lightly from cheap hours is not needed yet; keep cooling at baseline with no trim.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Hour 2 is off-peak with no top-price hours now; hold batteries per strategy, keep cooling at baseline, and let Building_3's trim ease off.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is 0.7C below setpoint so cooling is trimmed lightly; batteries follow strategy, Building_1 charges gently in a cheap hour; no tank charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 overcooled slightly but within 0.5C so no trim; battery charge kept per strategy in cheap hour; peak headroom ample; no tank charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cheap hour before top-price window: charge batteries gently per strategy, keep cooling at baseline, DHW idle, no trim needed as rooms are within band.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cheap, clean hour with grid charging allowed; charge batteries toward 0.95 before top-price hours, no comfort trims needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cheap low-carbon hour before top-price hours 9-11: charge batteries at the strategy rate, keep cooling at baseline, tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold batteries at baseline per strategy; no top price now, cooling near baseline, B1 slightly under setpoint so no trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold batteries and baseline cooling; Building_1 is 0.52C below setpoint so a small trim is allowed, price not at top and grid charging is cheap-ish but no clear need.","status":"ok"},{"clamps":[{"applied":0.0675,"point":"Building_1.cooling","reason":"indoor 22.7 C is near the bottom of the comfort band, cooling held at the baseline","requested":0.068,"rule":"comfort"}],"fallback":null,"reason":"Hour 10 is not top-price; store spare solar only, keep cooling near baseline, no tank charging, no grid charging of batteries.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Comfort is within band and prices are not at top; keep baseline cooling, store spare solar in Building_1 battery per strategy, others idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold baseline cooling; room near setpoint so no trim. Batteries: B3 strategy charge 0.15 in cheap hour; B1/B2 idle since battery near full and price not top.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Temperatures are within band, prices are low and not at top, and batteries are near 0.95 before the top-price hours, so I keep all baseline actions.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 overcooled 1.0C below setpoint, trim cooling modestly; top price 2-4h ahead, so hold batteries and follow strategy charging only lightly.","status":"ok"},{"clamps":[{"applied":0.3452,"point":"Building_1.cooling","reason":"indoor 24.0 C is more than 0.5 C below the setpoint 25.0 C, trim held at 0.050","requested":0.3952,"rule":"trim_hold"}],"fallback":null,"reason":"Cheap hour with no top price now; trim B1 cooling as held, charge B3 gently toward 0.95 before the top-price hours 1-3, and keep the others at baseline.","status":"clamped"},{"clamps":[{"applied":0.4296,"point":"Building_1.cooling","reason":"indoor 23.9 C is more than 0.5 C below the setpoint 24.8 C, trim held at 0.050","requested":0.4796,"rule":"trim_hold"}],"fallback":null,"reason":"Follow strategy battery discharge over top-price hours; keep cooling at baseline with held trim in Building_1; no grid charging or tank action.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Top price now with 3 top hours ahead: discharge batteries evenly per strategy; B1 trim held; B3 overcooled but unoccupied, keep baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Top-price hour: discharge batteries per strategy; room temps near band edges so cooling kept at baseline; district load below 0.9 x forecast.","status":"ok"},{"clamps":[{"applied":0.4777,"point":"Building_1.cooling","reason":"indoor 21.1 C is near the bottom of the comfort band, cooling held at the baseline","requested":0.478,"rule":"comfort"}],"fallback":null,"reason":"Overcooled rooms and peak headroom 0; battery discharge held near strategy values, no grid charging at 0.029 price with top hours ahead, tank idle.","status":"clamped"},{"clamps":[{"applied":0.2948,"point":"Building_1.cooling","reason":"indoor 21.5 C is near the bottom of the comfort band, cooling held at the baseline","requested":0.44,"rule":"comfort"}],"fallback":null,"reason":"Building_1 is cool and below its comfort band, so cooling is raised; Building_3 is overcooled so a small trim applies; batteries and tanks hold.","status":"clamped"},{"clamps":[{"applied":0.2006,"point":"Building_3.cooling","reason":"indoor 24.0 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.055 by at most 0.02 per hour","requested":0.2355,"rule":"trim_hold"}],"fallback":null,"reason":"Hold baseline cooling and idle batteries and tanks; no top-price hour now, load is below the peak target, and Building_1 is cold so no trim.","status":"clamped"},{"clamps":[{"applied":0.1866,"point":"Building_3.cooling","reason":"indoor 24.1 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.035 by at most 0.02 per hour","requested":0.2015,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 is overcooled by 2.1C but trim is held at 0; deepen cooling cut modestly. Hold batteries, price not top, no discharge; hold tanks at 0.","status":"clamped"},{"clamps":[{"applied":0.0631,"point":"Building_1.cooling","reason":"indoor 23.4 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.091","requested":0.1544,"rule":"trim_hold"}],"fallback":null,"reason":"Cheap clean hour before the 17-19h top price: charge batteries at the strategy rate, keep cooling trims held, leave tanks idle.","status":"clamped"},{"clamps":[{"applied":0.0554,"point":"Building_1.cooling","reason":"indoor 24.0 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.091 by at most 0.02 per hour","requested":0.1267,"rule":"trim_hold"}],"fallback":null,"reason":"Cheap low-carbon hour before the 16-18h top price: charge batteries per strategy, cooling at baseline since no room is overcooled.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Cheap, low-carbon hour with grid charging allowed: store 0.15 per battery as strategy says; cooling and tank left at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Charge batteries gently in cheap hour before top-price hours 14-16; no overcooling, cooling at baseline, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Off-peak hour, not top price; charge batteries gently with grid charging ok, keep cooling at baseline, tanks idle, Building_1 slightly overcooled? No, it is 1.24 below setpoint so trim applies.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 overcooled slightly (-1.33C) but within trim rules; price is low, charge batteries gently per strategy, no tank charging, keep baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 overcooled 1.2C below setpoint; trim cooling deeper. Price is low now, so charge batteries gently ahead of top-price hours 11-13.","status":"ok"},{"clamps":[{"applied":0.0273,"point":"Building_1.cooling","reason":"more than 0.15 away from the ideal-load cooling 0.18","requested":0.0,"rule":"deviation"},{"applied":0.1773,"point":"Building_1.cooling","reason":"trim ended, indoor 23.0 C is at or above the setpoint 22.2 C, cooling back to the baseline","requested":0.0273,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 is overcooled by 0.74C so trim cooling; hold batteries per strategy, charging modestly in cheap hour before top-price window at hours 10-12.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Building_1 overcooled so cooling trimmed; batteries discharge to shave the district peak at the 10.35 kWh target, Building_3 move limited to 0.5.","status":"ok"},{"clamps":[{"applied":0.0856,"point":"Building_1.cooling","reason":"indoor 22.0 C is within 0.5 C of the setpoint 22.3 C, trim eases off from 0.100 by at most 0.02 per hour","requested":0.13,"rule":"trim_hold"}],"fallback":null,"reason":"Trim B1 cooling slightly for overcooling, hold batteries per strategy, no grid charge at top-price-ahead hours, DHW idle.","status":"clamped"},{"clamps":[{"applied":0.1292,"point":"Building_1.cooling","reason":"indoor 22.4 C is within 0.5 C of the setpoint 22.8 C, trim eases off from 0.080 by at most 0.02 per hour","requested":0.1895,"rule":"trim_hold"}],"fallback":null,"reason":"Charging batteries gently in a cheap, clean hour before the top-price hours; cooling kept at baseline since no room is overcooled.","status":"clamped"},{"clamps":[{"applied":0.059,"point":"Building_1.cooling","reason":"indoor 22.9 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.060","requested":0.1193,"rule":"trim_hold"}],"fallback":null,"reason":"Cooling kept at baseline where rooms are near band edges or unoccupied; batteries follow the strategy charge in the cheap, clean hour before the top-price hours.","status":"clamped"},{"clamps":[{"applied":0.1557,"point":"Building_1.cooling","reason":"indoor 24.3 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.060 by at most 0.02 per hour","requested":0.196,"rule":"trim_hold"}],"fallback":null,"reason":"Trim Building_1 cooling held, idle Building_2 and Building_3 batteries as strategy suggests, cool baseline elsewhere; top price is 5 hours away, so store gently.","status":"clamped"},{"clamps":[{"applied":0.3889,"point":"Building_1.cooling","reason":"indoor 24.4 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.040 by at most 0.02 per hour","requested":0.409,"rule":"trim_hold"}],"fallback":null,"reason":"Hold cooling near baseline with small trim in B1; idle DHW; battery per strategy since price is not top now and charging is cheap and clean.","status":"clamped"},{"clamps":[{"applied":0.4096,"point":"Building_1.cooling","reason":"indoor 23.3 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.020","requested":0.43,"rule":"trim_hold"}],"fallback":null,"reason":"Building 1 is overcooled slightly, so ease trim per envelope; batteries follow strategy, charging in cheap hour before top price hours 3-5 within headroom.","status":"clamped"},{"clamps":[{"applied":0.3842,"point":"Building_1.cooling","reason":"indoor 23.6 C is more than 0.5 C below the setpoint 25.1 C, trim held at 0.020","requested":0.4045,"rule":"trim_hold"}],"fallback":null,"reason":"Keep baselines; B1 cooling trim blocked by comfort-edge rule, batteries near full with cheap-hour trickle charge only, tanks idle.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Trim Building_1 and Building_3 cooling for overcooling, keep Building_2 at baseline, and hold batteries near the strategy values ahead of the top-price hours.","status":"ok"},{"clamps":[{"applied":0.6164,"point":"Building_3.cooling","reason":"indoor 23.5 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.068","requested":0.6845,"rule":"trim_hold"}],"fallback":null,"reason":"Discharging stored battery energy across the top-price hours as the strategy suggests; cooling held at baseline since rooms are within comfort limits.","status":"clamped"},{"clamps":[{"applied":0.7186,"point":"Building_3.cooling","reason":"indoor 23.3 C is more than 0.5 C below the setpoint 24.1 C, trim held at 0.068","requested":0.7867,"rule":"trim_hold"}],"fallback":null,"reason":"Top-price hour: discharge batteries per strategy over the two remaining top-price hours; B1 room is cold so cooling kept at baseline; others held.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Top-price hour with no later top hours: discharge all usable battery energy, cool overcooled occupied rooms deeper, leave tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled occupied rooms get a 0.1 deeper cooling trim; batteries follow strategy discharge over top-price hours; no grid charging or tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled occupied rooms get held trims of -0.1; batteries follow strategy discharge during top-price hours; tanks stay idle.","status":"ok"},{"clamps":[{"applied":0.2084,"point":"Building_1.cooling","reason":"indoor 22.9 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.218,"rule":"trim_hold"}],"fallback":null,"reason":"Trim held at -0.1 for overcooled occupied rooms; battery follows strategy, top-price discharge; no grid charging; tank idle.","status":"clamped"},{"clamps":[{"applied":0.1496,"point":"Building_1.cooling","reason":"indoor 23.3 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.2496,"rule":"trim_hold"},{"applied":0.2379,"point":"Building_3.cooling","reason":"indoor 22.8 C is more than 0.5 C below the setpoint 23.9 C, trim held at 0.100","requested":0.3383,"rule":"trim_hold"}],"fallback":null,"reason":"Hold battery per strategy; cooling trims held at setpoint-edge rules; no grid charging, no tank charging, top price now so discharge stays small.","status":"clamped"},{"clamps":[{"applied":0.1,"point":"Building_1.cooling","reason":"indoor 23.8 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.2,"rule":"trim_hold"},{"applied":0.1078,"point":"Building_3.cooling","reason":"indoor 23.1 C is more than 0.5 C below the setpoint 24.3 C, trim held at 0.100","requested":0.2082,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day, so batteries idle; overcooled rooms get trim held at -0.1, which is already at the envelope limit; no tank action needed.","status":"clamped"},{"clamps":[{"applied":0.0818,"point":"Building_1.cooling","reason":"indoor 24.3 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.100 by at most 0.02 per hour","requested":0.1,"rule":"trim_hold"},{"applied":0.0567,"point":"Building_3.cooling","reason":"indoor 24.1 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.100 by at most 0.02 per hour","requested":0.1,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day, batteries idle; Building_1 and Building_3 overcooled, so trim cooling deeper but within held trim limits; keep dhw at 0.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours; batteries idle, keep baseline cooling, trims held near setpoint, no DHW action.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, no top-price hours; batteries idle, cooling at baseline since rooms are not overcooled by more than 0.5 C.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, so batteries stay idle; buildings 1 and 3 keep baseline cooling, building 2 is near setpoint so baseline too.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, no top-price hours, so batteries idle; cooling follows baseline since no building is overcooled beyond 0.5 C.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, no top-price hours, so batteries idle; cooling near baseline with small overcool-free rooms; tanks idle; hold strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, no top-price hours, so batteries idle; cooling follows baseline since rooms are within band and Building_1 is only 0.54C under setpoint.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours; batteries idle, cooling at baseline, Building_1 is 0.37 below setpoint so no trim needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries idle; Building_1 is 1.13C above setpoint so cooling stays at baseline, no trim needed; DHW idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day so batteries idle; Building_1 is 0.19C above setpoint so cooling stays at baseline with no trim; dhw held at zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours, so battery follows strategy values to shave peak; Building_1 is cool near its band edge so cooling stays at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, so battery idle; cooling kept at baseline since rooms are near setpoint; Building_1 is 1.7C below setpoint so trim is not allowed to deepen beyond the envelope.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries idle; Building_1 is 1.55C below setpoint so trim cooling modestly, others hold baseline.","status":"ok"},{"clamps":[{"applied":0.4373,"point":"Building_1.cooling","reason":"indoor 23.9 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.098","requested":0.535,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day, no top-price hours; batteries idle, cooling near baseline with trims held, DHW idle, peak headroom is ample.","status":"clamped"},{"clamps":[{"applied":0.4956,"point":"Building_1.cooling","reason":"indoor 23.3 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.098","requested":0.5931,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day so batteries stay idle; buildings 1 and 2 are overcooled, so I keep the held trim and baseline cooling with no extra action.","status":"clamped"},{"clamps":[{"applied":0.5912,"point":"Building_1.cooling","reason":"indoor 23.4 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.098","requested":0.6887,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price and high carbon now, so batteries stay idle; Building_1 trim is already held deeper than needed, others near setpoint, so baseline cooling.","status":"clamped"},{"clamps":[{"applied":0.6952,"point":"Building_1.cooling","reason":"indoor 23.0 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.098","requested":0.7927,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price, no top hours; cooling near baseline with trims held; Building_1 overcooled? no, it is 1.49 below setpoint so trim held; battery idle for peak headroom.","status":"clamped"},{"clamps":[{"applied":0.6096,"point":"Building_1.cooling","reason":"indoor 22.3 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.098","requested":0.7071,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day, so batteries stay idle; Building_1 is 2.2C below setpoint so its trim is held, and other buildings keep baseline cooling.","status":"clamped"},{"clamps":[{"applied":0.54,"point":"Building_1.cooling","reason":"indoor 22.3 C is more than 0.5 C below the setpoint 24.3 C, trim held at 0.098","requested":0.6375,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day with no top-price hours; batteries idle, Building_1 overcooled so trim held, cooling near baseline elsewhere, DHW idle.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Flat-price hour so batteries stay idle; B1 and B3 are overcooled so cooling is trimmed 0.1 below baseline, B2 is near setpoint.","status":"ok"},{"clamps":[{"applied":0.3199,"point":"Building_1.cooling","reason":"indoor 22.0 C is more than 0.5 C below the setpoint 24.0 C, trim held at 0.100","requested":0.4196,"rule":"trim_hold"},{"applied":0.315,"point":"Building_3.cooling","reason":"indoor 21.7 C is more than 0.5 C below the setpoint 23.9 C, trim held at 0.100","requested":0.4154,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price, no top-price hours, batteries near floor and no discharge need; buildings 1 and 3 overcooled, so keep held trim and hold cooling near baseline.","status":"clamped"},{"clamps":[{"applied":0.1741,"point":"Building_1.cooling","reason":"indoor 22.4 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.2,"rule":"trim_hold"},{"applied":0.2178,"point":"Building_3.cooling","reason":"indoor 22.1 C is more than 0.5 C below the setpoint 23.9 C, trim held at 0.100","requested":0.25,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day, batteries idle; Building_1 and Building_3 overcooled so trim held at -0.1 with cooling at baseline; no DHW or grid charging.","status":"clamped"},{"clamps":[{"applied":0.1104,"point":"Building_1.cooling","reason":"indoor 23.3 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.21,"rule":"trim_hold"},{"applied":0.162,"point":"Building_3.cooling","reason":"indoor 22.6 C is more than 0.5 C below the setpoint 23.9 C, trim held at 0.100","requested":0.262,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day, batteries idle; Buildings 1 and 3 overcooled by 1.1-1.3C get held trim; Building 2 at baseline; no dhw.","status":"clamped"},{"clamps":[{"applied":0.3492,"point":"Building_1.cooling","reason":"indoor 24.0 C is near the top of the comfort band, cooling held at the baseline","requested":0.25,"rule":"comfort"},{"applied":0.1113,"point":"Building_3.cooling","reason":"indoor 23.1 C is more than 0.5 C below the setpoint 23.9 C, trim held at 0.100","requested":0.212,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day, batteries idle; Building_1 and Building_3 overcooled, so trim cooling per envelope hold while keeping rooms within band.","status":"clamped"},{"clamps":[{"applied":0.0527,"point":"Building_3.cooling","reason":"indoor 23.5 C is more than 0.5 C below the setpoint 24.0 C, trim held at 0.100","requested":0.1531,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day, batteries idle; Building_1 is 1.8 C below setpoint so cooling trimmed modestly; Building_2 is warm so keep baseline cooling.","status":"clamped"},{"clamps":[{"applied":0.0914,"point":"Building_1.cooling","reason":"indoor 21.0 C is more than 0.5 C below the setpoint 23.3 C, trim held at 0.085","requested":0.176,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day with no top-price hours, so batteries stay idle; Building_1 is overcooled so trim held, Building_3 unchanged at baseline cooling.","status":"clamped"},{"clamps":[{"applied":0.1987,"point":"Building_1.cooling","reason":"trim ended, indoor 22.3 C is at or above the setpoint 22.2 C, cooling back to the baseline","requested":0.12,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day, no top-price hours, so batteries idle; Building_1 is overcooled so trim cooling modestly; others hold baseline.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours; batteries idle, DHW idle, cooling near baseline since rooms are not overcooled.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat-price hour with no top-price window, so batteries stay idle; cooling and tanks keep baseline since no room is overcooled.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours, so batteries idle; buildings 1 and 3 slightly under setpoint, keep baseline cooling and no trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries idle; Building_1 is 0.71 C below setpoint, so a small cooling trim is held, not deepened, and no end_trim needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, no top-price hours; batteries idle per strategy, cooling kept at baseline since rooms are within band and Building_1 only mildly overcooled.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 1.27C below setpoint so trim cooling; flat price and no top hour means battery idle except small charge per strategy; keep dhw zero.","status":"ok"},{"clamps":[{"applied":0.0,"point":"Building_1.cooling","reason":"indoor 22.0 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.088","requested":0.0,"rule":"trim_hold"}],"fallback":null,"reason":"Overcooled Building_1 gets deeper cooling trim; all batteries charge gently at the cheap, low-carbon hour within peak headroom, tanks idle.","status":"clamped"},{"clamps":[{"applied":0.0762,"point":"Building_1.cooling","reason":"indoor 24.0 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.088 by at most 0.02 per hour","requested":0.1446,"rule":"trim_hold"}],"fallback":null,"reason":"Building_2 is overcooled by 1.2 C so its cooling is trimmed; batteries follow strategy charging in this cheap, clean hour before the top-price period.","status":"clamped"},{"clamps":[{"applied":0.1729,"point":"Building_1.cooling","reason":"indoor 24.0 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.068 by at most 0.02 per hour","requested":0.2213,"rule":"trim_hold"}],"fallback":null,"reason":"Hour 11: no top price now, district load 4.2 below target 10.35; hold batteries per strategy, keep baseline cooling with small trim held for Building_1.","status":"clamped"},{"clamps":[{"applied":0.2339,"point":"Building_1.cooling","reason":"indoor 23.8 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.048","requested":0.2823,"rule":"trim_hold"}],"fallback":null,"reason":"Hold batteries as strategy suggests: price is flat-ish, not top-price now; Building_1 is overcooled slightly, so keep trim held and let envelope ease.","status":"clamped"},{"clamps":[{"applied":0.4191,"point":"Building_1.cooling","reason":"indoor 23.8 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.048","requested":0.468,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 is overcooled 0.66C below setpoint so trim is held; batteries follow strategy, district load near peak target so no charging, DHW idle.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Deepened cooling trim for overcooled Building_1 and Building_3 per the strategy; Building_2 is warm so it keeps baseline; batteries held.","status":"ok"},{"clamps":[{"applied":0.19,"point":"Building_1.cooling","reason":"indoor 23.7 C is more than 0.5 C below the setpoint 26.7 C, trim held at 0.100","requested":0.29,"rule":"trim_hold"},{"applied":0.6103,"point":"Building_3.cooling","reason":"indoor 22.8 C is more than 0.5 C below the setpoint 23.9 C, trim held at 0.072","requested":0.6827,"rule":"trim_hold"}],"fallback":null,"reason":"Building 1 is 2.9C below setpoint so cooling trim is held; batteries idle as price is not top now and grid charging is not cheapest, following strategy.","status":"clamped"},{"clamps":[{"applied":0.5401,"point":"Building_1.cooling","reason":"trim ended, indoor 25.3 C is at or above the setpoint 24.2 C, cooling back to the baseline","requested":0.44,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 and Building_3 are overcooled; trim cooling per envelope, hold batteries idle as strategy says, and keep tanks at zero.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 are overcooled so cooling is trimmed; batteries discharge to cover load near the peak per strategy; no grid charging.","status":"ok"},{"clamps":[{"applied":0.6926,"point":"Building_1.cooling","reason":"indoor 21.0 C is more than 0.5 C below the setpoint 24.1 C, trim held at 0.031","requested":0.7234,"rule":"trim_hold"},{"applied":0.6232,"point":"Building_3.cooling","reason":"indoor 21.6 C is more than 0.5 C below the setpoint 23.7 C, trim held at 0.100","requested":0.7235,"rule":"trim_hold"}],"fallback":null,"reason":"Hold batteries near idle, trim cooling in overcooled Building_3 per held trim, price not top now; keep baselines except Building_3 cooling kept at baseline.","status":"clamped"},{"clamps":[{"applied":0.4351,"point":"Building_1.cooling","reason":"indoor 20.9 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.031","requested":0.4659,"rule":"trim_hold"},{"applied":0.5321,"point":"Building_3.cooling","reason":"indoor 21.5 C is more than 0.5 C below the setpoint 23.3 C, trim held at 0.100","requested":0.6324,"rule":"trim_hold"}],"fallback":null,"reason":"Buildings 1 and 3 are overcooled so trims held; batteries idle as top price is 3 hours ahead and charge is minimal; peak headroom is small.","status":"clamped"},{"clamps":[{"applied":0.3156,"point":"Building_1.cooling","reason":"indoor 21.5 C is more than 0.5 C below the setpoint 24.3 C, trim held at 0.031","requested":0.3464,"rule":"trim_hold"},{"applied":0.3388,"point":"Building_3.cooling","reason":"indoor 21.5 C is more than 0.5 C below the setpoint 23.6 C, trim held at 0.100","requested":0.4391,"rule":"trim_hold"}],"fallback":null,"reason":"Buildings 1 and 3 are overcooled, so trims are held; price not top now, batteries hold idle near floor, no grid charging at this hour.","status":"clamped"},{"clamps":[{"applied":0.3137,"point":"Building_1.cooling","reason":"indoor 21.8 C is near the bottom of the comfort band, cooling held at the baseline","requested":0.314,"rule":"comfort"},{"applied":0.2829,"point":"Building_1.cooling","reason":"indoor 21.8 C is more than 0.5 C below the setpoint 23.9 C, trim held at 0.031","requested":0.3137,"rule":"trim_hold"},{"applied":0.2947,"point":"Building_3.cooling","reason":"indoor 22.0 C is near the bottom of the comfort band, cooling held at the baseline","requested":0.295,"rule":"comfort"},{"applied":0.1944,"point":"Building_3.cooling","reason":"indoor 22.0 C is more than 0.5 C below the setpoint 23.9 C, trim held at 0.100","requested":0.2947,"rule":"trim_hold"}],"fallback":null,"reason":"Buildings 1 and 3 are overcooled, so I hold their trims; batteries idle since price is not top and grid charging has little headroom to gain.","status":"clamped"},{"clamps":[{"applied":0.213,"point":"Building_1.cooling","reason":"indoor 21.6 C is more than 0.5 C below the setpoint 24.1 C, trim held at 0.031","requested":0.2438,"rule":"trim_hold"},{"applied":0.1484,"point":"Building_3.cooling","reason":"indoor 22.7 C is more than 0.5 C below the setpoint 23.9 C, trim held at 0.100","requested":0.2487,"rule":"trim_hold"}],"fallback":null,"reason":"Hold baseline cooling; buildings 1 and 3 trims held as envelope requires; batteries idle since usable charge is tiny and no top-price hour now.","status":"clamped"},{"clamps":[{"applied":0.0966,"point":"Building_3.cooling","reason":"indoor 23.1 C is more than 0.5 C below the setpoint 23.9 C, trim held at 0.100","requested":0.148,"rule":"trim_hold"}],"fallback":null,"reason":"Overcooled rooms get trimmed cooling per envelope; batteries idle since price is low and charging is small; no top-price hour now.","status":"clamped"},{"clamps":[{"applied":0.1147,"point":"Building_1.cooling","reason":"indoor 21.6 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.031","requested":0.145,"rule":"trim_hold"},{"applied":0.2703,"point":"Building_2.cooling","reason":"indoor 24.6 C is near the top of the comfort band, cooling held at the baseline","requested":0.27,"rule":"comfort"},{"applied":0.0646,"point":"Building_3.cooling","reason":"indoor 23.5 C is within 0.5 C of the setpoint 24.0 C, trim eases off from 0.100 by at most 0.02 per hour","requested":0.145,"rule":"trim_hold"}],"fallback":null,"reason":"Overcooled Building_3 trim held; batteries idle per strategy since price is low and not top; no charging needed, DHW idle.","status":"clamped"},{"clamps":[{"applied":0.1573,"point":"Building_1.cooling","reason":"indoor 22.3 C is more than 0.5 C below the setpoint 23.3 C, trim held at 0.031","requested":0.188,"rule":"trim_hold"},{"applied":0.0698,"point":"Building_3.cooling","reason":"indoor 23.9 C is within 0.5 C of the setpoint 23.9 C, trim eases off from 0.080 by at most 0.02 per hour","requested":0.13,"rule":"trim_hold"}],"fallback":null,"reason":"Overcooled Building_1 gets held trim; batteries idle as price is not top now and usable charge is tiny; no grid charging at mid price; DHW idle.","status":"clamped"},{"clamps":[{"applied":0.2281,"point":"Building_1.cooling","reason":"indoor 21.6 C is more than 0.5 C below the setpoint 22.4 C, trim held at 0.031","requested":0.259,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 is 0.79C below setpoint so cooling trim is held; batteries idle since price is not top and little usable charge; keep tank at 0.","status":"clamped"},{"clamps":[{"applied":0.1225,"point":"Building_1.cooling","reason":"indoor 20.6 C is more than 0.5 C below the setpoint 23.3 C, trim held at 0.031","requested":0.1533,"rule":"trim_hold"}],"fallback":null,"reason":"Holding baseline cooling and charging batteries gently at the cheap, clean hour; no top-price discharge yet, tanks stay idle, load is well under peak target.","status":"clamped"},{"clamps":[{"applied":0.1011,"point":"Building_1.cooling","reason":"indoor 21.5 C is more than 0.5 C below the setpoint 23.2 C, trim held at 0.031","requested":0.1319,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 overcooled 1.66C below setpoint: trim held; battery charge kept at strategy 0.15 in cheap hour before top-price window at 11-14h.","status":"clamped"},{"clamps":[{"applied":0.1709,"point":"Building_1.cooling","reason":"indoor 21.8 C is within 0.5 C of the setpoint 22.2 C, trim eases off from 0.031 by at most 0.02 per hour","requested":0.1817,"rule":"trim_hold"}],"fallback":null,"reason":"Low-price, low-carbon hour with no overcooling; charge all batteries at 0.15 ahead of the top-price hours 11-13, keeping cooling and tanks at baseline.","status":"clamped"},{"clamps":[{"applied":0.2162,"point":"Building_1.cooling","reason":"indoor 20.9 C is more than 0.5 C below the setpoint 22.2 C, trim held at 0.011","requested":0.227,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 is overcooled 1.37C below setpoint; trim held and eased per envelope. Batteries follow strategy charging in cheap hour; no top price now, tank idle.","status":"clamped"},{"clamps":[{"applied":0.2194,"point":"Building_1.cooling","reason":"indoor 20.4 C is more than 0.5 C below the setpoint 22.2 C, trim held at 0.011","requested":0.2302,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 is overcooled 1.85C below setpoint so trim is held; batteries follow strategy charging in cheap hour; no tank charging.","status":"clamped"},{"clamps":[{"applied":0.1932,"point":"Building_1.cooling","reason":"indoor 20.1 C is more than 0.5 C below the setpoint 22.3 C, trim held at 0.011","requested":0.204,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 is overcooled by 2.2C; trim held at -0.011 and cooling kept near baseline, batteries idle as strategy suggests, DHW off.","status":"clamped"},{"clamps":[{"applied":0.1629,"point":"Building_1.cooling","reason":"indoor 20.4 C is more than 0.5 C below the setpoint 22.8 C, trim held at 0.011","requested":0.1737,"rule":"trim_hold"}],"fallback":null,"reason":"Hold batteries as strategy suggests; price not top now, next top hours 7-9 ahead; keep cooling near baseline, trim held for Building_1 overcooled slightly.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Building_1 is 3.45 C overcooled, so cooling is cut to zero; the other buildings keep baseline cooling and the battery strategy, with no grid charging before the top-price hours.","status":"ok"},{"clamps":[{"applied":0.0554,"point":"Building_1.cooling","reason":"indoor 23.2 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.082","requested":0.1373,"rule":"trim_hold"}],"fallback":null,"reason":"Hold baseline cooling; B1 overcooled 1.2C below setpoint so trim held at -0.082; batteries idle as price not top, charging deferred to cheap hours.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Building 1 is overcooled so its trim is held deeper; batteries charge gently in this cheap hour ahead of the top-price period.","status":"ok"},{"clamps":[{"applied":0.171,"point":"Building_1.cooling","reason":"indoor 23.7 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.083","requested":0.2535,"rule":"trim_hold"}],"fallback":null,"reason":"Trim B1 cooling slightly as it is overcooled; hold batteries at strategy charge in cheap hour; top price is 3 hours away so keep charging; no DHW.","status":"clamped"},{"clamps":[{"applied":0.2495,"point":"Building_1.cooling","reason":"indoor 23.5 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.083","requested":0.332,"rule":"trim_hold"}],"fallback":null,"reason":"Cheap, clean hour before the 16-18h top price; charge batteries at the strategy rate, keep cooling trims held, tank idle.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Trim cooling for overcooled occupied B1 per held trim; hold batteries near strategy since top price is 2-4 hours ahead; no DHW.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Top-price hour: batteries discharge evenly over the three remaining top-price hours; B1 cooling trimmed to the 0.1 depth since it is overcooled.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Top-price hour: discharge batteries per strategy; trim overcooled occupied rooms 1 and 3; hold tank at 0 and keep Building 2 baseline.","status":"ok"},{"clamps":[{"applied":0.1839,"point":"Building_1.cooling","reason":"indoor 22.8 C is more than 0.5 C below the setpoint 25.4 C, trim held at 0.100","requested":0.2839,"rule":"trim_hold"},{"applied":0.3275,"point":"Building_3.cooling","reason":"indoor 22.9 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.092","requested":0.4192,"rule":"trim_hold"}],"fallback":null,"reason":"Top-price hour: spreading the usable battery charge over the remaining top-price hours instead of the front-loaded strategy value; cooling trims held.","status":"clamped"},{"clamps":[{"applied":0.1307,"point":"Building_1.cooling","reason":"indoor 24.0 C is near the bottom of the comfort band, cooling held at the baseline","requested":0.131,"rule":"comfort"},{"applied":0.0307,"point":"Building_1.cooling","reason":"indoor 24.0 C is more than 0.5 C below the setpoint 26.4 C, trim held at 0.100","requested":0.1307,"rule":"trim_hold"},{"applied":0.3318,"point":"Building_3.cooling","reason":"indoor 23.3 C is more than 0.5 C below the setpoint 24.0 C, trim held at 0.092","requested":0.423,"rule":"trim_hold"}],"fallback":null,"reason":"Hold batteries as strategy says; top price hours ahead at 21-23, so keep charge; Building_1 and Building_3 cooling eased per held trim.","status":"clamped"},{"clamps":[{"applied":0.2992,"point":"Building_3.cooling","reason":"indoor 23.0 C is more than 0.5 C below the setpoint 23.9 C, trim held at 0.092","requested":0.3909,"rule":"trim_hold"}],"fallback":null,"reason":"Hour 20: price not top now, so no discharge; keep batteries idle; cooling at baseline, B1 trim held; top-price hours ahead, district load near target so no action beyond baseline.","status":"clamped"},{"clamps":[{"applied":0.2052,"point":"Building_3.cooling","reason":"indoor 23.0 C is more than 0.5 C below the setpoint 23.9 C, trim held at 0.092","requested":0.2969,"rule":"trim_hold"}],"fallback":null,"reason":"Building 1 is overcooled but a trim would be clamped near its band edge, so baseline holds; batteries idle as price is not top and cheaper charging hours come later.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Building 1 is overcooled but the envelope would block deeper cooling near its band edge, so baseline is kept; Building 3 holds its trim; batteries idle as no top-price hour is now.","status":"ok"},{"clamps":[{"applied":0.11,"point":"Building_3.cooling","reason":"indoor 23.6 C is within 0.5 C of the setpoint 23.9 C, trim eases off from 0.092 by at most 0.02 per hour","requested":0.182,"rule":"trim_hold"}],"fallback":null,"reason":"Building 1 is 2.55C below setpoint, so trim cooling; hold batteries idle as price is not top and no charging needed now.","status":"clamped"},{"clamps":[{"applied":0.0163,"point":"Building_3.cooling","reason":"indoor 23.8 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.072","requested":0.0887,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 is cool near its band edge so cooling stays at baseline; batteries start small grid charging in the cheap hours before the 16-18h peak.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Building_1 is overcooled so its cooling is trimmed slightly; others hold baseline, and batteries start small charging in the cheapest hour ahead of top-price hours.","status":"ok"},{"clamps":[{"applied":0.2578,"point":"Building_1.cooling","reason":"indoor 22.1 C is within 0.5 C of the setpoint 22.2 C, trim eases off from 0.033 by at most 0.02 per hour","requested":0.2703,"rule":"trim_hold"}],"fallback":null,"reason":"Price is low and not top-price, so no discharge; battery charging stays at strategy baseline of 0 with grid charging ok; cooling holds baseline, trims near zero.","status":"clamped"},{"clamps":[{"applied":0.2204,"point":"Building_1.cooling","reason":"indoor 20.5 C is more than 0.5 C below the setpoint 22.2 C, trim held at 0.013","requested":0.2329,"rule":"trim_hold"}],"fallback":null,"reason":"Cheap hour before top-price block 12-15h; charge batteries gently, keep cooling near baseline, no tank charging, Building_1 trim held.","status":"clamped"},{"clamps":[{"applied":0.18,"point":"Building_1.cooling","reason":"indoor 20.6 C is more than 0.5 C below the setpoint 22.2 C, trim held at 0.013","requested":0.1925,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 overcooled 1.6C below setpoint: trim held; keep baseline cooling, charge batteries gently in cheap hour as strategy suggests.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Building_1 is over 1.5 C below setpoint, so its cooling trim deepens to 0.1; batteries charge gently in the cheap, clean hour before the top-price period.","status":"ok"},{"clamps":[{"applied":0.0812,"point":"Building_1.cooling","reason":"indoor 21.4 C is more than 0.5 C below the setpoint 22.2 C, trim held at 0.100","requested":0.1811,"rule":"trim_hold"}],"fallback":null,"reason":"Cheap clean hour before top-price block: charge batteries gently per strategy, keep cooling baseline with held trims, tank idle.","status":"clamped"},{"clamps":[{"applied":0.0859,"point":"Building_1.cooling","reason":"indoor 21.8 C is within 0.5 C of the setpoint 22.2 C, trim eases off from 0.100 by at most 0.02 per hour","requested":0.1658,"rule":"trim_hold"}],"fallback":null,"reason":"Follow the strategy battery charge in all buildings before the upcoming top-price hours; cooling trims held, no comfort breach.","status":"clamped"},{"clamps":[{"applied":0.1191,"point":"Building_1.cooling","reason":"indoor 22.0 C is within 0.5 C of the setpoint 22.2 C, trim eases off from 0.080 by at most 0.02 per hour","requested":0.179,"rule":"trim_hold"}],"fallback":null,"reason":"Trim held near setpoint; battery charging from spare solar and cheap grid hour per strategy; no top price now, tank idle.","status":"clamped"},{"clamps":[{"applied":0.11,"point":"Building_1.cooling","reason":"indoor 22.0 C is more than 0.5 C below the setpoint 22.8 C, trim held at 0.060","requested":0.17,"rule":"trim_hold"}],"fallback":null,"reason":"Hold cooling near baseline with held trims, keep batteries idle or small charge in cheap hours before top-price hours 6-9, no tank charging.","status":"clamped"},{"clamps":[{"applied":0.0331,"point":"Building_1.cooling","reason":"indoor 22.6 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.060","requested":0.093,"rule":"trim_hold"}],"fallback":null,"reason":"Keep baseline cooling where rooms are near setpoint, hold Building_1 trim, and follow the battery plan; no tank charging.","status":"clamped"},{"clamps":[{"applied":0.1116,"point":"Building_1.cooling","reason":"indoor 24.0 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.060 by at most 0.02 per hour","requested":0.1515,"rule":"trim_hold"}],"fallback":null,"reason":"Holding baseline cooling and tank idle; building 3 takes the small strategy charge of 0.017 in this cheap, clean hour before the top-price window.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Holding batteries near 0.94 for the top-price hours ahead; B1 trims cooling to keep its held overcooling trim, B3 stores a small amount of cheap solar.","status":"ok"},{"clamps":[{"applied":0.2544,"point":"Building_1.cooling","reason":"indoor 23.9 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.040","requested":0.2943,"rule":"trim_hold"}],"fallback":null,"reason":"Prices are low and no top-price hour is now; batteries are near 0.95 so I keep baseline, with small cooling trims left to the envelope.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Trimmed occupied overcooled rooms in Buildings 1 and 3 toward setpoint; batteries near full and idle, tanks idle, Building 2 unoccupied.","status":"ok"},{"clamps":[{"applied":0.3856,"point":"Building_1.cooling","reason":"indoor 23.3 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.055","requested":0.4403,"rule":"trim_hold"},{"applied":0.511,"point":"Building_3.cooling","reason":"indoor 23.0 C is more than 0.5 C below the setpoint 23.9 C, trim held at 0.037","requested":0.5485,"rule":"trim_hold"}],"fallback":null,"reason":"Top price starts in 1-3 hours; hold batteries, keep cooling near baseline, no tank charging, and follow strategy_battery as a small pre-charge.","status":"clamped"},{"clamps":[{"applied":0.4786,"point":"Building_1.cooling","reason":"indoor 23.1 C is more than 0.5 C below the setpoint 24.1 C, trim held at 0.055","requested":0.5333,"rule":"trim_hold"}],"fallback":null,"reason":"Top-price hour: all three batteries discharge evenly over the three top-price hours; Building_3 cooling trimmed deeper for overcooling, others held.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Building_1 is overcooled so its cooling is trimmed deeper; batteries discharge at the top price per strategy, with no grid charging and tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 are occupied and 2.2 C overcooled, so cooling is trimmed 0.1 below baseline; batteries follow strategy discharge for top-price hours.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Buildings 1 and 3 are overcooled by 1.4 to 2.6 C, so cooling is trimmed by the held 0.1; batteries hold since no top-price hour is now.","status":"ok"},{"clamps":[{"applied":0.2068,"point":"Building_1.cooling","reason":"indoor 23.8 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.3067,"rule":"trim_hold"},{"applied":0.2405,"point":"Building_3.cooling","reason":"indoor 23.4 C is more than 0.5 C below the setpoint 24.2 C, trim held at 0.100","requested":0.3409,"rule":"trim_hold"}],"fallback":null,"reason":"Overcooled Building_1 and Building_3 held trims at -0.1; Building_2 near setpoint. Price not top now, hold batteries per strategy; no grid charging needed.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Holding batteries and tanks at baseline since no top-price hour is now; trim Building_1 cooling to its held depth and ease Building_3 per the envelope.","status":"ok"},{"clamps":[{"applied":0.1332,"point":"Building_1.cooling","reason":"indoor 23.7 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.19,"rule":"trim_hold"},{"applied":0.2148,"point":"Building_3.cooling","reason":"indoor 23.3 C is more than 0.5 C below the setpoint 23.9 C, trim held at 0.080","requested":0.27,"rule":"trim_hold"}],"fallback":null,"reason":"Overcooled Building_1 and Building_3 get small trims per envelope; batteries held per strategy since price is not at top and grid charging is marginal.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Trims cooling for overcooled occupied rooms, holds battery per strategy, headroom zero so no grid charging; price not top now so no discharge.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 2 and 3 are overcooled, so cooling is trimmed; Building 1 is warm so cooling holds baseline; batteries and tanks hold while prices are not at top.","status":"ok"},{"clamps":[{"applied":0.0475,"point":"Building_2.cooling","reason":"indoor 24.2 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.073 by at most 0.02 per hour","requested":0.1002,"rule":"trim_hold"},{"applied":0.0586,"point":"Building_3.cooling","reason":"indoor 24.0 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.072 by at most 0.02 per hour","requested":0.1108,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 is overcooled by 1.81C so cooling is trimmed; batteries held idle as prices are low and not top-price; no DHW.","status":"clamped"},{"clamps":[{"applied":0.0536,"point":"Building_3.cooling","reason":"indoor 24.3 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.052 by at most 0.02 per hour","requested":0.072,"rule":"trim_hold"}],"fallback":null,"reason":"Hour 2 is cheap and clean with no top price now; keep the suggested gentle battery charge, hold cooling near baseline, and leave DHW idle.","status":"clamped"},{"clamps":[{"applied":0.0596,"point":"Building_3.cooling","reason":"indoor 24.4 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.032 by at most 0.02 per hour","requested":0.0718,"rule":"trim_hold"}],"fallback":null,"reason":"Hour 3 is cheap and low-carbon with no top price now; charge batteries gently per strategy, keep cooling near baseline, no DHW.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Building_1 overcooled slightly? No, 1.25C above setpoint is below; cooling near baseline; charge batteries gently in cheap hour per strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling is absent; cooling near baseline. Charge batteries gently in cheap hour per strategy, no tank charge, peak headroom ample.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 0.97 C overcooled so its cooling is trimmed; all batteries charge at 0.15 in this cheap, clean hour before the top-price window.","status":"ok"},{"clamps":[{"applied":0.1098,"point":"Building_1.cooling","reason":"indoor 22.0 C is within 0.5 C of the setpoint 22.2 C, trim eases off from 0.048 by at most 0.02 per hour","requested":0.1376,"rule":"trim_hold"}],"fallback":null,"reason":"Cheap low-carbon hour before top-price hours 9-11: charge batteries toward 0.95 per strategy; cooling trimmed only for overcooled Building_3.","status":"clamped"},{"clamps":[{"applied":0.1725,"point":"Building_1.cooling","reason":"indoor 21.9 C is within 0.5 C of the setpoint 22.2 C, trim eases off from 0.028 by at most 0.02 per hour","requested":0.1803,"rule":"trim_hold"},{"applied":0.1111,"point":"Building_3.cooling","reason":"indoor 24.2 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.037 by at most 0.02 per hour","requested":0.1279,"rule":"trim_hold"}],"fallback":null,"reason":"Holding baseline cooling with held trims, following strategy battery charges at the low price; no tank use and no early trim ends.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Cooling and battery follow baseline and strategy; Building_3 gently charges in this cheap, clean hour before the top-price period; tanks stay idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim Building_2 cooling slightly for overcooling; keep Building_1 and Building_3 on baseline, follow Building_3's gentle battery charge, and leave tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold cooling near baseline, no DHW, batteries follow strategy; top price 5 hours ahead so store spare solar only, no grid charging at this price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is overcooled by 0.83 C, so its cooling is trimmed slightly; batteries hold near 0.94 for the 16-18h top-price window, dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is overcooled by 2.3 C, so cooling is trimmed deeper; other devices hold baseline since prices are low and no top-price hour is now.","status":"ok"},{"clamps":[{"applied":0.0878,"point":"Building_1.cooling","reason":"indoor 26.2 C is within 0.5 C of the setpoint 26.7 C, trim eases off from 0.102 by at most 0.02 per hour","requested":0.169,"rule":"trim_hold"}],"fallback":null,"reason":"Overcooling trims held; price not top now, batteries near full so store only spare solar; no grid charging needed; tanks idle.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Holding baselines; no overcooling, Building_3 unoccupied, and district load is well under the 6.57 kWh peak target.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Top price now; discharge batteries evenly over remaining top hours, trim overcooled occupied Building_1 slightly, keep cooling otherwise at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Top price now; discharge batteries evenly over remaining top hours, keep cooling near baseline, no dhw or grid charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Top-price hour: discharge batteries per strategy; trim overcooled occupied Building_1 by 0.1, keep Building_3 at baseline near band edge, Building_2 unoccupied.","status":"ok"},{"clamps":[{"applied":0.6055,"point":"Building_3.cooling","reason":"indoor 22.1 C is near the bottom of the comfort band, cooling held at the baseline","requested":0.606,"rule":"comfort"}],"fallback":null,"reason":"Building 1 and 2 are overcooled trims held; B1 trim -0.1 held, B2 cooling near baseline; battery idle-ish; price not top now, grid charging minor; keep baseline except trims.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Building_3 is cold, so I keep cooling at baseline; batteries follow strategy, which shaves the peak; no DHW charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 are overcooled, so cooling is trimmed 0.1 below baseline; batteries and tanks hold since prices are not at the top.","status":"ok"},{"clamps":[{"applied":0.2248,"point":"Building_1.cooling","reason":"indoor 22.4 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.3243,"rule":"trim_hold"},{"applied":0.2173,"point":"Building_3.cooling","reason":"indoor 22.7 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.3168,"rule":"trim_hold"}],"fallback":null,"reason":"District load is above 0.9x forecast, so Building_3 discharges to cover its load; overcooled rooms keep their held cooling trim.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Overcooled rooms in B1 and B3 get trim held at -0.1; battery idle per strategy since price is low and not top-price, grid charging low value.","status":"ok"},{"clamps":[{"applied":0.3796,"point":"Building_1.cooling","reason":"trim ended, indoor 23.5 C is at or above the setpoint 22.2 C, cooling back to the baseline","requested":0.28,"rule":"trim_hold"},{"applied":0.0853,"point":"Building_3.cooling","reason":"indoor 23.6 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.1853,"rule":"trim_hold"}],"fallback":null,"reason":"Building 1 is overcooled 1.26C, so trim cooling deeper; batteries idle per strategy, prices are not top-rate now, no grid charging needed.","status":"clamped"},{"clamps":[{"applied":0.066,"point":"Building_3.cooling","reason":"indoor 24.1 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.100 by at most 0.02 per hour","requested":0.146,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 is cold and below its band, so cooling is eased toward its floor; other devices hold baseline, batteries idle since no top price now.","status":"clamped"},{"clamps":[{"applied":0.0572,"point":"Building_3.cooling","reason":"indoor 24.4 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.080 by at most 0.02 per hour","requested":0.1172,"rule":"trim_hold"}],"fallback":null,"reason":"Cheap, clean hour before the 14-16h top price: charge batteries at the strategy rate, keep baseline cooling since no room is overcooled.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Overcooled Building_1 is 2.2C below setpoint, so trim cooling; hold battery charging at strategy level since grid charging is allowed and prices are low.","status":"ok"},{"clamps":[{"applied":0.0569,"point":"Building_1.cooling","reason":"indoor 21.6 C is more than 0.5 C below the setpoint 22.2 C, trim held at 0.124","requested":0.1806,"rule":"trim_hold"}],"fallback":null,"reason":"Cheap, clean hour before top price; charge batteries gently per strategy, cooling near baseline, Building_1 slightly overcooled is within band so no trim change.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Cheap clean hour before top-price hours 11-13: charge batteries at the strategy rate, keep cooling at baseline, tank idle, no trim to end.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hour 6 is cheap and clean; charge batteries gently per strategy, cooling at baseline since rooms are near setpoint, no tank charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold baseline cooling; Building_1 is 0.86C below setpoint trim not needed; battery charging at strategy level within limits, no top price now, grid charging ok.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is overcooled by 1.6 C, so its cooling is trimmed; batteries and tanks hold since no top-price hour is near.","status":"ok"},{"clamps":[{"applied":0.1957,"point":"Building_1.cooling","reason":"indoor 21.9 C is within 0.5 C of the setpoint 22.2 C, trim eases off from 0.100 by at most 0.02 per hour","requested":0.2761,"rule":"trim_hold"}],"fallback":null,"reason":"Building 1 overcooled slightly, keep baseline with held trim; batteries follow strategy, no tank charging; top price hours ahead so charging is modest.","status":"clamped"},{"clamps":[{"applied":0.1341,"point":"Building_1.cooling","reason":"indoor 21.9 C is near the bottom of the comfort band, cooling held at the baseline","requested":0.2,"rule":"comfort"}],"fallback":null,"reason":"B1 is below its comfort band so cooling rises above baseline and its trim ends; B2 and B3 discharge to shave the district peak near target.","status":"clamped","trim_ends":[{"building":"Building_1","reason":"indoor below comfort band, overcooling trim ends"}]},{"clamps":[],"fallback":null,"reason":"Overcooled B1 eases trim; batteries follow strategy, B2/B3 low-SOC charging ok at low price; no top-price discharge now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Top price is 4-6 hours ahead, so hold batteries and trim only overcooled Building_1; Building_3 is cool so no trim, batteries follow strategy charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled Building_1 gets a small cooling trim; batteries follow strategy, with B1 and B3 charging gently in cheap hours and B2 idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cut Building_1 cooling 0.1 below baseline since its occupied room is 1.85 C under setpoint; keep other buildings on baseline and charge batteries in this cheap hour.","status":"ok"},{"clamps":[{"applied":0.5614,"point":"Building_1.cooling","reason":"indoor 23.3 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.661,"rule":"trim_hold"}],"fallback":null,"reason":"Hour 15 is not top price; hold cooling near baseline, let batteries follow strategy, keep tanks idle, and avoid charging B1 beyond strategy since load is near peak target.","status":"clamped"},{"clamps":[{"applied":0.6079,"point":"Building_1.cooling","reason":"indoor 22.5 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.7077,"rule":"trim_hold"}],"fallback":null,"reason":"Top-price hour: discharge batteries evenly per strategy, no grid charging, tanks idle, keep cooling at baseline to avoid comfort clamps.","status":"clamped"},{"clamps":[{"applied":0.6345,"point":"Building_1.cooling","reason":"indoor 22.5 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.7343,"rule":"trim_hold"}],"fallback":null,"reason":"Top-price hour: discharge batteries per strategy, deepen Building_3 cooling trim for overcooling, hold other cooling; no grid charging or DHW.","status":"clamped"},{"clamps":[{"applied":0.6292,"point":"Building_1.cooling","reason":"indoor 22.3 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.729,"rule":"trim_hold"},{"applied":0.6133,"point":"Building_3.cooling","reason":"indoor 21.6 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.7133,"rule":"trim_hold"}],"fallback":null,"reason":"Top-price hour: discharging batteries per strategy over the three top-price hours; cooling trims held, B2 warm so baseline cooling.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Overcooled occupied rooms in B1 and B3 keep trim at -0.1; B2 at setpoint; batteries idle since top price is 21-23h and grid charging is marginal.","status":"ok"},{"clamps":[{"applied":0.4529,"point":"Building_1.cooling","reason":"indoor 22.4 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.5531,"rule":"trim_hold"},{"applied":0.3717,"point":"Building_3.cooling","reason":"indoor 22.6 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.4721,"rule":"trim_hold"}],"fallback":null,"reason":"Hour 20 is not top price now; battery stays near strategy with small discharge to shave peak, cooling trims held, no DHW.","status":"clamped"},{"clamps":[{"applied":0.2684,"point":"Building_1.cooling","reason":"indoor 21.9 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.3686,"rule":"trim_hold"},{"applied":0.2539,"point":"Building_3.cooling","reason":"indoor 23.0 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.3543,"rule":"trim_hold"}],"fallback":null,"reason":"Hold batteries near baseline (price not top, small usable charge); keep cooling trims as held; no DHW; Building_1 and 3 overcooled so trims held.","status":"clamped"},{"clamps":[{"applied":0.2363,"point":"Building_1.cooling","reason":"indoor 22.7 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.3365,"rule":"trim_hold"},{"applied":0.3049,"point":"Building_3.cooling","reason":"indoor 23.5 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.4053,"rule":"trim_hold"}],"fallback":null,"reason":"Peak headroom is zero and battery usable charge is tiny; keep baseline cooling, follow strategy battery, and hold DHW idle.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Overcooled occupied rooms in B1 and B3 get the held trim of -0.1 from baseline; B2 is in band, so baseline holds. Batteries stay idle, as the strategy suggests.","status":"ok"},{"clamps":[{"applied":0.08,"point":"Building_1.cooling","reason":"indoor 23.4 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.13,"rule":"trim_hold"},{"applied":0.0959,"point":"Building_3.cooling","reason":"indoor 23.7 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.16,"rule":"trim_hold"}],"fallback":null,"reason":"Buildings 1 and 3 are over 0.5 C cool so trims are held; batteries idle as price is not top and usable charge is tiny; tanks stay at zero.","status":"clamped"},{"clamps":[{"applied":0.0677,"point":"Building_3.cooling","reason":"indoor 24.2 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.100 by at most 0.02 per hour","requested":0.1481,"rule":"trim_hold"}],"fallback":null,"reason":"Buildings 1 and 3 are overcooled slightly; hold baseline cooling with trims held, batteries idle as price is low and no top-price hours now, tanks at zero.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Cheap hour with grid charging ok: keep strategy battery charge 0.15, cooling at baseline with trims held near zero since rooms are within band.","status":"ok"},{"clamps":[{"applied":0.1801,"point":"Building_1.cooling","reason":"more than 0.15 away from the ideal-load cooling 0.33","requested":0.18,"rule":"deviation"},{"applied":0.0287,"point":"Building_2.cooling","reason":"indoor 23.4 C is near the bottom of the comfort band, cooling held at the baseline","requested":0.029,"rule":"comfort"}],"fallback":null,"reason":"Overcooled B1 1.5C below setpoint gets trim; batteries follow strategy charge in cheap clean hour; no DHW; top price starts at hour 13.","status":"clamped"},{"clamps":[{"applied":0.0778,"point":"Building_1.cooling","reason":"indoor 21.4 C is more than 0.5 C below the setpoint 22.2 C, trim held at 0.150","requested":0.228,"rule":"trim_hold"}],"fallback":null,"reason":"Cheap, clean hour before top-price window: charge batteries gently per strategy; overcooled Building_1 trim held, cooling near baseline; no tank charging.","status":"clamped"},{"clamps":[{"applied":0.1792,"point":"Building_1.cooling","reason":"trim ended, indoor 22.5 C is at or above the setpoint 22.2 C, cooling back to the baseline","requested":0.09,"rule":"trim_hold"}],"fallback":null,"reason":"Overcooled Building_1 gets a trim held, cooling near baseline elsewhere; charge batteries gently in cheap hour per strategy, no tank charging.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Building_1 cooling trimmed for overcooling; all batteries follow strategy charge of 0.15 ahead of the top-price hours; tanks idle.","status":"ok"},{"clamps":[{"applied":0.1638,"point":"Building_1.cooling","reason":"indoor 22.1 C is within 0.5 C of the setpoint 22.2 C, trim eases off from 0.059 by at most 0.02 per hour","requested":0.2032,"rule":"trim_hold"}],"fallback":null,"reason":"Cheap, clean hour before top-price window; charge batteries at 0.15 per strategy, cooling and DHW stay at baseline.","status":"clamped"},{"clamps":[{"applied":0.2047,"point":"Building_1.cooling","reason":"indoor 21.8 C is within 0.5 C of the setpoint 22.2 C, trim eases off from 0.039 by at most 0.02 per hour","requested":0.2241,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 trim held at -0.019 within 0.5C band; keep baseline cooling, follow strategy battery charging in cheap hour; no top price now, no dhw.","status":"clamped"},{"clamps":[{"applied":0.2136,"point":"Building_1.cooling","reason":"indoor 21.8 C is more than 0.5 C below the setpoint 22.8 C, trim held at 0.019","requested":0.233,"rule":"trim_hold"}],"fallback":null,"reason":"Hour 9: no top price now, so hold batteries near strategy values; Building_1 trim eases from baseline, Building_2 idle-unoccupied at baseline, small charging in cheap hour.","status":"clamped"},{"clamps":[{"applied":0.2146,"point":"Building_1.cooling","reason":"indoor 22.2 C is near the bottom of the comfort band, cooling held at the baseline","requested":0.25,"rule":"comfort"}],"fallback":null,"reason":"Building_1 is below its comfort band, so cooling rises above baseline and its trim ends; Building_3 charges gently ahead of top-price hours; others hold.","status":"clamped","trim_ends":[{"building":"Building_1","reason":"room below comfort band, end overcooling trim"}]},{"clamps":[],"fallback":null,"reason":"Holding baselines in all buildings; Building_3 charges 0.1 gently ahead of top-price hours 5-7, Building_1 and Building_2 batteries are near 0.95.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 overcooled 2.5C but unoccupied-band logic keeps trim; batteries follow strategy; top price 4-6h ahead so hold charge; no tank charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hour 13 is not top-price and cheap hours follow, so batteries hold; trim Building_1 slightly is unnecessary, Building_3 strategy charge is small, keep baselines except clear overcool.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Price is not at top now; charge batteries gently in the cheap hour ahead of top-price hours 2-4, keep tank idle, and keep cooling at baseline since rooms are not overcooled.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is cool but its trim cannot be applied near the band edge, so baseline cooling holds; batteries follow strategy, with a small charge in Building_3.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is overcooled by 2.2 C while occupied, so cooling is trimmed 0.1 below baseline; batteries discharge evenly over the three top-price hours.","status":"ok"},{"clamps":[{"applied":0.5914,"point":"Building_1.cooling","reason":"indoor 22.6 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.100","requested":0.6912,"rule":"trim_hold"}],"fallback":null,"reason":"Top-price hour: discharge batteries per strategy over the two remaining top hours; cooling trim held for overcooled occupied Building_1; no grid charging.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Top-price hour: discharge all usable battery charge, hold Building_1 cooling at the 0.1 trim, keep other cooling at baseline, tank idle.","status":"ok"},{"clamps":[{"applied":0.2045,"point":"Building_1.cooling","reason":"indoor 23.4 C is more than 0.5 C below the setpoint 26.4 C, trim held at 0.100","requested":0.304,"rule":"trim_hold"},{"applied":0.7036,"point":"Building_3.cooling","reason":"indoor 21.8 C is near the bottom of the comfort band, cooling held at the baseline","requested":0.704,"rule":"comfort"}],"fallback":null,"reason":"Trim cooling in overcooled occupied buildings, hold batteries per strategy, no grid charging, tanks idle; district load near peak target.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Building_2 is overcooled so its cooling is trimmed slightly; batteries follow strategy discharge over top-price hours; tanks stay idle and grid charging is off.","status":"ok"},{"clamps":[{"applied":0.2676,"point":"Building_2.cooling","reason":"indoor 24.3 C is more than 0.5 C below the setpoint 25.0 C, trim held at 0.014","requested":0.2816,"rule":"trim_hold"}],"fallback":null,"reason":"Holding overcooled rooms at baseline due to band-edge rule; discharging batteries per strategy during the top-price hour; no DHW or grid charging.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Top-price hour with flat-ish plan: follow strategy batteries, hold cooling near baseline, no tank use, let envelope trim hold for Building_2.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours; batteries idle, cooling at baseline since no room is more than 0.5C overcooled, DHW held at zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, no top-price hours; batteries idle. Building_1 overcooled 2.9C below setpoint but occupied band logic holds baseline; keep baseline cooling, no DHW.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours; batteries idle, cooling at baseline since no room is overcooled, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours, so batteries stay idle; cooling holds baseline, with trims not needed since rooms are not overcooled.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day and all buildings near or above setpoint with no overcooling; hold batteries idle, keep baseline cooling and no DHW.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours; batteries idle, cooling near baseline, no trim needed as rooms are within band and not overcooled.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day so batteries idle; trim Building_3 cooling slightly for overcooling, hold Building_1 at baseline near its band edge, and keep Building_2 at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours; batteries idle, cooling near baseline since rooms are within band, dhw off.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, so batteries stay idle; cooling follows baseline since no building is overcooled by more than 0.5 C.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, so batteries stay idle; buildings 1 and 2 are near setpoint so baseline cooling holds, and DHW stays at zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, no top-price hours; batteries idle, Building_1 overcooled slightly but within 0.5C of band so keep baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours, so batteries stay idle and cooling follows baseline; Building_1 is 1.67C below setpoint so a small trim applies.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, so batteries stay idle; Building_1 is 2.3C below setpoint so trim cooling held, DHW tanks idle, baseline cooling otherwise.","status":"ok"},{"clamps":[{"applied":0.4061,"point":"Building_1.cooling","reason":"indoor 22.4 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.132","requested":0.44,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day with no top-price hours, so batteries stay idle; Building_1 is 2.08 C below setpoint, so it is overcooled and cooling is trimmed below baseline.","status":"clamped"},{"clamps":[{"applied":0.4755,"point":"Building_1.cooling","reason":"indoor 22.8 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.132","requested":0.5,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day so batteries idle; Building_1 overcooled 1.7C, so trim cooling deeper within envelope; others near baseline with no trim needed.","status":"clamped"},{"clamps":[{"applied":0.574,"point":"Building_1.cooling","reason":"indoor 22.8 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.132","requested":0.7057,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day, so batteries stay idle; cooling holds baseline with Building_1 trim held at -0.132 while it is overcooled.","status":"clamped"},{"clamps":[{"applied":0.6772,"point":"Building_1.cooling","reason":"indoor 22.6 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.132","requested":0.8089,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day so batteries idle; Building_1 is 1.85C below setpoint so trim held, cooling at baseline; DHW and other cooling at baseline.","status":"clamped"},{"clamps":[{"applied":0.8546,"point":"Building_1.cooling","reason":"indoor 22.2 C is near the bottom of the comfort band, cooling held at the baseline","requested":0.855,"rule":"comfort"},{"applied":0.7229,"point":"Building_1.cooling","reason":"indoor 22.2 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.132","requested":0.8546,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day, batteries idle; Building_1 overcooled 2.2C below setpoint so trim held at -0.132 with cooling baseline, dhw and battery at baseline.","status":"clamped"},{"clamps":[{"applied":0.8319,"point":"Building_1.cooling","reason":"indoor 21.9 C is near the bottom of the comfort band, cooling held at the baseline","requested":0.95,"rule":"comfort"},{"applied":0.9582,"point":"Building_3.cooling","reason":"indoor 20.8 C is near the bottom of the comfort band, cooling held at the baseline","requested":1.0,"rule":"comfort"}],"fallback":null,"reason":"Building 1 and 3 are cold and occupied, so cooling rises; Building 1's trim ends. Flat prices mean batteries stay idle and tanks stay at zero.","status":"clamped","trim_ends":[{"building":"Building_1","reason":"room below comfort band, trim ends"}]},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries idle; Buildings 1 and 3 are cold so cooling stays at baseline, Building 2 unoccupied and near setpoint.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day with overcooled Building_1 (4.5C below setpoint); hold batteries, trim cooling modestly, keep dhw idle and let baseline run elsewhere.","status":"ok"},{"clamps":[{"applied":0.3574,"point":"Building_1.cooling","reason":"indoor 21.5 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.068","requested":0.425,"rule":"trim_hold"}],"fallback":null,"reason":"Rooms are cold or near setpoint, flat prices give no battery arbitrage, and district load is well below target, so baseline holds.","status":"clamped"},{"clamps":[{"applied":0.2731,"point":"Building_1.cooling","reason":"indoor 21.5 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.068","requested":0.3407,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day, no top-price hours; batteries idle, cooling at baseline with held trim for overcooled Building_1, DHW idle.","status":"clamped"},{"clamps":[{"applied":0.2152,"point":"Building_1.cooling","reason":"indoor 21.8 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.068","requested":0.2828,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day with no top-price hours; batteries idle as suggested. Building_1 is overcooled, so the held trim stays and cooling is kept at baseline.","status":"clamped"},{"clamps":[{"applied":0.1475,"point":"Building_1.cooling","reason":"indoor 22.0 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.068","requested":0.2151,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day so batteries idle; Building_1 overcooled 2.4C, trim held at -0.068 with no deeper cut needed; others at baseline.","status":"clamped"}],"discomfort_h":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,2.0,3.0,4.0,5.0,5.0,5.0,5.0,5.0,6.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,7.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,8.0,9.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,10.0,11.0,12.0,13.0,14.0,15.0,15.0,15.0,15.0,15.0,15.0,15.0,15.0,15.0,15.0,15.0,15.0,15.0,15.0,15.0,15.0,15.0,15.0,15.0,15.0,15.0,16.0,17.0,19.0,21.0,22.0,23.0,23.0,23.0,23.0,23.0,23.0,23.0,23.0,23.0,23.0,23.0,23.0,23.0,23.0,23.0,23.0,23.0,24.0,25.0,26.0,27.0,28.0,29.0,29.0,29.0,29.0,29.0,29.0,29.0,29.0,29.0,29.0,29.0,29.0,29.0,29.0,29.0,29.0,29.0,29.0,29.0,29.0,29.0,30.0,31.0,32.0,33.0,34.0,35.0,36.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,38.0,39.0,40.0,41.0,42.0,44.0,45.0,46.0,47.0,47.0,47.0,47.0,47.0,47.0,47.0,47.0,47.0,47.0,47.0,47.0,47.0,47.0,47.0,48.0,49.0,50.0,51.0,53.0,55.0,57.0,60.0,63.0,65.0,67.0,67.0,67.0,67.0,67.0,67.0,67.0,67.0,67.0,67.0,67.0,67.0,67.0,67.0,67.0,67.0,67.0,67.0,67.0,67.0,68.0,68.0,69.0,69.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,70.0,71.0,72.0,73.0,74.0,75.0,75.0,75.0,75.0,75.0,75.0,75.0,75.0,75.0,75.0,75.0,75.0,75.0,75.0,75.0,75.0,75.0,75.0,75.0,75.0,76.0,77.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,79.0,81.0,83.0,85.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,88.0,90.0,91.0,92.0,93.0,94.0,95.0,96.0,96.0,96.0,96.0,96.0,96.0,96.0,97.0,97.0,97.0,97.0,97.0,97.0,97.0,97.0,97.0,97.0,97.0,97.0,97.0,98.0,99.0,100.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,101.0,102.0,104.0,105.0,107.0,108.0,108.0,108.0,108.0,108.0,109.0,109.0,109.0,109.0,109.0,109.0,109.0,109.0,109.0,109.0,109.0,109.0,109.0,109.0,109.0,111.0,113.0,114.0,115.0,115.0,115.0,115.0,115.0,115.0,115.0,115.0,115.0,115.0,115.0,115.0,115.0,115.0,115.0,115.0,115.0,115.0,116.0,117.0,117.0,118.0,120.0,121.0,123.0,125.0,126.0,127.0,128.0,129.0,130.0,131.0,131.0,131.0,131.0,131.0,131.0,131.0,132.0,133.0,133.0,133.0,134.0,136.0,138.0,140.0,142.0,144.0,146.0,148.0,150.0,151.0],"district_grid_kwh":[1.428,1.505,1.446,1.419,1.418,1.731,2.889,2.572,9.774,4.524,2.596,4.693,3.205,3.072,3.749,5.508,4.518,2.425,3.846,4.798,6.35,5.199,4.935,5.313,2.662,1.693,1.42,2.11,2.376,2.591,2.559,1.447,2.937,1.367,2.63,3.47,8.481,6.508,5.504,6.967,7.557,5.909,6.901,4.779,5.918,5.252,5.194,3.539,2.73,2.239,1.924,1.707,1.708,1.824,1.704,3.322,4.782,0.983,1.686,1.836,1.408,7.666,1.84,4.907,5.783,4.224,4.7,3.44,2.933,4.038,2.015,1.998,1.37,1.274,1.608,2.363,1.808,2.916,3.695,2.42,3.176,1.364,1.75,0.977,1.479,0.677,0.393,-0.773,0.408,1.462,3.514,3.092,3.252,2.845,3.3,3.352,2.926,2.89,2.757,2.646,3.336,1.638,2.291,3.892,1.512,0.613,0.276,1.015,1.716,1.858,2.26,1.407,1.653,3.85,5.468,6.605,3.946,2.36,2.645,2.22,3.181,2.766,1.837,3.031,1.625,3.471,11.931,2.928,3.569,7.487,2.738,1.202,1.25,1.579,2.745,0.947,0.949,2.115,3.098,4.646,12.543,4.061,2.756,2.552,2.914,4.076,3.357,3.142,2.845,2.813,5.519,2.823,4.008,1.616,0.796,4.509,3.156,3.192,3.361,0.9,0.925,2.722,5.463,3.815,4.402,3.15,1.961,2.142,1.903,2.941,2.346,2.285,2.268,3.978,3.287,1.919,2.43,0.757,0.633,1.133,0.777,1.626,2.262,1.034,1.302,1.973,4.68,4.83,4.41,3.23,2.838,2.089,2.0,1.615,1.371,1.299,1.264,1.281,2.314,1.681,3.513,1.474,1.431,2.602,2.919,9.291,6.191,5.687,4.933,5.866,6.606,5.413,3.852,3.693,3.788,2.651,2.203,2.125,2.161,1.742,1.507,2.93,1.578,1.493,1.265,0.886,1.289,1.072,2.349,10.873,3.493,4.669,11.31,6.567,7.595,6.376,4.609,3.643,3.227,2.574,2.608,3.106,3.289,1.577,2.637,1.61,7.204,3.648,6.248,4.07,2.427,1.514,1.609,2.848,8.085,2.861,3.338,2.913,5.471,4.896,3.87,9.817,2.286,3.437,2.407,2.315,3.332,3.169,3.085,3.119,3.124,1.675,1.227,2.877,1.673,2.263,1.769,2.995,3.665,3.748,8.384,5.056,6.951,8.503,7.67,8.132,10.967,3.634,2.183,1.974,3.385,2.773,2.691,2.807,4.156,1.783,1.568,0.691,0.902,0.956,1.551,1.476,3.515,2.834,3.169,2.196,4.991,6.073,5.044,4.333,5.147,2.751,2.909,3.262,3.239,2.737,2.673,2.832,3.2,4.736,3.033,0.954,1.079,0.792,2.955,2.758,0.963,0.88,1.239,2.14,4.912,5.635,5.634,3.481,3.157,3.811,3.792,3.821,3.261,3.025,4.134,2.114,2.323,4.15,6.713,3.861,3.027,2.275,2.331,2.004,4.659,1.901,2.218,3.854,5.818,4.534,4.253,5.515,2.645,4.409,2.27,2.524,2.145,1.938,1.769,1.797,1.846,4.154,2.309,2.566,2.084,1.979,7.515,3.188,4.44,3.907,7.421,6.03,5.245,5.283,5.762,4.365,2.495,1.784,1.801,1.728,1.272,1.175,1.383,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.075,4.363,3.944,2.007,3.042,3.178,3.362,3.151,3.036,4.838,6.005,2.505,2.439,3.625,2.946,1.739,3.903,6.805,3.201,2.344,2.283,2.423,3.741,5.53,3.146,5.541,3.05,2.84,3.449,3.476,3.132,3.397,1.371,1.888,3.469,5.529,4.477,3.341,1.959,1.397,2.822,3.085,5.089,0.876,0.72,2.012,2.756,3.247,3.272,2.968,1.98,3.171,3.866,4.588,3.022,2.57,2.625,3.946,1.838,3.059,2.711,1.507,1.077,3.114,2.421,0.864,1.091,0.459,1.278,1.649,2.642,3.106,3.882,6.143,3.819,4.244,2.213,1.919,2.229,3.642,3.194,2.829,3.078,3.85,1.565,1.006,0.934,3.23,1.987,2.222,3.141,1.958,2.888,2.884,7.895,4.354,3.735,4.013,3.742,3.189,3.619,3.916,1.996,3.021,2.325,4.041,7.961,4.826,5.108,2.581,1.491,4.181,3.019,2.155,3.687,4.385,3.677,2.643,5.084,5.674,4.553,4.148,2.807,2.303,2.313,1.654,1.525,1.69,1.423,1.471,2.036,4.291,5.184,12.213,9.224,2.975,4.917,3.697,7.391,11.838,6.626,5.944,6.997,5.246,4.401,3.69,3.356,2.847,2.348,2.359,1.597,1.499,1.796,2.04,2.114,3.156,2.921,2.058,4.002,1.611,7.747,6.152,2.637,4.197,9.548,7.193,7.326,4.817,4.508,4.246,4.569,2.35,2.362,2.212,2.98,1.562,3.133,5.132,5.441,3.648,2.376,1.222,1.928,1.838,3.238,3.061,5.031,1.442,1.886,1.857,2.741,6.318,4.152,4.48,3.781,2.254,2.778,2.272,3.342,3.567,3.858,3.028,2.794,2.459,1.78,2.303,1.134,1.095,2.39,2.704,2.749,1.134,1.588,2.732,3.984,3.963,4.901,3.266,8.24,2.992,3.025,3.464,3.241,3.063,2.967,5.536,3.09,3.041,4.12,2.2,1.085,1.641,0.605,0.701,2.914,2.558,4.346,2.592,6.712,14.271,5.214,7.633,3.054,3.327,2.024,3.599,2.971,1.466,3.075,4.166,6.521,4.009,7.423,7.13,4.001,4.062,4.564,4.337,6.241,3.048,4.126,3.755,5.978,7.441,4.61,18.966,4.239,2.863,2.47,4.851,4.74,2.837,3.257,2.994,5.398,3.205,2.903,3.41,2.945,5.975,4.262,3.399,4.631,2.937,3.751,3.823,13.567,6.44,4.501,5.053,5.277,4.022,2.382,2.05,1.522,1.483,1.472,1.598,1.704,3.256,3.394,6.398,4.925,2.867,4.312,5.35,6.469,7.03,8.005,8.103,7.187,5.896,5.316,5.103,5.225],"emission_kg":[0.575,1.151,1.685,2.206,2.736,3.403,4.545,5.603,9.833,11.772,12.988,15.276,16.851,18.349,20.147,22.744,24.823,25.913,27.601,29.693,32.489,34.814,37.033,39.388,40.535,41.209,41.753,42.54,43.421,44.372,45.326,45.878,47.172,47.781,48.997,50.669,54.776,57.918,60.56,63.861,67.373,70.085,73.196,75.321,77.964,80.37,82.752,84.362,85.64,86.638,87.45,88.134,88.798,89.504,90.177,91.526,93.52,94.099,95.02,96.08,96.852,100.993,101.96,104.514,107.503,109.674,112.07,113.786,115.236,117.248,118.234,119.222,119.883,120.468,121.132,122.042,122.794,124.103,125.744,126.91,128.546,129.259,130.213,130.743,131.535,131.95,132.249,132.354,132.565,133.312,135.106,136.702,138.398,139.861,141.518,143.099,144.384,145.57,146.636,147.683,149.044,149.759,150.825,152.699,153.464,153.815,154.261,155.07,156.068,157.067,158.271,159.011,159.873,161.866,164.662,167.982,169.936,171.06,172.283,173.308,174.69,175.816,176.537,177.66,178.26,179.552,184.28,185.504,187.093,190.513,191.784,192.404,193.226,194.101,195.511,196.029,196.613,197.661,199.16,201.343,207.112,208.948,210.168,211.246,212.443,214.018,215.272,216.448,217.544,218.658,220.951,222.126,223.918,224.704,225.196,227.312,228.824,230.388,232.03,232.469,233.047,234.327,236.822,238.497,240.437,241.829,242.676,243.588,244.391,245.503,246.354,247.164,248.002,249.515,250.857,251.749,252.953,253.346,253.794,254.5,255.006,255.762,256.832,257.324,257.94,258.863,261.05,263.303,265.372,266.893,268.202,269.149,270.028,270.715,271.27,271.789,272.302,272.845,273.871,274.616,276.233,276.9,277.559,278.78,280.176,284.642,287.561,290.212,292.504,295.209,298.225,300.696,302.484,304.191,305.866,306.952,307.834,308.635,309.384,309.975,310.485,311.474,312.016,312.542,312.993,313.447,314.007,314.519,315.567,320.578,322.222,324.425,329.759,332.853,336.335,339.209,341.293,342.925,344.324,345.426,346.505,347.737,348.996,349.59,350.562,351.162,353.89,355.295,357.773,359.341,360.313,361.033,361.805,363.15,367.034,368.416,370.04,371.46,374.131,376.521,378.415,383.152,384.211,385.708,386.745,387.685,388.989,390.224,391.446,392.714,394.045,394.796,395.431,396.711,397.475,398.56,399.418,400.863,402.61,404.378,408.283,410.597,413.735,417.613,421.183,425.035,430.174,431.84,432.844,433.735,435.167,436.307,437.441,438.674,440.625,441.52,442.314,442.828,443.488,444.119,444.991,445.758,447.573,449.015,450.602,451.684,454.117,457.095,459.59,461.742,464.26,465.589,466.91,468.349,469.674,470.762,471.794,472.952,474.364,476.606,478.108,478.711,479.395,479.872,481.297,482.616,483.307,483.722,484.302,485.302,487.574,490.171,492.787,494.397,495.792,497.415,498.936,500.398,501.589,502.664,504.158,504.975,505.925,507.681,510.541,512.238,513.606,514.661,515.7,516.657,518.705,519.54,520.502,522.162,524.681,526.651,528.526,530.983,532.134,533.963,534.888,535.84,536.642,537.359,538.017,538.698,539.406,541.01,541.895,542.858,543.674,544.535,547.714,549.075,550.957,552.617,555.753,558.304,560.524,562.784,565.305,567.278,568.414,569.216,570.063,570.863,571.459,571.998,572.653,572.653,572.653,572.653,572.653,572.653,572.653,572.653,572.653,572.653,572.653,572.653,572.653,572.653,572.653,572.653,574.715,576.938,578.936,579.954,581.474,583.1,584.783,586.334,587.804,590.201,593.243,594.535,595.819,597.717,599.292,600.236,602.348,606.008,607.684,608.886,610.043,611.247,613.077,615.83,617.43,620.251,621.765,623.133,624.666,626.191,627.56,629.058,629.679,630.578,632.319,635.15,637.477,639.199,640.223,641.09,642.59,644.247,646.918,647.374,647.748,648.783,650.18,651.781,653.35,654.75,655.658,657.047,658.786,660.711,661.959,663.084,664.314,666.273,667.213,668.783,670.167,670.985,671.725,673.373,674.737,675.237,675.829,676.078,676.77,677.662,679.092,680.775,682.876,686.18,688.221,690.485,691.622,692.633,693.795,695.724,697.453,699.015,700.719,702.859,703.717,704.296,704.878,706.618,707.693,708.89,710.573,711.618,713.161,714.701,718.931,721.288,723.323,725.478,727.437,729.033,730.65,732.316,733.113,734.295,735.193,736.786,740.266,742.38,744.743,746.057,746.777,748.836,750.329,751.384,753.157,755.252,756.997,758.241,760.602,763.188,765.255,767.127,768.354,769.329,770.284,770.956,771.531,772.146,772.65,773.225,774.068,775.795,777.801,782.368,786.01,787.273,789.437,791.116,794.578,800.188,803.334,806.154,809.465,811.913,813.929,815.606,817.086,818.294,819.233,820.116,820.701,821.227,821.846,822.538,823.268,824.392,825.448,826.305,827.834,828.515,831.842,834.562,835.871,837.787,842.173,845.406,848.618,850.707,852.677,854.532,856.492,857.487,858.501,859.385,860.519,861.131,862.414,864.709,867.292,869.126,870.314,871.092,872.039,873.125,874.74,876.272,878.805,879.553,880.503,881.435,882.805,885.939,887.991,890.212,892.055,893.125,894.329,895.269,896.584,897.979,899.495,900.726,901.903,902.972,903.765,904.866,905.386,905.959,907.075,908.357,909.672,910.214,910.974,912.275,914.174,916.064,918.428,920.002,923.831,925.152,926.406,927.77,929.016,930.185,931.307,933.451,934.701,935.982,937.723,938.701,939.278,940.175,940.984,941.758,943.189,944.451,946.603,947.893,951.224,958.288,960.875,964.635,966.073,967.554,968.389,969.831,970.966,971.51,972.67,974.312,977.049,978.847,982.31,985.509,987.365,989.296,991.502,993.616,996.636,998.091,1000.034,1001.781,1004.536,1007.953,1010.079,1018.85,1020.739,1021.949,1022.953,1024.731,1026.42,1027.419,1028.574,1029.667,1031.719,1032.971,1034.087,1035.382,1036.574,1039.119,1040.996,1042.529,1044.654,1046.008,1047.73,1049.479,1055.672,1058.55,1060.551,1062.805,1065.142,1066.942,1068.015,1068.959,1069.663,1070.352,1071.028,1071.768,1072.548,1074.005,1075.466,1077.993,1079.949,1081.146,1083.009,1085.407,1088.41,1091.707,1095.467,1099.269,1102.612,1105.359,1107.859,1110.218,1112.562],"kpi":{"all_time_peak_average":0.959269,"annual_normalized_unserved_energy_total":0.019385,"carbon_emissions_total":0.96101,"cost_total":0.919048,"daily_one_minus_load_factor_average":0.965129,"daily_peak_average":0.92641,"discomfort_cold_delta_average":0.464022,"discomfort_cold_delta_maximum":3.109464,"discomfort_cold_delta_minimum":0.0,"discomfort_cold_proportion":0.060087,"discomfort_hot_delta_average":0.255475,"discomfort_hot_delta_maximum":5.110755,"discomfort_hot_delta_minimum":0.0,"discomfort_hot_proportion":0.016849,"discomfort_proportion":0.076937,"electricity_consumption_total":0.969511,"monthly_one_minus_load_factor_average":0.999678,"one_minus_thermal_resilience_proportion":0.369841,"power_outage_normalized_unserved_energy_total":0.684992,"ramping_average":1.007618,"zero_net_energy":0.968237},"run":"citylearn_challenge_2023_phase_2_local_evaluation_agent_citylearn_20261022T222703Z","steps":719},"agent_run":{"budget_stopped":false,"budget_usd":2.0,"calls":719,"clamped_hours":312,"cost_usd":0.5315,"envelope":{"battery_rate_per_step":0.5,"comfort_band_k":2.0,"comfort_margin_k":0.5,"cooling_max":1.0,"cooling_max_deviation":0.15,"cooling_min":0.0,"cooling_rate_per_step":0.35,"dhw_rate_per_step":0.5,"overcool_guard_unoccupied":true,"peak_forecast_days":2,"peak_limit":true,"peak_target_fraction":1.0,"soc_max":0.95,"soc_min":0.1,"spread_check":true,"storage_max":1.0,"storage_min":-1.0,"trim_hold":true,"trim_hold_c":0.5,"trim_min_depth":0.002,"trim_release_step":0.02},"fallback_hours":0,"model_id":"claude-haiku-5-5","model_key":"haiku","supervisor":"live","trim_ends_early":7},"agent_sample":false,"baseline":{"buildings":{"Building_1":{"battery_soc":[0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2],"dhw_soc":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],"grid_kwh":[0.678,0.846,0.725,0.633,0.607,1.001,1.608,0.534,4.653,0.483,-0.357,1.817,0.266,0.219,0.945,2.824,3.039,2.14,1.419,2.336,3.167,1.823,1.303,2.042,1.886,1.125,0.744,0.671,1.713,1.752,1.766,0.572,-0.245,-0.069,0.819,1.462,6.669,4.144,2.167,2.167,3.119,2.733,3.531,2.36,3.981,2.93,3.446,2.771,1.996,1.597,1.345,1.167,1.085,1.056,0.979,1.281,1.827,-0.118,-0.286,-0.743,-0.767,-0.321,-0.061,2.823,3.203,2.159,1.652,1.282,0.964,1.54,0.677,1.02,0.69,0.649,0.566,0.452,0.405,1.394,0.36,0.824,0.441,0.178,0.139,0.075,0.006,0.084,-0.175,-0.312,0.37,2.084,1.383,1.363,1.519,1.005,1.032,1.204,0.834,0.908,0.841,0.74,1.702,0.649,1.501,2.044,0.892,0.065,-0.434,-0.302,-0.145,0.399,0.651,1.341,1.712,3.301,2.332,2.04,1.413,1.158,1.266,1.144,0.775,0.658,1.104,1.109,0.93,1.45,5.714,0.799,0.646,5.824,0.119,-0.412,-0.309,-0.341,0.568,-0.373,0.001,3.061,1.979,2.83,8.927,2.165,1.511,1.13,1.289,1.736,1.238,0.991,0.848,0.767,1.873,0.998,2.518,0.266,0.062,5.66,1.286,1.119,1.178,0.97,0.791,2.262,1.689,1.153,2.04,0.959,0.651,0.561,0.49,0.432,0.383,0.35,0.349,3.199,0.452,0.203,1.584,-0.29,-0.446,-0.411,-0.314,0.182,0.323,0.609,0.97,1.585,1.969,1.98,1.566,1.143,0.818,0.682,1.003,0.589,0.549,0.517,0.491,0.446,1.379,0.385,2.23,0.199,0.068,0.72,1.2,1.804,2.687,2.771,2.189,2.53,2.226,2.274,1.659,1.535,1.25,1.57,1.246,1.262,1.367,0.988,0.878,2.232,0.811,0.668,0.35,-0.269,-0.223,-0.154,0.455,0.885,1.278,1.827,5.826,2.385,3.597,2.451,2.338,1.022,1.687,1.019,1.279,1.568,1.391,1.191,1.042,0.981,0.954,1.91,1.899,0.785,0.426,0.228,0.271,0.751,8.035,2.459,2.762,2.716,2.511,1.773,1.42,1.134,0.999,1.867,1.17,1.283,1.227,1.083,0.976,0.919,0.912,0.799,-0.092,-0.027,0.777,1.121,0.266,0.716,1.03,3.647,8.064,3.658,3.461,2.842,2.439,1.622,1.303,1.625,1.095,1.156,1.108,0.973,0.882,0.84,0.823,0.656,0.496,-0.416,-0.483,-0.313,-0.121,0.188,0.744,2.478,3.105,2.534,2.482,3.192,2.715,1.592,1.289,1.509,1.228,1.478,1.224,0.987,0.851,0.773,1.287,3.362,0.391,-0.307,-0.371,-0.205,1.991,1.839,-0.232,0.265,0.758,1.208,2.194,2.594,2.069,1.662,1.447,1.026,1.21,1.481,1.253,1.038,2.151,0.886,0.84,0.753,1.616,-0.171,-0.16,-0.111,0.282,0.224,2.107,1.77,1.998,3.705,2.641,2.159,1.815,3.686,1.274,0.984,1.183,1.504,1.333,1.125,0.968,0.901,0.91,2.903,0.721,0.62,0.328,0.068,4.92,0.98,1.011,0.264,3.799,3.082,1.976,1.843,2.38,1.544,0.885,0.661,0.591,0.537,0.496,0.46,0.429,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.341,1.27,1.438,1.167,1.319,1.597,1.361,1.153,1.011,3.963,1.66,0.809,0.571,0.041,0.632,0.17,0.622,4.299,0.693,1.403,1.806,2.239,2.031,4.027,1.332,4.166,1.122,0.797,0.979,1.289,1.158,1.903,0.884,0.82,0.787,0.652,0.721,1.083,0.014,-0.078,0.686,0.25,0.981,0.693,0.785,0.992,1.271,2.112,1.4,1.165,0.914,0.824,0.827,2.287,1.079,0.924,1.733,2.043,0.857,2.248,1.565,-0.023,-0.235,0.481,-0.126,-0.062,0.121,0.666,1.976,1.994,0.888,1.214,1.11,1.902,1.166,2.755,1.131,1.116,1.039,0.9,1.23,0.752,0.722,0.544,0.213,-0.372,-0.313,1.116,0.465,0.497,1.233,1.444,2.514,2.845,5.034,2.238,1.363,2.117,1.214,0.877,1.089,1.408,1.226,1.032,0.88,2.685,1.355,0.84,0.944,-0.187,0.317,2.427,1.013,0.481,0.986,2.991,3.158,2.811,2.549,2.184,2.534,1.661,1.244,1.04,1.197,0.785,0.677,0.633,0.606,0.579,1.018,0.96,1.038,1.937,6.549,0.489,1.75,1.634,4.402,8.38,2.747,2.775,2.818,2.972,2.443,1.928,1.857,1.732,1.079,1.169,0.69,0.608,0.884,1.063,1.069,0.909,0.01,-0.139,0.892,0.124,7.091,3.778,0.137,1.484,3.241,3.902,2.334,2.013,1.9,1.763,3.035,0.973,1.13,1.417,0.981,0.892,1.095,4.255,2.278,2.019,0.635,-0.163,0.882,-0.051,0.116,0.547,1.941,1.163,1.806,1.093,0.844,3.574,1.744,2.639,2.274,0.928,1.121,1.464,1.309,1.549,2.185,1.682,1.743,1.495,0.39,-0.05,0.108,0.011,0.15,0.716,0.798,1.338,1.966,2.61,1.711,1.991,2.574,1.412,1.201,1.514,1.213,1.31,1.214,1.003,0.926,0.874,0.908,1.117,0.402,-0.219,-0.236,-0.115,-0.644,-0.548,0.954,2.208,3.8,2.127,1.98,2.977,2.506,5.466,1.424,1.916,1.306,1.381,1.271,1.092,0.961,1.979,3.683,2.124,0.769,-0.199,-0.153,2.156,0.873,0.736,3.454,2.032,3.027,2.922,2.843,4.405,2.218,8.411,1.397,1.116,1.28,1.62,3.058,1.286,1.085,1.004,1.852,1.138,0.765,1.284,0.69,1.379,1.5,0.84,1.08,1.649,3.27,3.253,2.696,2.846,2.022,2.601,3.008,1.972,0.991,0.736,0.55,0.552,0.567,0.586,0.613,2.044,1.644,3.571,3.406,1.136,1.332,1.962,2.818,2.816,3.383,3.406,2.488,2.608,2.603,2.726,1.306],"indoor_c":[23.1,22.23,22.22,22.22,22.22,22.22,22.22,22.33,22.77,23.27,24.41,24.44,24.66,24.6,24.34,23.33,22.29,23.64,25.28,24.14,20.64,22.33,22.2,19.53,19.22,20.14,21.16,21.58,21.71,21.76,21.9,22.21,23.79,24.19,24.27,24.25,23.54,23.35,23.15,22.93,22.99,22.29,22.35,22.63,22.06,20.25,18.2,17.59,17.46,17.51,17.65,17.79,18.04,18.13,18.44,18.59,18.56,20.71,21.5,22.96,23.44,23.74,23.72,22.23,20.12,20.13,21.89,22.52,23.0,20.89,22.58,23.02,22.51,22.65,22.93,23.37,23.75,23.96,24.27,23.2,23.56,23.64,24.86,24.07,24.29,25.23,24.97,25.47,24.52,23.58,23.53,23.56,23.55,23.65,23.76,21.56,22.35,21.61,21.68,21.78,21.47,21.93,21.67,21.38,21.87,22.57,23.24,23.89,24.12,23.98,23.68,23.14,22.78,22.29,22.44,22.58,22.79,22.94,23.07,23.18,23.32,23.54,21.49,21.32,21.46,21.65,21.21,21.59,21.82,20.68,22.27,23.42,23.79,24.49,24.34,26.05,26.65,25.5,25.71,24.52,24.03,23.16,23.15,23.37,22.4,21.27,21.29,21.49,21.77,22.04,21.72,22.17,21.75,22.53,23.09,23.28,23.51,23.4,23.21,24.0,25.66,25.96,26.23,26.3,25.78,26.12,26.43,26.71,26.93,27.22,27.53,27.84,28.04,26.6,27.52,28.11,27.36,27.9,27.97,27.88,27.73,27.35,27.01,26.64,26.32,26.01,26.06,26.05,26.08,26.18,26.32,26.5,26.37,26.54,26.63,26.71,26.79,27.0,26.91,27.05,25.78,26.02,25.81,25.44,25.07,24.61,24.11,23.32,23.17,22.65,22.64,22.64,22.69,22.67,22.67,20.95,21.2,20.46,20.43,20.53,20.71,20.78,21.05,21.32,21.67,23.0,23.06,23.21,22.98,22.72,22.5,22.27,23.27,21.93,21.6,21.78,21.99,23.38,22.63,22.48,21.35,20.19,20.17,20.3,20.52,20.57,20.73,20.62,20.23,21.08,21.71,22.3,22.33,22.16,20.54,19.95,20.43,20.7,21.17,21.46,21.73,21.96,22.18,20.54,20.92,20.14,20.16,20.35,20.6,20.78,20.94,21.13,22.84,22.95,23.03,22.59,22.53,22.27,22.06,21.58,20.99,20.92,21.06,21.25,21.23,21.7,21.93,19.91,20.84,20.15,20.23,20.44,20.71,20.95,21.15,21.29,21.26,23.1,23.51,23.71,23.6,23.38,22.99,22.53,22.16,21.82,21.93,21.9,21.75,22.01,22.22,22.41,21.49,20.35,20.42,20.67,20.96,21.26,21.52,21.51,22.1,23.5,23.81,23.87,24.66,25.34,25.84,25.85,25.65,25.32,24.02,22.96,22.82,22.88,23.05,23.24,22.31,21.05,21.04,21.2,20.93,21.43,21.61,21.84,21.73,23.32,23.55,23.77,23.65,24.25,23.01,22.64,22.34,21.84,21.92,22.09,22.3,21.57,22.18,22.51,21.69,20.44,20.42,20.55,20.78,20.98,21.26,20.6,21.47,22.9,23.09,23.38,21.29,22.35,22.9,24.51,24.56,24.06,24.45,24.67,24.37,24.79,25.08,25.32,25.47,25.62,25.78,25.95,26.13,26.52,26.62,26.86,26.91,26.86,26.73,25.93,25.96,26.25,26.8,27.36,28.05,28.68,29.45,29.91,28.54,26.84,25.3,24.9,23.62,22.06,21.89,21.86,21.93,20.97,21.31,21.49,21.96,23.28,23.38,23.48,23.31,23.83,23.23,22.39,22.11,21.68,20.93,20.24,21.54,20.58,21.51,21.87,21.04,19.88,19.96,20.08,20.29,20.46,20.69,20.82,21.34,22.5,22.89,23.1,23.02,23.48,23.27,23.23,23.28,23.32,23.4,23.36,23.38,23.38,23.44,23.51,22.53,21.06,21.06,21.2,21.01,21.22,21.56,20.93,21.01,22.81,23.42,23.57,23.71,23.68,23.4,22.35,22.23,22.87,23.33,23.54,23.62,23.59,23.65,22.62,22.34,21.22,21.16,21.33,21.52,21.68,21.85,22.08,22.59,23.98,24.09,23.9,23.67,23.56,23.42,22.93,21.13,20.92,21.34,21.85,22.18,22.3,22.49,22.66,21.73,20.46,20.48,20.65,20.93,20.41,20.93,21.3,21.79,23.17,23.46,22.63,22.98,23.52,23.36,21.23,20.93,21.06,21.32,21.5,21.67,21.87,22.09,22.28,21.49,22.33,22.67,22.92,23.11,23.33,23.5,22.38,21.82,22.29,22.49,22.82,22.24,22.28,21.8,21.08,20.93,20.61,20.34,20.53,21.16,21.49,19.42,19.21,20.14,19.59,20.9,21.43,20.59,20.14,20.26,20.34,22.17,22.36,22.42,22.47,21.65,22.26,23.68,21.91,20.06,20.12,20.63,20.81,20.65,20.89,20.55,21.24,20.48,19.56,20.43,20.62,20.03,19.59,19.38,19.7,20.32,21.85,21.94,22.11,21.98,21.8,21.44,21.26,21.13,22.02,23.34,21.27,21.49,21.09,21.51,21.8,20.98,19.78,19.85,19.96,19.75,19.96,20.19,20.39,20.96,22.35,22.4,22.57,22.22,22.05,21.89,21.32,20.81,21.03,21.97,21.68,21.63,21.77,21.91,20.46,20.85,20.03,20.04,20.24,20.49,20.72,20.89,20.99,21.37,22.79,23.07,23.27,24.88,25.59,24.33,22.6,21.87,23.34,23.75,20.79,21.59,21.56,21.9,19.95,20.79,20.01,20.09,20.27,20.55,20.65,20.07,20.54,20.62,22.52,22.92,20.17,21.77,22.12,21.39,21.3,21.0,20.78,20.88,20.3,20.8,20.61,21.01,21.3,20.5,19.36,18.87,19.35,19.71,20.04,20.06,20.34,20.75,21.66,20.86,21.64,19.93,21.48,21.53,21.34,20.87,21.92,22.87,21.36,21.34,19.3,18.14,18.36,19.84,20.77,21.73,22.08,22.33,22.51,22.73,22.15,22.49,21.45,21.22,21.47,21.4,21.16,20.79,20.34,19.9,19.57,20.24,20.04,20.14,20.23,20.52]},"Building_2":{"battery_soc":[0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2],"dhw_soc":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],"grid_kwh":[0.187,0.186,0.185,0.187,0.202,0.231,0.248,0.345,2.934,0.672,0.633,0.669,0.97,0.787,1.197,2.665,1.802,1.708,1.202,1.013,1.561,1.204,0.913,0.323,0.212,0.379,0.46,0.201,0.202,0.231,0.243,0.245,2.33,0.564,1.008,1.188,1.013,1.471,1.827,2.989,1.635,1.344,1.37,0.795,0.66,0.629,0.641,0.483,0.374,0.313,0.274,0.251,0.247,0.262,0.256,0.358,0.371,0.5,0.455,1.85,0.977,0.827,0.738,0.363,0.47,0.676,0.656,0.581,0.607,0.85,0.532,0.268,0.202,0.232,0.416,0.352,0.202,0.231,0.254,0.361,0.365,0.437,0.441,0.449,0.404,0.336,0.454,0.428,0.723,1.826,0.673,0.718,0.518,0.511,0.503,0.58,0.518,0.23,0.185,0.187,0.202,0.231,0.241,1.601,0.461,0.556,0.868,1.536,1.003,0.964,1.034,1.16,1.171,1.317,1.129,0.737,0.781,0.715,0.584,0.374,0.514,0.278,0.185,0.187,0.202,0.231,0.298,0.426,0.569,0.516,0.582,0.598,1.149,0.966,0.734,0.822,0.925,1.038,1.108,0.679,0.552,0.488,0.412,0.7,0.563,0.186,0.185,0.187,0.202,0.231,1.118,0.35,0.594,1.127,0.674,0.467,0.628,0.712,0.926,1.0,1.022,1.022,0.857,0.653,0.745,0.511,0.528,0.67,0.764,0.686,0.185,0.187,0.202,0.231,0.24,0.971,0.4,0.494,0.514,0.822,0.672,0.699,0.885,0.926,0.955,1.009,0.942,0.855,0.746,0.725,0.619,0.373,0.307,0.389,0.234,0.217,0.218,0.236,0.332,0.536,0.653,0.738,0.704,0.896,0.874,1.035,1.117,1.233,1.168,1.161,1.067,0.811,0.711,0.665,1.343,0.341,0.295,0.257,0.23,0.215,0.219,0.24,0.318,0.415,0.602,0.865,0.886,0.916,1.168,9.8,1.415,1.521,1.533,1.541,1.605,1.062,0.854,0.539,0.654,0.746,0.36,0.205,0.227,0.235,0.25,0.275,0.345,0.705,2.349,0.969,1.006,0.935,0.907,1.331,1.137,1.166,1.158,1.182,1.092,0.82,0.642,0.518,0.525,0.6,0.753,0.396,0.185,0.187,0.214,0.249,0.358,0.482,0.759,1.709,0.658,0.777,1.085,1.057,1.105,1.215,1.205,1.706,1.345,0.994,0.857,0.933,0.999,0.492,0.207,0.225,0.471,0.223,0.232,0.254,0.353,0.554,0.544,0.592,0.517,0.843,0.679,0.668,1.592,1.638,0.706,0.994,1.2,0.983,1.252,0.897,1.846,0.524,0.596,0.664,0.198,0.187,0.202,0.231,0.414,0.589,2.082,0.685,1.01,0.714,0.885,0.797,0.929,1.012,1.021,2.391,1.077,1.195,0.806,0.751,0.616,0.448,0.681,0.483,0.185,0.187,0.206,0.24,0.452,0.622,6.144,3.19,1.807,1.768,0.757,0.853,1.282,1.227,1.225,1.287,1.232,0.937,0.991,1.101,0.608,0.452,0.497,0.485,0.198,0.221,0.215,0.266,0.444,0.613,0.758,0.985,0.842,0.941,1.124,1.163,2.019,1.939,1.246,1.269,1.286,1.051,0.856,1.04,0.466,0.394,0.568,0.607,0.231,0.198,0.447,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.653,1.154,0.459,0.385,0.638,0.576,0.185,0.192,0.22,0.253,2.199,0.708,0.975,2.712,0.878,0.926,2.237,1.089,1.578,1.481,1.102,0.808,0.802,0.705,0.748,0.601,0.35,0.435,0.696,0.387,0.185,0.187,0.202,0.231,0.278,6.647,1.482,1.563,0.569,0.533,0.915,2.424,6.174,0.663,0.577,0.416,0.357,0.305,0.443,0.45,0.233,0.306,0.613,0.287,0.185,0.187,0.202,0.231,0.252,0.309,0.462,0.816,0.836,2.079,2.033,0.354,0.376,0.551,0.778,0.395,0.796,0.526,0.613,0.496,0.507,0.597,0.66,0.291,0.185,0.187,0.202,0.231,0.266,0.373,0.466,0.572,0.602,0.747,0.823,0.831,1.042,1.565,1.265,0.827,2.076,0.823,0.744,0.702,0.569,0.479,0.63,0.658,0.185,0.187,0.202,0.231,0.359,2.37,0.984,1.299,0.681,0.976,1.447,1.103,1.875,1.984,0.872,1.098,1.164,0.918,0.71,0.814,0.966,1.008,0.385,0.192,0.215,0.457,0.231,0.255,0.368,1.009,3.283,9.608,1.758,1.698,1.542,0.953,1.274,1.445,1.453,1.458,1.829,1.082,1.002,0.906,0.481,0.89,0.818,0.442,0.202,0.216,0.241,0.269,0.389,1.799,1.068,0.766,2.297,0.715,1.178,1.8,1.831,1.158,2.944,1.33,2.405,1.014,1.124,0.708,0.401,0.798,0.713,0.186,0.188,0.216,0.248,0.28,1.013,0.752,0.762,0.72,0.811,0.904,1.367,0.896,1.48,1.583,1.483,0.616,0.58,0.718,0.739,0.65,0.492,0.441,0.33,0.245,0.249,0.247,0.257,0.279,0.369,0.475,0.589,0.698,0.664,0.687,0.862,0.821,0.952,1.007,1.017,1.095,1.025,0.991,0.888,0.851,5.033,0.691,0.413,0.351,0.226,0.232,0.241,0.267,0.467,0.748,1.804,0.926,0.907,1.525,0.928,1.054,1.164,1.302,1.39,1.489,3.266,1.215,1.019,0.949,0.94,0.648,0.664,0.402,0.288,0.242,0.258,0.281,0.447,0.621,1.257,0.909,0.89,0.963,1.7,1.222,1.457,1.592,1.718,1.883,1.726,1.224,1.008,1.208,1.098,1.366,0.579,1.241,0.361,0.264,0.277,0.302,1.734,0.617,1.13,1.053,1.231,1.078,1.197,1.483,2.018,1.833,1.453,1.494,1.359,1.588,0.999,0.877,0.552,0.461,0.59,0.574,0.272,0.26,0.273,0.307,0.395,0.539,0.89,1.092,1.14,1.29,1.624,1.632,1.964,2.077,1.855,1.711,1.995,1.325,0.959,0.855,0.502],"indoor_c":[24.28,24.26,24.21,24.12,24.0,23.89,24.2,24.85,24.99,25.0,25.0,25.0,25.46,25.66,25.65,25.87,26.17,26.25,26.3,26.46,25.57,24.73,23.96,25.42,25.97,24.94,24.06,25.36,26.0,26.02,26.45,26.83,24.44,25.53,25.77,25.61,25.97,25.28,25.2,24.87,25.92,25.96,26.25,26.48,26.48,26.37,25.84,25.91,25.88,26.1,26.35,26.61,26.81,26.86,27.27,27.58,27.69,27.64,27.39,26.93,26.67,25.39,25.48,26.82,26.73,26.64,26.6,26.53,26.14,24.91,24.57,25.4,25.83,25.92,24.47,24.48,25.61,25.72,26.05,26.33,26.51,26.83,27.01,27.22,27.36,27.41,27.3,27.31,26.84,26.65,26.79,26.72,26.69,26.59,25.99,24.94,23.92,24.89,25.54,25.71,25.71,25.57,26.16,25.39,25.86,26.19,24.31,24.24,24.54,24.8,24.77,24.95,25.31,25.53,25.41,25.37,25.46,25.54,25.63,25.69,24.65,25.31,26.01,26.25,26.31,26.26,26.56,26.58,26.49,26.41,26.43,26.43,25.5,25.36,26.09,26.46,26.48,26.49,26.7,26.57,26.52,26.53,26.55,24.62,24.5,26.02,26.5,26.69,26.68,26.53,25.74,26.24,25.59,23.71,25.57,25.9,25.91,25.95,25.77,26.04,26.16,26.28,26.4,26.27,26.32,26.28,25.78,24.44,23.08,22.38,24.39,25.61,25.73,25.56,25.64,25.4,25.59,25.66,25.72,25.59,25.69,25.92,25.83,26.05,26.13,26.21,26.25,26.25,26.18,26.07,25.98,26.05,25.99,26.06,26.17,26.29,26.34,26.28,26.39,26.37,26.24,26.24,26.29,26.3,26.31,26.34,26.08,26.14,26.12,26.09,26.09,26.04,25.95,25.88,24.94,25.57,25.44,25.57,25.72,25.89,26.01,26.04,26.2,26.23,26.01,25.87,25.78,25.72,25.68,25.03,25.26,25.32,25.29,25.26,25.24,25.31,25.42,25.55,24.72,23.83,24.74,25.71,26.0,26.26,26.46,26.57,26.72,25.32,23.35,24.33,23.86,24.38,24.96,25.06,25.03,25.26,25.36,25.41,25.43,25.4,25.48,25.55,25.19,24.45,23.3,24.08,25.32,25.86,26.18,26.35,26.5,26.43,26.17,25.08,25.49,25.47,25.5,25.51,25.36,25.48,25.56,25.5,25.68,25.61,25.57,25.42,24.05,24.56,25.73,25.78,25.83,25.92,26.0,26.03,26.21,26.21,25.93,25.89,25.91,25.88,25.89,25.97,24.06,24.05,25.79,25.8,26.01,25.85,25.67,25.52,24.79,24.96,24.22,23.81,25.18,25.81,25.98,25.92,26.09,26.1,24.47,25.22,25.43,25.49,25.53,25.71,25.6,25.72,25.75,24.46,25.32,25.22,25.39,25.44,25.5,25.34,23.8,24.0,25.46,25.97,26.12,26.04,26.09,26.06,25.49,23.98,23.72,25.07,25.62,25.5,25.3,25.38,25.39,25.37,25.36,25.32,25.15,24.31,24.66,24.97,24.45,24.83,25.86,26.11,26.23,26.15,26.18,26.06,25.92,25.77,25.78,25.69,25.59,25.54,24.04,23.65,24.75,25.05,25.01,25.09,25.24,25.35,25.47,25.51,24.26,23.66,25.03,25.83,25.73,26.01,26.34,26.5,26.54,26.63,26.69,27.01,27.39,27.91,28.54,29.11,29.67,30.24,30.89,31.44,28.82,28.24,27.48,27.07,24.65,24.27,25.84,26.45,26.7,26.79,24.32,24.53,24.23,23.62,24.97,25.35,24.23,24.91,23.86,24.08,24.85,24.82,24.89,25.04,25.09,25.12,25.19,24.55,22.96,23.6,24.76,25.19,25.48,25.64,25.73,25.55,25.62,25.76,25.74,25.8,25.9,25.69,25.37,25.71,25.93,25.99,26.04,25.96,25.84,25.74,25.72,25.14,23.86,24.42,25.2,25.48,25.62,25.64,25.78,25.81,25.85,24.5,24.07,25.43,25.78,25.88,25.74,25.7,25.77,25.73,25.53,25.69,25.67,25.64,25.02,23.62,22.53,23.67,24.99,25.38,25.46,25.37,25.7,25.81,25.77,25.77,25.79,25.7,25.72,25.83,25.65,24.6,24.87,25.83,24.56,25.38,25.42,25.44,25.49,25.53,23.75,23.54,25.13,25.7,25.83,25.74,25.84,24.02,23.69,23.05,24.5,24.52,23.61,24.43,23.27,23.17,24.98,25.17,25.2,25.24,25.26,25.31,24.11,22.99,24.23,25.46,25.68,25.84,25.95,25.9,25.98,25.47,25.18,24.61,24.45,23.38,23.88,25.16,25.02,25.09,25.1,25.12,25.14,25.2,25.22,25.23,25.3,23.61,22.89,24.66,25.46,25.81,26.0,26.02,25.97,23.5,23.79,24.89,23.51,24.47,24.69,23.37,23.32,24.58,23.21,24.15,23.41,24.18,23.49,23.81,24.58,22.74,22.68,24.42,25.06,25.39,25.66,25.81,24.51,24.49,24.83,25.38,25.67,24.59,23.96,24.75,23.2,23.17,22.4,24.13,24.89,25.0,25.05,25.13,24.76,24.64,24.9,25.27,25.35,25.46,25.58,25.7,25.89,25.89,25.76,25.77,25.54,25.48,25.4,25.49,25.36,25.46,25.46,25.44,25.45,25.42,25.32,25.11,23.02,23.76,24.17,24.28,24.83,24.98,25.16,25.31,25.52,25.09,24.27,24.91,25.24,24.87,25.3,25.21,25.37,25.53,25.53,25.51,24.1,24.94,24.9,24.78,24.61,24.48,24.3,24.57,25.04,25.46,25.62,25.67,25.81,25.73,25.19,25.41,25.57,25.67,25.48,25.53,25.32,25.35,25.05,24.83,24.94,25.16,25.16,24.21,24.09,23.59,23.95,23.38,24.77,25.2,25.42,25.51,24.1,24.78,23.58,24.11,24.52,24.51,24.48,24.12,23.36,23.62,24.28,24.29,24.36,24.22,24.52,24.61,24.75,24.86,24.02,23.7,24.8,25.3,25.52,25.54,25.59,25.48,25.15,24.95,24.87,24.78,24.71,24.68,24.4,24.34,24.24,24.25,24.09,24.6,24.76,24.79,25.0]},"Building_3":{"battery_soc":[0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2],"dhw_soc":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],"grid_kwh":[0.563,0.473,0.446,0.433,0.435,0.5,1.033,0.884,2.187,2.132,1.284,0.969,0.731,0.829,0.891,1.994,1.803,1.649,1.968,1.807,1.774,2.584,2.719,2.948,0.809,0.645,0.577,1.238,0.461,0.608,0.55,0.63,0.852,0.872,0.804,0.82,0.798,0.894,1.726,2.027,3.019,2.253,2.421,2.045,1.615,1.693,1.107,0.639,0.589,0.559,0.535,0.519,0.525,0.572,0.535,0.508,1.347,0.915,1.691,0.415,0.565,8.096,1.113,1.721,2.25,1.528,2.802,1.989,1.722,1.679,0.726,0.479,0.478,0.484,0.476,0.472,0.47,0.56,2.248,0.742,2.124,0.749,1.171,0.453,1.069,0.202,0.114,0.249,0.422,0.807,1.332,1.114,1.238,1.352,1.374,0.742,0.579,0.514,0.494,0.481,0.47,0.528,0.458,0.391,0.2,0.105,-0.034,-0.076,0.858,0.495,0.575,0.952,1.225,2.137,2.804,4.356,2.4,0.973,1.143,0.754,0.656,0.592,0.549,0.497,0.492,0.553,8.204,0.944,1.117,1.147,0.941,0.355,0.469,0.49,0.703,1.24,1.54,1.379,1.715,1.358,3.324,1.408,0.834,0.723,0.65,0.917,0.898,0.844,0.592,0.578,1.476,1.06,0.654,0.397,0.281,0.361,1.26,0.871,0.725,0.775,1.628,2.323,3.137,2.229,1.836,1.845,0.891,0.745,0.649,0.586,0.541,0.511,0.48,0.548,1.358,0.745,0.446,0.313,0.188,0.172,0.237,0.744,0.988,1.193,1.485,2.414,2.149,2.623,2.755,2.023,1.66,1.034,0.69,0.636,0.587,0.564,0.555,0.599,0.603,0.761,0.631,0.536,0.658,0.987,0.845,6.452,2.388,1.682,1.651,2.174,3.312,2.328,1.708,1.719,1.421,0.741,0.662,0.605,0.565,0.54,0.528,0.589,0.579,0.544,0.447,0.423,0.577,0.319,0.859,0.703,1.045,1.614,4.011,2.641,2.393,2.863,1.419,2.082,0.97,0.84,0.97,0.92,0.844,0.561,0.48,0.601,4.874,0.917,0.805,1.241,0.534,0.411,0.792,0.886,0.994,1.375,1.684,1.595,2.146,2.303,2.388,9.131,1.259,1.141,0.599,0.637,0.684,0.661,0.657,0.714,0.617,0.536,0.625,0.764,0.382,0.507,0.561,1.241,0.84,1.134,1.53,2.179,2.146,4.945,4.652,5.853,9.45,1.516,0.881,0.593,0.569,0.552,0.551,0.606,1.792,0.574,0.528,0.44,0.794,0.37,0.42,0.379,0.663,1.167,1.71,1.728,1.96,2.549,1.729,2.494,2.664,1.286,0.673,0.622,0.58,0.552,0.526,0.591,0.613,0.785,0.418,0.334,0.219,0.282,0.305,0.403,0.493,1.076,1.46,1.527,1.917,3.356,3.53,1.587,1.556,1.479,0.664,0.62,0.585,0.563,0.54,0.598,0.768,2.533,1.353,0.967,0.685,0.618,0.552,0.556,0.874,1.251,1.729,2.102,2.715,2.296,2.326,1.591,1.314,3.385,0.757,0.647,0.614,0.592,0.586,0.63,0.647,0.638,0.83,1.126,1.079,1.134,1.553,1.127,1.493,1.787,2.459,1.761,2.065,2.472,2.609,1.864,1.226,0.811,0.724,0.666,0.628,0.6,0.587,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.082,1.939,1.791,0.631,1.084,0.593,0.579,0.568,0.567,0.622,0.91,0.988,0.719,0.858,1.673,0.796,0.874,0.753,0.931,1.151,1.215,1.42,1.489,1.38,1.647,1.299,0.812,0.841,0.575,0.563,0.551,0.543,0.542,0.602,2.226,0.732,1.068,0.706,0.581,0.492,1.007,0.706,0.793,0.803,0.736,0.665,1.249,0.949,1.561,1.361,0.834,0.804,1.27,0.776,0.521,0.512,0.495,1.692,0.73,0.558,0.78,0.769,0.578,0.617,0.514,0.572,0.573,0.484,0.834,1.975,1.368,1.391,2.159,3.745,2.419,0.82,0.525,0.513,0.509,1.815,0.524,0.609,0.866,2.932,0.886,0.497,0.475,1.125,0.698,0.725,0.948,1.168,1.311,1.565,1.591,1.445,1.725,1.611,1.096,0.889,0.661,0.613,0.586,0.565,0.548,0.634,8.641,0.92,2.622,1.322,0.42,0.601,0.535,0.613,1.087,1.637,1.918,2.038,2.217,3.475,2.241,2.363,1.288,0.808,0.73,0.677,0.633,0.6,0.586,0.637,0.651,2.323,0.863,0.977,0.917,1.189,2.025,1.51,2.116,2.496,2.828,2.111,3.038,1.88,1.644,1.545,1.298,0.852,0.8,0.748,0.706,0.676,0.671,0.709,0.656,0.81,0.955,1.02,1.012,0.971,1.19,1.186,1.281,1.755,4.027,2.367,2.992,2.196,1.889,2.179,1.534,0.929,0.814,0.737,0.699,0.581,0.597,0.64,0.957,0.922,1.024,0.869,0.572,1.043,0.856,0.72,0.808,0.95,1.266,1.62,1.983,2.28,1.924,1.448,1.216,0.673,0.636,0.615,0.598,0.585,0.589,0.671,0.643,0.594,0.97,1.857,0.499,0.541,1.542,1.496,1.311,1.227,1.175,2.316,1.937,1.67,2.065,1.637,2.575,1.149,1.905,0.655,0.598,0.591,0.562,3.354,0.9,0.883,1.806,1.471,0.414,0.377,0.737,0.53,0.752,1.076,1.373,2.043,2.442,10.08,2.374,2.07,1.379,1.041,0.858,0.744,0.683,0.64,0.618,0.668,1.154,1.676,5.556,7.639,2.401,0.942,1.24,2.053,1.408,1.747,2.14,2.081,2.099,2.959,2.074,10.153,2.433,1.072,0.834,0.753,0.701,0.667,0.656,0.695,0.737,1.006,0.775,0.831,0.864,3.518,1.473,1.025,1.503,1.906,1.666,2.159,10.01,2.211,1.709,1.576,1.716,1.589,0.8,0.74,0.7,0.671,0.668,0.705,0.696,0.673,0.861,1.962,0.921,0.982,1.897,2.298,2.228,2.679,2.766,2.987,2.982,2.241,2.032,1.8,3.695],"indoor_c":[24.43,24.44,24.44,24.44,24.36,24.29,24.11,23.35,23.33,23.33,23.33,23.33,23.1,22.81,22.46,22.34,22.04,22.87,23.26,23.79,24.0,24.11,23.58,22.63,23.22,23.65,23.94,24.63,24.94,24.62,25.03,25.49,25.27,24.87,24.59,24.34,24.15,23.93,23.58,22.75,22.0,22.52,23.01,22.36,22.28,22.31,23.47,24.18,24.53,24.77,24.94,25.04,25.13,25.24,25.45,25.24,24.82,24.88,24.05,24.03,23.92,23.18,22.87,22.56,22.75,22.98,22.65,22.64,22.65,22.64,23.08,24.05,24.34,24.52,24.7,24.84,24.99,25.13,24.6,24.98,24.54,24.86,24.95,24.8,24.61,24.45,24.35,24.38,24.33,24.2,24.37,24.41,23.81,23.21,23.21,23.62,23.96,24.02,24.11,24.21,24.38,24.93,25.4,25.63,25.63,25.46,25.2,24.96,24.8,24.81,24.51,24.3,24.06,23.53,23.72,22.49,23.03,23.43,23.67,23.92,24.22,24.28,24.39,24.57,24.8,24.89,24.81,24.94,24.06,23.63,23.38,22.96,22.71,22.44,22.19,22.1,21.86,22.84,23.45,23.61,22.9,23.46,23.8,24.09,24.36,24.2,24.13,24.15,24.45,24.74,25.09,25.16,25.23,25.15,24.88,24.63,24.25,24.03,23.79,23.51,23.23,22.87,22.9,22.99,23.3,23.47,23.85,24.14,24.28,24.45,24.54,24.66,24.88,25.01,24.93,25.17,25.12,24.94,24.81,24.5,24.21,23.54,23.19,22.98,22.59,21.6,21.76,21.98,22.09,22.51,23.09,23.36,23.57,23.75,23.91,23.98,24.05,24.18,24.41,24.61,24.67,24.68,24.53,24.32,24.17,23.39,23.31,23.13,23.1,22.88,22.39,22.88,23.1,23.31,23.48,23.74,23.92,24.1,24.23,24.31,24.43,24.52,24.78,24.99,25.08,25.0,24.79,24.46,24.06,23.7,23.44,22.64,21.61,21.35,21.26,21.09,21.58,21.83,22.25,22.52,22.04,21.96,22.03,23.0,23.85,24.12,22.85,23.36,23.67,23.64,23.53,23.34,22.73,22.44,22.34,22.39,22.06,22.66,22.55,21.92,21.9,21.47,22.29,23.24,23.65,23.6,23.47,23.58,23.7,23.87,24.39,24.8,24.3,24.0,23.62,23.4,23.28,22.99,22.69,22.48,22.48,22.73,23.13,22.62,22.0,20.79,20.81,22.4,23.01,23.27,23.52,23.78,24.06,24.34,24.27,24.45,23.95,23.57,23.33,23.18,22.99,22.77,22.55,22.55,22.45,22.5,22.49,22.54,22.77,22.38,22.24,23.26,23.66,23.82,23.95,24.12,24.37,24.58,24.99,25.27,25.22,24.89,24.52,24.24,23.94,23.66,23.48,23.1,22.52,22.84,23.21,22.57,22.44,22.7,22.76,23.62,23.86,24.1,24.23,24.37,24.56,24.61,24.79,24.14,24.32,24.27,24.18,23.96,23.59,23.36,23.11,22.54,22.16,22.3,21.86,22.04,22.21,22.48,22.73,22.2,22.95,23.36,23.66,23.88,24.05,24.22,24.48,24.65,24.66,23.99,23.59,23.3,23.0,22.71,22.48,22.11,21.84,22.16,22.42,22.63,22.81,22.99,23.25,23.51,23.73,23.92,24.07,24.16,24.24,24.7,24.99,24.89,24.28,24.03,23.62,23.51,23.45,23.53,23.95,24.38,25.15,25.91,26.8,27.4,23.48,23.41,23.29,24.34,24.51,24.61,24.68,24.72,24.78,24.86,25.04,25.07,24.55,24.02,23.58,23.38,23.13,22.89,22.68,22.49,22.37,22.6,22.58,22.7,22.77,22.85,23.01,23.65,23.91,24.0,24.12,24.27,24.44,24.62,24.17,24.03,23.95,24.39,24.41,24.22,23.9,23.68,23.52,23.4,22.95,23.47,23.45,23.65,23.72,23.75,23.92,24.04,24.26,24.31,24.42,24.59,24.82,24.51,24.75,24.84,24.28,24.1,23.99,23.73,23.49,23.38,23.31,23.16,23.22,22.94,23.25,23.32,23.35,22.2,22.72,23.58,23.97,24.14,24.28,23.73,24.2,24.49,24.86,24.2,23.88,23.6,23.44,23.24,23.05,22.81,22.61,22.48,22.44,22.99,23.38,23.61,23.79,23.92,24.14,23.74,24.3,24.44,24.53,24.63,24.78,24.9,24.69,24.93,23.99,24.08,23.94,23.65,23.43,23.27,23.14,22.9,22.06,22.04,21.9,21.59,21.82,21.98,22.68,23.22,23.43,23.7,23.86,23.98,24.11,24.24,24.48,23.87,24.07,23.97,23.78,23.5,22.78,22.17,21.43,21.1,20.83,21.18,21.18,21.49,21.79,22.06,22.23,22.57,22.66,22.81,22.94,23.03,23.11,23.23,23.74,24.2,24.2,23.7,23.17,22.88,22.6,22.38,22.13,21.71,20.99,20.85,20.7,21.06,21.65,21.86,22.12,22.46,22.65,22.82,22.99,23.56,23.82,24.04,24.26,24.25,23.72,23.59,23.37,23.14,22.86,22.62,22.47,22.37,22.42,22.66,22.34,22.16,22.31,22.5,22.66,23.41,23.7,23.83,23.97,24.12,24.28,24.46,24.73,24.84,24.6,24.42,23.71,23.12,22.9,22.68,22.48,22.32,22.09,22.41,22.72,22.72,22.43,22.5,22.0,22.97,23.31,23.47,23.62,23.8,24.04,23.17,23.71,24.02,23.58,23.67,23.5,23.35,23.11,22.96,22.73,22.48,22.25,22.06,22.25,21.79,22.17,22.37,22.67,22.95,23.25,23.37,23.48,23.66,23.89,24.13,24.22,24.25,23.67,23.03,22.59,22.9,22.52,22.19,21.66,21.31,21.22,21.58,21.94,22.14,22.49,22.06,22.46,22.78,23.0,23.26,23.45,23.65,23.84,24.05,24.32,24.43,24.41,24.2,23.88,22.49,22.62,22.37,22.24,22.04,21.83,21.77,21.48,21.99,22.38,22.64,22.92,23.15,23.29,23.52,23.68,23.8,23.91,24.05,24.26,24.3,24.19,23.29,23.29,23.03,22.34,21.47,21.02,20.78,20.59,20.8,21.24,21.68,22.03,22.34,21.65]}},"complete":true,"cost_usd":[0.0413,0.0849,0.1241,0.1603,0.1964,0.2464,0.33,0.3814,0.6663,0.7621,0.8181,0.9188,0.9761,1.0296,1.118,1.557,1.9468,2.2693,2.4031,2.5534,2.7429,2.9065,3.0492,3.203,3.287,3.3492,3.4008,3.4618,3.5306,3.6055,3.6796,3.7214,3.8135,3.855,3.9311,4.0315,4.2769,4.4651,4.6306,4.8384,5.0633,5.2464,5.4582,5.6087,5.7897,5.9416,6.0919,6.2045,6.2902,6.3616,6.424,6.48,6.5337,6.5884,6.6396,6.7017,6.8043,6.8452,6.9073,6.9728,7.0174,7.2756,7.3291,7.4711,7.6424,7.7686,7.9165,8.0279,8.1231,8.2409,8.2968,8.348,8.3876,8.4271,8.4693,8.5062,8.5374,8.6007,8.6835,8.7396,8.825,8.8648,8.9158,8.9443,8.9874,9.0055,9.0221,9.0618,9.1507,9.4274,9.5262,9.6193,9.7148,9.7984,9.8825,9.9556,10.0115,10.0593,10.1032,10.144,10.2127,10.2534,10.317,10.4347,10.4799,10.5011,10.5264,10.5712,10.6254,10.6796,10.7454,10.9481,11.1891,11.5854,11.768,11.9759,12.1099,12.1928,12.2794,12.3452,12.4015,12.4457,12.4988,12.5507,12.5977,12.6623,13.0736,13.1369,13.2048,13.4231,13.471,13.4988,13.5459,13.5884,13.6468,13.7678,13.9125,14.2339,14.3739,14.5157,14.8889,15.0073,15.0871,15.1609,15.2333,15.3154,15.3825,15.4411,15.4886,15.5341,15.6634,15.7336,15.8434,15.8955,15.9252,16.1143,16.2068,16.2856,16.368,16.5291,16.7309,17.0599,17.2256,17.3432,17.4779,17.5745,17.6344,17.6916,17.7466,17.7959,17.828,17.8583,17.8881,18.0032,18.0625,18.1184,18.1893,18.2128,18.2333,18.2622,18.2887,18.3361,18.4001,18.5601,18.7602,19.054,19.2015,19.3606,19.5083,19.6217,19.7113,19.7717,19.8296,19.8763,19.916,19.9536,19.9901,20.0272,20.0941,20.1428,20.2444,20.287,20.3284,20.4037,20.4881,20.7569,20.936,21.1005,21.2454,21.4151,21.6062,21.7628,21.8808,21.9942,22.1103,22.187,22.2508,22.3122,22.3748,22.4251,22.4722,22.5607,22.6101,22.6572,22.6977,22.7349,22.7773,22.813,22.8848,23.2143,23.3224,23.4659,23.7949,23.9849,24.2046,24.3891,24.5224,24.6278,24.7236,24.799,24.8744,24.9523,25.0236,25.0811,25.1324,25.1861,25.3647,25.4676,25.6149,25.7022,25.7595,25.8054,25.8628,25.9494,26.2457,26.539,26.8678,27.1901,27.3577,27.5004,27.6301,27.9445,28.025,28.1294,28.2024,28.2693,28.33,28.3858,28.4393,28.4937,28.5483,28.6013,28.6416,28.7137,28.7666,28.8367,28.8924,28.9803,29.067,29.4188,30.0524,30.495,30.6976,30.9535,31.1852,31.4303,31.7703,31.8754,31.9386,31.9957,32.0578,32.1083,32.1565,32.2057,32.2915,32.3435,32.3892,32.4193,32.4575,32.4929,32.5249,32.5609,32.6483,32.9582,33.2821,33.5904,33.7549,33.9509,34.117,34.2623,34.43,34.5261,34.5983,34.6782,34.7361,34.7861,34.8318,34.8779,34.9448,35.0829,35.1671,35.1968,35.2327,35.2617,35.3544,35.443,35.4845,35.6225,35.8126,36.1134,36.2647,36.473,36.6597,36.7763,36.881,36.9664,37.0404,37.1151,37.1736,37.2253,37.3092,37.359,37.4186,37.5325,37.7981,37.9193,37.9919,38.0615,38.1079,38.1555,38.2798,38.529,38.8195,39.2357,39.4278,39.5849,39.7345,39.9204,40.0129,40.1524,40.2229,40.2992,40.3612,40.4173,40.4685,40.5205,40.5783,40.6985,40.7653,40.8443,40.9094,40.9714,41.1912,41.2858,41.4166,41.5321,41.7492,41.926,42.0801,42.2353,42.4044,42.5331,42.6077,42.6617,42.7162,42.7685,42.8077,42.8441,42.8865,42.8865,42.8865,42.8865,42.8865,42.8865,42.8865,42.8865,42.8865,42.8865,42.8865,42.8865,42.8865,42.8865,42.8865,42.8865,43.0044,43.1306,43.2373,43.3005,43.3884,43.4684,43.5299,43.5852,43.6372,43.7772,43.9152,43.9882,44.0542,44.1595,44.2523,44.3074,44.4163,44.5953,44.6886,44.9254,45.1672,45.4293,45.5553,45.7335,45.8421,46.0189,46.085,46.145,46.21,46.2748,46.3296,46.4058,46.4529,46.5007,46.5959,46.83,46.9253,47.023,47.057,47.0868,47.1629,47.2614,47.4931,47.6198,47.7429,47.8645,47.9483,48.0465,48.1457,48.2324,48.2897,48.3457,48.424,48.521,48.5726,48.6196,48.6899,48.8046,48.8578,48.9486,49.0304,49.0766,49.1178,49.2104,49.2847,49.3117,49.3429,49.4426,49.6531,49.9092,49.9981,50.0894,50.2026,50.3816,50.5,50.6207,50.6877,50.7432,50.7934,50.8773,50.9339,50.9799,51.0336,51.1458,51.1914,51.2226,51.254,51.3411,51.399,51.4588,51.5528,51.7978,52.0965,52.4037,52.6573,52.7887,52.9004,53.0295,53.1128,53.1777,53.2466,53.3241,53.3819,53.4335,53.4806,53.5834,53.8829,54.0033,54.1359,54.2123,54.2537,54.3704,54.4577,54.5218,54.6369,55.0248,55.3738,55.7227,55.8955,56.0873,56.2471,56.3881,56.4893,56.5719,56.6389,56.6867,56.7308,56.7797,56.8209,56.8634,56.9223,57.0465,57.1965,57.5587,57.8256,57.9232,58.0771,58.1956,58.421,58.7775,58.9807,59.1643,59.3867,59.5583,59.7056,59.8323,59.9374,60.0379,60.116,60.1842,60.2304,60.2738,60.3257,60.3848,60.4459,60.5477,60.6066,60.6582,60.7798,60.8321,61.1058,61.3015,61.3955,61.5227,61.8181,62.038,62.2616,62.4127,62.5548,62.6894,62.8332,62.9113,62.9882,63.0559,63.1099,63.1588,63.2149,63.3646,63.4875,63.5951,63.6657,63.712,63.778,63.8348,63.903,63.966,64.0893,64.3062,64.5734,64.7687,64.868,65.0596,65.1881,65.3262,65.4414,65.5005,65.5608,65.6281,65.6904,65.7593,65.847,65.9232,66.0029,66.0776,66.1344,66.2089,66.2459,66.2821,66.3565,66.445,66.5342,66.7438,66.9877,67.341,67.4772,67.6128,67.7739,67.8876,68.1424,68.2395,68.3416,68.4086,68.4676,68.5204,68.5704,68.7005,68.7663,68.8464,68.9633,69.0332,69.0717,69.1272,69.1757,69.2219,69.3056,69.5746,69.9597,70.2917,70.5158,70.9318,71.1038,71.3511,71.4594,71.5637,71.6455,71.7186,71.7835,71.8407,71.8938,71.9785,72.1314,72.2602,72.4812,72.7304,72.8263,72.9447,73.0559,73.1728,73.357,73.6721,74.076,74.48,74.6744,74.9247,75.0792,75.6556,75.7981,75.9009,75.9789,76.0834,76.2026,76.2668,76.3252,76.3831,76.5081,76.5886,76.6664,76.7588,76.84,77.0141,77.1357,77.2333,77.3674,77.6835,78.0583,78.4635,78.8735,79.0672,79.2051,79.3524,79.5051,79.6215,79.6904,79.7497,79.7937,79.8366,79.8802,79.9264,79.9757,80.0699,80.1681,80.3597,80.5179,80.6165,80.7569,80.9273,81.1301,81.3492,81.5808,81.8152,82.0312,82.2098,82.3716,82.5272,82.6864],"discomfort_h":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,2.0,3.0,4.0,4.0,5.0,5.0,5.0,6.0,7.0,8.0,9.0,11.0,12.0,13.0,14.0,15.0,15.0,15.0,15.0,15.0,16.0,17.0,17.0,17.0,18.0,19.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,21.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,23.0,23.0,23.0,23.0,23.0,23.0,23.0,23.0,23.0,23.0,23.0,23.0,23.0,23.0,23.0,23.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,25.0,26.0,27.0,28.0,29.0,30.0,30.0,30.0,30.0,31.0,31.0,31.0,31.0,31.0,31.0,31.0,31.0,31.0,31.0,31.0,31.0,31.0,31.0,31.0,32.0,33.0,35.0,37.0,39.0,40.0,41.0,41.0,41.0,41.0,42.0,43.0,43.0,43.0,43.0,43.0,43.0,43.0,44.0,45.0,46.0,47.0,48.0,49.0,50.0,51.0,52.0,53.0,54.0,55.0,56.0,57.0,58.0,59.0,60.0,61.0,61.0,61.0,61.0,61.0,61.0,61.0,61.0,61.0,61.0,61.0,62.0,63.0,64.0,65.0,66.0,67.0,68.0,70.0,72.0,74.0,76.0,77.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,79.0,80.0,81.0,82.0,83.0,84.0,85.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,87.0,87.0,87.0,87.0,87.0,87.0,87.0,87.0,87.0,87.0,87.0,87.0,87.0,87.0,87.0,87.0,87.0,87.0,87.0,87.0,88.0,89.0,91.0,92.0,93.0,94.0,95.0,96.0,96.0,96.0,96.0,96.0,96.0,96.0,96.0,96.0,96.0,96.0,96.0,96.0,97.0,98.0,99.0,100.0,102.0,104.0,106.0,107.0,108.0,109.0,110.0,110.0,110.0,110.0,110.0,110.0,110.0,110.0,110.0,110.0,110.0,110.0,110.0,111.0,112.0,113.0,114.0,116.0,118.0,120.0,123.0,126.0,127.0,129.0,130.0,131.0,131.0,131.0,131.0,131.0,131.0,131.0,131.0,131.0,131.0,131.0,131.0,131.0,131.0,131.0,131.0,131.0,131.0,132.0,133.0,134.0,135.0,136.0,137.0,138.0,139.0,140.0,141.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,143.0,144.0,145.0,146.0,147.0,148.0,148.0,148.0,148.0,148.0,148.0,148.0,148.0,148.0,148.0,148.0,148.0,148.0,148.0,148.0,148.0,148.0,148.0,149.0,150.0,152.0,154.0,156.0,158.0,159.0,160.0,161.0,161.0,162.0,162.0,162.0,162.0,162.0,162.0,162.0,162.0,162.0,162.0,162.0,163.0,164.0,166.0,168.0,170.0,172.0,174.0,176.0,178.0,179.0,180.0,181.0,182.0,183.0,184.0,185.0,185.0,186.0,186.0,186.0,187.0,188.0,189.0,189.0,190.0,191.0,192.0,194.0,196.0,198.0,200.0,202.0,204.0,206.0,207.0,208.0,209.0,210.0,211.0,212.0,213.0,214.0,215.0,216.0,217.0,218.0,219.0,220.0,221.0,222.0,223.0,224.0,225.0,226.0,227.0,228.0,229.0,230.0,231.0,232.0,233.0,234.0,235.0,236.0,237.0,238.0,239.0,239.0,239.0,240.0,241.0,241.0,242.0,243.0,244.0,245.0,246.0,248.0,249.0,250.0,251.0,252.0,253.0,254.0,255.0,256.0,257.0,257.0,257.0,257.0,257.0,257.0,257.0,257.0,257.0,257.0,257.0,257.0,257.0,257.0,258.0,260.0,262.0,264.0,266.0,268.0,269.0,270.0,271.0,272.0,273.0,273.0,273.0,273.0,274.0,274.0,274.0,274.0,274.0,275.0,276.0,277.0,278.0,279.0,281.0,283.0,285.0,287.0,288.0,290.0,291.0,292.0,293.0,294.0,295.0,296.0,297.0,298.0,299.0,299.0,300.0,301.0,301.0,302.0,303.0,304.0,305.0,306.0,307.0,309.0,311.0,313.0,315.0,316.0,317.0,318.0,319.0,320.0,321.0,322.0,323.0,323.0,323.0,324.0,324.0,325.0,326.0,327.0,328.0,330.0,332.0,334.0,336.0,338.0,340.0,342.0,344.0,346.0,348.0],"district_grid_kwh":[1.428,1.505,1.355,1.254,1.245,1.731,2.889,1.763,9.774,3.287,1.561,3.455,1.967,1.835,3.033,7.483,6.644,5.496,4.59,5.157,6.502,5.611,4.935,5.313,2.906,2.15,1.782,2.11,2.376,2.591,2.559,1.447,2.937,1.367,2.63,3.47,8.481,6.508,5.72,7.182,7.773,6.33,7.322,5.2,6.256,5.252,5.194,3.894,2.96,2.47,2.155,1.937,1.856,1.89,1.77,2.147,3.545,1.297,1.861,1.522,0.774,8.602,1.79,4.906,5.922,4.363,5.111,3.852,3.293,4.069,1.935,1.768,1.37,1.366,1.458,1.277,1.078,2.185,2.862,1.927,2.93,1.364,1.75,0.977,1.479,0.623,0.393,0.365,1.515,4.717,3.387,3.195,3.275,2.867,2.91,2.527,1.93,1.652,1.52,1.409,2.374,1.408,2.199,4.036,1.553,0.726,0.4,1.158,1.716,1.858,2.26,3.453,4.108,6.755,6.265,7.132,4.595,2.846,2.993,2.272,1.946,1.528,1.837,1.793,1.624,2.234,14.217,2.169,2.332,7.487,1.643,0.541,1.309,1.115,2.005,1.689,2.467,5.478,4.803,4.867,12.803,4.062,2.756,2.552,2.501,2.839,2.32,2.023,1.642,1.576,4.467,2.408,3.766,1.79,1.017,6.488,3.173,2.703,2.828,2.745,3.44,5.607,5.683,4.035,4.621,3.315,2.07,1.976,1.903,1.704,1.108,1.048,1.031,3.978,2.049,1.919,2.43,0.517,0.256,0.583,0.595,1.626,2.196,2.728,3.41,5.008,5.06,5.457,5.067,3.89,3.098,2.089,2.0,1.615,1.371,1.299,1.264,1.281,2.314,1.681,3.513,1.473,1.431,2.602,2.919,9.291,6.191,5.687,5.009,5.866,6.606,5.413,4.078,3.919,4.015,2.651,2.203,2.124,2.162,1.742,1.625,3.061,1.708,1.627,1.398,1.02,1.239,1.081,2.482,11.388,3.738,4.962,11.371,6.567,7.595,6.376,4.61,3.643,3.311,2.605,2.608,2.693,2.462,1.988,1.772,1.857,6.174,3.531,5.053,2.995,1.965,1.574,1.971,2.968,10.165,5.0,5.604,5.494,5.75,4.896,4.45,10.784,2.784,3.608,2.522,2.315,2.095,1.931,1.847,1.882,1.887,1.817,1.292,2.446,1.816,2.405,1.911,3.014,2.975,5.996,10.799,7.544,6.951,8.78,7.948,8.408,11.751,3.634,2.183,1.974,2.148,1.747,1.665,1.699,2.967,1.783,1.568,0.617,0.828,0.9,0.978,1.234,2.998,5.282,5.52,5.256,5.642,6.724,5.696,4.984,5.799,3.32,2.497,2.764,2.001,1.726,1.579,1.594,2.314,4.736,2.89,0.713,0.858,0.792,3.181,3.039,1.191,2.353,3.24,5.127,5.189,7.144,6.405,4.0,3.62,2.954,2.555,2.584,2.023,1.788,2.897,1.723,2.06,3.908,9.112,3.986,2.331,2.275,1.591,1.633,4.263,4.248,4.951,7.094,6.588,5.392,5.131,6.378,3.196,4.822,2.437,2.636,2.145,1.938,1.77,1.797,2.001,4.154,2.309,2.732,2.249,2.143,7.597,3.27,4.523,3.99,7.504,6.113,5.327,5.365,5.845,4.447,2.577,1.867,1.884,1.81,1.354,1.258,1.464,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.075,4.363,3.689,2.183,3.04,2.766,2.125,1.913,1.798,4.838,4.768,2.505,2.265,3.612,3.182,1.893,3.733,6.142,3.201,4.036,4.123,4.467,4.322,6.112,3.727,6.066,2.283,2.073,2.249,2.238,1.894,2.633,1.628,1.653,3.291,8.031,3.27,3.352,1.164,0.947,2.608,3.38,7.948,2.159,2.099,2.072,2.876,3.367,3.404,2.977,1.98,1.933,2.709,3.35,1.785,1.624,2.43,3.966,1.838,3.115,2.807,1.562,1.179,3.177,2.421,0.864,1.071,1.7,3.588,4.364,3.052,3.13,3.882,6.143,4.092,4.172,2.316,1.919,1.733,2.902,1.956,1.592,1.854,3.85,1.565,0.697,0.765,2.988,1.987,2.052,3.223,4.177,5.09,5.236,8.701,4.507,3.832,4.43,2.879,2.245,2.381,2.679,1.996,1.784,1.63,3.55,10.355,4.131,4.549,2.434,1.418,4.005,2.995,2.197,3.948,6.611,5.949,5.947,5.929,6.577,5.484,4.838,3.497,2.856,2.313,1.654,1.525,1.69,1.423,1.471,2.036,4.291,5.184,12.522,9.224,3.376,5.317,4.097,7.792,12.321,7.027,6.345,7.686,5.935,5.089,4.38,3.635,3.474,2.697,2.359,1.597,1.499,1.796,2.04,2.114,3.519,2.034,1.647,4.201,1.81,9.459,6.764,3.249,4.398,10.212,7.598,7.731,5.222,4.913,4.651,4.97,2.7,2.657,2.34,1.869,1.689,1.94,5.176,4.247,3.693,2.421,1.425,2.265,1.896,2.339,2.163,4.23,3.696,4.555,3.329,3.406,6.572,4.407,4.737,3.983,2.042,2.087,2.324,2.156,2.381,3.031,2.633,2.755,2.564,1.949,2.504,1.271,1.24,2.554,3.033,3.06,3.573,4.158,6.021,4.673,4.652,5.527,3.9,8.808,3.354,3.531,2.316,2.037,1.826,1.73,4.495,2.274,2.749,4.012,2.179,1.085,1.787,1.022,1.036,2.87,4.586,6.564,5.659,7.689,14.271,5.899,8.485,3.742,3.605,2.828,2.528,2.242,1.975,1.837,2.928,5.284,4.422,7.582,8.349,3.137,4.062,3.813,4.011,6.318,5.371,6.885,6.885,6.669,8.588,5.3,19.771,4.928,3.554,2.693,3.614,4.12,2.218,2.019,2.001,4.323,2.76,2.671,3.168,2.784,5.975,4.17,3.347,4.601,5.388,6.389,6.906,14.065,6.646,4.731,5.053,5.277,4.022,2.381,2.05,1.522,1.483,1.507,1.598,1.704,3.256,3.394,6.625,5.467,3.408,4.853,5.891,7.011,7.572,8.004,8.103,7.465,6.174,5.593,5.381,5.503],"emission_kg":[0.575,1.151,1.652,2.112,2.577,3.244,4.386,5.112,9.342,10.75,11.628,13.312,14.279,15.174,16.629,20.157,23.213,25.683,27.698,29.946,32.81,35.319,37.538,39.892,41.145,42.001,42.683,43.47,44.351,45.302,46.256,46.808,48.102,48.711,49.927,51.599,55.706,58.848,61.594,64.997,68.609,71.514,74.816,77.127,79.922,82.327,84.709,86.481,87.866,88.967,89.876,90.652,91.374,92.107,92.805,93.678,95.155,95.734,96.655,97.715,98.487,103.113,104.08,106.634,109.696,111.938,114.543,116.465,118.093,120.12,121.067,121.941,122.602,123.228,123.83,124.322,124.771,125.751,127.023,127.951,129.46,130.173,131.127,131.658,132.45,132.78,133.08,133.431,134.213,136.623,138.353,140.002,141.709,143.185,144.645,145.837,146.685,147.363,147.951,148.508,149.476,150.091,151.115,153.058,153.843,154.212,154.658,155.467,156.465,157.464,158.667,160.484,162.627,166.123,169.327,172.911,175.186,176.542,177.926,178.976,179.821,180.444,181.164,181.828,182.429,183.261,188.894,189.8,190.839,194.258,195.021,195.485,196.307,197.057,198.087,199.144,200.391,203.106,205.429,207.717,213.605,215.441,216.662,217.74,218.768,219.864,220.731,221.488,222.121,222.745,224.6,225.603,227.287,228.091,228.556,231.601,233.121,234.445,235.826,237.166,238.824,241.459,244.055,245.827,247.863,249.328,250.222,251.063,251.866,252.511,252.913,253.284,253.665,255.178,256.015,256.906,258.111,258.504,258.837,259.301,259.722,260.479,261.517,262.816,264.428,266.771,269.136,271.682,274.059,275.891,277.32,278.266,279.145,279.833,280.388,280.907,281.42,281.963,282.989,283.734,285.351,286.018,286.677,287.897,289.294,293.759,296.678,299.329,301.656,304.362,307.378,309.848,311.742,313.553,315.328,316.414,317.297,318.098,318.846,319.437,319.987,321.02,321.608,322.18,322.679,323.134,323.693,324.206,325.313,330.562,332.321,334.662,340.025,343.119,346.601,349.475,351.559,353.191,354.626,355.741,356.821,357.889,358.832,359.581,360.234,360.926,363.264,364.624,366.628,367.781,368.569,369.246,370.142,371.543,376.427,378.842,381.568,384.247,387.054,389.443,391.622,396.825,398.114,399.686,400.773,401.712,402.533,403.285,404.017,404.782,405.586,406.4,407.034,408.133,408.963,410.116,411.043,412.498,413.916,416.744,421.774,425.226,428.364,432.368,436.068,440.051,445.557,447.223,448.227,449.118,450.027,450.745,451.446,452.193,453.585,454.481,455.275,455.789,456.449,457.08,457.653,458.294,459.843,462.529,465.293,467.883,470.634,473.931,476.749,479.224,482.061,483.664,484.799,486.017,486.836,487.522,488.132,488.784,489.805,492.047,493.478,493.965,494.546,495.023,496.556,498.009,498.682,499.79,501.306,503.703,506.103,509.396,512.37,514.22,515.82,517.078,518.102,519.091,519.83,520.465,521.512,522.178,523.021,524.674,528.556,530.253,531.308,532.363,533.073,533.8,535.674,537.541,539.687,542.743,545.596,547.938,550.201,553.042,554.432,556.433,557.426,558.42,559.222,559.939,560.597,561.278,562.045,563.649,564.534,565.559,566.44,567.329,570.542,571.939,573.856,575.551,578.722,581.308,583.563,585.858,588.415,590.426,591.6,592.439,593.324,594.163,594.797,595.374,596.067,596.067,596.067,596.067,596.067,596.067,596.067,596.067,596.067,596.067,596.067,596.067,596.067,596.067,596.067,596.067,598.129,600.352,602.221,603.328,604.847,606.262,607.326,608.268,609.139,611.536,613.951,615.243,616.436,618.326,620.028,621.056,623.077,626.379,628.055,630.125,632.214,634.434,636.549,639.591,641.486,644.575,645.709,646.707,647.707,648.689,649.517,650.678,651.415,652.202,653.853,657.966,659.665,661.393,662.001,662.545,663.93,665.72,669.891,671.018,672.108,673.174,674.632,676.292,677.924,679.328,680.236,681.083,682.301,683.707,684.444,685.155,686.294,688.262,689.202,690.8,692.234,693.052,693.791,695.474,696.837,697.337,697.918,698.84,700.782,703.143,704.796,706.492,708.593,711.896,714.084,716.309,717.5,718.51,719.414,720.951,722.01,722.888,723.915,726.055,726.913,727.493,728.074,729.685,730.759,731.865,733.592,735.821,738.539,741.337,745.998,748.438,750.526,752.904,754.412,755.535,756.599,757.738,758.535,759.233,759.863,761.263,765.69,767.499,769.604,770.807,771.492,773.464,774.946,776.021,777.919,781.078,783.902,786.702,789.455,792.453,794.942,797.126,798.654,799.863,800.818,801.49,802.065,802.68,803.184,803.759,804.602,806.329,808.335,813.018,816.66,818.093,820.433,822.294,825.944,831.782,835.119,838.129,841.766,844.535,846.867,848.857,850.46,851.935,853.013,853.896,854.481,855.007,855.626,856.318,857.048,858.302,859.036,859.684,861.289,862.02,866.082,869.073,870.534,872.542,877.233,880.648,884.037,886.302,888.45,890.482,892.614,893.756,894.896,895.832,896.543,897.205,897.999,900.314,902.33,904.187,905.397,906.175,907.287,908.253,909.42,910.503,912.632,914.492,916.787,918.458,920.161,923.421,925.599,927.947,929.888,930.858,931.763,932.723,933.572,934.503,935.694,936.764,937.924,939.039,939.908,940.989,941.545,942.115,943.3,944.738,946.202,947.911,949.899,952.768,954.995,957.214,959.88,961.759,965.852,967.333,968.797,969.709,970.493,971.189,971.843,973.584,974.504,975.662,977.358,978.327,978.904,979.801,980.61,981.384,982.794,985.055,988.307,991.121,994.937,1002.001,1004.928,1009.108,1010.869,1012.474,1013.641,1014.653,1015.51,1016.243,1016.936,1018.09,1020.308,1022.291,1025.828,1029.643,1031.158,1033.089,1034.932,1036.887,1039.945,1042.509,1045.751,1048.955,1052.028,1055.973,1058.417,1067.561,1069.756,1071.259,1072.353,1073.677,1075.146,1075.926,1076.642,1077.373,1079.017,1080.095,1081.121,1082.325,1083.451,1085.996,1087.833,1089.343,1091.453,1093.937,1096.87,1100.03,1106.45,1109.419,1111.524,1113.777,1116.114,1117.914,1118.987,1119.932,1120.635,1121.324,1122.016,1122.757,1123.536,1124.993,1126.454,1129.071,1131.242,1132.665,1134.762,1137.402,1140.657,1144.208,1147.968,1151.77,1155.242,1158.118,1160.749,1163.237,1165.706],"kpi":{"all_time_peak_average":1.0,"annual_normalized_unserved_energy_total":0.018316,"carbon_emissions_total":1.0,"cost_total":1.0,"daily_one_minus_load_factor_average":1.0,"daily_peak_average":1.0,"discomfort_cold_delta_average":0.790764,"discomfort_cold_delta_maximum":3.437551,"discomfort_cold_delta_minimum":0.0,"discomfort_cold_proportion":0.15377,"discomfort_hot_delta_average":0.237991,"discomfort_hot_delta_maximum":5.059987,"discomfort_hot_delta_minimum":0.0,"discomfort_hot_proportion":0.017627,"discomfort_proportion":0.171398,"electricity_consumption_total":1.0,"monthly_one_minus_load_factor_average":1.0,"one_minus_thermal_resilience_proportion":0.369841,"power_outage_normalized_unserved_energy_total":0.684408,"ramping_average":1.0,"zero_net_energy":1.0},"run":"baseline","steps":719},"baseline_sample":false,"carbon":[0.4025,0.3826,0.3695,0.367,0.374,0.3852,0.3954,0.4112,0.4328,0.4285,0.4576,0.4875,0.4915,0.4876,0.4797,0.4715,0.46,0.4494,0.4389,0.4361,0.4404,0.4471,0.4497,0.4431,0.431,0.3983,0.3831,0.3726,0.371,0.3669,0.3727,0.3815,0.4067,0.4241,0.4621,0.4818,0.4843,0.4828,0.48,0.4738,0.4647,0.459,0.4509,0.4446,0.4466,0.458,0.4586,0.455,0.4681,0.4455,0.4221,0.4006,0.3888,0.3875,0.3949,0.4061,0.4168,0.4094,0.429,0.468,0.5007,0.5185,0.5224,0.5205,0.517,0.5139,0.5097,0.4989,0.4943,0.4983,0.4894,0.4943,0.4825,0.4589,0.413,0.3851,0.4159,0.4486,0.4443,0.4817,0.5151,0.5229,0.5451,0.5432,0.5356,0.5314,0.5271,0.5193,0.5156,0.511,0.5107,0.5161,0.5213,0.5146,0.502,0.4717,0.4391,0.4105,0.3868,0.3956,0.4078,0.4366,0.4654,0.4814,0.5058,0.5082,0.5142,0.5267,0.5363,0.5374,0.5328,0.526,0.5216,0.5175,0.5113,0.5026,0.4951,0.4765,0.4624,0.4618,0.4347,0.4071,0.3921,0.3705,0.3695,0.3723,0.3963,0.4178,0.4454,0.4567,0.4645,0.4861,0.508,0.5154,0.5138,0.5126,0.5056,0.4957,0.4837,0.47,0.4599,0.452,0.4427,0.4223,0.411,0.3863,0.3738,0.3741,0.3852,0.3962,0.4154,0.4162,0.4471,0.4496,0.457,0.4693,0.479,0.4898,0.4885,0.4881,0.482,0.4699,0.4568,0.4392,0.4405,0.4419,0.432,0.4257,0.422,0.3781,0.3629,0.3546,0.3694,0.3803,0.4083,0.4647,0.4958,0.4864,0.4747,0.4667,0.463,0.4656,0.4728,0.4764,0.4727,0.468,0.4674,0.4664,0.4691,0.4709,0.4614,0.4531,0.4395,0.4258,0.405,0.3994,0.4061,0.4235,0.4433,0.4432,0.4603,0.4527,0.4604,0.4691,0.4786,0.4806,0.4715,0.4662,0.4646,0.4612,0.4566,0.4564,0.4643,0.4623,0.4421,0.4098,0.4005,0.3769,0.3463,0.3391,0.3386,0.3375,0.3438,0.3518,0.3569,0.3526,0.3825,0.4152,0.4462,0.4609,0.4704,0.4719,0.4717,0.4711,0.4585,0.4507,0.4521,0.448,0.4334,0.4279,0.4141,0.3964,0.383,0.3768,0.3684,0.3729,0.3787,0.3851,0.3966,0.3851,0.4006,0.4304,0.4545,0.4721,0.4805,0.4829,0.4865,0.4877,0.4882,0.4879,0.4896,0.4825,0.4631,0.4357,0.4309,0.4058,0.3914,0.3897,0.3963,0.4066,0.4258,0.4484,0.4584,0.4444,0.4566,0.4795,0.4853,0.4825,0.4767,0.4716,0.4659,0.4575,0.4515,0.4561,0.4655,0.4737,0.4685,0.4584,0.4601,0.4513,0.423,0.4112,0.4213,0.4395,0.4692,0.5021,0.5067,0.4979,0.5033,0.5202,0.5214,0.5194,0.5164,0.5085,0.5007,0.4927,0.4876,0.4904,0.4946,0.4965,0.4894,0.4829,0.4542,0.4409,0.4092,0.3975,0.3858,0.409,0.4413,0.4734,0.495,0.4785,0.4719,0.4788,0.4821,0.4782,0.4728,0.4713,0.4679,0.4675,0.4625,0.4609,0.4643,0.4625,0.4421,0.4257,0.401,0.3826,0.3652,0.3553,0.3614,0.3867,0.4089,0.4231,0.426,0.4083,0.4236,0.4421,0.4459,0.4454,0.4396,0.4394,0.4335,0.4307,0.4331,0.4344,0.441,0.4455,0.4348,0.415,0.4075,0.3772,0.3739,0.3702,0.3717,0.3788,0.3836,0.386,0.3835,0.3753,0.3914,0.415,0.423,0.4272,0.4238,0.4247,0.4226,0.423,0.4234,0.4277,0.4375,0.4522,0.4554,0.4494,0.4699,0.4636,0.4684,0.4589,0.4732,0.4855,0.4789,0.4768,0.498,0.497,0.498,0.504,0.4996,0.4978,0.494,0.4969,0.4925,0.49,0.4953,0.49,0.5059,0.5096,0.5066,0.5072,0.4997,0.5116,0.5008,0.4922,0.4842,0.4955,0.5066,0.5156,0.5266,0.5235,0.5347,0.5428,0.5414,0.5377,0.5237,0.5128,0.5068,0.497,0.4892,0.4979,0.5083,0.5091,0.4967,0.4817,0.4443,0.4388,0.4372,0.4411,0.4525,0.4759,0.5019,0.512,0.5197,0.5154,0.5226,0.5302,0.5315,0.5295,0.5248,0.5216,0.5196,0.5143,0.5069,0.4931,0.4796,0.4716,0.4583,0.4382,0.4497,0.4196,0.4129,0.4379,0.4687,0.4964,0.5112,0.5131,0.5107,0.5163,0.5228,0.5295,0.5354,0.5401,0.5424,0.5426,0.5412,0.541,0.5415,0.5417,0.5413,0.5378,0.5346,0.5334,0.514,0.5264,0.5217,0.5296,0.5413,0.5521,0.5536,0.5561,0.5483,0.542,0.5397,0.5388,0.5407,0.539,0.5357,0.5338,0.534,0.5344,0.5357,0.5413,0.5449,0.5369,0.5236,0.5002,0.447,0.4253,0.3993,0.3911,0.3865,0.3941,0.4275,0.438,0.4626,0.4592,0.4826,0.4924,0.4948,0.4893,0.4809,0.4778,0.4747,0.4708,0.4643,0.4558,0.454,0.4513,0.4369,0.4235,0.4127,0.4064,0.3774,0.3634,0.3545,0.391,0.4141,0.4023,0.387,0.374,0.3948,0.4243,0.44,0.4543,0.4684,0.4738,0.4748,0.4745,0.4732,0.4667,0.4581,0.4544,0.4411,0.4244,0.4,0.3742,0.3659,0.351,0.3448,0.3389,0.3452,0.3564,0.3613,0.3623,0.3822,0.4039,0.4294,0.4422,0.4495,0.4567,0.4594,0.4494,0.4384,0.4336,0.4372,0.4369,0.4289,0.4231,0.4292,0.4,0.3806,0.3916,0.4096,0.4473,0.4746,0.5027,0.5002,0.4897,0.4909,0.4962,0.4989,0.5006,0.5034,0.5033,0.5037,0.5021,0.4998,0.496,0.4942,0.4957,0.4874,0.4749,0.4333,0.4133,0.3936,0.3909,0.393,0.4066,0.4211,0.4348,0.4457,0.4234,0.4368,0.4599,0.4642,0.4741,0.4782,0.4784,0.4781,0.4765,0.4766,0.4771,0.4823,0.4817,0.4647,0.4416,0.4147,0.3936,0.3846,0.3815,0.3782,0.3873,0.4045,0.4211,0.4227,0.4043,0.4363,0.4719,0.4859,0.4885,0.4911,0.4931,0.4954,0.4974,0.4963,0.495,0.4962,0.4926,0.4706,0.4453,0.4126,0.4005,0.3821,0.3709,0.3773,0.3942,0.4197,0.4484,0.4666,0.4463,0.4606,0.4754,0.4833,0.4874,0.484,0.4774,0.4709,0.4654,0.4609,0.4593,0.4611,0.4625,0.4455,0.4228,0.4063,0.3665,0.3565,0.3518,0.3547,0.365,0.3802,0.3906,0.3844,0.3798,0.4046,0.4259,0.4406,0.4509,0.4588,0.461,0.459,0.4576,0.4565,0.4468,0.4448,0.446,0.4428,0.4476,0.4507,0.4607,0.462,0.4648,0.4593,0.4635,0.4575,0.4475,0.4305,0.395,0.397,0.4176,0.432,0.4482,0.4642,0.4689,0.4698,0.4692,0.4652,0.4658,0.4703,0.4624,0.4486],"day":[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30],"episode_hours":719,"headline":{"cost_pct":-8.1,"discomfort_points":-9.4,"emissions_pct":-3.9,"text":"Cost down 8.1% and emissions down 3.9% at equal or better comfort","tone":"win"},"hour_of_day":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23],"hours":719,"id":"citylearn_challenge_2023_phase_2_local_evaluation","name":"CityLearn 2023 challenge, local evaluation","occupied":{"Building_1":[1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],"Building_2":[1,1,1,1,1,1,1,1,1,1,1,0,1,0,0,1,1,1,0,1,1,1,0,0,0,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1],"Building_3":[1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1]},"outdoor_c":[24.7,24.1,23.9,23.9,23.8,23.9,25.0,26.9,29.3,31.7,33.9,35.9,37.5,38.7,39.3,39.5,39.2,38.1,36.1,32.6,31.2,29.6,28.0,26.8,25.9,25.2,24.9,24.8,24.8,24.7,25.4,27.0,29.4,32.1,34.5,36.6,38.3,39.5,40.2,40.3,39.8,38.7,36.5,32.4,31.3,30.8,29.3,27.8,26.7,26.0,25.5,25.2,25.0,24.9,25.3,26.4,28.4,30.5,32.6,32.2,31.2,31.7,31.8,31.6,31.1,30.1,28.7,26.9,26.3,25.9,25.4,24.9,24.8,24.6,24.5,24.2,23.7,23.4,23.8,24.9,26.7,28.3,29.2,29.6,29.7,29.8,29.6,29.5,29.6,29.8,29.1,27.6,26.0,25.2,24.8,24.4,23.9,23.2,22.8,22.4,22.2,22.2,23.5,25.5,27.8,30.0,32.3,34.1,35.5,36.5,36.9,37.0,36.6,35.7,33.9,29.9,28.6,27.9,27.4,26.6,25.3,24.5,23.8,23.4,23.1,23.2,24.6,26.8,28.8,30.8,32.7,34.2,35.3,36.2,36.8,36.9,36.4,35.4,33.2,29.9,28.9,28.4,27.5,26.7,25.9,25.1,24.5,23.7,22.9,22.9,24.6,26.6,28.8,30.9,32.8,34.4,35.6,36.4,36.8,37.0,36.5,35.0,32.2,29.7,28.9,28.3,27.3,26.0,24.7,23.5,22.6,22.0,21.6,21.4,23.5,26.0,28.5,30.8,32.7,34.3,35.6,36.5,36.7,36.5,36.0,35.1,33.2,30.3,29.0,28.5,27.9,26.5,25.5,24.8,24.2,23.9,23.5,23.3,24.6,26.5,28.8,30.9,32.8,34.4,35.5,36.3,36.5,36.2,35.3,34.0,32.2,29.1,27.8,27.0,26.4,25.8,25.2,24.5,23.9,23.5,23.4,23.4,24.6,26.6,29.4,31.5,33.5,35.1,36.5,37.4,37.8,37.7,37.1,35.9,33.8,31.3,29.4,28.1,27.1,26.5,25.9,25.6,25.4,25.4,25.3,25.2,25.7,27.3,29.3,31.0,33.0,35.2,36.6,37.3,37.4,37.0,36.3,35.2,33.4,31.0,29.2,28.0,27.0,26.2,25.7,25.4,25.3,25.3,25.2,25.0,25.7,27.5,29.4,31.1,32.8,34.2,35.4,36.2,36.8,37.0,36.8,35.9,34.1,31.0,29.6,28.4,27.4,26.3,25.3,24.6,24.4,24.1,24.1,24.1,25.3,27.2,28.8,30.3,31.8,33.1,34.3,35.4,36.3,36.8,36.7,36.0,34.2,31.5,30.9,29.7,28.1,26.9,26.0,24.9,23.9,23.1,22.6,22.4,24.4,26.8,29.3,31.6,33.3,34.5,35.2,35.6,35.6,35.4,35.0,34.2,32.9,30.2,28.8,28.1,27.4,26.6,25.7,24.9,24.2,23.8,23.6,23.6,24.9,27.1,29.4,31.6,33.5,35.0,36.0,36.6,36.8,36.6,36.2,35.3,33.8,31.8,29.9,28.5,27.5,26.7,26.0,25.5,25.2,24.9,24.5,24.2,24.9,26.8,29.0,31.0,32.8,34.3,35.6,36.4,36.8,36.7,36.0,34.9,33.3,31.3,29.7,28.6,27.7,26.8,26.1,25.4,25.1,24.7,24.3,23.9,24.7,26.8,29.3,31.5,33.4,35.0,36.2,36.8,36.8,36.2,34.8,33.4,32.0,30.6,29.4,28.3,27.3,26.4,25.7,25.2,24.8,24.5,24.2,24.0,24.7,26.2,28.7,31.0,32.9,34.3,35.3,35.4,35.2,34.9,33.3,30.9,28.5,26.8,26.1,25.7,25.4,25.0,24.6,24.3,24.2,24.0,23.8,23.7,24.0,24.7,25.7,26.7,27.3,27.7,28.2,28.6,28.7,28.3,27.7,26.8,25.7,24.5,23.8,23.7,23.8,24.0,24.2,24.3,24.1,23.9,23.8,23.7,23.9,24.5,25.4,26.3,27.3,28.0,28.4,28.4,28.0,27.7,27.4,26.8,26.0,25.0,24.5,24.4,24.2,24.1,23.9,23.8,23.6,23.5,23.4,23.3,24.5,25.9,28.1,30.7,32.5,33.9,35.0,35.7,35.9,35.8,35.2,34.2,32.5,29.4,28.2,27.3,26.4,25.6,25.0,24.6,24.2,23.8,23.3,22.9,24.7,27.0,29.6,32.1,34.3,36.2,37.5,38.4,38.7,38.6,37.7,36.3,34.1,31.8,30.1,29.0,27.9,26.9,26.0,25.3,24.7,24.2,23.9,23.8,25.1,27.2,29.6,32.0,34.2,35.9,37.1,37.8,37.9,37.3,36.2,34.5,32.7,30.6,29.0,27.9,26.8,26.0,25.5,25.2,25.0,24.9,24.7,24.6,25.5,27.4,29.3,31.2,32.8,34.1,35.8,36.8,37.0,36.6,35.3,33.8,32.0,30.0,28.7,27.7,26.8,26.0,25.6,25.5,25.4,25.3,25.2,25.1,25.6,26.6,27.8,29.2,30.8,32.1,33.4,34.0,34.0,33.6,32.9,32.1,31.0,29.2,28.0,27.2,26.5,25.9,25.5,25.2,25.0,24.8,24.5,24.4,25.2,26.3,28.0,29.9,31.9,33.6,34.7,35.3,35.5,35.4,34.9,34.1,32.6,30.5,29.5,28.4,27.4,26.5,25.8,25.1,24.5,23.9,23.8,23.8,25.0,27.1,29.4,31.9,34.1,35.8,37.0,37.8,38.3,38.3,38.0,37.0,35.2,32.1,30.4,29.0,28.0,27.1,26.4,25.6,25.0,24.4,23.9,23.9,25.5,27.6,30.0,32.5,34.7,36.4,37.7,38.6,39.0,38.9,38.1,36.8,34.8,32.2,30.4,29.1,28.0,27.0,26.2,25.7,25.4,25.2,24.9,24.7,25.9,28.1,30.4,32.6,34.6,36.3,37.6,38.4,38.7,38.5,37.6,36.0,33.8,31.5,29.8,28.6,27.5,26.7,26.1,25.7,25.6,25.4,25.2,25.1,26.1,28.0,30.2,32.6,34.8,36.7,38.1,39.0,39.4,39.1,38.1,36.6,34.5,32.0,29.9,28.5,27.3],"price":[0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289],"setpoint_c":{"Building_1":[23.22,22.22,22.22,22.22,22.22,22.22,22.22,22.33,22.78,23.33,24.44,24.44,24.44,24.44,24.44,24.44,23.56,25.56,26.5,24.44,21.67,24.44,22.83,20.72,20.56,21.67,22.22,22.22,22.22,22.22,22.22,22.33,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.61,25.0,24.5,24.44,24.44,24.44,22.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,22.44,22.78,24.44,24.44,24.44,24.39,23.56,22.22,22.56,24.44,24.44,24.44,22.22,24.44,24.44,23.22,23.56,23.83,24.11,24.44,24.78,25.06,23.33,23.89,23.89,25.67,24.44,24.44,25.83,25.0,25.83,24.44,24.44,24.44,24.44,24.44,24.44,24.44,22.22,23.22,22.22,22.22,22.22,22.22,22.22,22.22,22.33,22.78,23.33,23.89,24.44,24.44,24.44,24.44,24.44,24.39,24.39,24.39,24.39,24.39,24.33,24.33,24.33,24.33,24.44,22.22,22.22,22.22,22.22,22.22,22.22,22.22,22.78,23.89,24.44,24.44,25.22,25.0,27.22,27.22,27.22,26.67,25.67,25.78,24.44,24.44,24.44,23.22,22.22,22.22,22.22,22.22,22.22,22.22,22.33,22.78,23.33,23.89,24.44,24.44,24.44,24.44,25.56,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.11,27.0,26.89,26.78,26.67,26.56,26.39,26.28,26.17,26.06,25.94,25.83,25.72,25.61,25.5,25.39,25.28,25.11,25.0,24.89,24.78,24.67,24.56,22.78,23.22,22.22,22.22,22.22,22.22,22.22,22.22,22.33,22.78,24.44,24.44,24.44,24.44,24.44,24.44,24.56,26.28,24.17,24.28,24.44,24.44,25.78,24.44,24.44,23.22,22.22,22.22,22.22,22.22,22.22,22.22,22.33,22.22,23.33,23.89,24.44,24.44,24.44,23.61,23.33,24.17,24.44,24.44,24.44,24.44,24.44,24.44,22.78,23.22,22.22,22.22,22.22,22.22,22.22,22.22,22.33,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,22.22,23.28,22.22,22.22,22.22,22.22,22.22,22.22,22.28,22.22,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,23.28,22.22,22.22,22.22,22.22,22.22,22.22,22.28,22.78,24.44,24.44,24.44,25.67,26.67,26.67,26.67,26.67,26.67,25.33,24.44,24.44,24.44,24.44,24.44,23.28,22.22,22.22,22.22,22.22,22.22,22.22,22.28,22.78,24.44,24.44,24.44,24.44,25.33,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,23.28,22.22,22.22,22.22,22.22,22.22,22.22,22.28,22.78,24.44,24.44,24.44,24.44,25.0,25.56,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,25.56,25.0,26.67,25.56,23.5,23.33,24.28,24.44,25.33,26.67,24.78,24.44,24.44,23.28,22.22,22.22,22.22,22.22,22.22,22.22,22.28,22.78,24.44,24.44,24.44,24.5,25.67,24.44,24.44,24.44,24.22,23.33,23.56,24.44,24.44,24.44,24.44,23.28,22.22,22.22,22.22,22.22,22.22,22.22,22.28,22.78,24.44,24.44,24.44,24.44,25.06,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,23.28,22.22,22.22,22.22,22.22,22.22,22.22,22.28,22.22,24.44,24.44,24.44,24.44,24.44,24.17,23.33,23.61,24.44,24.44,24.44,24.44,24.44,24.44,24.44,23.28,22.22,22.22,22.22,22.22,22.22,22.22,22.28,22.78,24.44,24.44,24.44,24.44,24.78,25.0,24.78,23.33,23.78,24.44,24.44,24.44,24.44,24.44,24.44,23.28,22.22,22.22,22.22,22.22,22.22,22.22,22.28,22.78,24.44,24.44,24.44,24.44,25.11,24.94,23.33,23.72,24.44,24.44,24.44,24.44,24.44,24.44,24.44,23.39,24.44,24.44,24.44,24.44,24.44,24.44,23.06,22.78,24.17,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.33,23.89,24.0,24.44,24.44,22.22,22.22,23.28,22.22,23.67,23.89,22.44,22.22,22.22,22.28,24.44,24.44,24.44,24.44,24.44,25.44,26.67,24.22,23.33,24.06,24.44,24.28,23.89,24.06,24.44,24.44,23.28,22.39,23.33,23.17,22.22,22.22,22.22,22.28,22.78,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,25.44,26.39,24.44,24.44,24.44,24.44,24.44,23.33,22.22,22.22,22.22,22.22,22.22,22.22,22.22,22.78,24.44,24.44,24.44,24.44,24.44,24.44,24.11,23.89,24.44,25.17,24.44,24.44,24.44,24.44,22.78,23.33,22.22,22.22,22.22,22.22,22.22,22.22,22.22,22.78,24.44,24.44,24.44,26.39,26.67,25.0,24.44,24.44,26.67,26.0,23.33,24.44,24.44,24.44,22.22,23.33,22.22,22.22,22.22,22.22,22.22,22.22,22.22,22.22,24.44,24.44,22.22,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,23.33,22.22,22.22,22.22,22.22,22.22,22.22,22.22,22.78,24.44,22.78,24.44,22.22,24.44,24.44,24.44,24.44,25.94,26.44,24.44,24.44,22.22,21.11,21.67,23.33,23.72,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,25.06,24.44,24.44,24.44,24.44],"Building_2":[24.44,24.44,24.44,24.44,24.44,24.44,24.78,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,23.39,22.78,23.94,24.44,23.44,22.78,23.78,24.44,24.44,24.78,25.0,25.0,25.0,25.0,25.0,24.89,23.89,24.0,25.0,25.0,25.0,25.0,25.0,25.0,24.94,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.78,25.0,25.0,25.0,25.0,25.0,24.61,23.33,23.72,25.0,25.0,25.0,25.0,25.0,24.67,23.61,23.33,24.0,24.44,24.28,22.78,22.94,24.44,24.44,24.78,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.94,24.44,23.61,22.78,23.61,24.44,24.44,24.44,24.44,24.94,25.0,25.0,25.0,23.33,23.33,23.44,23.5,23.61,23.67,23.78,23.89,23.94,24.06,24.11,24.22,24.33,24.39,23.33,23.94,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.11,23.89,24.78,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,23.33,23.33,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.44,23.22,24.89,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.56,23.39,22.22,21.67,23.28,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.17,23.33,24.17,25.0,25.0,25.0,25.0,25.0,25.0,24.0,23.89,24.39,23.89,24.44,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.61,23.89,22.78,23.56,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.83,23.44,24.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,23.33,23.33,25.0,25.0,25.0,25.0,25.0,25.0,24.39,24.44,23.67,23.33,24.5,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.78,23.33,23.56,25.0,25.0,25.0,25.0,25.0,25.0,25.0,23.61,23.33,24.72,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.72,23.89,24.17,24.33,23.89,24.17,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,23.67,23.33,24.67,25.0,25.0,25.0,25.0,25.0,25.0,25.0,23.89,23.33,24.44,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,23.5,23.33,24.83,25.0,25.0,25.0,25.0,24.17,23.89,24.72,25.0,25.0,25.0,24.72,23.89,24.17,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.33,22.78,23.44,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.44,23.33,23.89,25.0,25.0,25.0,25.0,25.0,25.0,25.0,23.56,23.33,24.78,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.44,23.17,22.22,23.11,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,23.78,24.17,25.0,25.0,25.0,25.0,25.0,25.0,25.0,23.39,23.33,24.94,25.0,25.0,25.0,25.0,25.0,23.83,23.33,24.5,24.28,23.33,24.06,22.94,22.78,24.78,25.0,25.0,25.0,25.0,25.0,23.83,22.78,23.94,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.5,23.33,23.83,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,23.39,22.78,24.39,25.0,25.0,25.0,25.0,24.89,23.89,24.0,25.0,25.0,25.0,25.0,23.39,23.33,24.94,25.0,25.0,25.0,25.0,24.06,24.17,24.78,22.78,22.78,24.94,25.0,25.0,25.0,25.0,24.17,24.11,24.44,24.83,25.0,24.22,23.89,24.67,23.44,23.22,22.78,24.44,25.0,25.0,25.0,25.0,24.56,24.44,24.67,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.83,24.44,24.22,24.44,24.5,25.0,25.0,25.0,25.0,25.0,24.72,25.0,25.0,25.0,25.0,25.0,24.72,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.83,24.61,24.44,24.22,24.44,24.78,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.78,24.44,24.67,25.0,25.0,24.0,23.89,24.28,23.89,24.56,25.0,25.0,25.0,25.0,25.0,25.0,24.06,24.61,25.0,25.0,25.0,24.56,23.89,24.33,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.17,23.89,24.72,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.67,25.0,25.0,25.0,25.11],"Building_3":[24.44,24.44,24.44,24.44,24.44,24.44,24.11,23.33,23.33,23.33,23.33,23.33,23.33,23.33,23.33,23.33,23.33,24.44,24.44,24.44,24.44,24.44,24.44,23.94,23.89,23.89,23.89,24.39,24.44,23.94,24.17,24.44,24.11,23.89,23.89,23.89,23.89,23.89,23.89,23.39,23.33,24.44,24.44,23.33,23.17,23.11,24.06,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,23.94,23.89,23.89,23.89,23.89,23.89,23.89,23.33,23.33,23.61,23.89,23.33,23.33,23.33,23.33,23.56,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,23.78,23.33,23.39,23.72,23.89,23.89,23.89,23.89,23.89,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.17,23.33,23.33,23.33,23.33,23.33,23.33,23.33,23.33,23.33,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,23.89,23.89,23.89,23.72,23.33,23.33,23.33,23.33,23.56,23.89,23.89,23.94,23.94,24.0,24.0,24.0,24.06,24.06,24.11,24.11,24.17,24.17,24.17,24.22,24.22,24.28,24.28,24.33,24.33,24.33,24.39,24.39,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.39,23.89,23.39,23.78,23.33,23.33,23.33,23.33,23.5,23.56,22.78,22.78,22.78,23.67,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.0,23.89,23.89,23.89,23.67,24.44,23.89,23.33,23.33,23.33,23.78,24.44,24.44,24.17,23.89,23.89,23.89,23.89,24.17,24.44,23.89,23.89,23.89,23.89,23.89,23.89,23.89,23.89,23.89,24.44,24.44,24.44,24.44,23.61,23.39,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.0,23.89,23.89,23.89,23.89,23.89,23.89,23.89,23.89,24.28,23.89,23.89,23.89,23.89,23.89,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.17,23.89,24.44,24.44,24.44,24.44,24.11,23.89,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.0,23.89,24.28,23.89,23.89,23.89,23.89,23.89,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,23.94,23.89,23.89,23.89,23.89,23.89,23.89,23.89,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.22,23.89,23.89,23.89,23.89,23.89,23.89,23.89,23.89,23.89,24.44,24.11,23.67,23.33,23.33,23.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.06,23.89,23.89,23.89,23.89,23.89,23.89,23.89,23.89,24.11,23.89,23.89,23.89,23.89,23.89,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,23.94,23.89,24.33,24.44,24.44,24.44,24.44,24.44,24.39,23.89,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.39,23.89,23.89,23.89,23.89,23.89,23.89,23.89,23.89,23.89,24.17,23.89,23.89,23.89,23.89,23.89,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,23.94,23.89,23.89,23.89,23.89,23.89,23.89,23.89,23.89,24.44,24.44,24.44,24.44,24.44,24.44,23.94,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.06,24.44,24.06,23.89,23.89,23.89,24.28,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.11,23.89,23.89,23.89,23.89,24.33,23.89,23.89,23.89,23.89,23.89,24.0,23.89,23.89,23.89,23.89,23.89,23.89,24.17,24.44,24.44,24.11,23.89,23.89,23.89,23.89,23.89,23.89,23.89,23.72,23.33,23.56,23.89,23.89,23.89,24.0,23.89,23.89,23.89,24.33,24.44,24.44,24.44,24.28,23.89,23.89,23.89,23.89,23.89,23.89,23.89,23.89,23.89,24.44,24.0,23.89,23.89,23.89,23.89,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.0,23.89,23.89,23.89,23.89,23.89,23.89,24.44,24.44,24.22,23.89,23.89,23.89,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.17,23.89,23.89,23.89,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.28,23.89,23.89,23.89,23.89,24.44,24.44,24.44,24.44,24.44,24.44]}}],"schema":2} +{"buildings":[{"id":"Building_1","name":"Building 1"},{"id":"Building_2","name":"Building 2"},{"id":"Building_3","name":"Building 3"}],"comfort_band_k":2.0,"dataset":"citylearn_challenge_2023_phase_2_local_evaluation","kpis":[{"id":"cost_total","name":"Electricity cost","unit":"ratio to no control"},{"id":"carbon_emissions_total","name":"Carbon emissions","unit":"ratio to no control"},{"id":"electricity_consumption_total","name":"Grid import","unit":"ratio to no control"},{"id":"discomfort_proportion","name":"Discomfort","unit":"share of occupied hours"},{"id":"discomfort_hot_proportion","name":"Too warm","unit":"share of occupied hours"},{"id":"discomfort_cold_proportion","name":"Too cool","unit":"share of occupied hours"},{"id":"ramping_average","name":"Ramping","unit":"ratio to no control"},{"id":"daily_peak_average","name":"Daily peak","unit":"ratio to no control"},{"id":"all_time_peak_average","name":"All-time peak","unit":"ratio to no control"},{"id":"daily_one_minus_load_factor_average","name":"1 - daily load factor","unit":"ratio to no control"},{"id":"one_minus_thermal_resilience_proportion","name":"1 - thermal resilience","unit":"share of outage hours"},{"id":"power_outage_normalized_unserved_energy_total","name":"Unserved energy in outages","unit":"share"}],"sample":false,"scenarios":[{"agent":{"actions":{"Building_1":{"battery":[0.0,0.0,0.011,0.02,0.021,0.0,0.0,0.098,0.0,0.15,0.089,0.15,0.15,0.15,0.095,-0.242,-0.255,-0.286,0.0,-0.011,-0.011,-0.012,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.061,0.017,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.0,0.029,0.071,0.185,0.191,0.0,0.015,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.0,0.0,0.07,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.016,0.0,-0.092,-0.521,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.07,0.016,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.006,-0.249,-0.263,-0.294,-0.033,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,-0.5,0.15,0.15,-0.5,0.15,0.103,0.077,0.085,0.15,0.093,0.0,-0.5,-0.148,-0.017,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.044,0.011,0.0,0.0,-0.5,0.15,0.15,0.15,-0.228,-0.197,-0.311,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.128,0.0,0.0,0.028,0.0,0.0,0.0,0.0,0.0,-0.152,-0.242,-0.391,-0.012,-0.012,-0.013,-0.015,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.067,0.055,0.038,0.0,-0.126,0.0,-0.014,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.0,0.0,0.15,0.044,0.011,0.0,0.0,-0.5,-0.111,-0.118,-0.131,0.0,0.0,0.0,-0.014,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.0,0.023,0.0,0.0,0.0,0.0,0.0,0.143,-0.238,-0.252,-0.282,0.0,0.0,0.0,0.0,-0.032,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.0,0.0,0.104,0.079,0.018,0.0,0.0,0.0,-0.247,-0.261,-0.293,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.13,0.028,0.0,0.0,0.0,0.009,0.0,0.0,0.0,-0.066,-0.189,-0.302,0.0,-0.254,-0.028,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.043,0.01,0.0,-0.404,0.042,0.04,0.027,0.15,0.15,0.037,-0.245,-0.26,-0.291,0.0,-0.011,-0.011,-0.013,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.0,0.0,0.0,0.0,0.0,0.0,0.127,0.063,-0.244,-0.258,-0.288,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.131,0.028,0.0,0.0,-0.163,0.15,0.034,0.0,0.0,0.0,0.0,-0.245,-0.173,-0.184,-0.205,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.139,0.031,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.166,-0.296,-0.331,0.0,0.0,0.0,-0.038,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.0,0.0,0.093,0.078,0.0,0.0,0.026,0.0,-0.247,-0.261,-0.292,-0.033,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.043,0.01,-0.338,0.15,0.15,0.046,0.03,0.0,0.0,0.0,0.0,-0.246,-0.26,-0.292,0.0,-0.011,-0.124,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.034,0.0,0.0,-0.259,0.0,0.0,0.0,-0.03,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.0,0.0,0.04,0.0,0.012,0.0,0.0,0.121,-0.24,-0.253,-0.273,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.122,0.026,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.247,-0.26,-0.292,0.0,0.0,0.0,0.0,-0.033,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.042,0.011,0.0,0.0,0.0,0.0,0.0,0.0,-0.248,-0.262,-0.294,-0.033,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.0,0.0,0.043,0.01,0.0,0.0,0.0,0.0,-0.248,-0.262,-0.294,0.0,-0.033,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.042,0.011,0.0,0.0,0.0,0.0,0.0,0.0,-0.248,-0.262,-0.294,0.0,-0.011,-0.011,-0.013,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],"cooling":[0.068,0.081,0.079,0.072,0.063,0.072,0.072,0.085,0.293,0.199,0.146,0.306,0.307,0.368,0.461,0.647,0.781,0.477,0.233,0.306,0.642,0.216,0.214,0.41,0.373,0.188,0.096,0.0,0.087,0.094,0.106,0.12,0.0,0.08,0.12,0.277,0.456,0.582,0.652,0.537,0.5,0.55,0.439,0.25,0.411,0.558,0.706,0.433,0.25,0.153,0.242,0.053,0.179,0.022,0.165,0.185,0.251,0.103,0.136,0.073,0.078,0.108,0.151,0.307,0.56,0.49,0.162,0.1,0.0,0.22,0.0,0.0,0.081,0.072,0.052,0.029,0.014,0.006,0.0,0.079,0.072,0.092,0.009,0.103,0.12,0.046,0.097,0.078,0.178,0.274,0.239,0.187,0.142,0.112,0.091,0.206,0.117,0.135,0.119,0.095,0.109,0.074,0.103,0.155,0.152,0.0,0.142,0.152,0.2,0.2,0.376,0.469,0.534,0.585,0.477,0.313,0.235,0.193,0.013,0.134,0.102,0.074,0.183,0.185,0.142,0.121,0.169,0.17,0.21,0.402,0.233,0.1,0.065,0.209,0.295,0.127,0.143,0.31,0.258,0.29,0.3,0.337,0.265,0.188,0.227,0.28,0.2,0.01,0.121,0.103,0.15,0.149,0.25,0.204,0.203,0.275,0.321,0.392,0.469,0.38,0.184,0.195,0.149,0.11,0.148,0.101,0.071,0.0,0.033,0.019,0.008,0.0,0.0,0.069,0.017,0.012,0.101,0.081,0.112,0.153,0.202,0.261,0.317,0.352,0.371,0.388,0.313,0.224,0.176,0.145,0.111,0.079,0.081,0.059,0.048,0.041,0.035,0.024,0.049,0.07,0.203,0.202,0.242,0.307,0.379,0.461,0.535,0.627,0.593,0.568,0.445,0.165,0.105,0.089,0.187,0.286,0.2,0.2,0.044,0.155,0.129,0.122,0.0,0.148,0.18,0.117,0.18,0.25,0.352,0.46,0.408,0.451,0.267,0.561,0.554,0.388,0.135,0.0,0.16,0.161,0.225,0.296,0.103,0.055,0.172,0.154,0.15,0.189,0.268,0.23,0.238,0.112,0.194,0.277,0.689,0.798,0.625,0.521,0.407,0.155,0.087,0.058,0.155,0.256,0.199,0.226,0.063,0.178,0.153,0.139,0.14,0.168,0.052,0.112,0.185,0.271,0.342,0.423,0.503,0.599,0.694,0.669,0.525,0.367,0.315,0.079,0.024,0.309,0.18,0.196,0.034,0.022,0.13,0.119,0.125,0.147,0.194,0.066,0.113,0.162,0.233,0.328,0.3,0.401,0.468,0.475,0.348,0.234,0.223,0.13,0.211,0.015,0.213,0.274,0.2,0.142,0.1,0.1,0.125,0.19,0.027,0.0,0.153,0.211,0.189,0.037,0.193,0.248,0.3,0.32,0.43,0.45,0.355,0.272,0.209,0.163,0.208,0.275,0.219,0.167,0.18,0.132,0.127,0.156,0.23,0.121,0.172,0.236,0.331,0.32,0.519,0.604,0.603,0.616,0.5,0.381,0.293,0.329,0.207,0.153,0.202,0.28,0.239,0.189,0.154,0.135,0.138,0.251,0.208,0.115,0.186,0.236,0.5,0.311,0.253,0.074,0.146,0.234,0.132,0.055,0.209,0.0,0.0,0.074,0.058,0.045,0.035,0.027,0.02,0.008,0.018,0.033,0.066,0.103,0.159,0.406,0.706,0.459,0.53,0.909,0.972,0.66,0.444,0.243,0.089,0.176,0.233,0.193,0.234,0.305,0.249,0.195,0.161,0.227,0.018,0.162,0.163,0.086,0.142,0.205,0.278,0.261,0.352,0.482,0.471,0.283,0.262,0.243,0.026,0.107,0.0,0.103,0.152,0.228,0.196,0.163,0.13,0.115,0.0,0.106,0.087,0.0,0.0,0.034,0.085,0.069,0.069,0.1,0.13,0.141,0.118,0.101,0.084,0.075,0.066,0.06,0.115,0.203,0.177,0.14,0.149,0.131,0.11,0.161,0.165,0.013,0.025,0.06,0.08,0.106,0.143,0.236,0.24,0.151,0.11,0.097,0.088,0.084,0.074,0.134,0.135,0.186,0.017,0.134,0.115,0.09,0.101,0.116,0.124,0.068,0.124,0.209,0.296,0.35,0.395,0.48,0.708,0.687,0.478,0.145,0.073,0.041,0.154,0.127,0.179,0.257,0.213,0.166,0.132,0.177,0.148,0.166,0.19,0.119,0.196,0.409,0.43,0.405,0.493,0.831,0.895,0.703,0.519,0.387,0.308,0.25,0.2,0.162,0.205,0.105,0.079,0.069,0.063,0.0,0.04,0.209,0.184,0.175,0.215,0.247,0.535,0.593,0.689,0.793,0.707,0.637,0.555,0.42,0.274,0.21,0.249,0.185,0.026,0.199,0.085,0.063,0.13,0.174,0.029,0.208,0.085,0.145,0.221,0.282,0.468,0.448,0.29,0.54,0.851,0.723,0.466,0.346,0.314,0.244,0.243,0.145,0.188,0.259,0.003,0.0,0.182,0.077,0.08,0.054,0.024,0.0,0.007,0.184,0.254,0.332,0.264,0.283,0.277,0.134,0.0,0.306,0.276,0.268,0.188,0.0,0.186,0.27,0.233,0.193,0.204,0.181,0.016,0.179,0.17,0.093,0.151,0.211,0.144,0.225,0.29,0.403,0.459,0.392,0.177,0.307,0.288,0.233,0.19,0.282,0.209,0.233,0.21,0.166,0.141,0.128,0.138,0.18,0.189,0.122,0.186,0.256,0.141,0.169,0.401,0.707,0.825,0.44,0.199,0.598,0.404,0.174,0.094,0.38,0.232,0.25,0.224,0.181,0.149,0.149,0.238,0.237,0.276,0.134,0.199,0.584,0.431,0.452,0.661,0.708,0.734,0.729,0.592,0.403,0.219,0.186,0.087,0.03,0.225,0.31,0.33,0.228,0.179,0.159,0.203,0.074,0.093,0.065,0.386,0.237,0.654,0.491,0.525,0.627,0.691,0.313,0.154,0.426,0.383,0.4,0.443,0.243,0.005,0.0,0.0,0.0,0.053,0.058,0.073,0.179,0.215,0.405,0.532,0.538,0.607,0.706,0.809,0.855,0.832,0.778,0.518,0.425,0.341,0.283,0.215],"dhw":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0]},"Building_2":{"battery":[0.0,0.0,0.011,0.02,0.021,0.0,0.0,0.098,0.0,0.15,0.15,0.15,0.15,0.15,0.048,-0.245,-0.255,-0.294,0.0,-0.011,-0.011,-0.013,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.0,0.0,0.0,-0.206,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.111,-0.107,-0.18,-0.456,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.093,0.02,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.007,-0.249,-0.263,-0.294,-0.033,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,-0.074,0.108,0.024,-0.129,0.12,0.026,0.0,0.0,0.0,-0.205,-0.231,-0.259,-0.126,-0.013,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.044,0.011,0.0,0.0,-0.116,0.104,0.023,0.0,-0.247,-0.255,-0.255,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.092,0.0,0.0,0.0,0.0,0.021,0.0,0.0,0.0,-0.231,-0.238,-0.252,-0.025,-0.027,-0.028,-0.033,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.0,0.0,0.15,0.044,0.011,0.0,0.0,-0.284,-0.164,-0.174,-0.195,0.0,0.0,0.0,-0.021,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.043,-0.245,-0.259,-0.291,0.0,0.0,0.0,0.0,-0.033,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.043,-0.245,-0.176,-0.248,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.136,0.029,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.246,-0.255,-0.296,0.0,-0.033,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.042,0.01,0.0,-0.5,0.15,0.15,0.15,0.075,0.016,0.0,-0.247,-0.261,-0.293,0.0,-0.011,-0.011,-0.014,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.0,0.0,0.0,0.0,0.0,0.0,0.127,0.064,-0.244,-0.258,-0.202,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.054,0.012,0.0,0.0,-0.5,0.15,0.15,0.15,0.0,0.0,0.0,-0.5,-0.077,-0.082,-0.091,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.035,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.137,-0.194,-0.098,0.0,0.0,0.0,-0.124,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.148,0.0,0.0,0.0,0.0,0.0,0.0,0.034,0.0,-0.246,-0.26,-0.206,-0.108,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.149,0.034,0.0,-0.089,0.086,0.019,0.0,0.0,0.0,0.0,0.0,0.0,-0.247,-0.218,-0.274,-0.021,-0.023,-0.15,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.0,0.0,0.0,-0.231,0.0,0.0,0.0,-0.027,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.043,-0.245,-0.259,-0.154,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.127,0.027,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.246,-0.254,-0.273,0.0,0.0,0.0,0.0,-0.055,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.039,0.01,0.0,0.0,0.0,0.0,0.0,0.0,-0.248,-0.262,-0.294,-0.033,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.0,0.0,-0.227,0.15,0.128,0.027,0.0,0.0,-0.247,-0.26,-0.292,0.0,-0.033,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.042,0.011,0.0,0.0,0.0,0.0,0.0,0.0,-0.248,-0.262,-0.294,0.0,-0.011,-0.011,-0.013,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],"cooling":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.497,0.159,0.233,0.3,0.401,0.474,0.604,0.696,0.671,0.622,0.462,0.276,0.346,0.362,0.32,0.06,0.011,0.089,0.129,0.006,0.0,0.0,0.0,0.023,0.453,0.189,0.278,0.428,0.47,0.728,0.838,0.984,0.64,0.601,0.479,0.256,0.203,0.192,0.199,0.131,0.083,0.057,0.04,0.028,0.02,0.014,0.007,0.026,0.074,0.121,0.181,0.255,0.271,0.448,0.403,0.167,0.204,0.203,0.152,0.099,0.107,0.178,0.15,0.035,0.007,0.02,0.103,0.073,0.0,0.0,0.0,0.0,0.0,0.027,0.059,0.069,0.091,0.111,0.164,0.176,0.235,0.236,0.167,0.104,0.068,0.055,0.077,0.118,0.147,0.02,0.0,0.0,0.0,0.0,0.0,0.215,0.099,0.144,0.392,0.456,0.451,0.487,0.575,0.586,0.585,0.547,0.433,0.23,0.185,0.145,0.113,0.082,0.145,0.041,0.0,0.0,0.0,0.0,0.0,0.065,0.137,0.171,0.21,0.261,0.458,0.543,0.448,0.452,0.486,0.469,0.366,0.204,0.156,0.13,0.097,0.227,0.167,0.0,0.0,0.0,0.0,0.0,0.134,0.064,0.19,0.416,0.169,0.255,0.342,0.425,0.541,0.535,0.527,0.457,0.31,0.193,0.169,0.14,0.148,0.214,0.256,0.222,0.0,0.0,0.0,0.0,0.0,0.104,0.085,0.137,0.211,0.28,0.346,0.408,0.495,0.485,0.493,0.452,0.35,0.22,0.169,0.15,0.129,0.082,0.053,0.036,0.022,0.013,0.007,0.002,0.04,0.104,0.181,0.224,0.267,0.328,0.384,0.448,0.541,0.521,0.498,0.442,0.343,0.201,0.154,0.123,0.188,0.067,0.048,0.032,0.02,0.012,0.008,0.004,0.035,0.093,0.203,0.276,0.346,0.419,0.502,0.719,0.698,0.695,0.685,0.622,0.476,0.313,0.217,0.152,0.205,0.247,0.076,0.009,0.019,0.021,0.021,0.02,0.046,0.219,0.567,0.303,0.452,0.446,0.441,0.525,0.611,0.588,0.569,0.522,0.415,0.267,0.195,0.143,0.147,0.182,0.251,0.093,0.0,0.0,0.005,0.008,0.051,0.121,0.208,0.423,0.295,0.362,0.421,0.491,0.596,0.604,0.605,0.639,0.474,0.282,0.218,0.189,0.297,0.135,0.0,0.017,0.021,0.016,0.013,0.01,0.049,0.111,0.168,0.194,0.221,0.277,0.335,0.402,0.81,0.805,0.384,0.452,0.41,0.277,0.259,0.226,0.248,0.149,0.181,0.16,0.1,0.0,0.0,0.0,0.047,0.119,0.452,0.243,0.293,0.347,0.399,0.446,0.525,0.527,0.529,0.758,0.415,0.293,0.196,0.161,0.127,0.115,0.219,0.132,0.0,0.0,0.002,0.004,0.062,0.139,0.288,0.509,0.578,0.316,0.379,0.479,0.593,0.602,0.608,0.574,0.48,0.319,0.278,0.317,0.184,0.117,0.138,0.08,0.006,0.015,0.013,0.012,0.059,0.129,0.191,0.247,0.3,0.379,0.459,0.536,0.879,0.917,0.567,0.511,0.447,0.308,0.218,0.165,0.121,0.091,0.169,0.187,0.02,0.005,0.037,0.012,0.045,0.156,0.173,0.213,0.287,0.364,0.444,0.503,0.587,0.564,0.515,0.495,0.363,0.268,0.2,0.164,0.118,0.087,0.2,0.173,0.0,0.002,0.008,0.01,0.333,0.17,0.269,0.379,0.066,0.311,0.635,0.476,0.692,0.62,0.403,0.328,0.227,0.154,0.118,0.095,0.069,0.109,0.226,0.089,0.0,0.0,0.0,0.0,0.008,0.064,0.046,0.07,0.082,0.1,0.127,0.174,0.225,0.153,0.134,0.095,0.064,0.039,0.035,0.028,0.018,0.052,0.137,0.045,0.0,0.0,0.0,0.0,0.001,0.017,0.031,0.158,0.227,0.059,0.084,0.116,0.146,0.149,0.148,0.118,0.136,0.074,0.059,0.048,0.079,0.16,0.21,0.047,0.0,0.0,0.0,0.0,0.011,0.072,0.121,0.177,0.231,0.303,0.367,0.426,0.521,0.729,0.595,0.349,0.526,0.207,0.168,0.14,0.106,0.077,0.197,0.158,0.0,0.0,0.0,0.0,0.045,0.428,0.357,0.505,0.299,0.433,0.7,0.6,0.948,0.972,0.472,0.507,0.455,0.31,0.226,0.189,0.282,0.343,0.083,0.003,0.013,0.018,0.013,0.011,0.057,0.206,0.29,0.445,0.507,0.768,0.71,0.515,0.667,0.706,0.693,0.605,0.482,0.321,0.232,0.179,0.128,0.26,0.28,0.012,0.007,0.013,0.017,0.017,0.066,0.44,0.364,0.238,0.621,0.38,0.499,0.859,0.904,0.565,0.896,0.551,0.623,0.292,0.337,0.227,0.092,0.27,0.233,0.0,0.001,0.013,0.02,0.022,0.182,0.175,0.17,0.166,0.204,0.373,0.505,0.377,0.654,0.685,0.688,0.262,0.187,0.161,0.145,0.116,0.133,0.112,0.063,0.026,0.029,0.027,0.024,0.021,0.053,0.115,0.189,0.233,0.285,0.335,0.412,0.443,0.522,0.525,0.529,0.498,0.388,0.281,0.232,0.206,0.453,0.173,0.1,0.073,0.018,0.02,0.017,0.016,0.07,0.194,0.429,0.306,0.363,0.551,0.478,0.592,0.65,0.68,0.71,0.688,0.947,0.38,0.291,0.249,0.221,0.183,0.162,0.096,0.046,0.024,0.025,0.022,0.089,0.179,0.336,0.339,0.392,0.469,0.562,0.639,0.77,0.789,0.839,0.855,0.649,0.234,0.286,0.364,0.291,0.295,0.169,0.218,0.029,0.034,0.033,0.032,0.298,0.168,0.404,0.355,0.377,0.492,0.589,0.768,1.0,0.907,0.721,0.671,0.54,0.44,0.282,0.2,0.099,0.121,0.179,0.172,0.039,0.032,0.031,0.034,0.067,0.15,0.278,0.375,0.464,0.572,0.692,0.797,0.933,0.933,0.867,0.748,0.663,0.38,0.264,0.207,0.137],"dhw":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0]},"Building_3":{"battery":[0.0,0.0,0.011,0.02,0.021,0.0,0.0,0.098,0.0,0.15,0.15,0.15,0.15,0.15,0.15,-0.158,-0.196,-0.291,-0.035,-0.04,-0.049,-0.074,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.0,0.0,0.0,0.0,-0.157,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,-0.075,-0.127,-0.244,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.104,0.058,0.032,0.019,0.012,0.0,0.01,0.0,0.0,0.01,-0.247,-0.306,-0.452,-0.22,-0.105,-0.051,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,-0.434,0.15,0.15,-0.347,0.15,0.15,0.15,0.15,0.15,-0.169,-0.21,-0.312,-0.149,-0.072,-0.034,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.118,-0.109,0.123,0.067,0.038,-0.234,-0.301,-0.446,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.0,0.0,0.0,0.0,0.132,0.071,0.04,0.023,-0.244,-0.302,-0.448,-0.054,-0.063,-0.078,-0.115,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.049,-0.023,-0.011,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.0,0.15,0.15,0.15,0.15,0.135,0.0,-0.3,-0.171,-0.213,-0.315,0.0,0.0,0.0,-0.149,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.0,0.0,0.15,0.0,0.0,0.0,0.15,0.15,-0.203,-0.252,-0.372,0.0,0.0,0.0,0.0,-0.179,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,-0.208,-0.257,-0.381,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.089,0.05,0.028,0.017,0.011,0.0,-0.246,-0.305,-0.451,0.0,-0.218,-0.105,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,-0.409,0.15,0.15,0.15,0.09,0.05,0.028,-0.243,-0.301,-0.446,-0.054,-0.063,-0.077,-0.114,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.049,0.0,0.0,0.0,-0.023,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.0,0.0,0.0,0.0,0.0,0.15,0.127,0.15,-0.177,-0.219,-0.325,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.117,0.063,-0.221,0.15,0.084,0.046,0.0,0.0,0.0,-0.24,-0.197,-0.223,-0.201,0.0,0.0,0.0,0.0,0.0,0.15,0.0,0.15,0.15,0.15,0.15,0.145,0.08,0.044,0.025,0.015,0.011,0.0,0.0,0.0,0.011,-0.146,-0.252,-0.49,0.0,0.0,0.0,-0.278,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.0,0.0,0.0,0.0,0.15,0.15,0.142,0.078,-0.234,-0.29,-0.43,-0.208,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,-0.49,0.15,0.15,0.15,0.148,0.081,0.045,0.026,0.016,-0.245,-0.304,-0.451,-0.054,-0.063,-0.259,-0.022,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.0,0.0,-0.205,0.0,0.0,0.0,-0.096,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,-0.195,-0.241,-0.357,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.102,0.056,0.032,0.018,0.012,0.0,0.01,-0.247,-0.306,-0.452,0.0,0.0,0.0,0.0,-0.217,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.097,0.054,0.0,0.0,0.0,0.035,-0.242,-0.3,-0.444,-0.215,-0.103,0.0,-0.049,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.0,0.107,-0.481,0.15,0.15,0.15,0.15,0.15,-0.191,-0.238,-0.352,0.0,-0.168,0.0,-0.08,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.15,0.095,0.052,0.03,0.017,0.011,-0.246,-0.305,-0.452,-0.054,-0.064,-0.078,-0.117,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],"cooling":[0.053,0.019,0.01,0.005,0.0,0.0,0.053,0.103,0.269,0.351,0.319,0.36,0.435,0.526,0.599,0.694,0.6,0.39,0.282,0.297,0.253,0.224,0.27,0.328,0.139,0.081,0.058,0.018,0.009,0.039,0.033,0.05,0.13,0.225,0.296,0.373,0.448,0.537,0.644,0.819,0.911,0.679,0.485,0.475,0.419,0.358,0.149,0.077,0.06,0.051,0.043,0.036,0.032,0.026,0.031,0.071,0.173,0.176,0.322,0.266,0.246,0.394,0.422,0.431,0.37,0.304,0.301,0.09,0.201,0.176,0.104,0.019,0.02,0.024,0.021,0.019,0.013,0.012,0.121,0.041,0.144,0.078,0.084,0.076,0.092,0.097,0.114,0.147,0.171,0.2,0.181,0.14,0.172,0.193,0.148,0.078,0.045,0.035,0.028,0.022,0.013,0.0,0.001,0.03,0.054,0.088,0.13,0.178,0.266,0.342,0.404,0.468,0.504,0.527,0.449,0.516,0.297,0.191,0.006,0.118,0.084,0.062,0.048,0.036,0.02,0.019,0.098,0.114,0.234,0.27,0.301,0.333,0.386,0.449,0.52,0.598,0.635,0.294,0.179,0.228,0.357,0.213,0.143,0.106,0.082,0.1,0.1,0.0,0.041,0.028,0.055,0.116,0.125,0.152,0.199,0.267,0.349,0.414,0.48,0.5,0.583,0.623,0.489,0.37,0.276,0.236,0.164,0.115,0.082,0.06,0.045,0.033,0.016,0.018,0.081,0.083,0.089,0.124,0.17,0.224,0.285,0.451,0.53,0.56,0.604,0.741,0.565,0.413,0.338,0.255,0.172,0.129,0.097,0.078,0.061,0.052,0.043,0.036,0.054,0.09,0.134,0.172,0.233,0.306,0.364,0.534,0.549,0.55,0.527,0.52,0.537,0.308,0.229,0.191,0.158,0.113,0.086,0.067,0.053,0.043,0.033,0.032,0.047,0.079,0.136,0.192,0.266,0.326,0.41,0.472,0.414,0.694,0.862,0.799,0.648,0.552,0.199,0.129,0.062,0.149,0.197,0.18,0.154,0.0,0.0,0.0,0.362,0.139,0.15,0.192,0.244,0.322,0.47,0.561,0.599,0.621,0.653,0.503,0.482,0.326,0.236,0.258,0.058,0.0,0.064,0.078,0.096,0.087,0.08,0.067,0.058,0.074,0.169,0.235,0.274,0.333,0.4,0.48,0.542,0.587,0.622,0.55,0.441,0.438,0.512,0.477,0.301,0.0,0.0,0.0,0.055,0.048,0.042,0.038,0.137,0.091,0.151,0.193,0.229,0.272,0.328,0.394,0.476,0.408,0.473,0.423,0.352,0.264,0.219,0.382,0.344,0.0,0.09,0.0,0.059,0.048,0.033,0.033,0.055,0.097,0.124,0.166,0.216,0.274,0.329,0.381,0.429,0.525,0.606,0.5,0.41,0.447,0.411,0.277,0.23,0.118,0.087,0.072,0.061,0.052,0.038,0.035,0.061,0.248,0.187,0.213,0.269,0.336,0.391,0.45,0.508,0.616,0.684,0.622,0.624,0.474,0.365,0.279,0.217,0.321,0.12,0.082,0.071,0.062,0.054,0.047,0.066,0.1,0.146,0.264,0.339,0.41,0.491,0.548,0.629,0.683,0.702,0.568,0.457,0.366,0.145,0.093,0.056,0.139,0.109,0.089,0.076,0.065,0.055,0.049,0.072,0.205,0.269,0.326,0.412,0.43,0.691,0.594,0.592,0.587,0.563,0.454,0.415,0.417,0.39,0.318,0.23,0.074,0.068,0.063,0.058,0.053,0.048,0.044,0.066,0.101,0.146,0.208,0.264,0.316,0.373,0.412,0.456,0.497,0.479,0.244,0.164,0.106,0.207,0.174,0.135,0.064,0.055,0.052,0.049,0.045,0.038,0.037,0.157,0.089,0.097,0.058,0.063,0.079,0.098,0.114,0.127,0.134,0.175,0.101,0.12,0.081,0.08,0.078,0.058,0.051,0.051,0.044,0.037,0.034,0.028,0.107,0.045,0.037,0.078,0.091,0.106,0.12,0.137,0.164,0.18,0.176,0.179,0.243,0.182,0.148,0.138,0.294,0.149,0.047,0.037,0.034,0.0,0.128,0.038,0.029,0.051,0.242,0.175,0.199,0.243,0.314,0.376,0.441,0.506,0.55,0.549,0.468,0.36,0.111,0.235,0.202,0.153,0.166,0.086,0.07,0.061,0.053,0.041,0.038,0.131,0.125,0.334,0.254,0.277,0.339,0.41,0.487,0.588,0.684,0.787,0.699,0.601,0.567,0.421,0.338,0.208,0.137,0.111,0.093,0.078,0.065,0.054,0.049,0.071,0.252,0.2,0.117,0.341,0.434,0.596,0.724,0.861,0.853,0.811,0.626,0.549,0.415,0.318,0.262,0.112,0.003,0.136,0.118,0.104,0.092,0.085,0.075,0.072,0.106,0.177,0.283,0.383,0.448,0.538,0.616,0.683,0.732,0.809,0.724,0.632,0.439,0.295,0.249,0.197,0.145,0.13,0.114,0.0,0.0,0.0,0.051,0.073,0.107,0.178,0.212,0.234,0.288,0.347,0.394,0.437,0.456,0.312,0.269,0.274,0.241,0.147,0.227,0.182,0.089,0.077,0.071,0.065,0.06,0.055,0.052,0.062,0.09,0.173,0.208,0.296,0.367,0.46,0.363,0.399,0.428,0.572,0.559,0.258,0.191,0.358,0.295,0.342,0.141,0.111,0.086,0.072,0.062,0.052,0.253,0.109,0.128,0.272,0.261,0.285,0.342,0.412,0.479,0.557,0.626,0.668,0.712,0.456,0.431,0.255,0.167,0.091,0.055,0.146,0.117,0.096,0.08,0.066,0.061,0.126,0.164,0.315,0.46,0.543,0.468,0.553,0.655,0.776,0.837,0.852,0.713,0.561,0.322,0.204,0.255,0.13,0.046,0.148,0.12,0.102,0.089,0.08,0.07,0.096,0.152,0.2,0.262,0.344,0.533,0.482,0.634,0.697,0.748,0.747,0.574,0.554,0.313,0.192,0.123,0.075,0.173,0.136,0.116,0.102,0.091,0.084,0.074,0.086,0.129,0.202,0.404,0.398,0.48,0.704,0.918,0.974,1.0,0.958,0.839,0.626,0.456,0.346,0.273,0.371],"dhw":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0]}},"buildings":{"Building_1":{"battery_soc":[0.2,0.2,0.209,0.224,0.24,0.24,0.24,0.317,0.317,0.433,0.503,0.619,0.736,0.853,0.927,0.713,0.487,0.234,0.234,0.224,0.214,0.204,0.204,0.204,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.251,0.264,0.264,0.264,0.264,0.264,0.264,0.264,0.264,0.264,0.264,0.264,0.264,0.264,0.264,0.264,0.264,0.264,0.264,0.264,0.264,0.264,0.263,0.38,0.38,0.403,0.458,0.602,0.751,0.751,0.762,0.762,0.762,0.762,0.762,0.762,0.762,0.762,0.762,0.761,0.761,0.761,0.761,0.878,0.878,0.878,0.932,0.932,0.932,0.932,0.932,0.932,0.932,0.932,0.944,0.944,0.862,0.411,0.411,0.411,0.411,0.411,0.411,0.411,0.528,0.644,0.761,0.878,0.932,0.945,0.944,0.944,0.944,0.944,0.944,0.944,0.944,0.944,0.949,0.728,0.495,0.235,0.206,0.206,0.206,0.206,0.206,0.206,0.323,0.439,0.556,0.673,0.79,0.906,0.472,0.589,0.706,0.272,0.389,0.469,0.529,0.595,0.712,0.784,0.784,0.35,0.219,0.204,0.204,0.204,0.204,0.204,0.204,0.321,0.437,0.554,0.671,0.788,0.904,0.938,0.947,0.947,0.947,0.538,0.655,0.772,0.888,0.686,0.512,0.237,0.237,0.237,0.237,0.237,0.237,0.237,0.237,0.354,0.471,0.587,0.704,0.821,0.92,0.92,0.92,0.942,0.942,0.942,0.942,0.942,0.941,0.807,0.593,0.25,0.239,0.228,0.217,0.204,0.204,0.204,0.204,0.204,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.255,0.298,0.327,0.327,0.216,0.216,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.32,0.437,0.553,0.67,0.787,0.787,0.787,0.903,0.938,0.946,0.946,0.946,0.535,0.437,0.332,0.216,0.216,0.216,0.216,0.204,0.204,0.204,0.204,0.204,0.321,0.437,0.554,0.671,0.788,0.788,0.805,0.805,0.805,0.805,0.805,0.805,0.916,0.706,0.483,0.233,0.233,0.233,0.233,0.233,0.205,0.205,0.205,0.204,0.321,0.438,0.555,0.671,0.788,0.788,0.788,0.869,0.93,0.944,0.944,0.944,0.944,0.725,0.494,0.235,0.235,0.235,0.235,0.235,0.235,0.235,0.235,0.352,0.468,0.585,0.702,0.819,0.92,0.942,0.941,0.941,0.941,0.948,0.948,0.948,0.948,0.889,0.722,0.455,0.455,0.23,0.205,0.205,0.205,0.322,0.438,0.555,0.672,0.789,0.905,0.939,0.946,0.946,0.592,0.625,0.656,0.677,0.794,0.911,0.939,0.722,0.492,0.235,0.235,0.225,0.215,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.319,0.436,0.553,0.67,0.786,0.786,0.786,0.786,0.786,0.786,0.786,0.885,0.934,0.718,0.489,0.235,0.234,0.234,0.234,0.234,0.351,0.468,0.585,0.701,0.818,0.92,0.942,0.942,0.942,0.797,0.914,0.94,0.94,0.94,0.94,0.94,0.723,0.57,0.407,0.226,0.226,0.226,0.226,0.226,0.226,0.342,0.459,0.576,0.693,0.809,0.917,0.942,0.941,0.941,0.941,0.941,0.941,0.941,0.941,0.941,0.941,0.794,0.532,0.24,0.24,0.24,0.24,0.206,0.206,0.206,0.206,0.206,0.323,0.439,0.556,0.673,0.79,0.79,0.789,0.862,0.922,0.922,0.922,0.942,0.942,0.724,0.493,0.234,0.205,0.205,0.205,0.205,0.322,0.439,0.555,0.672,0.789,0.905,0.939,0.947,0.649,0.765,0.882,0.918,0.941,0.941,0.941,0.941,0.941,0.723,0.493,0.234,0.234,0.225,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.317,0.434,0.46,0.46,0.46,0.231,0.231,0.231,0.231,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.321,0.437,0.554,0.671,0.788,0.788,0.787,0.819,0.818,0.828,0.828,0.828,0.922,0.709,0.485,0.244,0.244,0.244,0.244,0.244,0.244,0.244,0.36,0.477,0.594,0.711,0.827,0.922,0.942,0.942,0.942,0.942,0.942,0.942,0.942,0.942,0.942,0.723,0.493,0.234,0.234,0.234,0.234,0.234,0.205,0.205,0.205,0.322,0.439,0.555,0.672,0.789,0.906,0.938,0.947,0.947,0.946,0.946,0.946,0.946,0.946,0.727,0.495,0.234,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.322,0.439,0.555,0.672,0.789,0.906,0.905,0.905,0.939,0.946,0.946,0.946,0.946,0.946,0.727,0.495,0.234,0.234,0.205,0.205,0.205,0.205,0.205,0.205,0.322,0.439,0.555,0.672,0.789,0.906,0.938,0.947,0.947,0.946,0.946,0.946,0.946,0.946,0.727,0.495,0.235,0.234,0.225,0.215,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203],"dhw_soc":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],"grid_kwh":[0.678,0.846,0.762,0.699,0.677,1.001,1.608,0.86,4.653,0.981,-0.061,2.315,0.764,0.716,1.26,2.02,2.193,1.19,1.419,2.3,3.13,1.784,1.303,2.042,1.886,1.125,0.744,0.35,1.713,1.752,1.766,0.572,-0.159,-0.047,0.556,1.462,6.669,4.144,2.167,1.55,2.503,2.116,2.915,1.785,3.982,2.93,3.446,2.155,1.38,0.981,1.346,0.551,1.085,0.44,0.979,1.779,1.827,-0.021,-0.05,-0.129,-0.133,-0.321,-0.011,2.823,3.203,2.159,1.652,1.244,0.611,1.54,0.483,0.871,0.69,0.649,0.565,0.95,0.405,1.394,0.592,0.824,0.441,0.178,0.139,0.075,0.006,0.086,-0.122,-0.312,0.065,0.355,1.383,1.363,1.519,1.005,1.033,1.204,1.332,1.406,1.338,1.238,1.934,0.704,1.501,2.044,0.892,-0.496,-0.434,-0.302,-0.145,0.048,0.672,0.514,0.839,2.325,2.222,2.04,1.414,1.158,0.65,1.143,1.273,1.156,1.602,1.607,1.429,1.948,4.054,1.297,1.144,4.164,0.617,-0.409,-0.67,-0.058,1.067,-0.064,0.001,1.401,1.488,2.773,8.927,2.165,1.511,1.129,1.289,2.234,1.659,0.873,1.346,1.265,2.371,1.144,2.555,0.266,0.062,4.102,1.784,1.617,1.676,0.213,0.137,1.23,1.691,1.153,2.04,0.959,0.651,0.356,0.49,0.93,0.881,0.848,0.847,3.696,0.877,0.203,1.584,-0.197,-0.446,-0.411,-0.314,0.182,0.323,0.104,0.167,0.286,1.929,1.94,1.523,1.093,0.818,0.682,1.003,0.589,0.549,0.519,0.491,0.446,1.379,0.384,2.23,0.199,0.068,0.72,1.2,1.804,2.687,2.771,2.189,2.53,2.226,1.657,1.043,1.001,1.25,1.57,1.179,1.167,0.75,0.987,0.878,2.233,0.301,0.668,0.35,-0.046,-0.041,-0.028,0.455,0.467,0.662,1.164,5.21,2.385,3.597,2.451,1.722,0.608,1.687,1.018,1.278,1.568,1.273,1.073,1.54,1.478,1.452,1.91,1.899,1.283,0.572,-0.352,-0.304,0.134,6.467,2.09,2.37,2.281,2.511,1.157,0.803,0.554,0.999,1.867,1.17,1.283,1.108,1.58,1.474,1.417,1.41,0.8,-0.016,-0.027,0.778,1.121,0.266,0.716,1.505,2.857,7.227,2.722,3.461,2.842,2.439,1.006,0.58,1.625,1.095,1.156,0.99,0.937,1.38,1.337,1.32,0.656,0.496,-0.071,-0.221,-0.253,-0.121,0.188,0.201,1.041,1.622,0.945,1.866,2.576,2.14,0.988,1.289,0.893,1.228,1.976,1.671,1.434,1.258,1.256,1.718,3.455,-0.226,-0.719,-0.371,-0.176,1.991,1.222,-0.232,0.045,0.131,0.206,2.194,1.75,1.976,1.662,1.447,1.524,1.708,1.979,1.751,1.536,2.649,1.029,0.873,0.753,0.275,-0.031,-0.028,-0.021,0.781,0.722,2.23,0.957,1.135,2.739,2.641,2.122,1.778,3.643,1.274,0.984,1.183,1.504,1.334,1.125,0.968,0.901,0.91,2.903,0.721,0.62,0.328,0.068,4.596,0.363,0.395,-0.353,3.182,2.466,1.359,1.226,2.38,0.993,0.483,0.661,0.591,0.538,0.496,0.461,0.429,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.34,1.27,1.438,1.167,1.318,1.597,1.859,1.651,1.509,4.461,1.541,0.809,0.572,0.041,0.632,0.17,0.622,4.721,0.902,0.593,0.949,0.667,1.414,3.41,0.716,3.591,1.042,1.295,1.477,1.788,1.656,2.337,0.977,0.82,0.345,0.111,1.219,1.085,-0.17,-0.18,0.667,0.231,-0.02,-0.032,0.105,0.311,1.271,2.112,1.4,1.166,0.913,1.322,1.324,2.785,1.577,1.422,2.194,2.146,0.857,2.247,1.565,-0.023,-0.235,0.481,-0.126,-0.062,0.121,0.115,0.993,0.895,0.886,1.214,1.11,1.775,1.166,2.755,1.131,1.115,0.921,1.398,1.728,1.215,1.22,0.544,0.213,-0.063,-0.054,1.117,0.465,0.583,1.233,0.624,1.647,1.875,4.924,1.622,0.747,1.501,1.712,1.375,1.587,1.906,1.724,1.529,1.022,2.718,0.233,1.338,1.442,-0.034,0.416,2.427,1.013,0.481,0.986,2.174,2.295,1.841,2.549,2.147,2.442,1.661,1.243,1.04,1.197,0.785,0.676,0.633,0.606,0.349,0.876,0.96,0.421,1.32,5.933,-0.127,1.75,1.634,4.402,8.38,2.747,2.775,2.818,2.972,2.443,1.928,1.446,1.116,0.462,1.169,0.69,0.608,0.884,1.063,0.453,1.406,0.508,-0.026,0.892,0.124,6.231,3.778,0.137,1.484,3.142,3.902,2.334,2.013,1.9,1.763,3.035,0.973,1.13,1.417,0.863,0.848,1.593,4.137,2.159,1.402,0.018,-0.367,0.347,-0.012,0.117,0.547,1.727,-0.25,0.349,-0.43,0.307,3.574,1.744,2.639,2.274,0.356,1.619,1.962,1.807,2.047,2.683,2.087,1.212,1.495,0.39,-0.051,0.108,0.011,-0.466,0.1,0.181,-0.016,0.486,1.024,1.095,1.991,2.574,1.412,1.092,1.514,1.213,1.808,1.712,1.501,1.424,1.372,1.408,1.257,0.439,-0.219,-0.236,-0.115,-0.644,-0.548,0.954,1.385,2.93,1.15,1.254,2.977,2.506,4.849,0.807,1.916,1.306,1.879,1.769,1.59,1.459,2.477,4.181,2.124,0.768,-0.056,-0.12,2.156,0.873,0.736,3.454,1.208,2.157,1.946,2.843,3.679,1.601,7.794,0.78,0.5,1.28,2.118,3.556,1.784,1.583,1.502,2.35,0.661,0.227,0.669,0.69,0.762,1.498,0.84,1.08,0.826,2.4,1.66,2.079,2.81,1.986,2.055,2.392,1.356,0.375,0.353,0.351,0.35,0.567,0.586,0.613,2.044,1.643,3.571,3.406,1.136,1.332,1.962,2.819,2.816,3.384,3.406,2.488,2.608,2.603,2.726,1.305],"indoor_c":[23.1,22.23,22.22,22.22,22.22,22.22,22.22,22.33,22.77,23.27,24.41,24.44,24.66,24.6,24.34,23.33,22.29,23.64,25.28,24.14,20.64,22.33,22.2,19.53,19.22,20.14,21.16,22.82,21.78,21.93,21.99,22.3,24.14,24.35,25.01,24.34,23.71,23.45,23.25,23.92,24.18,23.72,24.06,24.73,22.92,21.24,18.96,19.25,19.78,20.54,19.04,21.07,19.1,21.17,19.29,19.81,19.52,21.57,22.34,23.73,24.16,24.41,24.32,22.78,20.59,20.56,22.27,23.01,24.56,20.81,23.07,23.75,22.74,22.9,23.14,23.57,23.94,24.14,24.44,23.34,23.68,23.76,24.96,24.17,24.38,25.31,25.04,25.54,24.58,23.63,23.58,23.61,23.59,23.69,23.79,21.59,22.37,21.64,21.7,21.8,21.49,21.94,21.69,21.4,21.88,24.05,23.2,24.01,24.17,24.83,23.72,23.32,22.88,22.39,22.53,22.67,22.87,23.01,24.87,23.23,23.53,23.7,21.64,21.45,21.58,21.76,21.3,21.67,21.9,20.74,22.32,24.2,25.38,24.77,24.66,26.3,26.86,25.68,25.87,24.66,24.15,23.26,23.25,23.46,22.48,21.34,21.55,23.54,21.85,22.3,21.89,22.34,21.89,22.66,23.21,23.38,23.6,23.48,23.28,24.07,25.72,26.02,26.27,26.35,25.82,26.16,26.47,27.5,27.19,27.44,27.7,27.99,28.18,26.7,27.62,28.22,27.44,27.99,28.05,27.94,27.78,27.39,27.04,26.67,26.34,26.03,26.07,26.06,26.1,26.19,26.34,26.52,26.38,26.55,26.64,26.71,26.8,27.01,26.92,27.06,25.78,26.02,25.82,25.45,25.08,24.61,24.11,23.32,23.17,22.65,22.65,23.96,24.64,24.94,23.45,21.74,21.97,21.32,22.88,21.01,21.37,21.3,23.06,21.64,22.18,23.43,23.48,23.58,23.32,23.02,23.77,23.63,24.98,22.33,22.2,22.28,23.83,25.58,23.31,23.19,21.93,20.72,22.17,22.89,21.34,21.43,21.42,21.26,20.81,21.61,22.2,24.04,24.05,24.1,21.0,20.66,21.0,21.26,21.67,23.3,24.14,24.68,23.29,21.65,21.81,20.96,22.57,20.91,21.36,21.4,21.54,21.67,23.33,23.42,23.45,22.97,22.88,22.58,22.34,21.83,21.22,21.13,21.25,21.42,21.39,23.29,24.29,19.79,21.01,20.29,22.18,22.7,21.33,21.58,21.65,21.75,21.66,23.46,23.85,24.01,23.88,23.62,24.22,23.85,23.63,23.43,23.85,24.16,24.12,24.84,23.64,25.47,22.27,21.47,21.47,21.71,22.1,22.14,22.28,22.17,24.15,25.47,24.61,24.61,25.27,27.17,26.39,26.42,26.1,25.72,24.35,23.23,23.07,23.11,23.26,23.43,22.48,21.19,21.17,21.32,21.04,21.53,21.71,21.93,21.81,23.39,23.62,23.82,23.7,24.29,23.04,22.67,22.37,21.86,21.94,22.11,22.32,21.59,22.2,22.53,21.7,20.46,20.43,20.56,20.79,20.98,21.27,20.61,21.48,22.91,23.09,23.38,21.89,23.4,24.32,26.31,26.56,26.09,26.79,27.41,25.46,27.09,27.64,26.75,26.7,26.71,26.78,26.89,27.01,27.38,27.43,27.62,27.6,27.49,27.28,26.39,26.36,26.6,27.13,27.67,28.34,28.96,29.72,30.17,28.77,27.03,25.45,25.04,23.73,22.15,21.97,21.94,21.99,21.02,22.94,21.29,22.03,23.32,23.45,23.53,23.36,23.88,23.27,22.43,22.14,22.94,22.55,22.25,24.33,23.42,24.98,23.3,22.47,20.99,20.98,21.01,21.14,21.24,22.85,21.38,22.02,23.42,24.11,24.09,23.72,24.11,24.36,24.22,24.07,23.87,23.89,23.8,23.78,23.74,23.78,23.82,22.81,21.3,21.27,21.4,21.19,21.37,21.7,21.05,21.12,22.92,23.52,23.67,23.8,23.76,23.47,22.41,22.28,22.92,23.38,23.58,23.66,23.63,23.69,22.65,22.36,21.25,23.11,21.27,21.71,21.91,21.99,22.21,22.7,24.08,24.18,23.97,23.73,23.62,23.47,22.97,21.17,20.95,21.36,23.13,24.16,24.89,23.27,23.41,22.32,20.97,20.93,21.07,21.32,20.76,21.25,21.58,22.06,23.41,23.68,22.82,23.15,23.67,23.5,21.34,21.03,21.15,21.4,21.57,21.74,21.93,22.14,22.33,21.54,22.37,22.72,22.96,23.15,24.16,24.16,22.54,23.27,23.9,24.27,24.68,22.79,22.91,22.3,21.56,21.36,21.01,20.71,20.87,21.47,21.78,20.88,21.25,22.96,20.2,21.54,22.05,21.22,20.72,22.39,20.6,22.45,22.7,22.78,22.82,21.98,22.55,23.94,22.16,20.28,20.31,20.81,20.98,20.8,21.03,20.67,21.36,20.6,19.66,22.05,22.69,20.21,21.45,21.47,22.26,23.18,24.19,24.8,23.16,23.08,22.7,23.46,23.39,23.52,24.8,26.5,22.27,22.63,22.12,22.47,24.48,21.4,20.64,20.49,20.59,20.3,20.46,22.35,20.56,21.39,22.71,22.76,22.9,23.89,23.71,23.73,23.03,22.74,23.12,24.49,22.81,22.79,22.78,22.86,21.33,21.64,20.76,20.7,20.84,21.04,21.22,21.34,21.4,21.75,23.13,23.39,23.56,25.14,25.83,24.53,22.77,22.02,23.48,25.06,20.37,21.53,22.82,23.79,19.87,20.94,20.13,20.24,20.41,20.68,20.77,20.18,20.64,20.71,22.6,23.0,20.23,21.83,22.17,21.44,21.34,21.04,20.81,20.91,21.3,22.3,22.55,23.53,24.44,21.41,20.48,19.73,20.16,20.47,20.73,20.69,22.33,22.86,24.05,21.46,23.26,20.13,21.9,21.93,21.75,21.23,23.13,24.69,21.61,21.81,20.69,19.64,20.5,22.83,23.68,24.25,24.59,23.97,23.98,24.02,23.29,23.51,22.36,22.02,22.2,22.06,21.76,21.34,20.84,20.36,19.99,20.62,20.4,20.48,20.54,20.81]},"Building_2":{"battery_soc":[0.2,0.2,0.209,0.224,0.24,0.24,0.24,0.317,0.317,0.433,0.55,0.667,0.784,0.9,0.938,0.721,0.495,0.235,0.235,0.225,0.215,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.32,0.437,0.437,0.437,0.437,0.254,0.254,0.254,0.254,0.254,0.254,0.254,0.254,0.254,0.254,0.254,0.254,0.254,0.371,0.487,0.604,0.721,0.838,0.838,0.837,0.837,0.837,0.837,0.837,0.837,0.923,0.829,0.669,0.272,0.272,0.272,0.272,0.272,0.272,0.272,0.388,0.505,0.622,0.739,0.855,0.928,0.943,0.943,0.943,0.943,0.943,0.943,0.943,0.943,0.948,0.728,0.495,0.235,0.206,0.206,0.206,0.206,0.206,0.206,0.322,0.439,0.556,0.673,0.789,0.906,0.84,0.924,0.943,0.829,0.922,0.942,0.942,0.942,0.942,0.761,0.556,0.327,0.215,0.204,0.204,0.204,0.204,0.204,0.204,0.32,0.437,0.554,0.671,0.787,0.904,0.938,0.947,0.947,0.947,0.844,0.925,0.943,0.943,0.724,0.498,0.273,0.272,0.272,0.272,0.272,0.272,0.272,0.272,0.389,0.506,0.623,0.739,0.856,0.928,0.927,0.927,0.927,0.927,0.943,0.943,0.943,0.943,0.739,0.528,0.305,0.283,0.259,0.234,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.321,0.437,0.554,0.671,0.788,0.788,0.787,0.904,0.938,0.947,0.947,0.947,0.695,0.55,0.396,0.223,0.223,0.223,0.223,0.205,0.205,0.205,0.205,0.205,0.322,0.438,0.555,0.672,0.788,0.788,0.788,0.788,0.788,0.788,0.788,0.905,0.938,0.721,0.492,0.234,0.234,0.234,0.234,0.234,0.205,0.205,0.205,0.205,0.322,0.439,0.555,0.672,0.789,0.789,0.789,0.789,0.789,0.788,0.788,0.905,0.938,0.722,0.566,0.346,0.346,0.346,0.346,0.346,0.346,0.346,0.346,0.463,0.58,0.696,0.813,0.919,0.941,0.941,0.941,0.941,0.941,0.941,0.941,0.941,0.941,0.723,0.497,0.235,0.235,0.206,0.206,0.206,0.206,0.323,0.439,0.556,0.673,0.79,0.906,0.939,0.947,0.947,0.523,0.64,0.757,0.873,0.932,0.944,0.944,0.725,0.494,0.235,0.235,0.225,0.216,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.202,0.202,0.202,0.202,0.202,0.202,0.202,0.202,0.202,0.202,0.202,0.202,0.202,0.202,0.202,0.202,0.202,0.202,0.202,0.202,0.202,0.202,0.319,0.436,0.552,0.669,0.786,0.786,0.786,0.786,0.785,0.785,0.785,0.884,0.934,0.718,0.49,0.311,0.311,0.311,0.311,0.311,0.427,0.544,0.661,0.778,0.894,0.936,0.946,0.945,0.945,0.518,0.635,0.752,0.868,0.868,0.868,0.868,0.434,0.366,0.293,0.213,0.213,0.213,0.213,0.213,0.213,0.33,0.446,0.563,0.68,0.796,0.913,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.939,0.818,0.646,0.56,0.56,0.56,0.56,0.45,0.45,0.45,0.45,0.45,0.45,0.566,0.683,0.8,0.915,0.915,0.915,0.915,0.915,0.914,0.914,0.941,0.941,0.723,0.493,0.31,0.215,0.215,0.215,0.215,0.332,0.448,0.565,0.682,0.799,0.914,0.941,0.941,0.862,0.929,0.943,0.943,0.943,0.943,0.943,0.943,0.943,0.724,0.531,0.289,0.27,0.25,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.317,0.434,0.434,0.433,0.433,0.229,0.229,0.229,0.229,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.205,0.322,0.438,0.555,0.672,0.789,0.788,0.788,0.788,0.788,0.788,0.788,0.905,0.938,0.721,0.492,0.356,0.356,0.356,0.356,0.356,0.356,0.356,0.356,0.472,0.589,0.706,0.823,0.921,0.942,0.942,0.942,0.942,0.942,0.942,0.942,0.942,0.941,0.724,0.499,0.257,0.257,0.257,0.257,0.257,0.209,0.209,0.208,0.325,0.442,0.559,0.675,0.792,0.909,0.939,0.947,0.947,0.947,0.947,0.947,0.946,0.946,0.727,0.495,0.235,0.206,0.206,0.205,0.205,0.205,0.205,0.205,0.322,0.439,0.556,0.672,0.789,0.906,0.906,0.906,0.705,0.821,0.921,0.942,0.942,0.942,0.723,0.493,0.235,0.235,0.205,0.205,0.205,0.205,0.205,0.205,0.322,0.439,0.556,0.672,0.789,0.906,0.938,0.947,0.947,0.947,0.947,0.946,0.946,0.946,0.727,0.495,0.235,0.235,0.225,0.215,0.204,0.204,0.204,0.204,0.204,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203],"dhw_soc":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],"grid_kwh":[0.187,0.186,0.221,0.254,0.272,0.231,0.248,0.671,2.934,1.17,1.131,1.167,1.468,1.285,1.356,1.851,0.956,0.732,1.202,0.976,1.524,1.161,0.913,0.323,0.212,0.379,0.46,0.201,0.202,0.231,0.243,0.245,2.33,0.564,1.008,1.188,1.013,1.47,1.827,2.989,1.635,1.344,1.37,0.795,0.66,0.629,0.641,0.483,0.374,0.313,0.274,0.251,0.247,0.262,0.256,0.358,0.869,0.998,0.456,1.85,0.976,0.143,0.738,0.363,0.47,0.676,0.656,0.581,0.607,0.849,0.532,0.268,0.202,0.232,0.914,0.85,0.7,0.729,0.752,0.361,0.365,0.437,0.441,0.449,0.404,0.337,0.822,0.072,0.125,0.312,0.673,0.718,0.518,0.511,0.503,0.58,1.016,0.728,0.683,0.685,0.7,0.54,0.307,1.601,0.461,0.556,0.868,1.536,1.003,0.964,1.059,0.334,0.298,0.341,1.02,0.737,0.781,0.715,0.584,0.374,1.012,0.776,0.683,0.685,0.7,0.729,0.053,0.785,0.649,0.088,0.981,0.684,1.149,0.966,0.734,0.141,0.158,0.178,0.689,0.636,0.552,0.488,0.412,0.7,0.563,0.684,0.683,0.685,0.7,0.729,1.616,0.496,0.631,1.126,0.674,0.082,0.973,0.788,0.925,0.18,0.175,0.175,0.856,0.653,0.745,0.511,0.528,0.67,0.764,1.184,0.683,0.685,0.7,0.729,0.545,0.971,0.4,0.494,0.514,0.892,0.672,0.7,0.885,0.159,0.165,0.173,0.859,0.765,0.653,0.615,0.62,0.373,0.307,0.389,0.234,0.217,0.218,0.236,0.332,0.536,0.653,0.739,0.704,0.895,0.874,1.035,1.117,1.233,1.168,1.161,1.067,0.811,0.711,0.665,1.343,0.341,0.295,0.258,0.23,0.215,0.219,0.24,0.318,0.415,0.602,0.865,0.886,0.916,1.168,9.801,1.415,1.521,1.533,1.541,1.605,1.062,0.854,0.539,0.654,0.745,0.36,0.205,0.725,0.733,0.748,0.774,0.844,0.705,2.349,1.467,1.152,0.971,0.907,1.331,0.194,0.621,0.581,0.535,1.092,0.82,0.642,0.449,0.525,0.6,0.753,0.396,0.683,0.685,0.712,0.747,0.856,0.482,0.759,1.709,0.658,0.777,1.085,1.555,1.247,0.402,0.345,0.74,1.345,0.994,0.857,0.933,0.89,0.492,0.187,0.225,0.968,0.72,0.73,0.752,0.851,0.554,0.544,0.592,0.517,0.843,0.679,1.165,1.734,0.824,0.121,0.171,1.199,0.983,1.252,0.897,1.846,0.524,0.596,1.162,0.908,0.685,0.7,0.682,0.511,0.589,2.082,0.686,1.01,0.714,0.885,0.797,0.929,0.196,0.175,1.409,1.077,1.085,0.806,0.751,0.616,0.947,1.179,0.981,0.683,0.685,0.704,0.379,0.485,0.622,4.526,3.688,2.305,2.265,1.006,0.906,1.282,0.407,0.358,0.314,1.231,0.901,0.954,1.054,0.608,0.452,0.498,0.485,0.198,0.221,0.215,0.266,0.444,0.613,0.758,0.985,0.842,0.941,1.124,1.164,2.018,1.939,1.245,1.269,1.286,1.051,0.856,1.04,0.466,0.394,0.568,0.607,0.231,0.199,0.447,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.653,1.154,0.46,0.385,0.638,0.576,0.683,0.691,0.718,0.751,2.697,0.708,0.975,2.374,0.54,0.926,2.236,1.511,1.79,0.671,0.245,0.137,0.802,0.705,0.748,0.601,0.848,0.933,1.194,0.884,0.683,0.367,0.242,0.231,0.278,5.014,1.98,2.061,1.067,0.533,0.915,2.424,4.514,0.407,0.305,0.114,0.357,0.305,0.443,0.45,0.233,0.804,1.111,0.785,0.683,0.685,0.7,0.347,0.252,0.309,0.462,0.816,0.836,2.079,2.033,0.354,0.376,0.096,0.134,0.07,0.796,0.526,0.613,0.084,0.507,0.597,0.66,0.291,0.185,0.685,0.7,0.729,0.757,0.373,0.466,0.572,0.602,0.747,0.823,0.944,1.042,0.748,0.402,0.143,1.717,0.823,0.744,0.702,1.067,0.977,1.129,1.156,0.683,0.682,0.315,0.231,0.063,2.656,1.047,1.299,0.681,0.976,1.447,1.103,1.875,1.164,0.148,0.189,1.094,0.842,0.523,0.814,0.966,1.008,0.385,0.192,0.215,0.457,0.231,0.255,0.368,1.009,3.283,9.608,1.758,1.698,1.542,0.953,1.274,1.445,1.453,1.458,1.829,1.082,1.002,0.906,0.48,0.89,0.818,0.442,0.202,0.216,0.241,0.269,0.389,2.298,1.566,0.766,2.297,0.715,0.411,1.8,1.831,1.158,2.854,1.33,2.405,1.014,1.124,0.708,0.401,0.798,0.713,0.186,0.686,0.714,0.746,0.778,1.511,0.752,0.762,0.72,0.811,0.904,1.367,1.394,1.623,0.77,0.623,0.105,0.58,0.718,0.739,0.65,0.492,0.441,0.33,0.743,0.747,0.745,0.754,0.701,0.459,0.475,0.589,0.699,0.664,0.687,0.862,0.821,0.952,0.191,0.174,0.188,1.025,0.991,0.888,0.851,4.85,0.691,0.413,0.849,0.724,0.73,0.739,0.765,0.966,0.878,1.837,0.926,0.907,1.525,0.928,1.053,1.164,0.479,0.52,0.513,3.157,1.215,1.019,0.949,0.94,0.648,0.664,0.9,0.786,0.74,0.756,0.779,0.945,0.621,1.257,0.156,1.388,1.388,1.79,1.222,1.457,0.772,0.855,0.913,1.726,0.777,1.008,1.208,1.098,1.366,0.58,1.739,0.859,0.762,0.775,0.8,2.232,0.756,1.166,1.053,1.231,1.079,1.197,1.483,2.018,1.01,0.583,0.518,1.359,1.552,0.962,0.795,0.417,0.461,0.59,0.574,0.272,0.26,0.273,0.307,0.395,0.539,0.891,1.092,1.139,1.29,1.623,1.632,1.965,2.077,1.855,1.711,1.995,1.325,0.959,0.855,0.502],"indoor_c":[24.28,24.26,24.21,24.12,24.0,23.89,24.2,24.85,24.99,25.0,25.0,25.0,25.46,25.66,25.65,25.87,26.17,26.25,26.3,26.46,25.57,24.73,23.96,25.42,25.97,24.94,24.06,25.36,26.0,26.02,26.45,26.83,24.44,25.53,25.77,25.61,25.97,25.28,25.2,24.87,25.92,25.96,26.26,26.48,26.48,26.37,25.84,25.91,25.88,26.1,26.35,26.61,26.81,26.86,27.27,27.58,27.69,27.64,27.39,26.93,26.67,25.39,25.48,26.82,26.73,26.64,26.6,26.53,26.14,24.91,24.57,25.4,25.83,25.92,24.47,24.48,25.61,25.72,26.05,26.33,26.52,26.83,27.01,27.23,27.36,27.41,27.29,27.31,26.84,26.65,26.79,26.72,26.69,26.59,25.99,24.94,23.92,24.89,25.54,25.71,25.71,25.57,26.16,25.39,25.86,26.19,24.31,24.24,24.54,24.8,24.77,24.95,25.31,25.53,25.41,25.37,25.45,25.54,25.62,25.69,24.65,25.31,26.01,26.25,26.31,26.26,26.56,26.58,26.49,26.41,26.43,26.43,25.5,25.36,26.09,26.46,26.48,26.49,26.7,26.57,26.52,26.53,26.56,24.62,24.5,26.02,26.5,26.69,26.68,26.53,25.74,26.24,25.59,23.71,25.57,25.9,25.91,25.95,25.77,26.04,26.16,26.28,26.4,26.28,26.32,26.28,25.78,24.45,23.08,22.38,24.39,25.61,25.73,25.56,25.64,25.4,25.59,25.66,25.72,25.59,25.69,25.92,25.83,26.05,26.13,26.21,26.25,26.25,26.18,26.07,25.98,26.05,25.99,26.06,26.17,26.3,26.34,26.28,26.39,26.37,26.24,26.24,26.29,26.31,26.31,26.34,26.09,26.15,26.12,26.09,26.09,26.04,25.95,25.88,24.94,25.56,25.44,25.57,25.72,25.89,26.01,26.04,26.2,26.23,26.01,25.87,25.78,25.72,25.68,25.03,25.26,25.32,25.29,25.26,25.24,25.31,25.42,25.55,24.72,23.84,24.74,25.71,26.0,26.26,26.46,26.57,26.72,25.32,23.35,24.33,23.86,24.38,24.96,25.06,25.03,25.26,25.36,25.41,25.43,25.4,25.48,25.55,25.19,24.45,23.3,24.08,25.32,25.86,26.18,26.35,26.5,26.43,26.17,25.08,25.49,25.47,25.5,25.51,25.36,25.48,25.56,25.5,25.68,25.61,25.57,25.42,24.05,24.56,25.84,25.82,25.87,25.96,26.03,26.05,26.23,26.22,25.94,25.9,25.92,25.88,25.9,25.97,24.07,24.06,25.79,25.8,26.01,25.85,25.67,25.52,24.79,24.96,24.22,23.81,24.1,25.25,25.6,25.65,25.89,25.93,24.39,25.14,25.36,25.42,25.48,25.66,25.56,25.69,25.72,24.45,25.3,25.21,25.38,25.43,25.49,25.34,23.8,24.0,25.46,25.96,26.12,26.03,26.09,26.06,25.48,23.98,23.72,25.07,25.62,25.5,25.3,25.38,25.39,25.37,25.36,25.32,25.15,24.31,24.66,24.97,24.45,24.83,25.86,26.11,26.23,26.15,26.18,26.06,25.92,25.77,25.78,25.69,25.59,25.54,24.04,23.65,24.75,25.05,25.01,25.09,25.24,25.35,25.47,25.51,24.26,23.66,25.03,25.83,25.73,26.01,26.33,26.5,26.54,26.63,26.69,27.01,27.39,27.91,28.54,29.11,29.67,30.24,30.89,31.44,28.82,28.24,27.48,27.07,24.65,24.27,25.84,26.45,26.7,26.79,24.32,24.53,24.23,24.35,26.05,25.81,24.55,25.15,24.04,24.22,24.96,24.91,24.97,25.1,25.15,25.17,25.24,24.59,22.98,23.62,24.79,25.22,25.51,25.66,25.75,25.57,25.64,25.77,25.75,25.81,25.91,25.7,25.37,25.72,25.94,26.0,26.04,25.96,25.84,25.75,25.72,25.14,23.86,24.42,25.2,25.48,25.62,25.64,25.78,25.81,25.85,24.5,24.07,25.43,25.78,25.88,25.74,25.7,25.77,25.73,25.53,25.69,25.67,25.64,25.02,23.62,22.53,23.67,24.99,25.38,25.46,25.37,25.7,25.81,25.77,25.77,25.79,25.7,25.72,25.83,25.65,24.6,24.87,25.83,24.56,25.38,25.42,25.44,25.49,25.53,23.75,23.54,25.13,25.7,25.83,25.74,25.84,24.02,23.69,23.05,24.5,24.52,23.61,24.43,23.27,23.17,24.98,25.17,25.2,25.24,25.26,25.31,24.11,22.99,24.23,25.46,25.68,25.84,25.95,25.9,25.97,25.47,25.18,24.61,24.45,23.38,23.88,25.16,25.02,25.09,25.1,25.12,25.14,25.2,25.22,25.23,25.3,23.61,22.89,24.66,25.46,25.81,26.0,26.02,25.97,23.49,23.79,24.88,23.51,24.47,24.69,23.37,23.32,24.58,23.21,24.15,23.41,24.18,23.49,23.81,24.58,22.74,22.68,24.42,25.06,25.39,25.66,25.81,24.51,24.49,24.83,25.38,25.67,24.59,23.96,24.75,23.2,23.17,22.4,24.13,24.89,25.0,25.05,25.13,24.76,24.64,24.9,25.27,25.35,25.45,25.58,25.7,25.9,25.89,25.76,25.77,25.54,25.48,25.4,25.49,25.36,25.46,25.46,25.44,25.45,25.42,25.32,25.11,23.02,23.76,24.17,24.28,24.83,24.98,25.16,25.31,25.52,25.09,24.27,24.91,25.24,24.87,25.3,25.21,25.37,25.53,25.53,25.51,24.1,24.94,24.9,24.78,24.61,24.48,24.3,24.57,25.04,25.47,25.62,25.67,25.81,25.73,25.19,25.41,25.57,25.67,25.48,25.53,25.32,25.34,25.05,24.83,24.94,26.0,25.25,24.36,24.17,23.64,24.0,23.42,24.81,25.23,25.44,25.52,24.1,24.79,23.59,24.12,24.53,24.52,24.48,24.13,23.36,23.62,24.28,24.29,24.37,24.22,24.52,24.73,25.26,24.97,24.13,23.77,24.87,25.36,25.57,25.57,25.61,25.5,25.17,24.97,24.88,24.79,24.72,24.69,24.41,24.35,24.25,24.26,24.1,24.6,24.77,24.79,25.0]},"Building_3":{"battery_soc":[0.2,0.2,0.205,0.214,0.223,0.223,0.223,0.267,0.267,0.335,0.404,0.472,0.541,0.609,0.677,0.594,0.492,0.341,0.322,0.301,0.275,0.236,0.236,0.235,0.235,0.235,0.234,0.234,0.234,0.233,0.233,0.232,0.232,0.232,0.231,0.231,0.231,0.23,0.23,0.229,0.229,0.229,0.228,0.228,0.228,0.227,0.227,0.227,0.226,0.226,0.225,0.225,0.225,0.224,0.224,0.293,0.361,0.361,0.36,0.36,0.359,0.277,0.277,0.276,0.276,0.275,0.275,0.275,0.274,0.274,0.273,0.273,0.272,0.272,0.341,0.409,0.477,0.546,0.614,0.613,0.612,0.611,0.61,0.609,0.677,0.745,0.813,0.773,0.706,0.579,0.578,0.577,0.576,0.575,0.574,0.573,0.572,0.64,0.708,0.776,0.844,0.89,0.916,0.929,0.936,0.94,0.939,0.942,0.94,0.939,0.942,0.813,0.653,0.422,0.307,0.253,0.226,0.226,0.225,0.225,0.293,0.362,0.431,0.499,0.567,0.635,0.413,0.481,0.549,0.37,0.438,0.507,0.575,0.643,0.711,0.622,0.513,0.351,0.273,0.236,0.218,0.217,0.217,0.217,0.216,0.285,0.354,0.422,0.49,0.559,0.627,0.695,0.763,0.831,0.884,0.826,0.881,0.91,0.926,0.804,0.647,0.419,0.418,0.417,0.417,0.416,0.415,0.415,0.414,0.482,0.551,0.619,0.687,0.755,0.823,0.821,0.82,0.819,0.817,0.877,0.908,0.925,0.934,0.806,0.649,0.42,0.391,0.358,0.317,0.257,0.257,0.256,0.256,0.255,0.255,0.254,0.254,0.254,0.253,0.253,0.252,0.252,0.252,0.251,0.251,0.225,0.213,0.207,0.206,0.206,0.206,0.205,0.205,0.205,0.204,0.204,0.204,0.204,0.203,0.203,0.203,0.202,0.202,0.202,0.201,0.201,0.201,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.269,0.338,0.406,0.475,0.543,0.542,0.61,0.678,0.746,0.814,0.875,0.873,0.717,0.627,0.516,0.353,0.352,0.352,0.351,0.273,0.273,0.272,0.272,0.272,0.34,0.409,0.477,0.545,0.614,0.613,0.612,0.68,0.679,0.677,0.676,0.744,0.812,0.706,0.574,0.383,0.382,0.381,0.381,0.38,0.287,0.286,0.286,0.286,0.354,0.423,0.491,0.559,0.627,0.626,0.625,0.624,0.623,0.622,0.69,0.758,0.826,0.717,0.583,0.387,0.386,0.386,0.385,0.384,0.384,0.383,0.383,0.382,0.45,0.519,0.587,0.655,0.723,0.791,0.859,0.898,0.92,0.931,0.938,0.941,0.94,0.811,0.652,0.421,0.42,0.307,0.252,0.252,0.251,0.32,0.389,0.457,0.525,0.593,0.662,0.73,0.797,0.865,0.654,0.722,0.79,0.858,0.898,0.92,0.931,0.804,0.647,0.419,0.39,0.357,0.316,0.257,0.257,0.256,0.256,0.255,0.255,0.255,0.254,0.254,0.253,0.253,0.253,0.252,0.252,0.251,0.226,0.225,0.225,0.225,0.212,0.212,0.212,0.211,0.211,0.211,0.21,0.21,0.21,0.209,0.209,0.209,0.208,0.208,0.208,0.207,0.207,0.207,0.206,0.206,0.206,0.205,0.205,0.205,0.204,0.204,0.204,0.203,0.203,0.203,0.202,0.202,0.202,0.201,0.27,0.339,0.407,0.476,0.544,0.543,0.542,0.541,0.54,0.539,0.608,0.665,0.733,0.64,0.526,0.358,0.357,0.356,0.356,0.355,0.424,0.492,0.56,0.629,0.697,0.765,0.832,0.885,0.912,0.797,0.865,0.902,0.922,0.92,0.919,0.917,0.792,0.688,0.572,0.467,0.466,0.466,0.465,0.464,0.463,0.532,0.531,0.599,0.667,0.735,0.803,0.868,0.904,0.923,0.933,0.938,0.942,0.94,0.939,0.937,0.941,0.864,0.732,0.482,0.481,0.48,0.48,0.335,0.335,0.334,0.334,0.333,0.402,0.47,0.538,0.606,0.674,0.673,0.672,0.671,0.67,0.738,0.806,0.87,0.905,0.782,0.631,0.41,0.302,0.302,0.301,0.301,0.369,0.438,0.506,0.574,0.642,0.71,0.778,0.846,0.596,0.664,0.732,0.8,0.867,0.903,0.922,0.932,0.938,0.81,0.652,0.421,0.392,0.359,0.224,0.213,0.212,0.212,0.212,0.211,0.211,0.211,0.21,0.21,0.21,0.209,0.209,0.209,0.208,0.208,0.208,0.207,0.207,0.207,0.206,0.206,0.206,0.205,0.205,0.205,0.204,0.204,0.204,0.203,0.203,0.203,0.202,0.202,0.202,0.271,0.339,0.408,0.407,0.406,0.3,0.299,0.299,0.298,0.248,0.248,0.247,0.247,0.246,0.246,0.246,0.245,0.245,0.245,0.313,0.382,0.45,0.518,0.587,0.586,0.585,0.584,0.583,0.582,0.65,0.718,0.786,0.684,0.558,0.374,0.373,0.372,0.372,0.371,0.371,0.37,0.37,0.438,0.506,0.575,0.643,0.711,0.779,0.846,0.892,0.916,0.93,0.936,0.94,0.939,0.942,0.813,0.653,0.422,0.421,0.421,0.42,0.419,0.306,0.306,0.305,0.374,0.442,0.511,0.579,0.647,0.715,0.783,0.851,0.894,0.917,0.916,0.915,0.913,0.928,0.801,0.645,0.417,0.305,0.252,0.251,0.225,0.225,0.225,0.224,0.293,0.362,0.43,0.498,0.567,0.635,0.634,0.682,0.436,0.505,0.573,0.641,0.709,0.777,0.677,0.553,0.371,0.37,0.283,0.282,0.241,0.24,0.24,0.239,0.308,0.377,0.445,0.513,0.582,0.65,0.718,0.786,0.853,0.896,0.918,0.931,0.937,0.941,0.812,0.653,0.421,0.393,0.359,0.318,0.257,0.257,0.256,0.256,0.256,0.255,0.255,0.254,0.254,0.254,0.253,0.253,0.252,0.252,0.252,0.251,0.251,0.25,0.25,0.25,0.249,0.249,0.248,0.248,0.248,0.247],"dhw_soc":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],"grid_kwh":[0.563,0.473,0.463,0.466,0.469,0.5,1.033,1.042,2.187,2.373,1.526,1.211,0.972,1.07,1.133,1.74,1.119,0.765,1.495,1.743,1.695,2.464,2.719,2.948,0.809,0.645,0.577,1.238,0.461,0.608,0.55,0.63,0.852,0.872,0.804,0.82,0.798,0.894,1.726,2.027,3.019,2.253,2.421,2.045,1.615,1.693,1.107,0.64,0.59,0.559,0.535,0.519,0.525,0.572,0.535,0.749,1.588,0.915,1.691,0.415,0.565,7.843,1.113,1.721,2.25,1.528,2.802,1.572,1.721,1.679,0.725,0.479,0.478,0.484,0.718,0.714,0.712,0.802,2.49,0.742,2.123,0.749,1.171,0.453,1.31,0.443,0.356,0.129,0.218,0.414,1.332,1.114,1.238,1.352,1.374,0.742,0.579,0.756,0.736,0.722,0.712,0.695,0.551,0.443,0.231,0.124,-0.034,-0.06,0.858,0.495,0.591,0.554,0.732,1.41,2.45,4.187,2.318,0.973,0.726,0.754,0.898,0.834,0.79,0.739,0.733,0.795,7.505,1.186,1.358,0.589,1.183,0.597,0.711,0.731,0.945,0.968,1.202,0.46,1.059,1.242,3.269,1.408,0.834,0.721,0.65,1.159,1.155,0.858,0.834,0.819,1.718,1.302,0.895,0.639,0.471,0.185,1.458,0.979,0.786,0.399,1.143,1.605,3.136,2.229,1.836,1.845,0.891,0.746,0.649,0.828,0.782,0.752,0.721,0.79,1.599,0.745,0.446,0.313,0.188,0.385,0.351,0.808,1.025,0.8,0.999,1.693,2.062,2.521,2.629,1.838,1.66,1.034,0.69,0.636,0.587,0.563,0.555,0.6,0.603,0.761,0.631,0.536,0.659,0.987,0.845,6.373,2.35,1.665,1.651,2.174,3.312,2.328,1.708,1.719,1.422,0.741,0.662,0.605,0.565,0.54,0.528,0.589,0.579,0.544,0.447,0.423,0.577,0.319,0.859,0.703,0.629,1.614,4.011,2.641,2.393,2.863,1.002,1.666,0.608,0.841,0.97,0.92,1.085,0.66,0.677,0.769,5.116,0.917,1.046,1.482,0.775,0.652,1.009,0.886,0.51,1.1,1.341,1.088,2.146,1.886,1.972,8.53,0.871,0.917,0.599,0.637,0.925,0.903,0.898,0.955,0.859,0.536,0.625,1.005,0.382,0.507,0.561,1.482,1.081,0.807,1.124,1.581,2.145,4.945,4.652,5.437,8.745,1.158,0.665,0.419,0.81,0.794,0.792,0.848,2.033,0.574,0.528,0.44,0.794,0.37,0.662,0.62,0.904,0.415,0.879,0.698,1.543,2.188,1.368,2.495,2.664,0.912,0.673,0.419,0.821,0.793,0.767,0.833,0.855,1.027,0.659,0.477,0.3,0.327,0.332,0.421,0.493,0.68,0.969,0.801,1.917,3.005,3.361,1.587,1.556,1.721,0.905,0.862,0.827,0.804,0.781,0.839,1.01,2.775,0.694,1.208,0.926,0.86,0.696,0.636,0.919,0.86,1.244,1.384,2.628,2.194,2.202,1.407,1.314,3.385,0.757,0.647,0.614,0.592,0.586,0.63,0.647,0.638,0.83,1.126,1.079,1.134,1.475,1.127,1.493,1.787,2.422,1.761,2.065,2.472,2.192,1.448,0.865,0.811,0.724,0.666,0.628,0.599,0.587,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.082,1.939,1.791,0.631,1.084,0.593,0.82,0.809,0.809,0.863,1.151,0.988,0.719,0.858,1.673,0.796,1.116,0.958,1.172,0.866,0.862,0.48,1.073,1.018,1.647,1.299,1.054,1.082,0.816,0.805,0.793,0.784,0.783,0.79,2.328,0.376,1.309,0.841,0.655,0.492,1.007,0.706,0.407,0.486,0.377,0.341,1.249,0.949,1.561,1.361,0.834,1.046,1.27,1.018,0.762,0.754,0.736,1.925,0.859,0.629,0.82,0.793,0.595,0.617,0.514,0.572,0.591,0.249,0.429,1.186,1.369,1.391,2.159,3.298,2.419,0.82,0.525,0.513,0.658,2.056,0.766,0.85,1.108,2.932,0.886,0.497,0.475,1.368,0.94,0.954,1.074,0.791,0.844,0.872,1.256,1.028,1.725,1.61,1.338,1.13,0.903,0.855,0.827,0.806,0.79,0.876,7.852,1.162,2.863,1.564,0.659,0.732,0.608,0.655,1.113,1.242,1.429,1.312,2.13,3.374,1.824,2.328,1.288,0.808,0.73,0.677,0.633,0.599,0.586,0.637,0.65,2.323,0.828,0.561,0.917,1.19,2.025,1.51,2.116,2.495,2.828,2.111,3.038,1.88,1.645,1.545,1.02,0.435,0.8,0.748,0.705,0.676,0.671,0.709,0.656,1.051,1.197,1.262,1.012,0.971,0.86,1.186,1.281,1.755,3.872,2.367,2.992,2.196,1.889,2.179,1.534,0.929,0.814,0.737,0.658,0.66,0.677,0.882,1.198,0.922,1.024,0.869,0.572,1.043,1.098,0.961,1.05,0.636,0.461,0.629,1.566,1.864,1.508,1.448,1.216,0.673,0.636,0.857,0.839,0.827,0.829,0.913,0.885,0.836,1.135,1.947,0.55,0.57,1.561,1.079,0.911,0.413,0.682,1.588,1.52,1.253,2.065,1.637,2.225,1.148,1.905,0.897,0.839,0.832,0.804,3.596,1.142,1.125,2.047,1.627,0.501,0.377,0.737,0.531,0.809,0.686,0.89,1.328,1.679,9.498,1.957,1.574,0.962,0.68,0.858,0.986,0.925,0.882,0.859,0.91,1.395,1.676,5.728,6.864,2.642,1.184,1.481,2.295,1.649,1.44,1.757,1.514,2.099,2.272,1.657,9.607,2.017,0.655,0.833,0.995,0.943,0.909,0.898,0.937,0.979,1.247,1.017,1.073,1.017,3.185,1.104,1.052,1.521,1.51,1.175,1.015,9.507,1.692,1.167,0.971,1.328,1.589,0.8,0.74,0.7,0.671,0.668,0.705,0.696,0.673,0.86,1.962,0.921,0.982,1.897,2.298,2.228,2.679,2.766,2.987,2.982,2.241,2.032,1.8,3.696],"indoor_c":[24.43,24.44,24.44,24.44,24.36,24.29,24.11,23.35,23.33,23.33,23.33,23.33,23.1,22.81,22.46,22.34,22.66,23.8,24.47,24.34,24.52,24.5,23.89,22.87,23.43,23.84,24.11,24.78,25.09,24.75,25.15,25.6,25.37,24.96,24.67,24.4,24.21,23.97,23.61,22.78,22.03,22.53,23.03,22.37,22.29,22.31,23.48,24.18,24.54,24.77,24.94,25.05,25.13,25.25,25.45,25.25,24.82,24.88,24.05,24.03,23.92,23.18,22.87,22.57,22.76,22.98,22.65,23.75,22.71,22.8,23.19,24.14,24.41,24.58,24.75,24.89,25.04,25.17,24.64,25.01,24.57,24.89,24.98,24.82,24.63,24.47,24.37,24.39,24.34,24.21,24.37,24.42,23.81,23.21,23.21,23.62,23.96,24.03,24.11,24.22,24.38,24.94,25.41,25.64,25.63,25.46,25.21,24.96,24.8,24.81,24.51,24.3,24.06,23.53,23.72,22.5,23.03,23.43,24.73,24.1,24.45,24.48,24.55,24.71,24.92,25.01,24.91,25.04,24.15,23.71,23.44,23.01,22.75,22.48,22.21,22.12,21.87,23.56,24.52,23.94,23.22,23.7,24.0,24.27,24.51,24.33,24.21,24.88,24.76,25.05,25.39,25.42,25.46,25.35,25.05,24.78,24.38,24.13,23.88,23.57,23.28,22.91,22.94,23.02,23.33,23.49,23.86,24.15,24.29,24.46,24.55,24.67,24.89,25.02,24.94,25.18,25.12,24.95,24.81,24.5,24.21,23.54,23.2,22.98,22.59,21.6,21.76,21.98,22.09,22.51,23.09,23.36,23.57,23.75,23.91,23.98,24.05,24.18,24.41,24.61,24.67,24.68,24.53,24.32,24.17,23.39,23.31,23.13,23.1,22.88,22.39,22.88,23.1,23.31,23.48,23.74,23.92,24.1,24.23,24.31,24.43,24.52,24.78,24.99,25.08,25.0,24.79,24.46,24.06,23.7,24.22,22.61,21.73,21.4,21.3,21.12,22.41,23.1,23.76,23.13,22.58,22.35,22.34,23.62,24.36,24.68,23.18,23.61,23.88,23.81,23.67,23.44,22.81,22.5,22.38,22.42,22.08,22.67,22.56,22.8,23.06,22.69,23.93,24.79,24.62,24.42,24.14,24.15,24.2,24.32,24.8,25.18,24.64,24.3,23.87,23.58,23.43,23.1,22.77,22.54,22.53,22.77,23.17,22.65,22.02,21.43,21.75,23.66,24.19,24.5,24.35,24.49,24.68,24.89,24.74,24.89,24.35,23.92,23.62,23.41,23.17,22.91,22.66,23.39,23.36,23.62,23.79,23.88,24.3,23.07,22.83,24.56,24.22,24.92,24.59,24.71,24.9,25.05,25.43,25.68,25.6,25.24,24.82,24.48,24.14,23.82,23.61,23.2,22.6,22.91,23.26,22.62,22.47,22.73,22.79,23.64,23.88,24.12,24.25,24.39,24.57,24.62,24.8,24.14,24.33,24.28,24.18,23.97,23.6,23.37,23.12,22.54,22.16,22.3,21.86,22.04,22.21,22.48,22.73,22.2,22.95,23.36,23.66,23.88,24.06,24.22,24.48,24.65,24.66,23.99,23.59,23.3,22.99,22.71,22.48,22.11,21.84,22.16,22.42,22.63,23.7,24.28,24.82,24.25,24.34,24.4,24.45,24.48,24.52,24.96,25.23,25.1,24.46,24.18,23.75,23.6,23.53,23.6,24.0,24.42,25.19,25.95,26.84,27.43,23.51,23.43,23.31,24.35,24.52,24.62,24.69,24.73,24.79,24.87,25.04,25.07,24.56,24.03,23.59,23.38,23.13,22.89,22.68,22.49,22.37,23.44,23.7,23.98,23.2,23.24,23.3,23.89,24.11,24.17,24.27,24.4,24.56,24.73,24.27,24.11,24.02,24.45,24.47,24.27,23.94,23.73,23.55,23.43,22.98,23.49,23.47,23.66,23.73,23.76,23.93,24.05,24.27,24.32,24.43,24.6,24.82,24.51,24.76,24.85,24.28,24.11,23.99,23.73,23.49,23.39,23.31,23.16,23.22,22.94,23.24,23.32,23.35,22.2,22.72,23.59,23.97,24.14,24.55,23.79,24.26,24.55,24.91,24.24,23.91,23.63,23.46,23.26,23.06,22.82,22.62,22.49,22.44,22.99,23.38,24.51,23.84,24.1,24.26,23.84,24.37,24.5,24.59,24.68,24.83,24.95,24.73,24.97,24.02,24.1,23.96,23.67,23.44,23.28,23.15,22.91,22.06,22.05,21.9,21.59,21.82,21.98,22.68,23.22,23.43,23.7,23.86,23.98,24.11,24.24,24.48,23.87,24.13,24.83,23.87,23.67,22.86,22.25,21.48,21.15,20.87,21.2,21.2,21.51,21.81,22.07,22.93,24.01,22.96,23.14,23.2,23.24,23.28,23.37,23.86,24.31,24.29,23.77,23.23,22.93,22.64,22.41,22.15,21.72,21.0,20.85,20.71,21.07,21.65,21.86,22.12,22.46,22.65,22.82,23.76,24.29,24.66,24.59,24.73,24.65,24.05,23.86,23.59,23.31,22.99,22.72,22.54,22.42,23.28,23.66,23.52,23.55,23.96,23.24,23.29,23.91,24.12,24.18,24.28,24.39,24.52,24.68,24.94,25.02,24.76,24.56,23.83,23.21,22.97,23.48,23.36,23.37,22.39,22.69,23.69,23.92,22.81,22.88,22.26,23.18,23.49,23.62,23.76,23.93,24.15,23.25,23.79,24.09,23.64,23.72,23.54,23.38,23.14,22.98,22.74,22.5,22.26,22.07,22.94,22.63,23.32,23.79,24.4,24.86,24.33,24.31,24.27,24.33,24.47,24.65,24.7,24.68,24.03,23.33,22.82,23.08,22.66,22.3,21.74,21.37,21.27,21.62,21.97,22.9,23.56,23.34,24.1,24.82,24.03,24.19,24.22,24.28,24.38,24.53,24.76,24.82,24.76,24.5,24.14,23.35,23.58,22.7,22.51,22.23,21.97,22.48,22.29,23.07,23.82,24.41,24.98,24.23,24.23,24.27,24.29,24.32,24.35,24.44,24.61,24.6,24.45,23.5,23.45,23.15,22.43,21.54,21.08,20.82,20.62,20.82,21.25,21.69,22.04,22.35,21.66]}},"complete":true,"cost_usd":[0.0413,0.0849,0.1267,0.1677,0.2088,0.2588,0.3424,0.4174,0.7023,0.8342,0.9117,1.0485,1.1419,1.2314,1.3407,1.6699,1.9204,2.078,2.198,2.3443,2.5294,2.6871,2.8298,2.9836,3.0676,3.1298,3.1814,3.2331,3.3019,3.3768,3.4509,3.4927,3.5848,3.6264,3.6948,3.7952,4.0406,4.2289,4.3943,4.5843,4.7913,4.9566,5.1506,5.2844,5.4654,5.6173,5.7676,5.8624,5.9302,5.9838,6.0462,6.0844,6.1381,6.1749,6.2262,6.3097,6.4336,6.489,6.5511,6.6166,6.6612,6.8922,6.9458,7.0877,7.259,7.3852,7.5331,7.6314,7.7164,7.8341,7.8844,7.9313,7.9709,8.0104,8.074,8.1467,8.1993,8.2839,8.3948,8.451,8.5364,8.5761,8.6271,8.6556,8.7057,8.731,8.7653,8.7771,8.801,8.8644,8.9631,9.0563,9.1517,9.2353,9.3195,9.3926,9.4773,9.5609,9.6406,9.7172,9.814,9.8701,9.9383,10.0575,10.1037,10.1235,10.1488,10.1936,10.2478,10.2917,10.3594,10.4417,10.5513,10.7904,10.9563,11.1593,11.2909,11.3738,11.4305,11.4963,11.5883,11.6684,11.7573,11.845,11.9278,12.0282,12.3642,12.4594,12.5513,12.6923,12.7734,12.8108,12.865,12.9144,12.9945,13.0595,13.1394,13.259,13.3534,13.489,13.8606,13.979,14.0587,14.1325,14.2049,14.3228,14.4239,14.4938,14.5771,14.6585,14.8236,14.9093,15.0283,15.0875,15.1227,15.25,15.3729,15.4715,15.5703,15.6167,15.7021,15.8787,16.0444,16.162,16.2967,16.3933,16.4532,16.5045,16.5595,16.6446,16.7125,16.7786,16.8442,16.9951,17.0825,17.1384,17.2093,17.2328,17.2533,17.2905,17.3203,17.3696,17.4347,17.497,17.575,17.7013,17.8427,17.995,18.1351,18.2385,18.3281,18.3885,18.4464,18.4931,18.5327,18.5703,18.6069,18.644,18.7109,18.7596,18.8612,18.9038,18.9452,19.0205,19.1049,19.3714,19.5495,19.7135,19.8584,20.0281,20.2192,20.3579,20.4581,20.556,20.6722,20.7489,20.8107,20.8694,20.9141,20.9645,21.0115,21.1001,21.1347,21.1818,21.2223,21.2596,21.3019,21.3376,21.4094,21.7268,21.805,21.9294,22.2405,22.4305,22.6502,22.8347,22.9382,23.0195,23.1048,23.1802,23.2556,23.3335,23.4227,23.4941,23.5799,23.6673,23.8817,23.9846,24.139,24.2623,24.3352,24.3825,24.4384,24.5069,24.716,24.9396,25.1914,25.4204,25.5881,25.7007,25.8003,26.0781,26.1474,26.2453,26.3183,26.3853,26.4638,26.5555,26.6447,26.735,26.8254,26.8783,26.9187,26.9978,27.0508,27.1209,27.1766,27.286,27.3977,27.6363,28.1465,28.4424,28.645,28.9009,29.1326,29.3476,29.6431,29.7379,29.7942,29.8463,29.9264,29.9973,30.0812,30.1662,30.2878,30.3398,30.3855,30.4156,30.4538,30.4892,30.5283,30.5858,30.6686,30.8024,30.9562,31.0626,31.197,31.3645,31.5032,31.6309,31.7987,31.866,31.9383,32.0412,32.1396,32.2238,32.3027,32.3828,32.472,32.6198,32.6998,32.7336,32.7718,32.8022,32.8957,32.9668,33.0083,33.0623,33.1371,33.2789,33.4301,33.6004,33.7794,33.896,34.0007,34.122,34.2317,34.3423,34.4366,34.5241,34.6437,34.7087,34.7772,34.8982,35.0584,35.2011,35.2953,35.3864,35.4588,35.5248,35.654,35.7844,35.945,36.2054,36.3949,36.547,36.6908,36.8687,36.9612,37.1007,37.1712,37.2475,37.3095,37.3656,37.4168,37.4688,37.5266,37.6468,37.7136,37.7926,37.8577,37.9197,38.1279,38.2046,38.3177,38.4255,38.6236,38.7826,38.9189,39.0563,39.2134,39.314,39.3665,39.4205,39.475,39.5274,39.5666,39.603,39.6454,39.6454,39.6454,39.6454,39.6454,39.6454,39.6454,39.6454,39.6454,39.6454,39.6454,39.6454,39.6454,39.6454,39.6454,39.6454,39.7633,39.8895,39.9962,40.0594,40.1473,40.2273,40.3246,40.4157,40.5035,40.6793,40.8352,40.9082,40.9743,41.0697,41.1527,41.2079,41.3237,41.5333,41.6459,41.7709,41.8916,41.9669,42.0628,42.2124,42.3031,42.4632,42.5483,42.6441,42.745,42.8456,42.9362,43.0371,43.095,43.1483,43.2336,43.394,43.5254,43.6416,43.6918,43.7217,43.7972,43.8951,44.0386,44.091,44.1372,44.1821,44.266,44.3641,44.4633,44.5501,44.6074,44.6991,44.8063,44.939,45.0265,45.1092,45.2143,45.3421,45.399,45.4919,45.5749,45.6218,45.6635,45.7561,45.8303,45.8573,45.8891,45.916,46.0072,46.1334,46.2224,46.3136,46.4268,46.5771,46.6955,46.8162,46.8832,46.9388,46.9898,47.1095,47.2019,47.2828,47.372,47.4842,47.5298,47.561,47.5924,47.6866,47.7516,47.8239,47.9215,48.0484,48.2182,48.3878,48.618,48.7192,48.813,48.9241,49.0432,49.144,49.2487,49.362,49.4555,49.5428,49.6044,49.715,49.9507,50.101,50.2571,50.3405,50.3917,50.5122,50.6017,50.6669,50.7828,51.0515,51.2787,51.4747,51.643,51.8285,51.9681,52.1081,52.2092,52.2919,52.3588,52.4066,52.4507,52.4996,52.5407,52.5766,52.6314,52.7556,52.8867,53.2191,53.4681,53.5516,53.7055,53.824,54.0494,54.4059,54.6092,54.7927,55.0151,55.1867,55.334,55.4607,55.5459,55.6165,55.6767,55.745,55.7912,55.8345,55.8865,55.9455,55.9889,56.1264,56.2211,56.2797,56.4013,56.4536,56.6706,56.8663,56.9603,57.0876,57.373,57.5929,57.8165,57.9676,58.1097,58.2443,58.3881,58.4662,58.5431,58.6107,58.6746,58.7389,58.8261,58.9938,59.1347,59.2243,59.2769,59.3232,59.3737,59.4304,59.5057,59.5903,59.7185,59.801,59.8851,59.9281,59.9997,60.1791,60.2955,60.4335,60.5487,60.5913,60.6661,60.7691,60.8673,60.972,61.0954,61.2025,61.2764,61.3582,61.4198,61.4969,61.5354,61.5724,61.643,61.7013,61.7609,61.7963,61.8751,62.0394,62.1455,62.269,62.4301,62.5438,62.7801,62.8771,62.9792,63.082,63.1768,63.2654,63.3512,63.5171,63.6188,63.7138,63.8398,63.9142,63.9553,64.0107,64.0593,64.1055,64.1908,64.3404,64.595,64.7706,64.9481,65.3471,65.5069,65.7218,65.8002,65.8941,65.9759,66.0848,66.1855,66.2784,66.3674,66.4879,66.6766,66.8055,67.0315,67.2361,67.3536,67.4914,67.6122,67.7362,67.9274,68.128,68.4078,68.6644,68.8588,69.0549,69.1793,69.7217,69.8344,69.9073,69.9852,70.1256,70.2806,70.3806,70.4748,70.5685,70.7293,70.807,70.8772,70.9587,71.0443,71.1908,71.3016,71.4,71.5346,71.7309,71.9749,72.1622,72.5395,72.716,72.836,72.9473,73.067,73.1655,73.2166,73.2648,73.3031,73.3402,73.3838,73.43,73.4793,73.5735,73.6716,73.8633,74.0215,74.1201,74.2605,74.4309,74.6337,74.8528,75.0844,75.3188,75.5347,75.7133,75.8752,76.0308,76.19],"decisions":[{"clamps":[],"fallback":null,"reason":"Building_1 is 0.2 C below setpoint so no trim; batteries empty and no price spread, so hold batteries and tank at baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is at setpoint with trim end, so baseline cooling; batteries are empty at soc floor and price is not top, so hold all batteries and tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended and rooms are near setpoint, so baseline cooling holds; batteries follow the strategy's gentle pre-peak charge; tanks stay idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cooling at baseline-plus-range for Building_1 and Building_3 with trim off; batteries follow strategy values; no tank charging; flat-ish cheap hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim ended in Buildings 1-3 (state end, no baseline cooling); follow baseline cooling, use strategy battery charge of 0.021 each, tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is at setpoint with trim end, so baseline cooling; batteries idle per strategy since price is not top and charging is marginal; hold tank at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim ended or idle in all buildings; cooling at baseline, batteries held per strategy (no top-price discharge or cheap charge needed), DHW idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off for B1 and B3 so baseline cooling kept; B2 at baseline; battery follows strategy values; no tank use; cheap hour charging per plan.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 3 is at setpoint with trim end; baseline cooling kept, battery idle per strategy, no top-price discharge now, DHW idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended and rooms are near setpoint, so baseline cooling is kept; batteries follow the cheap-hour strategy charge of 0.15 with no tank action.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end in most buildings; B1 cooling at baseline, battery per strategy; B2 and B3 follow strategy battery; no top-price discharge now, tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended, so cooling stays at baseline; batteries follow strategy charging in cheap hours, and tanks stay idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling absent (all at setpoint), so baseline cooling; battery strategy charges in cheap hour before top-price hours 3-5; tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Buildings 1 and 2 unoccupied with trim end, so baseline cooling; follow strategy battery charging in cheap hour; no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"All buildings unoccupied with trim in end state, so cooling uses baseline; follow strategy_battery values, no tank use, no end_trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled rooms are not held; Building_3 is below setpoint with trim off. Follow strategy batteries (top-price discharge, grid charging disallowed), cooling at baseline, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled Building_3 is 1.0C below setpoint so trim held; battery follows strategy discharge over top-price hour; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims held or off per envelope; batteries discharge at strategy level over top-price hour; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Held trim in B3 kept at range edge; B1 and B2 stay at baseline cooling; batteries follow strategy during top-price hours; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cooling at baseline or held trims per state; battery follows strategy (discharge over top-price hours); no grid charging; tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cooling at baseline or trim end for all; battery follows strategy (small discharge, top price now); no grid charging; tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling trim is off for B1 and B3 and ending for B2, so baseline cooling; battery follows strategy as top-price now, discharge within load limits.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day so battery idle; Building_1 is 0.5C below setpoint so cooling trim is off, use baseline; B2 unoccupied, B3 at setpoint, keep baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is 1.48 C above setpoint so trim is ended; cooling at baseline, batteries idle on flat prices, DHW held at zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price and no top-price hours; batteries held per strategy, buildings 1 and 3 overcooled but trim off so baseline cooling kept, Building 2 unoccupied.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries idle; Building_1 and 3 cooling within range, Building_2 above setpoint with trim end so baseline cooling kept.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 are near or below setpoint with no trim; Building 2 is above setpoint so trim ends. Flat price, batteries idle, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries idle per strategy; Building_1 is 1.06C below setpoint so cooling cut to 0.0 within hold range; others unchanged.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price and no top-price hours; batteries idle per strategy, trim ends with baseline cooling, tanks held at zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, no top-price hours; batteries idle per strategy, cooling at baseline for B1 and B3 (trim off/end), B2 no cooling needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price and low battery usable energy; hold batteries idle, keep baseline cooling except trim-free buildings, and no DHW.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top-price hours; batteries idle per strategy. Cooling trims are off or end, so baseline cooling kept; Building_1 within band.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day so battery idle except spare solar storage; Building_1 and Building_3 cooling trimmed by envelope ranges; Building_2 unoccupied, baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top hours; B1 ease trim keeps cooling in range, B2 unoccupied uses baseline, B3 above setpoint uses baseline; batteries per strategy, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries idle per strategy; Building_1 eased trim within cooling range; Building_2 and 3 above setpoint at baseline cooling; no DHW.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries idle per strategy; cooling at baseline or trimmed inside range; trim ended state so null cooling; no dhw.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top-price hours, batteries held per strategy; cooling at baseline for Building_2 and 3 (trim end) and mild trim-free for Building_1.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top-price hours, batteries held per strategy; B1 and B2 overcooled, but trim state off or end so baseline cooling kept; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries idle per strategy; B1 and B2 trims state off/end so baseline cooling; B1 at -0.99C, B3 near setpoint, keep baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price and no top-price hours: batteries idle per strategy; cool to baseline in Building_1 and 2 (no trim), Building_3 at baseline, DHW idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top-price hours; B1 held trim at 0.5 cooling, B2 and B3 baseline-ish, batteries idle per strategy, no DHW.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, batteries idle per strategy; trim Building_1 held in ease at baseline-range cooling; Building_3 overcooled? no, it is 2.4C above? kept baseline; tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim B1 hold at 0.44 cooling (depth 0.15 respected), B2 and B3 at baseline, batteries idle per strategy, flat price, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top hours; batteries idle as strategy says. Cooling within ranges; B1 and B2 trims eased, B3 baseline, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top-price hours, batteries idle per strategy; B1 and B2 trims ended by state, B3 at baseline cooling with no trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price and no top-price hours; batteries idle per strategy. Building 1 and 2 cooling at baseline (trim ended); Building 3 trim off, baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price and no top-price hours, so batteries idle; B1 and B2 trim ended, cooling at baseline; B3 cooling baseline since trim off.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top-price hours; batteries idle per strategy. Building 1 is 1.04C below setpoint so cooling trimmed within range; others at baseline or end.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is 0.8 C below setpoint in hold, so cooling sent at 0.2496 (range floor) to ease the held trim; batteries idle on flat price; DHW left at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top-price hours, batteries idle per strategy; cooling set inside range with ease trim, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, no top-price hours; batteries idle per strategy. Cooling at baseline or trimmed per envelope; building 1 trim ended, so use null.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top-price hours, batteries idle per strategy; Building_1 overcooled 0.96 C so trim to 0.0526 floor within range; others at or above setpoint use baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is in end state and prices are flat, so cooling stays at baseline and batteries and tanks hold at zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price and no top-price hours; batteries idle per strategy. Building 1 is overcooled 0.9C so cooling trimmed within range; B2 and B3 at or above setpoint, keep baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price and no top-price hours; batteries idle per strategy, cooling at baseline or trimmed only where a held trim applies. Trim state is end, so null cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold cooling at baseline in B1 and B2/B3 (trim off or end); battery per strategy, price flat-ish, no top-price discharge now; no DHW.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or ended for all buildings, so baseline cooling; follow strategy battery values; no tank use; battery actions as given.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or ended; use baseline cooling except overcooled none. Follow strategy_battery values; no DHW; price flat-ish, no top price now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off in B1 and B3 with cooling at baseline; B2 unoccupied, trim end. Follow strategy batteries, no top-price now, no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end in all buildings so baseline cooling; B1 cooling near baseline; batteries follow strategy; no top-price now, store solar and hold tanks at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled rooms are not trimmed (state off/end), so baseline cooling; batteries follow strategy, which stores spare solar now since price is flat-low and no top hour is now.","status":"ok"},{"clamps":[{"applied":0.0,"point":"Building_1.battery","reason":"district load 8.92 kWh would pass the peak target 8.60 kWh, charging trimmed","requested":0.08,"rule":"peak"}],"fallback":null,"reason":"Overcooled rooms are not present; cooling at baseline or within range, battery per strategy, peak limiter on so no extra draw; tank idle.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Trim idle in B1 and B3 at baseline, B2 overcooled but trim off; keep cooling baseline, follow strategy battery and idle tank.","status":"ok"},{"clamps":[],"fallback":null,"reason":"All buildings are at or near setpoint with trim off or ended, so baseline cooling is kept and batteries stay idle per strategy_battery; tank held at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim ended in B1 and B2 with state end; B3 off. Cooling at baseline, batteries idle per strategy, tanks at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended in all buildings, so cooling stays at baseline; strategy batteries are idle and tanks stay at zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended and battery strategy is idle with no top-price hour now, so all devices keep baseline actions.","status":"ok"},{"clamps":[{"applied":0.0901,"point":"Building_3.cooling","reason":"more than 0.15 away from the ideal-load cooling 0.24","requested":0.09,"rule":"deviation"}],"fallback":null,"reason":"Overcooled occupied rooms get cooling cut to the envelope floor; batteries and tanks held per strategy since no top-price hour is now.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Hold hour: Building_1 and Building_3 need cooling in hold/end states; batteries idle per strategy, no top price now, DHW idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"All trims are off or ended and batteries follow strategy (idle); no top-price discharge or allowed charge this hour, so baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 overcooled 3.6C: cut cooling to 0; batteries idle per strategy, no top-price hour now; DHW idle.","status":"ok"},{"clamps":[{"applied":0.0,"point":"Building_1.cooling","reason":"indoor 23.1 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.047","requested":0.0,"rule":"trim_hold"}],"fallback":null,"reason":"B1 overcooled 1.4C below setpoint, cool at 0 within range; B2 at setpoint, baseline; B3 hold trim at baseline range; batteries idle per strategy, no top price now.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Building 1 cooling trim is in end state so baseline cooling; batteries idle per strategy since no top-price hour now and cheap hours ahead are low-value; dhw kept at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 2 is above setpoint with trim end, so baseline cooling; batteries idle per strategy since price is not top and charging is not cheap enough; no dhw.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off for B1; B2 and B3 at or above setpoint so baseline cooling; batteries follow strategy, cheap hour charging allowed, no top-price discharge yet.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled B1 and B3 not held; cooling at baseline unless trim active; follow strategy_battery charging in cheap hour; B2 above setpoint so cooling at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled rooms are off-trim; use baseline cooling, follow strategy battery, no DHW, no end trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 overcooled slightly but trim is off so baseline cooling; batteries follow strategy (charge in cheap hours, idle before top-price hours); no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 and 2 have no baseline cooling, so null; Building_3 cooling trim ended, use baseline; batteries follow strategy; no top price now, so charge per strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are at end state, so cooling uses baseline; batteries follow strategy (idle), no tank charging, no top-price discharge now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 0.55C below setpoint on hold-free ease; keep baseline cooling in range, batteries idle per strategy, no top-price discharge now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 and Building_3 cooling stay at baseline; Building_2 is unoccupied with trim end, so baseline; batteries idle per strategy, no top price now, dhw held at 0.","status":"ok"},{"clamps":[{"applied":0.0087,"point":"Building_1.cooling","reason":"indoor 23.8 C is near the bottom of the comfort band, cooling held at the baseline","requested":0.009,"rule":"comfort"}],"fallback":null,"reason":"Building 1 and 3 cooling at baseline-plus-trim within range; Building 2 unoccupied, trim end so baseline cooling; batteries idle per strategy, no top-price now.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Building_1 cooling held at baseline (trim ended, indoor near setpoint); batteries idle per strategy, price not top now, district load well under target.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling is absent in B1 and B3; B2 unoccupied so baseline. Follow strategy battery: B1 idle, B3 small charge in cheap hour; no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 trim off so baseline cooling; Building_2 and 3 unoccupied with trim end; follow strategy battery, no tank charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold cooling at baseline or trim as envelope allows; follow strategy_battery charging before top-price hours; no tank use; Building_2 overcooled slightly so trim not applicable.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end for all buildings so cooling at baseline; Building_2 overcooled? no, above setpoint; use baseline and strategy battery values; no grid charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim ends in B1/B2 (at setpoint or above), B3 idle; follow strategy_battery discharge over top-price hours, no grid charging, DHW off.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended and no room is overcooled, so cooling stays at baseline; batteries follow the strategy discharge for the top-price hours.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled B1 trimmed by null-equivalent baseline; B2 at setpoint+1.65 keeps baseline; batteries idle per strategy, tanks at 0, no end trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 are slightly below setpoint with trim off, so use baseline cooling; batteries follow strategy (idle) since no top-price hour now and no cheap charge window at 0.029.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_2 is above setpoint with trim end, so baseline cooling; batteries idle per strategy since no top-price now and no cheap-hour charge needed; tanks at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended in all buildings and strategy_battery is 0 everywhere, so the baseline cooling and idle batteries are kept this hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 are near setpoint with no trim; Building 2 is above setpoint, so cooling at baseline; batteries idle per strategy, no top price now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Buildings 1 and 2 are overcooled but trim state is end, so baseline cooling; batteries idle per strategy, no top-price hours now and no charging needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 1.63C below setpoint so cooling trim is off; follow strategy batteries (charge gently in cheap hour), no tank use, cooling at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim ended in all buildings (at setpoint); follow strategy battery charging in cheap hour, no DHW, cooling at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hour 3 is cheap and clean; charge batteries gently per strategy, cool at baseline with no trim, leave tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: charge batteries in cheap hour, cooling at baseline where trim is off or end; no dhw; B1 trim off so baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is 0.42C below setpoint with trim off, so baseline cooling; batteries follow strategy values; no top price now, DHW idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is 0.73C below setpoint so trim is off; cool near baseline, follow strategy battery charging in cheap hour, no top price now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold cooling near baseline with trims off, follow strategy battery actions, leave tanks idle; top-price hours start in 9h, so charge cheaply now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or end in all buildings so baseline cooling; B1 and B3 battery follow strategy; B2 battery stays at strategy 0; no tank charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled Building_1 is 1.38C below setpoint but trim is off, so baseline cooling; batteries follow strategy values; no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cut cooling in overcooled occupied rooms is not needed; B1 is 1.45C below setpoint so send low cooling in range; battery per strategy; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim ends in B1 and B3 (end state, at or above setpoint); B2 unoccupied and hot, so use baseline cooling; follow strategy battery values, which are zero or tiny.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold cooling at baseline or within ranges, follow strategy_battery (small charge in B3, idle elsewhere), no tank use, no trim since none is active.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end in most buildings; B1 cooling at baseline-ish within range, storing solar in batteries per strategy, tank idle; B2 unoccupied end trim, use baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 0.27C below setpoint so baseline cooling stays; Building 2 unoccupied ends trim; batteries idle per strategy, price not at top.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled-free: buildings 1 and 3 at baseline in end trim; building 2 unoccupied; battery per strategy, small charge in cheap hour before top price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended, so cooling stays at baseline; batteries follow strategy discharge over top-price hours; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended, so cooling stays at baseline; batteries follow strategy_battery discharge for top-price hours, all within ranges; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended in all buildings so cooling stays at baseline; batteries discharge per strategy over top-price hours to cut district peak.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hour 19: B1 and B3 cooling inside ranges; B2 unoccupied trim end so null; battery per strategy, B2 idle; top price not yet, charge none.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end in all buildings; hold cooling at baseline, follow strategy battery values, peak headroom zero so no charging, no DHW.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold cooling at baseline for B2 (end state); B1 and B3 overcooled but trim off so baseline; batteries idle per strategy, no top price now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended and strategy batteries are idle, so all devices keep baseline actions this hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 are over 1.3C below setpoint with trim off, so baseline cooling is kept; batteries idle per strategy and no peak-shaving discharge needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"All trims are in end state with no held cooling, so baseline cooling; batteries follow strategy (idle), no tank charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end for all but none held; cooling at baseline where state off, B2 end uses null; battery per strategy, cheap hour charge within grid_charging_ok; no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling trim is off in B1 and B3 and ended in B2; cooling at baseline, follow strategy_battery charging 0.15 in all buildings, DHW idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cooling at baseline for B1 (trim end), B2/B3 near baseline; batteries follow strategy charging in cheap hour; no top price now, DHW idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling trim off in B1 and B3 at baseline; B2 idle; batteries follow strategy charging in cheap hour; no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 trim is off so baseline cooling; Building_2 and 3 use baseline; batteries follow strategy charging in cheap hour; no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end in all buildings; keep baseline cooling, follow strategy battery charging in cheap hour, no DHW.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 and Building_3 cooling trims are off or ended; Building_2 has no baseline cooling. Following strategy battery actions, with peak headroom zero and no top price now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled B1 and B3 trims are off/end so baseline cooling; follow strategy battery charging in cheap hour, tank idle, B2 battery per strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended, so cooling stays at baseline; batteries follow strategy_battery, which charges in this cheap hour before the top-price hours.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold cooling at baseline where trim is off or ended; follow strategy battery and skip DHW and grid charging as price is not top and district load is near target.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off in B1 and B3 so baseline cooling; B2 unoccupied at end state, use null; batteries follow strategy; no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off in B1/B3 so baseline cooling; B2 unoccupied end state uses baseline; follow strategy_battery values; no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim eases cooling within ranges; battery follows strategy values; no top price now, so tanks stay idle and batteries charge gently.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling trims are off or ended; follow strategy_battery charging in cheap hour before top-price window, no DHW, cooling at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling trim off; Building_1 and 3 batteries follow strategy; Building_2 unoccupied, cooling baseline; tank idle and no grid charging spike.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off in B1/B3 so baseline cooling; B2 unoccupied end state uses baseline; follow strategy_battery for all, no DHW, top-price discharge.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended so cooling stays at baseline; batteries follow strategy, discharging B2 and B3 into top-price hours and B1 idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_3 is overcooled so its cooling is cut to the range floor; batteries follow strategy discharge over top-price hours; others keep baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim B3 held at 0.15 depth; B1 and B2 at baseline; battery follows strategy values since top price is not yet active and load is near peak target.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cooling at baseline or trim-held per state; battery follows strategy values since price is not top now; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended in all buildings, so cooling stays at baseline; Building_3 follows strategy battery discharge for peak shaving.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 are below setpoint with trim off, so baseline cooling; Building 2 at end state, baseline; batteries idle per strategy, DHW idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 are overcooled-ish but trim off; B2 at setpoint+1.5 with end trim state; keep baselines, batteries idle per strategy, no grid charging at near-flat price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 are within band with cooling inside range; Building 2 is overheated above setpoint with trim end, so baseline cooling; batteries idle per strategy; no hot water.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim states: B1 and B2 at end and B3 off, so cooling uses baseline; batteries idle per strategy since price not top and grid charging gains negligible.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is at setpoint so trim ends; hold cooling at baseline, follow strategy_battery charging, and leave tank idle since prices are low now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is 0.88 C below setpoint so trim is off; use baseline-range cooling, follow strategy battery charging in cheap hour, no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is 0.7C below setpoint so cooling trim held at range floor; batteries follow strategy charging in cheap hour; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hour 5 is cheap and clean with no top price now; follow strategy battery charging, cool only within ranges, and end the trim as baseline cooling applies.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hour 6 is cheap with no top price now; keep the strategy battery charge, cool per baseline, and leave dhw idle with trims off.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 2 is 1.5C above setpoint so trim is off; cooling at baseline, batteries follow strategy, tank idle, no end_trim since not held.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended, so baseline cooling holds; follow strategy_battery (small charge, cheap hour) and leave tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or ended, so baseline cooling; battery follows strategy values, which are small charges in a cheap hour with headroom; no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold baseline cooling where unoccupied or in-band; Building_1 overcooled slightly but ranges allow only tiny trim; follow strategy battery; no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end for all; hold cooling at baseline, follow strategy_battery (charge in cheap hour before top price), dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended, so cooling stays at baseline; batteries follow strategy_battery; no tank use and no top-price discharge now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled Building_1 is 1.07C below setpoint but trim is off, so baseline cooling; batteries follow strategy values; no tank use, no top price now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold cooling at baseline where trim is off; Building_2 unoccupied with end state so baseline; batteries follow strategy, dhw idle, no top price now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off and rooms are within band, so cooling stays at baseline; batteries follow strategy_battery, charging gently ahead of the top-price hours.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or ended in B1/B3/B2 so baseline cooling; B1 at -2.28C with trim off keeps baseline; batteries follow strategy_battery during top-price hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended so cooling stays at baseline; batteries follow strategy discharge for the top-price hour; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended, so cooling stays at baseline; batteries follow the strategy discharge for the top-price hours and tanks stay idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hour 19 is not a top-price hour and strategy_battery is 0 for all; cool per trim rules, no hold trims active, keep batteries and tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"All trims are off or ended and strategy_battery is 0, so baseline cooling and idle storage hold; no peak or price action needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 2 is at setpoint with trim end, so baseline cooling; batteries follow strategy (idle), building 1 and 3 hold baseline cooling; no peak or price action needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is overcooled 1.4 C below setpoint but trim is off, so baseline cooling; batteries follow strategy (hold), no tank charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 are overcooled by about 1 C but trim is off, so baseline cooling; batteries idle per strategy, price not top and no discharge needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 2 is overcooled but trim is end with no end_trim, so baseline cooling; batteries follow strategy (idle), dhw idle, no price peak now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim states: B1 end, B2 end, B3 off so cooling at baseline; batteries idle per strategy since no top-price now and grid charging cheap hours ahead is small; hold tank at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling trim off; cooling at baseline, batteries follow strategy charging in cheap hours; no tank use; top-price hours ahead.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cooling at baseline or ceded to envelope; battery follows strategy charging in cheap hour; tanks idle; no trim active.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim ended in B1 and B3 has no trim; B2 overcooled but no cooling trim active, so baseline cooling. Battery follows strategy; cheap hour, charge modestly.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cooling: B1 and B2 trim ended, use baseline 0; B3 at baseline within range; batteries follow strategy charging in cheap hour; no DHW.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim ended or off for all; keep baseline cooling, follow strategy battery charging in cheap hour, no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end in all buildings so cooling at baseline except B1 hold-free; follow strategy batteries; no tank use; cooling kept at baseline where null.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim ended for all buildings; keep baseline cooling, follow strategy_battery (idle), no tank charging, no grid charge at this price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim ends in B1 and B3 are not needed; B2 unoccupied, all cooling at baseline; battery strategy idle as given, no top-price now, DHW off.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim ended in B1 and B3; B2 unoccupied idle. Follow strategy_battery (store solar), keep cooling at baseline, no DHW, no grid charging at this price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 0.76C above setpoint so cooling stays at baseline; batteries follow strategy, storing spare solar as price is low and top-price hours are ahead.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold cooling at baseline or trimmed per envelope; Building_1 trim ended, battery follows strategy; no tank use; cooling null where trim is end.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims ended in unoccupied/at-setpoint rooms; follow baseline cooling, use strategy battery values (charging is cheap, top price 3-5h ahead), no tank action.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold cooling at baseline where trim is off; battery per strategy: Building 3 small charge in cheap hour, others idle; no DHW, no end_trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended and no room is overcooled, so cooling stays at baseline; Building_3 follows its strategy battery charge of 0.023 in the cheap hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended and no building is overcooled, so cooling stays at baseline; batteries follow strategy discharge for the top-price hours.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended, so cooling stays at baseline; batteries follow the strategy discharge for the top-price hour within range.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended, so cooling stays at baseline; batteries discharge per strategy_battery over the top-price hour, within ranges.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended in all buildings, so cooling stays at baseline; batteries follow strategy_battery for the top-price hours; DHW stays idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended in all buildings, so cooling stays at baseline; batteries follow strategy discharge for the top-price hours, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended in all buildings so cooling stays at baseline; batteries follow strategy discharge for the top-price hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end in all buildings so cooling stays at baseline; battery follows strategy values, dhw idle, top-price discharge to shave peak.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price and no top-price hours, so batteries stay idle; Building_2 is at setpoint with trim end, so baseline cooling; Building_1 and 3 use baseline with no trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top-price hours; batteries idle per strategy, cooling at baseline or trimmed only where overcooled, tanks left at zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day so batteries idle; Building_2 is at setpoint with trim end, so null cooling; Buildings 1 and 3 are cooled at baseline since trim is off.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price and no top-price hours; batteries idle per strategy, B1 and B3 cooling at baseline, B2 trim ended with null cooling and end_trim not allowed so baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price and no top-price hours; batteries idle per strategy. Buildings 1 and 3 slightly below setpoint, so cooling kept at baseline; Building 2 trim off.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, strategy_battery is 0 for all; hold batteries idle, keep cooling near baseline within ranges, no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_2 is 1.3 C above setpoint so cooling stays at baseline; batteries idle per strategy on flat prices; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price and no top-price hours; batteries idle per strategy, cooling at baseline-range minimum since trims are off or ended, dhw held at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top-price hours, strategy says hold; cooling at baseline-range minimum is fine since trims are end and buildings are near setpoint; keep tanks and batteries idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top-price hours, strategy batteries idle; cooling trims are in end state so use baseline (null); no dhw, batteries held.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, batteries near floor and strategy says hold; buildings at end trim so baseline cooling; tank idle, no battery action.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, batteries near floor and strategy says hold; B2 and B3 at or above setpoint so cooling at baseline; B1 slightly below setpoint, keep baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top-price hours, strategy battery idle; buildings above setpoint keep baseline cooling, Building_2 is 1.24C above so baseline held, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 2 is above setpoint with trim end, so baseline cooling; flat price, strategy batteries idle, tanks idle, all as baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day so batteries idle; cooling at baseline for B1 and B3 in end state, B2 end state at baseline; no tank action.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end in all buildings so cooling at baseline; flat price, battery strategy near zero; B1 and B3 follow strategy, B2 idle; peak limiter on.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat prices and no trim active, so cooling stays at baseline; Building_3 battery follows the small peak-shaving strategy value.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended so baseline cooling holds; batteries are near floor, so I follow strategy_battery and keep tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price and tiny battery usable charge, so storage stays idle; trims are off or ended, so all cooling stays at baseline and the tank is untouched.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day so battery idle; cooling trims are off except B1 and B3 at baseline; B2 above setpoint in end state, so baseline cooling kept.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Buildings 1 and 3 are overcooled but trim is off, so baseline cooling is kept; battery idle on flat price with tiny usable charge; no tank action.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries nearly empty so idle; cool per baseline where trim is off, hold cooling inside ranges for overcooled rooms.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price and tiny battery usable energy: keep batteries idle per strategy; trim Building_1 at range floor, Building_2 at baseline, Building_3 at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day so battery idle; trim states respected: B1 ease at cooling 0.105 within range, B2 end with null, B3 off with null, no tank charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day with batteries near floor and no top-price hours; hold batteries, use cooling within range, keep dhw idle, no end_trim as trims are off or end.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top-price hours and batteries near floor; hold battery and tank, let cooling follow baseline since trims are off or ended.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours; batteries idle per strategy, Building_1 and Building_3 cooling within range at baseline, Building_2 at baseline with trim end.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, batteries idle per strategy; trim ease in B1 and B3 hold-free, so send baseline-level cooling within ranges; B2 at setpoint uses baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 0.9 C below setpoint in hold, so cooling goes to 0.0441 (range minimum) to ease the overcool; batteries and tanks idle on flat price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price and no top-price hours; batteries idle per strategy. Building 1 and 2 trims ended, so cooling at baseline; Building 3 trim off, baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top-price hours, batteries near floor; keep baseline cooling where trim is off, hold batteries idle as strategy says, no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries idle per strategy; Building_1 and Building_3 cooling held at baseline; Building_2 above setpoint so baseline cooling; dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries idle per strategy; Building_1 is 0.92 C below setpoint so hold a cooling trim within range; others at or above setpoint use baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim ended in all buildings; cooling at baseline, batteries idle per strategy, no grid charging at flat price, tanks at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling trims not active; Building_1 cooling near baseline, batteries idle per strategy since prices flat-ish and SOC near floor; keep baseline and tank at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 2.26C below setpoint in hold-free off state; use baseline cooling, battery per strategy, end trims unused, no grid charging at flat-ish price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 1.0C below setpoint with trim off, so baseline cooling; batteries follow strategy, Building 2 and 3 at or above setpoint use baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end in all buildings so cooling stays at baseline; battery follows strategy values; no tank action; price flat-ish, no top-price discharge now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended and no top-price hours are active, so all devices keep baseline; batteries idle per strategy, tanks at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or ended in all buildings; follow baseline cooling, use strategy battery values within ranges, no tank use, peak limiter on.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 1.42C below setpoint so trim hold applies; cut cooling to 0.1 and keep batteries idle per strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim held in B1 and B3 at min depth; cooling set inside ranges; batteries follow strategy (B1 small discharge, others idle); no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is held 2.6 C below setpoint, so cooling is cut to the range floor; batteries stay idle per strategy with negligible usable charge.","status":"ok"},{"clamps":[],"fallback":null,"reason":"All buildings hold baseline cooling, trims are off or ended, batteries are at floor with negligible usable charge, and tanks stay idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended and all batteries are near floor with no usable charge, so baseline cooling and idle storage are kept.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended in all buildings, so cooling stays at baseline; batteries idle per strategy since no top-price hour is active and load is under target.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 are overcooled by over 2 C but cooling_range has no trim state; send baseline-equivalent cooling within range, batteries idle as strategy says, tanks idle.","status":"ok"},{"clamps":[{"applied":0.1008,"point":"Building_1.cooling","reason":"indoor 23.8 C is near the bottom of the comfort band, cooling held at the baseline","requested":0.101,"rule":"comfort"},{"applied":0.0,"point":"Building_1.cooling","reason":"indoor 23.8 C is more than 0.5 C below the setpoint 25.8 C, trim held at 0.150","requested":0.1008,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 and 3 are held below setpoint so cooling sent at trim-allowed levels; batteries idle per strategy, DHW stays zero.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Building 1 and 2 trims are at end, so baseline cooling; Building 3 trim eases with cooling inside range; batteries idle per strategy, no top price now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 and 3 cooling within ranges, Building_2 above setpoint so trim ends; batteries idle per strategy, tanks at zero, price not top now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling trim is off in all buildings; batteries near floor with no top-price now, so hold strategy battery idle and keep dhw at zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling is small (under 0.5 C below setpoint, trim off), so cooling stays at baseline; batteries hold per strategy with no top-price discharge or useful charge now.","status":"ok"},{"clamps":[{"applied":0.103,"point":"Building_1.cooling","reason":"more than 0.15 away from the ideal-load cooling 0.25","requested":0.1,"rule":"deviation"}],"fallback":null,"reason":"Overcooled Building_1 by 1.5C: cut cooling to 0.1; batteries follow strategy (charge gently in cheap hour); no hot water action.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Ease trims near setpoint, use strategy battery charging in cheap clean hour, no DHW, keep cooling inside ranges; Building_2 at baseline cooling since above setpoint.","status":"ok"},{"clamps":[{"applied":0.0,"point":"Building_3.cooling","reason":"indoor 23.6 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.051","requested":0.0,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 and 2 at or above setpoint so baseline cooling; Building_3 held trim at min depth; batteries follow strategy charging in cheap hour.","status":"clamped"},{"clamps":[{"applied":0.0,"point":"Building_3.cooling","reason":"indoor 24.4 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.051 by at most 0.02 per hour","requested":0.031,"rule":"trim_hold"}],"fallback":null,"reason":"Trim hold on B3 ease state; B1 and B2 at baseline cooling; follow strategy battery charging in cheap hour, no DHW.","status":"clamped"},{"clamps":[{"applied":0.2122,"point":"Building_3.cooling","reason":"more than 0.15 away from the ideal-load cooling 0.36","requested":0.0,"rule":"deviation"},{"applied":0.3622,"point":"Building_3.cooling","reason":"trim ended, indoor 24.7 C is at or above the setpoint 24.4 C, cooling back to the baseline","requested":0.2122,"rule":"trim_hold"}],"fallback":null,"reason":"Hold cooling at baseline for B1 and B2 (trim off or end), trim B3 per eased hold, follow strategy batteries, no DHW.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Building_1 and Building_3 cooling stay at baseline (not overcooled); Building_2 is above setpoint with trim end, so baseline cooling; batteries idle per strategy; no tank charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off for B1 and B3 so baseline cooling; B2 in end state at baseline; battery per strategy; no tank charging; hour 9 is not top price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hour 10: no top price now, cooling at baseline with trim off; batteries follow strategy values (0.15 charge), tanks idle, no end_trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or ended for all; use baseline cooling, follow strategy battery values, no tank use, respect ranges and no top-price discharge now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled occupied Building_1 gets cooling cut to 0.1115; batteries follow strategy values, which charge gently ahead of the top-price hours.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim in ease state: cool at baseline-ish within range; battery per strategy (small charge in cheap hour), no tank, no end trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim in ease state: keep cooling near ease level within range; batteries idle per strategy, no top price now, grid charging deferred.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended in all buildings, so baseline cooling is kept; batteries follow strategy peak-shaving discharge and tanks stay idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended in all buildings, so cooling stays at baseline; batteries follow strategy discharge for the top-price hours, dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended in all buildings, so cooling stays at baseline; batteries follow strategy discharge for the top-price hour, within ranges.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended, so cooling stays at baseline; batteries discharge per strategy over top-price hours; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 are overcooled-free (trim off); keep baseline cooling, batteries per strategy (idle), no grid charging at current price, DHW zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled occupied Building_1 cut cooling to range floor; batteries idle per strategy, no top price now, load below target.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled occupied rooms in B1 and B3 get their only allowed cooling value; B2 is at setpoint so baseline; batteries idle per strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Peak limiter at target with no headroom: discharge batteries per strategy, ease cooling within range, and let Building_2 trim sit at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Buildings 1 and 2 are at baseline cooling with trim ended; Building 3 is held overcooled so its cooling is cut within range; batteries and tanks stay idle per strategy.","status":"ok"},{"clamps":[{"applied":0.0,"point":"Building_3.cooling","reason":"indoor 23.9 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.140","requested":0.0,"rule":"trim_hold"}],"fallback":null,"reason":"Building_3 is held 0.5 C below setpoint so its cooling is cut to 0; the other two stay at baseline and batteries idle, as strategy says.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Building 1 is 1.57 C below setpoint with trim off, so baseline cooling is kept; batteries hold per strategy, prices not at top, and tanks stay idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 2 are slightly below setpoint with trim off, so baseline cooling; batteries idle per strategy, no top-price hour now and grid charging is not warranted.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling trims are off; Building_1 is 1.26C below setpoint with trim off so baseline cooling held; batteries follow strategy charge 0.15 in cheap hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are in end state so cooling uses baseline; batteries follow strategy charging in cheap hour, no tank use, no end_trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled Building_1 is 1.31C below setpoint; trim off so baseline cooling kept; batteries follow strategy charging in cheap hour, no DHW.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hour 6 is cheap and not top-price; follow strategy battery charging, cool at baseline unless overcooled, keep tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end in all buildings so baseline cooling; B1 near setpoint, B2/B3 above; follow strategy battery charging of 0.15 in cheap hour, no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended and batteries follow strategy (hold); baseline cooling kept, tanks idle, peak limiter headroom ample.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling trims are off; B1 and B3 cooling at baseline per trim state, B2 at end. Batteries follow strategy; no top price now, store spare solar, no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or ended in all buildings; follow strategy battery values, cooling at baseline where state is off or end, no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is 1.03C below setpoint, so trim is off and baseline cooling holds; batteries and tanks follow strategy (idle, no top price now).","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is 0.99C below setpoint so cooling trim is inactive; keep baseline-ish cooling, batteries idle per strategy, no top-price hour now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_2 unoccupied with trim end, so baseline cooling; Building_1 and Building_3 trim off, use baseline cooling; batteries idle per strategy, no top-price now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off in B1/B3 so baseline cooling; B2 unoccupied end state uses baseline. Battery per strategy: B1 idle, B2 small charge, B3 small charge; no top price now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended, so cooling stays at baseline; batteries follow strategy_battery since top price is not active now and grid charging is allowed; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended in all buildings so cooling stays at baseline; batteries follow strategy discharge for the top-price hours, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended, so baseline cooling is kept; batteries follow strategy discharge for top-price hours; tanks stay idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended so cooling stays at baseline; batteries follow strategy discharge for the top-price hours; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 are overcooled-free (within band); B2 at setpoint ends trim; batteries idle per strategy, no top price now, load below peak target.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 are overcooled below setpoint with trim off; keep baseline cooling since trim is off, battery idle per strategy, price not top now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended and no building is held, so cooling stays at baseline; batteries hold per strategy since no top-price hour is now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 are overcooled below setpoint but trim is off, so baseline cooling in range; batteries idle per strategy, DHW zero, Building 2 trim ended.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold trims for B1 and B3 at range limits, B2 ends trim with null; battery per strategy, peak headroom zero so no charging.","status":"ok"},{"clamps":[{"applied":0.0,"point":"Building_3.cooling","reason":"indoor 21.7 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.150","requested":0.0,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 and 3 cooling per envelope ranges; Building_1 trim ended so baseline; Building_3 overcooled 2.7C below setpoint so cooling at 0; batteries idle per strategy.","status":"clamped"},{"clamps":[{"applied":0.0,"point":"Building_3.cooling","reason":"indoor 23.7 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.150","requested":0.0,"rule":"trim_hold"}],"fallback":null,"reason":"Building_3 is held 0.8 C below setpoint so cooling must stay at trim depth 0.15 on hold; batteries idle per strategy, no top-price hour now.","status":"clamped"},{"clamps":[{"applied":0.0,"point":"Building_3.cooling","reason":"indoor 24.2 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.150 by at most 0.02 per hour","requested":0.0,"rule":"trim_hold"}],"fallback":null,"reason":"Building 1 is overcooled but trim is off so baseline cooling; Building 3 holds trim at 0.15 within range; batteries idle per strategy, no top-price hours now.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Overcooled buildings held at trim floor; battery follows strategy values (gentle charge in cheap hour), tank idle, no end_trim since not allowed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim states ease/end/off; cooling at baseline-ish within ranges, battery follows strategy charging in cheap hour; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are in end state with no hold, so baseline cooling; battery follows strategy charging in a cheap hour, dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cooling at baseline or trimmed per state; battery follows strategy charge 0.15 in cheap hour; no tank use; no end_trim as trim is off or end.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended and rooms are not overcooled, so baseline cooling is kept; batteries follow the strategy charge of 0.15 in this cheap hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 0.63C below setpoint so trim is off; cooling at baseline, batteries idle per strategy, no top-price discharge now, DHW idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off for Building_1 and ended for 2 and 3; sending baseline cooling, batteries idle per strategy, no grid charging at this price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is overcooled but trim is off so cooling stays at baseline; battery follows strategy, storing solar before top-price hours 6-8.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end in all buildings so cooling at baseline; batteries follow strategy, storing spare solar now since price is not top and grid charging is cheap-hour only.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end in all buildings so cooling stays at baseline; batteries follow strategy values, storing spare solar while no top-price hour is now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow envelope baselines; building 1 has overcooling-free state off, trims off; batteries per strategy, charging only Building_3 via strategy 0.15 within range.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end in all buildings; keep baseline cooling, follow strategy battery values, no tank use; top price not active now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end in most buildings; overcooled B1 held via cooling in range; batteries follow strategy, no top price now, no peak discharge yet.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Ease trims toward baseline within range, follow strategy battery discharge at top price, keep DHW idle, no grid charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Held cooling at the range limits for overcooled rooms, followed strategy battery discharge into the top-price hour; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold trims at range-fixed cooling, follow strategy battery discharge for top-price hours, leave unoccupied Building_2 at baseline and tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is 1.0C below setpoint in hold, so cool at 0.3482 (range min); batteries idle per strategy; no price peak now, no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is overcooled so its cooling is set to the range max, Building_2 is at end with null cooling, Building_3 eases to range max, and batteries hold per strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim eased within 0.5 C in B1 and B3, B2 at setpoint with no trim; hold cooling near baseline, batteries idle per strategy, no grid charging at this price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 0.32 C below setpoint in ease state, so cooling stays near the trim floor; batteries idle per strategy since no top-price hour now and next top hours are later.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims: B1 end, B2 end, B3 off so cooling at baseline; batteries idle per strategy, top price not until hour 17; no tank charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 and 3 are overcooled-capable only within range; Building_2 trim ended, send baseline; batteries idle per strategy; no top price now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are at end state with no cooling change needed; batteries idle per strategy, price not top now and charging not warranted; dhw held at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow envelope and strategy: cooling inside ranges, battery per strategy in cheap hour, no tank use, end trim not needed.","status":"ok"},{"clamps":[{"applied":0.0587,"point":"Building_3.cooling","reason":"trim ended, indoor 24.9 C is at or above the setpoint 24.4 C, cooling back to the baseline","requested":0.0,"rule":"trim_hold"}],"fallback":null,"reason":"Overcooled-free hour: B1 and B2 at baseline-ish cooling within range, B3 trim ended; batteries follow strategy charging in cheap hour.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Trim B1 hold at min depth, use strategy battery; B2 and B3 baseline cooling, battery charge per strategy in cheap hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold trim on Building_1 at minimal depth, use strategy battery charging in cheap hour, no DHW, Building_2 and 3 baseline cooling with strategy battery.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim eased per state; cooling at baseline-ish within range, strategy battery charging given cheap hour, no tank use, no top price now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim in ease state: keep cooling within range near baseline; battery follows strategy values; no tank use; end_trim not needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended, so baseline cooling holds; batteries follow strategy values, within ranges; tanks idle as required.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled B1 gets trimmed cooling via cooling_range; B3 unoccupied so baseline; B2 at setpoint uses baseline; batteries follow strategy, with the B1 charge being minor.","status":"ok"},{"clamps":[{"applied":0.0,"point":"Building_1.cooling","reason":"indoor 24.2 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.150 by at most 0.02 per hour","requested":0.0,"rule":"trim_hold"}],"fallback":null,"reason":"Trim states: B1 ease keeps cooling at range 0; B2 and B3 unoccupied so baseline; follow strategy_battery and hold DHW at 0.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Trim eases in Building_1 and 2 uncooled; batteries follow strategy, Building_3 stores spare solar, dhw idle, no peak-shaving needed yet.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim ended in all buildings; cooling at baseline, battery per strategy (small charge from spare solar), tanks idle, no top-price discharge now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off in B1 and ends in B2/B3 so cooling stays at baseline; battery follows strategy values; no top price now, tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled Building_1 is 1.4C below setpoint so trim cuts cooling to 0.0367; batteries follow strategy; B2 and B3 unoccupied, baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim ends in B1 and B3 unoccupied/at setpoint, B2 unoccupied; follow strategy battery (idle now, top-price ahead), dhw idle, cooling at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended, so cooling stays at baseline; batteries follow strategy_battery for the top-price discharge; DHW idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end for all but B1 (off, no trim); keep baseline cooling, follow strategy battery discharge over top-price hours, no DHW.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended so cooling stays at baseline; batteries follow strategy discharge for top-price hours; tanks stay idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended and no top-price discharge applies, so baseline cooling, idle batteries and idle tanks hold this hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Peak is at target with zero headroom, so I follow the strategy battery discharges for peak shaving; cooling stays at baseline since no trim is active.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 and Building_3 are 1.2-1.8C below setpoint, so trim is off and cooling stays at baseline; batteries follow strategy, no top price now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended in all buildings so baseline cooling is kept; batteries idle per strategy as price is not at top and headroom is ample.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 are overcooled-free (state off), so baseline cooling; Building 2 end trim not needed; batteries idle per strategy, no top-price discharge now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end for most buildings; follow strategy battery charging in cheap hour, no tank use; Building_2 at setpoint so null cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim ends or is off in all buildings; follow baseline cooling, use strategy battery charging in cheap hour, no dhw, Building_2 overcooled but at setpoint+2 so baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cooling at baseline or trimmed per state; battery charges at strategy level in cheap hour; no tank action; grid charging allowed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 1.03C below setpoint, so cooling trim is off and baseline cooling is kept; batteries follow strategy charging in this cheap hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling trim off; use baseline cooling, follow strategy battery charging in cheap hour, no DHW, end_trim not applicable.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling trims are off; keep baselines for cooling, hold battery per strategy (charge in cheap hour), tank idle, no end_trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 overcooled 1.18C below setpoint so cooling trim is off; follow strategy batteries, no tank use, cheap hour charging within limits.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled buildings are off trim so baseline cooling is kept; batteries follow strategy values, which are inside ranges, with no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end in all buildings, so baseline cooling; follow strategy_battery (B3 discharge-free charge 0.15 cheap hour), tank idle, battery per strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Peak limiter is on and load is at target, so batteries follow the strategy discharge for peak shaving; cooling stays at baseline since trims are off or ended.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy_battery; cool at baseline in B1 and B3 (trim off), end trim in B2 is off so baseline cooling; no DHW; battery per strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end in all buildings; follow strategy_battery (cheap hour pre-peak, store spare solar); no tank use; cooling at baseline except none overcooled.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy battery values; overcooling trim is off for all, so baseline cooling; no tank use, no end trims needed this hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or end for all buildings so cooling uses baseline; battery follows strategy values, charging gently in a cheap hour before top price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled Building_1 trimmed nothing (trim off); follow strategy battery charging, cooling at baseline, no tank use, end trims as needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off for B1 and B3 so baseline cooling; B2 unoccupied trim end so baseline; follow strategy battery values, no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end on all buildings except B1 (state off), so baseline cooling; follow strategy_battery discharge over top-price hours, DHW idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold cooling at baseline in B1/B3 (trim off) and B2 (unoccupied, end); discharge batteries per strategy since top price now and load near peak target.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended, so cooling stays at baseline; batteries follow strategy discharge for the current top-price hour; tanks stay idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off in all buildings so cooling stays at baseline; batteries follow strategy_battery during the top-price hours and DHW stays at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off in B1 and B3 so baseline cooling; B2 unoccupied end state uses baseline; battery follows strategy discharge for top-price hours; no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended, so cooling stays at baseline; batteries follow strategy_battery during the top-price hour; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Use baseline cooling where trim is off or ended, and follow the strategy battery discharges over the top-price hour with dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price and strategy_battery is 0, so batteries idle; trims are off or ended, so cooling stays at baseline and the tanks stay at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top hours; Building_1 and Building_3 are overcooled but trim is off so baseline cooling kept; batteries idle per strategy, tanks at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day with no top-price hours, so batteries stay idle and tanks stay at 0; cooling kept at baseline since trims are off or ended.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top-price hours; batteries held at strategy 0, Building_1 and Building_2 at baseline cooling, Building_3 within trim-free range; dhw held at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off in all buildings so baseline cooling is kept; flat price means batteries stay idle and tanks stay at zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries idle per strategy; Building_1 and Building_3 cooling within range at baseline, Building_2 trim ended, tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price and no top-price hours, so batteries stay idle; cooling trims are off or ended, so baseline cooling is kept and dhw stays at zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries held idle per strategy; Building_1 overcooled slightly but trim off so baseline cooling kept; Building_2 at setpoint so baseline; Building_3 baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top-price hours, strategy batteries idle; Building_1 and Building_3 cooling at baseline, Building_2 trim ended at setpoint so baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat prices and no trim hold, so all devices stay at baseline; batteries and tanks idle per strategy_battery.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended in all buildings and prices are flat, so cooling stays at baseline and batteries and tanks stay idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top-price hours: batteries idle as strategy says; cool buildings at baseline or within ranges, no trim active, dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, batteries near floor and strategy says hold; cool per trim state, Building_1 overcooled is off so baseline, Building_2 and 3 at baseline; tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top-price hours, batteries idle per strategy; Building_1 and Building_3 cooling within trim-off ranges; Building_2 trim end so baseline cooling kept.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, peak limiter on; hold cooling at baseline for B1/B3 in range, B2 end state so null; battery idle per strategy, no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top hours; Building_1 overcooled 3.1C so cool at range floor, others follow baseline with strategy battery idle, tank held at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is overcooled 2.15 C below setpoint so cooling sits at range floor; other buildings use baseline, batteries idle on flat prices.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold Building_1 cooling trim inside its range, leave Building_2 and Building_3 at baseline, and keep batteries and tanks idle since prices are flat.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim B1 held at 0.9C below setpoint with cooling_range fixed; B2 and B3 at baseline-range cooling; batteries follow strategy, flat price so no arbitrage, peak limiter active.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price and no top-price hours; batteries idle per strategy. Building 1 and 3 are below setpoint so trim/cooling set within ranges; Building 3 cooling raised to hold comfort.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is 1.1C below setpoint on hold, so cool at range minimum; Building_3 cools at baseline; batteries idle on flat price; no DHW.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top hours, batteries near floor; hold batteries, trim cooling within ranges, leave DHW idle, Building_1 eases trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 and Building_2 trims are at end, so baseline cooling; Building_3 is 1.81C below setpoint, so cool at 0 under the held trim range; batteries idle per strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_3 is 0.7C below setpoint in hold, so cooling at its range floor 0.0927; flat price, batteries idle, tanks idle, no end_trim.","status":"ok"},{"clamps":[{"applied":0.0,"point":"Building_1.cooling","reason":"indoor 27.1 C is within 0.5 C of the setpoint 27.2 C, trim eases off from 0.134 by at most 0.02 per hour","requested":0.098,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price and no top-price hours; batteries idle per strategy, cooling trims held within ranges, tanks at zero.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Flat price and no top-price hours; batteries idle per strategy, cooling held within trim ranges, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries idle per strategy; trim off for B1 and B3 so null cooling; B2 at end state so null cooling; no DHW or battery action.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top-price hours, batteries near floor and strategy says hold; B1 and B2 cooling within range, B3 at baseline; hold DHW at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries idle per strategy; Building_1 and Building_3 cooling near baseline, Building_2 slightly overcooled but no trim active.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, batteries near floor and strategy says hold; cooling at baseline-plus-trim within ranges, no tank use, no end_trim needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries idle per strategy; overcooling not present, so cooling stays at baseline-compatible values within ranges; tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price and no top-price hours; batteries idle per strategy, cooling at baseline or slight trim-free values within ranges, no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, batteries near floor and strategy says hold; cooling set to baseline for buildings in end state, Building_1 and Building_3 at baseline, Building_2 unoccupied at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are in end state with no overcooling; batteries idle per strategy, price flat-ish and no top-price discharge now, so baseline cooling and zero storage actions.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim ended for all buildings at or above setpoint; batteries idle per strategy, price flat-ish and no top-price discharge now; cooling at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are at end state and rooms are above setpoint, so baseline cooling; batteries idle per strategy, and no tank charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are at end state and buildings are near setpoint, so baseline cooling; batteries idle per strategy, no top-price hour now, and charging is negligible.","status":"ok"},{"clamps":[],"fallback":null,"reason":"All buildings are at or above setpoint with trim off or ended, so cooling stays at baseline; batteries held per strategy with no top-price hour now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim ends in B1/B3 idle; B2 cooling at baseline; battery strategy is 0 since peak headroom is zero and flat-ish prices; keep tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_2 is 2.39C above setpoint, so trim is end; keep baseline cooling. Batteries idle per strategy, price not top now; hold dhw at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 2 is 2.9C over setpoint in end state, so cooling stays at baseline; batteries idle per strategy, price not at top, no trim to hold.","status":"ok"},{"clamps":[],"fallback":null,"reason":"All buildings are at or above setpoint with trim in end state, so cooling stays at baseline; batteries are nearly empty and strategy gives 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 overcooled 4.3C with trim ended; cooling at baseline per end state. Battery strategy: idle to store/peak-shave as given; no top price now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 2 are overcooled but trim is end, so baseline cooling; batteries idle per strategy, no top-price hour now and charge is negligible.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Buildings 1 and 3 are above setpoint so trim is off; batteries idle as strategy says, no top-price hour now, no cooling trim needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"All buildings are in trim end and overheated, so cooling stays at baseline; batteries idle as strategy says, price not top now and battery usable charge is negligible.","status":"ok"},{"clamps":[],"fallback":null,"reason":"All buildings are in trim state end, so cooling stays at baseline; batteries and tanks hold since no top-price hour is now and strategy says idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Buildings 1 and 2 are overcooled? No: trim is end, so baseline cooling; batteries idle per strategy, DHW idle, hour 22 price not top.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 2 are overcooled? No: all trims are off or end, so baseline cooling; batteries idle per strategy, no top-price discharge or cheap charging worthwhile.","status":"ok"},{"clamps":[],"fallback":null,"reason":"All trims are off or ended and batteries follow strategy (hold), so baseline cooling and zero storage actions are sent.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 2 are overcooled but trim is end, so baseline cooling; batteries idle per strategy, no top price now, tank held at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling is absent (indoor above setpoint), so baseline cooling; batteries idle per strategy, tanks at 0, no end_trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end in all buildings so baseline cooling; battery strategy as given, small charging in cheap hour; no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or end for all buildings so cooling stays at baseline; follow strategy_battery charging in cheap hours, tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end for all; cooling at baseline-ish within ranges, battery follows strategy charging in cheap hour, dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling trims not active; keep baseline cooling in held-off states, follow strategy battery charging in cheap hour, no DHW, end trims not needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hour 7 is not top-price; cut overcooled B1 cooling per trim rules, keep strategy battery charging, B2/B3 at baseline, no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are at end state with no overcooling; batteries held per strategy since top price is not now and grid charging offers no clear gain; dhw kept at zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 and Building_3 cooling within range at baseline; Building_2 trim ended so baseline cooling; batteries idle per strategy, no top price now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 cooling held at baseline; Building 2 overcooled slightly so cooling trimmed within range; batteries idle per strategy, no top-price discharge now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim B2 at hold within range; B1 and B3 baseline cooling; batteries idle per strategy since price not top and no peak pressure.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 2 is above setpoint with end trim, so cooling follows baseline; batteries idle per strategy since no top-price hour now and price is low.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Buildings 1 and 2 stay on baseline cooling since trim is off or ended; Building 3 follows its strategy battery charge of 0.15 in this cheap hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold cooling at baseline for B1/B2 (trim off), B3 unoccupied trim end with null; batteries follow strategy charging since top price is 2-4 hours ahead; DHW idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 unoccupied with trim end; Building 2 above setpoint so baseline cooling; batteries follow strategy_battery in cheap hour before top price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Top-price hour: discharge batteries per strategy_battery, cooling at baseline since trims are off or ended, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Buildings 1 and 3 unoccupied with trim end, so baseline cooling; Building 2 trim off, baseline; battery per strategy discharge at top price, no tank or grid charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled occupied rooms trimmed within cooling_range; battery follows strategy discharge for top-price hours; no tank or grid charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim held in ease state, so cooling stays in range; batteries idle per strategy since top price is not now and grid charging is cheap but tiny gain; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Holding cooling in ranges for trimmed rooms, baseline for Building_2, batteries idle per strategy as load is under the peak target and prices are not at top.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is 2.2C below setpoint so cooling trimmed to range floor; batteries idle per strategy, no top-price discharge now, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hour 22 is not a top-price hour, so batteries stay idle; Building 1 eases cooling inside its range and others keep baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim B1 held at baseline-depth cooling within range, batteries follow strategy (charge 0.15 in cheap hour), no tank use, B2 and B3 at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim ended on B1 and B3 has no trim; cooling at baseline or ease-held, battery per strategy_battery 0.15 charging in cheap hour before 16-18 peak.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is ended or off in all buildings, so cooling stays at baseline; batteries follow the strategy charge in this cheap, clean hour before the top-price window.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold cooling at baseline or within ranges, keep battery at strategy values, no tank use; no top-price now and no overcooled rooms.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled? No: Building_1 is 1.23C below setpoint so trim is off; use baseline cooling. Follow strategy battery charging of 0.15 in cheap hour, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off in B1 and B3 so baseline cooling kept; B2 has no baseline cooling. Batteries follow strategy, charging in cheap hour with no top price now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end in all buildings, so baseline cooling kept except none overcooled; strategy battery actions sent; no DHW; no top-price discharge now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended; keep baseline cooling, follow strategy battery, no tank use, and limit clamps to protect comfort and peaks.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled B1 gets trimmed cooling per envelope; B2 and B3 sit at baseline; batteries follow strategy, storing in cheap hour and holding for top-price hours.","status":"ok"},{"clamps":[],"fallback":null,"reason":"District load is at its peak target, so batteries discharge per strategy; cooling stays at baseline since no trim is active.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end for all; cooling at baseline except Building_1 and Building_3 hold baseline; battery per strategy, grid charging ok in cheap hour; no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled Building_1 cut to 0 cooling per 0.5C rule; trims elsewhere off/end; batteries follow strategy, no tank use, no top price now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold cooling trim in B1 within range, follow strategy battery values; top price not now so no peak discharge; B2 and B3 at baseline cooling with end trim unavailable.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim cooling in ease state within range; battery per strategy (store solar); no top price now, no DHW; end_trim not used for ease-state buildings.","status":"ok"},{"clamps":[{"applied":0.0848,"point":"Building_1.cooling","reason":"indoor 24.1 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.025 by at most 0.02 per hour","requested":0.089,"rule":"trim_hold"}],"fallback":null,"reason":"Trim B1 ease, B2 and B3 end with null cooling; batteries idle per strategy since price not top and no discharge trigger yet.","status":"clamped"},{"clamps":[{"applied":0.069,"point":"Building_1.cooling","reason":"indoor 23.7 C is more than 0.5 C below the setpoint 25.1 C, trim held at 0.005","requested":0.0848,"rule":"trim_hold"}],"fallback":null,"reason":"Hold batteries as strategy says; trim B1 eases within hold rules, B2 and B3 at baseline cooling, no DHW, no end trim.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Hold cooling at envelope limits for comfort, follow strategy battery actions for peak shaving ahead of top-price hours, no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim ease states allow baseline-near cooling; battery follows strategy discharge for top-price hours; no grid charging; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Battery follows strategy values for top-price hours; Building_1 cooling held at 0.13 under ease trim; other cooling at baseline; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Top-price hour: discharge batteries per strategy; cool per trim/ease within ranges; keep tank idle; ease trims toward baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end in all buildings; B1 and B3 slightly below setpoint so baseline cooling kept; batteries idle per strategy, price not top now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 and 3 are under setpoint in hold-free states; keep baseline cooling, battery idle per strategy, no grid charging at this price, dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 are overcooled-ish but trim off; keep baseline cooling, battery idle per strategy, no grid charging at this price, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold batteries as strategy says; hour 22 price is not top, no discharge; trim off for B1 and B3, B2 at setpoint so baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 2 is at setpoint with trim end, so baseline cooling; batteries follow strategy (idle), no grid charging at current price, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cooling at baseline with trims off; Building_2 overheated so use baseline; batteries follow strategy charging in cheap hour; DHW idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim ends for B1 and B2 at baseline cooling; B3 uses baseline; battery follows strategy; no tank charging, cheap hour before peak.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 overcooled 0.59C above setpoint with trim end; use baseline. Batteries follow strategy charging in cheap hour; no top price now; dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 0.92 C below setpoint so cooling trim is off; keep baseline cooling, follow strategy battery charge at 0.15 in cheap hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is 0.96C below setpoint but trim is off, so baseline cooling; batteries follow strategy charging in cheap hour; no trim or tank action.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling trim not active; follow strategy battery charging in cheap hour, no DHW, cooling at baseline with trim off.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end in all buildings, so baseline cooling; B1 and B3 use baseline, B2 idle; batteries follow strategy_battery as given; no top price now, no tank charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended in all buildings, so cooling stays at baseline; batteries follow strategy values, with Building_3 charging gently ahead of the top-price hours.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Keep baseline cooling where trim is off/end, follow strategy battery values, no tank use; buildings 1 and 3 charge slightly, building 2 idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended in all buildings so cooling stays at baseline; batteries follow strategy (B3 small charge, others idle) ahead of the 7-9h top-price hours.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is overcooled but its trim is off, so baseline; Building 2 trim ended; Building 3 unoccupied with strategy battery charge applied; no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end for B2/B3 so cooling baseline; B1 held at 0.025 within range; batteries follow strategy_battery; no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off in B1/B2 and ended in B3, so baseline cooling; batteries idle per strategy since no top-price now and cheap hours ahead are not needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 0.78C below setpoint so trim is off; use baseline cooling, follow strategy battery (store solar), no DHW, no trim end.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold battery idle until top-price hours ahead; cooling at baseline for B1/B3, trim off; B2 unoccupied, null cooling; no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 are near setpoint with no trim, so baseline cooling; battery per strategy, top-price hours ahead so charging is modest and tank stays idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy_battery discharge over top-price hours; cooling at baseline in end state; no tank use; no grid charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Battery follows strategy discharge for top-price hours; trims are off or ended, so cooling stays at baseline and DHW idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cooling kept at baseline since trim is off or ended; batteries follow strategy discharge for top-price hours; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold batteries per strategy (no top price now, charging unneeded); cool at baseline for Building_1 and 3, Building_2 trim ended, dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended in all buildings, so cooling stays at baseline; batteries hold per strategy since no top-price hour is now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim only in B1 and B3 (off), B2 at setpoint; use baseline cooling, follow strategy battery idle, no tank charging, no grid charge at this price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off in B1 and B3, B2 at end; follow strategy battery; charging blocked at current price; peak limiter on so no extra load.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended in all buildings and strategy batteries are zero, so the baseline holds with no tank or battery action this hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off for B1 and B3, B2 at setpoint with end state; use baseline cooling, idle batteries and tanks per strategy and no top-price hour now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 are below setpoint so cooling stays at baseline; Building 2 is above setpoint with trim ended, so cooling is baseline; batteries idle per strategy, price not top now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 trim ended; cooling at baseline. Buildings 2 and 3 are not overcooled. Batteries idle per strategy, DHW zero, no top-price hours now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled B1 gets cooling cut to 0.0 within range; batteries follow strategy values, grid charging allowed at low price; no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are in end state so cooling stays at baseline; batteries follow strategy charging in cheap hours, tank idle, no top-price discharge now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling trim is off in B1 and B3, so baseline cooling holds; batteries follow strategy charging in cheap hour; DHW idle, no peak discharge needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 0.51C below setpoint so cooling is set just below baseline within range; batteries follow strategy since top price is ahead; no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Ease cooling within range, follow strategy battery charging in cheap hour, no tank use, no end trim needed while trim eases.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 cooling at baseline (trim off/end); building 2 trim ended; batteries idle per strategy, price not top now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim idle in all buildings; battery strategy is zero (no top-price now, load under target), so keep baseline cooling and hold batteries and tank.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off in B1 so cooling at baseline; B2/B3 unoccupied, end state so baseline; batteries follow strategy, grid charging cheap hour, no DHW.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended, so baseline cooling; batteries follow strategy (store solar, no top-price discharge now); tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 cooling within range at baseline; Building 2 unoccupied, trim end, so baseline; batteries follow strategy, no top price now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end in all buildings; keep baseline cooling except none overcooled; follow strategy_battery (B1 0, B2 0, B3 0.15); no dhw; price not top now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end in all buildings; follow strategy battery values, charge gently in cheap hour, no tank use, cooling at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end for all; cooling at baseline except Building_1 and Building_3 kept at baseline; battery follows strategy values; dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end for all; cooling at baseline, battery follows strategy discharge in top-price hour, dhw idle, no grid charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold cooling at baseline where trim is off; Building 1 slightly under setpoint so no trim; discharge batteries per strategy over top-price hours, tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cooling trims are off or ended so baseline cooling is kept; batteries follow strategy discharge over top-price hours; tanks stay idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended in all buildings so cooling stays at baseline; batteries follow the strategy values for peak shaving, with no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 3.08C below setpoint so cut cooling to 0.1448 floor; batteries hold per strategy, prices not top now, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is 1.3 C below setpoint in hold, so cooling sits at the range floor; batteries hold per strategy; tanks idle, no top price now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled B1 is 0.29C below setpoint, so trim cooling deeper within range; batteries idle per strategy, no top price now, tank held at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 2 trims are at end, so baseline cooling; Building 3 cooling baseline; batteries follow strategy (small charge), no dhw, no end_trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended and no room is overcooled, so cooling stays at baseline; batteries follow the cheap-hour strategy charge of 0.15.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 2 cooling at baseline (trim off/end), battery follows strategy charging in cheap hour; no tank use, no top-price discharge now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling is absent (indoor near setpoint, trims off or end), so cooling stays at baseline; battery follows strategy 0.15 charge in cheap hour; dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or ended for all; cooling at baseline except none overcooled; battery follows strategy charging in cheap hour; tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled-free: Building_1 cooling trim off so baseline; battery follows strategy charging in cheap clean hour; no tank use; price not top now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling trim off; follow baseline cooling and strategy battery values, which charge in cheap hours; no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling trim off in B1; follow strategy batteries (B1 0.01, B2 0, B3 0.15), no tank use, baseline cooling where trim off or end.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended and cooling is at baseline; batteries follow the strategy discharge to shave the district peak at its target.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling trim is off in B1 and B3 and B2 is at setpoint; follow strategy battery, cooling at baseline, tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off for B1 and ends for B2/B3; follow baseline cooling, follow strategy battery actions, leave tanks idle, no top price now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or ended in B2/B3 and B1 ease-free; use baseline cooling, follow strategy_battery, leave dhw at 0, no grid-charge beyond given plan.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is overcooled but trim is off so baseline cooling; batteries follow strategy; top price not yet active, no tank charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end in all buildings, so baseline cooling; battery per strategy_battery, cheap hour pre-top-price, no discharge yet; dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end for B1/B3 so baseline cooling; B2 unoccupied end; battery follows strategy values; no tank action; keep actions within ranges.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended in all buildings so cooling stays at baseline; batteries follow strategy values, with a gentle charge in Building_3 ahead of top-price hours.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cooling and trim left at baseline since rooms are not overcooled; batteries follow strategy_battery in the cheap, clean hour before the price peak.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim states: B1 end, B2 end, B3 off; use baseline cooling. Follow strategy_battery discharges over top-price hours; no DHW; no grid charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended, so cooling stays at baseline; batteries discharge at the strategy values during the top-price hour, within envelope ranges.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended, so cooling stays at baseline; batteries discharge at strategy values during the top-price hour, within ranges.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended in all buildings so cooling stays at baseline; batteries follow strategy_battery, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended in all buildings, so cooling stays at baseline; batteries follow strategy_battery for the top-price discharge.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 and 3 are overcooled-state off so baseline cooling; battery follows strategy; no trim, tank idle; grid charging off.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended in all buildings, so baseline cooling is kept; batteries follow strategy, with Building_3 discharging slightly at the top price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 are overcooled but trim is off, so baseline cooling is used; batteries idle per strategy on flat price day; dhw stays at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 cooling trim is off, Building 2 is at end state above setpoint; flat price so batteries idle, baseline cooling kept.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Buildings 1 and 2 are overcooled but trim is off so baseline cooling; batteries idle on flat price day, tank at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price and no top-price hours, batteries idle per strategy; buildings 1 and 3 are over 0.5C below setpoint so cooling sits at baseline trim state off; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, batteries idle; Building_1 and Building_3 cooling within range; Building_2 at/above setpoint with no trim, so baseline cooling kept.","status":"ok"},{"clamps":[{"applied":0.0689,"point":"Building_1.cooling","reason":"indoor 22.7 C is near the bottom of the comfort band, cooling held at the baseline","requested":0.069,"rule":"comfort"}],"fallback":null,"reason":"Flat price, batteries idle per strategy; cooling trims off or end so use baseline; Building_1 and 3 have cooling ranges, send baseline-level values within range.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries idle per strategy; Building_2 trim ended and cooling at baseline; Building_1 and 3 are near setpoint so cooling held at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price and batteries near floor with no top-price hours; hold batteries idle, use baseline cooling, trim is off except Building_1 and 3 off, Building_2 at end state.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price and no top-price hours; batteries idle per strategy. Building_1 in ease trim, cooling within range; Building_2 at setpoint, Building_3 off, baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, batteries idle per strategy; Building_1 and Building_3 trims in end state with no cooling override; Building_2 at setpoint, baseline cooling kept.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price and no top-price hours; batteries idle per strategy, trim only where overcooled, dhw held at zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold cooling trims per envelope for overcooled B1 and B3, keep battery per strategy, no tank use; B2 at baseline since trim ended.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold cooling trim for B1 (0.215 in range), keep B2 and B3 at baseline; batteries idle per strategy, flat price, no DHW.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, batteries idle; Building_1 and Building_3 ease cooling inside range, Building_2 at baseline with trim ended, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, batteries near floor and strategy says hold; trim ended for B1, B2 and B3 at baseline cooling, B1 at 0.5348 minimum within range.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, batteries idle, trims off so cooling at baseline; district load below peak target, DHW tank stays at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, batteries idle per strategy; Building_1 and Building_3 are overcooled but trim is off, so baseline cooling; hold dhw and battery at zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended and the battery has no usable charge on a flat-price day, so all devices keep baseline actions.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price and no top-price hours; B1 and B3 overcooled but trim off so baseline cooling; B2 at setpoint, baseline; batteries idle, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price and battery idle; Building_1 and Building_3 overcooled but trim off so baseline cooling; Building_2 at setpoint, baseline; dhw and battery idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top-price hours, batteries idle; B1 and B3 overcooled but trim off so baseline cooling; B2 at setpoint, baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, batteries idle per strategy; B1 and B3 overcooled but trim is off so baseline cooling; B2 at setpoint uses baseline; no DHW.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price and no top-price hours, so batteries idle; trims are off or ended, so cooling stays at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is overcooled 2.98C but trim is off so baseline cooling; batteries idle on flat price with negligible usable charge; tanks stay at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price and no top-price hours, batteries idle per strategy; Building_1 and Building_3 are below setpoint so cooling sits at the baseline-inside range; Building_2 trim ended.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 are held below setpoint, so trim cooling at the range floor; batteries idle on flat price; tanks left at zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is 2 C below setpoint in hold, so cool at the envelope minimum; batteries idle on flat price with no usable charge; tanks stay at zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 trim in end state with end_trim not ok, so cooling baseline; batteries idle per strategy, flat price, DHW off.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 3.46 C below setpoint so cooling is cut to 0 under hold-free trim rules; trim is off, so use baseline except overcooled cases; batteries idle as flat price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 are overcooled-ish but trim is off so baseline cooling; Building 2 trim end, so baseline; batteries idle per strategy, flat price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top-price hours, batteries empty at floor; hold batteries and keep baseline cooling except Building_2 at end state, so null actions.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is 1.0C below setpoint and trim is off, so baseline cooling is kept; batteries idle on flat price, strategy_battery 0 and no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, batteries near floor with no top-price hours; hold batteries, use cooling within range for overcooled Building_1 and keep others at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 hold at end/off so baseline cooling; Building 2 is 2.09C above setpoint so cooling stays at baseline range; batteries follow strategy, dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 overcooled 3.85C with trim off so cooling stays baseline; batteries follow strategy; no tank use; no top price now, so no discharge.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended in all buildings, so cooling stays at baseline; batteries follow the strategy values given this hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off everywhere and no building is overcooled; batteries idle per strategy, cooling at baseline, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 cooling near baseline with no trim; Building 2 unoccupied trim end; batteries idle per strategy, no top-price hour now, hold tanks at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off so cooling stays at baseline; batteries follow strategy values, which shave the district peak since load is near target.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim states are off or end and strategy_battery is 0 in all buildings, so I keep baseline cooling, idle batteries and tanks.","status":"ok"},{"clamps":[],"fallback":null,"reason":"All trims are off or ended and price is flat-ish with no top-price hour now, so keep baseline cooling and hold batteries and tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 2 is 1.63 C below setpoint so cut its cooling to 0.1 (within range); others hold baseline cooling; batteries idle per strategy, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off everywhere so cooling at baseline; strategy battery values sent as given; hour not top price, district near peak target so battery per strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Buildings overcooled 0.5-3.8C but trim state off so baseline cooling kept; batteries nearly empty, strategy says hold, price not top, so idle; no tank charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"All buildings overcooled-ish but trim off, so baseline cooling; batteries idle per strategy, tanks at 0; price not top now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Buildings are below setpoint so no trim; use baseline cooling, batteries idle per strategy, no top-price discharge now, tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 are overcooled 2.8 C below setpoint but trim is off, so baseline cooling; batteries idle per strategy, no top-price now, tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off and batteries stay idle per strategy; district load 4.65 kWh is under the 10.35 kWh target, so baseline actions are kept.","status":"ok"},{"clamps":[],"fallback":null,"reason":"All buildings are overcooled but trim is off, so baseline cooling; batteries idle per strategy, price not top and grid charging unneeded; DHW idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"All trims are off or ended and rooms are not overcooled, so baseline cooling holds; batteries and tanks stay idle per strategy with no top-price hour now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Buildings 1 and 3 are overcooled but trim is off, so baseline cooling is kept; batteries idle per strategy, no cheap-hour charging worth it at low SOC.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is overcooled 1.79C but trim is off, so baseline cooling; batteries idle per strategy, price not at top, no trim changes.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled rooms cut cooling to 0 per trim rules; batteries follow strategy (charge in cheap hour before top-price 13-15); no tank use.","status":"ok"},{"clamps":[{"applied":0.0,"point":"Building_1.cooling","reason":"indoor 22.1 C is more than 0.5 C below the setpoint 23.2 C, trim held at 0.150","requested":0.0,"rule":"trim_hold"},{"applied":0.0,"point":"Building_3.cooling","reason":"indoor 23.8 C is more than 0.5 C below the setpoint 24.3 C, trim held at 0.102","requested":0.0,"rule":"trim_hold"}],"fallback":null,"reason":"Hold cooling trims in B1 and B3 at range, B2 at baseline (end), batteries follow strategy charging in cheap hour, tank idle.","status":"clamped"},{"clamps":[{"applied":0.0,"point":"Building_3.cooling","reason":"indoor 24.3 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.102 by at most 0.02 per hour","requested":0.0,"rule":"trim_hold"}],"fallback":null,"reason":"Building 1 and 3 trims held or ended per envelope; batteries follow strategy charging in cheap hour; no top price now, district load below target.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Hold cooling at envelope values; B2 and B3 trims are ending, B1 is not trimmed. Battery follows strategy; no tank use; no early trim end.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is overcooled so cooling is cut to the range floor; Buildings 2 and 3 use baseline in end state; all batteries charge at the strategy rate in a cheap hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim B1 held at depth 0.15 with cooling 0.054 inside range; batteries idle per strategy, B2/B3 cooling at baseline with end state.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 0.5 C below setpoint so trim holds; cooling set just inside range, batteries idle per strategy, tanks off.","status":"ok"},{"clamps":[{"applied":0.0,"point":"Building_1.cooling","reason":"indoor 23.2 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.150","requested":0.0,"rule":"trim_hold"}],"fallback":null,"reason":"Overcooled Building_1 trimmed to 0 cooling within range; batteries follow strategy (store solar), no tank use, Building_2 and 3 at baseline cooling.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Building_1 is 0.25C below setpoint in ease state so cooling stays at its range max; batteries idle per strategy, no top-price hour now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim ends in B1 and B2 is unoccupied; cooling at baseline, battery per strategy, B1 near setpoint so no trim; store solar only.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or ended, so baseline cooling; Building 1 overcooled slightly needs no trim; follow strategy_battery; no DHW; top price not now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off for B1; B2/B3 unoccupied end state so null cooling; battery per strategy, B1 idle, B2/B3 small charge in cheap hour; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold cooling at baseline or trim where overcooled; follow strategy battery charging in cheap hours; no tank use; top-price hours ahead.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled B1 held at range cap 0.2827; batteries follow strategy discharge into top-price hours; B2 and B3 keep baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim B1/B3 with strategy battery discharge; B2 unoccupied uses baseline cooling, end trim; top-price discharge per strategy, no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cooling held at envelope range for overcooled occupied rooms; battery follows strategy discharge for top-price hours; tank idle; Building_2 unoccupied so baseline cooling.","status":"ok"},{"clamps":[{"applied":0.0,"point":"Building_1.cooling","reason":"indoor 24.8 C is more than 0.5 C below the setpoint 26.4 C, trim held at 0.150","requested":0.0,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 is 1.6C below setpoint so trim holds; cooling range is 0 so null-free cooling is 0. Batteries idle per strategy; price not top now.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Hour 20: B1 is 2 C above setpoint so cooling stays at baseline; B2 and B3 use baseline or hold, batteries idle per strategy, no tank charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 and Building_3 are overcooled-trim cases; Building_2 at setpoint with end trim. Batteries idle per strategy, tanks idle, cooling sent inside ranges.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is 1.81C below setpoint with trim off, so baseline cooling; batteries idle per strategy as price is not top and no cheap-hour charge is clearly needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Buildings 1 and 3 are below setpoint in hold-free ease-off states so cooling stays at baseline; batteries idle per strategy, no top-price or peak discharge needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 1.98C below setpoint so cut cooling to 0 within range; others hold near baseline; batteries idle per strategy, no top-price now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 overcooled 1.15C with trim in end state, so cooling at baseline; batteries follow strategy; B2 and B3 at baseline with no trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling is small; use trim-free baseline cooling, battery charges per strategy in cheap hour, no DHW, no end_trim since trim is off.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cooling at baseline or trimmed per envelope; battery follows strategy charging in cheap hour; no tank use; trim off or end so null.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled Building_1 cannot trim (state off); use baseline cooling, charge batteries per strategy in cheap hour, no tank use.","status":"ok"},{"clamps":[{"applied":0.2039,"point":"Building_1.cooling","reason":"indoor 20.6 C is near the bottom of the comfort band, cooling held at the baseline","requested":0.204,"rule":"comfort"}],"fallback":null,"reason":"Overcooling trim is off for B1 and B3; cooling near baseline, B2 at end. Batteries follow strategy charging in cheap hours; no tank use.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Overcooling not present; cooling at baseline, battery per strategy (gentle charge in cheap hour), no tank charging, no top-price discharge yet.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled-free baseline cooling kept; battery follows strategy values; top price is 2-4 hours away so charging stays modest and tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are in end state with no cooling change needed; follow strategy_battery (charge in cheap hour), no tank use, baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end for all; cooling at baseline except none overcooled; battery follows strategy values; tanks idle; spare solar stored, price not top now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end in all buildings, so cooling at baseline; battery per strategy (charge small, top price hours ahead); no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 trim is off so baseline cooling is kept; Buildings 2 and 3 are unoccupied with trim ended; batteries follow strategy values; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end for all; cooling at baseline, battery per strategy (small charge in cheap hour), tanks idle, no top-price discharge yet.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled B1 gets trim-free cooling within range; B2 unoccupied uses baseline; B3 near setpoint uses baseline; batteries follow strategy, tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold cooling at the envelope trim for B1 and B3, keep B2 at baseline (unoccupied), follow strategy batteries, no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold trims per envelope; B1 and B3 cooling at range minimum; B2 unoccupied at baseline; batteries follow strategy; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cooling held inside envelope ranges with trims easing; batteries discharge per strategy over top-price hours; no tank use or end trims.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 held trim cuts cooling inside range; batteries follow strategy discharge for top-price hours; trims ended elsewhere; no tank or grid charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Held Building_1 cooling at its only allowed value, followed strategy battery discharge for top-price hours; Building_3 trim is off so baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is 2 C overcooled in hold, so cooling goes to 0.1769 (range floor) with ending trim not needed; batteries follow strategy (idle), tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Builders 1 and 2 are at baseline trim end; Building 3 is held 0.5 C below setpoint so cooling sits at its range value; batteries idle as strategy says.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 and 3 cooling within range; B1 overcooled slightly no trim; B2 end trim so baseline; batteries idle per strategy; no top-price discharge now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled Building_1 and Building_3 are not in trim hold, so baseline cooling is kept; batteries idle per strategy since price is not top and grid charging is not needed now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended, so cooling stays at baseline; batteries follow strategy_battery to shave the district peak and the tanks stay idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 2 cooling trims are off or end; B1 at setpoint, B2 and B3 below band so cooling stays at baseline. Batteries idle per strategy; no top price now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is 2 C below setpoint so cooling must follow baseline or trim rules; batteries idle per strategy since no top-price now and charging is not cheap enough to warrant it.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling trims are off, so baseline cooling stays; batteries follow strategy (gentle charge in cheap hour); tanks idle; no top-price discharge now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled rooms are not in hold trim, so cooling stays at baseline; battery follows strategy charging in a cheap hour; tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling trim is off in all buildings; cooling kept at baseline, battery follows strategy charging in cheap hour with no top price now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling trims not active; keep baseline cooling, follow strategy battery charging in cheap hour, no DHW, end_trim not applicable.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off in B1 and B3, B2 at setpoint; use baseline cooling, follow strategy battery charging in cheap hour with grid charging allowed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling only in Building_1 and 3 is modest; use baseline cooling within ranges, follow strategy battery charging, no tank use, no trim ending needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling trims are off; cooling at baseline, batteries follow strategy values since top-price hours start soon, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or ended; cooling at baseline except Building_1 unoccupied at end state; batteries follow strategy values; no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off everywhere so baseline cooling is kept; batteries follow strategy values, which charge gently before the top-price hours 6-8 and hold otherwise.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off in B1/B2 so baseline cooling; B3 unoccupied end state uses null; battery follows strategy values, grid charging ok in cheap hour before top price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off in B1, B2 and B3 at end state, so cooling at baseline; battery per strategy (store solar); no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended, so baseline cooling is kept; batteries and tanks hold per strategy with no grid charging at this price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end in all buildings so baseline cooling; batteries follow strategy (store spare solar, idle otherwise); tanks stay at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold cooling at baseline or within range; battery follows strategy values; Building_3 cooling trim ended (end state) so use baseline; no tank action.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Top-price hour: follow strategy battery discharge; Building_1 and Building_2 cooling at baseline, Building_3 overcooled cooling in range; no DHW, no grid charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cooling at baseline since trims are off or ended; batteries follow strategy discharge for the top-price hours, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended, so cooling stays at baseline; batteries follow strategy discharge over top-price hours, within ranges; tanks stay at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled B1 and B3 get cooling below baseline; B2 at setpoint keeps baseline; battery follows strategy, no grid charging at current price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim B1 held at end state, B3 hold so keep cooling in range; batteries follow strategy, peak headroom zero so no charging; DHW idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 and 2 overcooled? No: B1 is 4 C below setpoint so trim off, use baseline; B3 hold trim, cool at range min; batteries idle per strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled Building_3 held trim at min depth; other buildings at baseline; batteries idle or per strategy, no grid charging at this price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold trims at minimum depth for B1 and B3 using range-bound cooling; B2 at setpoint takes baseline; batteries per strategy (idle); no DHW or end_trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 and Building_2 trims are at end so baseline cooling; Building_3 eases within range; batteries idle per strategy, no top-price hour now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is overcooled 3.46C but trim is off, so baseline cooling; batteries idle per strategy, no grid charge at low SOC, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling trims not active; keep baseline cooling, follow strategy battery charge in cheap hour, no DHW, end_trim unavailable.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Buildings 1 and 3 are not overcooled, so baseline cooling holds; batteries follow strategy charging in this cheap clean hour, tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled Building_1 is held at baseline per trim off; follow strategy_battery charging in cheap hour, cooling at baseline where trim is off or end.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled-free: Building_1 indoor 1.8C below setpoint but trim off so baseline cooling; batteries follow strategy charge; no DHW; hour 5 cheap, clean.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold cooling at baseline for overcooled-free buildings, follow strategy battery charging in cheap hour; no dhw; B2 and B3 trim ended so null cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling trims are off; cooling at baseline, batteries follow strategy (gentle charge in cheap hour), tanks idle, no end trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Holding all batteries and tanks idle per strategy; no top-price hour now, and trim is off or ended so baseline cooling is kept.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold cooling at baseline for B1/B3 (trim off/end), B2 at baseline; batteries follow strategy; no tank use; top price is 3 hours ahead.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Buildings 1 and 3 have trim off and Building 2 is at end, so baseline cooling is kept; batteries follow strategy values inside their ranges.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off in B1 and B3, B2 at setpoint; follow strategy batteries (small charge, cheap hour before top price) and baseline cooling, no hot water.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim ends in B1/B2 and B3 is in off state, so use baseline cooling; follow strategy battery values; leave DHW idle at zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or ended in B1 and B3 uses baseline cooling, B2 unoccupied ends trim; battery follows strategy values with no top-price discharge now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or ended; cooling at baseline for Building_1, Building_3 is pinned, Building_2 unoccupied; batteries follow strategy, no top price now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end in all buildings so baseline cooling; battery follows strategy values; no tank action; B1 and B3 mirror strategy battery, B2 idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Holding baseline cooling since no trim is active; discharging batteries over top-price hours per strategy_battery, within ranges; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Top-price hour: follow strategy battery discharge; cool baseline in occupied rooms near setpoint, no tank use, district load near target so limit discharge to strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim is off or ended in all buildings, so cooling stays at baseline; batteries follow strategy_battery to discharge over the top-price hours; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"All trims are off or ended and strategy_battery is 0 with no top-price hour now, so baseline cooling and idle storage are kept.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled rooms get trimmed from baseline; batteries follow strategy values; hour 20 price is not top, so no discharge beyond peak-limit needs.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold trims on B1 and B3 at envelope minimum; B2 at setpoint with end state so use baseline; batteries idle per strategy; no tank charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold cooling at envelope range for overcooled rooms, follow strategy battery, no DHW, no end trim; peak headroom is zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 and 3 hold trims at range minimum; Building 2 at setpoint uses baseline; batteries idle per strategy, no top-price now and low SOC.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Hold batteries as strategy says; trim cooling within ranges; no top price now, small battery soc, no clear charge or discharge gain.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim ends on B1 and B3 (at setpoint), B2 trim off so baseline cooling; batteries idle per strategy, no top price now, tank stays at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling trim is off and room temps are within band; follow baseline cooling, use strategy battery charge of 0.15 in cheap hour, tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Buildings 1 and 3 hold cooling at baseline; Building 2 has no trim. Battery follows strategy; no tank charging, no top price now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled-free: buildings near setpoint, trim off, so use baseline cooling; follow strategy battery charging in cheap hour, tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off or ended so baseline cooling is kept; batteries charge 0.15 per strategy in this cheap, clean hour; tanks stay idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooling trim is off in B1 and B3, B2 at setpoint; use baseline cooling, follow strategy battery charging in cheap hour, dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled rooms are off trim so baseline cooling kept; batteries follow strategy charging in cheap hours, dhw idle, no trim ending.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled occupied room B1 gets cooling cut to 0 per hold rule; B2 unoccupied and B3 at setpoint use baseline; batteries follow strategy values.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow the envelope: ease cooling in Building_1 within range, hold Building_2 and 3 at baseline, use strategy battery values, no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 held trim is deepened to the range floor while overcooled; batteries follow strategy, charging Building 3 in this cheap, clean hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are in end state so baseline cooling; batteries follow strategy values, which charge in cheap hours before top-price hours 5-7; DHW idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled occupied rooms are 3 C below setpoint so Building_1 cooling is trimmed; battery follows strategy, dhw idle, no top-price discharge now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim B1 ends (above setpoint), B3 holds cooling at min depth; batteries follow strategy, no tank charging, B2 unoccupied at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end for all; cooling at baseline for B1 and B3 held by trim state, B2 unoccupied uses baseline; battery per strategy, dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim off or end for all; cooling at baseline except Building_1 and Building_3 kept in range; batteries follow strategy, dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled occupied rooms are below setpoint but trim is off, so baseline cooling; battery follows strategy discharge over top-price hours; no tank action.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cooling kept at baseline where trim is off or ended; batteries follow strategy for the top-price hour; tanks held at zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Overcooled occupied rooms get trimmed cooling inside ranges; battery follows strategy during top-price hour; no grid charging; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Cooling held at the envelope-only ranges for overcooled occupied rooms; batteries follow strategy_battery, with B2 idle as unoccupied and on end trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 3 is held 2.2 C below setpoint so cooling is pinned to its range; batteries follow the strategy discharge over the top-price hours.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 3 held at its only allowed cooling value; batteries follow strategy discharge over the single top-price hour; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trim Building_3 held at min depth, cooling inside range; batteries follow strategy, Building_1/2 at baseline cooling range; no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day; buildings 1 and 2 are slightly below setpoint in ease state, so cooling stays near baseline within ranges; batteries idle per strategy; no trim end.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 is 2 C below setpoint in hold, so cool at the range minimum; batteries idle per strategy and flat price; tanks stay at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries idle per strategy; Building_1 overcooled 2.8C below setpoint so trim held at minimum depth; B2 and B3 at baseline cooling within ranges.","status":"ok"},{"clamps":[{"applied":0.0,"point":"Building_1.cooling","reason":"indoor 22.8 C is more than 0.5 C below the setpoint 23.7 C, trim held at 0.150","requested":0.0,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price, no top-price hours; batteries idle per strategy. B1 is 0.9C below setpoint so hold trim at min depth; B2 at setpoint, baseline; B3 baseline.","status":"clamped"},{"clamps":[{"applied":0.0,"point":"Building_1.cooling","reason":"indoor 23.7 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.150","requested":0.0,"rule":"trim_hold"}],"fallback":null,"reason":"Building_1 is held 0.8 C below setpoint so cooling must stay at 0.0 within range; batteries idle on flat price; dhw stays 0.","status":"clamped"},{"clamps":[{"applied":0.0,"point":"Building_1.cooling","reason":"indoor 24.2 C is within 0.5 C of the setpoint 24.4 C, trim eases off from 0.150 by at most 0.02 per hour","requested":0.0,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price, no top-price hours; batteries idle per strategy, cooling trims held where ease/hold allow, tanks idle.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Flat price, no top-price hours, batteries held per strategy; B1 trim ended, cooling at baseline; B2/B3 at baseline cooling, dhw off.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price all day and battery usable charge is tiny, so hold batteries idle; Building 1 and 3 cooling near setpoint, use baseline; Building 2 trim end, null.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price and no top-price hours; batteries idle per strategy, cooling at baseline or trimmed only if held, dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, battery idle; B1 and B3 cooling at baseline (state off/end), B2 at baseline since end state at or above setpoint; no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries idle per strategy; Building 1 and 3 are 0.16-1.16C from setpoint so trim off; use baseline cooling within ranges, no DHW.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top-price hours, strategy batteries idle; B1 and B2 cooling trims off so baseline, B3 unoccupied so baseline; keep tanks at zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries idle per strategy; Building_1 and Building_3 overcooled? No, trim off so baseline cooling; Building_2 near setpoint, baseline; dhw and battery held at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 is overcooled but trim is off so baseline cooling; flat price, strategy battery idle, no tank use, cooling stays at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Buildings 1 and 2 are not overcooled and trim is off, so baseline cooling; batteries idle on flat price, tanks at zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries idle; buildings overcooled-free (no trim), so baseline cooling kept; battery and tank idle per strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Buildings 1 and 3 are over 0.5C below setpoint, so cooling trims are off; keep baseline cooling, batteries idle on flat price, tank at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top-price hours, batteries idle per strategy; cool at baseline for B1 and B3 (trim off), B2 baseline; no dhw or battery action.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price and no top-price hours; batteries idle per strategy, cooling held at baseline for occupied rooms, trim off, DHW idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, trim held only for B1 and B3 is off; use baseline cooling, idle batteries and tanks as strategy says, since no top-price hours and grid charging gains nothing.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Buildings 1 and 3 are overcooled but trim is off so baseline cooling kept; batteries held per strategy, flat price, no hot water charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Buildings 1 and 3 are overcooled 3+ C but trim is off so baseline cooling; flat price, batteries held idle per strategy; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Trims are off so baseline cooling is kept; flat price with no top-price hours means batteries stay idle and tanks stay at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price, no top-price hours, batteries idle; Building 1 and 3 overcooled but trim is off, so baseline cooling; no dhw.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price and no top-price hours; batteries idle per strategy, cool at baseline while trim is off, tank idle.","status":"ok"}],"discomfort_h":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,2.0,3.0,4.0,5.0,6.0,6.0,6.0,6.0,6.0,7.0,8.0,8.0,8.0,8.0,8.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,9.0,10.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,11.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,12.0,13.0,14.0,15.0,16.0,16.0,16.0,16.0,16.0,16.0,16.0,16.0,16.0,16.0,16.0,16.0,16.0,16.0,16.0,16.0,16.0,16.0,16.0,16.0,16.0,16.0,16.0,17.0,19.0,21.0,21.0,21.0,21.0,21.0,21.0,21.0,21.0,21.0,21.0,21.0,21.0,21.0,21.0,21.0,21.0,21.0,21.0,21.0,22.0,23.0,24.0,25.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,26.0,27.0,28.0,29.0,30.0,31.0,32.0,34.0,35.0,35.0,36.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,37.0,38.0,39.0,41.0,42.0,43.0,44.0,45.0,46.0,46.0,46.0,46.0,46.0,46.0,46.0,46.0,46.0,46.0,46.0,46.0,46.0,47.0,47.0,47.0,47.0,48.0,49.0,50.0,50.0,50.0,50.0,50.0,50.0,50.0,50.0,50.0,50.0,50.0,50.0,50.0,50.0,50.0,50.0,50.0,51.0,52.0,53.0,54.0,56.0,58.0,60.0,63.0,66.0,68.0,70.0,71.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,72.0,73.0,74.0,75.0,75.0,75.0,75.0,75.0,75.0,75.0,75.0,75.0,75.0,75.0,75.0,75.0,75.0,75.0,75.0,75.0,75.0,75.0,75.0,75.0,75.0,76.0,78.0,80.0,82.0,84.0,85.0,86.0,87.0,87.0,88.0,88.0,88.0,88.0,88.0,88.0,88.0,88.0,88.0,88.0,88.0,88.0,88.0,90.0,92.0,94.0,96.0,98.0,100.0,102.0,103.0,103.0,103.0,103.0,104.0,105.0,105.0,105.0,105.0,105.0,105.0,105.0,105.0,105.0,105.0,106.0,107.0,108.0,110.0,112.0,114.0,116.0,118.0,120.0,122.0,123.0,124.0,125.0,126.0,126.0,126.0,127.0,127.0,127.0,127.0,127.0,127.0,127.0,127.0,127.0,127.0,127.0,127.0,127.0,127.0,127.0,128.0,128.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,129.0,130.0,132.0,132.0,133.0,134.0,134.0,134.0,135.0,136.0,137.0,137.0,137.0,137.0,137.0,138.0,138.0,138.0,138.0,138.0,138.0,139.0,140.0,141.0,142.0,144.0,146.0,148.0,149.0,150.0,150.0,150.0,150.0,150.0,150.0,151.0,152.0,152.0,152.0,152.0,152.0,152.0,152.0,152.0,152.0,153.0,154.0,155.0,156.0,157.0,158.0,159.0,160.0,161.0,161.0,161.0,161.0,161.0,161.0,161.0,161.0,161.0,161.0,161.0,161.0,161.0,162.0,163.0,164.0,165.0,167.0,169.0,171.0,173.0,175.0,177.0,179.0,181.0,183.0,185.0],"district_grid_kwh":[1.428,1.505,1.446,1.419,1.418,1.731,2.889,2.572,9.774,4.524,2.596,4.693,3.205,3.072,3.749,5.612,4.268,2.687,4.116,5.019,6.35,5.409,4.935,5.313,2.906,2.149,1.782,1.789,2.376,2.591,2.559,1.447,3.023,1.39,2.367,3.47,8.481,6.508,5.72,6.566,7.156,5.713,6.706,4.625,6.256,5.252,5.194,3.277,2.344,1.853,2.155,1.321,1.856,1.274,1.77,2.887,4.284,1.892,2.097,2.136,1.408,7.666,1.84,4.907,5.922,4.363,5.111,3.397,2.939,4.068,1.739,1.619,1.37,1.366,2.197,2.514,1.817,2.925,3.834,1.927,2.929,1.364,1.75,0.977,1.72,0.865,1.056,-0.111,0.408,1.081,3.387,3.195,3.275,2.867,2.91,2.527,2.926,2.89,2.757,2.646,3.346,1.939,2.359,4.088,1.583,0.184,0.4,1.175,1.715,1.507,2.321,1.402,1.869,4.075,5.691,6.963,4.513,2.846,1.96,2.272,3.183,2.766,3.075,3.031,2.862,3.471,11.612,3.267,3.151,4.84,2.781,0.872,1.19,1.639,2.745,1.045,1.362,2.039,3.236,4.651,12.748,4.061,2.756,2.55,2.501,4.076,3.496,2.416,2.88,2.813,5.705,2.942,4.081,2.031,1.207,4.369,4.214,3.385,3.387,0.792,1.455,3.01,5.683,4.035,4.621,3.314,2.07,1.773,1.903,2.941,2.346,2.285,2.268,5.215,3.022,1.919,2.43,0.611,0.256,0.865,0.709,1.69,2.233,1.063,1.33,2.152,4.85,5.226,4.806,3.546,3.098,2.089,2.0,1.615,1.371,1.298,1.264,1.282,2.314,1.681,3.513,1.474,1.431,2.602,2.919,9.212,6.154,5.669,5.009,5.866,6.606,4.796,3.462,3.385,4.015,2.651,2.136,2.03,1.545,1.742,1.625,3.061,1.199,1.627,1.399,1.242,1.422,1.207,2.482,10.97,2.705,4.298,10.754,6.567,7.595,6.376,3.577,2.812,2.95,2.604,2.608,2.693,3.083,2.467,2.965,3.021,7.411,3.531,5.295,4.232,2.499,1.272,1.613,2.352,7.172,3.811,4.292,3.904,5.75,3.863,3.416,9.533,2.395,3.384,2.522,2.315,2.716,3.169,3.085,3.119,3.124,1.817,1.368,2.687,1.817,2.405,1.911,3.753,3.834,4.066,8.697,5.042,6.951,8.78,7.948,7.376,10.214,3.276,1.947,1.8,2.769,2.451,2.902,2.937,4.204,1.783,1.568,0.962,1.091,0.96,1.219,1.974,2.839,2.281,2.623,1.813,4.609,5.747,4.76,4.38,5.799,2.329,2.497,3.557,3.4,2.912,2.725,2.771,3.084,5.071,2.516,0.443,0.939,0.866,3.208,2.44,1.19,0.921,1.275,2.416,5.189,5.84,6.143,3.999,3.62,4.192,3.792,3.821,3.261,3.025,4.134,2.247,2.368,4.15,5.495,4.865,3.203,3.104,2.484,2.264,4.431,2.224,2.737,4.437,6.501,5.217,4.934,6.104,3.196,4.822,2.437,2.636,2.145,1.938,1.769,1.797,2.001,4.154,2.309,2.731,2.249,2.143,7.196,2.654,3.906,3.373,6.85,5.496,4.711,4.749,5.428,3.48,1.813,1.867,1.884,1.811,1.355,1.259,1.464,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.075,4.363,3.689,2.184,3.04,2.766,3.362,3.151,3.036,6.075,5.389,2.505,2.267,3.274,2.844,1.893,3.974,7.189,3.865,2.131,2.057,1.284,3.289,5.134,3.111,5.491,2.943,3.311,3.487,3.477,3.132,3.488,2.003,1.841,2.95,5.501,4.508,3.988,1.552,0.845,2.588,3.361,4.9,0.861,0.787,0.766,2.876,3.367,3.404,2.977,1.98,3.171,3.705,4.588,3.022,2.861,3.631,4.419,1.967,3.186,2.847,1.586,1.197,3.177,2.421,0.864,1.088,0.459,1.555,2.151,3.051,3.131,3.882,5.157,4.092,4.172,2.316,1.919,1.764,4.14,3.194,2.793,3.085,3.85,1.565,1.006,1.024,3.233,2.228,2.48,3.348,2.164,2.893,2.89,7.898,3.474,3.215,3.813,4.117,3.482,3.619,3.916,3.234,3.018,2.127,3.825,8.148,5.156,5.352,2.828,1.756,4.135,3.068,2.239,3.974,4.58,3.872,3.342,5.773,6.363,4.789,4.802,3.497,2.856,2.313,1.654,1.524,1.69,1.423,1.241,1.894,4.291,4.532,11.489,8.607,2.761,5.317,4.097,7.792,12.321,7.027,6.345,7.686,5.934,5.09,4.379,2.946,2.441,2.08,2.359,1.597,1.499,1.796,2.04,1.498,4.755,3.271,2.001,4.201,1.81,7.502,6.764,3.249,4.397,9.868,7.598,7.731,5.223,4.913,4.651,4.97,2.7,2.657,2.339,2.207,2.222,3.016,5.797,4.869,3.076,1.804,1.222,1.731,1.936,2.581,2.902,4.399,1.156,1.433,0.304,2.453,6.156,3.991,4.737,3.982,1.47,2.585,3.561,3.394,3.619,4.267,3.701,2.556,2.805,2.113,2.595,1.322,1.269,1.957,2.0,2.044,0.588,1.342,2.801,3.64,4.236,5.527,3.9,8.167,3.354,3.531,3.553,3.275,3.063,2.967,5.732,3.515,3.259,4.323,2.335,1.172,1.787,1.022,1.036,2.927,2.55,4.341,2.992,6.09,13.689,5.483,7.373,2.709,3.244,2.829,3.765,3.48,3.212,3.075,4.166,6.521,4.422,7.753,6.963,3.91,4.728,4.144,4.253,6.56,3.42,4.768,4.373,6.668,6.728,4.267,18.609,3.895,2.521,2.693,4.851,5.358,3.455,3.257,3.239,5.56,2.665,2.41,2.795,2.937,5.026,3.8,3.375,4.618,3.346,4.158,3.193,12.945,6.053,4.115,3.821,4.136,3.405,1.765,1.666,1.324,1.281,1.508,1.598,1.704,3.256,3.393,6.625,5.466,3.408,4.853,5.892,7.011,7.572,8.005,8.103,7.465,6.173,5.594,5.38,5.503],"emission_kg":[0.575,1.151,1.685,2.206,2.736,3.403,4.545,5.603,9.833,11.772,12.988,15.276,16.851,18.349,20.147,22.793,24.757,25.964,27.771,29.96,32.756,35.175,37.394,39.748,41.001,41.857,42.539,43.206,44.088,45.038,45.992,46.544,47.838,48.448,49.542,51.213,55.321,58.463,61.209,64.32,67.645,70.267,73.291,75.347,78.141,80.547,82.929,84.42,85.517,86.343,87.252,87.781,88.503,88.997,89.696,90.868,92.654,93.437,94.358,95.418,96.189,100.33,101.297,103.851,106.913,109.155,111.76,113.455,114.907,116.935,117.786,118.586,119.247,119.874,120.781,121.749,122.505,123.818,125.521,126.449,127.958,128.671,129.625,130.156,131.077,131.536,132.158,132.262,132.472,133.024,134.754,136.403,138.111,139.586,141.047,142.239,143.524,144.71,145.776,146.823,148.188,149.034,150.132,152.1,152.901,153.246,153.693,154.502,155.5,156.31,157.546,158.284,159.259,161.368,164.278,167.778,170.013,171.369,172.275,173.324,174.708,175.834,177.039,178.162,179.22,180.512,185.114,186.479,187.882,190.093,191.384,192.007,192.952,193.827,195.237,195.806,196.494,197.505,199.07,201.256,207.12,208.956,210.176,211.253,212.281,213.855,215.162,216.066,217.175,218.29,220.66,221.884,223.709,224.622,225.173,227.224,229.243,230.9,232.555,232.942,233.643,235.057,237.653,239.425,241.461,242.926,243.82,244.574,245.378,246.49,247.341,248.151,248.989,250.972,252.206,253.098,254.302,254.695,255.029,255.624,256.098,256.885,257.94,258.447,259.075,260.082,262.349,264.787,267.041,268.711,270.14,271.086,271.966,272.653,273.208,273.727,274.24,274.783,275.809,276.554,278.171,278.838,279.497,280.717,282.114,286.542,289.443,292.086,294.413,297.118,300.135,302.324,303.931,305.496,307.271,308.357,309.213,309.978,310.513,311.104,311.654,312.687,313.1,313.672,314.171,314.625,315.185,315.698,316.805,321.861,323.134,325.162,330.234,333.328,336.81,339.684,341.302,342.561,343.84,344.954,346.034,347.102,348.283,349.212,350.304,351.431,354.237,355.597,357.697,359.327,360.328,361.027,361.898,363.009,366.454,368.295,370.383,372.287,375.094,376.979,378.652,383.251,384.36,385.835,386.922,387.861,388.924,390.159,391.381,392.65,393.98,394.795,395.429,396.635,397.465,398.618,399.546,401.357,403.184,405.102,409.153,411.46,414.598,418.603,422.302,425.796,430.582,432.084,432.979,433.792,434.963,435.971,437.193,438.484,440.457,441.352,442.146,442.661,443.321,443.951,444.65,445.676,447.142,448.302,449.615,450.508,452.755,455.574,457.928,460.103,462.941,464.065,465.199,466.768,468.16,469.317,470.369,471.502,472.863,475.263,476.62,477.177,477.795,478.293,479.84,481.007,481.679,482.113,482.71,483.839,486.239,488.931,491.783,493.633,495.233,497.018,498.538,500.001,501.192,502.266,503.761,504.629,505.597,507.353,509.694,511.693,513.062,514.444,515.551,516.56,518.507,519.484,520.671,522.582,525.397,527.664,529.84,532.559,533.949,535.95,536.943,537.937,538.739,539.457,540.114,540.795,541.563,543.166,544.052,545.077,545.957,546.846,549.889,551.023,552.679,554.261,557.156,559.481,561.476,563.507,565.882,567.455,568.281,569.12,570.005,570.845,571.479,572.057,572.75,572.75,572.75,572.75,572.75,572.75,572.75,572.75,572.75,572.75,572.75,572.75,572.75,572.75,572.75,572.75,574.811,577.035,578.903,580.011,581.53,582.945,584.628,586.179,587.649,590.659,593.39,594.681,595.875,597.588,599.11,600.137,602.289,606.154,608.178,609.271,610.313,610.951,612.56,615.116,616.698,619.493,620.955,622.549,624.099,625.624,626.993,628.532,629.439,630.315,631.795,634.612,636.955,639.01,639.91,640.454,641.83,643.609,646.191,646.657,647.066,647.46,648.918,650.578,652.211,653.615,654.522,655.912,657.578,659.503,660.751,662.003,663.705,665.899,666.904,668.539,669.993,670.824,671.572,673.254,674.618,675.118,675.708,675.957,676.799,677.963,679.615,681.311,683.412,686.186,688.373,690.599,691.789,692.799,693.72,695.912,697.641,699.183,700.891,703.031,703.889,704.469,705.05,706.792,707.997,709.334,711.128,712.283,713.828,715.372,719.603,721.483,723.235,725.283,727.439,729.18,730.798,732.464,733.755,734.935,735.758,737.265,740.749,743.007,745.483,746.797,747.645,749.681,751.199,752.295,754.206,756.394,758.232,759.805,762.486,765.386,767.56,769.727,771.255,772.465,773.419,774.091,774.666,775.28,775.785,776.27,777.054,778.781,780.535,784.832,788.23,789.456,791.796,793.657,797.307,803.145,806.481,809.492,813.129,815.898,818.23,820.22,821.519,822.555,823.387,824.27,824.855,825.381,826.0,826.692,827.209,828.903,830.085,830.82,832.425,833.156,836.378,839.369,840.829,842.838,847.371,850.786,854.175,856.439,858.587,860.619,862.751,863.894,865.034,865.97,866.81,867.68,868.915,871.508,873.819,875.365,876.267,877.045,877.895,878.861,880.149,881.602,883.816,884.524,885.246,885.614,886.84,889.894,891.866,894.214,896.155,896.854,897.974,899.446,900.782,902.196,903.873,905.378,906.454,907.674,908.616,909.736,910.313,910.897,912.022,912.97,913.947,914.236,914.877,916.212,917.947,919.968,922.633,924.512,928.307,929.789,931.253,932.651,933.911,935.08,936.202,938.422,939.844,941.217,943.044,944.077,944.691,945.588,946.398,947.172,948.609,949.866,952.017,953.505,956.527,963.303,966.023,969.655,970.93,972.375,973.542,975.05,976.379,977.571,978.731,980.373,983.11,985.093,988.71,991.843,993.699,995.947,997.95,1000.023,1003.198,1004.83,1007.075,1009.111,1012.184,1015.274,1017.242,1025.848,1027.583,1028.649,1029.743,1031.521,1033.431,1034.646,1035.802,1036.984,1039.098,1040.139,1041.065,1042.127,1043.315,1045.456,1047.13,1048.652,1050.771,1052.313,1054.221,1055.682,1061.591,1064.296,1066.127,1067.831,1069.662,1071.186,1071.982,1072.75,1073.361,1073.957,1074.649,1075.39,1076.169,1077.626,1079.087,1081.704,1083.874,1085.298,1087.394,1090.035,1093.29,1096.84,1100.601,1104.402,1107.875,1110.751,1113.382,1115.87,1118.339],"kpi":{"all_time_peak_average":0.941216,"annual_normalized_unserved_energy_total":0.019148,"carbon_emissions_total":0.964845,"cost_total":0.924545,"daily_one_minus_load_factor_average":0.956573,"daily_peak_average":0.918181,"discomfort_cold_delta_average":0.540431,"discomfort_cold_delta_maximum":3.290486,"discomfort_cold_delta_minimum":0.0,"discomfort_cold_proportion":0.075855,"discomfort_hot_delta_average":0.26335,"discomfort_hot_delta_maximum":5.160054,"discomfort_hot_delta_minimum":0.0,"discomfort_hot_proportion":0.018095,"discomfort_proportion":0.093951,"electricity_consumption_total":0.974389,"monthly_one_minus_load_factor_average":0.993772,"one_minus_thermal_resilience_proportion":0.369841,"power_outage_normalized_unserved_energy_total":0.684409,"ramping_average":0.986369,"zero_net_energy":0.974457},"run":"citylearn_challenge_2023_phase_2_local_evaluation_agent_citylearn_20261023T135430Z","steps":719},"agent_run":{"budget_stopped":false,"budget_usd":2.0,"calls":719,"clamped_hours":27,"cost_usd":0.4607,"envelope":{"battery_rate_per_step":0.5,"comfort_band_k":2.0,"comfort_margin_k":0.5,"cooling_max":1.0,"cooling_max_deviation":0.15,"cooling_min":0.0,"cooling_rate_per_step":0.35,"dhw_rate_per_step":0.5,"overcool_guard_unoccupied":true,"peak_forecast_days":2,"peak_limit":true,"peak_target_fraction":1.0,"soc_max":0.95,"soc_min":0.1,"spread_check":true,"storage_max":1.0,"storage_min":-1.0,"trim_hold":true,"trim_hold_c":0.5,"trim_min_depth":0.002,"trim_release_step":0.02},"fallback_hours":0,"model_id":"claude-haiku-5-5","model_key":"haiku","supervisor":"live","trim_ends_early":0},"agent_sample":false,"baseline":{"buildings":{"Building_1":{"battery_soc":[0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2],"dhw_soc":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],"grid_kwh":[0.678,0.846,0.725,0.633,0.607,1.001,1.608,0.534,4.653,0.483,-0.357,1.817,0.266,0.219,0.945,2.824,3.039,2.14,1.419,2.336,3.167,1.823,1.303,2.042,1.886,1.125,0.744,0.671,1.713,1.752,1.766,0.572,-0.245,-0.069,0.819,1.462,6.669,4.144,2.167,2.167,3.119,2.733,3.531,2.36,3.981,2.93,3.446,2.771,1.996,1.597,1.345,1.167,1.085,1.056,0.979,1.281,1.827,-0.118,-0.286,-0.743,-0.767,-0.321,-0.061,2.823,3.203,2.159,1.652,1.282,0.964,1.54,0.677,1.02,0.69,0.649,0.566,0.452,0.405,1.394,0.36,0.824,0.441,0.178,0.139,0.075,0.006,0.084,-0.175,-0.312,0.37,2.084,1.383,1.363,1.519,1.005,1.032,1.204,0.834,0.908,0.841,0.74,1.702,0.649,1.501,2.044,0.892,0.065,-0.434,-0.302,-0.145,0.399,0.651,1.341,1.712,3.301,2.332,2.04,1.413,1.158,1.266,1.144,0.775,0.658,1.104,1.109,0.93,1.45,5.714,0.799,0.646,5.824,0.119,-0.412,-0.309,-0.341,0.568,-0.373,0.001,3.061,1.979,2.83,8.927,2.165,1.511,1.13,1.289,1.736,1.238,0.991,0.848,0.767,1.873,0.998,2.518,0.266,0.062,5.66,1.286,1.119,1.178,0.97,0.791,2.262,1.689,1.153,2.04,0.959,0.651,0.561,0.49,0.432,0.383,0.35,0.349,3.199,0.452,0.203,1.584,-0.29,-0.446,-0.411,-0.314,0.182,0.323,0.609,0.97,1.585,1.969,1.98,1.566,1.143,0.818,0.682,1.003,0.589,0.549,0.517,0.491,0.446,1.379,0.385,2.23,0.199,0.068,0.72,1.2,1.804,2.687,2.771,2.189,2.53,2.226,2.274,1.659,1.535,1.25,1.57,1.246,1.262,1.367,0.988,0.878,2.232,0.811,0.668,0.35,-0.269,-0.223,-0.154,0.455,0.885,1.278,1.827,5.826,2.385,3.597,2.451,2.338,1.022,1.687,1.019,1.279,1.568,1.391,1.191,1.042,0.981,0.954,1.91,1.899,0.785,0.426,0.228,0.271,0.751,8.035,2.459,2.762,2.716,2.511,1.773,1.42,1.134,0.999,1.867,1.17,1.283,1.227,1.083,0.976,0.919,0.912,0.799,-0.092,-0.027,0.777,1.121,0.266,0.716,1.03,3.647,8.064,3.658,3.461,2.842,2.439,1.622,1.303,1.625,1.095,1.156,1.108,0.973,0.882,0.84,0.823,0.656,0.496,-0.416,-0.483,-0.313,-0.121,0.188,0.744,2.478,3.105,2.534,2.482,3.192,2.715,1.592,1.289,1.509,1.228,1.478,1.224,0.987,0.851,0.773,1.287,3.362,0.391,-0.307,-0.371,-0.205,1.991,1.839,-0.232,0.265,0.758,1.208,2.194,2.594,2.069,1.662,1.447,1.026,1.21,1.481,1.253,1.038,2.151,0.886,0.84,0.753,1.616,-0.171,-0.16,-0.111,0.282,0.224,2.107,1.77,1.998,3.705,2.641,2.159,1.815,3.686,1.274,0.984,1.183,1.504,1.333,1.125,0.968,0.901,0.91,2.903,0.721,0.62,0.328,0.068,4.92,0.98,1.011,0.264,3.799,3.082,1.976,1.843,2.38,1.544,0.885,0.661,0.591,0.537,0.496,0.46,0.429,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.341,1.27,1.438,1.167,1.319,1.597,1.361,1.153,1.011,3.963,1.66,0.809,0.571,0.041,0.632,0.17,0.622,4.299,0.693,1.403,1.806,2.239,2.031,4.027,1.332,4.166,1.122,0.797,0.979,1.289,1.158,1.903,0.884,0.82,0.787,0.652,0.721,1.083,0.014,-0.078,0.686,0.25,0.981,0.693,0.785,0.992,1.271,2.112,1.4,1.165,0.914,0.824,0.827,2.287,1.079,0.924,1.733,2.043,0.857,2.248,1.565,-0.023,-0.235,0.481,-0.126,-0.062,0.121,0.666,1.976,1.994,0.888,1.214,1.11,1.902,1.166,2.755,1.131,1.116,1.039,0.9,1.23,0.752,0.722,0.544,0.213,-0.372,-0.313,1.116,0.465,0.497,1.233,1.444,2.514,2.845,5.034,2.238,1.363,2.117,1.214,0.877,1.089,1.408,1.226,1.032,0.88,2.685,1.355,0.84,0.944,-0.187,0.317,2.427,1.013,0.481,0.986,2.991,3.158,2.811,2.549,2.184,2.534,1.661,1.244,1.04,1.197,0.785,0.677,0.633,0.606,0.579,1.018,0.96,1.038,1.937,6.549,0.489,1.75,1.634,4.402,8.38,2.747,2.775,2.818,2.972,2.443,1.928,1.857,1.732,1.079,1.169,0.69,0.608,0.884,1.063,1.069,0.909,0.01,-0.139,0.892,0.124,7.091,3.778,0.137,1.484,3.241,3.902,2.334,2.013,1.9,1.763,3.035,0.973,1.13,1.417,0.981,0.892,1.095,4.255,2.278,2.019,0.635,-0.163,0.882,-0.051,0.116,0.547,1.941,1.163,1.806,1.093,0.844,3.574,1.744,2.639,2.274,0.928,1.121,1.464,1.309,1.549,2.185,1.682,1.743,1.495,0.39,-0.05,0.108,0.011,0.15,0.716,0.798,1.338,1.966,2.61,1.711,1.991,2.574,1.412,1.201,1.514,1.213,1.31,1.214,1.003,0.926,0.874,0.908,1.117,0.402,-0.219,-0.236,-0.115,-0.644,-0.548,0.954,2.208,3.8,2.127,1.98,2.977,2.506,5.466,1.424,1.916,1.306,1.381,1.271,1.092,0.961,1.979,3.683,2.124,0.769,-0.199,-0.153,2.156,0.873,0.736,3.454,2.032,3.027,2.922,2.843,4.405,2.218,8.411,1.397,1.116,1.28,1.62,3.058,1.286,1.085,1.004,1.852,1.138,0.765,1.284,0.69,1.379,1.5,0.84,1.08,1.649,3.27,3.253,2.696,2.846,2.022,2.601,3.008,1.972,0.991,0.736,0.55,0.552,0.567,0.586,0.613,2.044,1.644,3.571,3.406,1.136,1.332,1.962,2.818,2.816,3.383,3.406,2.488,2.608,2.603,2.726,1.306],"indoor_c":[23.1,22.23,22.22,22.22,22.22,22.22,22.22,22.33,22.77,23.27,24.41,24.44,24.66,24.6,24.34,23.33,22.29,23.64,25.28,24.14,20.64,22.33,22.2,19.53,19.22,20.14,21.16,21.58,21.71,21.76,21.9,22.21,23.79,24.19,24.27,24.25,23.54,23.35,23.15,22.93,22.99,22.29,22.35,22.63,22.06,20.25,18.2,17.59,17.46,17.51,17.65,17.79,18.04,18.13,18.44,18.59,18.56,20.71,21.5,22.96,23.44,23.74,23.72,22.23,20.12,20.13,21.89,22.52,23.0,20.89,22.58,23.02,22.51,22.65,22.93,23.37,23.75,23.96,24.27,23.2,23.56,23.64,24.86,24.07,24.29,25.23,24.97,25.47,24.52,23.58,23.53,23.56,23.55,23.65,23.76,21.56,22.35,21.61,21.68,21.78,21.47,21.93,21.67,21.38,21.87,22.57,23.24,23.89,24.12,23.98,23.68,23.14,22.78,22.29,22.44,22.58,22.79,22.94,23.07,23.18,23.32,23.54,21.49,21.32,21.46,21.65,21.21,21.59,21.82,20.68,22.27,23.42,23.79,24.49,24.34,26.05,26.65,25.5,25.71,24.52,24.03,23.16,23.15,23.37,22.4,21.27,21.29,21.49,21.77,22.04,21.72,22.17,21.75,22.53,23.09,23.28,23.51,23.4,23.21,24.0,25.66,25.96,26.23,26.3,25.78,26.12,26.43,26.71,26.93,27.22,27.53,27.84,28.04,26.6,27.52,28.11,27.36,27.9,27.97,27.88,27.73,27.35,27.01,26.64,26.32,26.01,26.06,26.05,26.08,26.18,26.32,26.5,26.37,26.54,26.63,26.71,26.79,27.0,26.91,27.05,25.78,26.02,25.81,25.44,25.07,24.61,24.11,23.32,23.17,22.65,22.64,22.64,22.69,22.67,22.67,20.95,21.2,20.46,20.43,20.53,20.71,20.78,21.05,21.32,21.67,23.0,23.06,23.21,22.98,22.72,22.5,22.27,23.27,21.93,21.6,21.78,21.99,23.38,22.63,22.48,21.35,20.19,20.17,20.3,20.52,20.57,20.73,20.62,20.23,21.08,21.71,22.3,22.33,22.16,20.54,19.95,20.43,20.7,21.17,21.46,21.73,21.96,22.18,20.54,20.92,20.14,20.16,20.35,20.6,20.78,20.94,21.13,22.84,22.95,23.03,22.59,22.53,22.27,22.06,21.58,20.99,20.92,21.06,21.25,21.23,21.7,21.93,19.91,20.84,20.15,20.23,20.44,20.71,20.95,21.15,21.29,21.26,23.1,23.51,23.71,23.6,23.38,22.99,22.53,22.16,21.82,21.93,21.9,21.75,22.01,22.22,22.41,21.49,20.35,20.42,20.67,20.96,21.26,21.52,21.51,22.1,23.5,23.81,23.87,24.66,25.34,25.84,25.85,25.65,25.32,24.02,22.96,22.82,22.88,23.05,23.24,22.31,21.05,21.04,21.2,20.93,21.43,21.61,21.84,21.73,23.32,23.55,23.77,23.65,24.25,23.01,22.64,22.34,21.84,21.92,22.09,22.3,21.57,22.18,22.51,21.69,20.44,20.42,20.55,20.78,20.98,21.26,20.6,21.47,22.9,23.09,23.38,21.29,22.35,22.9,24.51,24.56,24.06,24.45,24.67,24.37,24.79,25.08,25.32,25.47,25.62,25.78,25.95,26.13,26.52,26.62,26.86,26.91,26.86,26.73,25.93,25.96,26.25,26.8,27.36,28.05,28.68,29.45,29.91,28.54,26.84,25.3,24.9,23.62,22.06,21.89,21.86,21.93,20.97,21.31,21.49,21.96,23.28,23.38,23.48,23.31,23.83,23.23,22.39,22.11,21.68,20.93,20.24,21.54,20.58,21.51,21.87,21.04,19.88,19.96,20.08,20.29,20.46,20.69,20.82,21.34,22.5,22.89,23.1,23.02,23.48,23.27,23.23,23.28,23.32,23.4,23.36,23.38,23.38,23.44,23.51,22.53,21.06,21.06,21.2,21.01,21.22,21.56,20.93,21.01,22.81,23.42,23.57,23.71,23.68,23.4,22.35,22.23,22.87,23.33,23.54,23.62,23.59,23.65,22.62,22.34,21.22,21.16,21.33,21.52,21.68,21.85,22.08,22.59,23.98,24.09,23.9,23.67,23.56,23.42,22.93,21.13,20.92,21.34,21.85,22.18,22.3,22.49,22.66,21.73,20.46,20.48,20.65,20.93,20.41,20.93,21.3,21.79,23.17,23.46,22.63,22.98,23.52,23.36,21.23,20.93,21.06,21.32,21.5,21.67,21.87,22.09,22.28,21.49,22.33,22.67,22.92,23.11,23.33,23.5,22.38,21.82,22.29,22.49,22.82,22.24,22.28,21.8,21.08,20.93,20.61,20.34,20.53,21.16,21.49,19.42,19.21,20.14,19.59,20.9,21.43,20.59,20.14,20.26,20.34,22.17,22.36,22.42,22.47,21.65,22.26,23.68,21.91,20.06,20.12,20.63,20.81,20.65,20.89,20.55,21.24,20.48,19.56,20.43,20.62,20.03,19.59,19.38,19.7,20.32,21.85,21.94,22.11,21.98,21.8,21.44,21.26,21.13,22.02,23.34,21.27,21.49,21.09,21.51,21.8,20.98,19.78,19.85,19.96,19.75,19.96,20.19,20.39,20.96,22.35,22.4,22.57,22.22,22.05,21.89,21.32,20.81,21.03,21.97,21.68,21.63,21.77,21.91,20.46,20.85,20.03,20.04,20.24,20.49,20.72,20.89,20.99,21.37,22.79,23.07,23.27,24.88,25.59,24.33,22.6,21.87,23.34,23.75,20.79,21.59,21.56,21.9,19.95,20.79,20.01,20.09,20.27,20.55,20.65,20.07,20.54,20.62,22.52,22.92,20.17,21.77,22.12,21.39,21.3,21.0,20.78,20.88,20.3,20.8,20.61,21.01,21.3,20.5,19.36,18.87,19.35,19.71,20.04,20.06,20.34,20.75,21.66,20.86,21.64,19.93,21.48,21.53,21.34,20.87,21.92,22.87,21.36,21.34,19.3,18.14,18.36,19.84,20.77,21.73,22.08,22.33,22.51,22.73,22.15,22.49,21.45,21.22,21.47,21.4,21.16,20.79,20.34,19.9,19.57,20.24,20.04,20.14,20.23,20.52]},"Building_2":{"battery_soc":[0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2],"dhw_soc":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],"grid_kwh":[0.187,0.186,0.185,0.187,0.202,0.231,0.248,0.345,2.934,0.672,0.633,0.669,0.97,0.787,1.197,2.665,1.802,1.708,1.202,1.013,1.561,1.204,0.913,0.323,0.212,0.379,0.46,0.201,0.202,0.231,0.243,0.245,2.33,0.564,1.008,1.188,1.013,1.471,1.827,2.989,1.635,1.344,1.37,0.795,0.66,0.629,0.641,0.483,0.374,0.313,0.274,0.251,0.247,0.262,0.256,0.358,0.371,0.5,0.455,1.85,0.977,0.827,0.738,0.363,0.47,0.676,0.656,0.581,0.607,0.85,0.532,0.268,0.202,0.232,0.416,0.352,0.202,0.231,0.254,0.361,0.365,0.437,0.441,0.449,0.404,0.336,0.454,0.428,0.723,1.826,0.673,0.718,0.518,0.511,0.503,0.58,0.518,0.23,0.185,0.187,0.202,0.231,0.241,1.601,0.461,0.556,0.868,1.536,1.003,0.964,1.034,1.16,1.171,1.317,1.129,0.737,0.781,0.715,0.584,0.374,0.514,0.278,0.185,0.187,0.202,0.231,0.298,0.426,0.569,0.516,0.582,0.598,1.149,0.966,0.734,0.822,0.925,1.038,1.108,0.679,0.552,0.488,0.412,0.7,0.563,0.186,0.185,0.187,0.202,0.231,1.118,0.35,0.594,1.127,0.674,0.467,0.628,0.712,0.926,1.0,1.022,1.022,0.857,0.653,0.745,0.511,0.528,0.67,0.764,0.686,0.185,0.187,0.202,0.231,0.24,0.971,0.4,0.494,0.514,0.822,0.672,0.699,0.885,0.926,0.955,1.009,0.942,0.855,0.746,0.725,0.619,0.373,0.307,0.389,0.234,0.217,0.218,0.236,0.332,0.536,0.653,0.738,0.704,0.896,0.874,1.035,1.117,1.233,1.168,1.161,1.067,0.811,0.711,0.665,1.343,0.341,0.295,0.257,0.23,0.215,0.219,0.24,0.318,0.415,0.602,0.865,0.886,0.916,1.168,9.8,1.415,1.521,1.533,1.541,1.605,1.062,0.854,0.539,0.654,0.746,0.36,0.205,0.227,0.235,0.25,0.275,0.345,0.705,2.349,0.969,1.006,0.935,0.907,1.331,1.137,1.166,1.158,1.182,1.092,0.82,0.642,0.518,0.525,0.6,0.753,0.396,0.185,0.187,0.214,0.249,0.358,0.482,0.759,1.709,0.658,0.777,1.085,1.057,1.105,1.215,1.205,1.706,1.345,0.994,0.857,0.933,0.999,0.492,0.207,0.225,0.471,0.223,0.232,0.254,0.353,0.554,0.544,0.592,0.517,0.843,0.679,0.668,1.592,1.638,0.706,0.994,1.2,0.983,1.252,0.897,1.846,0.524,0.596,0.664,0.198,0.187,0.202,0.231,0.414,0.589,2.082,0.685,1.01,0.714,0.885,0.797,0.929,1.012,1.021,2.391,1.077,1.195,0.806,0.751,0.616,0.448,0.681,0.483,0.185,0.187,0.206,0.24,0.452,0.622,6.144,3.19,1.807,1.768,0.757,0.853,1.282,1.227,1.225,1.287,1.232,0.937,0.991,1.101,0.608,0.452,0.497,0.485,0.198,0.221,0.215,0.266,0.444,0.613,0.758,0.985,0.842,0.941,1.124,1.163,2.019,1.939,1.246,1.269,1.286,1.051,0.856,1.04,0.466,0.394,0.568,0.607,0.231,0.198,0.447,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.653,1.154,0.459,0.385,0.638,0.576,0.185,0.192,0.22,0.253,2.199,0.708,0.975,2.712,0.878,0.926,2.237,1.089,1.578,1.481,1.102,0.808,0.802,0.705,0.748,0.601,0.35,0.435,0.696,0.387,0.185,0.187,0.202,0.231,0.278,6.647,1.482,1.563,0.569,0.533,0.915,2.424,6.174,0.663,0.577,0.416,0.357,0.305,0.443,0.45,0.233,0.306,0.613,0.287,0.185,0.187,0.202,0.231,0.252,0.309,0.462,0.816,0.836,2.079,2.033,0.354,0.376,0.551,0.778,0.395,0.796,0.526,0.613,0.496,0.507,0.597,0.66,0.291,0.185,0.187,0.202,0.231,0.266,0.373,0.466,0.572,0.602,0.747,0.823,0.831,1.042,1.565,1.265,0.827,2.076,0.823,0.744,0.702,0.569,0.479,0.63,0.658,0.185,0.187,0.202,0.231,0.359,2.37,0.984,1.299,0.681,0.976,1.447,1.103,1.875,1.984,0.872,1.098,1.164,0.918,0.71,0.814,0.966,1.008,0.385,0.192,0.215,0.457,0.231,0.255,0.368,1.009,3.283,9.608,1.758,1.698,1.542,0.953,1.274,1.445,1.453,1.458,1.829,1.082,1.002,0.906,0.481,0.89,0.818,0.442,0.202,0.216,0.241,0.269,0.389,1.799,1.068,0.766,2.297,0.715,1.178,1.8,1.831,1.158,2.944,1.33,2.405,1.014,1.124,0.708,0.401,0.798,0.713,0.186,0.188,0.216,0.248,0.28,1.013,0.752,0.762,0.72,0.811,0.904,1.367,0.896,1.48,1.583,1.483,0.616,0.58,0.718,0.739,0.65,0.492,0.441,0.33,0.245,0.249,0.247,0.257,0.279,0.369,0.475,0.589,0.698,0.664,0.687,0.862,0.821,0.952,1.007,1.017,1.095,1.025,0.991,0.888,0.851,5.033,0.691,0.413,0.351,0.226,0.232,0.241,0.267,0.467,0.748,1.804,0.926,0.907,1.525,0.928,1.054,1.164,1.302,1.39,1.489,3.266,1.215,1.019,0.949,0.94,0.648,0.664,0.402,0.288,0.242,0.258,0.281,0.447,0.621,1.257,0.909,0.89,0.963,1.7,1.222,1.457,1.592,1.718,1.883,1.726,1.224,1.008,1.208,1.098,1.366,0.579,1.241,0.361,0.264,0.277,0.302,1.734,0.617,1.13,1.053,1.231,1.078,1.197,1.483,2.018,1.833,1.453,1.494,1.359,1.588,0.999,0.877,0.552,0.461,0.59,0.574,0.272,0.26,0.273,0.307,0.395,0.539,0.89,1.092,1.14,1.29,1.624,1.632,1.964,2.077,1.855,1.711,1.995,1.325,0.959,0.855,0.502],"indoor_c":[24.28,24.26,24.21,24.12,24.0,23.89,24.2,24.85,24.99,25.0,25.0,25.0,25.46,25.66,25.65,25.87,26.17,26.25,26.3,26.46,25.57,24.73,23.96,25.42,25.97,24.94,24.06,25.36,26.0,26.02,26.45,26.83,24.44,25.53,25.77,25.61,25.97,25.28,25.2,24.87,25.92,25.96,26.25,26.48,26.48,26.37,25.84,25.91,25.88,26.1,26.35,26.61,26.81,26.86,27.27,27.58,27.69,27.64,27.39,26.93,26.67,25.39,25.48,26.82,26.73,26.64,26.6,26.53,26.14,24.91,24.57,25.4,25.83,25.92,24.47,24.48,25.61,25.72,26.05,26.33,26.51,26.83,27.01,27.22,27.36,27.41,27.3,27.31,26.84,26.65,26.79,26.72,26.69,26.59,25.99,24.94,23.92,24.89,25.54,25.71,25.71,25.57,26.16,25.39,25.86,26.19,24.31,24.24,24.54,24.8,24.77,24.95,25.31,25.53,25.41,25.37,25.46,25.54,25.63,25.69,24.65,25.31,26.01,26.25,26.31,26.26,26.56,26.58,26.49,26.41,26.43,26.43,25.5,25.36,26.09,26.46,26.48,26.49,26.7,26.57,26.52,26.53,26.55,24.62,24.5,26.02,26.5,26.69,26.68,26.53,25.74,26.24,25.59,23.71,25.57,25.9,25.91,25.95,25.77,26.04,26.16,26.28,26.4,26.27,26.32,26.28,25.78,24.44,23.08,22.38,24.39,25.61,25.73,25.56,25.64,25.4,25.59,25.66,25.72,25.59,25.69,25.92,25.83,26.05,26.13,26.21,26.25,26.25,26.18,26.07,25.98,26.05,25.99,26.06,26.17,26.29,26.34,26.28,26.39,26.37,26.24,26.24,26.29,26.3,26.31,26.34,26.08,26.14,26.12,26.09,26.09,26.04,25.95,25.88,24.94,25.57,25.44,25.57,25.72,25.89,26.01,26.04,26.2,26.23,26.01,25.87,25.78,25.72,25.68,25.03,25.26,25.32,25.29,25.26,25.24,25.31,25.42,25.55,24.72,23.83,24.74,25.71,26.0,26.26,26.46,26.57,26.72,25.32,23.35,24.33,23.86,24.38,24.96,25.06,25.03,25.26,25.36,25.41,25.43,25.4,25.48,25.55,25.19,24.45,23.3,24.08,25.32,25.86,26.18,26.35,26.5,26.43,26.17,25.08,25.49,25.47,25.5,25.51,25.36,25.48,25.56,25.5,25.68,25.61,25.57,25.42,24.05,24.56,25.73,25.78,25.83,25.92,26.0,26.03,26.21,26.21,25.93,25.89,25.91,25.88,25.89,25.97,24.06,24.05,25.79,25.8,26.01,25.85,25.67,25.52,24.79,24.96,24.22,23.81,25.18,25.81,25.98,25.92,26.09,26.1,24.47,25.22,25.43,25.49,25.53,25.71,25.6,25.72,25.75,24.46,25.32,25.22,25.39,25.44,25.5,25.34,23.8,24.0,25.46,25.97,26.12,26.04,26.09,26.06,25.49,23.98,23.72,25.07,25.62,25.5,25.3,25.38,25.39,25.37,25.36,25.32,25.15,24.31,24.66,24.97,24.45,24.83,25.86,26.11,26.23,26.15,26.18,26.06,25.92,25.77,25.78,25.69,25.59,25.54,24.04,23.65,24.75,25.05,25.01,25.09,25.24,25.35,25.47,25.51,24.26,23.66,25.03,25.83,25.73,26.01,26.34,26.5,26.54,26.63,26.69,27.01,27.39,27.91,28.54,29.11,29.67,30.24,30.89,31.44,28.82,28.24,27.48,27.07,24.65,24.27,25.84,26.45,26.7,26.79,24.32,24.53,24.23,23.62,24.97,25.35,24.23,24.91,23.86,24.08,24.85,24.82,24.89,25.04,25.09,25.12,25.19,24.55,22.96,23.6,24.76,25.19,25.48,25.64,25.73,25.55,25.62,25.76,25.74,25.8,25.9,25.69,25.37,25.71,25.93,25.99,26.04,25.96,25.84,25.74,25.72,25.14,23.86,24.42,25.2,25.48,25.62,25.64,25.78,25.81,25.85,24.5,24.07,25.43,25.78,25.88,25.74,25.7,25.77,25.73,25.53,25.69,25.67,25.64,25.02,23.62,22.53,23.67,24.99,25.38,25.46,25.37,25.7,25.81,25.77,25.77,25.79,25.7,25.72,25.83,25.65,24.6,24.87,25.83,24.56,25.38,25.42,25.44,25.49,25.53,23.75,23.54,25.13,25.7,25.83,25.74,25.84,24.02,23.69,23.05,24.5,24.52,23.61,24.43,23.27,23.17,24.98,25.17,25.2,25.24,25.26,25.31,24.11,22.99,24.23,25.46,25.68,25.84,25.95,25.9,25.98,25.47,25.18,24.61,24.45,23.38,23.88,25.16,25.02,25.09,25.1,25.12,25.14,25.2,25.22,25.23,25.3,23.61,22.89,24.66,25.46,25.81,26.0,26.02,25.97,23.5,23.79,24.89,23.51,24.47,24.69,23.37,23.32,24.58,23.21,24.15,23.41,24.18,23.49,23.81,24.58,22.74,22.68,24.42,25.06,25.39,25.66,25.81,24.51,24.49,24.83,25.38,25.67,24.59,23.96,24.75,23.2,23.17,22.4,24.13,24.89,25.0,25.05,25.13,24.76,24.64,24.9,25.27,25.35,25.46,25.58,25.7,25.89,25.89,25.76,25.77,25.54,25.48,25.4,25.49,25.36,25.46,25.46,25.44,25.45,25.42,25.32,25.11,23.02,23.76,24.17,24.28,24.83,24.98,25.16,25.31,25.52,25.09,24.27,24.91,25.24,24.87,25.3,25.21,25.37,25.53,25.53,25.51,24.1,24.94,24.9,24.78,24.61,24.48,24.3,24.57,25.04,25.46,25.62,25.67,25.81,25.73,25.19,25.41,25.57,25.67,25.48,25.53,25.32,25.35,25.05,24.83,24.94,25.16,25.16,24.21,24.09,23.59,23.95,23.38,24.77,25.2,25.42,25.51,24.1,24.78,23.58,24.11,24.52,24.51,24.48,24.12,23.36,23.62,24.28,24.29,24.36,24.22,24.52,24.61,24.75,24.86,24.02,23.7,24.8,25.3,25.52,25.54,25.59,25.48,25.15,24.95,24.87,24.78,24.71,24.68,24.4,24.34,24.24,24.25,24.09,24.6,24.76,24.79,25.0]},"Building_3":{"battery_soc":[0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2],"dhw_soc":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0],"grid_kwh":[0.563,0.473,0.446,0.433,0.435,0.5,1.033,0.884,2.187,2.132,1.284,0.969,0.731,0.829,0.891,1.994,1.803,1.649,1.968,1.807,1.774,2.584,2.719,2.948,0.809,0.645,0.577,1.238,0.461,0.608,0.55,0.63,0.852,0.872,0.804,0.82,0.798,0.894,1.726,2.027,3.019,2.253,2.421,2.045,1.615,1.693,1.107,0.639,0.589,0.559,0.535,0.519,0.525,0.572,0.535,0.508,1.347,0.915,1.691,0.415,0.565,8.096,1.113,1.721,2.25,1.528,2.802,1.989,1.722,1.679,0.726,0.479,0.478,0.484,0.476,0.472,0.47,0.56,2.248,0.742,2.124,0.749,1.171,0.453,1.069,0.202,0.114,0.249,0.422,0.807,1.332,1.114,1.238,1.352,1.374,0.742,0.579,0.514,0.494,0.481,0.47,0.528,0.458,0.391,0.2,0.105,-0.034,-0.076,0.858,0.495,0.575,0.952,1.225,2.137,2.804,4.356,2.4,0.973,1.143,0.754,0.656,0.592,0.549,0.497,0.492,0.553,8.204,0.944,1.117,1.147,0.941,0.355,0.469,0.49,0.703,1.24,1.54,1.379,1.715,1.358,3.324,1.408,0.834,0.723,0.65,0.917,0.898,0.844,0.592,0.578,1.476,1.06,0.654,0.397,0.281,0.361,1.26,0.871,0.725,0.775,1.628,2.323,3.137,2.229,1.836,1.845,0.891,0.745,0.649,0.586,0.541,0.511,0.48,0.548,1.358,0.745,0.446,0.313,0.188,0.172,0.237,0.744,0.988,1.193,1.485,2.414,2.149,2.623,2.755,2.023,1.66,1.034,0.69,0.636,0.587,0.564,0.555,0.599,0.603,0.761,0.631,0.536,0.658,0.987,0.845,6.452,2.388,1.682,1.651,2.174,3.312,2.328,1.708,1.719,1.421,0.741,0.662,0.605,0.565,0.54,0.528,0.589,0.579,0.544,0.447,0.423,0.577,0.319,0.859,0.703,1.045,1.614,4.011,2.641,2.393,2.863,1.419,2.082,0.97,0.84,0.97,0.92,0.844,0.561,0.48,0.601,4.874,0.917,0.805,1.241,0.534,0.411,0.792,0.886,0.994,1.375,1.684,1.595,2.146,2.303,2.388,9.131,1.259,1.141,0.599,0.637,0.684,0.661,0.657,0.714,0.617,0.536,0.625,0.764,0.382,0.507,0.561,1.241,0.84,1.134,1.53,2.179,2.146,4.945,4.652,5.853,9.45,1.516,0.881,0.593,0.569,0.552,0.551,0.606,1.792,0.574,0.528,0.44,0.794,0.37,0.42,0.379,0.663,1.167,1.71,1.728,1.96,2.549,1.729,2.494,2.664,1.286,0.673,0.622,0.58,0.552,0.526,0.591,0.613,0.785,0.418,0.334,0.219,0.282,0.305,0.403,0.493,1.076,1.46,1.527,1.917,3.356,3.53,1.587,1.556,1.479,0.664,0.62,0.585,0.563,0.54,0.598,0.768,2.533,1.353,0.967,0.685,0.618,0.552,0.556,0.874,1.251,1.729,2.102,2.715,2.296,2.326,1.591,1.314,3.385,0.757,0.647,0.614,0.592,0.586,0.63,0.647,0.638,0.83,1.126,1.079,1.134,1.553,1.127,1.493,1.787,2.459,1.761,2.065,2.472,2.609,1.864,1.226,0.811,0.724,0.666,0.628,0.6,0.587,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,2.082,1.939,1.791,0.631,1.084,0.593,0.579,0.568,0.567,0.622,0.91,0.988,0.719,0.858,1.673,0.796,0.874,0.753,0.931,1.151,1.215,1.42,1.489,1.38,1.647,1.299,0.812,0.841,0.575,0.563,0.551,0.543,0.542,0.602,2.226,0.732,1.068,0.706,0.581,0.492,1.007,0.706,0.793,0.803,0.736,0.665,1.249,0.949,1.561,1.361,0.834,0.804,1.27,0.776,0.521,0.512,0.495,1.692,0.73,0.558,0.78,0.769,0.578,0.617,0.514,0.572,0.573,0.484,0.834,1.975,1.368,1.391,2.159,3.745,2.419,0.82,0.525,0.513,0.509,1.815,0.524,0.609,0.866,2.932,0.886,0.497,0.475,1.125,0.698,0.725,0.948,1.168,1.311,1.565,1.591,1.445,1.725,1.611,1.096,0.889,0.661,0.613,0.586,0.565,0.548,0.634,8.641,0.92,2.622,1.322,0.42,0.601,0.535,0.613,1.087,1.637,1.918,2.038,2.217,3.475,2.241,2.363,1.288,0.808,0.73,0.677,0.633,0.6,0.586,0.637,0.651,2.323,0.863,0.977,0.917,1.189,2.025,1.51,2.116,2.496,2.828,2.111,3.038,1.88,1.644,1.545,1.298,0.852,0.8,0.748,0.706,0.676,0.671,0.709,0.656,0.81,0.955,1.02,1.012,0.971,1.19,1.186,1.281,1.755,4.027,2.367,2.992,2.196,1.889,2.179,1.534,0.929,0.814,0.737,0.699,0.581,0.597,0.64,0.957,0.922,1.024,0.869,0.572,1.043,0.856,0.72,0.808,0.95,1.266,1.62,1.983,2.28,1.924,1.448,1.216,0.673,0.636,0.615,0.598,0.585,0.589,0.671,0.643,0.594,0.97,1.857,0.499,0.541,1.542,1.496,1.311,1.227,1.175,2.316,1.937,1.67,2.065,1.637,2.575,1.149,1.905,0.655,0.598,0.591,0.562,3.354,0.9,0.883,1.806,1.471,0.414,0.377,0.737,0.53,0.752,1.076,1.373,2.043,2.442,10.08,2.374,2.07,1.379,1.041,0.858,0.744,0.683,0.64,0.618,0.668,1.154,1.676,5.556,7.639,2.401,0.942,1.24,2.053,1.408,1.747,2.14,2.081,2.099,2.959,2.074,10.153,2.433,1.072,0.834,0.753,0.701,0.667,0.656,0.695,0.737,1.006,0.775,0.831,0.864,3.518,1.473,1.025,1.503,1.906,1.666,2.159,10.01,2.211,1.709,1.576,1.716,1.589,0.8,0.74,0.7,0.671,0.668,0.705,0.696,0.673,0.861,1.962,0.921,0.982,1.897,2.298,2.228,2.679,2.766,2.987,2.982,2.241,2.032,1.8,3.695],"indoor_c":[24.43,24.44,24.44,24.44,24.36,24.29,24.11,23.35,23.33,23.33,23.33,23.33,23.1,22.81,22.46,22.34,22.04,22.87,23.26,23.79,24.0,24.11,23.58,22.63,23.22,23.65,23.94,24.63,24.94,24.62,25.03,25.49,25.27,24.87,24.59,24.34,24.15,23.93,23.58,22.75,22.0,22.52,23.01,22.36,22.28,22.31,23.47,24.18,24.53,24.77,24.94,25.04,25.13,25.24,25.45,25.24,24.82,24.88,24.05,24.03,23.92,23.18,22.87,22.56,22.75,22.98,22.65,22.64,22.65,22.64,23.08,24.05,24.34,24.52,24.7,24.84,24.99,25.13,24.6,24.98,24.54,24.86,24.95,24.8,24.61,24.45,24.35,24.38,24.33,24.2,24.37,24.41,23.81,23.21,23.21,23.62,23.96,24.02,24.11,24.21,24.38,24.93,25.4,25.63,25.63,25.46,25.2,24.96,24.8,24.81,24.51,24.3,24.06,23.53,23.72,22.49,23.03,23.43,23.67,23.92,24.22,24.28,24.39,24.57,24.8,24.89,24.81,24.94,24.06,23.63,23.38,22.96,22.71,22.44,22.19,22.1,21.86,22.84,23.45,23.61,22.9,23.46,23.8,24.09,24.36,24.2,24.13,24.15,24.45,24.74,25.09,25.16,25.23,25.15,24.88,24.63,24.25,24.03,23.79,23.51,23.23,22.87,22.9,22.99,23.3,23.47,23.85,24.14,24.28,24.45,24.54,24.66,24.88,25.01,24.93,25.17,25.12,24.94,24.81,24.5,24.21,23.54,23.19,22.98,22.59,21.6,21.76,21.98,22.09,22.51,23.09,23.36,23.57,23.75,23.91,23.98,24.05,24.18,24.41,24.61,24.67,24.68,24.53,24.32,24.17,23.39,23.31,23.13,23.1,22.88,22.39,22.88,23.1,23.31,23.48,23.74,23.92,24.1,24.23,24.31,24.43,24.52,24.78,24.99,25.08,25.0,24.79,24.46,24.06,23.7,23.44,22.64,21.61,21.35,21.26,21.09,21.58,21.83,22.25,22.52,22.04,21.96,22.03,23.0,23.85,24.12,22.85,23.36,23.67,23.64,23.53,23.34,22.73,22.44,22.34,22.39,22.06,22.66,22.55,21.92,21.9,21.47,22.29,23.24,23.65,23.6,23.47,23.58,23.7,23.87,24.39,24.8,24.3,24.0,23.62,23.4,23.28,22.99,22.69,22.48,22.48,22.73,23.13,22.62,22.0,20.79,20.81,22.4,23.01,23.27,23.52,23.78,24.06,24.34,24.27,24.45,23.95,23.57,23.33,23.18,22.99,22.77,22.55,22.55,22.45,22.5,22.49,22.54,22.77,22.38,22.24,23.26,23.66,23.82,23.95,24.12,24.37,24.58,24.99,25.27,25.22,24.89,24.52,24.24,23.94,23.66,23.48,23.1,22.52,22.84,23.21,22.57,22.44,22.7,22.76,23.62,23.86,24.1,24.23,24.37,24.56,24.61,24.79,24.14,24.32,24.27,24.18,23.96,23.59,23.36,23.11,22.54,22.16,22.3,21.86,22.04,22.21,22.48,22.73,22.2,22.95,23.36,23.66,23.88,24.05,24.22,24.48,24.65,24.66,23.99,23.59,23.3,23.0,22.71,22.48,22.11,21.84,22.16,22.42,22.63,22.81,22.99,23.25,23.51,23.73,23.92,24.07,24.16,24.24,24.7,24.99,24.89,24.28,24.03,23.62,23.51,23.45,23.53,23.95,24.38,25.15,25.91,26.8,27.4,23.48,23.41,23.29,24.34,24.51,24.61,24.68,24.72,24.78,24.86,25.04,25.07,24.55,24.02,23.58,23.38,23.13,22.89,22.68,22.49,22.37,22.6,22.58,22.7,22.77,22.85,23.01,23.65,23.91,24.0,24.12,24.27,24.44,24.62,24.17,24.03,23.95,24.39,24.41,24.22,23.9,23.68,23.52,23.4,22.95,23.47,23.45,23.65,23.72,23.75,23.92,24.04,24.26,24.31,24.42,24.59,24.82,24.51,24.75,24.84,24.28,24.1,23.99,23.73,23.49,23.38,23.31,23.16,23.22,22.94,23.25,23.32,23.35,22.2,22.72,23.58,23.97,24.14,24.28,23.73,24.2,24.49,24.86,24.2,23.88,23.6,23.44,23.24,23.05,22.81,22.61,22.48,22.44,22.99,23.38,23.61,23.79,23.92,24.14,23.74,24.3,24.44,24.53,24.63,24.78,24.9,24.69,24.93,23.99,24.08,23.94,23.65,23.43,23.27,23.14,22.9,22.06,22.04,21.9,21.59,21.82,21.98,22.68,23.22,23.43,23.7,23.86,23.98,24.11,24.24,24.48,23.87,24.07,23.97,23.78,23.5,22.78,22.17,21.43,21.1,20.83,21.18,21.18,21.49,21.79,22.06,22.23,22.57,22.66,22.81,22.94,23.03,23.11,23.23,23.74,24.2,24.2,23.7,23.17,22.88,22.6,22.38,22.13,21.71,20.99,20.85,20.7,21.06,21.65,21.86,22.12,22.46,22.65,22.82,22.99,23.56,23.82,24.04,24.26,24.25,23.72,23.59,23.37,23.14,22.86,22.62,22.47,22.37,22.42,22.66,22.34,22.16,22.31,22.5,22.66,23.41,23.7,23.83,23.97,24.12,24.28,24.46,24.73,24.84,24.6,24.42,23.71,23.12,22.9,22.68,22.48,22.32,22.09,22.41,22.72,22.72,22.43,22.5,22.0,22.97,23.31,23.47,23.62,23.8,24.04,23.17,23.71,24.02,23.58,23.67,23.5,23.35,23.11,22.96,22.73,22.48,22.25,22.06,22.25,21.79,22.17,22.37,22.67,22.95,23.25,23.37,23.48,23.66,23.89,24.13,24.22,24.25,23.67,23.03,22.59,22.9,22.52,22.19,21.66,21.31,21.22,21.58,21.94,22.14,22.49,22.06,22.46,22.78,23.0,23.26,23.45,23.65,23.84,24.05,24.32,24.43,24.41,24.2,23.88,22.49,22.62,22.37,22.24,22.04,21.83,21.77,21.48,21.99,22.38,22.64,22.92,23.15,23.29,23.52,23.68,23.8,23.91,24.05,24.26,24.3,24.19,23.29,23.29,23.03,22.34,21.47,21.02,20.78,20.59,20.8,21.24,21.68,22.03,22.34,21.65]}},"complete":true,"cost_usd":[0.0413,0.0849,0.1241,0.1603,0.1964,0.2464,0.33,0.3814,0.6663,0.7621,0.8181,0.9188,0.9761,1.0296,1.118,1.557,1.9468,2.2693,2.4031,2.5534,2.7429,2.9065,3.0492,3.203,3.287,3.3492,3.4008,3.4618,3.5306,3.6055,3.6796,3.7214,3.8135,3.855,3.9311,4.0315,4.2769,4.4651,4.6306,4.8384,5.0633,5.2464,5.4582,5.6087,5.7897,5.9416,6.0919,6.2045,6.2902,6.3616,6.424,6.48,6.5337,6.5884,6.6396,6.7017,6.8043,6.8452,6.9073,6.9728,7.0174,7.2756,7.3291,7.4711,7.6424,7.7686,7.9165,8.0279,8.1231,8.2409,8.2968,8.348,8.3876,8.4271,8.4693,8.5062,8.5374,8.6007,8.6835,8.7396,8.825,8.8648,8.9158,8.9443,8.9874,9.0055,9.0221,9.0618,9.1507,9.4274,9.5262,9.6193,9.7148,9.7984,9.8825,9.9556,10.0115,10.0593,10.1032,10.144,10.2127,10.2534,10.317,10.4347,10.4799,10.5011,10.5264,10.5712,10.6254,10.6796,10.7454,10.9481,11.1891,11.5854,11.768,11.9759,12.1099,12.1928,12.2794,12.3452,12.4015,12.4457,12.4988,12.5507,12.5977,12.6623,13.0736,13.1369,13.2048,13.4231,13.471,13.4988,13.5459,13.5884,13.6468,13.7678,13.9125,14.2339,14.3739,14.5157,14.8889,15.0073,15.0871,15.1609,15.2333,15.3154,15.3825,15.4411,15.4886,15.5341,15.6634,15.7336,15.8434,15.8955,15.9252,16.1143,16.2068,16.2856,16.368,16.5291,16.7309,17.0599,17.2256,17.3432,17.4779,17.5745,17.6344,17.6916,17.7466,17.7959,17.828,17.8583,17.8881,18.0032,18.0625,18.1184,18.1893,18.2128,18.2333,18.2622,18.2887,18.3361,18.4001,18.5601,18.7602,19.054,19.2015,19.3606,19.5083,19.6217,19.7113,19.7717,19.8296,19.8763,19.916,19.9536,19.9901,20.0272,20.0941,20.1428,20.2444,20.287,20.3284,20.4037,20.4881,20.7569,20.936,21.1005,21.2454,21.4151,21.6062,21.7628,21.8808,21.9942,22.1103,22.187,22.2508,22.3122,22.3748,22.4251,22.4722,22.5607,22.6101,22.6572,22.6977,22.7349,22.7773,22.813,22.8848,23.2143,23.3224,23.4659,23.7949,23.9849,24.2046,24.3891,24.5224,24.6278,24.7236,24.799,24.8744,24.9523,25.0236,25.0811,25.1324,25.1861,25.3647,25.4676,25.6149,25.7022,25.7595,25.8054,25.8628,25.9494,26.2457,26.539,26.8678,27.1901,27.3577,27.5004,27.6301,27.9445,28.025,28.1294,28.2024,28.2693,28.33,28.3858,28.4393,28.4937,28.5483,28.6013,28.6416,28.7137,28.7666,28.8367,28.8924,28.9803,29.067,29.4188,30.0524,30.495,30.6976,30.9535,31.1852,31.4303,31.7703,31.8754,31.9386,31.9957,32.0578,32.1083,32.1565,32.2057,32.2915,32.3435,32.3892,32.4193,32.4575,32.4929,32.5249,32.5609,32.6483,32.9582,33.2821,33.5904,33.7549,33.9509,34.117,34.2623,34.43,34.5261,34.5983,34.6782,34.7361,34.7861,34.8318,34.8779,34.9448,35.0829,35.1671,35.1968,35.2327,35.2617,35.3544,35.443,35.4845,35.6225,35.8126,36.1134,36.2647,36.473,36.6597,36.7763,36.881,36.9664,37.0404,37.1151,37.1736,37.2253,37.3092,37.359,37.4186,37.5325,37.7981,37.9193,37.9919,38.0615,38.1079,38.1555,38.2798,38.529,38.8195,39.2357,39.4278,39.5849,39.7345,39.9204,40.0129,40.1524,40.2229,40.2992,40.3612,40.4173,40.4685,40.5205,40.5783,40.6985,40.7653,40.8443,40.9094,40.9714,41.1912,41.2858,41.4166,41.5321,41.7492,41.926,42.0801,42.2353,42.4044,42.5331,42.6077,42.6617,42.7162,42.7685,42.8077,42.8441,42.8865,42.8865,42.8865,42.8865,42.8865,42.8865,42.8865,42.8865,42.8865,42.8865,42.8865,42.8865,42.8865,42.8865,42.8865,42.8865,43.0044,43.1306,43.2373,43.3005,43.3884,43.4684,43.5299,43.5852,43.6372,43.7772,43.9152,43.9882,44.0542,44.1595,44.2523,44.3074,44.4163,44.5953,44.6886,44.9254,45.1672,45.4293,45.5553,45.7335,45.8421,46.0189,46.085,46.145,46.21,46.2748,46.3296,46.4058,46.4529,46.5007,46.5959,46.83,46.9253,47.023,47.057,47.0868,47.1629,47.2614,47.4931,47.6198,47.7429,47.8645,47.9483,48.0465,48.1457,48.2324,48.2897,48.3457,48.424,48.521,48.5726,48.6196,48.6899,48.8046,48.8578,48.9486,49.0304,49.0766,49.1178,49.2104,49.2847,49.3117,49.3429,49.4426,49.6531,49.9092,49.9981,50.0894,50.2026,50.3816,50.5,50.6207,50.6877,50.7432,50.7934,50.8773,50.9339,50.9799,51.0336,51.1458,51.1914,51.2226,51.254,51.3411,51.399,51.4588,51.5528,51.7978,52.0965,52.4037,52.6573,52.7887,52.9004,53.0295,53.1128,53.1777,53.2466,53.3241,53.3819,53.4335,53.4806,53.5834,53.8829,54.0033,54.1359,54.2123,54.2537,54.3704,54.4577,54.5218,54.6369,55.0248,55.3738,55.7227,55.8955,56.0873,56.2471,56.3881,56.4893,56.5719,56.6389,56.6867,56.7308,56.7797,56.8209,56.8634,56.9223,57.0465,57.1965,57.5587,57.8256,57.9232,58.0771,58.1956,58.421,58.7775,58.9807,59.1643,59.3867,59.5583,59.7056,59.8323,59.9374,60.0379,60.116,60.1842,60.2304,60.2738,60.3257,60.3848,60.4459,60.5477,60.6066,60.6582,60.7798,60.8321,61.1058,61.3015,61.3955,61.5227,61.8181,62.038,62.2616,62.4127,62.5548,62.6894,62.8332,62.9113,62.9882,63.0559,63.1099,63.1588,63.2149,63.3646,63.4875,63.5951,63.6657,63.712,63.778,63.8348,63.903,63.966,64.0893,64.3062,64.5734,64.7687,64.868,65.0596,65.1881,65.3262,65.4414,65.5005,65.5608,65.6281,65.6904,65.7593,65.847,65.9232,66.0029,66.0776,66.1344,66.2089,66.2459,66.2821,66.3565,66.445,66.5342,66.7438,66.9877,67.341,67.4772,67.6128,67.7739,67.8876,68.1424,68.2395,68.3416,68.4086,68.4676,68.5204,68.5704,68.7005,68.7663,68.8464,68.9633,69.0332,69.0717,69.1272,69.1757,69.2219,69.3056,69.5746,69.9597,70.2917,70.5158,70.9318,71.1038,71.3511,71.4594,71.5637,71.6455,71.7186,71.7835,71.8407,71.8938,71.9785,72.1314,72.2602,72.4812,72.7304,72.8263,72.9447,73.0559,73.1728,73.357,73.6721,74.076,74.48,74.6744,74.9247,75.0792,75.6556,75.7981,75.9009,75.9789,76.0834,76.2026,76.2668,76.3252,76.3831,76.5081,76.5886,76.6664,76.7588,76.84,77.0141,77.1357,77.2333,77.3674,77.6835,78.0583,78.4635,78.8735,79.0672,79.2051,79.3524,79.5051,79.6215,79.6904,79.7497,79.7937,79.8366,79.8802,79.9264,79.9757,80.0699,80.1681,80.3597,80.5179,80.6165,80.7569,80.9273,81.1301,81.3492,81.5808,81.8152,82.0312,82.2098,82.3716,82.5272,82.6864],"discomfort_h":[0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,2.0,3.0,4.0,4.0,5.0,5.0,5.0,6.0,7.0,8.0,9.0,11.0,12.0,13.0,14.0,15.0,15.0,15.0,15.0,15.0,16.0,17.0,17.0,17.0,18.0,19.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,21.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,22.0,23.0,23.0,23.0,23.0,23.0,23.0,23.0,23.0,23.0,23.0,23.0,23.0,23.0,23.0,23.0,23.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,24.0,25.0,26.0,27.0,28.0,29.0,30.0,30.0,30.0,30.0,31.0,31.0,31.0,31.0,31.0,31.0,31.0,31.0,31.0,31.0,31.0,31.0,31.0,31.0,31.0,32.0,33.0,35.0,37.0,39.0,40.0,41.0,41.0,41.0,41.0,42.0,43.0,43.0,43.0,43.0,43.0,43.0,43.0,44.0,45.0,46.0,47.0,48.0,49.0,50.0,51.0,52.0,53.0,54.0,55.0,56.0,57.0,58.0,59.0,60.0,61.0,61.0,61.0,61.0,61.0,61.0,61.0,61.0,61.0,61.0,61.0,62.0,63.0,64.0,65.0,66.0,67.0,68.0,70.0,72.0,74.0,76.0,77.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,78.0,79.0,80.0,81.0,82.0,83.0,84.0,85.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,86.0,87.0,87.0,87.0,87.0,87.0,87.0,87.0,87.0,87.0,87.0,87.0,87.0,87.0,87.0,87.0,87.0,87.0,87.0,87.0,87.0,88.0,89.0,91.0,92.0,93.0,94.0,95.0,96.0,96.0,96.0,96.0,96.0,96.0,96.0,96.0,96.0,96.0,96.0,96.0,96.0,97.0,98.0,99.0,100.0,102.0,104.0,106.0,107.0,108.0,109.0,110.0,110.0,110.0,110.0,110.0,110.0,110.0,110.0,110.0,110.0,110.0,110.0,110.0,111.0,112.0,113.0,114.0,116.0,118.0,120.0,123.0,126.0,127.0,129.0,130.0,131.0,131.0,131.0,131.0,131.0,131.0,131.0,131.0,131.0,131.0,131.0,131.0,131.0,131.0,131.0,131.0,131.0,131.0,132.0,133.0,134.0,135.0,136.0,137.0,138.0,139.0,140.0,141.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,142.0,143.0,144.0,145.0,146.0,147.0,148.0,148.0,148.0,148.0,148.0,148.0,148.0,148.0,148.0,148.0,148.0,148.0,148.0,148.0,148.0,148.0,148.0,148.0,149.0,150.0,152.0,154.0,156.0,158.0,159.0,160.0,161.0,161.0,162.0,162.0,162.0,162.0,162.0,162.0,162.0,162.0,162.0,162.0,162.0,163.0,164.0,166.0,168.0,170.0,172.0,174.0,176.0,178.0,179.0,180.0,181.0,182.0,183.0,184.0,185.0,185.0,186.0,186.0,186.0,187.0,188.0,189.0,189.0,190.0,191.0,192.0,194.0,196.0,198.0,200.0,202.0,204.0,206.0,207.0,208.0,209.0,210.0,211.0,212.0,213.0,214.0,215.0,216.0,217.0,218.0,219.0,220.0,221.0,222.0,223.0,224.0,225.0,226.0,227.0,228.0,229.0,230.0,231.0,232.0,233.0,234.0,235.0,236.0,237.0,238.0,239.0,239.0,239.0,240.0,241.0,241.0,242.0,243.0,244.0,245.0,246.0,248.0,249.0,250.0,251.0,252.0,253.0,254.0,255.0,256.0,257.0,257.0,257.0,257.0,257.0,257.0,257.0,257.0,257.0,257.0,257.0,257.0,257.0,257.0,258.0,260.0,262.0,264.0,266.0,268.0,269.0,270.0,271.0,272.0,273.0,273.0,273.0,273.0,274.0,274.0,274.0,274.0,274.0,275.0,276.0,277.0,278.0,279.0,281.0,283.0,285.0,287.0,288.0,290.0,291.0,292.0,293.0,294.0,295.0,296.0,297.0,298.0,299.0,299.0,300.0,301.0,301.0,302.0,303.0,304.0,305.0,306.0,307.0,309.0,311.0,313.0,315.0,316.0,317.0,318.0,319.0,320.0,321.0,322.0,323.0,323.0,323.0,324.0,324.0,325.0,326.0,327.0,328.0,330.0,332.0,334.0,336.0,338.0,340.0,342.0,344.0,346.0,348.0],"district_grid_kwh":[1.428,1.505,1.355,1.254,1.245,1.731,2.889,1.763,9.774,3.287,1.561,3.455,1.967,1.835,3.033,7.483,6.644,5.496,4.59,5.157,6.502,5.611,4.935,5.313,2.906,2.15,1.782,2.11,2.376,2.591,2.559,1.447,2.937,1.367,2.63,3.47,8.481,6.508,5.72,7.182,7.773,6.33,7.322,5.2,6.256,5.252,5.194,3.894,2.96,2.47,2.155,1.937,1.856,1.89,1.77,2.147,3.545,1.297,1.861,1.522,0.774,8.602,1.79,4.906,5.922,4.363,5.111,3.852,3.293,4.069,1.935,1.768,1.37,1.366,1.458,1.277,1.078,2.185,2.862,1.927,2.93,1.364,1.75,0.977,1.479,0.623,0.393,0.365,1.515,4.717,3.387,3.195,3.275,2.867,2.91,2.527,1.93,1.652,1.52,1.409,2.374,1.408,2.199,4.036,1.553,0.726,0.4,1.158,1.716,1.858,2.26,3.453,4.108,6.755,6.265,7.132,4.595,2.846,2.993,2.272,1.946,1.528,1.837,1.793,1.624,2.234,14.217,2.169,2.332,7.487,1.643,0.541,1.309,1.115,2.005,1.689,2.467,5.478,4.803,4.867,12.803,4.062,2.756,2.552,2.501,2.839,2.32,2.023,1.642,1.576,4.467,2.408,3.766,1.79,1.017,6.488,3.173,2.703,2.828,2.745,3.44,5.607,5.683,4.035,4.621,3.315,2.07,1.976,1.903,1.704,1.108,1.048,1.031,3.978,2.049,1.919,2.43,0.517,0.256,0.583,0.595,1.626,2.196,2.728,3.41,5.008,5.06,5.457,5.067,3.89,3.098,2.089,2.0,1.615,1.371,1.299,1.264,1.281,2.314,1.681,3.513,1.473,1.431,2.602,2.919,9.291,6.191,5.687,5.009,5.866,6.606,5.413,4.078,3.919,4.015,2.651,2.203,2.124,2.162,1.742,1.625,3.061,1.708,1.627,1.398,1.02,1.239,1.081,2.482,11.388,3.738,4.962,11.371,6.567,7.595,6.376,4.61,3.643,3.311,2.605,2.608,2.693,2.462,1.988,1.772,1.857,6.174,3.531,5.053,2.995,1.965,1.574,1.971,2.968,10.165,5.0,5.604,5.494,5.75,4.896,4.45,10.784,2.784,3.608,2.522,2.315,2.095,1.931,1.847,1.882,1.887,1.817,1.292,2.446,1.816,2.405,1.911,3.014,2.975,5.996,10.799,7.544,6.951,8.78,7.948,8.408,11.751,3.634,2.183,1.974,2.148,1.747,1.665,1.699,2.967,1.783,1.568,0.617,0.828,0.9,0.978,1.234,2.998,5.282,5.52,5.256,5.642,6.724,5.696,4.984,5.799,3.32,2.497,2.764,2.001,1.726,1.579,1.594,2.314,4.736,2.89,0.713,0.858,0.792,3.181,3.039,1.191,2.353,3.24,5.127,5.189,7.144,6.405,4.0,3.62,2.954,2.555,2.584,2.023,1.788,2.897,1.723,2.06,3.908,9.112,3.986,2.331,2.275,1.591,1.633,4.263,4.248,4.951,7.094,6.588,5.392,5.131,6.378,3.196,4.822,2.437,2.636,2.145,1.938,1.77,1.797,2.001,4.154,2.309,2.732,2.249,2.143,7.597,3.27,4.523,3.99,7.504,6.113,5.327,5.365,5.845,4.447,2.577,1.867,1.884,1.81,1.354,1.258,1.464,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,4.075,4.363,3.689,2.183,3.04,2.766,2.125,1.913,1.798,4.838,4.768,2.505,2.265,3.612,3.182,1.893,3.733,6.142,3.201,4.036,4.123,4.467,4.322,6.112,3.727,6.066,2.283,2.073,2.249,2.238,1.894,2.633,1.628,1.653,3.291,8.031,3.27,3.352,1.164,0.947,2.608,3.38,7.948,2.159,2.099,2.072,2.876,3.367,3.404,2.977,1.98,1.933,2.709,3.35,1.785,1.624,2.43,3.966,1.838,3.115,2.807,1.562,1.179,3.177,2.421,0.864,1.071,1.7,3.588,4.364,3.052,3.13,3.882,6.143,4.092,4.172,2.316,1.919,1.733,2.902,1.956,1.592,1.854,3.85,1.565,0.697,0.765,2.988,1.987,2.052,3.223,4.177,5.09,5.236,8.701,4.507,3.832,4.43,2.879,2.245,2.381,2.679,1.996,1.784,1.63,3.55,10.355,4.131,4.549,2.434,1.418,4.005,2.995,2.197,3.948,6.611,5.949,5.947,5.929,6.577,5.484,4.838,3.497,2.856,2.313,1.654,1.525,1.69,1.423,1.471,2.036,4.291,5.184,12.522,9.224,3.376,5.317,4.097,7.792,12.321,7.027,6.345,7.686,5.935,5.089,4.38,3.635,3.474,2.697,2.359,1.597,1.499,1.796,2.04,2.114,3.519,2.034,1.647,4.201,1.81,9.459,6.764,3.249,4.398,10.212,7.598,7.731,5.222,4.913,4.651,4.97,2.7,2.657,2.34,1.869,1.689,1.94,5.176,4.247,3.693,2.421,1.425,2.265,1.896,2.339,2.163,4.23,3.696,4.555,3.329,3.406,6.572,4.407,4.737,3.983,2.042,2.087,2.324,2.156,2.381,3.031,2.633,2.755,2.564,1.949,2.504,1.271,1.24,2.554,3.033,3.06,3.573,4.158,6.021,4.673,4.652,5.527,3.9,8.808,3.354,3.531,2.316,2.037,1.826,1.73,4.495,2.274,2.749,4.012,2.179,1.085,1.787,1.022,1.036,2.87,4.586,6.564,5.659,7.689,14.271,5.899,8.485,3.742,3.605,2.828,2.528,2.242,1.975,1.837,2.928,5.284,4.422,7.582,8.349,3.137,4.062,3.813,4.011,6.318,5.371,6.885,6.885,6.669,8.588,5.3,19.771,4.928,3.554,2.693,3.614,4.12,2.218,2.019,2.001,4.323,2.76,2.671,3.168,2.784,5.975,4.17,3.347,4.601,5.388,6.389,6.906,14.065,6.646,4.731,5.053,5.277,4.022,2.381,2.05,1.522,1.483,1.507,1.598,1.704,3.256,3.394,6.625,5.467,3.408,4.853,5.891,7.011,7.572,8.004,8.103,7.465,6.174,5.593,5.381,5.503],"emission_kg":[0.575,1.151,1.652,2.112,2.577,3.244,4.386,5.112,9.342,10.75,11.628,13.312,14.279,15.174,16.629,20.157,23.213,25.683,27.698,29.946,32.81,35.319,37.538,39.892,41.145,42.001,42.683,43.47,44.351,45.302,46.256,46.808,48.102,48.711,49.927,51.599,55.706,58.848,61.594,64.997,68.609,71.514,74.816,77.127,79.922,82.327,84.709,86.481,87.866,88.967,89.876,90.652,91.374,92.107,92.805,93.678,95.155,95.734,96.655,97.715,98.487,103.113,104.08,106.634,109.696,111.938,114.543,116.465,118.093,120.12,121.067,121.941,122.602,123.228,123.83,124.322,124.771,125.751,127.023,127.951,129.46,130.173,131.127,131.658,132.45,132.78,133.08,133.431,134.213,136.623,138.353,140.002,141.709,143.185,144.645,145.837,146.685,147.363,147.951,148.508,149.476,150.091,151.115,153.058,153.843,154.212,154.658,155.467,156.465,157.464,158.667,160.484,162.627,166.123,169.327,172.911,175.186,176.542,177.926,178.976,179.821,180.444,181.164,181.828,182.429,183.261,188.894,189.8,190.839,194.258,195.021,195.485,196.307,197.057,198.087,199.144,200.391,203.106,205.429,207.717,213.605,215.441,216.662,217.74,218.768,219.864,220.731,221.488,222.121,222.745,224.6,225.603,227.287,228.091,228.556,231.601,233.121,234.445,235.826,237.166,238.824,241.459,244.055,245.827,247.863,249.328,250.222,251.063,251.866,252.511,252.913,253.284,253.665,255.178,256.015,256.906,258.111,258.504,258.837,259.301,259.722,260.479,261.517,262.816,264.428,266.771,269.136,271.682,274.059,275.891,277.32,278.266,279.145,279.833,280.388,280.907,281.42,281.963,282.989,283.734,285.351,286.018,286.677,287.897,289.294,293.759,296.678,299.329,301.656,304.362,307.378,309.848,311.742,313.553,315.328,316.414,317.297,318.098,318.846,319.437,319.987,321.02,321.608,322.18,322.679,323.134,323.693,324.206,325.313,330.562,332.321,334.662,340.025,343.119,346.601,349.475,351.559,353.191,354.626,355.741,356.821,357.889,358.832,359.581,360.234,360.926,363.264,364.624,366.628,367.781,368.569,369.246,370.142,371.543,376.427,378.842,381.568,384.247,387.054,389.443,391.622,396.825,398.114,399.686,400.773,401.712,402.533,403.285,404.017,404.782,405.586,406.4,407.034,408.133,408.963,410.116,411.043,412.498,413.916,416.744,421.774,425.226,428.364,432.368,436.068,440.051,445.557,447.223,448.227,449.118,450.027,450.745,451.446,452.193,453.585,454.481,455.275,455.789,456.449,457.08,457.653,458.294,459.843,462.529,465.293,467.883,470.634,473.931,476.749,479.224,482.061,483.664,484.799,486.017,486.836,487.522,488.132,488.784,489.805,492.047,493.478,493.965,494.546,495.023,496.556,498.009,498.682,499.79,501.306,503.703,506.103,509.396,512.37,514.22,515.82,517.078,518.102,519.091,519.83,520.465,521.512,522.178,523.021,524.674,528.556,530.253,531.308,532.363,533.073,533.8,535.674,537.541,539.687,542.743,545.596,547.938,550.201,553.042,554.432,556.433,557.426,558.42,559.222,559.939,560.597,561.278,562.045,563.649,564.534,565.559,566.44,567.329,570.542,571.939,573.856,575.551,578.722,581.308,583.563,585.858,588.415,590.426,591.6,592.439,593.324,594.163,594.797,595.374,596.067,596.067,596.067,596.067,596.067,596.067,596.067,596.067,596.067,596.067,596.067,596.067,596.067,596.067,596.067,596.067,598.129,600.352,602.221,603.328,604.847,606.262,607.326,608.268,609.139,611.536,613.951,615.243,616.436,618.326,620.028,621.056,623.077,626.379,628.055,630.125,632.214,634.434,636.549,639.591,641.486,644.575,645.709,646.707,647.707,648.689,649.517,650.678,651.415,652.202,653.853,657.966,659.665,661.393,662.001,662.545,663.93,665.72,669.891,671.018,672.108,673.174,674.632,676.292,677.924,679.328,680.236,681.083,682.301,683.707,684.444,685.155,686.294,688.262,689.202,690.8,692.234,693.052,693.791,695.474,696.837,697.337,697.918,698.84,700.782,703.143,704.796,706.492,708.593,711.896,714.084,716.309,717.5,718.51,719.414,720.951,722.01,722.888,723.915,726.055,726.913,727.493,728.074,729.685,730.759,731.865,733.592,735.821,738.539,741.337,745.998,748.438,750.526,752.904,754.412,755.535,756.599,757.738,758.535,759.233,759.863,761.263,765.69,767.499,769.604,770.807,771.492,773.464,774.946,776.021,777.919,781.078,783.902,786.702,789.455,792.453,794.942,797.126,798.654,799.863,800.818,801.49,802.065,802.68,803.184,803.759,804.602,806.329,808.335,813.018,816.66,818.093,820.433,822.294,825.944,831.782,835.119,838.129,841.766,844.535,846.867,848.857,850.46,851.935,853.013,853.896,854.481,855.007,855.626,856.318,857.048,858.302,859.036,859.684,861.289,862.02,866.082,869.073,870.534,872.542,877.233,880.648,884.037,886.302,888.45,890.482,892.614,893.756,894.896,895.832,896.543,897.205,897.999,900.314,902.33,904.187,905.397,906.175,907.287,908.253,909.42,910.503,912.632,914.492,916.787,918.458,920.161,923.421,925.599,927.947,929.888,930.858,931.763,932.723,933.572,934.503,935.694,936.764,937.924,939.039,939.908,940.989,941.545,942.115,943.3,944.738,946.202,947.911,949.899,952.768,954.995,957.214,959.88,961.759,965.852,967.333,968.797,969.709,970.493,971.189,971.843,973.584,974.504,975.662,977.358,978.327,978.904,979.801,980.61,981.384,982.794,985.055,988.307,991.121,994.937,1002.001,1004.928,1009.108,1010.869,1012.474,1013.641,1014.653,1015.51,1016.243,1016.936,1018.09,1020.308,1022.291,1025.828,1029.643,1031.158,1033.089,1034.932,1036.887,1039.945,1042.509,1045.751,1048.955,1052.028,1055.973,1058.417,1067.561,1069.756,1071.259,1072.353,1073.677,1075.146,1075.926,1076.642,1077.373,1079.017,1080.095,1081.121,1082.325,1083.451,1085.996,1087.833,1089.343,1091.453,1093.937,1096.87,1100.03,1106.45,1109.419,1111.524,1113.777,1116.114,1117.914,1118.987,1119.932,1120.635,1121.324,1122.016,1122.757,1123.536,1124.993,1126.454,1129.071,1131.242,1132.665,1134.762,1137.402,1140.657,1144.208,1147.968,1151.77,1155.242,1158.118,1160.749,1163.237,1165.706],"kpi":{"all_time_peak_average":1.0,"annual_normalized_unserved_energy_total":0.018316,"carbon_emissions_total":1.0,"cost_total":1.0,"daily_one_minus_load_factor_average":1.0,"daily_peak_average":1.0,"discomfort_cold_delta_average":0.790764,"discomfort_cold_delta_maximum":3.437551,"discomfort_cold_delta_minimum":0.0,"discomfort_cold_proportion":0.15377,"discomfort_hot_delta_average":0.237991,"discomfort_hot_delta_maximum":5.059987,"discomfort_hot_delta_minimum":0.0,"discomfort_hot_proportion":0.017627,"discomfort_proportion":0.171398,"electricity_consumption_total":1.0,"monthly_one_minus_load_factor_average":1.0,"one_minus_thermal_resilience_proportion":0.369841,"power_outage_normalized_unserved_energy_total":0.684408,"ramping_average":1.0,"zero_net_energy":1.0},"run":"baseline","steps":719},"baseline_sample":false,"carbon":[0.4025,0.3826,0.3695,0.367,0.374,0.3852,0.3954,0.4112,0.4328,0.4285,0.4576,0.4875,0.4915,0.4876,0.4797,0.4715,0.46,0.4494,0.4389,0.4361,0.4404,0.4471,0.4497,0.4431,0.431,0.3983,0.3831,0.3726,0.371,0.3669,0.3727,0.3815,0.4067,0.4241,0.4621,0.4818,0.4843,0.4828,0.48,0.4738,0.4647,0.459,0.4509,0.4446,0.4466,0.458,0.4586,0.455,0.4681,0.4455,0.4221,0.4006,0.3888,0.3875,0.3949,0.4061,0.4168,0.4094,0.429,0.468,0.5007,0.5185,0.5224,0.5205,0.517,0.5139,0.5097,0.4989,0.4943,0.4983,0.4894,0.4943,0.4825,0.4589,0.413,0.3851,0.4159,0.4486,0.4443,0.4817,0.5151,0.5229,0.5451,0.5432,0.5356,0.5314,0.5271,0.5193,0.5156,0.511,0.5107,0.5161,0.5213,0.5146,0.502,0.4717,0.4391,0.4105,0.3868,0.3956,0.4078,0.4366,0.4654,0.4814,0.5058,0.5082,0.5142,0.5267,0.5363,0.5374,0.5328,0.526,0.5216,0.5175,0.5113,0.5026,0.4951,0.4765,0.4624,0.4618,0.4347,0.4071,0.3921,0.3705,0.3695,0.3723,0.3963,0.4178,0.4454,0.4567,0.4645,0.4861,0.508,0.5154,0.5138,0.5126,0.5056,0.4957,0.4837,0.47,0.4599,0.452,0.4427,0.4223,0.411,0.3863,0.3738,0.3741,0.3852,0.3962,0.4154,0.4162,0.4471,0.4496,0.457,0.4693,0.479,0.4898,0.4885,0.4881,0.482,0.4699,0.4568,0.4392,0.4405,0.4419,0.432,0.4257,0.422,0.3781,0.3629,0.3546,0.3694,0.3803,0.4083,0.4647,0.4958,0.4864,0.4747,0.4667,0.463,0.4656,0.4728,0.4764,0.4727,0.468,0.4674,0.4664,0.4691,0.4709,0.4614,0.4531,0.4395,0.4258,0.405,0.3994,0.4061,0.4235,0.4433,0.4432,0.4603,0.4527,0.4604,0.4691,0.4786,0.4806,0.4715,0.4662,0.4646,0.4612,0.4566,0.4564,0.4643,0.4623,0.4421,0.4098,0.4005,0.3769,0.3463,0.3391,0.3386,0.3375,0.3438,0.3518,0.3569,0.3526,0.3825,0.4152,0.4462,0.4609,0.4704,0.4719,0.4717,0.4711,0.4585,0.4507,0.4521,0.448,0.4334,0.4279,0.4141,0.3964,0.383,0.3768,0.3684,0.3729,0.3787,0.3851,0.3966,0.3851,0.4006,0.4304,0.4545,0.4721,0.4805,0.4829,0.4865,0.4877,0.4882,0.4879,0.4896,0.4825,0.4631,0.4357,0.4309,0.4058,0.3914,0.3897,0.3963,0.4066,0.4258,0.4484,0.4584,0.4444,0.4566,0.4795,0.4853,0.4825,0.4767,0.4716,0.4659,0.4575,0.4515,0.4561,0.4655,0.4737,0.4685,0.4584,0.4601,0.4513,0.423,0.4112,0.4213,0.4395,0.4692,0.5021,0.5067,0.4979,0.5033,0.5202,0.5214,0.5194,0.5164,0.5085,0.5007,0.4927,0.4876,0.4904,0.4946,0.4965,0.4894,0.4829,0.4542,0.4409,0.4092,0.3975,0.3858,0.409,0.4413,0.4734,0.495,0.4785,0.4719,0.4788,0.4821,0.4782,0.4728,0.4713,0.4679,0.4675,0.4625,0.4609,0.4643,0.4625,0.4421,0.4257,0.401,0.3826,0.3652,0.3553,0.3614,0.3867,0.4089,0.4231,0.426,0.4083,0.4236,0.4421,0.4459,0.4454,0.4396,0.4394,0.4335,0.4307,0.4331,0.4344,0.441,0.4455,0.4348,0.415,0.4075,0.3772,0.3739,0.3702,0.3717,0.3788,0.3836,0.386,0.3835,0.3753,0.3914,0.415,0.423,0.4272,0.4238,0.4247,0.4226,0.423,0.4234,0.4277,0.4375,0.4522,0.4554,0.4494,0.4699,0.4636,0.4684,0.4589,0.4732,0.4855,0.4789,0.4768,0.498,0.497,0.498,0.504,0.4996,0.4978,0.494,0.4969,0.4925,0.49,0.4953,0.49,0.5059,0.5096,0.5066,0.5072,0.4997,0.5116,0.5008,0.4922,0.4842,0.4955,0.5066,0.5156,0.5266,0.5235,0.5347,0.5428,0.5414,0.5377,0.5237,0.5128,0.5068,0.497,0.4892,0.4979,0.5083,0.5091,0.4967,0.4817,0.4443,0.4388,0.4372,0.4411,0.4525,0.4759,0.5019,0.512,0.5197,0.5154,0.5226,0.5302,0.5315,0.5295,0.5248,0.5216,0.5196,0.5143,0.5069,0.4931,0.4796,0.4716,0.4583,0.4382,0.4497,0.4196,0.4129,0.4379,0.4687,0.4964,0.5112,0.5131,0.5107,0.5163,0.5228,0.5295,0.5354,0.5401,0.5424,0.5426,0.5412,0.541,0.5415,0.5417,0.5413,0.5378,0.5346,0.5334,0.514,0.5264,0.5217,0.5296,0.5413,0.5521,0.5536,0.5561,0.5483,0.542,0.5397,0.5388,0.5407,0.539,0.5357,0.5338,0.534,0.5344,0.5357,0.5413,0.5449,0.5369,0.5236,0.5002,0.447,0.4253,0.3993,0.3911,0.3865,0.3941,0.4275,0.438,0.4626,0.4592,0.4826,0.4924,0.4948,0.4893,0.4809,0.4778,0.4747,0.4708,0.4643,0.4558,0.454,0.4513,0.4369,0.4235,0.4127,0.4064,0.3774,0.3634,0.3545,0.391,0.4141,0.4023,0.387,0.374,0.3948,0.4243,0.44,0.4543,0.4684,0.4738,0.4748,0.4745,0.4732,0.4667,0.4581,0.4544,0.4411,0.4244,0.4,0.3742,0.3659,0.351,0.3448,0.3389,0.3452,0.3564,0.3613,0.3623,0.3822,0.4039,0.4294,0.4422,0.4495,0.4567,0.4594,0.4494,0.4384,0.4336,0.4372,0.4369,0.4289,0.4231,0.4292,0.4,0.3806,0.3916,0.4096,0.4473,0.4746,0.5027,0.5002,0.4897,0.4909,0.4962,0.4989,0.5006,0.5034,0.5033,0.5037,0.5021,0.4998,0.496,0.4942,0.4957,0.4874,0.4749,0.4333,0.4133,0.3936,0.3909,0.393,0.4066,0.4211,0.4348,0.4457,0.4234,0.4368,0.4599,0.4642,0.4741,0.4782,0.4784,0.4781,0.4765,0.4766,0.4771,0.4823,0.4817,0.4647,0.4416,0.4147,0.3936,0.3846,0.3815,0.3782,0.3873,0.4045,0.4211,0.4227,0.4043,0.4363,0.4719,0.4859,0.4885,0.4911,0.4931,0.4954,0.4974,0.4963,0.495,0.4962,0.4926,0.4706,0.4453,0.4126,0.4005,0.3821,0.3709,0.3773,0.3942,0.4197,0.4484,0.4666,0.4463,0.4606,0.4754,0.4833,0.4874,0.484,0.4774,0.4709,0.4654,0.4609,0.4593,0.4611,0.4625,0.4455,0.4228,0.4063,0.3665,0.3565,0.3518,0.3547,0.365,0.3802,0.3906,0.3844,0.3798,0.4046,0.4259,0.4406,0.4509,0.4588,0.461,0.459,0.4576,0.4565,0.4468,0.4448,0.446,0.4428,0.4476,0.4507,0.4607,0.462,0.4648,0.4593,0.4635,0.4575,0.4475,0.4305,0.395,0.397,0.4176,0.432,0.4482,0.4642,0.4689,0.4698,0.4692,0.4652,0.4658,0.4703,0.4624,0.4486],"day":[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30],"episode_hours":719,"headline":{"cost_pct":-7.5,"discomfort_points":-7.7,"emissions_pct":-3.5,"text":"Cost down 7.5% and emissions down 3.5% at equal or better comfort","tone":"win"},"hour_of_day":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23],"hours":719,"id":"citylearn_challenge_2023_phase_2_local_evaluation","name":"CityLearn 2023 challenge, local evaluation","occupied":{"Building_1":[1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],"Building_2":[1,1,1,1,1,1,1,1,1,1,1,0,1,0,0,1,1,1,0,1,1,1,0,0,0,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1],"Building_3":[1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1]},"outdoor_c":[24.7,24.1,23.9,23.9,23.8,23.9,25.0,26.9,29.3,31.7,33.9,35.9,37.5,38.7,39.3,39.5,39.2,38.1,36.1,32.6,31.2,29.6,28.0,26.8,25.9,25.2,24.9,24.8,24.8,24.7,25.4,27.0,29.4,32.1,34.5,36.6,38.3,39.5,40.2,40.3,39.8,38.7,36.5,32.4,31.3,30.8,29.3,27.8,26.7,26.0,25.5,25.2,25.0,24.9,25.3,26.4,28.4,30.5,32.6,32.2,31.2,31.7,31.8,31.6,31.1,30.1,28.7,26.9,26.3,25.9,25.4,24.9,24.8,24.6,24.5,24.2,23.7,23.4,23.8,24.9,26.7,28.3,29.2,29.6,29.7,29.8,29.6,29.5,29.6,29.8,29.1,27.6,26.0,25.2,24.8,24.4,23.9,23.2,22.8,22.4,22.2,22.2,23.5,25.5,27.8,30.0,32.3,34.1,35.5,36.5,36.9,37.0,36.6,35.7,33.9,29.9,28.6,27.9,27.4,26.6,25.3,24.5,23.8,23.4,23.1,23.2,24.6,26.8,28.8,30.8,32.7,34.2,35.3,36.2,36.8,36.9,36.4,35.4,33.2,29.9,28.9,28.4,27.5,26.7,25.9,25.1,24.5,23.7,22.9,22.9,24.6,26.6,28.8,30.9,32.8,34.4,35.6,36.4,36.8,37.0,36.5,35.0,32.2,29.7,28.9,28.3,27.3,26.0,24.7,23.5,22.6,22.0,21.6,21.4,23.5,26.0,28.5,30.8,32.7,34.3,35.6,36.5,36.7,36.5,36.0,35.1,33.2,30.3,29.0,28.5,27.9,26.5,25.5,24.8,24.2,23.9,23.5,23.3,24.6,26.5,28.8,30.9,32.8,34.4,35.5,36.3,36.5,36.2,35.3,34.0,32.2,29.1,27.8,27.0,26.4,25.8,25.2,24.5,23.9,23.5,23.4,23.4,24.6,26.6,29.4,31.5,33.5,35.1,36.5,37.4,37.8,37.7,37.1,35.9,33.8,31.3,29.4,28.1,27.1,26.5,25.9,25.6,25.4,25.4,25.3,25.2,25.7,27.3,29.3,31.0,33.0,35.2,36.6,37.3,37.4,37.0,36.3,35.2,33.4,31.0,29.2,28.0,27.0,26.2,25.7,25.4,25.3,25.3,25.2,25.0,25.7,27.5,29.4,31.1,32.8,34.2,35.4,36.2,36.8,37.0,36.8,35.9,34.1,31.0,29.6,28.4,27.4,26.3,25.3,24.6,24.4,24.1,24.1,24.1,25.3,27.2,28.8,30.3,31.8,33.1,34.3,35.4,36.3,36.8,36.7,36.0,34.2,31.5,30.9,29.7,28.1,26.9,26.0,24.9,23.9,23.1,22.6,22.4,24.4,26.8,29.3,31.6,33.3,34.5,35.2,35.6,35.6,35.4,35.0,34.2,32.9,30.2,28.8,28.1,27.4,26.6,25.7,24.9,24.2,23.8,23.6,23.6,24.9,27.1,29.4,31.6,33.5,35.0,36.0,36.6,36.8,36.6,36.2,35.3,33.8,31.8,29.9,28.5,27.5,26.7,26.0,25.5,25.2,24.9,24.5,24.2,24.9,26.8,29.0,31.0,32.8,34.3,35.6,36.4,36.8,36.7,36.0,34.9,33.3,31.3,29.7,28.6,27.7,26.8,26.1,25.4,25.1,24.7,24.3,23.9,24.7,26.8,29.3,31.5,33.4,35.0,36.2,36.8,36.8,36.2,34.8,33.4,32.0,30.6,29.4,28.3,27.3,26.4,25.7,25.2,24.8,24.5,24.2,24.0,24.7,26.2,28.7,31.0,32.9,34.3,35.3,35.4,35.2,34.9,33.3,30.9,28.5,26.8,26.1,25.7,25.4,25.0,24.6,24.3,24.2,24.0,23.8,23.7,24.0,24.7,25.7,26.7,27.3,27.7,28.2,28.6,28.7,28.3,27.7,26.8,25.7,24.5,23.8,23.7,23.8,24.0,24.2,24.3,24.1,23.9,23.8,23.7,23.9,24.5,25.4,26.3,27.3,28.0,28.4,28.4,28.0,27.7,27.4,26.8,26.0,25.0,24.5,24.4,24.2,24.1,23.9,23.8,23.6,23.5,23.4,23.3,24.5,25.9,28.1,30.7,32.5,33.9,35.0,35.7,35.9,35.8,35.2,34.2,32.5,29.4,28.2,27.3,26.4,25.6,25.0,24.6,24.2,23.8,23.3,22.9,24.7,27.0,29.6,32.1,34.3,36.2,37.5,38.4,38.7,38.6,37.7,36.3,34.1,31.8,30.1,29.0,27.9,26.9,26.0,25.3,24.7,24.2,23.9,23.8,25.1,27.2,29.6,32.0,34.2,35.9,37.1,37.8,37.9,37.3,36.2,34.5,32.7,30.6,29.0,27.9,26.8,26.0,25.5,25.2,25.0,24.9,24.7,24.6,25.5,27.4,29.3,31.2,32.8,34.1,35.8,36.8,37.0,36.6,35.3,33.8,32.0,30.0,28.7,27.7,26.8,26.0,25.6,25.5,25.4,25.3,25.2,25.1,25.6,26.6,27.8,29.2,30.8,32.1,33.4,34.0,34.0,33.6,32.9,32.1,31.0,29.2,28.0,27.2,26.5,25.9,25.5,25.2,25.0,24.8,24.5,24.4,25.2,26.3,28.0,29.9,31.9,33.6,34.7,35.3,35.5,35.4,34.9,34.1,32.6,30.5,29.5,28.4,27.4,26.5,25.8,25.1,24.5,23.9,23.8,23.8,25.0,27.1,29.4,31.9,34.1,35.8,37.0,37.8,38.3,38.3,38.0,37.0,35.2,32.1,30.4,29.0,28.0,27.1,26.4,25.6,25.0,24.4,23.9,23.9,25.5,27.6,30.0,32.5,34.7,36.4,37.7,38.6,39.0,38.9,38.1,36.8,34.8,32.2,30.4,29.1,28.0,27.0,26.2,25.7,25.4,25.2,24.9,24.7,25.9,28.1,30.4,32.6,34.6,36.3,37.6,38.4,38.7,38.5,37.6,36.0,33.8,31.5,29.8,28.6,27.5,26.7,26.1,25.7,25.6,25.4,25.2,25.1,26.1,28.0,30.2,32.6,34.8,36.7,38.1,39.0,39.4,39.1,38.1,36.6,34.5,32.0,29.9,28.5,27.3],"price":[0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0291,0.0587,0.0587,0.0587,0.0291,0.0291,0.0291,0.0291,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289,0.0289],"setpoint_c":{"Building_1":[23.22,22.22,22.22,22.22,22.22,22.22,22.22,22.33,22.78,23.33,24.44,24.44,24.44,24.44,24.44,24.44,23.56,25.56,26.5,24.44,21.67,24.44,22.83,20.72,20.56,21.67,22.22,22.22,22.22,22.22,22.22,22.33,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.61,25.0,24.5,24.44,24.44,24.44,22.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,20.0,22.44,22.78,24.44,24.44,24.44,24.39,23.56,22.22,22.56,24.44,24.44,24.44,22.22,24.44,24.44,23.22,23.56,23.83,24.11,24.44,24.78,25.06,23.33,23.89,23.89,25.67,24.44,24.44,25.83,25.0,25.83,24.44,24.44,24.44,24.44,24.44,24.44,24.44,22.22,23.22,22.22,22.22,22.22,22.22,22.22,22.22,22.33,22.78,23.33,23.89,24.44,24.44,24.44,24.44,24.44,24.39,24.39,24.39,24.39,24.39,24.33,24.33,24.33,24.33,24.44,22.22,22.22,22.22,22.22,22.22,22.22,22.22,22.78,23.89,24.44,24.44,25.22,25.0,27.22,27.22,27.22,26.67,25.67,25.78,24.44,24.44,24.44,23.22,22.22,22.22,22.22,22.22,22.22,22.22,22.33,22.78,23.33,23.89,24.44,24.44,24.44,24.44,25.56,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.11,27.0,26.89,26.78,26.67,26.56,26.39,26.28,26.17,26.06,25.94,25.83,25.72,25.61,25.5,25.39,25.28,25.11,25.0,24.89,24.78,24.67,24.56,22.78,23.22,22.22,22.22,22.22,22.22,22.22,22.22,22.33,22.78,24.44,24.44,24.44,24.44,24.44,24.44,24.56,26.28,24.17,24.28,24.44,24.44,25.78,24.44,24.44,23.22,22.22,22.22,22.22,22.22,22.22,22.22,22.33,22.22,23.33,23.89,24.44,24.44,24.44,23.61,23.33,24.17,24.44,24.44,24.44,24.44,24.44,24.44,22.78,23.22,22.22,22.22,22.22,22.22,22.22,22.22,22.33,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,22.22,23.28,22.22,22.22,22.22,22.22,22.22,22.22,22.28,22.22,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,23.28,22.22,22.22,22.22,22.22,22.22,22.22,22.28,22.78,24.44,24.44,24.44,25.67,26.67,26.67,26.67,26.67,26.67,25.33,24.44,24.44,24.44,24.44,24.44,23.28,22.22,22.22,22.22,22.22,22.22,22.22,22.28,22.78,24.44,24.44,24.44,24.44,25.33,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,23.28,22.22,22.22,22.22,22.22,22.22,22.22,22.28,22.78,24.44,24.44,24.44,24.44,25.0,25.56,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,27.22,25.56,25.0,26.67,25.56,23.5,23.33,24.28,24.44,25.33,26.67,24.78,24.44,24.44,23.28,22.22,22.22,22.22,22.22,22.22,22.22,22.28,22.78,24.44,24.44,24.44,24.5,25.67,24.44,24.44,24.44,24.22,23.33,23.56,24.44,24.44,24.44,24.44,23.28,22.22,22.22,22.22,22.22,22.22,22.22,22.28,22.78,24.44,24.44,24.44,24.44,25.06,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,23.28,22.22,22.22,22.22,22.22,22.22,22.22,22.28,22.22,24.44,24.44,24.44,24.44,24.44,24.17,23.33,23.61,24.44,24.44,24.44,24.44,24.44,24.44,24.44,23.28,22.22,22.22,22.22,22.22,22.22,22.22,22.28,22.78,24.44,24.44,24.44,24.44,24.78,25.0,24.78,23.33,23.78,24.44,24.44,24.44,24.44,24.44,24.44,23.28,22.22,22.22,22.22,22.22,22.22,22.22,22.28,22.78,24.44,24.44,24.44,24.44,25.11,24.94,23.33,23.72,24.44,24.44,24.44,24.44,24.44,24.44,24.44,23.39,24.44,24.44,24.44,24.44,24.44,24.44,23.06,22.78,24.17,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.33,23.89,24.0,24.44,24.44,22.22,22.22,23.28,22.22,23.67,23.89,22.44,22.22,22.22,22.28,24.44,24.44,24.44,24.44,24.44,25.44,26.67,24.22,23.33,24.06,24.44,24.28,23.89,24.06,24.44,24.44,23.28,22.39,23.33,23.17,22.22,22.22,22.22,22.28,22.78,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,25.44,26.39,24.44,24.44,24.44,24.44,24.44,23.33,22.22,22.22,22.22,22.22,22.22,22.22,22.22,22.78,24.44,24.44,24.44,24.44,24.44,24.44,24.11,23.89,24.44,25.17,24.44,24.44,24.44,24.44,22.78,23.33,22.22,22.22,22.22,22.22,22.22,22.22,22.22,22.78,24.44,24.44,24.44,26.39,26.67,25.0,24.44,24.44,26.67,26.0,23.33,24.44,24.44,24.44,22.22,23.33,22.22,22.22,22.22,22.22,22.22,22.22,22.22,22.22,24.44,24.44,22.22,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,23.33,22.22,22.22,22.22,22.22,22.22,22.22,22.22,22.78,24.44,22.78,24.44,22.22,24.44,24.44,24.44,24.44,25.94,26.44,24.44,24.44,22.22,21.11,21.67,23.33,23.72,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,25.06,24.44,24.44,24.44,24.44],"Building_2":[24.44,24.44,24.44,24.44,24.44,24.44,24.78,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,23.39,22.78,23.94,24.44,23.44,22.78,23.78,24.44,24.44,24.78,25.0,25.0,25.0,25.0,25.0,24.89,23.89,24.0,25.0,25.0,25.0,25.0,25.0,25.0,24.94,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.78,25.0,25.0,25.0,25.0,25.0,24.61,23.33,23.72,25.0,25.0,25.0,25.0,25.0,24.67,23.61,23.33,24.0,24.44,24.28,22.78,22.94,24.44,24.44,24.78,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.94,24.44,23.61,22.78,23.61,24.44,24.44,24.44,24.44,24.94,25.0,25.0,25.0,23.33,23.33,23.44,23.5,23.61,23.67,23.78,23.89,23.94,24.06,24.11,24.22,24.33,24.39,23.33,23.94,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.11,23.89,24.78,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,23.33,23.33,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.44,23.22,24.89,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.56,23.39,22.22,21.67,23.28,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.17,23.33,24.17,25.0,25.0,25.0,25.0,25.0,25.0,24.0,23.89,24.39,23.89,24.44,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.61,23.89,22.78,23.56,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.83,23.44,24.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,23.33,23.33,25.0,25.0,25.0,25.0,25.0,25.0,24.39,24.44,23.67,23.33,24.5,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.78,23.33,23.56,25.0,25.0,25.0,25.0,25.0,25.0,25.0,23.61,23.33,24.72,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.72,23.89,24.17,24.33,23.89,24.17,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,23.67,23.33,24.67,25.0,25.0,25.0,25.0,25.0,25.0,25.0,23.89,23.33,24.44,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,23.5,23.33,24.83,25.0,25.0,25.0,25.0,24.17,23.89,24.72,25.0,25.0,25.0,24.72,23.89,24.17,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.33,22.78,23.44,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.44,23.33,23.89,25.0,25.0,25.0,25.0,25.0,25.0,25.0,23.56,23.33,24.78,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.44,23.17,22.22,23.11,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,23.78,24.17,25.0,25.0,25.0,25.0,25.0,25.0,25.0,23.39,23.33,24.94,25.0,25.0,25.0,25.0,25.0,23.83,23.33,24.5,24.28,23.33,24.06,22.94,22.78,24.78,25.0,25.0,25.0,25.0,25.0,23.83,22.78,23.94,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.5,23.33,23.83,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,23.39,22.78,24.39,25.0,25.0,25.0,25.0,24.89,23.89,24.0,25.0,25.0,25.0,25.0,23.39,23.33,24.94,25.0,25.0,25.0,25.0,24.06,24.17,24.78,22.78,22.78,24.94,25.0,25.0,25.0,25.0,24.17,24.11,24.44,24.83,25.0,24.22,23.89,24.67,23.44,23.22,22.78,24.44,25.0,25.0,25.0,25.0,24.56,24.44,24.67,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.83,24.44,24.22,24.44,24.5,25.0,25.0,25.0,25.0,25.0,24.72,25.0,25.0,25.0,25.0,25.0,24.72,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.83,24.61,24.44,24.22,24.44,24.78,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.78,24.44,24.67,25.0,25.0,24.0,23.89,24.28,23.89,24.56,25.0,25.0,25.0,25.0,25.0,25.0,24.06,24.61,25.0,25.0,25.0,24.56,23.89,24.33,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.17,23.89,24.72,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,25.0,24.67,25.0,25.0,25.0,25.11],"Building_3":[24.44,24.44,24.44,24.44,24.44,24.44,24.11,23.33,23.33,23.33,23.33,23.33,23.33,23.33,23.33,23.33,23.33,24.44,24.44,24.44,24.44,24.44,24.44,23.94,23.89,23.89,23.89,24.39,24.44,23.94,24.17,24.44,24.11,23.89,23.89,23.89,23.89,23.89,23.89,23.39,23.33,24.44,24.44,23.33,23.17,23.11,24.06,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,23.94,23.89,23.89,23.89,23.89,23.89,23.89,23.33,23.33,23.61,23.89,23.33,23.33,23.33,23.33,23.56,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,23.78,23.33,23.39,23.72,23.89,23.89,23.89,23.89,23.89,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.17,23.33,23.33,23.33,23.33,23.33,23.33,23.33,23.33,23.33,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,23.89,23.89,23.89,23.72,23.33,23.33,23.33,23.33,23.56,23.89,23.89,23.94,23.94,24.0,24.0,24.0,24.06,24.06,24.11,24.11,24.17,24.17,24.17,24.22,24.22,24.28,24.28,24.33,24.33,24.33,24.39,24.39,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.39,23.89,23.39,23.78,23.33,23.33,23.33,23.33,23.5,23.56,22.78,22.78,22.78,23.67,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.0,23.89,23.89,23.89,23.67,24.44,23.89,23.33,23.33,23.33,23.78,24.44,24.44,24.17,23.89,23.89,23.89,23.89,24.17,24.44,23.89,23.89,23.89,23.89,23.89,23.89,23.89,23.89,23.89,24.44,24.44,24.44,24.44,23.61,23.39,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.0,23.89,23.89,23.89,23.89,23.89,23.89,23.89,23.89,24.28,23.89,23.89,23.89,23.89,23.89,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.17,23.89,24.44,24.44,24.44,24.44,24.11,23.89,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.0,23.89,24.28,23.89,23.89,23.89,23.89,23.89,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,23.94,23.89,23.89,23.89,23.89,23.89,23.89,23.89,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.22,23.89,23.89,23.89,23.89,23.89,23.89,23.89,23.89,23.89,24.44,24.11,23.67,23.33,23.33,23.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.06,23.89,23.89,23.89,23.89,23.89,23.89,23.89,23.89,24.11,23.89,23.89,23.89,23.89,23.89,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,23.94,23.89,24.33,24.44,24.44,24.44,24.44,24.44,24.39,23.89,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.39,23.89,23.89,23.89,23.89,23.89,23.89,23.89,23.89,23.89,24.17,23.89,23.89,23.89,23.89,23.89,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,23.94,23.89,23.89,23.89,23.89,23.89,23.89,23.89,23.89,24.44,24.44,24.44,24.44,24.44,24.44,23.94,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.06,24.44,24.06,23.89,23.89,23.89,24.28,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.11,23.89,23.89,23.89,23.89,24.33,23.89,23.89,23.89,23.89,23.89,24.0,23.89,23.89,23.89,23.89,23.89,23.89,24.17,24.44,24.44,24.11,23.89,23.89,23.89,23.89,23.89,23.89,23.89,23.72,23.33,23.56,23.89,23.89,23.89,24.0,23.89,23.89,23.89,24.33,24.44,24.44,24.44,24.28,23.89,23.89,23.89,23.89,23.89,23.89,23.89,23.89,23.89,24.44,24.0,23.89,23.89,23.89,23.89,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.0,23.89,23.89,23.89,23.89,23.89,23.89,24.44,24.44,24.22,23.89,23.89,23.89,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.17,23.89,23.89,23.89,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.44,24.28,23.89,23.89,23.89,23.89,24.44,24.44,24.44,24.44,24.44,24.44]}}],"schema":2} diff --git a/hyperbolic/__init__.py b/hyperbolic/__init__.py index d1f8295..3e529ee 100644 --- a/hyperbolic/__init__.py +++ b/hyperbolic/__init__.py @@ -1,3 +1,3 @@ """Hyperbolic: a supervisory controller for CityLearn district simulations.""" -__version__ = "0.8.0" +__version__ = "0.9.0" diff --git a/hyperbolic/cli.py b/hyperbolic/cli.py index 66d7ccb..a636cd3 100644 --- a/hyperbolic/cli.py +++ b/hyperbolic/cli.py @@ -216,8 +216,8 @@ def build_parser() -> argparse.ArgumentParser: r.add_argument("--prompt-version", type=int, default=None, choices=PROMPT_VERSIONS, help=f"observation and prompt version (default: {PROMPT_VERSION}; with --scripted, " f"{RULE_PROMPT_VERSION}, the 0.4.0 rule-based controller, while versions 4 and 5 " - "run their strategies literally and version 6 runs the version 5 strategy with the " - "trim hold)") + "run their strategies literally, version 6 runs the version 5 strategy with the " + "trim hold and version 7 keeps it inside the ranges its observation shows)") r.set_defaults(func=cmd_run) rp = sub.add_parser("replay", help="re-run a saved run from its files with zero model or simulator calls") diff --git a/hyperbolic/live.py b/hyperbolic/live.py index 591e415..40bbca8 100644 --- a/hyperbolic/live.py +++ b/hyperbolic/live.py @@ -75,10 +75,10 @@ {"id": "week", "label": "1 week (167 hours)", "hours": 167}, {"id": "month", "label": "Full month (719 hours)", "hours": dc.EPISODE_HOURS}, ] -# Typical prompt version 6 request and reply, for a cost estimate before any run is recorded: the -# 0.7.0 live month averaged 4,946 input and 771 output tokens on version 5, and version 6 is about -# 5 percent larger. -TYPICAL_TOKENS = (5200, 790) +# Typical prompt version 7 request and reply, for a cost estimate before any run is recorded: the +# 0.8.0 live month averaged 5,245 input and 429 output tokens on version 6, version 7 requests are +# 1.7 percent smaller, and replies that send a held trim as a number run a little longer. +TYPICAL_TOKENS = (5160, 450) def key_status(env: dict[str, str] | None = None) -> dict: diff --git a/hyperbolic/model.py b/hyperbolic/model.py index 64d86ec..1314d41 100644 --- a/hyperbolic/model.py +++ b/hyperbolic/model.py @@ -275,6 +275,25 @@ class StrategyParamsV5: min_move: float = 0.01 # storage moves smaller than this are skipped +@dataclass(frozen=True) +class StrategyParamsV7(StrategyParamsV5): + """Numbers in the prompt version 7 strategy: version 5's, plus the battery smoothing that was + searched for it. battery_plan_v7 executes it and the prompt states them. Chosen on the tuning + dataset (scripts/tune_strategy.py --version 7), never on the reported month: no cap and no + valley filling kept cost, emissions, discomfort and both peaks at the version 6 strategy's, + so the shipped battery plan is version 5's.""" + + # Added in 0.9.0. + rise_step: float = 1.0 # soft cap: raise a battery action (more charge, less discharge) by at + # most this per hour; lowering it is free; spare solar is exempt. 1 is + # no cap: every cap tried raised cost and the all-time peak. + rise_charge: bool = True # the cap also applies to grid charging, not only to a discharge winding down + fill_valley: bool = False # grid charging keeps the district draw no higher than the higher of + # last hour's draw and the next hour's load; it cuts ramping but raises cost + battery_band: float = 0.1 # the prompt asks a model that differs from strategy_battery to stay this + # close to it + + @dataclass(frozen=True) class RuleParamsV2: """Knobs of the 0.3.0 rule-based policy for prompt version 2 observations, kept as tuned @@ -310,8 +329,9 @@ class ScriptedSupervisor: For version 4 it follows that prompt's strategy literally (strategy_plan_v4), which is how the strategy's numbers are chosen offline, and likewise for version 5 (strategy_plan_v5). Version 6 runs the same version 5 strategy, never ends a trim early, - and leaves holding trims to the envelope. Version 2 observations get the 0.3.0 - rule and version 1 the simpler 0.2.0 rule. + and leaves holding trims to the envelope. Version 7 (strategy_plan_v7) keeps every action + inside the ranges the observation shows and uses the version 7 battery plan. Version 2 + observations get the 0.3.0 rule and version 1 the simpler 0.2.0 rule. Faults are opt-in: on listed steps it injects a bad reply so the envelope and fallback paths are exercised: out_of_range, too_fast, below_comfort, malformed, schema, missing. @@ -322,7 +342,7 @@ class ScriptedSupervisor: def __init__(self, model_key: str = DEFAULT_MODEL, faults: dict[int, str] | None = None, tokens: tuple[int, int] = (0, 0), params: RuleParams | None = None, params_v2: RuleParamsV2 | None = None, strategy: StrategyParams | None = None, - strategy_v5: StrategyParamsV5 | None = None) -> None: + strategy_v5: StrategyParamsV5 | None = None, strategy_v7: StrategyParamsV7 | None = None) -> None: self.model_key = model_key self.faults = dict(faults or {}) self.tokens = tokens @@ -330,6 +350,7 @@ def __init__(self, model_key: str = DEFAULT_MODEL, faults: dict[int, str] | None self.params_v2 = params_v2 or RuleParamsV2() self.strategy = strategy or StrategyParams() self.strategy_v5 = strategy_v5 or StrategyParamsV5() + self.strategy_v7 = strategy_v7 or StrategyParamsV7() @staticmethod def default_faults(hours: int) -> dict[int, str]: @@ -350,7 +371,9 @@ def call(self, step: int, request: dict) -> CallResult: if fault == "malformed": return CallResult('{"reason": "charge batteries", "Building_1": {"battery": 0.4', *self.tokens, stop_reason="end_turn", model="scripted") - if "smoothing" in obs: + if "cooling_range" in next(iter(obs["buildings"].values()), {}): # version 7 + reply = strategy_plan_v7(obs, self.strategy_v7) + elif "smoothing" in obs: reply = strategy_plan_v5(obs, self.strategy_v5) if "strategy_battery_reason" in obs: # version 6: the reply carries end_trim for b in obs["buildings"]: @@ -694,6 +717,121 @@ def _strategy_v5(obs: dict, p: StrategyParamsV5 | None = None) -> tuple[dict, se return reply, notes, cooling_notes +def battery_plan_v7(obs: dict, p: StrategyParamsV7 | None = None) -> tuple[dict[str, float], str]: + """The prompt version 7 battery plan: version 5's, with the smoothing searched for 0.9.0. With + rise_step below 1 a battery action rises (more charge, or less discharge) by at most that per + hour, so a discharge winds down over several hours while charge and load allow; with + fill_valley, grid charging only fills the district draw up to the higher of last hour's draw + and the next hour's load. With the shipped numbers (no cap, no valley filling) it gives + exactly battery_plan_v5's actions, which is left as it was so version 6 runs replay.""" + p = p or StrategyParamsV7() + pp, peak, nxt, sm = obs["price_plan"], obs["peak"], obs["next_24h"], obs["smoothing"] + top_now = bool(pp["top_price_now"]) + ahead = pp["top_price_hours_ahead"] + hours_to_top = min(ahead) if ahead else None + top_left = 1 # top-price hours left in this window, this one included + while top_now and top_left in ahead: + top_left += 1 + worst = (float("inf"), float("inf")) + key = lambda pr, ca: (worst[0] if pr is None else pr, worst[1] if ca is None else ca) # noqa: E731 + now_key = key(pp["now"], obs["carbon_outlook"]["now"]) + cands = [] if hours_to_top is None else [key(nxt["price"][j - 1], nxt["carbon"][j - 1]) + for j in range(1, hours_to_top)] + load_now, forecast = peak["district_load_now_kwh"], peak["forecast_today_kwh"] + shave_now = bool(p.shave > 0 and load_now is not None and forecast and load_now >= p.shave * forecast) + headroom = peak["headroom_kwh"] + fill = None + level = [v for v in (sm["district_draw_last_hour_kwh"], sm["district_load_next_hour_kwh"]) if v is not None] + if p.fill_valley and level and sm["district_load_now_kwh"] is not None: + fill = max(0.0, max(level) - sm["district_load_now_kwh"]) + caps = {b: s["battery"]["capacity_kwh"] or 0.0 for b, s in obs["buildings"].items()} + total_cap = sum(caps.values()) or 1.0 + reply: dict[str, float] = {} + notes: set[str] = set() + for b, s in sorted(obs["buildings"].items()): + bat = s["battery"] + cap, fmax, soc = caps[b], bat["max_fraction_per_hour"] or 0.0, bat["soc"] + floor = max(bat.get("soc_floor") or 0.0, 0.1) + room = max(0.0, p.soc_target - soc - 0.001) + spare = max(0.0, soc - floor - 0.001) + load = s["load_now_kwh"] + last = s["last_action"] or {} + lb = last.get("battery") or 0.0 + battery, solar, note = 0.0, False, None + if cap > 0 and load is not None: + if top_now and load > 0: + battery = -min(fmax, load / cap, max(0.0, spare - p.evening_reserve) / top_left) + note = "discharge evenly over the top-price hours" + elif shave_now and load > 0: + battery = -min(fmax, load / cap, spare) + note = "shave the district peak" + elif load < -0.05: + battery, solar = min(fmax, -load / cap, room), True + note = "store spare solar" + elif bat.get("grid_charging_ok") and room > 0 and hours_to_top is not None: + hours_needed = math.ceil(room / p.charge_rate - 1e-9) + if sum(1 for c in cands if c < now_key) < hours_needed: + share = None if headroom is None else max(0.0, headroom - 0.02) * caps[b] / total_cap / cap + filled = 1.0 if fill is None else fill * caps[b] / total_cap / cap + battery = min(p.charge_rate, fmax, room, share if share is not None else 1.0, filled, + max(lb, 0.0) + p.charge_step) + note = "charge gently in a cheap, clean hour before the top price" + ceiling = round(lb + p.rise_step, 6) + if not solar and battery > ceiling and (p.rise_charge or lb < 0): + # No step up: keep discharging, or charge less, as far as the battery and the load allow. + most = -min(fmax, max(0.0, load) / cap, spare) + battery = ceiling if ceiling >= 0 else min(battery, max(ceiling, most)) + if battery < 0 and not top_now and not shave_now: + note = "wind a discharge down slowly" + if note and battery != 0 and (battery > 0) == (solar or note.startswith("charge")): + notes.add(note) + battery = min(max(lb, 0.0) + p.max_step, max(min(lb, 0.0) - p.max_step, battery)) + battery = 0.0 if abs(battery) < p.min_move else battery + reply[b] = math.trunc(battery * 1000) / 1000 + reason = "; ".join(sorted(notes)) if notes else "nothing stands out, hold the batteries" + return reply, (reason[0].upper() + reason[1:])[:dc.REASON_TARGET_CHARS] + + +def strategy_plan_v7(obs: dict, p: StrategyParamsV7 | None = None) -> dict: + """The prompt version 7 strategy for a version 7 observation, as a model that keeps inside the + envelope would answer: battery_plan_v7 (strategy_battery with the default numbers) within + battery_range, the version 5 cooling trim fitted into cooling_range (a held trim is never + left to null), the tank at 0 and no early ends.""" + p = p or StrategyParamsV7() + battery, battery_reason = battery_plan_v7(obs, p) + reply: dict = {} + notes: set[str] = set() + for b, s in sorted(obs["buildings"].items()): + trim, rng = s["trim"], s["cooling_range"] + base = s["baseline_action"]["cooling"] + held = trim["state"] in ("hold", "ease") + prev_trim = -trim["depth"] + gap = s["indoor_vs_setpoint_c"] + target = 0.0 + if s["occupied"] and base and base > 0 and gap is not None: + cold = -gap - p.cold_margin_c + if cold >= 0: + target = -(p.cold_trim if p.cold_ramp_c <= 0 else p.cold_trim * min(1.0, cold / p.cold_ramp_c)) + if prev_trim < 0 and gap < -p.trim_hold_c: + target = min(target, prev_trim) + step = target if target <= prev_trim else min(target, prev_trim + p.trim_step) + cooling = None + if base and step < -0.001 and (gap is None or gap < 0): + cooling = math.ceil(max(0.0, base + max(step, -p.cold_trim) + 0.001) * 1000) / 1000 + if rng is None: + cooling = None + elif cooling is not None or held: + cooling = min(max(rng[0], rng[1] if cooling is None else cooling), rng[1]) + if not held and cooling >= base: + cooling = None + if cooling is not None: + notes.add("hold a cooling trim in a cold room, easing it off slowly") + lo, hi = s["battery_range"] + reply[b] = {"cooling": cooling, "dhw": 0.0, "battery": min(max(battery[b], lo), hi), "end_trim": None} + reason = "; ".join([battery_reason[0].lower() + battery_reason[1:], *sorted(notes)]) + return {"reason": (reason[0].upper() + reason[1:])[:dc.REASON_TARGET_CHARS], **reply} + + class HoldSupervisor: """Answers every hour with null actions, so the envelope applies the baseline action everywhere: the no-control reference run through the agent path. Used by the live diff --git a/hyperbolic/prompt.py b/hyperbolic/prompt.py index 06eb253..54df1f2 100644 --- a/hyperbolic/prompt.py +++ b/hyperbolic/prompt.py @@ -27,11 +27,19 @@ replaced by the version 5 strategy's own battery action per building (strategy_battery, with strategy_battery_reason), and each building shows the trim the envelope will keep this hour (cooling_trim_held). + 7 v0.9.0. Each building shows what the envelope allows this hour, so a reply can fit it: + the trim (depth, hold state and why, the least depth it may run, whether end_trim may + be used), cooling_range and battery_range, and last hour's clamps on that building + with their reasons (in place of the district-wide last_clamps). null is described as + exactly the baseline, so a held trim is sent as a number. strategy_battery comes from + battery_plan_v7, version 5's plan with the shipped numbers, and a model that differs + from it is asked to stay close. The envelope's rules are the same as for version 6. """ from __future__ import annotations import json +import math from . import district as dc from .envelope import Decision, Envelope, EnvelopeConfig, StepContext, proposal_json_schema @@ -41,14 +49,16 @@ MODELS, StrategyParams, StrategyParamsV5, + StrategyParamsV7, battery_plan_v5, + battery_plan_v7, rule_plan_v3, ) from .signals import charge_spread, combined_signal -PROMPT_VERSION = 6 -PROMPT_VERSIONS = (1, 2, 3, 4, 5, 6) +PROMPT_VERSION = 7 +PROMPT_VERSIONS = (1, 2, 3, 4, 5, 6, 7) # From this version the reply may end a held cooling trim early (envelope trim hold, 0.8.0). END_TRIM_FROM = 6 @@ -722,6 +732,189 @@ def system_prompt_v6(cfg: EnvelopeConfig, buildings: tuple[str, ...]) -> str: reply invalid.""" +def _inward(lo: float, hi: float) -> list[float] | None: + """[lo, hi] rounded inward to 4 decimals, the precision the envelope applies; None when no + 4 decimal value fits (only the exact baseline does).""" + a, b = math.ceil(lo * 1e4 - 1e-6) / 1e4, math.floor(hi * 1e4 + 1e-6) / 1e4 + return None if a > b else [a, b] + + +def cooling_range(envelope: Envelope, b: str, st) -> list[float] | None: + """The cooling values the envelope lets through for building b this hour without a clamp, + worked out read only from its own state, in its own order: range, rate, deviation, the + unoccupied overcool guard, comfort, then the trim hold. None means only the exact + baseline_action passes (null). A held trim keeps cooling at least need below the baseline, + exactly what the hold would apply; where that reaches below the action range the hold + applies the bottom of the range and still logs a clamp, which no reply can avoid.""" + cfg = envelope.config + base = st.baseline["cooling"] + blo, bhi = st.bounds["cooling"] + lo, hi = max(cfg.cooling_min, blo), min(cfg.cooling_max, bhi) + floor = lo + prev = envelope.memory.get(f"{b}.cooling", base) + lo, hi = max(lo, min(prev, base) - cfg.cooling_rate_per_step), min(hi, max(prev, base) + cfg.cooling_rate_per_step) + if cfg.cooling_max_deviation is not None: + lo, hi = max(lo, base - cfg.cooling_max_deviation), min(hi, base + cfg.cooling_max_deviation) + band, margin = cfg.comfort_band_k, cfg.comfort_margin_k + if not st.occupied and cfg.overcool_guard_unoccupied and st.indoor_c <= st.setpoint_c - band + margin: + hi = min(hi, base) + if st.occupied: + if st.indoor_c >= st.setpoint_c + band - margin: + lo = max(lo, base) + elif st.indoor_c <= st.setpoint_c - band + margin: + hi = min(hi, base) + if cfg.trim_hold: + need, kind, _ = envelope.held_trim(b, st) + if kind == "end": + lo = max(lo, base) + elif envelope.holds.get(b, 0.0) > cfg.trim_min_depth: + # Where the hold reaches below the action range it holds cooling at the bottom of it. + hi = max(min(hi, base - need), max(floor, base - need)) + lo = min(lo, hi) + got = _inward(lo, hi) + return got if got is not None else [math.ceil(lo * 1e4 - 1e-6) / 1e4] * 2 + return _inward(lo, hi) + + +def battery_range(envelope: Envelope, b: str, st) -> list[float]: + """The battery values the envelope lets through for building b without a range, rate or + state of charge clamp. The spread check and the peak limiter are shown separately + (grid_charging_ok, peak.headroom_kwh).""" + cfg = envelope.config + blo, bhi = st.bounds["battery"] + lo, hi = max(cfg.storage_min, blo), min(cfg.storage_max, bhi) + prev = envelope.memory.get(f"{b}.battery", 0.0) + lo, hi = max(lo, min(prev, 0.0) - cfg.battery_rate_per_step), min(hi, max(prev, 0.0) + cfg.battery_rate_per_step) + lo, hi = max(lo, min(0.0, cfg.soc_min - st.battery_soc)), min(hi, max(0.0, cfg.soc_max - st.battery_soc)) + return _inward(lo, hi) or [0.0, 0.0] + + +_TRIM_WHY = {"the baseline has no cooling to trim": "no baseline cooling", "the room is unoccupied": "unoccupied"} + + +def trim_view(envelope: Envelope, b: str, st) -> dict: + """Building b's cooling trim as the envelope will treat it this hour. state: off (no trim on), + hold (more than trim_hold_c below the setpoint: keep at least depth), ease (within + trim_hold_c: ease off by at most trim_release_step), end (no trim may run now).""" + cfg = envelope.config + depth = envelope.holds.get(b, 0.0) if cfg.trim_hold else 0.0 + on = depth > cfg.trim_min_depth + need, kind, why = envelope.held_trim(b, st) if cfg.trim_hold else (0.0, "none", "") + out: dict = {"depth": _r(depth, 3) if on else 0.0, "state": "off" if kind == "none" else kind, + "end_trim_ok": bool(on and kind in ("hold", "ease"))} + if kind == "hold": + out["why"] = f"{st.setpoint_c - st.indoor_c:.1f} C below setpoint" + elif kind == "ease": + out["why"] = f"within {cfg.trim_hold_c:g} C of setpoint" + elif kind == "end": + out["why"] = _TRIM_WHY.get(why, "at or above setpoint") + if kind in ("hold", "ease") and on: + out["min_depth"] = _r(need, 3) + return out + + +def build_observation_v7(state: dict, ctx: StepContext, last: Decision | None, look: Lookahead, + envelope: Envelope | None) -> dict: + """Version 7: version 6 with what the envelope allows each building this hour (the trim, + cooling_range, battery_range, last hour's clamps there) and the version 7 battery plan.""" + envelope = envelope or Envelope(EnvelopeConfig()) + obs = build_observation_v5(state, ctx, last, look, envelope) + del obs["reference_reason"], obs["last_clamps"] + for b in obs["buildings"]: + del obs["buildings"][b]["reference_action"], obs["buildings"][b]["cooling_trim_last_hour"] + battery, why = battery_plan_v7(obs) + obs["strategy_battery_reason"] = why + for b, st in ctx.buildings.items(): + ob = obs["buildings"][b] + ob["trim"] = trim_view(envelope, b, st) + ob["cooling_range"] = cooling_range(envelope, b, st) + ob["battery_range"] = br = battery_range(envelope, b, st) + ob["strategy_battery"] = min(max(battery[b], br[0]), br[1]) + clamps = [] if last is None else [c for c in last.clamps if c.point.startswith(f"{b}.")] + if clamps: + ob["last_clamp"] = "; ".join(f"{c.point.split('.')[1]} {c.rule} {_r(c.requested, 4)} to " + f"{_r(c.applied, 4)}: {c.reason}" for c in clamps) + return obs + + +def system_prompt_v7(cfg: EnvelopeConfig, buildings: tuple[str, ...]) -> str: + peak = ", battery then tank charging above peak.target_kwh" if cfg.peak_limit else "" + spread = ", grid charging when grid_charging_ok is false (spare solar may still be stored)" if cfg.spread_check else "" + sp = StrategyParamsV7() # the strategy's numbers, chosen on the tuning dataset + full = sp.cold_margin_c + sp.cold_ramp_c + fill = (" Grid charging fills the district draw only up to the higher of district_draw_last_hour_kwh and " + "district_load_next_hour_kwh." if sp.fill_valley else "") + cap = ("" if sp.rise_step >= sp.max_step else + f" Raise a battery action (more charge or less discharge) by at most {sp.rise_step:g} per hour; " + "lowering it is free.") + reserve = ("" if sp.evening_reserve <= 0 else + f" Keep {sp.evening_reserve:g} of state of charge back for the evening district peak.") + return f"""You are the hourly supervisory controller for a simulated district of {len(buildings)} \ +buildings ({dc.DATASET_NAME}, CityLearn). Each building has a heat pump for space cooling, a hot water \ +tank, a battery and rooftop solar. Every hour you choose one action per device for every building. + +Goals, in this order, graded by CityLearn's own KPIs over the month against the no-control reference \ +(storage idle, heat pump meeting the ideal load): +1. Comfort: no more discomfort than the reference. Discomfort is any occupied hour with indoor \ +temperature outside setpoint +/- {cfg.comfort_band_k:g} C. +2. Peaks and smoothness: keep the district's daily peak, its daily load factor and its ramping at or \ +better than the reference. Ramping counts every hour the district draws more than the hour before, \ +so a step up costs and a step down does not. +3. Cost first, then carbon: lower electricity cost and lower emissions than the reference. Each \ +building's cost counts equally, whatever its size. + +What you see: +- cooling_range and battery_range in each building: the values the safety envelope lets through this \ +hour. Stay inside them and nothing is clamped. cooling_range null: only the baseline passes, use null. +- trim: the cooling trim the envelope carries. depth is how far below baseline_action it runs. state \ +off: none on. hold: the room is more than {cfg.trim_hold_c:g} C below its setpoint, keep at least depth. \ +ease: within {cfg.trim_hold_c:g} C, ease off by at most {cfg.trim_release_step:g} per hour. end: no trim may \ +run now. min_depth is the least trim allowed this hour; end_trim_ok says whether end_trim may be used. +- last_clamp: what the envelope changed in that building last hour, and why. +- strategy_battery: the battery action points 2 to 4 below give this hour, worked out in code, with \ +strategy_battery_reason. Use it unless you have a clear reason; say why you differ. +- price_plan: the price now, the 24 hour top and low, top_price_now, top_price_hours_ahead, flat_24h. +- battery: soc, soc_floor, usable_kwh, capacity, max_fraction_per_hour, round_trip_min, and \ +grid_charging_ok (false when no price ahead pays back the losses and a cheaper hour is coming). +- indoor_vs_setpoint_c; smoothing: district_draw_last_hour_kwh (measured), district_load_now_kwh and \ +district_load_next_hour_kwh (before storage, the next hour as yesterday); peak: target_kwh, \ +headroom_kwh, forecast_today_kwh; signal_outlook and next_24h by hour. + +Strategy: +1. Cooling. An occupied room more than {sp.cold_margin_c:g} C below its setpoint is overcooled: cut its \ +cooling below baseline_action, from 0 at {sp.cold_margin_c:g} C below to {sp.cold_trim:g} at {full:g} C or \ +more below. null is exactly baseline_action: use it only when trim state is off or end. When state is \ +hold or ease, send a cooling number inside cooling_range (deeper is fine). End a held trim early only \ +with end_trim and null cooling, when end_trim_ok. +2. Hold the battery for the top-price hours. When top_price_now is true, discharge the usable charge \ +evenly over the top-price hours left, each hour no more than the building's load_now_kwh (power \ +sent back to the grid earns nothing).{reserve} Do not discharge in cheaper hours before them, except \ +to keep district load down: once district_load_now_kwh reaches {sp.shave:g} x forecast_today_kwh, \ +discharge to cover the building's own load. On flat_24h days leave the battery idle. +3. Charge so each battery is near {sp.soc_target:g} when the top-price hours start: only when \ +grid_charging_ok is true, in the cheapest hours with the lowest carbon, up to about {sp.charge_rate:g} \ +of capacity per hour, within headroom_kwh. Store spare solar any time.{fill} +4. No step changes. strategy_battery already spreads charging over several cheap hours and the \ +discharge over the top-price hours; send it as given. If you differ, stay within {sp.battery_band:g} of \ +it and never skip a peak-shaving discharge.{cap} Never charge at the top price. Leave the hot water \ +tank at 0. + +Actions per building, use null to keep the baseline action: +- cooling: heat pump power as a fraction of nominal, {cfg.cooling_min:g} to {cfg.cooling_max:g}. +- dhw: hot water tank, fraction of capacity to charge (+) or discharge (-) this hour. Baseline 0. +- battery: fraction of battery capacity to charge (+) or discharge (-) this hour. Baseline 0. +- end_trim: null, or a short reason to end that building's held cooling trim now. + +The ranges already apply the envelope's range, rate, state of charge ({cfg.soc_min:g} to \ +{cfg.soc_max:g}), deviation, comfort and trim hold rules. It also clamps the tank by the same rate \ +({cfg.dhw_rate_per_step:g}) and charge limits{spread}{peak}. An invalid reply uses the baseline action \ +everywhere for that hour. Clamps are logged against you. + +Reply with one JSON object only, matching the schema. "reason" is one plain sentence of at most \ +{dc.REASON_TARGET_CHARS} characters. A reason over {dc.REASON_MAX_CHARS} characters makes the whole \ +reply invalid.""" + + def observe(version: int, state: dict, ctx: StepContext, last: Decision | None, look: Lookahead, envelope: Envelope | None = None) -> dict: if version == 1: @@ -736,6 +929,8 @@ def observe(version: int, state: dict, ctx: StepContext, last: Decision | None, return build_observation_v5(state, ctx, last, look, envelope) if version == 6: return build_observation_v6(state, ctx, last, look, envelope) + if version == 7: + return build_observation_v7(state, ctx, last, look, envelope) raise ValueError(f"unknown prompt version {version}") @@ -750,7 +945,8 @@ def build_request(obs: dict, cfg: EnvelopeConfig, buildings: tuple[str, ...], mo max_tokens: int = DEFAULT_MAX_TOKENS, effort: str = DEFAULT_EFFORT, prompt_version: int = 1) -> dict: system = {1: system_prompt, 2: system_prompt_v2, 3: system_prompt_v3, - 4: system_prompt_v4, 5: system_prompt_v5, 6: system_prompt_v6}[prompt_version](cfg, buildings) + 4: system_prompt_v4, 5: system_prompt_v5, 6: system_prompt_v6, + 7: system_prompt_v7}[prompt_version](cfg, buildings) return { "model": MODELS[model_key]["id"], "max_tokens": max_tokens, diff --git a/hyperbolic/runner.py b/hyperbolic/runner.py index 41210c2..48e8779 100644 --- a/hyperbolic/runner.py +++ b/hyperbolic/runner.py @@ -36,14 +36,15 @@ # The rule-based controller is the 0.4.0 reference, kept frozen so its result reproduces: prompt # version 3 and the 0.4.0 envelope. Prompt versions 4 and 5 show its plan to the model each hour. RULE_PROMPT_VERSION = 3 -# Prompt version 6 is the first that knows the envelope holds cooling trims (0.8.0). +# Prompt version 6 is the first that knows the envelope holds cooling trims (0.8.0). Version 7 +# (0.9.0) runs the same rules. HOLD_PROMPT_VERSION = 6 def controller_settings(rule_based: bool, prompt_version: int | None = None) -> tuple[int, EnvelopeConfig]: """Prompt version and envelope rules for a new run. Without a prompt version, models get the current one and the rule-based controller the 0.4.0 one, each with its own envelope. Prompt - versions before 6 run with the 0.7.0 rules, as they did then; version 6 adds the trim hold.""" + versions before 6 run with the 0.7.0 rules, as they did then; versions 6 and 7 add the trim hold.""" if prompt_version is None: prompt_version = RULE_PROMPT_VERSION if rule_based else PROMPT_VERSION if rule_based and prompt_version <= RULE_PROMPT_VERSION: diff --git a/pyproject.toml b/pyproject.toml index 3e31ec1..427e89b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "hyperbolic" -version = "0.8.0" +version = "0.9.0" description = "Supervisory control for CityLearn district simulations, behind a deterministic safety envelope." readme = "README.md" license = { text = "MIT" } diff --git a/scripts/evaluate_fit.py b/scripts/evaluate_fit.py new file mode 100644 index 0000000..1d25c5b --- /dev/null +++ b/scripts/evaluate_fit.py @@ -0,0 +1,136 @@ +"""Estimate prompt version 7 on a recorded version 6 run, as an evaluation, never a recorded run. + + python scripts/evaluate_fit.py RUN_DIR + +The run's own replies are sent hour by hour through its own rules (the 0.8.0 envelope, unchanged) +on a fresh CityLearn month with zero model calls: + + control the replies as recorded, on the recorded prompt version. It must reproduce the run's + published KPIs exactly, or the script stops. + fit the same replies as an agent that keeps inside the envelope would send them, on prompt + version 7: cooling and battery moved into the cooling_range and battery_range its + observation shows, and a held trim left to null sent at the top of its range. The + envelope applied nearly the same actions anyway, so the clamps left are the ones the + agent could not have avoided by seeing the constraint. + battery fit, with every battery at strategy_battery: the run's own cooling with the battery + plan followed exactly. + +The replies are fixed, so later hours do not react to what changed, and nothing here measures how +a model reads the version 7 prompt. It prints the KPIs, clamped hours, clamps by rule and the +exact ramping split (scripts/split_ramping.py) for all three. +""" + +from __future__ import annotations + +import json +import sys +from pathlib import Path + +ROOT = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(ROOT)) +sys.path.insert(0, str(ROOT / "scripts")) + +from evaluate_hold import KPI_KEYS, clamp_rules # noqa: E402 +from split_ramping import split, table # noqa: E402 + +from hyperbolic.envelope import Envelope, EnvelopeConfig # noqa: E402 +from hyperbolic.model import Budget, CallResult, RecordedReplySupervisor, observation_from_request # noqa: E402 +from hyperbolic.runner import AgentController, NullWriter, run_session # noqa: E402 + +FIT_PROMPT_VERSION = 7 + + +def fit_reply(reply: dict, obs: dict, battery_plan: bool = False) -> dict: + """A reply moved inside the ranges a version 7 observation shows.""" + out = json.loads(json.dumps(reply)) + for b, s in obs["buildings"].items(): + acts = out[b] + rng, held = s["cooling_range"], s["trim"]["state"] in ("hold", "ease") + if acts.get("end_trim") or rng is None: + acts["cooling"] = None + elif acts["cooling"] is None: + acts["cooling"] = rng[1] if held else None + else: + acts["cooling"] = min(max(acts["cooling"], rng[0]), rng[1]) + lo, hi = s["battery_range"] + if battery_plan: + acts["battery"] = s["strategy_battery"] + elif acts["battery"] is not None: + acts["battery"] = min(max(acts["battery"], lo), hi) + return out + + +class FittedReplySupervisor(RecordedReplySupervisor): + """A recorded run's replies, hour by hour, fitted to each version 7 request's ranges.""" + + kind = "recorded" + + def __init__(self, calls_path: Path, model_key: str, battery_plan: bool = False) -> None: + super().__init__(calls_path, model_key) + self.battery_plan = battery_plan + + def call(self, step: int, request: dict) -> CallResult: + res = super().call(step, request) + if res.text is None: + return res + res.text = json.dumps(fit_reply(json.loads(res.text), observation_from_request(request), self.battery_plan)) + return res + + +def evaluate(run_dir: Path, mode: str) -> dict: + from hyperbolic.sim import CityLearnSimulator + + class KeepEnv(CityLearnSimulator): + def close(self) -> None: # keep the finished env for the ramping split + pass + + m = json.loads((run_dir / "manifest.json").read_text(encoding="utf-8")) + sup = m["supervisor"] + calls = run_dir / "calls.jsonl" + if mode == "control": + supervisor, version = RecordedReplySupervisor(calls, sup["model_key"]), int(sup.get("prompt_version", 1)) + else: + supervisor, version = FittedReplySupervisor(calls, sup["model_key"], mode == "battery"), FIT_PROMPT_VERSION + ctl = AgentController(supervisor=supervisor, envelope=Envelope(EnvelopeConfig.from_manifest(m["envelope"])), + budget=Budget(limit_usd=float(sup["budget_usd"])), max_tokens=int(sup["max_tokens"]), + effort=sup["effort"], prompt_version=version) + sim, w = KeepEnv(control=True), NullWriter() + res = run_session(sim, ctl, w, hours=m.get("hours_limit"), sim_info={"kind": "citylearn", "control": True}, + log=lambda *_: None) + return {"result": res, "steps": w.steps, "split": split(sim.env, w.steps)} + + +def main(argv: list[str] | None = None) -> int: + args = argv if argv is not None else sys.argv[1:] + if len(args) != 1: + print(__doc__.splitlines()[2].strip(), file=sys.stderr) + return 2 + run_dir = Path(args[0]) + m = json.loads((run_dir / "manifest.json").read_text(encoding="utf-8")) + if not (m.get("envelope") or {}).get("trim_hold") or int(m["supervisor"].get("prompt_version", 1)) != 6: + print("this needs a prompt version 6 run recorded with the trim hold", file=sys.stderr) + return 2 + published = json.loads((run_dir / "result.json").read_text(encoding="utf-8"))["district_kpis"] + runs = {mode: evaluate(run_dir, mode) for mode in ("control", "fit", "battery")} + got = runs["control"]["result"]["district_kpis"] + if got != published: + diff = {k: (published.get(k), got.get(k)) for k in set(published) | set(got) if published.get(k) != got.get(k)} + print(f"control does not reproduce the published KPIs: {diff}", file=sys.stderr) + return 1 + print(f"{run_dir.name}: its own replies through its own rules (control), fitted to the version 7 ranges (fit), " + "and fitted with the battery plan followed (battery); evaluations, not recorded runs") + print("control reproduces the published KPIs exactly: yes") + print(f" {'CityLearn KPI (district)':<46}" + "".join(f"{k:>10}" for k in runs)) + for k in KPI_KEYS: + print(f" {k:<46}" + "".join(f"{r['result']['district_kpis'][k]:>10.4f}" for r in runs.values())) + for name, ev in runs.items(): + r = ev["result"] + print(f" {name}: clamped hours {r['clamped_steps']}, fallback hours {r['fallback_steps']}; " + f"clamps by rule (hours, clamps) {clamp_rules(ev['steps'])}") + print() + print(table({name: ev["split"] for name, ev in runs.items()})) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/tune_strategy.py b/scripts/tune_strategy.py index 7a10360..603422c 100644 --- a/scripts/tune_strategy.py +++ b/scripts/tune_strategy.py @@ -4,6 +4,7 @@ python scripts/tune_strategy.py --quick # the shipped version 5 defaults only python scripts/tune_strategy.py --version 4 # the 0.6.0 version 4 search, as it was run python scripts/tune_strategy.py --version 6 # 0.8.0 check: the trim hold, nothing tuned + python scripts/tune_strategy.py --version 7 # 0.9.0 battery plan without step changes Tuning set: citylearn_challenge_2023_phase_2_online_evaluation_1 from CityLearn v3.0.2, copied unchanged into scripts/tuning_data. It has the same three buildings, batteries and LSTM models as @@ -30,6 +31,17 @@ strategy through the 0.7.0 rules and through the 0.8.0 rules (prompt version 6, trim hold on), so its effect is measured on the tuning months before anything is reported on the test month. The version 4 and 5 searches run with the 0.7.0 rules they were made with. + +Version 7 (0.9.0) searches the battery plan's smoothing (StrategyParamsV7: the soft cap on how fast +a battery action may rise, on charging and discharging or on a discharge winding down only, valley +filling, and the charge rate) with the 0.8.0 rules, unchanged. +The strategy keeps every action inside the ranges the version 7 observation shows. A cap of 1 is +no cap, so the grid includes version 6's own battery plan (the shipped StrategyParamsV7), and that +candidate is the reference: the cooling is the same in every candidate, so only the battery plan +differs. A candidate qualifies when, averaged over the three months, ramping is below the +reference's and cost, emissions, discomfort and both peaks are no worse than it. The qualifying +candidate with the lowest ramping plus daily load factor wins, cost plus emissions breaking ties; +with none, the reference stays. The version 6 strategy is printed beside them. """ from __future__ import annotations @@ -50,7 +62,7 @@ sys.path.insert(0, str(ROOT)) from hyperbolic.envelope import Envelope, EnvelopeConfig # noqa: E402 -from hyperbolic.model import Budget, ScriptedSupervisor, StrategyParams, StrategyParamsV5 # noqa: E402 +from hyperbolic.model import Budget, ScriptedSupervisor, StrategyParams, StrategyParamsV5, StrategyParamsV7 # noqa: E402 from hyperbolic.runner import AgentController, BaselineController, NullWriter, run_session # noqa: E402 TUNING_DATASET = ROOT / "scripts" / "tuning_data" / "citylearn_challenge_2023_phase_2_online_evaluation_1" @@ -79,6 +91,13 @@ "trim_step": (0.02, 0.05, 1.0), "charge_step": (0.05, 0.15), } +# Version 7: the battery plan's smoothing, everything else at the shipped version 5 numbers. +GRID_V7 = { + "rise_step": (1.0, 0.25, 0.15, 0.1, 0.05), + "rise_charge": (True, False), + "fill_valley": (False, True), + "charge_rate": (0.1, 0.15), +} def month_datasets(out: Path) -> list[Path]: @@ -108,7 +127,8 @@ def month_datasets(out: Path) -> list[Path]: def kpis(job: tuple[str, dict | None, str]) -> dict: """job: (kind, params or None, schema path). kind is baseline, rule, strategy (version 4), - strategy5 (version 5) or strategy6 (version 5's strategy with the 0.8.0 trim hold).""" + strategy5 (version 5), strategy6 (version 5's strategy with the 0.8.0 trim hold) or strategy7 + (the version 7 strategy, same rules).""" import torch torch.set_num_threads(1) # one simulation per process @@ -128,10 +148,14 @@ def kpis(job: tuple[str, dict | None, str]) -> dict: controller = AgentController(ScriptedSupervisor(strategy_v5=StrategyParamsV5(**params)), Envelope(EnvelopeConfig.v070()), Budget(1.0), prompt_version=5) control = True - else: # strategy6: the same strategy, prompt version 6, with the 0.8.0 trim hold + elif kind == "strategy6": # the same strategy, prompt version 6, with the 0.8.0 trim hold controller = AgentController(ScriptedSupervisor(strategy_v5=StrategyParamsV5(**params)), Envelope(EnvelopeConfig()), Budget(1.0), prompt_version=6) control = True + else: # strategy7: prompt version 7, the same 0.8.0 rules + controller = AgentController(ScriptedSupervisor(strategy_v7=StrategyParamsV7(**params)), + Envelope(EnvelopeConfig()), Budget(1.0), prompt_version=7) + control = True res = run_session(CityLearnSimulator(control=control, schema=Path(schema)), controller, NullWriter(), log=lambda *_: None) k = res["district_kpis"] @@ -139,7 +163,7 @@ def kpis(job: tuple[str, dict | None, str]) -> dict: def mean(rows: list[dict]) -> dict: - return {k: sum(r[k] for r in rows) / len(rows) for k in KEYS} + return {k: sum(r[k] for r in rows) / len(rows) for k in (*KEYS, "clamped") if k in rows[0]} def qualifies(k: dict, base: dict, rule: dict) -> bool: @@ -168,16 +192,30 @@ def grid_v5() -> list[dict]: return [{**asdict(StrategyParamsV5()), **dict(zip(GRID_V5, combo))} for combo in itertools.product(*GRID_V5.values())] +def grid_v7() -> list[dict]: + """Without a cap, whether it covers charging makes no difference, so that pair runs once.""" + return [{**asdict(StrategyParamsV7()), **dict(zip(GRID_V7, combo))} for combo in itertools.product(*GRID_V7.values()) + if combo[0] < 1.0 or combo[1]] + + +def qualifies_v7(k: dict, ref: dict) -> bool: + """Ramping below ref's; cost, emissions, discomfort and both peaks no worse than ref.""" + return (k["ramping_average"] < ref["ramping_average"] - TOLERANCE + and all(k[x] <= ref[x] + TOLERANCE for x in ("cost_total", "carbon_emissions_total", "discomfort_proportion", + "daily_peak_average", "all_time_peak_average"))) + + def line(name: str, k: dict) -> str: return (f"{name:>10} cost {k['cost_total']:.4f} emissions {k['carbon_emissions_total']:.4f} " f"discomfort {k['discomfort_proportion']:.4f} daily peak {k['daily_peak_average']:.4f} " f"all-time peak {k['all_time_peak_average']:.4f} ramping {k['ramping_average']:.4f} " - f"load factor {k['daily_one_minus_load_factor_average']:.4f}") + f"load factor {k['daily_one_minus_load_factor_average']:.4f}" + + (f" clamped {k['clamped']:.1f}" if "clamped" in k else "")) def main(argv: list[str] | None = None) -> int: ap = argparse.ArgumentParser(description=__doc__.splitlines()[0]) - ap.add_argument("--version", type=int, default=5, choices=(4, 5, 6)) + ap.add_argument("--version", type=int, default=5, choices=(4, 5, 6, 7)) ap.add_argument("--quick", action="store_true") ap.add_argument("--jobs", type=int, default=None, help="parallel simulations (default: one per CPU)") ap.add_argument("--out", type=Path, default=None, help="optionally write every result as JSON") @@ -187,6 +225,8 @@ def main(argv: list[str] | None = None) -> int: return main_v5(args) if args.version == 6: return main_v6(args) + if args.version == 7: + return main_v7(args) with tempfile.TemporaryDirectory() as tmp: months = [str(d / "schema.json") for d in month_datasets(Path(tmp))] candidates = [asdict(StrategyParams())] if args.quick else [ @@ -278,5 +318,41 @@ def main_v6(args) -> int: return 0 +def main_v7(args) -> int: + """The version 7 battery plan on the tuning months, against the shipped version 6 strategy.""" + with tempfile.TemporaryDirectory() as tmp: + months = [str(d / "schema.json") for d in month_datasets(Path(tmp))] + candidates = [asdict(StrategyParamsV7())] if args.quick else grid_v7() + jobs = [("baseline", None, m) for m in months] + [("rule", None, m) for m in months] + jobs += [("strategy6", asdict(StrategyParamsV5()), m) for m in months] + jobs += [("strategy7", c, m) for c in candidates for m in months] + with cf.ProcessPoolExecutor(max_workers=args.jobs, mp_context=mp.get_context("spawn")) as pool: + results = list(pool.map(kpis, jobs)) + n = len(months) + base, rule, v6 = mean(results[:n]), mean(results[n:2 * n]), mean(results[2 * n:3 * n]) + print(f"tuning set: {TUNING_DATASET.name}, {n} months, mean over months") + print(line("baseline", base)) + print(line("rule 0.4.0", rule)) + print(line("v6 0.8.0", v6)) + shipped = asdict(StrategyParamsV7()) + ks = [mean(results[3 * n + i * n:3 * n + (i + 1) * n]) for i in range(len(candidates))] + ref = ks[candidates.index(shipped)] + print(line("v7 shipped", ref)) + rows = [] + for c, k in zip(candidates, ks): + rows.append({"params": c, "kpis": k, "qualifies": qualifies_v7(k, ref), "score": score_v5(k)}) + print(line(" ".join(f"{g}={c[g]}" for g in GRID_V7), k) + (" qualifies" if rows[-1]["qualifies"] else "")) + pool_rows = [r for r in rows if r["qualifies"]] or [r for r in rows if r["params"] == shipped] + best = min(pool_rows, key=lambda r: (r["score"], json.dumps(r["params"], sort_keys=True))) + print(f"{sum(r['qualifies'] for r in rows)} of {len(rows)} candidates qualify") + print(line("best", best["kpis"]) + ("" if best["qualifies"] else " (does not qualify)")) + changed = {k: v for k, v in best["params"].items() if v != shipped[k]} + print(f"best settings differ from the shipped defaults in: {changed or 'nothing'}") + if args.out: + args.out.write_text(json.dumps({"baseline": base, "rule": rule, "v6": v6, "rows": rows, "best": best}, + indent=2, sort_keys=True), encoding="utf-8") + return 0 + + if __name__ == "__main__": raise SystemExit(main()) diff --git a/tests/test_evaluation.py b/tests/test_evaluation.py index 89c5ff1..44b60f0 100644 --- a/tests/test_evaluation.py +++ b/tests/test_evaluation.py @@ -1,4 +1,5 @@ -"""scripts/split_ramping.py and scripts/evaluate_hold.py: the 0.8.0 diagnosis and estimate tools.""" +"""scripts/split_ramping.py, scripts/evaluate_hold.py and scripts/evaluate_fit.py: the 0.8.0 and 0.9.0 +diagnosis and estimate tools, and the version 7 search grid.""" import dataclasses import json @@ -10,11 +11,13 @@ sys.path.insert(0, str(Path(__file__).parents[1] / "scripts")) +import evaluate_fit # noqa: E402 import evaluate_hold # noqa: E402 import split_ramping # noqa: E402 +import tune_strategy # noqa: E402 from hyperbolic.envelope import Envelope, EnvelopeConfig # noqa: E402 -from hyperbolic.model import Budget, ScriptedSupervisor # noqa: E402 +from hyperbolic.model import Budget, ScriptedSupervisor, StrategyParamsV7 # noqa: E402 from hyperbolic.runner import AgentController, RunWriter, run_session # noqa: E402 @@ -48,3 +51,30 @@ def test_evaluation_control_reproduces_a_recorded_run_and_the_split_adds_up(tmp_ env, steps = split_ramping.resimulate(run) assert split_ramping.split(env, steps)["ramping_kwh"] == pytest.approx(s["ramping_kwh"]) assert evaluate_hold.trim_episodes(control["steps"])["episodes"] >= 0 + + +def _fit_obs(state="hold", rng=(0.2, 0.25), battery_range=(-0.3, 0.2)): + b = {"trim": {"state": state}, "cooling_range": None if rng is None else list(rng), + "battery_range": list(battery_range), "strategy_battery": -0.1} + return {"buildings": {"Building_1": b}} + + +def test_fit_reply_moves_a_reply_inside_the_version_7_ranges(): + reply = {"reason": "r", "Building_1": {"cooling": None, "dhw": None, "battery": 0.5, "end_trim": None}} + out = evaluate_fit.fit_reply(reply, _fit_obs()) + assert out["Building_1"]["cooling"] == 0.25 and out["Building_1"]["battery"] == 0.2 # held trim: top of range + assert reply["Building_1"]["cooling"] is None # the recorded reply is not changed + assert evaluate_fit.fit_reply(reply, _fit_obs(state="off"))["Building_1"]["cooling"] is None + reply["Building_1"]["cooling"] = 0.4 + assert evaluate_fit.fit_reply(reply, _fit_obs(state="off"))["Building_1"]["cooling"] == 0.25 + assert evaluate_fit.fit_reply(reply, _fit_obs(rng=None))["Building_1"]["cooling"] is None + reply["Building_1"]["end_trim"] = "room is warming" + assert evaluate_fit.fit_reply(reply, _fit_obs())["Building_1"]["cooling"] is None + assert evaluate_fit.fit_reply(reply, _fit_obs(), battery_plan=True)["Building_1"]["battery"] == -0.1 + + +def test_v7_grid_holds_the_shipped_battery_plan_once(): + grid = tune_strategy.grid_v7() + shipped = dataclasses.asdict(StrategyParamsV7()) + assert grid.count(shipped) == 1 and len(grid) == len({json.dumps(c, sort_keys=True) for c in grid}) + assert StrategyParamsV7().rise_step >= StrategyParamsV7().max_step and not StrategyParamsV7().fill_valley diff --git a/tests/test_prompt.py b/tests/test_prompt.py index e33ce08..060bdac 100644 --- a/tests/test_prompt.py +++ b/tests/test_prompt.py @@ -31,17 +31,18 @@ def fake_states(n): return out -def test_default_prompt_is_version_6_and_the_rule_based_controller_stays_on_3(): - assert PROMPT_VERSION == 6 - assert AgentController(ScriptedSupervisor(), Envelope(), Budget(1.0)).describe()["prompt_version"] == 6 +def test_default_prompt_is_version_7_and_the_rule_based_controller_stays_on_3(): + assert PROMPT_VERSION == 7 + assert AgentController(ScriptedSupervisor(), Envelope(), Budget(1.0)).describe()["prompt_version"] == 7 # The rule-based controller is the frozen 0.4.0 reference: prompt version 3, no spread check. assert controller_settings(True) == (3, EnvelopeConfig.v040()) - assert controller_settings(False) == (6, EnvelopeConfig()) - # Versions before 6 keep the 0.7.0 rules; only version 6 knows the envelope holds trims. + assert controller_settings(False) == (7, EnvelopeConfig()) + # Versions before 6 keep the 0.7.0 rules; versions 6 and 7 run the 0.8.0 rules with the trim hold. assert controller_settings(True, 4) == (4, EnvelopeConfig.v070()) assert controller_settings(True, 5) == (5, EnvelopeConfig.v070()) assert controller_settings(False, 5) == (5, EnvelopeConfig.v070()) assert controller_settings(True, 6) == (6, EnvelopeConfig()) + assert controller_settings(True, 7) == (7, EnvelopeConfig()) == controller_settings(False, 7) assert EnvelopeConfig.v040().spread_check is False and EnvelopeConfig().spread_check is True assert EnvelopeConfig().trim_hold is True assert EnvelopeConfig.v070().trim_hold is False and EnvelopeConfig.v040().trim_hold is False @@ -123,23 +124,24 @@ def test_v2_prompt_states_the_strategy_and_the_rules(): def test_request_carries_the_observation_for_each_version(): st = fake_states(1)[0] ctx = context_from_state(st) - for version in (1, 2, 3, 4, 5, 6): + for version in (1, 2, 3, 4, 5, 6, 7): obs = observe(version, st, ctx, None, Lookahead()) req = build_request(obs, EnvelopeConfig(), tuple(st["buildings"]), "haiku", prompt_version=version) assert observation_from_request(req) == json.loads(json.dumps(obs)) with pytest.raises(ValueError): - observe(7, st, ctx, None, Lookahead()) + observe(8, st, ctx, None, Lookahead()) -@pytest.mark.parametrize("version", [3, 4, 5, 6]) +@pytest.mark.parametrize("version", [3, 4, 5, 6, 7]) def test_rule_policy_charges_cheap_and_discharges_into_the_peak(version): # Fake district: price 0.05 most of the day and 0.25 from hour 16 to 20. Version 3 runs the - # 0.4.0 rule; versions 4 and 5 run their scripted strategies, without peak shaving, which the + # 0.4.0 rule; versions 4 to 7 run their scripted strategies, without peak shaving, which the # fake's flat daytime load would trigger all day. - from hyperbolic.model import StrategyParams, StrategyParamsV5 + from hyperbolic.model import StrategyParams, StrategyParamsV5, StrategyParamsV7 version, cfg = controller_settings(True, version) - sup = ScriptedSupervisor(strategy=StrategyParams(shave=0.0), strategy_v5=StrategyParamsV5(shave=0.0)) + sup = ScriptedSupervisor(strategy=StrategyParams(shave=0.0), strategy_v5=StrategyParamsV5(shave=0.0), + strategy_v7=StrategyParamsV7(shave=0.0)) ctl = AgentController(sup, Envelope(cfg), Budget(1.0), prompt_version=version) w = NullWriter() run_session(FakeDistrict(), ctl, w, hours=48, log=lambda *_: None) diff --git a/tests/test_prompt_v7.py b/tests/test_prompt_v7.py new file mode 100644 index 0000000..d9a862f --- /dev/null +++ b/tests/test_prompt_v7.py @@ -0,0 +1,352 @@ +"""Prompt version 7 (0.9.0): what the envelope allows each building this hour, the version 7 battery +plan, and the envelope left exactly as it was in 0.8.0.""" + +import json +import random +from dataclasses import replace +from pathlib import Path + +import pytest +from conftest import BUILDINGS, bstate, needs_citylearn, proposal +from fakes import FakeDistrict + +from hyperbolic import district as dc +from hyperbolic.envelope import Clamp, Decision, Envelope, EnvelopeConfig, StepContext, parse_reply +from hyperbolic.model import ( + Budget, + ScriptedSupervisor, + StrategyParamsV7, + battery_plan_v5, + battery_plan_v7, + strategy_plan_v7, +) +from hyperbolic.prompt import ( + Lookahead, + battery_range, + build_request, + cooling_range, + observe, + system_prompt_v6, + system_prompt_v7, + trim_view, +) +from hyperbolic.runner import ( + AgentController, + NullWriter, + RunWriter, + context_from_state, + load_jsonl, + replay_run, + run_session, +) +from hyperbolic.signals import PeakTracker, PriceOutlook + +COLD, NEAR, AT = 22.5, 23.7, 24.0 # indoor C against a 24.0 C setpoint +LIVE_080 = (Path(__file__).parents[1] / "runs" / "live" + / "citylearn_challenge_2023_phase_2_local_evaluation_agent_citylearn_20261022T222703Z") + +# Every EnvelopeConfig field as 0.8.0 shipped it (the 0.8.0 live run's manifest records the same). +ENVELOPE_080 = { + "cooling_min": 0.0, "cooling_max": 1.0, "storage_min": -1.0, "storage_max": 1.0, + "cooling_rate_per_step": 0.35, "dhw_rate_per_step": 0.5, "battery_rate_per_step": 0.5, + "soc_min": 0.1, "soc_max": 0.95, "comfort_band_k": 2.0, "comfort_margin_k": 0.5, + "cooling_max_deviation": 0.15, "overcool_guard_unoccupied": True, "peak_limit": True, + "peak_target_fraction": 1.0, "peak_forecast_days": 2, "spread_check": True, + "trim_hold": True, "trim_hold_c": 0.5, "trim_release_step": 0.02, "trim_min_depth": 0.002, +} + + +def _obs(version=7, n=40, envelope=None, last=None): + """An observation late in the second day of the fake district, so every outlook is filled.""" + sim = FakeDistrict() + st = sim.start(n + 3) + look, peaks = Lookahead(), PeakTracker() + for _ in range(n): + look.update(st) + peaks.update(st) + prev = st + _, st = sim.step(None) + t = prev["time_step"] + ctx = context_from_state(prev, peaks.info(t), PriceOutlook(prev["shared"]["price_forecast"][0], + tuple(look.outlook(t)["price"]))) + env = envelope or Envelope(EnvelopeConfig()) + return prev, ctx, look, env, observe(version, prev, ctx, last, look, env) + + +def _held(depth=0.08, **b1): + """An envelope holding a Building_1 trim of depth, and this hour's context.""" + env = Envelope(EnvelopeConfig()) + env.holds = {"Building_1": depth} + env.memory = {"Building_1.cooling": 0.4 - depth} + ctx = StepContext(time_step=10, buildings={b: bstate(**(b1 if b == "Building_1" else {})) for b in BUILDINGS}) + return env, ctx + + +# -- the envelope is unchanged ------------------------------------------------------ + + +def test_envelope_config_defaults_match_0_8_0_exactly(): + assert EnvelopeConfig().as_dict() == ENVELOPE_080 + assert EnvelopeConfig.v070().as_dict() == {**ENVELOPE_080, "trim_hold": False} + assert EnvelopeConfig.v040().as_dict() == {**ENVELOPE_080, "trim_hold": False, "spread_check": False} + + +@pytest.mark.skipif(not LIVE_080.exists(), reason="the 0.8.0 live run is kept locally in runs/live") +def test_the_0_8_0_live_month_still_replays_hour_for_hour(): + m = json.loads((LIVE_080 / "manifest.json").read_text(encoding="utf-8")) + assert EnvelopeConfig.from_manifest(m["envelope"]) == EnvelopeConfig() + rep = replay_run(LIVE_080) + assert rep.deterministic and rep.identical_steps == 719 and rep.api_calls == 0 and rep.clamped_steps == 312 + + +# -- what each building sees ---------------------------------------------------------- + + +def test_v7_observation_shows_the_envelope_view_per_building(): + st, ctx, look, env, v7 = _obs() + v6 = observe(6, st, ctx, None, look, env) + assert "last_clamps" not in v7 and "reference_reason" not in v7 + assert set(v7) == set(v6) - {"last_clamps"} + for b in BUILDINGS: + got = set(v7["buildings"][b]) + assert {"trim", "cooling_range", "battery_range", "strategy_battery"} <= got + assert not got & {"reference_action", "cooling_trim_last_hour", "cooling_trim_held", "last_clamp"} + # Hour 17 in the fake district: occupied, the room at its setpoint, so no trim may run. + assert v7["buildings"][b]["trim"] == {"depth": 0.0, "state": "end", "end_trim_ok": False, + "why": "at or above setpoint"} + assert v7["buildings"][b]["cooling_range"] == [0.3, 0.45] + + +def test_trim_view_states_min_depth_and_end_trim_ok(): + env, ctx = _held(indoor=COLD) + assert trim_view(env, "Building_1", ctx.buildings["Building_1"]) == { + "depth": 0.08, "state": "hold", "end_trim_ok": True, "why": "1.5 C below setpoint", "min_depth": 0.08} + env, ctx = _held(indoor=NEAR) + assert trim_view(env, "Building_1", ctx.buildings["Building_1"]) == { + "depth": 0.08, "state": "ease", "end_trim_ok": True, "why": "within 0.5 C of setpoint", "min_depth": 0.06} + for kw, why in (({"indoor": AT}, "at or above setpoint"), ({"indoor": COLD, "occupied": False}, "unoccupied"), + ({"indoor": COLD, "cooling_base": 0.0}, "no baseline cooling")): + env, ctx = _held(**kw) + assert trim_view(env, "Building_1", ctx.buildings["Building_1"]) == { + "depth": 0.08, "state": "end", "end_trim_ok": False, "why": why} + env = Envelope(EnvelopeConfig()) + assert trim_view(env, "Building_1", bstate(indoor=COLD)) == {"depth": 0.0, "state": "off", "end_trim_ok": False} + + +def test_cooling_range_is_the_held_trim_and_null_is_only_allowed_without_one(): + env, ctx = _held(indoor=COLD) + assert cooling_range(env, "Building_1", ctx.buildings["Building_1"]) == [0.25, 0.32] + env, ctx = _held(indoor=NEAR) + assert cooling_range(env, "Building_1", ctx.buildings["Building_1"]) == [0.25, 0.34] + env, ctx = _held(indoor=AT) + assert cooling_range(env, "Building_1", ctx.buildings["Building_1"]) == [0.4, 0.55] + # Unoccupied and cool: the overcool guard and the end of the hold leave only the exact baseline. + env, ctx = _held(indoor=21.0, occupied=False) + assert cooling_range(env, "Building_1", ctx.buildings["Building_1"]) == [0.4, 0.4] + st = bstate(indoor=21.0, occupied=False, cooling_base=0.30731) + assert cooling_range(Envelope(EnvelopeConfig()), "Building_1", st) is None + + +def test_battery_range_applies_rate_and_charge_limits(): + env = Envelope(EnvelopeConfig()) + assert battery_range(env, "Building_1", bstate(battery_soc=0.5)) == [-0.4, 0.45] + env.memory = {"Building_1.battery": -0.3} + assert battery_range(env, "Building_1", bstate(battery_soc=0.9)) == [-0.8, 0.05] + assert battery_range(env, "Building_1", bstate(battery_soc=0.97)) == [-0.8, 0.0] + + +@pytest.mark.parametrize("seed", range(6)) +def test_any_value_inside_the_ranges_passes_the_envelope_unclamped(seed): + """The ranges are worked out read only from the envelope; a value inside them is never clamped, + except where a held trim reaches below cooling 0, which no reply can avoid.""" + rng = random.Random(seed) + for _ in range(300): + cfg = EnvelopeConfig() + env = Envelope(cfg) + base = rng.choice([0.0, 0.05, 0.12, rng.uniform(0.0, 0.9)]) + depth = rng.choice([0.0, 0.0, rng.uniform(0.003, 0.15)]) + if depth: + env.holds = {"Building_1": depth} + env.memory = {"Building_1.cooling": min(1.0, max(0.0, base + rng.uniform(-0.5, 0.5))), + "Building_1.battery": rng.uniform(-0.8, 0.8)} + st = bstate(indoor=24.0 + rng.uniform(-3.5, 2.5), occupied=rng.random() < 0.7, cooling_base=base, + battery_soc=rng.uniform(0.05, 1.0)) + ctx = StepContext(time_step=5, buildings={b: st if b == "Building_1" else bstate() for b in BUILDINGS}) + need, kind, _ = env.held_trim("Building_1", st) + if kind in ("hold", "ease") and depth > cfg.trim_min_depth and base - need < 0: + continue + cr, br = cooling_range(env, "Building_1", st), battery_range(env, "Building_1", st) + for _ in range(4): + cool = None if cr is None else round(rng.uniform(*cr), 4) + bat = round(rng.uniform(*br), 4) + trial = Envelope(cfg) + trial.holds, trial.memory = dict(env.holds), dict(env.memory) + d = trial.apply(proposal(Building_1={"cooling": cool, "battery": bat}), ctx) + assert not [c for c in d.clamps if c.point.startswith("Building_1")], (st, env.holds, cr, br, cool, bat) + + +def test_a_held_trim_left_to_null_is_clamped_and_the_top_of_the_range_is_not(): + env, ctx = _held(indoor=COLD) + hi = cooling_range(env, "Building_1", ctx.buildings["Building_1"])[1] + d = replace_env(env).apply(proposal(Building_1={"cooling": None}), ctx) + assert [c.rule for c in d.clamps] == ["trim_hold"] + d = replace_env(env).apply(proposal(Building_1={"cooling": hi}), ctx) + assert not d.clamps and d.actions["Building_1"]["cooling"] == hi + + +def replace_env(env): + e = Envelope(env.config) + e.holds, e.memory = dict(env.holds), dict(env.memory) + return e + + +def test_last_clamp_is_shown_on_its_building_with_its_reason(): + last = Decision(actions={b: {"cooling": None, "dhw": None, "battery": None} for b in BUILDINGS}, + clamps=[Clamp("Building_2.cooling", "trim_hold", 0.3065, 0.2604, "trim held at 0.046")], + reason="t") + *_, obs = _obs(last=last) + assert obs["buildings"]["Building_2"]["last_clamp"] == "cooling trim_hold 0.3065 to 0.2604: trim held at 0.046" + assert "last_clamp" not in obs["buildings"]["Building_1"] and "last_clamp" not in obs["buildings"]["Building_3"] + + +# -- the battery plan and guidance -------------------------------------------------- + + +@pytest.mark.parametrize("n", [20, 30, 40, 45]) +def test_shipped_battery_plan_is_version_5s_and_fits_battery_range(n): + st, ctx, look, env, obs = _obs(n=n) + plan, _ = battery_plan_v7(obs) + v5, _ = battery_plan_v5(observe(5, st, ctx, None, look, env)) + assert plan == v5 + for b in BUILDINGS: + lo, hi = obs["buildings"][b]["battery_range"] + assert lo <= obs["buildings"][b]["strategy_battery"] <= hi + assert obs["buildings"][b]["strategy_battery"] == min(max(plan[b], lo), hi) + + +def _battery_obs(last=-0.3, load=1.2, soc=0.6, top=False, solar=False): + *_, obs = _obs(n=30) + obs["price_plan"]["top_price_now"] = top + obs["peak"]["district_load_now_kwh"] = 0.0 # no peak shaving + for b in BUILDINGS: + s = obs["buildings"][b] + s["last_action"] = {"cooling": 0.3, "dhw": 0.0, "battery": last} + s["load_now_kwh"] = -1.0 if solar else load + s["battery"]["soc"] = soc + return obs + + +def test_the_soft_cap_winds_a_discharge_down_and_leaves_spare_solar_alone(): + capped = StrategyParamsV7(rise_step=0.1) + plan, why = battery_plan_v7(_battery_obs(), capped) + assert all(v == pytest.approx(-0.2) for v in plan.values()) and why == "Wind a discharge down slowly" + assert all(v > 0.1 for v in battery_plan_v7(_battery_obs())[0].values()) # shipped, no cap: -0.3 to a charge + plan, _ = battery_plan_v7(_battery_obs(soc=0.1), capped) # nothing left to discharge + assert all(v == 0.0 for v in plan.values()) + plan, _ = battery_plan_v7(_battery_obs(last=0.0, solar=True), capped) # storing spare solar is exempt + assert all(v > 0.1 for v in plan.values()) + + +def test_valley_filling_charges_only_up_to_the_higher_of_last_and_next_hour(): + obs = _battery_obs(last=0.0, load=0.6, soc=0.3) + obs["price_plan"].update({"top_price_now": False, "top_price_hours_ahead": [3]}) + obs["peak"]["headroom_kwh"] = 10.0 + for b in BUILDINGS: + obs["buildings"][b]["battery"]["grid_charging_ok"] = True + sm = obs["smoothing"] + sm.update({"district_load_now_kwh": 1.8, "district_draw_last_hour_kwh": 2.1, "district_load_next_hour_kwh": 1.5}) + free, _ = battery_plan_v7(obs, StrategyParamsV7()) + filled, _ = battery_plan_v7(obs, StrategyParamsV7(fill_valley=True)) + assert all(v == pytest.approx(0.15) for v in free.values()) + cap = obs["buildings"]["Building_1"]["battery"]["capacity_kwh"] + assert sum(v * cap for v in filled.values()) <= 2.1 - 1.8 + 1e-6 + + +def test_v7_system_prompt_states_the_ranges_the_trim_and_the_battery_guidance(): + cfg = EnvelopeConfig() + text = system_prompt_v7(cfg, BUILDINGS) + for phrase in ("cooling_range and battery_range", "Stay inside them and nothing is clamped", + "cooling_range null", "min_depth", "end_trim_ok", "last_clamp", + "null is exactly baseline_action: use it only when trim state is off or end", + "send it as given", "stay within 0.1 of", "never skip a peak-shaving discharge", + "at most 0.02 per hour", "more than 0.5 C below its setpoint"): + assert phrase in text, phrase + assert "Raise a battery action" not in text # the shipped plan has no cap, so the prompt states none + assert chr(0x2014) not in text and "reference_action" not in text + + +def test_v7_request_is_no_larger_than_v6(): + st, ctx, look, env, v7 = _obs() + v6 = observe(6, st, ctx, None, look, env) + r6 = build_request(v6, env.config, BUILDINGS, "haiku", prompt_version=6) + r7 = build_request(v7, env.config, BUILDINGS, "haiku", prompt_version=7) + assert r7["output_config"] == r6["output_config"] # same reply schema, end_trim included + assert len(r7["system"]) < len(system_prompt_v6(env.config, BUILDINGS)) + assert len(json.dumps(r7)) < 1.02 * len(json.dumps(r6)) + + +# -- the scripted version 7 strategy --------------------------------------------------- + + +def test_scripted_v7_reply_stays_inside_the_ranges_and_never_leaves_a_held_trim_to_null(): + env, ctx = _held(indoor=COLD) + st, _, look, _, obs = _obs(envelope=env) + obs["buildings"]["Building_1"].update({"trim": {"depth": 0.08, "state": "hold", "end_trim_ok": True, + "why": "1.5 C below setpoint", "min_depth": 0.08}, + "cooling_range": [0.15, 0.22], "occupied": True, + "indoor_vs_setpoint_c": -0.3}) + obs["buildings"]["Building_1"]["baseline_action"]["cooling"] = 0.3 + reply = strategy_plan_v7(obs) + assert reply["Building_1"]["cooling"] == 0.22 + for b in BUILDINGS: + lo, hi = obs["buildings"][b]["battery_range"] + assert lo <= reply[b]["battery"] <= hi and reply[b]["end_trim"] is None and reply[b]["dhw"] == 0.0 + req = build_request(obs, env.config, BUILDINGS, "haiku", prompt_version=7) + p, err = parse_reply(ScriptedSupervisor().call(5, req).text, BUILDINGS, end_trim=True) + assert err is None and p["end_trim"] == {} + + +def test_v7_run_on_the_fake_district_is_clean_and_replays(tmp_path): + run = tmp_path / "v7" + ctl = AgentController(ScriptedSupervisor(), Envelope(EnvelopeConfig()), Budget(2.0), prompt_version=7) + res = run_session(FakeDistrict(), ctl, RunWriter(run), hours=48, log=lambda *_: None) + assert res["fallback_steps"] == 0 and res["clamped_steps"] == 0 and ctl.describe()["prompt_version"] == 7 + rep = replay_run(run) + assert rep.deterministic and rep.identical_steps == 48 + + +@needs_citylearn +def test_v7_dry_run_and_replay(tmp_path): + """24 hours of the scripted version 7 strategy on CityLearn, through the 0.8.0 rules, and replay.""" + from hyperbolic.runner import controller_settings + from hyperbolic.sim import CityLearnSimulator + + version, cfg = controller_settings(rule_based=True, prompt_version=7) + assert cfg == EnvelopeConfig() + ctl = AgentController(ScriptedSupervisor(), Envelope(cfg), Budget(2.0), prompt_version=version) + run_dir = tmp_path / "v7" + res = run_session(CityLearnSimulator(control=True), ctl, RunWriter(run_dir), hours=24, log=lambda *_: None, + sim_info={"kind": "citylearn", "control": True}) + assert res["steps"] == 24 and res["fallback_steps"] == 0 + calls = load_jsonl(run_dir / "calls.jsonl") + assert "cooling_range" in calls[5]["request"]["system"] + rep = replay_run(run_dir) + assert rep.deterministic and rep.api_calls == 0 and rep.identical_steps == 24 + + +@needs_citylearn +def test_v7_strategy_full_month_cuts_clamps_and_keeps_the_v6_month(): + """The scripted version 7 month: the version 6 strategy's KPIs (139 clamped hours in 0.8.0), with + clamps only where no reply can avoid them.""" + from hyperbolic.sim import CityLearnSimulator + + ctl = AgentController(ScriptedSupervisor(), Envelope(EnvelopeConfig()), Budget(2.0), prompt_version=7) + w = NullWriter() + res = run_session(CityLearnSimulator(control=True), ctl, w, hours=dc.EPISODE_HOURS, log=lambda *_: None) + k = res["district_kpis"] + assert res["complete"] and res["fallback_steps"] == 0 and res["clamped_steps"] <= 30 + assert k["ramping_average"] < 0.9957 and abs(k["cost_total"] - 0.9017) < 0.0005 + assert abs(k["discomfort_proportion"] - 0.0430) < 0.0005 and k["all_time_peak_average"] < 0.9593 + 5e-5 + for s in w.steps: + for c in s["decision"]["clamps"]: + assert c["rule"] == "peak" or (c["rule"] == "trim_hold" and c["requested"] == c["applied"] == 0.0), c