From ac998e4e425d30957219a98b1c5796f81ffb105c Mon Sep 17 00:00:00 2001 From: AddisonTech Date: Fri, 23 Oct 2026 11:49:12 -0400 Subject: [PATCH 1/4] Add prompt version 8, deviation analysis and the month set --- hyperbolic/cli.py | 122 ++++++++---- hyperbolic/live.py | 8 +- hyperbolic/model.py | 83 +++++++- hyperbolic/months.py | 186 ++++++++++++++++++ hyperbolic/prompt.py | 88 ++++++++- hyperbolic/runner.py | 16 +- scripts/analyze_deviations.py | 344 ++++++++++++++++++++++++++++++++++ scripts/tune_strategy.py | 155 +++++++++++---- tests/test_deviations.py | 201 ++++++++++++++++++++ tests/test_evaluation.py | 17 +- tests/test_months.py | 118 ++++++++++++ tests/test_prompt.py | 15 +- tests/test_prompt_v8.py | 225 ++++++++++++++++++++++ 13 files changed, 1486 insertions(+), 92 deletions(-) create mode 100644 hyperbolic/months.py create mode 100644 scripts/analyze_deviations.py create mode 100644 tests/test_deviations.py create mode 100644 tests/test_months.py create mode 100644 tests/test_prompt_v8.py diff --git a/hyperbolic/cli.py b/hyperbolic/cli.py index a636cd3..84ee14f 100644 --- a/hyperbolic/cli.py +++ b/hyperbolic/cli.py @@ -1,14 +1,16 @@ -"""Command line: hyperbolic baseline | run | replay | compare | serve.""" +"""Command line: hyperbolic baseline | run | replay | compare | months | serve.""" from __future__ import annotations import argparse import json import sys +import tempfile from pathlib import Path from . import __version__ from . import district as dc +from . import months as mo from .envelope import Envelope from .model import ( DEFAULT_BUDGET_USD, @@ -42,25 +44,29 @@ def _common(p: argparse.ArgumentParser) -> None: p.add_argument("--hours", type=int, default=None, help=f"stop after this many hours (default: the full {dc.EPISODE_HOURS} hour episode)") p.add_argument("--runs-dir", type=Path, default=Path("runs"), help="where run folders go (default: runs)") + p.add_argument("--month", default=mo.PHASE2, choices=[m.key for m in mo.months()], + help=f"which month of the month set to run (default: {mo.PHASE2}, the reported month)") -def _sim(control: bool): +def _sim(control: bool, schema: Path | None = None): from .sim import CityLearnSimulator - return CityLearnSimulator(control=control) + return CityLearnSimulator(control=control, schema=schema) def cmd_baseline(args) -> int: - sim = _sim(control=False) - try: - sim.check_hours(args.hours) - except ValueError as exc: - print(f"error: {exc}", file=sys.stderr) - return 2 - out = new_run_dir(args.runs_dir, "baseline", "citylearn") - print(f"baseline, {dc.DATASET} -> {out}") - res = run_session(sim, BaselineController(), RunWriter(out), args.hours, - {"kind": "citylearn", "control": False}) + month = mo.month(args.month) + with tempfile.TemporaryDirectory() as tmp: + sim = _sim(control=False, schema=mo.month_schema(month, Path(tmp))) + try: + sim.check_hours(args.hours) + except ValueError as exc: + print(f"error: {exc}", file=sys.stderr) + return 2 + out = new_run_dir(args.runs_dir, "baseline", "citylearn", month.dataset) + print(f"baseline, {month.dataset} -> {out}") + res = run_session(sim, BaselineController(), RunWriter(out), args.hours, + {"kind": "citylearn", "control": False, "month": month.key}, dataset=month.dataset) _print_result(res) return 0 @@ -76,28 +82,31 @@ def cmd_run(args) -> int: print(f"error: {exc}", file=sys.stderr) return 2 print(f"model key found in {source}") - hours = args.hours or dc.EPISODE_HOURS - try: - sim = _sim(control=True) - sim.check_hours(args.hours) - except ValueError as exc: - print(f"error: {exc}", file=sys.stderr) - return 2 - faults = ScriptedSupervisor.default_faults(hours) if args.inject_faults else None - sup = ScriptedSupervisor(args.model, faults=faults) if args.scripted else LiveSupervisor(args.model) - prompt_version, envelope_cfg = controller_settings(args.scripted, args.prompt_version) - ctl = AgentController( - supervisor=sup, - envelope=Envelope(envelope_cfg), - budget=Budget(limit_usd=args.budget), - max_tokens=args.max_tokens, - effort=args.effort, - prompt_version=prompt_version, - ) - out = new_run_dir(args.runs_dir, "agent", "citylearn") - print(f"agent, {dc.DATASET}, {sup.kind} replies, {MODELS[args.model]['id']}, " - f"budget ${args.budget:.2f} -> {out}") - res = run_session(sim, ctl, RunWriter(out), args.hours, {"kind": "citylearn", "control": True}) + month = mo.month(args.month) + hours = args.hours or mo.hours(month) + with tempfile.TemporaryDirectory() as tmp: + try: + sim = _sim(control=True, schema=mo.month_schema(month, Path(tmp))) + sim.check_hours(args.hours) + except ValueError as exc: + print(f"error: {exc}", file=sys.stderr) + return 2 + faults = ScriptedSupervisor.default_faults(hours) if args.inject_faults else None + sup = ScriptedSupervisor(args.model, faults=faults) if args.scripted else LiveSupervisor(args.model) + prompt_version, envelope_cfg = controller_settings(args.scripted, args.prompt_version) + ctl = AgentController( + supervisor=sup, + envelope=Envelope(envelope_cfg), + budget=Budget(limit_usd=args.budget), + max_tokens=args.max_tokens, + effort=args.effort, + prompt_version=prompt_version, + ) + out = new_run_dir(args.runs_dir, "agent", "citylearn", month.dataset) + print(f"agent, {month.dataset}, {sup.kind} replies, {MODELS[args.model]['id']}, " + f"budget ${args.budget:.2f} -> {out}") + res = run_session(sim, ctl, RunWriter(out), args.hours, + {"kind": "citylearn", "control": True, "month": month.key}, dataset=month.dataset) _print_result(res) return 0 @@ -150,6 +159,35 @@ def cmd_compare(args) -> int: return 0 +def cmd_months(args) -> int: + import concurrent.futures as cf + import multiprocessing as mp + + keys = args.months or [m.key for m in mo.months()] + rows = [] + for d in args.run or []: + try: + rows.append(mo.recorded_run(Path(d))) + except (OSError, ValueError, KeyError) as exc: + print(f"error: --run {d}: {exc}", file=sys.stderr) + return 1 + with tempfile.TemporaryDirectory() as tmp: + jobs = [(c, k, tmp) for c in args.controllers for k in keys] + print(f"{len(jobs)} CityLearn episodes ({', '.join(args.controllers)} on {', '.join(keys)}), no model calls") + # spawn, not fork: forking after torch has started its threads can deadlock. + with cf.ProcessPoolExecutor(max_workers=args.jobs, mp_context=mp.get_context("spawn")) as pool: + rows = list(pool.map(mo.run_month, jobs)) + rows + for r in rows: + if r["controller"] in mo.CONTROLLERS: + r["controller"] = mo.CONTROLLERS[r["controller"]][0] + rep = mo.report(rows) + print(mo.table(rep)) + if args.out: + args.out.write_text(json.dumps(rep, indent=2, sort_keys=True), encoding="utf-8") + print(f"\nreport written to {args.out}") + return 0 + + def cmd_serve(args) -> int: from .live import serve @@ -217,7 +255,8 @@ def build_parser() -> argparse.ArgumentParser: 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, version 6 runs the version 5 strategy with the " - "trim hold and version 7 keeps it inside the ranges its observation shows)") + "trim hold, version 7 keeps it inside the ranges its observation shows and version 8 " + "adds extra cooling in a warm room)") 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") @@ -234,6 +273,17 @@ def build_parser() -> argparse.ArgumentParser: "(repeatable; the viewer data is unchanged)") c.set_defaults(func=cmd_compare) + mm = sub.add_parser("months", help="run offline controllers on every month of the month set and compare them") + mm.add_argument("--controllers", nargs="+", default=list(mo.CONTROLLERS), choices=list(mo.CONTROLLERS), + help="offline controllers to run (default: all of them)") + mm.add_argument("--months", nargs="+", default=None, choices=[m.key for m in mo.months()], + help="months to run (default: every month available locally)") + mm.add_argument("--run", action="append", metavar="RUN_DIR", + help="also show this finished run at the month it was recorded on (repeatable)") + mm.add_argument("--jobs", type=int, default=None, help="parallel simulations (default: one per CPU)") + mm.add_argument("--out", type=Path, default=None, help="optionally write the report as JSON") + mm.set_defaults(func=cmd_months) + sv = sub.add_parser("serve", help="watch a run live in the browser (local only, 127.0.0.1)") sv.add_argument("--port", type=int, default=8765, help="port on 127.0.0.1 (default: 8765)") sv.add_argument("--host", default="127.0.0.1", help="only 127.0.0.1 or localhost are accepted") diff --git a/hyperbolic/live.py b/hyperbolic/live.py index 40bbca8..723d0e3 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 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) +# Typical prompt version 8 request and reply, for a cost estimate before any run is recorded: the +# 0.9.0 live month averaged 5,185 input and 245 output tokens on version 7, version 8 requests are +# 12 percent smaller, and replies that send the strategy's cooling as a number may run a little longer. +TYPICAL_TOKENS = (4560, 260) def key_status(env: dict[str, str] | None = None) -> dict: diff --git a/hyperbolic/model.py b/hyperbolic/model.py index 1314d41..e331206 100644 --- a/hyperbolic/model.py +++ b/hyperbolic/model.py @@ -294,6 +294,26 @@ class StrategyParamsV7(StrategyParamsV5): # close to it +@dataclass(frozen=True) +class StrategyParamsV8(StrategyParamsV7): + """Numbers in the prompt version 8 strategy: version 7's, plus extra cooling in a room that runs + warm. A trim leaves an overcooled room at its setpoint instead of the baseline's 2 C below it, so + the next day's heat (or an outage) can carry it over the top of the band. strategy_plan_v8 + executes it and prompt version 8 shows its actions. Chosen on the tuning dataset + (scripts/tune_strategy.py --version 8), never on the reported month: the cheapest of the 36 + settings tried that keeps every tuning month at or below the baseline's too-warm share.""" + + # Added in 0.10.0. + warm_margin_c: float = 1.5 # an occupied room this far above its setpoint is running warm + warm_boost: float = 0.05 # ... and its cooling is raised up to this far above the baseline action; + # 0 is no extra cooling + warm_ramp_c: float = 1.0 # the boost grows from 0 to warm_boost over this many degrees beyond + # warm_margin_c; 0 adds it all at once + night_from_hour: int = 0 # from this hour of the day (1 to 24) until night_until_hour no trim + night_until_hour: int = 6 # starts and a held trim is ended; 0 is no night rule. Searched and not + # shipped: it raised cost and cleared no warm hour + + @dataclass(frozen=True) class RuleParamsV2: """Knobs of the 0.3.0 rule-based policy for prompt version 2 observations, kept as tuned @@ -330,7 +350,8 @@ class ScriptedSupervisor: 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 7 (strategy_plan_v7) keeps every action - inside the ranges the observation shows and uses the version 7 battery plan. Version 2 + inside the ranges the observation shows and uses the version 7 battery plan; version 8 + (strategy_plan_v8) adds extra cooling in a warm room. 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 @@ -342,7 +363,8 @@ 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, strategy_v7: StrategyParamsV7 | None = None) -> None: + strategy_v5: StrategyParamsV5 | None = None, strategy_v7: StrategyParamsV7 | None = None, + strategy_v8: StrategyParamsV8 | None = None) -> None: self.model_key = model_key self.faults = dict(faults or {}) self.tokens = tokens @@ -351,6 +373,7 @@ def __init__(self, model_key: str = DEFAULT_MODEL, faults: dict[int, str] | None self.strategy = strategy or StrategyParams() self.strategy_v5 = strategy_v5 or StrategyParamsV5() self.strategy_v7 = strategy_v7 or StrategyParamsV7() + self.strategy_v8 = strategy_v8 or StrategyParamsV8() @staticmethod def default_faults(hours: int) -> dict[int, str]: @@ -371,7 +394,10 @@ 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 "cooling_range" in next(iter(obs["buildings"].values()), {}): # version 7 + first = next(iter(obs["buildings"].values()), {}) + if "strategy" in first: # version 8 + reply = strategy_plan_v8(obs, self.strategy_v8) + elif "cooling_range" in first: # version 7 reply = strategy_plan_v7(obs, self.strategy_v7) elif "smoothing" in obs: reply = strategy_plan_v5(obs, self.strategy_v5) @@ -832,6 +858,57 @@ def strategy_plan_v7(obs: dict, p: StrategyParamsV7 | None = None) -> dict: return {"reason": (reason[0].upper() + reason[1:])[:dc.REASON_TARGET_CHARS], **reply} +WARM_NOTE = "cool a warm room a little more" +NIGHT_NOTE = "no cooling trim at night" +NIGHT_END_TRIM = "night: the room cools back to its cushion for tomorrow" + + +def night_now(hour: int, p: StrategyParamsV8) -> bool: + """Whether hour of the day (1 to 24) falls in the strategy's no-trim night.""" + if p.night_from_hour <= 0: + return False + if p.night_from_hour <= p.night_until_hour: + return p.night_from_hour <= hour < p.night_until_hour + return hour >= p.night_from_hour or hour < p.night_until_hour + + +def strategy_plan_v8(obs: dict, p: StrategyParamsV8 | None = None) -> dict: + """The prompt version 8 strategy: version 7's, with no trim at night (none starts, a held one is + ended with end_trim) and an occupied room more than warm_margin_c above its setpoint, with no + trim held, cooled up to warm_boost above baseline_action within cooling_range. Prompt version 8 + shows each building's result as strategy.""" + p = p or StrategyParamsV8() + reply = strategy_plan_v7(obs, p) + warm = night = False + if night_now(int(obs["hour"]), p): + for b, s in sorted(obs["buildings"].items()): + base = s["baseline_action"]["cooling"] + if s["trim"]["end_trim_ok"]: + reply[b]["cooling"], reply[b]["end_trim"] = None, NIGHT_END_TRIM + night = True + elif s["trim"]["state"] not in ("hold", "ease") and reply[b]["cooling"] is not None and base is not None \ + and reply[b]["cooling"] < base: + reply[b]["cooling"] = None + night = True + for b, s in sorted(obs["buildings"].items()): + gap, rng = s["indoor_vs_setpoint_c"], s["cooling_range"] + base = s["baseline_action"]["cooling"] + # In an outage the grid cannot serve extra cooling, and CityLearn counts it as unserved energy. + if (p.warm_boost <= 0 or not s["occupied"] or s["power_outage"] or gap is None or rng is None or base is None + or s["trim"]["state"] in ("hold", "ease") or gap < p.warm_margin_c): + continue + boost = p.warm_boost if p.warm_ramp_c <= 0 else p.warm_boost * min(1.0, (gap - p.warm_margin_c) / p.warm_ramp_c) + # The baseline arrives rounded to 3 decimals: keep 0.001 clear of the deviation limit. + cooling = min(max(math.floor((base + boost - 0.001) * 1000) / 1000, rng[0]), rng[1]) + if cooling > base + 0.001: + reply[b]["cooling"] = cooling + warm = True + notes = [*([NIGHT_NOTE] if night else []), *([WARM_NOTE] if warm else [])] + if notes: + reply["reason"] = "; ".join([reply["reason"], *notes])[:dc.REASON_TARGET_CHARS] + return 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/months.py b/hyperbolic/months.py new file mode 100644 index 0000000..da365b9 --- /dev/null +++ b/hyperbolic/months.py @@ -0,0 +1,186 @@ +"""The month set (0.10.0): the reported phase 2 month plus every month of the tuning dataset kept +locally, each run as its own episode, and the compare report across them. + + phase2 citylearn_challenge_2023_phase_2_local_evaluation, shipped in hyperbolic/data + tuning-06 June, July and August of citylearn_challenge_2023_phase_2_online_evaluation_1 from + tuning-07 CityLearn v3.0.2, kept unchanged in scripts/tuning_data. The same three buildings, + tuning-08 batteries and LSTM models, other weather, loads, solar, carbon and tariff. + +A tuning month is written out as its own dataset folder (its rows of every series, the LSTM models, +and a schema that ends at its last hour), so CityLearn runs it exactly as scripts/tune_strategy.py +always has. Every KPI is CityLearn's own, normalized against the no-control run of the same month. +""" + +from __future__ import annotations + +import csv +import json +import shutil +from dataclasses import dataclass +from pathlib import Path + +from . import district as dc + +TUNING_DATASET = (Path(__file__).resolve().parents[1] / "scripts" / "tuning_data" + / "citylearn_challenge_2023_phase_2_online_evaluation_1") +SERIES = ("Building_1.csv", "Building_2.csv", "Building_3.csv", "carbon_intensity.csv", "pricing.csv", "weather.csv") +PHASE2 = "phase2" + +# The KPIs the report shows, in order. +REPORT_KPIS = ("cost_total", "carbon_emissions_total", "electricity_consumption_total", "discomfort_proportion", + "discomfort_cold_proportion", "discomfort_hot_proportion", "ramping_average", "daily_peak_average", + "all_time_peak_average", "daily_one_minus_load_factor_average", + "power_outage_normalized_unserved_energy_total") + + +@dataclass(frozen=True) +class Month: + key: str # phase2, tuning-06, ... + dataset: str # recorded in run manifests and folder names + label: str + rows: tuple[int, int] | None = None # the tuning dataset's rows [start, end) for a tuning month + + +def _tuning_spans() -> list[tuple[str, int, int]]: + if not (TUNING_DATASET / "Building_1.csv").exists(): + return [] + with (TUNING_DATASET / "Building_1.csv").open(encoding="utf-8") as f: + months = [row["month"] for row in csv.DictReader(f)] + spans, start = [], 0 + for i in range(1, len(months) + 1): + if i == len(months) or months[i] != months[start]: + spans.append((months[start], start, i)) + start = i + return spans + + +def months() -> list[Month]: + """The phase 2 month, then every tuning month available locally.""" + out = [Month(PHASE2, dc.DATASET, "phase 2")] + for month, a, b in _tuning_spans(): + key = f"tuning-{int(month):02d}" + out.append(Month(key, f"{TUNING_DATASET.name}_month_{int(month):02d}", key, (a, b))) + return out + + +def month(key: str) -> Month: + for m in months(): + if m.key == key: + return m + raise ValueError(f"unknown month {key!r}; available: {', '.join(m.key for m in months())}") + + +def month_schema(m: Month, out: Path) -> Path: + """The schema CityLearn runs for month m. A tuning month is written into out/.""" + if m.rows is None: + return dc.schema_path() + a, b = m.rows + d = Path(out) / m.key + d.mkdir(parents=True, exist_ok=True) + for name in SERIES: + lines = (TUNING_DATASET / name).read_text(encoding="utf-8").splitlines(keepends=True) + (d / name).write_text("".join([lines[0], *lines[1 + a:1 + b]]), encoding="utf-8") + for pth in TUNING_DATASET.glob("*.pth"): + shutil.copy(pth, d / pth.name) + schema = json.loads((TUNING_DATASET / "schema.json").read_text(encoding="utf-8")) + (d / "schema.json").write_text(json.dumps({**schema, "simulation_start_time_step": 0, + "simulation_end_time_step": b - a - 1}), encoding="utf-8") + return d / "schema.json" + + +def hours(m: Month) -> int: + """Hourly decisions in month m's episode.""" + return dc.EPISODE_HOURS if m.rows is None else m.rows[1] - m.rows[0] - 1 + + +# -- controllers and the report ---------------------------------------------------- + +# Offline controllers the report can run: (label, prompt version, rule-based). +CONTROLLERS = { + "baseline": ("baseline", None, False), + "rule": ("0.4.0 rule-based", 3, True), + "v7": ("v7 scripted", 7, True), + "v8": ("v8 scripted", 8, True), +} + + +def run_month(job: tuple[str, str, str]) -> dict: + """job: (controller key, month key, scratch folder). One CityLearn episode, no model calls.""" + import torch + + torch.set_num_threads(1) # one simulation per process + from .envelope import Envelope + from .model import Budget, ScriptedSupervisor + from .runner import AgentController, BaselineController, NullWriter, controller_settings, run_session + from .sim import CityLearnSimulator + + kind, key, scratch = job + m = month(key) + schema = month_schema(m, Path(scratch)) + if kind == "baseline": + controller, control = BaselineController(), False + else: + version, cfg = controller_settings(True, CONTROLLERS[kind][1]) + controller, control = AgentController(ScriptedSupervisor(), Envelope(cfg), Budget(2.0), + prompt_version=version), True + res = run_session(CityLearnSimulator(control=control, schema=schema), controller, NullWriter(), + sim_info={"kind": "citylearn", "control": control}, log=lambda *_: None, dataset=m.dataset) + k = res["district_kpis"] + return {"controller": kind, "month": key, "hours": res["steps"], "kpis": {x: k.get(x) for x in REPORT_KPIS}, + "clamped": res["clamped_steps"], "fallback": res["fallback_steps"]} + + +def recorded_run(run_dir: Path) -> dict: + """A finished run's KPIs for the report, placed at the month its manifest records.""" + m = json.loads((run_dir / "manifest.json").read_text(encoding="utf-8")) + r = json.loads((run_dir / "result.json").read_text(encoding="utf-8")) + by_dataset = {x.dataset: x.key for x in months()} + if m.get("dataset") not in by_dataset: + raise ValueError(f"{run_dir.name}: dataset {m.get('dataset')!r} is not in the month set") + sup = m.get("supervisor") or {} + if sup.get("kind") == "live": + label = f"{sup.get('model_key')} v{sup.get('prompt_version')}" + else: + label = f"{sup.get('kind', m.get('mode'))} v{sup.get('prompt_version', '-')}" + if not r.get("complete"): + label += f" ({r.get('steps')} h)" + k = r.get("district_kpis") or {} + return {"controller": label, "month": by_dataset[m["dataset"]], "hours": r.get("steps"), + "kpis": {x: k.get(x) for x in REPORT_KPIS}, "clamped": r.get("clamped_steps"), + "fallback": r.get("fallback_steps"), "cost_usd": r.get("cost_usd"), "complete": r.get("complete")} + + +def report(rows: list[dict]) -> dict: + """Per controller: each month's KPIs and, when it ran every month in the report, their mean.""" + keys = [m.key for m in months()] + out: dict = {} + for r in rows: + out.setdefault(r["controller"], {})[r["month"]] = r + ran = {k for by_month in out.values() for k in by_month} + for ctl, by_month in out.items(): + if not ran <= set(by_month): + continue + got = [by_month[k] for k in keys if k in by_month] + mean = {x: (sum(g["kpis"][x] for g in got) / len(got) + if all(g["kpis"][x] is not None for g in got) else None) for x in REPORT_KPIS} + by_month["mean"] = {"controller": ctl, "month": "mean", "hours": sum(g["hours"] or 0 for g in got), + "kpis": mean, "clamped": sum(g["clamped"] or 0 for g in got) / len(got), + "months": len(got)} + return out + + +def table(rep: dict) -> str: + """One block per KPI: a row per controller, a column per month and the mean.""" + cols = [m.key for m in months() if any(m.key in by_month for by_month in rep.values())] + ["mean"] + width = max([len(c) for c in rep] + [10]) + 2 + lines = [f"{'CityLearn KPI (district)':<{width}}" + "".join(f"{c:>11}" for c in cols)] + for x in (*REPORT_KPIS, "clamped"): + lines.append(x) + for ctl, by_month in rep.items(): + cells = [] + for c in cols: + r = by_month.get(c) + v = None if r is None else (r["clamped"] if x == "clamped" else r["kpis"][x]) + cells.append(f"{'':>11}" if v is None else f"{v:>11.1f}" if x == "clamped" else f"{v:>11.4f}") + lines.append(f" {ctl:<{width - 2}}" + "".join(cells)) + return "\n".join(lines) diff --git a/hyperbolic/prompt.py b/hyperbolic/prompt.py index 54df1f2..fbc8c3e 100644 --- a/hyperbolic/prompt.py +++ b/hyperbolic/prompt.py @@ -34,6 +34,11 @@ 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. + 8 v0.10.0. Each building shows the version 8 strategy's whole action for the hour (strategy: + cooling, dhw and battery, with strategy_reason) in place of strategy_battery, since the + 0.9.0 live month followed strategy_battery but rarely started a cooling trim itself. The + strategy adds extra cooling in an occupied room that runs warm (the hot-side fix), and + signal_outlook is dropped. The envelope's rules are the same as for version 6. """ from __future__ import annotations @@ -50,15 +55,17 @@ StrategyParams, StrategyParamsV5, StrategyParamsV7, + StrategyParamsV8, battery_plan_v5, battery_plan_v7, rule_plan_v3, + strategy_plan_v8, ) from .signals import charge_spread, combined_signal -PROMPT_VERSION = 7 -PROMPT_VERSIONS = (1, 2, 3, 4, 5, 6, 7) +PROMPT_VERSION = 8 +PROMPT_VERSIONS = (1, 2, 3, 4, 5, 6, 7, 8) # From this version the reply may end a held cooling trim early (envelope trim hold, 0.8.0). END_TRIM_FROM = 6 @@ -915,6 +922,79 @@ def system_prompt_v7(cfg: EnvelopeConfig, buildings: tuple[str, ...]) -> str: reply invalid.""" +def build_observation_v8(state: dict, ctx: StepContext, last: Decision | None, look: Lookahead, + envelope: Envelope | None) -> dict: + """Version 8: version 7 with the version 8 strategy's whole action per building (strategy, with + strategy_reason) in place of strategy_battery, and without signal_outlook, which no version 7 or + 8 strategy reads.""" + obs = build_observation_v7(state, ctx, last, look, envelope) + del obs["strategy_battery_reason"], obs["signal_outlook"] + plan = strategy_plan_v8(obs) + obs["strategy_reason"] = plan["reason"] + for b, ob in obs["buildings"].items(): + del ob["strategy_battery"] + ob["strategy"] = {d: plan[b][d] for d in ("cooling", "dhw", "battery")} + return obs + + +def system_prompt_v8(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 = StrategyParamsV8() # the strategy's numbers, chosen on the tuning dataset + full = sp.cold_margin_c + sp.cold_ramp_c + return f"""You are the hourly supervisory controller for a simulated district of {len(buildings)} \ +buildings (CityLearn 2023 challenge data). 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, too cool or too warm, than the reference. Discomfort is any occupied \ +hour with indoor temperature outside setpoint +/- {cfg.comfort_band_k:g} C. +2. Peaks and smoothness: the district's daily peak, daily load factor and ramping at or better than \ +the reference. Ramping counts every hour the district draws more than the hour before. +3. Cost first, then carbon. Each building's cost counts equally, whatever its size. + +What you see: +- strategy in each building: the action the strategy below gives this hour for cooling, dhw and \ +battery, worked out in code inside the envelope's ranges, with strategy_reason. Send it as given. \ +Where you differ, say why in the reason. +- cooling_range and battery_range: the values the safety envelope lets through this hour without a \ +clamp. cooling_range null: only the baseline passes. +- trim: the cooling trim the envelope carries: depth below baseline_action, state (off, hold, ease, \ +end), min_depth, end_trim_ok. last_clamp: what the envelope changed there last hour, and why. +- price_plan, battery, indoor_vs_setpoint_c, smoothing, peak and next_24h: what the strategy reads. + +Strategy (strategy already applies it): +1. Cooling. An occupied room more than {sp.cold_margin_c:g} C below its setpoint is overcooled: cooling \ +goes 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. That starts a trim when state is off; while it is held, cooling is a number inside cooling_range, \ +never null. A trim leaves the room at its setpoint, without the reference's cushion, so an occupied room \ +running warm with no trim held gets more cooling than baseline_action: from 0 at {sp.warm_margin_c:g} C \ +above its setpoint to {sp.warm_boost:g} at {sp.warm_margin_c + sp.warm_ramp_c:g} C or more above. \ +Otherwise cooling is null, exactly baseline_action. +2. Battery. Discharge the usable charge evenly over the top-price hours left, each hour no more than \ +load_now_kwh. Before them discharge only to shave the district peak, once district_load_now_kwh \ +reaches {sp.shave:g} x forecast_today_kwh. Charge from the grid only when grid_charging_ok, in the \ +cheapest, cleanest hours, up to {sp.charge_rate:g} of capacity per hour within headroom_kwh, to be \ +near {sp.soc_target:g} when the top price starts. Store spare solar any time. Idle on flat_24h days. +3. Leave the hot water tank at 0. + +Actions per building, null keeps 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 a held trim now (only when end_trim_ok, with null cooling). + +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: @@ -931,6 +1011,8 @@ def observe(version: int, state: dict, ctx: StepContext, last: Decision | None, return build_observation_v6(state, ctx, last, look, envelope) if version == 7: return build_observation_v7(state, ctx, last, look, envelope) + if version == 8: + return build_observation_v8(state, ctx, last, look, envelope) raise ValueError(f"unknown prompt version {version}") @@ -946,7 +1028,7 @@ def build_request(obs: dict, cfg: EnvelopeConfig, buildings: tuple[str, ...], mo 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, - 7: system_prompt_v7}[prompt_version](cfg, buildings) + 7: system_prompt_v7, 8: system_prompt_v8}[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 48e8779..66f41da 100644 --- a/hyperbolic/runner.py +++ b/hyperbolic/runner.py @@ -244,9 +244,9 @@ def decide(self, step: int, state: dict, writer: RunWriter) -> tuple[Decision, d return decision, call_info -def new_run_dir(runs_dir: Path, mode: str, sim_kind: str) -> Path: +def new_run_dir(runs_dir: Path, mode: str, sim_kind: str, dataset: str = dc.DATASET) -> Path: stamp = dt.datetime.now(dt.timezone.utc).strftime("%Y%m%dT%H%M%SZ") - return runs_dir / f"{dc.DATASET}_{mode}_{sim_kind}_{stamp}" + return runs_dir / f"{dataset}_{mode}_{sim_kind}_{stamp}" def district_kpis(kpis: list[dict]) -> dict[str, float | None]: @@ -271,28 +271,32 @@ def run_session( on_step: Callable[[dict], None] | None = None, control: RunControl | None = None, max_steps: int | None = None, + dataset: str = dc.DATASET, ) -> dict: """Run one episode of `hours` hourly decisions (the full month if None). on_step receives each hour's record right after it is written. control may pause or stop the run between hours; a stopped run is saved as partial. max_steps ends the run early without changing the episode length the simulator was started with, so a short - run sees the same outages as the longer one it is compared with. + run sees the same outages as the longer one it is compared with. dataset names the month + in the manifest (0.10.0: a tuning month of the month set; hyperbolic.months). """ state = sim.start(hours) stopped = False - episode_hours = hours or dc.EPISODE_HOURS + # The month's own length: 719 hours for the phase 2 month, 743 for a 31 day tuning month. + month_hours = int(getattr(sim, "episode_end_t", dc.EPISODE_HOURS)) + episode_hours = hours or month_hours try: envelope_cfg = controller.envelope.config.as_dict() if controller.envelope else None writer.start({ "schema": 2, "tool_version": __version__, "mode": controller.mode, - "dataset": dc.DATASET, + "dataset": dataset, "buildings": list(state["buildings"]), "step_s": dc.STEP_SECONDS, "hours_limit": hours, - "episode_hours": dc.EPISODE_HOURS, + "episode_hours": month_hours, "simulator": sim_info or {"kind": sim.kind}, "supervisor": controller.describe(), "envelope": envelope_cfg, diff --git a/scripts/analyze_deviations.py b/scripts/analyze_deviations.py new file mode 100644 index 0000000..7e15dbc --- /dev/null +++ b/scripts/analyze_deviations.py @@ -0,0 +1,344 @@ +"""Where a recorded prompt version 7 run left its own strategy, and what each departure cost (0.10.0). + + python scripts/analyze_deviations.py RUN_DIR [--jobs N] [--out FILE] + +Deviations. For every hour, building and device the recorded reply is compared with what the +scripted version 7 strategy (strategy_plan_v7: strategy_battery, the version 5 cooling trim fitted +into cooling_range, the tank at 0) sends for the very observation the model saw. A value counts as +the strategy's within 0.002 for cooling (the trim hold's rounding allowance) and 0.005 for storage +(the strategy truncates to 3 decimals). Each departure falls into exactly one class (CLASSES), +counted with when it happened: the price period, occupancy, outdoor temperature, the battery's +state of charge, how far the room was from its setpoint, and the building. + +Attribution. The run's own replies are sent again on a fresh CityLearn month through its own rules +(the 0.9.0 envelope, unchanged), with zero model calls: + + control the replies as recorded. It must reproduce the run's published KPIs exactly. + the replies with that one class replaced by the strategy's action, worked out on the + observation of the new run, so the battery and rooms react to the change. + all every class replaced at once. + strategy the scripted version 7 strategy on its own: the gap the classes are measured against. + +Estimates for prompt version 8, the same way, with the version 8 strategy (strategy_plan_v8, which +reads only what a version 7 observation already has): + + v8 top class trim_not_started replaced by the version 8 strategy's cooling. + v8 cooling every hour's cooling from the version 8 strategy, the model's own battery and tank: + a model that sends strategy.cooling as given and its battery as it did. + v8 strategy the scripted version 8 strategy on its own. + +A class's share of the gap is (control - class) / (control - strategy) on each KPI. The classes +interact (a trim started earlier changes the rooms later), so the shares need not add up to 1. +These are evaluations, never recorded runs. +""" + +from __future__ import annotations + +import argparse +import collections +import concurrent.futures as cf +import json +import multiprocessing as mp +import sys +from dataclasses import dataclass +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 # noqa: E402 + +from hyperbolic.envelope import Envelope, EnvelopeConfig # noqa: E402 +from hyperbolic.model import ( # noqa: E402 + Budget, + CallResult, + RecordedReplySupervisor, + ScriptedSupervisor, + StrategyParamsV7, + observation_from_request, + strategy_plan_v7, + strategy_plan_v8, +) +from hyperbolic.runner import AgentController, NullWriter, load_jsonl, run_session # noqa: E402 + +COOLING_TOL = 0.002 # EnvelopeConfig.trim_min_depth: a trim is cooling more than this below the baseline +STORAGE_TOL = 0.005 + +# class -> (device, what the model did against the strategy) +CLASSES = { + "trim_not_started": ("cooling", "no trim in an occupied, overcooled room where the strategy trims"), + "trim_shallower": ("cooling", "a shallower trim than the strategy's"), + "trim_deeper": ("cooling", "a deeper trim than the strategy's"), + "trim_unwanted": ("cooling", "a trim where the strategy has none"), + "trim_ended_early": ("cooling", "ended a held trim early with end_trim"), + "extra_cooling": ("cooling", "cooling above the strategy's"), + "top_discharge_short": ("battery", "discharged less than the strategy in a top-price hour"), + "top_discharge_over": ("battery", "discharged more than the strategy in a top-price hour"), + "shave_skipped": ("battery", "skipped or cut a peak-shaving discharge"), + "charge_skipped": ("battery", "charged less than the strategy in a charging hour"), + "charge_over": ("battery", "charged more than the strategy in a charging hour"), + "charge_off_plan": ("battery", "charged when the strategy holds or only stores solar"), + "discharge_off_plan": ("battery", "discharged when the strategy does not"), + "dhw_used": ("dhw", "used the hot water tank (the strategy leaves it at 0)"), +} + + +def battery_mode(obs: dict, b: str, strategy_battery: float, p: StrategyParamsV7 | None = None) -> str: + """Which branch of battery_plan_v7 the strategy is in for building b: top, shave, solar, charge or idle.""" + p = p or StrategyParamsV7() + s, pk = obs["buildings"][b], obs["peak"] + load = s["load_now_kwh"] + if load is None or not s["battery"]["capacity_kwh"]: + return "idle" + if obs["price_plan"]["top_price_now"] and load > 0: + return "top" + now, forecast = pk["district_load_now_kwh"], pk["forecast_today_kwh"] + if p.shave > 0 and now is not None and forecast and now >= p.shave * forecast and load > 0: + return "shave" + if load < -0.05: + return "solar" + return "charge" if strategy_battery > 0 else "idle" + + +def _value(acts: dict, device: str, base: float) -> float: + return base if acts.get(device) is None else float(acts[device]) + + +def classify(obs: dict, reply: dict, strategy: dict | None = None) -> list[tuple[str, str]]: + """(building, class) for every departure of a version 7 reply from the strategy on this observation.""" + strategy = strategy or strategy_plan_v7(obs) + out = [] + for b, s in sorted(obs["buildings"].items()): + mine, plan = reply[b], strategy[b] + base = s["baseline_action"]["cooling"] + hc, sc = _value(mine, "cooling", base), _value(plan, "cooling", base) + trimmed, planned = hc < base - COOLING_TOL, sc < base - COOLING_TOL + if mine.get("end_trim"): + out.append((b, "trim_ended_early")) + elif abs(hc - sc) > COOLING_TOL: + if planned and not trimmed: + out.append((b, "trim_not_started" if s["trim"]["state"] == "off" else "trim_shallower")) + elif planned: + out.append((b, "trim_shallower" if hc > sc else "trim_deeper")) + elif trimmed: + out.append((b, "trim_unwanted")) + elif hc > sc: + out.append((b, "extra_cooling")) + hb, sb = _value(mine, "battery", 0.0), _value(plan, "battery", 0.0) + if abs(hb - sb) > STORAGE_TOL: + mode = battery_mode(obs, b, sb) + if mode == "top": + out.append((b, "top_discharge_short" if hb > sb else "top_discharge_over")) + elif mode == "shave" and hb > sb: + out.append((b, "shave_skipped")) + elif mode == "charge": + out.append((b, "charge_skipped" if hb < sb else "charge_over")) + elif hb > sb: + out.append((b, "charge_off_plan")) + else: + out.append((b, "discharge_off_plan")) + if abs(_value(mine, "dhw", 0.0)) > STORAGE_TOL: + out.append((b, "dhw_used")) + return out + + +def _bin(v: float | None, edges: tuple[float, ...], labels: tuple[str, ...]) -> str: + if v is None: + return "n/a" + for edge, label in zip(edges, labels): + if v < edge: + return label + return labels[-1] + + +def context(obs: dict, b: str) -> dict: + """When a departure happened.""" + pp, s = obs["price_plan"], obs["buildings"][b] + period = ("flat" if pp["flat_24h"] else "top" if pp["top_price_now"] + else "low" if pp["now"] <= pp["low_24h"] + 1e-9 else "mid") + return { + "price": period, + "occupied": "occupied" if s["occupied"] else "empty", + "outdoor_c": _bin(obs["outdoor_c"], (22.0, 26.0, 30.0), ("<22", "22-26", "26-30", ">=30")), + "soc": _bin(s["battery"]["soc"], (0.3, 0.6, 0.9), ("<0.3", "0.3-0.6", "0.6-0.9", ">=0.9")), + "room": _bin(s["indoor_vs_setpoint_c"], (-1.5, -1.0, -0.5, 0.0), + ("<-1.5", "-1.5 to -1", "-1 to -0.5", "-0.5 to 0", ">=0")), + "building": b, + } + + +def deviations(run_dir: Path) -> list[dict]: + """Every departure in a recorded version 7 run: step, building, class, device, the model's and the + strategy's values and when it happened.""" + rows = [] + for rec in load_jsonl(run_dir / "calls.jsonl"): + text = rec["reply"].get("text") + if not text: + continue + obs = observation_from_request(rec["request"]) + if "cooling_range" not in next(iter(obs["buildings"].values())): + raise ValueError("this needs a prompt version 7 run") + reply, plan = json.loads(text), strategy_plan_v7(obs) + for b, cls in classify(obs, reply, plan): + device = CLASSES[cls][0] + base = obs["buildings"][b]["baseline_action"].get(device) or 0.0 + rows.append({"step": rec["step"], "building": b, "class": cls, "device": device, + "model": _value(reply[b], device, base), "strategy": _value(plan[b], device, base), + **context(obs, b)}) + return rows + + +def summary(rows: list[dict]) -> dict: + """Counts and size per class, and per class the split by each context field.""" + out = {} + for cls in CLASSES: + mine = [r for r in rows if r["class"] == cls] + if not mine: + continue + out[cls] = {"count": len(mine), "hours": len({r["step"] for r in mine}), + "mean_gap": round(sum(abs(r["model"] - r["strategy"]) for r in mine) / len(mine), 4), + **{k: dict(collections.Counter(r[k] for r in mine).most_common()) + for k in ("price", "occupied", "outdoor_c", "soc", "room", "building")}} + return out + + +PLANS = {7: strategy_plan_v7, 8: strategy_plan_v8} + + +class ReplacingSupervisor(RecordedReplySupervisor): + """A recorded run's replies with the listed (step, building, device) values replaced by the + version 7 (or 8) strategy's, worked out on the request actually sent this hour.""" + + kind = "recorded" + + def __init__(self, calls_path: Path, model_key: str, replace: set[tuple[int, str, str]], plan: int = 7) -> None: + super().__init__(calls_path, model_key) + self.by_step: dict[int, set[tuple[str, str]]] = collections.defaultdict(set) + for s, b, d in replace: + self.by_step[s].add((b, d)) + self.plan = PLANS[plan] + + def call(self, step: int, request: dict) -> CallResult: + res = super().call(step, request) + points = self.by_step.get(step) + if res.text is None or not points: + return res + reply, plan = json.loads(res.text), self.plan(observation_from_request(request)) + for b, d in points: + reply[b][d] = plan[b][d] + if d == "cooling": + reply[b]["end_trim"] = None + res.text = json.dumps(reply) + return res + + +def _replay(job: tuple[str, str, list, int]) -> dict: + """job: (name, run dir, points to replace, strategy version). control replays the recorded replies; + strategy and v8 strategy run that version's scripted strategy on its own.""" + import torch + + torch.set_num_threads(1) # one simulation per process + from hyperbolic.sim import CityLearnSimulator + + name, run, replace, plan = job + run_dir = Path(run) + m = json.loads((run_dir / "manifest.json").read_text(encoding="utf-8")) + sup = m["supervisor"] + calls = run_dir / "calls.jsonl" + version = int(sup["prompt_version"]) + if name in ("strategy", "v8 strategy"): + supervisor, version = ScriptedSupervisor(sup["model_key"]), plan + elif name == "control": + supervisor = RecordedReplySupervisor(calls, sup["model_key"]) + else: + supervisor = ReplacingSupervisor(calls, sup["model_key"], {tuple(x) for x in replace}, plan) + 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) + res = run_session(CityLearnSimulator(control=True), ctl, NullWriter(), hours=m.get("hours_limit"), + sim_info={"kind": "citylearn", "control": True}, log=lambda *_: None) + return {"name": name, "kpis": {k: res["district_kpis"][k] for k in KPI_KEYS}, + "clamped": res["clamped_steps"], "fallback": res["fallback_steps"]} + + +def attribute(run_dir: Path, rows: list[dict], jobs: int | None = None, classes: list[str] | None = None, + estimates: bool = True) -> dict: + """KPIs for control, each class replaced on its own, all classes, the strategy and, with + estimates, the three prompt version 8 replays.""" + points = collections.defaultdict(set) + for r in rows: + points[r["class"]].add((r["step"], r["building"], r["device"])) + classes = [c for c in (classes or CLASSES) if points[c]] + every = sorted(set().union(*(points[c] for c in classes))) if classes else [] + work = [("control", str(run_dir), [], 7), ("strategy", str(run_dir), [], 7)] + work += [(c, str(run_dir), sorted(points[c]), 7) for c in classes] + [("all", str(run_dir), every, 7)] + if estimates: + steps = sorted({r["step"] for r in load_jsonl(run_dir / "calls.jsonl")}) + buildings = json.loads((run_dir / "manifest.json").read_text(encoding="utf-8"))["buildings"] + work += [("v8 top class", str(run_dir), sorted(points["trim_not_started"]), 8), + ("v8 cooling", str(run_dir), [(s, b, "cooling") for s in steps for b in buildings], 8), + ("v8 strategy", str(run_dir), [], 8)] + # spawn, not fork: forking after torch has started its threads can deadlock. + with cf.ProcessPoolExecutor(max_workers=jobs, mp_context=mp.get_context("spawn")) as pool: + results = {r["name"]: r for r in pool.map(_replay, work)} + return results + + +def shares(results: dict) -> dict[str, dict[str, float | None]]: + """Each class's share of the gap between control and the strategy, per KPI.""" + c, s = results["control"]["kpis"], results["strategy"]["kpis"] + out = {} + for name, r in results.items(): + if name in ("control", "strategy") or name.startswith("v8 "): + continue + out[name] = {k: None if abs(c[k] - s[k]) < 1e-6 else round((c[k] - r["kpis"][k]) / (c[k] - s[k]), 4) + for k in KPI_KEYS} + return out + + +SHOW = ("cost_total", "carbon_emissions_total", "discomfort_proportion", "discomfort_hot_proportion", + "ramping_average", "daily_peak_average", "all_time_peak_average") + + +def main(argv: list[str] | None = None) -> int: + ap = argparse.ArgumentParser(description=__doc__.splitlines()[0]) + ap.add_argument("run_dir", type=Path) + 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") + args = ap.parse_args(argv) + rows = deviations(args.run_dir) + summ = summary(rows) + print(f"{args.run_dir.name}: departures from the version 7 strategy, by class (building-hours)") + for cls, s in sorted(summ.items(), key=lambda x: -x[1]["count"]): + print(f" {cls:<20} {s['count']:>4} in {s['hours']:>3} hours, mean gap {s['mean_gap']:.4f}: {CLASSES[cls][1]}") + for k in ("price", "occupied", "outdoor_c", "soc", "room", "building"): + print(f" {k:<9} " + ", ".join(f"{v} {n}" for v, n in s[k].items())) + results = attribute(args.run_dir, rows, args.jobs) + published = json.loads((args.run_dir / "result.json").read_text(encoding="utf-8"))["district_kpis"] + if any(results["control"]["kpis"][k] != published[k] for k in KPI_KEYS): + print("control does not reproduce the published KPIs", file=sys.stderr) + return 1 + print("\ncontrol reproduces the published KPIs exactly: yes") + sh = shares(results) + order = ["control", "strategy", "all", *sorted((n for n in sh if n != "all"), + key=lambda n: -(sh[n]["cost_total"] or 0.0))] + print(f" {'replay':<20}" + "".join(f"{k[:14]:>15}" for k in SHOW) + f"{'clamped':>9}") + for n in order: + r = results[n] + print(f" {n:<20}" + "".join(f"{r['kpis'][k]:>15.4f}" for k in SHOW) + f"{r['clamped']:>9}") + print("\nshare of the control to strategy gap explained") + for n in order[2:]: + print(f" {n:<20}" + "".join(f"{'n/a' if sh[n][k] is None else format(sh[n][k], '.2f'):>15}" for k in SHOW)) + print("\nestimates for prompt version 8: the model's replies with the version 8 strategy filled in") + for n in ("control", "v8 top class", "v8 cooling", "v8 strategy"): + r = results[n] + print(f" {n:<20}" + "".join(f"{r['kpis'][k]:>15.4f}" for k in SHOW) + f"{r['clamped']:>9}") + if args.out: + args.out.write_text(json.dumps({"summary": summ, "results": results, "shares": sh}, indent=2, sort_keys=True), + encoding="utf-8") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/tune_strategy.py b/scripts/tune_strategy.py index 603422c..fa2a902 100644 --- a/scripts/tune_strategy.py +++ b/scripts/tune_strategy.py @@ -5,6 +5,7 @@ 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 + python scripts/tune_strategy.py --version 8 # 0.10.0 extra cooling in a warm room 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 @@ -42,17 +43,28 @@ 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. + +Version 8 (0.10.0) searches the extra cooling the strategy gives an occupied room that runs warm +(StrategyParamsV8: how far above its setpoint, how much above the baseline action, and over how +many degrees it ramps in) and a night without trims (StrategyParamsV8.night_from_hour and +night_until_hour: none starts and a held one is ended, so the room cools back to the reference's +cushion overnight), alone and together, with the 0.8.0 rules, unchanged. The reference is the shipped version 7 +strategy. Comfort comes first, as in the prompt's goals: a candidate qualifies when its too-warm +share is at or below the baseline's on every tuning month, its mean too-cool share is no more than +0.001 above the reference's, and its mean ramping and both peaks stay at or below the baseline's. +The qualifying candidate with the lowest cost plus emissions wins, the lower too-warm share +breaking ties; with none, no extra cooling is shipped. (A first rule that also held cost, +emissions, both peaks and ramping within 0.001 of the reference qualified none of the 36: the +cheapest full fix costs about 0.002 of cost, and the night rule costs more and clears no warm hour.) """ from __future__ import annotations import argparse import concurrent.futures as cf -import csv import itertools import json import multiprocessing as mp -import shutil import sys import tempfile from dataclasses import asdict @@ -61,14 +73,22 @@ ROOT = Path(__file__).resolve().parents[1] sys.path.insert(0, str(ROOT)) +from hyperbolic import months as mo # noqa: E402 from hyperbolic.envelope import Envelope, EnvelopeConfig # noqa: E402 -from hyperbolic.model import Budget, ScriptedSupervisor, StrategyParams, StrategyParamsV5, StrategyParamsV7 # noqa: E402 +from hyperbolic.model import ( # noqa: E402 + Budget, + ScriptedSupervisor, + StrategyParams, + StrategyParamsV5, + StrategyParamsV7, + StrategyParamsV8, +) 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" -SERIES = ("Building_1.csv", "Building_2.csv", "Building_3.csv", "carbon_intensity.csv", "pricing.csv", "weather.csv") +TUNING_DATASET = mo.TUNING_DATASET KEYS = ("cost_total", "carbon_emissions_total", "discomfort_proportion", "daily_peak_average", "all_time_peak_average", "ramping_average", "daily_one_minus_load_factor_average") +COMFORT = ("discomfort_cold_proportion", "discomfort_hot_proportion") # A ratio counts as at or below the baseline's to four decimals: the baseline action under active # control rounds the heat pump fraction, which by itself moves a ratio by about 1e-5. TOLERANCE = 5e-5 @@ -98,37 +118,33 @@ "fill_valley": (False, True), "charge_rate": (0.1, 0.15), } +# Version 8: everything else at the shipped version 7 numbers. Two families and their mix: extra +# cooling in a warm room (no night rule), no trim at night (no extra cooling), and the night rule +# with the two mildest boosts that cleared every warm hour. +GRID_V8_WARM = { + "warm_margin_c": (0.5, 1.0, 1.5), + "warm_boost": (0.05, 0.1, 0.15), + "warm_ramp_c": (0.0, 1.0), +} +GRID_V8_NIGHT = { + "night_from_hour": (18, 20, 22), + "night_until_hour": (5, 7), +} +GRID_V8_MIX = ({"warm_margin_c": 1.5, "warm_boost": 0.1, "warm_ramp_c": 0.0}, + {"warm_margin_c": 1.0, "warm_boost": 0.1, "warm_ramp_c": 1.0}) +GRID_V8 = (*GRID_V8_WARM, *GRID_V8_NIGHT) +V8_SLACK = 0.001 def month_datasets(out: Path) -> list[Path]: - """One dataset folder per calendar month of the tuning set, each a full episode.""" - with (TUNING_DATASET / "Building_1.csv").open(encoding="utf-8") as f: - months = [row["month"] for row in csv.DictReader(f)] - spans, start = [], 0 - for i in range(1, len(months) + 1): - if i == len(months) or months[i] != months[start]: - spans.append((months[start], start, i)) - start = i - schema = json.loads((TUNING_DATASET / "schema.json").read_text(encoding="utf-8")) - dirs = [] - for month, a, b in spans: - d = out / f"month_{int(month):02d}" - d.mkdir(parents=True, exist_ok=True) - for name in SERIES: - lines = (TUNING_DATASET / name).read_text(encoding="utf-8").splitlines(keepends=True) - (d / name).write_text("".join([lines[0], *lines[1 + a:1 + b]]), encoding="utf-8") - for pth in TUNING_DATASET.glob("*.pth"): - shutil.copy(pth, d / pth.name) - (d / "schema.json").write_text(json.dumps({**schema, "simulation_start_time_step": 0, - "simulation_end_time_step": b - a - 1}), encoding="utf-8") - dirs.append(d) - return dirs + """One dataset folder per calendar month of the tuning set, each a full episode (hyperbolic.months).""" + return [mo.month_schema(m, out).parent for m in mo.months() if m.rows is not None] 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), strategy6 (version 5's strategy with the 0.8.0 trim hold) or strategy7 - (the version 7 strategy, same rules).""" + strategy5 (version 5), strategy6 (version 5's strategy with the 0.8.0 trim hold), strategy7 + (the version 7 strategy, same rules) or strategy8 (the version 8 strategy, same rules).""" import torch torch.set_num_threads(1) # one simulation per process @@ -152,14 +168,19 @@ def kpis(job: tuple[str, dict | None, str]) -> dict: 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 + elif kind == "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 + else: # strategy8: prompt version 8, the same 0.8.0 rules + controller = AgentController(ScriptedSupervisor(strategy_v8=StrategyParamsV8(**params)), + Envelope(EnvelopeConfig()), Budget(1.0), prompt_version=8) + control = True res = run_session(CityLearnSimulator(control=control, schema=Path(schema)), controller, NullWriter(), log=lambda *_: None) k = res["district_kpis"] - return {key: k.get(key) for key in KEYS} | {"clamped": res["clamped_steps"], "fallback": res["fallback_steps"]} + return ({key: k.get(key) for key in (*KEYS, *COMFORT)} + | {"clamped": res["clamped_steps"], "fallback": res["fallback_steps"]}) def mean(rows: list[dict]) -> dict: @@ -215,7 +236,7 @@ def line(name: str, k: dict) -> str: 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, 7)) + ap.add_argument("--version", type=int, default=5, choices=(4, 5, 6, 7, 8)) 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") @@ -227,6 +248,8 @@ def main(argv: list[str] | None = None) -> int: return main_v6(args) if args.version == 7: return main_v7(args) + if args.version == 8: + return main_v8(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 [ @@ -354,5 +377,73 @@ def main_v7(args) -> int: return 0 +def grid_v8() -> list[dict]: + off = asdict(StrategyParamsV8()) # no extra cooling, no night rule: the version 7 strategy + warm = [dict(zip(GRID_V8_WARM, c)) for c in itertools.product(*GRID_V8_WARM.values())] + night = [dict(zip(GRID_V8_NIGHT, c)) for c in itertools.product(*GRID_V8_NIGHT.values())] + return ([{**off, **w} for w in warm] + [{**off, **n} for n in night] + + [{**off, **n, **w} for n in night for w in GRID_V8_MIX]) + + +def qualifies_v8(k: dict, months: list[dict], base_months: list[dict], ref: dict) -> bool: + """Too warm at or below the baseline on every month, too cool within V8_SLACK of ref, and ramping + and both peaks at or below the baseline, on the mean.""" + return (all(m["discomfort_hot_proportion"] <= b["discomfort_hot_proportion"] + 1e-9 + for m, b in zip(months, base_months)) + and k["discomfort_cold_proportion"] <= ref["discomfort_cold_proportion"] + V8_SLACK + and all(k[x] <= 1.0 + TOLERANCE for x in ("ramping_average", "daily_peak_average", "all_time_peak_average"))) + + +def mean_all(rows: list[dict]) -> dict: + return {k: sum(r[k] for r in rows) / len(rows) for k in (*KEYS, *COMFORT, "clamped")} + + +def line_v8(name: str, k: dict) -> str: + return line(name, k) + f" too cool {k['discomfort_cold_proportion']:.4f} too warm {k['discomfort_hot_proportion']:.4f}" + + +def main_v8(args) -> int: + """Extra cooling in a warm room on the tuning months, against the shipped version 7 strategy.""" + with tempfile.TemporaryDirectory() as tmp: + months = [str(d / "schema.json") for d in month_datasets(Path(tmp))] + candidates = [asdict(StrategyParamsV8())] if args.quick else grid_v8() + jobs = [("baseline", None, m) for m in months] + [("strategy7", asdict(StrategyParamsV7()), m) for m in months] + jobs += [("strategy8", 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_months, ref_months = results[:n], results[n:2 * n] + base, ref = mean_all(base_months), mean_all(ref_months) + print(f"tuning set: {TUNING_DATASET.name}, {n} months, mean over months") + print(line_v8("baseline", base)) + print(line_v8("v7 shipped", ref)) + print(" too warm by month, baseline: " + ", ".join(f"{m['discomfort_hot_proportion']:.4f}" for m in base_months) + + "; v7: " + ", ".join(f"{m['discomfort_hot_proportion']:.4f}" for m in ref_months)) + rows = [] + for i, c in enumerate(candidates): + got = results[2 * n + i * n:2 * n + (i + 1) * n] + k = mean_all(got) + ok = qualifies_v8(k, got, base_months, ref) + rows.append({"params": c, "kpis": k, "months": got, "qualifies": ok, + "score": (score(k), k["discomfort_hot_proportion"])}) + print(line_v8(" ".join(f"{g}={c[g]}" for g in GRID_V8), k) + (" qualifies" if ok else "") + + " too warm by month " + ", ".join(f"{m['discomfort_hot_proportion']:.4f}" for m in got)) + pool_rows = [r for r in rows if r["qualifies"]] + print(f"{len(pool_rows)} of {len(rows)} candidates qualify") + best = None + if pool_rows: + best = min(pool_rows, key=lambda r: (r["score"], json.dumps(r["params"], sort_keys=True))) + print(line_v8("best", best["kpis"])) + shipped = asdict(StrategyParamsV8()) + 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'}") + else: + print("none qualifies: no extra cooling") + if args.out: + args.out.write_text(json.dumps({"baseline": base, "v7": ref, "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_deviations.py b/tests/test_deviations.py new file mode 100644 index 0000000..388ab2f --- /dev/null +++ b/tests/test_deviations.py @@ -0,0 +1,201 @@ +"""scripts/analyze_deviations.py (0.10.0): the deviation classes, when they happen, and the attribution +replays that put one class at a time back to the strategy.""" + +import json +import sys +from pathlib import Path + +import pytest +from conftest import BUILDINGS, needs_citylearn +from test_prompt_v8 import _obs + +sys.path.insert(0, str(Path(__file__).parents[1] / "scripts")) + +import analyze_deviations as ad # noqa: E402 + +from hyperbolic.envelope import Envelope, EnvelopeConfig # noqa: E402 +from hyperbolic.model import Budget, CallResult, ScriptedSupervisor, observation_from_request, strategy_plan_v7 # noqa: E402 +from hyperbolic.prompt import build_request # noqa: E402 +from hyperbolic.runner import AgentController, RunWriter, run_session # noqa: E402 + + +def _v7(n=40): + *_, obs = _obs(version=7, n=n) + return obs + + +def _cold(obs, b="Building_1", state="off"): + """Building b occupied and 1.2 C below its setpoint, where the strategy trims.""" + s = obs["buildings"][b] + s.update({"occupied": True, "indoor_vs_setpoint_c": -1.2, "cooling_range": [0.15, 0.45], + "trim": {"depth": 0.0, "state": state, "end_trim_ok": False}}) + s["baseline_action"]["cooling"] = 0.3 + return obs + + +def _reply(plan, changes): + """The strategy's reply with {(building, device): value} changes.""" + out = json.loads(json.dumps(plan)) + for (b, d), v in changes.items(): + out[b][d] = v + return out + + +def test_the_strategys_own_reply_has_no_deviation(): + obs = _cold(_v7()) + assert ad.classify(obs, strategy_plan_v7(obs)) == [] + + +def test_cooling_classes(): + obs = _cold(_v7()) + plan = strategy_plan_v7(obs) + trim = plan["Building_1"]["cooling"] + assert trim is not None and trim < 0.3 - ad.COOLING_TOL + assert ad.classify(obs, _reply(plan, {("Building_1", "cooling"): None})) == [("Building_1", "trim_not_started")] + for cls, value in (("trim_shallower", round(trim + 0.02, 3)), ("trim_deeper", round(trim - 0.02, 3))): + assert ad.classify(obs, _reply(plan, {("Building_1", "cooling"): value})) == [("Building_1", cls)] + # The same missed trim while the envelope already holds one is a shallower trim, not a missed start. + held = _cold(_v7(), state="hold") + assert ad.classify(held, _reply(strategy_plan_v7(held), {("Building_1", "cooling"): 0.3})) == [ + ("Building_1", "trim_shallower")] + # Where the strategy keeps the baseline: a trim it does not want, and cooling above it. + warm = _v7() + plan = strategy_plan_v7(warm) + assert plan["Building_2"]["cooling"] is None + assert ad.classify(warm, _reply(plan, {("Building_2", "cooling"): 0.25})) == [("Building_2", "trim_unwanted")] + assert ad.classify(warm, _reply(plan, {("Building_2", "cooling"): 0.35})) == [("Building_2", "extra_cooling")] + assert ad.classify(warm, _reply(plan, {("Building_2", "end_trim"): "warm"})) == [("Building_2", "trim_ended_early")] + + +@pytest.mark.parametrize("mode, setup, value, cls", [ + ("top", {"top_price_now": True}, 0.0, "top_discharge_short"), + ("top", {"top_price_now": True}, -0.8, "top_discharge_over"), + ("shave", {"shave": True}, 0.0, "shave_skipped"), + ("idle", {}, 0.2, "charge_off_plan"), + ("idle", {}, -0.2, "discharge_off_plan"), +]) +def test_battery_classes(mode, setup, value, cls): + obs = _v7() + obs["price_plan"]["top_price_now"] = setup.get("top_price_now", False) + obs["peak"]["district_load_now_kwh"] = 100.0 if setup.get("shave") else 0.0 + obs["peak"]["forecast_today_kwh"] = 10.0 + for b in BUILDINGS: + obs["buildings"][b]["load_now_kwh"] = 1.2 + obs["buildings"][b]["battery"]["soc"] = 0.6 + obs["buildings"][b]["battery_range"] = [-0.8, 0.3] + plan = strategy_plan_v7(obs) + assert ad.battery_mode(obs, "Building_1", plan["Building_1"]["battery"]) == mode + assert ad.classify(obs, _reply(plan, {("Building_1", "battery"): value})) == [("Building_1", cls)] + + +def test_charge_classes_and_the_tank(): + obs = _v7() + obs["price_plan"]["top_price_now"] = False + obs["peak"]["district_load_now_kwh"] = 0.0 + obs["buildings"]["Building_1"]["load_now_kwh"] = 1.2 + plan = strategy_plan_v7(obs) + plan["Building_1"]["battery"] = 0.15 # as if the strategy were charging from the grid this hour + assert ad.battery_mode(obs, "Building_1", 0.15) == "charge" + assert ad.classify(obs, _reply(plan, {("Building_1", "battery"): 0.0}), plan) == [("Building_1", "charge_skipped")] + assert ad.classify(obs, _reply(plan, {("Building_1", "battery"): 0.3}), plan) == [("Building_1", "charge_over")] + assert ad.classify(obs, _reply(strategy_plan_v7(obs), {("Building_3", "dhw"): 0.2})) == [("Building_3", "dhw_used")] + # Inside the tolerance is the strategy's value. + near = strategy_plan_v7(obs) + assert ad.classify(obs, _reply(near, {("Building_3", "battery"): near["Building_3"]["battery"] + 0.004})) == [] + + +def test_context_bins_say_when_it_happened(): + obs = _cold(_v7()) + obs["outdoor_c"] = 31.0 + obs["buildings"]["Building_1"]["battery"]["soc"] = 0.95 + c = ad.context(obs, "Building_1") + assert c == {"price": c["price"], "occupied": "occupied", "outdoor_c": ">=30", "soc": ">=0.9", + "room": "-1.5 to -1", "building": "Building_1"} + assert c["price"] in ("flat", "top", "low", "mid") + + +def test_summary_counts_hours_and_splits(): + rows = [{"step": s, "building": b, "class": "trim_not_started", "device": "cooling", "model": 0.3, + "strategy": 0.25, "price": "low", "occupied": "occupied", "outdoor_c": ">=30", "soc": "<0.3", + "room": "<-1.5"} for s, b in ((1, "Building_1"), (1, "Building_3"), (2, "Building_1"))] + got = ad.summary(rows)["trim_not_started"] + assert got["count"] == 3 and got["hours"] == 2 and got["mean_gap"] == 0.05 + assert got["building"] == {"Building_1": 2, "Building_3": 1} and got["price"] == {"low": 3} + + +def test_shares_measure_each_replay_against_the_gap(): + k = lambda cost, disc: {key: 0.5 for key in ad.KPI_KEYS} | {"cost_total": cost, "discomfort_proportion": disc} # noqa: E731 + results = {"control": {"kpis": k(0.92, 0.09)}, "strategy": {"kpis": k(0.90, 0.04)}, + "a": {"kpis": k(0.91, 0.04)}, "v8 cooling": {"kpis": k(0.0, 0.0)}} + sh = ad.shares(results) + assert set(sh) == {"a"} + assert sh["a"]["cost_total"] == pytest.approx(0.5) and sh["a"]["discomfort_proportion"] == pytest.approx(1.0) + assert sh["a"]["ramping_average"] is None # no gap to explain + + +class _Recorded: + """Writes a calls.jsonl with one reply per hour.""" + + @staticmethod + def write(path: Path, replies: dict[int, dict]) -> None: + with path.open("w", encoding="utf-8") as f: + for step, reply in replies.items(): + f.write(json.dumps({"step": step, "request_sha256": "x", "request": {}, + "reply": {"text": json.dumps(reply)}, "cost_usd": 0.0}) + "\n") + + +def test_replacing_supervisor_swaps_only_the_listed_points(tmp_path): + *_, env, obs = _obs(version=7) + _cold(obs) + req = build_request(obs, env.config, BUILDINGS, "haiku", prompt_version=7) + plan = strategy_plan_v7(observation_from_request(req)) + mine = _reply(plan, {("Building_1", "cooling"): None, ("Building_2", "battery"): 0.0, + ("Building_1", "end_trim"): "because"}) + calls = tmp_path / "calls.jsonl" + _Recorded.write(calls, {0: mine, 1: mine}) + sup = ad.ReplacingSupervisor(calls, "haiku", {(0, "Building_1", "cooling")}) + got = json.loads(sup.call(0, req).text) + assert got["Building_1"]["cooling"] == plan["Building_1"]["cooling"] and got["Building_1"]["end_trim"] is None + assert got["Building_2"]["battery"] == 0.0 # not listed, left as recorded + assert json.loads(sup.call(1, req).text) == mine # another hour, untouched + v8 = ad.ReplacingSupervisor(calls, "haiku", {(0, "Building_1", "cooling")}, plan=8) + assert v8.plan is ad.PLANS[8] + assert isinstance(sup.call(5, req), CallResult) and sup.call(5, req).text is None + + +def _skip_trim_starts(obs: dict) -> dict: + """The version 7 strategy, except that it never starts a cooling trim.""" + reply = strategy_plan_v7(obs) + for b, s in obs["buildings"].items(): + if s["trim"]["state"] == "off": + reply[b]["cooling"] = None + return reply + + +class _NoStarts(ScriptedSupervisor): + def call(self, step: int, request: dict) -> CallResult: + return CallResult(json.dumps(_skip_trim_starts(observation_from_request(request))), stop_reason="end_turn", + model="scripted") + + +@needs_citylearn +def test_deviations_and_attribution_on_a_recorded_citylearn_run(tmp_path): + """A 47 hour version 7 run that never starts a trim: its departures are missed trim starts, the + control replay reproduces it exactly, and putting that class back changes the month.""" + from hyperbolic.sim import CityLearnSimulator + + run = tmp_path / "nostarts" + ctl = AgentController(_NoStarts(), Envelope(EnvelopeConfig()), Budget(2.0), prompt_version=7) + run_session(CityLearnSimulator(control=True), ctl, RunWriter(run), hours=47, log=lambda *_: None, + sim_info={"kind": "citylearn", "control": True}) + rows = ad.deviations(run) + assert rows and {r["class"] for r in rows} == {"trim_not_started"} + published = json.loads((run / "result.json").read_text(encoding="utf-8"))["district_kpis"] + control = ad._replay(("control", str(run), [], 7)) + assert all(control["kpis"][k] == published[k] for k in ad.KPI_KEYS) + points = sorted({(r["step"], r["building"], r["device"]) for r in rows}) + fixed = ad._replay(("trim_not_started", str(run), points, 7)) + strategy = ad._replay(("strategy", str(run), [], 7)) + assert fixed["kpis"] != control["kpis"] + assert abs(fixed["kpis"]["discomfort_proportion"] - strategy["kpis"]["discomfort_proportion"]) <= abs( + control["kpis"]["discomfort_proportion"] - strategy["kpis"]["discomfort_proportion"]) diff --git a/tests/test_evaluation.py b/tests/test_evaluation.py index 44b60f0..4c2d664 100644 --- a/tests/test_evaluation.py +++ b/tests/test_evaluation.py @@ -17,7 +17,7 @@ import tune_strategy # noqa: E402 from hyperbolic.envelope import Envelope, EnvelopeConfig # noqa: E402 -from hyperbolic.model import Budget, ScriptedSupervisor, StrategyParamsV7 # noqa: E402 +from hyperbolic.model import Budget, ScriptedSupervisor, StrategyParamsV7, StrategyParamsV8 # noqa: E402 from hyperbolic.runner import AgentController, RunWriter, run_session # noqa: E402 @@ -78,3 +78,18 @@ def test_v7_grid_holds_the_shipped_battery_plan_once(): 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 + + +def test_v8_grid_holds_the_shipped_numbers_once_and_the_rule_puts_comfort_first(): + grid = tune_strategy.grid_v8() + shipped = dataclasses.asdict(StrategyParamsV8()) + assert grid.count(shipped) == 1 and len(grid) == 36 == len({json.dumps(c, sort_keys=True) for c in grid}) + base = [{"discomfort_hot_proportion": 0.05}, {"discomfort_hot_proportion": 0.003}] + ref = {"discomfort_cold_proportion": 0.011} + ok = {"discomfort_cold_proportion": 0.0115, "ramping_average": 0.99, "daily_peak_average": 0.89, + "all_time_peak_average": 0.85, "cost_total": 0.95} + months = [{"discomfort_hot_proportion": 0.01}, {"discomfort_hot_proportion": 0.003}] + assert tune_strategy.qualifies_v8(ok, months, base, ref) + assert not tune_strategy.qualifies_v8(ok, [months[0], {"discomfort_hot_proportion": 0.004}], base, ref) + assert not tune_strategy.qualifies_v8({**ok, "discomfort_cold_proportion": 0.0125}, months, base, ref) + assert not tune_strategy.qualifies_v8({**ok, "ramping_average": 1.01}, months, base, ref) diff --git a/tests/test_months.py b/tests/test_months.py new file mode 100644 index 0000000..77fcac0 --- /dev/null +++ b/tests/test_months.py @@ -0,0 +1,118 @@ +"""The month set and its compare report (0.10.0): the phase 2 month plus every local tuning month, each +its own episode, and runs recorded on any of them.""" + +import csv +import json + +import pytest +from conftest import needs_citylearn +from fakes import FakeDistrict + +from hyperbolic import district as dc +from hyperbolic import months as mo +from hyperbolic.cli import build_parser, main +from hyperbolic.envelope import Envelope, EnvelopeConfig +from hyperbolic.model import Budget, ScriptedSupervisor +from hyperbolic.runner import AgentController, RunWriter, new_run_dir, run_session + + +def test_the_month_set_is_phase_2_and_the_three_tuning_months(): + ms = mo.months() + assert [m.key for m in ms] == ["phase2", "tuning-06", "tuning-07", "tuning-08"] + assert ms[0].dataset == dc.DATASET and ms[0].rows is None + assert [mo.hours(m) for m in ms] == [719, 719, 743, 743] + assert ms[2].dataset == "citylearn_challenge_2023_phase_2_online_evaluation_1_month_07" + with pytest.raises(ValueError): + mo.month("tuning-09") + + +def test_a_tuning_month_is_written_as_its_own_dataset(tmp_path): + m = mo.month("tuning-07") + schema = mo.month_schema(m, tmp_path) + data = json.loads(schema.read_text(encoding="utf-8")) + assert data["simulation_start_time_step"] == 0 and data["simulation_end_time_step"] == 743 + with (schema.parent / "Building_1.csv").open(encoding="utf-8") as f: + rows = list(csv.DictReader(f)) + assert len(rows) == 744 and {r["month"] for r in rows} == {"7"} + assert sorted(p.name for p in schema.parent.glob("*.pth")) == ["Building_1.pth", "Building_2.pth", "Building_3.pth"] + assert mo.month_schema(mo.month("phase2"), tmp_path) == dc.schema_path() + + +def _row(ctl, month, cost, hot=0.01): + return {"controller": ctl, "month": month, "hours": 719, "clamped": 2, + "kpis": {k: 1.0 for k in mo.REPORT_KPIS} | {"cost_total": cost, "discomfort_hot_proportion": hot}} + + +def test_report_means_every_month_and_leaves_a_partial_controller_without_one(): + rows = [_row("a", k, c) for k, c in (("phase2", 0.9), ("tuning-06", 0.8), ("tuning-07", 0.7), ("tuning-08", 0.6))] + rows.append(_row("live", "phase2", 0.95)) + rep = mo.report(rows) + assert rep["a"]["mean"]["kpis"]["cost_total"] == pytest.approx(0.75) and rep["a"]["mean"]["months"] == 4 + assert "mean" not in rep["live"] + text = mo.table(rep) + assert text.splitlines()[0].split()[-5:] == ["phase2", "tuning-06", "tuning-07", "tuning-08", "mean"] + assert " a " in text and "0.7500" in text and "0.9500" in text and chr(0x2014) not in text + + +def test_report_shows_only_the_months_that_ran(): + rep = mo.report([_row("a", "phase2", 0.9), _row("a", "tuning-07", 0.7)]) + assert mo.table(rep).splitlines()[0].split()[-3:] == ["phase2", "tuning-07", "mean"] + + +def test_run_session_records_the_month(tmp_path): + run = new_run_dir(tmp_path, "agent", "fake", "some_month") + assert run.name.startswith("some_month_agent_fake_") + ctl = AgentController(ScriptedSupervisor(), Envelope(EnvelopeConfig()), Budget(2.0), prompt_version=8) + run_session(FakeDistrict(), ctl, RunWriter(run), hours=24, log=lambda *_: None, dataset="some_month") + m = json.loads((run / "manifest.json").read_text(encoding="utf-8")) + assert m["dataset"] == "some_month" and m["episode_hours"] == dc.EPISODE_HOURS # the fake has no month length + + +def test_recorded_run_is_placed_at_its_month_and_marked_partial(tmp_path): + run = tmp_path / "r" + run.mkdir() + (run / "manifest.json").write_text(json.dumps({"dataset": mo.month("tuning-06").dataset, "mode": "agent", + "supervisor": {"kind": "live", "model_key": "haiku", + "prompt_version": 8}}), encoding="utf-8") + (run / "result.json").write_text(json.dumps({"steps": 24, "complete": False, "clamped_steps": 0, + "fallback_steps": 0, "cost_usd": 0.01, + "district_kpis": {"cost_total": 0.97}}), encoding="utf-8") + got = mo.recorded_run(run) + assert got["month"] == "tuning-06" and got["controller"] == "haiku v8 (24 h)" and got["kpis"]["cost_total"] == 0.97 + (run / "manifest.json").write_text(json.dumps({"dataset": "elsewhere"}), encoding="utf-8") + with pytest.raises(ValueError): + mo.recorded_run(run) + + +def test_cli_takes_a_month_for_baseline_and_run_and_has_the_months_report(): + p = build_parser() + assert p.parse_args(["run", "--month", "tuning-08"]).month == "tuning-08" + assert p.parse_args(["baseline"]).month == "phase2" + a = p.parse_args(["months", "--controllers", "rule", "v8", "--months", "phase2"]) + assert a.controllers == ["rule", "v8"] and a.months == ["phase2"] + assert p.parse_args(["months"]).controllers == ["baseline", "rule", "v7", "v8"] + with pytest.raises(SystemExit): + p.parse_args(["run", "--month", "march"]) + + +@needs_citylearn +def test_scripted_run_on_a_tuning_month_records_its_month_and_replays(tmp_path): + from hyperbolic.runner import replay_run + + assert main(["run", "--scripted", "--prompt-version", "8", "--month", "tuning-07", "--hours", "24", + "--runs-dir", str(tmp_path)]) == 0 + (run,) = tmp_path.iterdir() + m = json.loads((run / "manifest.json").read_text(encoding="utf-8")) + assert m["dataset"] == mo.month("tuning-07").dataset and m["episode_hours"] == 743 + assert m["simulator"]["month"] == "tuning-07" and m["supervisor"]["prompt_version"] == 8 + assert run.name.startswith(mo.month("tuning-07").dataset) + assert replay_run(run).deterministic + + +@needs_citylearn +def test_run_month_reproduces_the_rule_based_tuning_month(tmp_path): + """The frozen 0.4.0 rule-based controller on tuning June, as scripts/tune_strategy.py has always run it.""" + got = mo.run_month(("rule", "tuning-06", str(tmp_path))) + assert got["hours"] == 719 and got["controller"] == "rule" and got["month"] == "tuning-06" + assert got["kpis"]["cost_total"] == pytest.approx(0.9506, abs=5e-5) + assert got["kpis"]["discomfort_proportion"] == pytest.approx(0.1128, abs=5e-5) diff --git a/tests/test_prompt.py b/tests/test_prompt.py index 060bdac..a5a8839 100644 --- a/tests/test_prompt.py +++ b/tests/test_prompt.py @@ -31,18 +31,19 @@ def fake_states(n): return out -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 +def test_default_prompt_is_version_8_and_the_rule_based_controller_stays_on_3(): + assert PROMPT_VERSION == 8 + assert AgentController(ScriptedSupervisor(), Envelope(), Budget(1.0)).describe()["prompt_version"] == 8 # 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) == (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(False) == (8, EnvelopeConfig()) + # Versions before 6 keep the 0.7.0 rules; versions 6 to 8 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 controller_settings(True, 8) == (8, EnvelopeConfig()) == controller_settings(False, 8) 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 @@ -124,12 +125,12 @@ 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, 7): + for version in (1, 2, 3, 4, 5, 6, 7, 8): 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(8, st, ctx, None, Lookahead()) + observe(9, st, ctx, None, Lookahead()) @pytest.mark.parametrize("version", [3, 4, 5, 6, 7]) diff --git a/tests/test_prompt_v8.py b/tests/test_prompt_v8.py new file mode 100644 index 0000000..c179c26 --- /dev/null +++ b/tests/test_prompt_v8.py @@ -0,0 +1,225 @@ +"""Prompt version 8 (0.10.0): the strategy's whole action per building, the warm-room cooling, version 7 +still selectable, and the 0.9.0 envelope and live month unchanged.""" + +import json +from pathlib import Path + +import pytest +from conftest import BUILDINGS, needs_citylearn +from fakes import FakeDistrict + +from hyperbolic.envelope import Envelope, EnvelopeConfig, parse_reply +from hyperbolic.model import ( + NIGHT_END_TRIM, + WARM_NOTE, + Budget, + ScriptedSupervisor, + StrategyParamsV8, + night_now, + strategy_plan_v7, + strategy_plan_v8, +) +from hyperbolic.prompt import PROMPT_VERSION, PROMPT_VERSIONS, Lookahead, build_request, observe, system_prompt_v7, system_prompt_v8 +from hyperbolic.runner import AgentController, RunWriter, context_from_state, load_jsonl, replay_run, run_session +from hyperbolic.signals import PeakTracker, PriceOutlook + +LIVE_090 = (Path(__file__).parents[1] / "runs" / "live" + / "citylearn_challenge_2023_phase_2_local_evaluation_agent_citylearn_20261023T135430Z") + + +def _obs(version=8, n=40): + """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(EnvelopeConfig()) + return prev, ctx, look, env, observe(version, prev, ctx, None, look, env) + + +def _warm(obs, b="Building_1", gap=2.0, **over): + """Make building b an occupied room gap C above its setpoint, with no trim held.""" + s = obs["buildings"][b] + s.update({"occupied": True, "indoor_vs_setpoint_c": gap, "power_outage": False, "cooling_range": [0.3, 0.45], + "trim": {"depth": 0.0, "state": "end", "end_trim_ok": False, "why": "at or above setpoint"}}) + s["baseline_action"]["cooling"] = 0.3 + s.update(over) + return obs + + +# -- what each building sees ---------------------------------------------------------- + + +def test_v8_is_the_default_and_v7_stays_selectable(): + assert PROMPT_VERSION == 8 and PROMPT_VERSIONS[-2:] == (7, 8) + st, ctx, look, env, v8 = _obs() + v7 = observe(7, st, ctx, None, look, env) + assert "strategy_battery" in v7["buildings"]["Building_1"] and "signal_outlook" in v7 + + +def test_v8_observation_carries_the_strategys_whole_action_per_building(): + st, ctx, look, env, v8 = _obs() + v7 = observe(7, st, ctx, None, look, env) + assert set(v8) == set(v7) - {"strategy_battery_reason", "signal_outlook"} | {"strategy_reason"} + plan = strategy_plan_v8(v8) + assert v8["strategy_reason"] == plan["reason"] + for b in BUILDINGS: + got = v8["buildings"][b] + assert set(got) == set(v7["buildings"][b]) - {"strategy_battery"} | {"strategy"} + assert got["strategy"] == {d: plan[b][d] for d in ("cooling", "dhw", "battery")} + # The battery is version 7's strategy_battery, and every value is inside the envelope's ranges. + assert got["strategy"]["battery"] == v7["buildings"][b]["strategy_battery"] + lo, hi = got["battery_range"] + assert lo <= got["strategy"]["battery"] <= hi and got["strategy"]["dhw"] == 0.0 + c = got["strategy"]["cooling"] + assert c is None or got["cooling_range"][0] <= c <= got["cooling_range"][1] + + +def test_v8_system_prompt_says_send_the_strategy_and_states_the_warm_room_rule(): + cfg = EnvelopeConfig() + text = system_prompt_v8(cfg, BUILDINGS) + p = StrategyParamsV8() + for phrase in ("strategy in each building", "Send it as given", "That starts a trim when state is off", + "never null", "running warm", f"from 0 at {p.warm_margin_c:g} C", f"to {p.warm_boost:g} at " + f"{p.warm_margin_c + p.warm_ramp_c:g} C or more above", "too cool or too warm", + "Leave the hot water tank at 0", "end_trim_ok"): + assert phrase in text, phrase + # The version 7 line the 0.9.0 live month read as "send null when the trim is off" is gone. + assert "use it only when trim state is off or end" in system_prompt_v7(cfg, BUILDINGS) + assert "use it only when trim state is off or end" not in text + assert chr(0x2014) not in text and "strategy_battery" not in text and "signal_outlook" not in text + assert "local evaluation" not in text # the same prompt serves every month of the month set + + +def test_v8_request_is_smaller_than_v7_with_the_same_reply_schema(): + st, ctx, look, env, v8 = _obs() + v7 = observe(7, st, ctx, None, look, env) + r7 = build_request(v7, env.config, BUILDINGS, "haiku", prompt_version=7) + r8 = build_request(v8, env.config, BUILDINGS, "haiku", prompt_version=8) + assert r8["output_config"] == r7["output_config"] + assert len(r8["system"]) < 0.8 * len(r7["system"]) + assert len(json.dumps(r8)) < 0.92 * len(json.dumps(r7)) + + +# -- the version 8 strategy -------------------------------------------------------------- + + +def test_warm_room_gets_extra_cooling_ramping_in_above_the_margin(): + p = StrategyParamsV8() + *_, obs = _obs() + for gap, boost in ((p.warm_margin_c - 0.1, 0.0), (p.warm_margin_c + p.warm_ramp_c / 2, p.warm_boost / 2), + (p.warm_margin_c + p.warm_ramp_c + 0.5, p.warm_boost)): + reply = strategy_plan_v8(_warm(json.loads(json.dumps(obs)), gap=gap)) + got = reply["Building_1"]["cooling"] + if boost == 0.0: + assert got is None + else: + assert got == pytest.approx(0.3 + boost - 0.001, abs=0.0015) and WARM_NOTE in reply["reason"] + + +@pytest.mark.parametrize("over", [{"power_outage": True}, {"occupied": False}, {"cooling_range": None}, + {"trim": {"depth": 0.05, "state": "hold", "end_trim_ok": True, "min_depth": 0.05}}, + {"cooling_range": [0.3, 0.3]}]) +def test_no_extra_cooling_in_an_outage_an_empty_room_a_held_trim_or_outside_the_range(over): + *_, obs = _obs() + reply = strategy_plan_v8(_warm(obs, gap=3.0, **over)) + assert reply["Building_1"]["cooling"] != pytest.approx(0.349, abs=0.002) + if "trim" not in over: + assert reply["Building_1"]["cooling"] is None + + +def test_without_a_warm_room_v8_is_the_version_7_strategy(): + for n in (20, 30, 40, 45): + *_, obs = _obs(n=n) + for b in BUILDINGS: + obs["buildings"][b]["indoor_vs_setpoint_c"] = min(obs["buildings"][b]["indoor_vs_setpoint_c"], 0.5) + assert strategy_plan_v8(obs) == strategy_plan_v7(obs) + + +def test_the_night_rule_is_off_and_when_on_ends_a_held_trim(): + assert StrategyParamsV8().night_from_hour == 0 and not night_now(23, StrategyParamsV8()) + night = StrategyParamsV8(night_from_hour=22, night_until_hour=6) + assert night_now(23, night) and night_now(2, night) and not night_now(6, night) and not night_now(21, night) + *_, obs = _obs() + obs["hour"] = 23 + obs["buildings"]["Building_1"]["trim"] = {"depth": 0.05, "state": "hold", "end_trim_ok": True, "min_depth": 0.05} + reply = strategy_plan_v8(obs, night) + assert reply["Building_1"]["cooling"] is None and reply["Building_1"]["end_trim"] == NIGHT_END_TRIM + + +def test_scripted_v8_reply_is_the_strategy_the_observation_shows(): + st, ctx, look, env, obs = _obs() + req = build_request(obs, env.config, BUILDINGS, "haiku", prompt_version=8) + p, err = parse_reply(ScriptedSupervisor().call(5, req).text, BUILDINGS, end_trim=True) + assert err is None and p["end_trim"] == {} + for b in BUILDINGS: + assert p["buildings"][b] == obs["buildings"][b]["strategy"] + + +def test_v8_run_on_the_fake_district_is_clean_and_replays(tmp_path): + run = tmp_path / "v8" + ctl = AgentController(ScriptedSupervisor(), Envelope(EnvelopeConfig()), Budget(2.0), prompt_version=8) + 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"] == 8 + rep = replay_run(run) + assert rep.deterministic and rep.identical_steps == 48 + + +@needs_citylearn +def test_v8_dry_run_and_replay(tmp_path): + """24 hours of the scripted version 8 strategy on CityLearn, through the 0.9.0 rules, and replay.""" + from hyperbolic.runner import controller_settings + from hyperbolic.sim import CityLearnSimulator + + version, cfg = controller_settings(rule_based=True, prompt_version=8) + assert cfg == EnvelopeConfig() + ctl = AgentController(ScriptedSupervisor(), Envelope(cfg), Budget(2.0), prompt_version=version) + run_dir = tmp_path / "v8" + 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 '"strategy":' in calls[5]["request"]["messages"][0]["content"] + rep = replay_run(run_dir) + assert rep.deterministic and rep.api_calls == 0 and rep.identical_steps == 24 + + +# -- the envelope and the 0.9.0 live month are unchanged ------------------------------------ + + +@pytest.mark.skipif(not LIVE_090.exists(), reason="the 0.9.0 live run is kept locally in runs/live") +def test_the_0_9_0_live_month_still_replays_hour_for_hour(): + m = json.loads((LIVE_090 / "manifest.json").read_text(encoding="utf-8")) + assert EnvelopeConfig.from_manifest(m["envelope"]) == EnvelopeConfig() + assert m["supervisor"]["prompt_version"] == 7 + rep = replay_run(LIVE_090) + assert rep.deterministic and rep.identical_steps == 719 and rep.api_calls == 0 and rep.clamped_steps == 27 + + +@needs_citylearn +def test_v8_strategy_full_month_fixes_the_hot_side_and_keeps_outage_energy(): + """The scripted version 8 month: fewer too-warm hours than the baseline (0.0176) where version 7 + had more (0.0181), unserved energy in outages at the baseline's, clamps only where no reply can + avoid them.""" + from hyperbolic import district as dc + from hyperbolic.runner import NullWriter + from hyperbolic.sim import CityLearnSimulator + + ctl = AgentController(ScriptedSupervisor(), Envelope(EnvelopeConfig()), Budget(2.0), prompt_version=8) + 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["discomfort_hot_proportion"] < 0.0176 and k["discomfort_proportion"] < 0.0430 + assert abs(k["power_outage_normalized_unserved_energy_total"] - 0.6844) < 5e-5 + assert k["cost_total"] < 0.905 and k["ramping_average"] < 1.0 + 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 From 61a46009bbe08c00c713728999c7c5337bdbf3f8 Mon Sep 17 00:00:00 2001 From: AddisonTech Date: Fri, 23 Oct 2026 11:49:13 -0400 Subject: [PATCH 2/4] Update docs and version for 0.10.0 --- CHANGELOG.md | 64 ++++++++++++++++++++++++++ README.md | 101 +++++++++++++++++++++++++++++++++++++---- docs/assets/version.js | 2 +- hyperbolic/__init__.py | 2 +- pyproject.toml | 2 +- 5 files changed, 160 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 60d521c..6a6267f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,69 @@ # Changelog +## 0.10.0 (2026-10-23) + +Goal: find and close the gap between the 0.9.0 live agent and its own strategy, fix the hot-side comfort miss, and score everything on more than one month. The envelope does not change. No live model calls were made for this release. + +Where the 0.9.0 live month (`runs/live/...20261023T135430Z`, cost 0.9245, discomfort 0.0940) left the scripted version 7 strategy (0.9016, 0.0430), from `scripts/analyze_deviations.py`: every hour, building and device against what `strategy_plan_v7` sends for the same observation, then the month's own replies replayed through the unchanged envelope with one class at a time put back to the strategy (the control replay reproduces the published KPIs exactly; shares are of the control to strategy gap): + +| Class | Building-hours (hours) | Replay: cost, emissions, discomfort, ramping | Share of cost, discomfort gap | +|---|---|---|---| +| No trim in an occupied, overcooled room, trim state off | 584 (418) | 0.8920, 0.9337, 0.0417, 1.0051 | 1.42, 1.03 | +| Deeper trim than the strategy's | 100 (83) | 0.9273, 0.9676, 0.0936, 0.9805 | -0.12, 0.01 | +| Trim where the strategy has none | 19 (18) | 0.9245, 0.9647, 0.0903, 0.9879 | 0.00, 0.07 | +| Shallower trim | 11 (11) | 0.9243, 0.9646, 0.0940, 0.9876 | 0.01, 0.00 | +| Extra cooling 5 (5), trim ended early 3 (3) | 8 | no change to four decimals | 0.00, 0.00 | +| Battery: top-price over-discharge 3 (1), charged off plan 3 (2), skipped charge 1 (1) | 7 | no change to four decimals on cost, emissions, discomfort | 0.00, 0.00 | +| All classes at once | 729 | 0.8977, 0.9393, 0.0435, 0.9977 | 1.17, 0.99 | + +- **The missed trim starts are the gap.** All occupied; Building_1 353, Building_3 201, Building_2 30; the room 0.5 to 1 C below its setpoint in 188, 1 to 1.5 C in 147, further in 249; low price 181, mid 166, flat 144, top 93; outdoor 30 C or more in 272; battery state of charge below 0.3 in 274. The agent's reasons ("overcooled but trim off so baseline cooling kept") show it read the version 7 line that `null` is for "only when trim state is off or end" as "send null when the trim is off". Battery and tank: `strategy_battery` was sent in 2,150 of 2,157 building-hours and the tank was never used. +- **The agent's own deeper trims helped cost** (putting them back raises cost to 0.9273) and hurt ramping (0.9805 without them). + +The hot-side miss (0.0181 against the baseline's 0.0176) is one building-hour: Building_1 at hour 404 (day 17, 9 pm), 28.77 C against a band top of 28.67 C (baseline 28.54 C); Building_2 and Building_3 match the baseline exactly. Building_1 trimmed cooling for most of day 16's afternoon and evening under a 27.2 C setpoint (at the 0.15 cap from 2 pm to 8 pm, deepened by the agent where the strategy keeps about 0.10), ended the evening at 27.6 C against 25.1 C and stayed about 1 C warmer overnight, and a 15 hour outage on day 17 then carried it over the band. The scripted version 7 strategy has the same miss at the same hour, and its 6 extra warm hours on the tuning months all come between 6 and 11 am in a room trimmed within the day and a half before. A trim brings an overcooled room up to its setpoint, without the baseline's cushion of about 2 C. + +Changes: + +- **Prompt version 8 (default).** Each building shows `strategy` (`cooling`, `dhw`, `battery` from `strategy_plan_v8`, inside the envelope's ranges) with `strategy_reason`, in place of `strategy_battery` and `strategy_battery_reason`; the agent is told to send it as given. The prompt says a trim starts when an overcooled room's state is off and that a held trim is a number, never `null`; the version 7 line about `null` and the trim state is gone. `signal_outlook` is dropped, and the prompt names no single dataset. Version 7 stays selectable; the 0.9.0 and 0.8.0 live months, the rule-based run and the committed baseline replay 719 of 719 hours. +- **Warm-room cooling** in the strategy (`StrategyParamsV8`): an occupied room with no trim held gets from 0 at 1.5 C above its setpoint to 0.05 above the baseline action at 2.5 C or more, within `cooling_range`, never in an outage. Searched on the tuning months (`scripts/tune_strategy.py --version 8`, 36 settings: margin 0.5, 1 or 1.5 C, boost 0.05, 0.1 or 0.15, at once or ramped over 1 C, and a no-trim night from 18, 20 or 22 h to 5 or 7 h, alone and together). A first rule (too warm at or below the baseline on every tuning month, and cost, emissions, too cool, ramping and both peaks within 0.001 of version 7) qualified none: the cheapest full fix costs about 0.002 of cost. The shipped rule puts comfort first, as the prompt's goals do: too warm at or below the baseline on every tuning month, too cool within 0.001 of version 7, ramping and both peaks at or below the baseline, then the lowest cost plus emissions. 5 qualified. Tuning-set means, shipped against version 7: cost 0.9105 against 0.9086, emissions 0.9627 against 0.9607, too cool 0.0112 against 0.0111, too warm 0.0040 against 0.0201 (baseline 0.0191), ramping 0.9836 against 0.9823. The night rule cleared no warm hour and raised cost by 0.007 to 0.024 (`night_from_hour` stays 0). The outage exception was added after the phase 2 month showed extra cooling in outage hours raising unserved energy (0.6942 against 0.6844); the tuning months have no outages, so it changes nothing there. +- **The month set** (`hyperbolic/months.py`): the phase 2 month and every month of the tuning set kept locally (June 719 hours, July and August 743), each its own episode. `hyperbolic months` runs the baseline, the frozen 0.4.0 rule-based controller and the scripted v7 and v8 strategies on every month in parallel and prints each KPI per month and the mean (`--run` adds a finished run at its month; a mean is shown only over every month). `hyperbolic run --month` and `hyperbolic baseline --month` run any month; the manifest records its dataset, its month and its length, and the run folder is named after it. `scripts/tune_strategy.py` writes its months through the same code. +- **Tools.** `scripts/analyze_deviations.py`: the deviation classes with when they happened, the one-class-at-a-time replays, and estimates with the version 8 strategy filled in (`ReplacingSupervisor`). These are evaluations, never recorded runs. +- `hyperbolic serve`'s first cost estimate uses the version 8 request size (4,560 input and 260 output tokens). +- Tests cover the deviation classes, the attribution replays on a recorded CityLearn run, the version 8 observation, prompt, request size, warm-room cooling and scripted reply, version 8 runs that replay identically, a full version 8 CityLearn month, the version 8 grid and rule, the month set, `run --month`, the compare report, and the 0.9.0 live month replaying 719 of 719 hours when it is on disk. + +Every month, offline (scripted columns are not model results): + +| KPI | | phase 2 | June | July | August | mean | +|---|---|---|---|---|---|---| +| cost_total | rule 0.4.0 | 0.9611 | 0.9506 | 0.9676 | 0.9682 | 0.9619 | +| | v7 scripted | 0.9016 | 0.9050 | 0.9186 | 0.9021 | 0.9068 | +| | v8 scripted | 0.9031 | 0.9099 | 0.9193 | 0.9023 | 0.9087 | +| carbon_emissions_total | rule 0.4.0 | 0.9947 | 1.0001 | 1.0038 | 1.0024 | 1.0002 | +| | v7 scripted | 0.9429 | 0.9603 | 0.9696 | 0.9521 | 0.9562 | +| | v8 scripted | 0.9447 | 0.9654 | 0.9703 | 0.9524 | 0.9582 | +| discomfort_proportion | baseline, rule | 0.1714 | 0.1128 | 0.0645 | 0.1919 | 0.1352 | +| | v7 scripted | 0.0430 | 0.0610 | 0.0093 | 0.0232 | 0.0341 | +| | v8 scripted | 0.0374 | 0.0174 | 0.0073 | 0.0210 | 0.0208 | +| too warm | baseline, rule | 0.0176 | 0.0526 | 0.0031 | 0.0017 | 0.0188 | +| | v7 scripted | 0.0181 | 0.0545 | 0.0036 | 0.0022 | 0.0196 | +| | v8 scripted | 0.0116 | 0.0104 | 0.0016 | 0.0000 | 0.0059 | +| ramping_average | rule 0.4.0 | 1.1309 | 1.0742 | 1.0922 | 1.0848 | 1.0955 | +| | v7 scripted | 0.9952 | 0.9708 | 0.9666 | 1.0095 | 0.9855 | +| | v8 scripted | 0.9983 | 0.9732 | 0.9677 | 1.0100 | 0.9873 | +| daily_peak_average | rule 0.4.0 | 0.9978 | 0.9934 | 0.9743 | 0.9734 | 0.9847 | +| | v7 scripted | 0.9076 | 0.8806 | 0.8846 | 0.8858 | 0.8897 | +| | v8 scripted | 0.9095 | 0.8830 | 0.8854 | 0.8861 | 0.8910 | +| all_time_peak_average | rule 0.4.0 | 1.0000 | 1.0000 | 1.0000 | 0.9383 | 0.9846 | +| | v7 scripted | 0.9588 | 0.8518 | 0.8491 | 0.8570 | 0.8792 | +| | v8 scripted | 0.9588 | 0.8541 | 0.8491 | 0.8570 | 0.8797 | +| unserved energy in outages | all | 0.6844 | 0 | 0 | 0 | 0.1711 | +| clamped hours | v7, v8 | 22, 22 | 31, 32 | 9, 10 | 3, 3 | 16.2, 16.8 | + +- Scripted v8 has fewer too-warm hours than the baseline on every month, where v7 has more on every month, and less discomfort than v7 on every month, for a little cost and emissions. The rule-based and v7 columns reproduce their published numbers exactly. + +Estimates for a live v8 month (the 0.9.0 live replies with the version 8 strategy filled in): trims started where the agent skipped them and nothing else changed: cost 0.8920, emissions 0.9337, discomfort 0.0417, too warm 0.0181, ramping 1.0051, 68 clamped hours; every hour's cooling from `strategy` with the agent's own battery: 0.9031, 0.9447, 0.0374, 0.0116, 0.9977, all-time peak 0.9588 (0.9412 live), 22 clamped hours; scripted v8: 0.9031, 0.9447, 0.0374, 0.0116, 0.9983. Only live runs can show whether Haiku sends the strategy's cooling as given, keeps its battery discipline under the new wording, and how the rooms then evolve, and how any live agent does on the tuning months. + +Request size and cost: a version 8 request averages 9,456 characters against 10,748 for version 7 over the same scripted month, 12.0 percent smaller (system prompt 3,645 against 4,780 characters, observation 153 shorter, reply schema unchanged). Scaled from the 0.9.0 live month (5,185 input and 245 output tokens per call, $0.4607), a Haiku month should cost about $0.42 ($0.4159 at the same reply length, $0.4379 if replies run 25 percent longer); the hard worst case is $0.95 for 719 hours and $0.98 for 743. Live Haiku months on all four months (2,924 hours) should cost about $1.69 to $1.78 in all, each under its own $2.00 cap. + ## 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. diff --git a/README.md b/README.md index f56c217..31ecdfc 100644 --- a/README.md +++ b/README.md @@ -424,9 +424,89 @@ On the tuning months (mean of three) the v7 scripted strategy scores cost 0.9086 **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). +### Version 0.10.0 + +**Goal:** find and close the gap between the 0.9.0 live agent (cost 0.9245, discomfort 0.0940) and the strategy it is given (scripted v7: 0.9016 and 0.0430), fix the hot-side comfort miss, and score everything on more than one month. The envelope is identical to 0.9.0. No live model calls were made for this release: everything here is measured on recorded runs and offline controllers, and the live months are still to run. + +**Where the live agent left its strategy.** `scripts/analyze_deviations.py` compares every hour, building and device of the 0.9.0 live month with what the scripted version 7 strategy sends for the very observation the model saw (within 0.002 for cooling, 0.005 for storage), sorts each departure into one class, and then replays the month's own replies through the unchanged envelope with one class at a time put back to the strategy's action. The control replay reproduces the published KPIs exactly. Shares are of the control to strategy gap; the classes interact, so they need not add up. + +| Class (building-hours, hours) | When | Replay: cost, emissions, discomfort, ramping, daily peak | Share of cost gap, discomfort gap | +|---|---|---|---| +| Live month (control) | | 0.9245, 0.9648, 0.0940, 0.9864, 0.9182 | | +| Scripted v7 strategy | | 0.9016, 0.9429, 0.0430, 0.9952, 0.9076 | 1, 1 | +| **No trim in an occupied, overcooled room** where the strategy trims, trim state off (584, 418) | all occupied; Building_1 353, Building_3 201, Building_2 30; room 0.5 to 1 C below setpoint 188, 1 to 1.5 C 147, more 249; low price 181, mid 166, flat 144, top 93; outdoor 30 C or more 272 | 0.8920, 0.9337, 0.0417, 1.0051, 0.9027 | 1.42, 1.03 | +| A deeper trim than the strategy's (100, 83) | Building_1 67, Building_3 33 | 0.9273, 0.9676, 0.0936, 0.9805, 0.9189 | -0.12, 0.01 | +| A trim where the strategy has none (19, 18) | 17 within 0.5 C of the setpoint | 0.9245, 0.9647, 0.0903, 0.9879, 0.9167 | 0.00, 0.07 | +| A shallower trim (11, 11) | Building_1 10 | 0.9243, 0.9646, 0.0940, 0.9876, 0.9182 | 0.01, 0.00 | +| Cooling above the strategy's (5, 5); a held trim ended early (3, 3) | | no change to four decimals | 0.00, 0.00 | +| Battery: over-discharged in a top-price hour (3, 1), charged off plan (3, 2), skipped a charge (1, 1) | | no change to four decimals on cost, emissions, discomfort | 0.00, 0.00 | +| Every class at once | | 0.8977, 0.9393, 0.0435, 0.9977, 0.9005 | 1.17, 0.99 | + +- **One class is the whole gap.** The agent sent `strategy_battery` in 2,150 of 2,157 building-hours; the hot water tank was never used. What it did not do is start cooling trims: in 584 building-hours an occupied room was more than 0.5 C below its setpoint with no trim on, and it sent the baseline. Its reasons say why: "buildings 1 and 3 overcooled but trim off so baseline cooling kept". The version 7 prompt says `null` "is exactly baseline_action: use it only when trim state is off or end", and the agent read that as "send null when the trim is off". Putting that class back alone takes cost to 0.8920 and discomfort to 0.0417, past the strategy itself, though ramping rises to 1.0051 (trims add rises). +- **The agent's own deeper trims helped cost.** Putting the 100 deeper trims back to the strategy's depth raises cost to 0.9273 and lowers ramping to 0.9805. The battery classes change nothing measurable. + +**The hot-side miss is one building-hour.** CityLearn's too-warm share is the mean of the three buildings' shares: Building_2 (22 of 535 occupied hours) and Building_3 (2 of 600) match the baseline exactly, and Building_1 has 7 of 712 against 6. The extra one is hour 404 (day 17, 9 pm): 28.77 C against a band top of 28.67 C, where the baseline's room was 28.54 C. On day 16 Building_1 trimmed cooling for most of 1 pm to 11 pm (hours 372 to 382) under a 27.2 C setpoint, at the 0.15 deviation cap from 2 pm to 8 pm (the agent deepened it in its second hour where the strategy keeps about 0.10, and the trim hold then held that depth), so the room ended the evening at 27.6 C against the baseline's 25.1 C and stayed about 1 C warmer overnight. A 15 hour outage on day 17 (6 am to 8 pm) then took cooling away from both runs, and the agent's room came out of it 0.23 C warmer and over the top of the band. The scripted version 7 strategy, whose trims stop at 0.10, has the same miss at the same hour. On the tuning months its 6 extra warm hours all come between 6 and 11 am, in a room that ran a trim within the day and a half before, 5 of them in Building_1 under its 27.2 C setpoint. A trim brings an overcooled room up to its setpoint, where the baseline keeps a cushion of about 2 C below it, and a hot morning or an outage then carries it over the band. + +**Prompt version 8 (new default).** Each building shows the strategy's whole action for the hour, `strategy` (`cooling`, `dhw`, `battery`, worked out in code inside the envelope's ranges, with `strategy_reason`), in place of `strategy_battery`, and the agent is told to send it as given. The line about `null` and the trim state is gone: the prompt says a trim starts when an overcooled room's state is off and that a held trim is a number, never `null`. The strategy (`strategy_plan_v8`) is version 7's plus extra cooling in a room that runs warm: from 0 at 1.5 C above its setpoint to 0.05 above the baseline action at 2.5 C or more, never while a trim is held and never in an outage. `signal_outlook`, which no version 7 or 8 strategy reads, is dropped. Version 7 stays selectable, and the 0.9.0 and 0.8.0 live months replay 719 of 719 hours. + +**The warm-room numbers were chosen on the tuning months** (`scripts/tune_strategy.py --version 8`, 36 settings): extra cooling at 0.5, 1 or 1.5 C above the setpoint, by 0.05, 0.1 or 0.15, at once or ramped over 1 C, and a no-trim night (18, 20 or 22 h until 5 or 7 h), alone and together. Comfort comes first: a setting qualified when its too-warm share was at or below the baseline's on every tuning month, its too-cool share within 0.001 of version 7's, and ramping and both peaks at or below the baseline's; the cheapest qualifying setting won. 5 of 36 qualified. On the tuning months the shipped setting scores cost 0.9105, emissions 0.9627, too cool 0.0112 and too warm 0.0040 against version 7's 0.9086, 0.9607, 0.0111 and 0.0201 (baseline too warm 0.0191). The night rule cleared no warm hour and raised cost by 0.007 to 0.024. A first rule that also held cost, emissions, ramping and both peaks within 0.001 of version 7 qualified none: the cheapest full fix costs about 0.002 of cost. The outage exception was added after the phase 2 month showed extra cooling in outage hours raising unserved energy (0.6942 against 0.6844); the tuning months have no outages, so it changes nothing there. + +**Every month (`hyperbolic months`, offline, no model calls).** The phase 2 month and the three tuning months, each its own CityLearn episode: + +| CityLearn KPI (district) | | phase 2 | tuning June | tuning July | tuning August | mean | +|---|---|---|---|---|---|---| +| cost_total | 0.4.0 rule-based | 0.9611 | 0.9506 | 0.9676 | 0.9682 | 0.9619 | +| | v7 scripted | 0.9016 | 0.9050 | 0.9186 | 0.9021 | 0.9068 | +| | v8 scripted | 0.9031 | 0.9099 | 0.9193 | 0.9023 | 0.9087 | +| carbon_emissions_total | 0.4.0 rule-based | 0.9947 | 1.0001 | 1.0038 | 1.0024 | 1.0002 | +| | v7 scripted | 0.9429 | 0.9603 | 0.9696 | 0.9521 | 0.9562 | +| | v8 scripted | 0.9447 | 0.9654 | 0.9703 | 0.9524 | 0.9582 | +| discomfort_proportion | baseline and rule-based | 0.1714 | 0.1128 | 0.0645 | 0.1919 | 0.1352 | +| | v7 scripted | 0.0430 | 0.0610 | 0.0093 | 0.0232 | 0.0341 | +| | v8 scripted | **0.0374** | **0.0174** | **0.0073** | **0.0210** | **0.0208** | +| too warm (discomfort_hot_proportion) | baseline and rule-based | 0.0176 | 0.0526 | 0.0031 | 0.0017 | 0.0188 | +| | v7 scripted | 0.0181 | 0.0545 | 0.0036 | 0.0022 | 0.0196 | +| | v8 scripted | **0.0116** | **0.0104** | **0.0016** | **0.0000** | **0.0059** | +| ramping_average | 0.4.0 rule-based | 1.1309 | 1.0742 | 1.0922 | 1.0848 | 1.0955 | +| | v7 scripted | 0.9952 | 0.9708 | 0.9666 | 1.0095 | 0.9855 | +| | v8 scripted | 0.9983 | 0.9732 | 0.9677 | 1.0100 | 0.9873 | +| daily_peak_average | 0.4.0 rule-based | 0.9978 | 0.9934 | 0.9743 | 0.9734 | 0.9847 | +| | v7 scripted | 0.9076 | 0.8806 | 0.8846 | 0.8858 | 0.8897 | +| | v8 scripted | 0.9095 | 0.8830 | 0.8854 | 0.8861 | 0.8910 | +| all_time_peak_average | 0.4.0 rule-based | 1.0000 | 1.0000 | 1.0000 | 0.9383 | 0.9846 | +| | v7 scripted | 0.9588 | 0.8518 | 0.8491 | 0.8570 | 0.8792 | +| | v8 scripted | 0.9588 | 0.8541 | 0.8491 | 0.8570 | 0.8797 | +| power_outage_normalized_unserved_energy_total | all four | 0.6844 | 0 | 0 | 0 | 0.1711 | +| Clamped hours | v7, v8 scripted | 22, 22 | 31, 32 | 9, 10 | 3, 3 | 16.2, 16.8 | + +- **The scripted v8 strategy has fewer too-warm hours than the baseline on every month**, where v7 has more on every month, and less discomfort than v7 on every month. It pays for that with a little cost (0.9087 against 0.9068 on the mean) and emissions (0.9582 against 0.9562), and ramping and both peaks move by 0.0031 at most. On the phase 2 month, which played no part in choosing the numbers, too warm is 0.0116 against the baseline's 0.0176. +- The rule-based and v7 columns reproduce their published phase 2 and tuning-set numbers exactly. Ramping in tuning August is above 1.0 for both strategies. +- The scripted columns are not model results. + +**Estimates for a live v8 month** (the 0.9.0 live replies, through the same envelope, with the v8 strategy filled in): + +| | cost | emissions | discomfort (too cool, too warm) | ramping | daily peak | all-time peak | clamped hours | +|---|---|---|---|---|---|---|---| +| 0.9.0 live (control) | 0.9245 | 0.9648 | 0.0940 (0.0759, 0.0181) | 0.9864 | 0.9182 | 0.9412 | 27 | +| Trims started where the agent skipped them, nothing else changed | 0.8920 | 0.9337 | 0.0417 (0.0236, 0.0181) | 1.0051 | 0.9027 | 0.9412 | 68 | +| Every hour's cooling from `strategy`, the agent's own battery | 0.9031 | 0.9447 | 0.0374 (0.0258, 0.0116) | 0.9977 | 0.9098 | 0.9588 | 22 | +| Scripted v8 | 0.9031 | 0.9447 | 0.0374 (0.0258, 0.0116) | 0.9983 | 0.9095 | 0.9588 | 22 | + +- If Haiku sends `strategy.cooling` as it sent `strategy_battery`, a live v8 month should land near the scripted v8 strategy: cost about 0.903, discomfort about 0.037 and too warm below the baseline. If it starts the trims but keeps its own deeper ones, cost could go lower (toward 0.892) with more ramping and the hot-side miss back. Following the strategy's cooling gives back the all-time peak the live agent's own cooling choices had won (0.9588 against 0.9412). +- **Only live runs can show** whether Haiku sends the strategy's cooling numbers as given, whether it keeps its battery discipline with the new wording, how far it goes its own way on trims, and how the rooms then evolve; and on the tuning months, how a live agent compares at all, since none has run there. + +**Request size and cost.** A version 8 request averages 9,456 characters against 10,748 for version 7 over the same scripted month, 12.0 percent smaller: the system prompt is 3,645 characters against 4,780, the observation 153 shorter, and the reply schema unchanged. Scaled from the 0.9.0 live month (5,185 input and 245 output tokens per call, $0.4607), a Haiku month should cost about $0.42 ($0.4159 at the same reply length, $0.4379 if replies run 25 percent longer). The hard worst case is $0.95 for 719 hours and $0.98 for 743 hours, under the $2.00 cap. Live Haiku months on all four months of the set (2,924 hours) should cost about $1.69 to $1.78 in all, each month under its own $2.00 cap. + ## What the agent sees -Prompt version 7 (`hyperbolic/prompt.py`) is the default from 0.9.0. It keeps everything in version 6 and: +Prompt version 8 (`hyperbolic/prompt.py`) is the default from 0.10.0. It keeps everything in version 7 and: + +- **Shows the strategy's whole action per building**, `strategy` with `cooling`, `dhw` and `battery` (from `strategy_plan_v8`, inside the envelope's ranges), and `strategy_reason`, in place of `strategy_battery` and `strategy_battery_reason`. The agent is told to send it as given and to say why where it differs. +- **Says a trim starts when an overcooled room's trim state is off**, and that a held trim is a number inside `cooling_range`, never `null`. The version 7 line that `null` is for "only when trim state is off or end" is gone: the 0.9.0 live month read it as "send null when the trim is off". +- **Adds extra cooling in a room that runs warm** to the strategy: from 0 at 1.5 C above its setpoint to 0.05 above the baseline action at 2.5 C or more, never while a trim is held and never in an outage. +- **Drops `signal_outlook`**, which no version 7 or 8 strategy reads, and names no single dataset, so the same prompt serves every month of the month set. Requests are 12.0 percent smaller than version 7's. + +Prompt version 7, the default in 0.9.0, 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. @@ -463,12 +543,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 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. +Nothing reads the dataset ahead of time; the outlook is built only from observations the controller has already received. Prompt versions 1 to 7 are kept unchanged so runs recorded with 0.2.0 to 0.9.0 replay byte for byte, and `--prompt-version 1` to `7` still selects them: 1 to 5 with the 0.7.0 envelope rules, 6 and 7 with the 0.8.0 rules that version 8 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.10.0, `python scripts/tune_strategy.py --version 8` searched the version 8 strategy's extra cooling in a warm room (`StrategyParamsV8`) and a no-trim night, 36 settings with the 0.8.0 rules, with comfort first: too warm at or below the baseline on every tuning month, too cool within 0.001 of version 7's, ramping and both peaks at or below the baseline's, then the lowest cost plus emissions (see [Version 0.10.0](#version-0100)). The tuning months are now also part of the month set (`hyperbolic.months`, `hyperbolic months`), which the search and the compare report share; the phase 2 month is still only reported, never searched. + 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)). @@ -493,7 +575,7 @@ 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. +0.10.0 changes none of these rules either; a test still pins every `EnvelopeConfig` field to its 0.8.0 value. 0.9.0 changed none of them. 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. @@ -508,7 +590,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): 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`. +- 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: the 0.9.0 live Haiku month cost 0.46 USD (5,185 input and 245 output tokens per call). Prompt version 8 shows the strategy's whole action and is 12.0 percent smaller again, about 9,460 characters: a Haiku month should cost about 0.42 USD, against a hard worst case of about 0.95 USD (0.98 USD for a 743 hour tuning month). 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 @@ -543,8 +625,9 @@ 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, `--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 baseline` | Runs CityLearn's no-control reference. `--month` as for `run`. | +| `hyperbolic run` | Runs the supervisor through the envelope. `--model sonnet`, `--budget 5`, `--hours 24` for a short run, `--month tuning-06`, `tuning-07` or `tuning-08` for a month of the tuning set instead of the phase 2 month (`phase2`, the default), `--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` or `8` for the version 7 or 8 strategy kept inside the envelope's ranges, `--inject-faults` with `--scripted` to exercise clamps and fallback, `--prompt-version 1` to `7` for the 0.2.0, 0.3.0, 0.4.0, 0.6.0, 0.7.0, 0.8.0 or 0.9.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 months` | Runs the baseline, the 0.4.0 rule-based controller and the scripted v7 and v8 strategies on every month of the month set (the phase 2 month and the three tuning months), in parallel with no model calls, and prints each KPI per month and the mean. `--controllers`, `--months`, `--run RUN` (repeatable) to show a finished run at the month it was recorded on, `--out` for JSON. | | `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`. | @@ -584,7 +667,7 @@ 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 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. +`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 eight prompt versions, `EnvelopeConfig` pinned field by field to 0.8.0 and the 0.8.0 and 0.9.0 live months replaying 719 of 719 hours when they are on disk, the deviation classes (every cooling, battery and tank class, the strategy's own reply having none, the tolerance, when each happened), the attribution replays (only the listed points replaced, the control reproducing a recorded CityLearn run exactly, a class put back moving the month toward the strategy, the gap shares), the version 8 observation (the strategy's whole action per building inside the ranges, the dropped fields), the version 8 prompt wording and request size, the warm-room cooling (the ramp, none in an outage, an empty room or with a trim held), the version 8 strategy equal to version 7's without a warm room, the night rule off, the scripted version 8 reply, version 8 runs on the fake district and 24 hours of CityLearn that replay identically, a full version 8 CityLearn month below the baseline's too-warm share, the version 8 search grid and rule, the month set (its months and lengths, a tuning month written as its own dataset, `run --month` recording its month and replaying, the rule-based controller reproducing its tuning month) and the compare report (means only over every month, partial runs marked), 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. @@ -595,8 +678,10 @@ CI (GitHub Actions) runs the tests on Python 3.10 and 3.12 with CPU-only torch, - **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 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 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. In the 0.9.0 live month the agent sent `strategy_battery` in 2,150 of 2,157 building-hours but started almost none of the trims the strategy calls for, so version 8 shows the cooling as a number too. 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.10.0 estimates are not live results.** They fill the version 8 strategy into the 0.9.0 live replies, which were written for the version 7 prompt and cannot react to what changed. The month set's scripted columns are not model results either, and no live run has been made on a tuning month yet. +- **The warm-room cooling rests on CityLearn's LSTM.** It answers a mechanism seen in the simulator: a trimmed room loses the baseline's cushion and a hot morning or an outage carries it over the band. On the tuning months it removed 80 percent of the strategy's too-warm hours for about 0.002 of cost. - **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. diff --git a/docs/assets/version.js b/docs/assets/version.js index 61bf9f9..465f1c6 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.9.0"; +window.HYPERBOLIC_VERSION = "0.10.0"; diff --git a/hyperbolic/__init__.py b/hyperbolic/__init__.py index 3e529ee..eec7d3c 100644 --- a/hyperbolic/__init__.py +++ b/hyperbolic/__init__.py @@ -1,3 +1,3 @@ """Hyperbolic: a supervisory controller for CityLearn district simulations.""" -__version__ = "0.9.0" +__version__ = "0.10.0" diff --git a/pyproject.toml b/pyproject.toml index 427e89b..ba212a7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "hyperbolic" -version = "0.9.0" +version = "0.10.0" description = "Supervisory control for CityLearn district simulations, behind a deterministic safety envelope." readme = "README.md" license = { text = "MIT" } From f96098ba9601d8af2bf44cdf92f96bf7d2cb30cf Mon Sep 17 00:00:00 2001 From: AddisonTech Date: Fri, 23 Oct 2026 12:31:54 -0400 Subject: [PATCH 3/4] Publish 0.10.0 phase 2 live run to the viewer --- docs/data/viewer.js | 2 +- docs/data/viewer.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/data/viewer.js b/docs/data/viewer.js index af7061b..e0c030a 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.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}; +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.134,0.0,0.0,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.074,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.017,-0.0,-0.092,-0.521,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.0,0.15,0.15,0.0,0.15,0.07,0.015,0.0,0.0,0.006,0.0,0.002,0.0,0.001,-0.249,-0.263,-0.296,-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.0,0.15,0.103,0.046,0.011,0.0,-0.0,0.0,-0.5,-0.334,-0.038,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.041,0.01,0.0,0.0,-0.5,0.15,0.15,0.15,-0.228,-0.197,-0.31,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.0,0.15,0.15,0.15,0.15,0.0,0.0,0.072,0.072,0.016,0.0,0.0,0.0,-0.152,-0.242,-0.394,-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.127,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.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.112,-0.118,-0.133,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.144,-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.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.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.009,0.0,-0.066,-0.189,-0.302,0.0,-0.254,-0.028,0.0,0.0,0.15,0.15,0.0,0.15,0.15,0.15,0.15,0.042,0.011,-0.404,0.042,0.04,0.027,0.15,0.15,0.037,-0.246,-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.064,-0.244,-0.258,-0.289,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.132,0.028,0.0,0.008,-0.163,0.144,0.032,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.138,0.031,0.0,0.0,0.009,0.002,0.0,0.0,0.0,0.0,0.0,-0.166,-0.3,-0.335,0.0,0.0,0.0,-0.039,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.025,0.0,-0.247,-0.26,-0.292,-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.338,0.15,0.15,0.046,0.031,0.0,0.0,0.009,0.0,-0.249,-0.262,-0.295,0.0,-0.011,-0.011,-0.099,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.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.122,-0.24,-0.254,-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.008,0.002,0.0,0.0,0.0,0.001,-0.249,-0.263,-0.296,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.098,-0.206,-0.024,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.038,0.014,0.0,0.0,0.0,-0.247,-0.262,-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.004,-0.249,-0.263,-0.295,-0.135,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,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.378,0.134,0.322,0.68,0.117,0.214,0.41,0.337,0.089,0.0,0.078,0.087,0.094,0.106,0.12,0.028,0.088,0.184,0.277,0.456,0.563,0.623,0.627,0.551,0.601,0.49,0.291,0.332,0.558,0.706,0.433,0.25,0.173,0.242,0.154,0.15,0.164,0.165,0.185,0.251,0.004,0.057,0.0,0.078,0.108,0.151,0.307,0.56,0.49,0.063,0.01,0.007,0.269,0.047,0.0,0.081,0.072,0.008,0.004,0.01,0.002,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.155,0.13,0.1,0.091,0.215,0.019,0.135,0.119,0.095,0.109,0.055,0.103,0.145,0.084,0.068,0.094,0.124,0.2,0.285,0.376,0.466,0.485,0.529,0.378,0.214,0.156,0.134,0.124,0.115,0.102,0.074,0.208,0.185,0.142,0.121,0.169,0.151,0.21,0.402,0.233,0.182,0.183,0.165,0.295,0.127,0.097,0.31,0.258,0.29,0.3,0.337,0.265,0.121,0.227,0.28,0.191,0.132,0.114,0.103,0.15,0.149,0.25,0.204,0.203,0.275,0.266,0.357,0.434,0.23,0.034,0.195,0.12,0.102,0.148,0.05,0.04,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.388,0.25,0.161,0.133,0.122,0.108,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.557,0.497,0.472,0.348,0.219,0.159,0.143,0.131,0.286,0.122,0.223,0.194,0.096,0.09,0.103,0.124,0.145,0.155,0.019,0.18,0.25,0.352,0.31,0.428,0.451,0.267,0.561,0.456,0.29,0.187,0.003,0.16,0.125,0.225,0.296,0.183,0.135,0.122,0.124,0.14,0.178,0.253,0.131,0.139,0.162,0.254,0.348,0.689,0.7,0.526,0.422,0.308,0.206,0.137,0.108,0.096,0.256,0.107,0.226,0.147,0.132,0.127,0.133,0.14,0.168,0.0,0.08,0.173,0.259,0.285,0.367,0.438,0.52,0.595,0.57,0.426,0.268,0.215,0.129,0.094,0.336,0.081,0.196,0.085,0.072,0.13,0.119,0.125,0.147,0.194,0.066,0.113,0.162,0.233,0.328,0.416,0.503,0.541,0.528,0.399,0.285,0.264,0.178,0.112,0.086,0.213,0.274,0.176,0.118,0.106,0.104,0.125,0.19,0.167,0.001,0.153,0.211,0.114,0.112,0.138,0.248,0.3,0.317,0.43,0.45,0.285,0.202,0.14,0.113,0.208,0.275,0.206,0.154,0.18,0.096,0.111,0.156,0.23,0.022,0.172,0.236,0.331,0.225,0.519,0.604,0.504,0.517,0.401,0.282,0.194,0.25,0.125,0.09,0.202,0.28,0.239,0.141,0.126,0.127,0.138,0.251,0.109,0.016,0.186,0.214,0.577,0.461,0.305,0.125,0.197,0.284,0.182,0.106,0.109,0.035,0.019,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.138,0.224,0.245,0.193,0.234,0.305,0.249,0.195,0.161,0.227,0.091,0.104,0.013,0.0,0.142,0.203,0.128,0.111,0.352,0.482,0.471,0.334,0.332,0.302,0.077,0.148,0.042,0.024,0.152,0.228,0.125,0.091,0.079,0.083,0.096,0.106,0.087,0.027,0.045,0.059,0.089,0.074,0.115,0.125,0.135,0.129,0.106,0.101,0.084,0.057,0.066,0.06,0.115,0.203,0.137,0.12,0.148,0.131,0.11,0.161,0.165,0.013,0.025,0.06,0.08,0.098,0.143,0.236,0.177,0.053,0.032,0.097,0.088,0.084,0.074,0.134,0.135,0.186,0.167,0.103,0.104,0.099,0.101,0.116,0.124,0.068,0.124,0.209,0.296,0.303,0.348,0.33,0.708,0.589,0.379,0.196,0.124,0.113,0.096,0.088,0.179,0.257,0.213,0.115,0.102,0.167,0.103,0.141,0.164,0.02,0.196,0.409,0.36,0.335,0.444,0.831,0.895,0.604,0.42,0.288,0.209,0.15,0.101,0.082,0.205,0.105,0.021,0.069,0.063,0.056,0.074,0.209,0.334,0.226,0.266,0.298,0.456,0.514,0.61,0.699,0.608,0.487,0.405,0.27,0.124,0.08,0.397,0.237,0.077,0.199,0.085,0.0,0.13,0.174,0.179,0.139,0.0,0.079,0.176,0.237,0.422,0.349,0.191,0.54,0.82,0.624,0.366,0.247,0.214,0.144,0.143,0.046,0.188,0.24,0.054,0.033,0.182,0.168,0.171,0.128,0.098,0.006,0.081,0.129,0.198,0.276,0.358,0.334,0.328,0.185,0.032,0.306,0.178,0.17,0.09,0.061,0.186,0.27,0.233,0.193,0.204,0.181,0.166,0.179,0.17,0.093,0.151,0.112,0.144,0.245,0.31,0.423,0.499,0.432,0.217,0.217,0.198,0.083,0.19,0.282,0.209,0.233,0.21,0.095,0.089,0.097,0.126,0.18,0.189,0.122,0.186,0.256,0.042,0.07,0.43,0.707,0.74,0.341,0.25,0.611,0.404,0.225,0.145,0.38,0.133,0.172,0.145,0.102,0.09,0.11,0.219,0.178,0.237,0.095,0.16,0.601,0.431,0.353,0.562,0.609,0.635,0.63,0.493,0.454,0.269,0.237,0.138,0.03,0.225,0.31,0.33,0.228,0.08,0.08,0.144,0.185,0.194,0.116,0.386,0.387,0.654,0.392,0.426,0.528,0.592,0.364,0.205,0.426,0.285,0.522,0.593,0.393,0.056,0.0,0.0,0.0,0.0,0.0,0.073,0.177,0.141,0.255,0.382,0.388,0.457,0.556,0.659,0.705,0.682,0.628,0.368,0.275,0.191,0.133,0.085],"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.134,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.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.15,0.15,0.15,0.15,0.15,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.114,-0.107,-0.18,-0.456,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.0,0.15,0.15,0.0,0.15,0.15,0.058,0.048,0.011,0.005,0.0,0.001,0.0,0.001,-0.249,-0.263,-0.296,-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.0,0.042,0.011,0.0,0.0,0.0,0.0,0.0,0.0,-0.205,-0.231,-0.259,-0.13,-0.014,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.0,0.15,0.15,0.15,0.15,0.0,0.0,0.0,0.0,0.093,0.02,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.009,0.0,-0.249,-0.255,-0.301,0.0,-0.033,0.0,0.0,0.0,0.15,0.15,0.0,0.15,0.15,0.15,0.15,0.042,0.01,-0.5,0.15,0.15,0.15,0.074,0.017,0.0,-0.247,-0.262,-0.293,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.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.053,0.012,0.0,0.005,-0.5,0.15,0.15,0.15,0.0,0.0,0.0,-0.5,-0.082,-0.087,-0.097,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.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.15,0.15,0.033,0.0,-0.089,0.087,0.019,0.0,0.0,0.0,0.0,0.007,0.0,-0.249,-0.218,-0.274,-0.022,-0.024,-0.025,-0.13,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.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.045,-0.246,-0.26,-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.008,0.0,0.0,0.0,0.0,0.002,-0.249,-0.254,-0.273,0.0,0.0,0.0,0.0,-0.061,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.098,-0.206,-0.024,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.129,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.004,-0.249,-0.263,-0.295,-0.135,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,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.395,0.32,0.06,0.011,0.137,0.129,0.006,0.0,0.0,0.0,0.023,0.453,0.189,0.278,0.428,0.47,0.754,0.838,0.984,0.64,0.601,0.479,0.256,0.203,0.192,0.218,0.131,0.083,0.057,0.044,0.042,0.02,0.014,0.027,0.048,0.074,0.121,0.181,0.288,0.289,0.448,0.403,0.167,0.213,0.203,0.152,0.099,0.121,0.218,0.15,0.035,0.007,0.02,0.152,0.073,0.0,0.0,0.0,0.0,0.0,0.027,0.059,0.069,0.091,0.111,0.201,0.191,0.256,0.236,0.167,0.108,0.068,0.059,0.099,0.141,0.158,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.186,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.212,0.156,0.13,0.097,0.276,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.158,0.252,0.272,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.268,0.567,0.243,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.258,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.32,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.0,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.243,0.132,0.0,0.0,0.002,0.004,0.062,0.139,0.288,0.525,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.896,0.917,0.513,0.477,0.447,0.308,0.218,0.165,0.121,0.091,0.175,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.249,0.213,0.155,0.087,0.2,0.173,0.0,0.002,0.008,0.01,0.337,0.17,0.269,0.522,0.127,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.238,0.081,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.151,0.045,0.0,0.0,0.0,0.0,0.001,0.017,0.031,0.195,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.176,0.21,0.037,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.228,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.039,0.0,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.0,0.007,0.013,0.017,0.017,0.066,0.469,0.347,0.167,0.621,0.38,0.499,0.859,0.904,0.466,0.817,0.456,0.547,0.216,0.337,0.227,0.092,0.294,0.233,0.0,0.001,0.013,0.02,0.022,0.192,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.341,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.428,0.261,0.216,0.159,0.121,0.179,0.172,0.0,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.341,0.244,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.222,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.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.0,-0.203,0.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.0,0.15,0.085,0.048,0.027,0.016,0.012,0.0,0.009,0.0,0.001,-0.246,-0.305,-0.452,-0.22,-0.105,-0.05,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.0,0.15,0.15,0.15,0.15,0.128,-0.225,-0.279,-0.414,-0.201,-0.096,-0.046,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.112,-0.109,0.12,0.066,0.037,-0.234,-0.302,-0.446,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.0,0.15,0.15,0.15,0.15,0.0,0.0,0.0,0.15,0.131,0.071,0.04,0.023,-0.244,-0.303,-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.0,-0.023,-0.01,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.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.012,0.0,-0.246,-0.305,-0.452,0.0,-0.219,-0.105,0.0,0.0,0.15,0.15,0.0,0.15,0.15,0.15,0.15,0.15,0.15,-0.409,0.15,0.15,0.15,0.15,0.09,0.05,-0.239,-0.296,-0.439,-0.053,-0.062,-0.076,-0.112,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.048,0.0,0.0,0.0,-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.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.065,-0.221,0.15,0.083,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.079,0.044,0.025,0.017,0.0,0.0,0.0,0.0,0.015,-0.146,-0.252,-0.49,0.0,0.0,0.0,-0.276,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.143,0.079,-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.046,0.028,0.015,-0.245,-0.305,-0.451,-0.054,-0.063,-0.078,-0.218,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.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.204,0.0,0.0,0.0,-0.095,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.232,-0.207,-0.256,-0.38,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.09,0.052,0.027,0.017,0.011,0.0,0.01,-0.247,-0.306,-0.453,0.0,0.0,0.0,0.0,-0.218,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.149,-0.365,-0.177,0.0,-0.083,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.0,0.0,-0.448,0.15,0.15,0.15,0.15,0.15,-0.186,-0.231,-0.342,0.0,-0.163,0.0,-0.079,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.097,0.054,0.03,0.018,0.013,-0.246,-0.306,-0.452,-0.055,-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.658,0.696,0.442,0.335,0.22,0.253,0.224,0.27,0.328,0.086,0.048,0.058,0.018,0.009,0.039,0.033,0.05,0.132,0.225,0.296,0.373,0.448,0.537,0.644,0.819,0.909,0.581,0.387,0.475,0.408,0.347,0.05,0.0,0.06,0.051,0.043,0.036,0.032,0.026,0.031,0.08,0.173,0.176,0.322,0.266,0.246,0.394,0.422,0.431,0.32,0.254,0.301,0.235,0.196,0.171,0.076,0.0,0.012,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.41,0.477,0.198,0.092,0.077,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.345,0.23,0.149,0.357,0.146,0.096,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.545,0.576,0.413,0.294,0.2,0.18,0.128,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.549,0.593,0.729,0.466,0.313,0.239,0.156,0.093,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.511,0.484,0.477,0.48,0.251,0.173,0.134,0.121,0.096,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.552,0.543,0.862,0.701,0.549,0.453,0.249,0.179,0.093,0.149,0.197,0.18,0.154,0.0,0.0,0.0,0.362,0.064,0.075,0.192,0.244,0.322,0.47,0.561,0.599,0.523,0.556,0.406,0.405,0.418,0.329,0.33,0.099,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.342,0.339,0.413,0.528,0.352,0.03,0.0,0.0,0.0,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.49,0.554,0.487,0.416,0.308,0.263,0.316,0.278,0.052,0.028,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.521,0.59,0.401,0.31,0.368,0.332,0.198,0.17,0.059,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.606,0.523,0.525,0.375,0.266,0.179,0.138,0.262,0.053,0.035,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.574,0.628,0.613,0.469,0.358,0.267,0.196,0.164,0.127,0.1,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.439,0.318,0.23,0.0,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.296,0.215,0.138,0.129,0.115,0.097,0.025,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.079,0.04,0.059,0.077,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.159,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.369,0.261,0.182,0.176,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.525,0.621,0.724,0.6,0.502,0.468,0.322,0.239,0.109,0.058,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.762,0.754,0.713,0.476,0.399,0.265,0.168,0.112,0.212,0.109,0.112,0.114,0.104,0.092,0.085,0.075,0.072,0.106,0.177,0.283,0.383,0.439,0.502,0.565,0.619,0.65,0.711,0.625,0.533,0.34,0.195,0.149,0.098,0.066,0.071,0.114,0.102,0.041,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.366,0.323,0.327,0.295,0.201,0.131,0.106,0.013,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.451,0.483,0.503,0.522,0.572,0.461,0.311,0.243,0.281,0.145,0.342,0.141,0.111,0.053,0.039,0.049,0.052,0.253,0.062,0.101,0.272,0.261,0.285,0.342,0.412,0.479,0.557,0.626,0.668,0.613,0.506,0.481,0.305,0.217,0.142,0.086,0.067,0.117,0.096,0.08,0.066,0.061,0.126,0.164,0.315,0.46,0.482,0.381,0.553,0.655,0.776,0.837,0.753,0.614,0.462,0.373,0.255,0.306,0.18,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.683,0.533,0.634,0.697,0.748,0.747,0.625,0.604,0.364,0.242,0.174,0.116,0.093,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.823,0.875,0.901,0.859,0.739,0.527,0.356,0.247,0.173,0.272],"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.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.247,0.261,0.261,0.261,0.261,0.261,0.261,0.261,0.261,0.261,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.377,0.377,0.399,0.455,0.599,0.747,0.747,0.759,0.759,0.759,0.759,0.759,0.758,0.758,0.758,0.758,0.758,0.758,0.758,0.758,0.875,0.875,0.874,0.932,0.932,0.932,0.932,0.932,0.932,0.931,0.931,0.945,0.944,0.863,0.412,0.412,0.412,0.412,0.411,0.411,0.411,0.528,0.528,0.645,0.762,0.761,0.878,0.933,0.944,0.944,0.944,0.949,0.948,0.95,0.949,0.95,0.729,0.497,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.472,0.589,0.705,0.705,0.822,0.902,0.938,0.946,0.946,0.946,0.946,0.535,0.24,0.207,0.207,0.207,0.207,0.207,0.207,0.323,0.44,0.557,0.674,0.79,0.907,0.939,0.947,0.947,0.946,0.537,0.654,0.771,0.887,0.685,0.511,0.237,0.237,0.237,0.237,0.237,0.237,0.237,0.237,0.354,0.354,0.47,0.587,0.704,0.821,0.821,0.82,0.876,0.932,0.945,0.945,0.945,0.944,0.81,0.596,0.25,0.24,0.229,0.217,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.203,0.203,0.203,0.203,0.203,0.256,0.298,0.328,0.328,0.215,0.215,0.215,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.787,0.787,0.787,0.904,0.938,0.947,0.947,0.946,0.537,0.438,0.334,0.216,0.216,0.216,0.216,0.203,0.203,0.203,0.203,0.203,0.32,0.437,0.554,0.67,0.787,0.787,0.805,0.805,0.805,0.805,0.805,0.804,0.916,0.706,0.483,0.233,0.233,0.233,0.233,0.233,0.205,0.205,0.205,0.205,0.321,0.438,0.555,0.672,0.788,0.788,0.788,0.869,0.931,0.944,0.944,0.944,0.943,0.725,0.494,0.235,0.235,0.235,0.234,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.941,0.941,0.941,0.948,0.948,0.889,0.722,0.455,0.455,0.23,0.205,0.205,0.205,0.322,0.439,0.439,0.555,0.672,0.789,0.906,0.938,0.947,0.593,0.625,0.656,0.677,0.794,0.911,0.94,0.722,0.492,0.234,0.234,0.224,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,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.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.234,0.234,0.234,0.234,0.234,0.35,0.467,0.584,0.701,0.817,0.92,0.942,0.942,0.948,0.804,0.916,0.941,0.941,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.343,0.459,0.576,0.693,0.81,0.917,0.941,0.941,0.941,0.948,0.949,0.949,0.949,0.949,0.949,0.949,0.802,0.536,0.241,0.241,0.241,0.241,0.206,0.206,0.206,0.206,0.206,0.323,0.44,0.557,0.673,0.79,0.79,0.79,0.862,0.923,0.923,0.923,0.942,0.942,0.723,0.493,0.235,0.206,0.206,0.206,0.206,0.322,0.439,0.556,0.673,0.789,0.906,0.939,0.946,0.648,0.765,0.882,0.917,0.941,0.941,0.941,0.948,0.948,0.727,0.496,0.234,0.234,0.225,0.215,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.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.923,0.71,0.485,0.244,0.244,0.244,0.244,0.244,0.244,0.244,0.361,0.477,0.594,0.711,0.827,0.922,0.943,0.942,0.942,0.948,0.949,0.949,0.949,0.949,0.95,0.729,0.497,0.235,0.235,0.235,0.235,0.234,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.946,0.946,0.946,0.946,0.727,0.495,0.408,0.226,0.204,0.204,0.204,0.204,0.204,0.204,0.321,0.438,0.555,0.671,0.788,0.905,0.905,0.905,0.905,0.934,0.945,0.945,0.945,0.945,0.726,0.494,0.235,0.235,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.938,0.947,0.947,0.947,0.947,0.947,0.946,0.949,0.729,0.496,0.235,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,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.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.784,1.013,2.274,3.323,1.417,1.303,2.042,1.739,0.719,0.351,0.671,1.713,1.752,1.766,0.572,-0.043,-0.013,0.819,1.462,6.669,4.066,2.046,1.922,2.712,2.326,3.124,1.953,3.657,2.93,3.446,2.155,1.38,1.063,1.346,0.968,0.967,1.021,0.979,1.779,1.827,-0.428,-0.374,-0.43,-0.133,-0.321,-0.011,2.823,3.203,2.159,1.246,0.875,0.64,1.741,0.677,0.871,0.69,0.649,0.384,0.851,0.388,1.377,0.606,0.824,0.441,0.178,0.139,0.075,0.006,0.084,-0.119,-0.312,0.065,0.355,1.383,1.232,1.47,0.956,1.033,1.24,0.93,0.908,1.338,1.238,1.702,1.071,1.733,2.053,0.612,-0.215,-0.612,-0.417,-0.14,0.399,0.653,0.503,0.636,2.086,1.815,1.633,1.089,0.916,1.106,1.065,1.273,1.156,1.704,1.607,1.429,1.948,4.054,1.221,1.144,5.824,0.617,-0.07,-0.286,-0.486,0.569,-0.373,-0.189,1.494,0.871,2.704,8.927,2.165,1.511,0.853,1.289,2.234,1.622,1.375,1.314,1.265,2.371,1.134,2.551,0.266,0.062,4.099,1.558,1.474,1.533,-0.403,-0.479,1.233,1.571,1.118,2.04,0.75,0.525,0.561,0.49,0.93,0.383,0.848,0.847,3.696,0.95,0.203,1.584,-0.051,-0.207,-0.358,-0.314,0.182,0.323,0.104,0.167,0.276,1.669,1.679,1.345,0.997,0.804,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.485,1.794,2.135,1.831,1.879,1.264,1.222,1.02,1.57,0.858,1.262,1.367,0.745,0.718,2.153,0.811,0.653,0.246,-0.449,-0.041,-0.028,0.455,-0.153,0.744,1.21,5.167,2.385,3.195,2.049,1.936,0.619,1.687,0.87,1.278,1.568,1.601,1.402,1.335,1.356,1.411,1.869,1.837,0.875,0.164,-0.144,-0.055,0.424,6.474,1.683,1.963,1.868,2.102,1.364,1.011,0.761,0.755,1.867,0.794,1.283,1.454,1.391,1.367,1.392,1.41,0.8,-0.228,-0.157,0.728,1.073,0.033,0.484,1.24,2.532,6.821,2.316,3.055,2.433,2.03,1.213,0.87,1.737,0.687,1.156,1.199,1.146,1.38,1.337,1.32,0.656,0.496,-0.071,-0.221,-0.256,-0.121,0.188,0.677,1.459,1.921,1.161,2.075,2.785,2.308,1.185,0.881,1.184,1.228,1.976,1.573,1.335,1.281,1.271,1.721,3.455,0.349,-0.715,-0.371,-0.205,1.682,1.559,-0.459,0.045,0.131,0.196,2.194,1.75,1.689,1.375,1.16,1.319,1.708,1.481,1.696,1.481,2.649,1.238,0.915,0.789,0.275,-0.439,-0.028,-0.021,0.781,0.333,2.23,0.953,0.728,2.333,2.235,1.716,1.372,3.319,0.935,0.728,1.183,1.504,1.334,0.93,0.855,0.87,0.91,2.903,0.314,0.213,0.328,-0.022,4.912,0.98,0.609,-0.145,3.391,2.674,1.568,1.435,1.972,1.136,0.559,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.542,1.465,1.489,1.167,1.318,1.597,1.859,1.651,1.509,4.461,1.839,0.573,-0.046,-0.311,0.632,0.162,0.005,4.104,0.905,0.593,0.949,0.871,1.704,3.654,0.927,3.761,1.214,0.972,1.477,1.787,1.363,2.048,0.767,0.692,0.768,0.111,1.199,1.189,0.013,-0.079,0.686,0.25,0.168,0.071,0.126,0.263,1.223,2.112,1.4,1.091,0.913,1.322,1.324,2.785,1.412,1.34,2.191,2.146,0.857,2.247,1.595,-0.016,-0.235,0.481,-0.126,-0.096,0.121,0.115,0.722,0.479,0.567,1.214,1.11,1.772,1.166,2.755,1.131,1.115,1.537,1.271,1.684,1.25,1.22,0.544,0.213,-0.063,-0.054,1.116,0.465,0.386,1.04,0.008,1.651,1.473,4.519,1.833,0.958,1.794,1.471,1.216,1.587,1.906,1.724,1.321,0.892,2.674,0.046,1.234,1.338,-0.442,0.42,2.427,0.726,0.222,0.781,2.164,2.289,1.424,2.142,1.741,2.088,1.197,0.835,0.714,1.197,0.785,0.438,0.633,0.606,0.579,1.018,0.96,1.038,1.53,6.142,0.082,1.425,1.309,4.077,7.995,2.34,2.159,2.202,2.356,1.826,1.393,2.053,1.33,0.671,1.169,0.69,0.35,0.884,1.063,1.069,1.122,0.158,-0.294,0.707,-0.061,6.045,3.371,-0.27,1.484,3.015,3.493,1.925,1.605,1.491,1.355,2.627,0.564,1.13,1.339,1.071,0.982,1.593,4.511,2.533,1.706,0.322,-0.343,0.652,-0.242,-0.114,0.316,2.118,-0.039,0.557,-0.22,0.438,3.574,1.342,2.237,1.872,0.608,1.619,1.962,1.807,2.047,2.683,2.087,1.829,1.495,0.39,-0.025,0.114,-0.394,-0.466,0.182,0.266,0.06,0.64,1.175,1.259,1.621,2.204,0.796,1.092,1.514,1.213,1.808,1.712,1.208,1.214,1.244,1.36,1.257,0.439,-0.219,-0.236,-0.115,-1.053,-0.957,1.073,1.385,2.583,1.395,0.889,2.949,2.506,5.058,1.016,1.916,0.901,1.556,1.446,1.267,1.218,2.318,4.104,1.88,0.606,-0.361,-0.189,2.272,0.873,0.33,3.048,0.806,1.749,1.541,2.435,3.887,1.81,8.002,0.989,0.5,1.28,2.118,3.556,1.784,1.175,1.176,2.107,1.116,0.641,0.879,0.69,1.379,1.5,0.433,0.685,0.416,1.989,1.865,2.157,2.846,1.618,2.601,3.008,1.972,0.584,0.353,0.351,0.35,0.349,0.349,0.613,2.034,1.339,2.955,2.79,0.52,0.716,1.345,2.202,2.199,2.767,2.789,1.872,1.991,1.986,2.109,0.771],"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.18,26.29,23.96,20.63,22.86,22.04,19.69,19.57,21.42,23.11,22.13,22.26,22.18,22.28,22.55,24.1,24.48,24.53,24.48,23.74,23.65,23.5,23.48,23.86,23.26,23.52,24.09,23.42,20.93,18.95,19.16,19.71,20.2,18.99,19.76,19.66,19.54,19.64,19.69,19.55,22.35,23.14,24.74,24.35,24.6,24.44,22.89,20.7,20.65,23.13,24.42,25.0,20.5,22.48,23.68,22.66,22.88,23.83,24.12,24.24,24.4,24.6,23.47,23.8,23.86,25.06,24.25,24.45,25.39,25.11,25.6,24.63,23.68,23.62,24.0,23.84,23.99,23.94,21.59,23.6,21.39,21.74,21.81,21.52,22.24,21.72,21.59,22.72,23.55,24.09,24.53,24.45,24.27,23.91,23.38,23.32,22.88,23.47,23.94,24.22,24.33,24.32,24.22,24.09,24.25,21.68,21.72,21.81,21.99,21.51,22.06,22.09,20.94,22.49,23.63,24.27,25.1,24.55,26.25,27.28,25.64,25.88,24.66,24.15,23.27,23.25,24.19,22.42,21.44,21.69,22.0,22.1,22.27,21.92,22.34,21.9,22.67,23.22,23.38,24.04,23.78,23.64,25.26,27.46,26.42,26.97,26.85,26.2,27.1,27.44,27.36,27.51,27.75,28.03,28.32,28.49,26.95,27.87,28.47,27.66,28.2,28.25,28.12,27.93,27.52,27.14,26.75,26.41,26.08,26.68,26.93,26.96,26.94,26.86,26.94,26.75,26.9,26.96,27.03,27.09,27.29,27.18,27.3,25.96,26.18,25.96,25.56,25.17,24.69,24.18,23.81,23.89,23.54,23.79,24.11,24.44,24.45,24.38,21.77,22.88,21.02,21.13,21.9,21.95,21.81,21.79,22.02,22.53,24.53,23.5,23.75,23.41,24.24,23.85,23.95,25.2,22.53,22.96,23.36,23.91,25.77,23.57,23.9,22.16,21.02,21.59,21.89,22.02,21.87,21.75,21.55,21.12,22.66,23.44,24.11,23.91,23.71,21.3,21.3,21.89,22.39,23.06,23.6,24.12,24.36,24.46,21.79,23.07,21.05,21.86,21.88,21.98,21.86,21.87,21.96,24.08,24.01,23.87,23.35,23.59,23.28,23.15,22.74,22.28,22.29,22.63,23.07,23.25,23.99,24.28,20.56,22.56,20.7,22.07,22.32,21.7,21.87,21.94,22.01,21.9,23.69,24.06,24.2,24.04,23.77,23.45,23.16,22.97,22.82,23.14,23.33,23.31,23.83,24.35,24.59,22.51,21.35,21.66,21.99,22.08,22.12,22.28,22.17,22.8,25.01,24.26,24.41,25.75,26.55,26.96,26.41,26.12,25.74,24.34,23.24,23.59,23.9,24.34,24.52,22.89,21.59,21.63,21.8,21.36,22.21,22.22,22.27,22.11,24.47,23.72,24.07,23.88,25.15,23.02,22.85,23.1,22.71,23.06,23.48,23.96,23.12,24.03,24.4,22.68,21.4,21.23,21.83,21.91,21.88,22.01,21.27,22.86,24.6,23.72,24.2,21.73,22.79,23.98,25.85,26.03,25.53,26.1,26.55,26.4,27.14,27.51,26.75,26.69,26.7,26.77,26.89,27.01,27.38,27.42,27.62,27.6,27.49,27.28,26.39,26.36,26.6,27.13,27.67,28.34,28.95,29.72,30.17,27.96,26.21,25.06,24.79,23.55,22.02,21.85,21.83,21.9,20.94,22.09,22.25,23.93,24.85,23.92,23.95,25.03,25.78,23.68,22.98,22.56,22.91,22.12,21.73,23.52,22.69,24.01,24.44,22.15,21.0,21.72,22.01,22.12,22.04,21.93,21.83,22.23,23.31,23.64,23.79,23.65,24.06,23.81,23.84,23.87,23.9,23.97,23.77,23.75,24.0,23.8,23.84,22.82,21.31,21.75,21.74,21.33,21.49,21.8,21.14,21.19,22.98,23.58,23.73,23.86,23.91,23.53,22.47,22.96,24.29,24.94,24.13,24.15,24.03,24.05,22.96,22.64,21.49,21.39,21.95,21.92,21.97,22.1,22.31,22.79,24.17,24.26,24.04,23.79,24.05,23.93,24.29,21.11,21.7,22.34,23.29,23.97,24.13,24.27,24.27,22.68,21.3,21.2,21.92,22.06,21.26,22.09,22.24,22.73,24.73,23.96,23.24,23.93,24.53,24.23,21.66,21.38,21.96,22.47,22.93,23.35,23.81,24.32,24.55,22.61,23.36,24.47,23.96,24.09,24.2,24.29,23.06,22.39,23.49,23.8,24.23,23.44,23.49,22.99,22.35,22.35,22.53,22.54,23.11,24.23,24.82,20.05,21.11,22.52,20.75,21.99,23.4,21.47,21.1,21.08,21.84,24.01,24.0,23.79,23.76,22.8,23.72,25.32,22.51,21.02,21.29,22.11,22.59,22.61,23.11,22.93,23.99,21.67,21.04,22.65,23.23,21.12,21.3,21.01,21.62,22.35,24.0,23.8,23.89,23.66,23.38,22.94,23.09,23.03,24.15,25.82,22.22,23.34,23.18,23.95,24.3,22.21,20.99,20.86,20.89,20.58,20.71,20.88,21.02,21.54,22.88,22.89,23.96,24.13,23.81,23.73,23.0,22.52,22.82,24.04,23.73,23.75,24.73,23.24,21.85,22.01,21.1,20.99,21.97,22.09,22.13,22.0,21.87,22.16,23.5,23.72,23.86,26.15,27.1,24.39,23.08,22.62,24.38,25.11,20.91,21.9,22.7,23.4,20.22,21.92,21.24,21.59,22.01,22.21,22.08,21.13,21.92,21.78,23.71,24.08,20.58,22.25,23.29,22.45,22.5,22.27,22.12,22.37,21.87,22.62,22.62,23.33,24.65,21.63,20.71,19.94,20.36,21.75,22.05,21.85,21.89,22.24,23.57,21.65,22.5,20.69,22.64,22.88,22.75,22.33,23.55,24.75,22.18,22.9,19.89,18.96,19.05,21.36,22.88,23.56,24.0,24.32,24.59,23.92,23.19,24.0,23.51,23.15,23.53,23.48,23.23,22.84,22.45,22.14,21.95,22.97,23.21,23.71,24.23,24.76]},"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.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.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.433,0.251,0.251,0.251,0.251,0.251,0.251,0.251,0.251,0.251,0.251,0.251,0.251,0.251,0.368,0.484,0.601,0.718,0.834,0.834,0.834,0.834,0.834,0.834,0.834,0.834,0.923,0.828,0.668,0.271,0.271,0.271,0.271,0.271,0.271,0.271,0.388,0.388,0.504,0.621,0.621,0.738,0.855,0.9,0.937,0.945,0.949,0.949,0.95,0.949,0.95,0.729,0.497,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.906,0.938,0.947,0.947,0.947,0.946,0.946,0.946,0.946,0.765,0.56,0.331,0.216,0.204,0.204,0.204,0.204,0.203,0.203,0.32,0.437,0.554,0.67,0.787,0.904,0.938,0.947,0.946,0.946,0.844,0.925,0.942,0.942,0.724,0.498,0.272,0.272,0.272,0.272,0.272,0.272,0.272,0.272,0.389,0.389,0.506,0.622,0.739,0.856,0.856,0.856,0.855,0.855,0.928,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.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.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.32,0.437,0.554,0.671,0.787,0.787,0.787,0.904,0.938,0.947,0.947,0.946,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.321,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.438,0.555,0.672,0.789,0.789,0.789,0.788,0.788,0.788,0.788,0.905,0.938,0.721,0.566,0.346,0.346,0.346,0.346,0.346,0.346,0.346,0.346,0.463,0.579,0.696,0.813,0.919,0.941,0.941,0.941,0.941,0.941,0.941,0.941,0.948,0.948,0.727,0.502,0.235,0.235,0.206,0.206,0.206,0.206,0.323,0.439,0.439,0.556,0.673,0.79,0.906,0.939,0.947,0.524,0.64,0.757,0.874,0.931,0.944,0.944,0.726,0.494,0.234,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,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.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.319,0.436,0.553,0.669,0.786,0.786,0.786,0.786,0.786,0.786,0.786,0.884,0.934,0.718,0.49,0.311,0.311,0.311,0.311,0.311,0.428,0.544,0.661,0.778,0.895,0.936,0.945,0.945,0.949,0.533,0.649,0.766,0.883,0.883,0.883,0.882,0.449,0.376,0.299,0.213,0.213,0.213,0.213,0.213,0.213,0.33,0.447,0.563,0.68,0.797,0.913,0.941,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.818,0.647,0.56,0.56,0.56,0.56,0.45,0.45,0.45,0.45,0.45,0.45,0.567,0.683,0.8,0.915,0.915,0.915,0.915,0.915,0.915,0.915,0.94,0.94,0.722,0.492,0.31,0.214,0.214,0.214,0.214,0.331,0.448,0.565,0.681,0.798,0.915,0.94,0.94,0.861,0.929,0.944,0.944,0.944,0.943,0.943,0.948,0.948,0.728,0.535,0.292,0.273,0.252,0.23,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.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.94,0.722,0.492,0.356,0.356,0.356,0.356,0.356,0.355,0.355,0.355,0.472,0.589,0.706,0.822,0.921,0.942,0.942,0.942,0.948,0.948,0.948,0.948,0.948,0.949,0.729,0.504,0.263,0.263,0.262,0.262,0.262,0.208,0.208,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.946,0.946,0.946,0.727,0.495,0.408,0.226,0.205,0.204,0.204,0.204,0.204,0.204,0.321,0.438,0.555,0.671,0.788,0.905,0.905,0.905,0.704,0.82,0.921,0.942,0.942,0.942,0.723,0.493,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.949,0.729,0.496,0.235,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,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.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.886,1.561,1.277,0.913,0.323,0.212,0.488,0.46,0.201,0.202,0.231,0.243,0.245,2.33,0.564,1.008,1.188,1.013,1.528,1.827,2.989,1.635,1.344,1.37,0.795,0.66,0.629,0.684,0.483,0.374,0.313,0.284,0.282,0.247,0.262,0.3,0.905,0.869,0.5,0.455,1.923,1.017,0.143,0.738,0.363,0.491,0.676,0.656,0.581,0.637,0.939,0.532,0.268,0.202,0.232,1.025,0.85,0.7,0.729,0.752,0.361,0.365,0.437,0.441,0.449,0.404,0.336,0.916,0.107,0.173,0.312,0.673,0.728,0.518,0.521,0.553,0.632,1.041,0.23,0.683,0.685,0.202,0.729,0.739,1.793,0.62,0.592,0.884,1.536,1.007,0.964,1.036,0.334,0.298,0.334,1.02,0.737,0.781,0.715,0.584,0.374,1.104,0.776,0.683,0.685,0.7,0.729,0.298,0.566,0.606,0.516,0.582,0.598,1.149,0.966,0.734,0.141,0.158,0.178,0.676,0.65,0.552,0.488,0.412,0.811,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.857,0.653,0.745,0.511,0.549,0.757,0.8,1.184,0.185,0.685,0.7,0.729,0.738,0.971,0.4,0.494,0.514,1.131,0.738,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.746,0.36,0.205,0.725,0.733,0.748,0.773,0.844,0.815,2.349,1.332,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.768,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.941,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,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.683,0.685,0.7,0.682,0.511,0.589,2.082,0.686,1.01,0.714,0.885,0.828,0.929,0.186,0.175,1.392,1.077,1.085,0.806,0.751,0.616,0.947,1.233,0.483,0.683,0.685,0.704,0.738,0.591,0.656,4.527,3.724,2.305,2.265,1.003,0.91,1.282,0.407,0.355,0.314,1.231,0.901,0.954,1.058,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.056,1.939,1.124,1.192,1.286,1.051,0.856,1.04,0.466,0.394,0.582,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.763,1.264,0.542,0.385,0.638,0.576,0.683,0.691,0.718,0.751,2.706,0.708,0.975,2.696,0.677,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.221,0.866,0.683,0.363,0.242,0.231,0.294,5.058,1.98,2.061,1.067,0.533,0.915,2.424,4.514,0.39,0.288,0.094,0.357,0.305,0.443,0.45,0.233,0.804,1.142,0.785,0.683,0.685,0.7,0.347,0.252,0.309,0.462,0.899,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.632,0.66,0.269,0.185,0.685,0.7,0.729,0.757,0.373,0.466,0.572,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.199,1.156,0.683,0.685,0.312,0.231,0.063,2.659,1.047,1.299,0.681,0.976,1.447,1.125,1.875,1.157,0.148,0.189,1.091,0.839,0.627,0.703,0.966,1.008,0.287,0.186,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.414,0.202,0.216,0.241,0.269,0.389,2.363,1.528,0.606,2.297,0.715,0.411,1.8,1.831,0.935,2.676,1.115,2.235,0.844,1.124,0.708,0.401,0.851,0.713,0.186,0.686,0.714,0.746,0.778,1.534,0.752,0.762,0.72,0.811,0.904,1.367,1.394,1.63,0.767,0.62,0.105,0.58,0.718,0.739,0.65,0.492,0.441,0.33,0.743,0.747,0.745,0.755,0.701,0.459,0.475,0.589,0.725,0.664,0.687,0.862,0.821,0.959,0.181,0.174,0.188,1.025,0.991,0.888,0.851,4.83,0.691,0.413,0.849,0.724,0.73,0.739,0.765,0.965,0.878,1.837,0.926,0.907,1.525,0.928,1.053,1.164,0.479,0.52,1.164,2.582,1.047,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.392,1.79,1.222,1.457,0.772,0.855,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.756,1.166,1.053,1.231,1.079,1.197,1.483,2.031,1.006,0.58,0.515,1.228,1.561,0.953,0.875,0.552,0.461,0.59,0.574,0.185,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.077,1.855,1.711,1.995,1.236,0.915,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.52,23.91,25.38,25.92,24.25,23.88,25.16,25.85,25.89,26.32,26.7,24.4,25.46,25.72,25.56,25.93,25.13,25.14,24.82,25.88,25.94,26.23,26.46,26.47,26.36,25.67,25.85,25.83,26.06,26.25,26.36,26.65,26.72,26.97,27.18,27.38,27.37,27.18,26.5,26.35,25.22,25.34,26.7,26.57,26.55,26.52,26.47,25.94,24.45,24.4,25.24,25.69,25.79,23.73,24.11,25.33,25.49,25.85,26.14,26.31,26.62,26.82,27.05,27.2,27.26,26.82,26.95,26.45,26.44,26.6,26.53,26.55,26.41,25.6,24.53,23.62,24.66,25.35,25.54,25.57,25.45,26.05,25.33,25.79,26.12,24.26,24.19,24.5,24.77,24.74,24.92,25.29,25.52,25.4,25.36,25.45,25.53,25.62,25.69,24.17,25.08,25.81,26.07,26.16,26.13,26.45,26.47,26.39,26.33,26.37,26.38,25.46,25.32,26.06,26.44,26.46,26.48,26.69,26.49,26.5,26.51,26.54,24.11,24.31,25.85,26.34,26.55,26.55,26.42,25.66,26.15,25.53,23.67,25.53,25.86,25.87,25.92,25.75,26.02,26.14,26.27,26.39,26.27,26.31,26.27,25.68,24.06,22.87,22.27,24.29,25.53,25.67,25.52,25.6,25.37,25.56,25.63,25.7,25.57,25.67,25.9,25.82,26.04,26.12,26.2,26.24,26.24,26.18,26.07,25.97,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.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.83,24.74,25.7,26.0,26.26,26.46,26.57,26.72,24.96,23.28,24.47,23.87,24.38,24.96,25.05,25.02,25.26,25.35,25.4,25.43,25.39,25.47,25.55,25.18,24.45,23.24,24.05,25.3,25.83,26.16,26.34,26.49,26.42,26.16,25.08,25.48,25.46,25.5,25.51,25.36,25.48,25.56,25.5,25.68,25.6,25.57,25.42,23.88,24.49,25.67,25.72,25.78,25.88,25.96,26.0,26.18,26.18,25.91,25.87,25.9,25.86,25.88,25.96,24.06,24.05,25.78,25.79,26.01,25.85,25.67,25.52,24.79,24.96,24.22,23.81,25.25,25.84,26.0,25.94,26.11,26.11,24.48,25.23,25.43,25.49,25.54,25.71,25.6,25.72,25.75,24.47,25.32,25.22,25.4,25.44,25.5,25.34,23.58,23.92,25.4,25.9,26.07,25.99,26.06,26.03,25.47,23.88,23.68,25.04,25.6,25.48,25.29,25.37,25.38,25.36,25.35,25.32,25.14,24.3,24.66,24.97,24.45,24.83,25.86,26.1,26.23,26.15,26.18,26.06,25.92,25.77,25.78,25.69,25.59,25.54,23.96,23.62,24.95,25.24,25.07,25.14,25.28,25.38,25.49,25.53,24.21,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.03,27.27,26.45,26.43,24.31,24.02,25.63,26.25,26.51,26.6,24.22,24.42,24.14,23.6,25.29,25.42,24.28,24.94,23.88,24.09,24.85,24.82,24.9,25.04,25.09,25.13,25.19,24.55,22.86,23.62,24.76,25.18,25.47,25.63,25.72,25.55,25.62,25.75,25.73,25.79,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.7,24.35,25.14,25.43,25.58,25.61,25.76,25.78,25.82,24.27,23.96,25.33,25.71,25.82,25.69,25.66,25.73,25.7,25.5,25.67,25.65,25.63,25.01,23.45,22.49,23.74,25.01,25.38,25.47,25.37,25.7,25.8,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.43,23.44,25.05,25.62,25.76,25.69,25.8,24.01,23.67,23.03,24.48,24.5,23.6,24.42,23.27,23.16,24.98,25.16,25.19,25.23,25.26,25.31,24.11,22.99,24.59,25.64,25.82,25.96,26.04,25.97,26.03,25.5,25.21,24.64,24.47,23.4,23.9,25.18,25.04,25.1,25.1,25.12,25.15,25.2,25.23,25.23,25.3,23.61,22.89,24.78,25.51,25.85,26.03,26.05,25.99,23.32,23.78,25.2,23.49,24.49,24.69,23.37,23.31,24.95,23.53,24.7,23.96,24.89,23.71,24.02,24.78,22.64,22.68,24.5,25.18,25.52,25.77,25.89,24.5,24.5,24.84,25.4,25.69,24.61,23.98,24.77,23.21,23.18,22.41,24.14,24.9,25.01,25.05,25.13,24.76,24.65,24.9,25.27,25.35,25.46,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,25.12,24.92,24.81,24.63,24.49,24.32,24.58,25.05,25.48,25.63,25.68,25.82,25.73,25.19,25.42,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.28,24.66,24.65,24.79,24.89,24.04,23.71,25.21,25.47,25.65,25.63,25.66,25.54,25.2,24.99,24.9,24.81,24.73,24.7,24.42,24.36,24.25,24.26,24.1,24.8,24.93,24.86,25.06]},"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.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.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.2,0.2,0.269,0.338,0.406,0.406,0.405,0.404,0.299,0.298,0.298,0.297,0.297,0.296,0.296,0.295,0.295,0.294,0.294,0.293,0.293,0.361,0.43,0.498,0.567,0.635,0.634,0.633,0.632,0.631,0.63,0.698,0.766,0.833,0.793,0.726,0.599,0.598,0.597,0.596,0.595,0.594,0.593,0.592,0.66,0.728,0.796,0.795,0.863,0.9,0.921,0.932,0.938,0.942,0.941,0.943,0.942,0.941,0.812,0.653,0.422,0.307,0.252,0.226,0.226,0.225,0.225,0.294,0.362,0.431,0.499,0.567,0.635,0.413,0.481,0.549,0.549,0.617,0.685,0.753,0.821,0.878,0.76,0.615,0.402,0.298,0.248,0.223,0.223,0.223,0.222,0.222,0.291,0.359,0.428,0.496,0.564,0.632,0.7,0.768,0.836,0.886,0.829,0.882,0.911,0.927,0.805,0.647,0.419,0.418,0.417,0.417,0.416,0.415,0.415,0.414,0.482,0.482,0.55,0.618,0.686,0.754,0.753,0.752,0.75,0.818,0.877,0.908,0.925,0.935,0.807,0.649,0.42,0.391,0.358,0.317,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.225,0.225,0.212,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.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.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.942,0.94,0.812,0.653,0.421,0.421,0.307,0.252,0.251,0.251,0.32,0.388,0.388,0.456,0.524,0.592,0.661,0.729,0.796,0.586,0.654,0.722,0.79,0.858,0.898,0.919,0.794,0.64,0.415,0.387,0.354,0.314,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.225,0.225,0.224,0.224,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.202,0.201,0.27,0.339,0.407,0.475,0.544,0.543,0.542,0.541,0.54,0.539,0.608,0.665,0.733,0.64,0.526,0.357,0.357,0.356,0.356,0.355,0.424,0.492,0.56,0.628,0.696,0.764,0.832,0.885,0.913,0.798,0.865,0.902,0.922,0.92,0.919,0.917,0.792,0.689,0.572,0.467,0.467,0.466,0.465,0.465,0.464,0.532,0.531,0.599,0.667,0.735,0.803,0.869,0.904,0.923,0.933,0.939,0.938,0.936,0.935,0.933,0.939,0.862,0.73,0.48,0.479,0.478,0.478,0.334,0.334,0.333,0.332,0.332,0.4,0.469,0.537,0.605,0.673,0.672,0.671,0.67,0.669,0.737,0.805,0.869,0.904,0.782,0.631,0.41,0.302,0.301,0.301,0.3,0.369,0.437,0.506,0.574,0.642,0.71,0.778,0.846,0.596,0.664,0.732,0.8,0.867,0.902,0.922,0.933,0.939,0.811,0.652,0.421,0.392,0.359,0.318,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.2,0.2,0.2,0.2,0.2,0.269,0.338,0.406,0.406,0.405,0.299,0.298,0.298,0.297,0.248,0.247,0.247,0.246,0.246,0.246,0.245,0.245,0.245,0.244,0.313,0.381,0.45,0.518,0.586,0.585,0.584,0.583,0.583,0.582,0.65,0.718,0.823,0.715,0.582,0.386,0.385,0.384,0.384,0.383,0.383,0.382,0.381,0.45,0.518,0.586,0.654,0.722,0.79,0.858,0.898,0.921,0.931,0.938,0.941,0.94,0.943,0.814,0.654,0.422,0.422,0.421,0.42,0.42,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.914,0.913,0.928,0.801,0.645,0.567,0.378,0.286,0.285,0.242,0.242,0.241,0.241,0.31,0.378,0.447,0.515,0.583,0.651,0.65,0.649,0.42,0.488,0.556,0.625,0.693,0.76,0.663,0.543,0.366,0.365,0.28,0.28,0.238,0.238,0.238,0.237,0.306,0.374,0.443,0.511,0.579,0.648,0.716,0.783,0.851,0.894,0.918,0.93,0.937,0.941,0.813,0.653,0.422,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.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],"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.639,1.386,0.909,1.64,1.235,1.774,2.584,2.719,2.948,0.661,0.553,0.577,1.238,0.461,0.608,0.55,0.63,0.857,0.872,0.804,0.82,0.798,0.894,1.726,2.027,3.013,1.98,2.148,2.045,1.584,1.662,0.831,0.427,0.59,0.559,0.535,0.519,0.525,0.572,0.535,0.774,1.588,1.156,1.691,0.415,0.565,7.769,1.113,1.721,2.111,1.389,2.802,1.975,1.707,1.665,0.647,0.427,0.455,0.484,0.718,0.714,0.712,0.802,2.49,0.742,2.124,0.749,1.171,0.453,1.31,0.444,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.47,0.769,0.595,0.469,0.243,0.131,-0.014,-0.076,0.873,0.495,0.575,0.556,0.734,1.41,2.342,4.078,2.045,0.698,0.923,0.754,0.898,0.834,0.79,0.739,0.733,0.795,7.505,1.186,1.358,1.147,1.183,0.597,0.711,0.731,0.909,0.716,0.929,0.438,1.118,0.985,3.249,1.222,0.704,0.723,0.65,1.159,1.139,1.086,0.834,0.819,1.718,1.302,0.895,0.639,0.462,0.185,1.453,0.978,0.784,0.399,1.035,1.475,2.925,2.017,1.625,1.689,0.791,0.745,0.649,0.828,0.54,0.752,0.721,0.79,1.599,0.745,0.446,0.313,0.429,0.383,0.351,0.808,1.025,0.769,0.966,1.659,1.786,2.245,2.354,1.562,1.44,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.373,2.387,1.536,1.515,2.054,3.155,2.171,1.55,1.562,1.319,0.695,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.013,1.197,4.011,2.369,2.117,2.588,1.144,1.807,0.694,0.84,0.97,0.92,1.085,0.66,0.677,0.769,5.116,0.708,0.838,1.482,0.775,0.652,1.009,0.886,0.51,0.829,1.07,0.817,1.931,2.143,2.228,8.731,0.985,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,1.871,4.67,4.377,5.579,8.887,1.241,0.665,0.419,0.658,0.793,0.792,0.848,2.033,0.574,0.528,0.44,0.794,0.37,0.662,0.62,0.904,0.642,1.107,0.877,1.722,2.311,1.491,2.312,2.481,1.056,0.498,0.622,0.821,0.793,0.767,0.832,0.855,1.027,0.659,0.477,0.3,0.327,0.332,0.423,0.493,0.669,0.925,0.524,1.641,2.783,3.14,1.366,1.391,1.556,0.905,0.62,0.827,0.804,0.781,0.839,1.01,2.775,0.694,1.208,0.926,0.86,0.793,0.701,0.954,0.866,1.035,1.119,2.354,1.92,1.927,1.135,1.093,3.22,0.569,0.516,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.34,1.634,2.178,1.487,1.79,2.197,2.334,1.645,1.062,0.703,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.218,1.939,1.791,0.427,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.623,1.216,1.106,1.429,1.137,0.947,0.976,0.816,0.804,0.793,0.784,0.783,0.79,2.331,0.376,1.309,0.84,0.655,0.492,1.007,0.706,0.407,0.486,0.377,0.341,1.134,0.835,1.502,1.358,0.834,1.046,1.27,1.018,0.762,0.754,0.736,1.925,0.857,0.629,0.82,0.797,0.578,0.617,0.514,0.572,0.597,0.249,0.372,1.105,1.287,1.366,2.159,3.301,2.145,0.69,0.422,0.513,0.75,2.056,0.766,0.85,1.108,2.932,0.886,0.497,0.475,1.366,0.94,0.955,1.075,0.791,0.844,0.597,0.98,1.225,1.56,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.61,0.658,0.936,1.067,1.252,1.036,1.854,3.098,1.839,1.736,1.012,0.587,0.73,0.677,0.633,0.6,0.586,0.637,0.65,2.323,0.863,0.977,0.917,1.189,2.025,1.51,1.843,2.221,2.553,1.695,2.621,1.464,1.228,1.129,1.298,0.73,0.733,0.736,0.705,0.676,0.671,0.709,0.656,1.052,1.197,1.262,1.012,0.946,0.762,1.043,1.104,1.528,3.601,2.093,2.716,1.92,1.613,1.903,1.258,0.708,0.649,0.737,0.941,0.774,0.838,0.882,1.198,0.922,1.024,0.869,0.572,1.043,1.098,0.961,1.182,0.616,0.588,0.741,1.716,2.013,1.657,1.181,1.005,0.461,0.636,0.857,0.839,0.827,0.83,0.913,0.885,0.836,1.115,1.94,0.542,0.569,1.534,1.411,1.201,0.673,0.682,1.316,1.666,1.399,1.85,1.22,2.224,1.148,1.905,0.806,0.748,0.797,0.804,3.596,1.011,1.05,2.047,1.627,0.501,0.377,0.737,0.531,0.809,0.686,0.89,1.527,1.578,9.519,2.098,1.661,1.103,0.765,0.638,0.986,0.925,0.882,0.859,0.91,1.395,1.676,5.555,6.917,2.473,0.943,1.481,2.295,1.649,1.448,1.493,1.254,1.823,2.421,1.798,9.749,2.158,0.655,0.833,0.995,0.943,0.909,0.898,0.937,0.979,1.247,1.017,1.073,1.02,3.605,1.247,1.054,1.524,1.51,1.173,1.155,9.646,1.832,1.308,1.111,1.44,1.368,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.034,1.951,2.403,2.489,2.711,2.706,1.965,1.756,1.524,3.419],"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.51,22.24,23.41,23.97,24.61,24.41,24.48,23.86,22.84,23.8,24.23,24.27,24.93,25.22,24.86,25.24,25.68,25.43,25.03,24.73,24.45,24.25,24.01,23.64,22.8,22.05,22.95,23.67,22.55,22.53,22.53,24.29,25.15,24.97,25.19,25.29,25.34,25.39,25.48,25.66,25.37,24.96,25.01,24.16,24.12,23.99,23.24,22.91,22.6,23.08,23.39,22.77,22.79,22.78,22.77,23.4,24.39,24.61,24.71,24.87,24.99,25.12,25.25,24.7,25.07,24.62,24.93,25.02,24.86,24.66,24.5,24.39,24.4,24.36,24.22,24.38,24.43,23.82,23.22,23.22,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.82,24.51,24.3,24.06,23.53,23.93,22.71,23.66,24.34,24.68,24.47,24.7,24.68,24.73,24.87,25.08,25.15,25.03,25.16,24.26,23.81,23.53,23.08,22.81,22.52,22.24,22.45,22.21,23.48,24.29,24.49,23.25,24.15,24.5,24.54,24.76,24.54,24.42,24.4,24.68,24.95,25.29,25.34,25.4,25.3,25.01,24.74,24.35,24.11,23.86,23.56,23.46,23.17,23.44,23.66,24.13,24.3,24.65,24.7,24.77,24.86,24.9,24.98,25.17,25.28,25.17,25.4,25.32,25.13,24.97,24.64,24.33,23.63,23.27,23.1,22.7,21.72,22.29,22.73,23.05,23.68,24.34,24.06,24.17,24.25,24.33,24.34,24.37,24.46,24.67,24.84,24.88,24.86,24.69,24.45,24.27,23.47,23.37,23.38,23.42,23.24,22.85,23.45,23.79,24.1,24.21,24.35,24.35,24.46,24.53,24.56,24.65,24.72,24.95,25.15,25.23,25.13,24.9,24.55,24.13,23.76,23.54,23.45,21.67,21.84,21.85,21.79,22.49,22.94,23.57,23.13,22.56,22.35,22.34,23.63,24.36,24.69,23.18,23.87,24.34,23.95,23.78,23.51,22.85,22.53,22.4,22.92,22.63,23.39,23.28,22.57,22.6,22.15,23.35,24.45,24.33,24.19,23.96,23.99,24.06,24.19,24.68,25.07,24.54,24.21,23.8,23.53,23.38,23.07,22.75,22.52,22.51,22.76,23.67,23.26,22.71,21.46,21.62,23.44,24.12,24.44,24.73,24.66,24.83,25.02,24.85,24.99,24.44,23.99,23.68,23.46,23.21,22.95,22.69,23.0,22.91,23.12,23.2,23.34,23.69,23.2,23.11,24.38,24.81,24.6,24.64,24.72,24.9,25.06,25.44,25.69,25.61,25.25,24.83,24.49,24.15,23.82,23.61,23.22,22.69,23.42,23.98,23.31,23.27,23.68,23.73,24.74,24.57,24.73,24.78,24.84,24.97,24.98,25.12,24.41,24.58,24.49,24.36,24.11,23.71,23.46,23.19,22.6,22.56,22.9,22.59,22.92,23.26,23.72,24.01,23.25,24.2,24.57,24.46,24.58,24.65,24.73,24.93,25.06,25.01,24.3,23.85,23.5,23.16,22.83,22.84,22.49,22.42,22.9,23.31,23.65,24.0,24.18,24.42,24.59,24.45,24.53,24.57,24.58,24.61,25.04,25.3,25.17,24.52,24.23,23.78,23.63,23.56,23.62,24.02,24.43,25.2,25.96,26.85,27.44,23.07,23.2,23.12,24.75,24.5,24.63,24.7,24.73,24.79,24.86,25.04,25.07,24.56,24.03,23.59,23.38,23.13,22.89,22.68,22.49,22.37,23.15,23.29,23.61,23.7,23.76,23.83,24.52,24.47,24.48,24.53,24.62,24.76,24.91,24.41,24.25,24.15,24.56,24.57,24.36,24.02,23.79,23.61,23.48,23.01,23.52,23.78,24.06,24.07,23.97,24.1,24.19,24.38,24.42,24.52,24.68,24.9,24.58,24.82,24.91,24.34,24.15,24.03,23.77,23.52,23.41,23.33,23.18,23.37,23.14,23.52,23.49,23.46,22.28,23.39,24.2,24.65,24.6,24.68,24.05,24.48,24.74,25.1,24.39,24.06,23.76,23.57,23.35,23.13,22.88,22.66,22.52,22.47,23.46,24.02,24.36,24.56,24.36,24.52,24.04,24.55,24.66,24.72,24.81,24.94,25.05,24.82,25.05,24.09,24.17,24.01,23.71,23.47,23.3,23.47,23.28,22.49,22.68,22.65,22.44,22.81,23.13,24.06,24.68,24.29,24.45,24.49,24.5,24.56,24.64,24.83,24.16,24.32,24.18,23.95,23.64,22.89,22.26,21.9,21.66,21.49,22.15,22.33,22.84,23.35,23.91,23.05,23.61,23.49,23.42,23.42,23.44,23.46,23.52,23.99,24.42,24.39,23.85,23.29,23.02,22.87,22.73,22.56,22.26,21.61,21.54,21.5,21.98,22.74,23.08,23.51,23.84,23.93,23.61,23.65,24.24,24.33,24.49,24.66,24.6,24.03,23.84,23.58,23.29,22.98,22.71,22.53,22.42,22.97,23.29,23.08,23.02,23.32,23.69,23.85,24.76,24.5,24.51,24.55,24.61,24.71,24.85,25.1,25.17,24.89,24.68,23.92,23.28,23.07,22.93,22.81,22.72,22.22,23.0,23.42,23.57,23.24,23.9,22.42,23.32,23.6,23.93,24.15,24.26,24.41,23.47,24.16,24.46,23.89,23.93,23.69,23.5,23.23,23.05,22.79,22.54,22.29,22.52,22.85,22.48,23.01,23.36,23.83,24.3,24.61,24.26,24.27,24.33,24.46,24.63,24.67,24.65,24.01,23.31,23.06,23.52,22.73,22.39,21.78,21.41,21.67,22.13,22.64,22.96,23.47,23.09,23.67,24.6,23.83,24.04,24.1,24.19,24.3,24.46,24.69,24.76,24.71,24.45,24.1,22.65,23.1,22.47,22.34,22.11,21.88,22.2,21.98,22.66,23.28,23.74,24.26,24.53,24.1,24.23,24.25,24.27,24.3,24.4,24.57,24.56,24.42,23.48,23.43,23.14,22.42,21.9,21.51,21.35,21.2,21.45,21.97,22.53,23.05,23.53,22.8]}},"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.664,1.9293,2.0721,2.1845,2.3126,2.5067,2.6605,2.8033,2.957,3.0326,3.0835,3.1237,3.1847,3.2535,3.3284,3.4025,3.4443,3.5365,3.5781,3.6542,3.7546,3.9999,4.1876,4.3496,4.5503,4.7632,4.9267,5.1189,5.2575,5.4283,5.5793,5.7228,5.8115,5.8793,5.9353,5.9979,6.0491,6.0994,6.153,6.2055,6.3055,6.4295,6.4774,6.5395,6.6072,6.6529,6.8818,6.9354,7.0773,7.2452,7.3674,7.5035,7.6028,7.6891,7.8148,7.8685,7.9138,7.9528,7.9923,8.0538,8.1237,8.1758,8.2599,8.3712,8.4274,8.5128,8.5525,8.6035,8.632,8.6821,8.7073,8.7444,8.7582,8.785,8.8484,8.9471,9.0367,9.1307,9.2132,9.2988,9.3744,9.4482,9.503,9.5828,9.6593,9.728,9.8023,9.891,10.0168,10.0598,10.0809,10.1066,10.1514,10.2062,10.2604,10.3264,10.4081,10.5059,10.7306,10.8815,11.0695,11.1836,11.2515,11.3271,11.3905,11.4853,11.5653,11.6572,11.7449,11.8277,11.9281,12.2712,12.3578,12.4484,12.6666,12.7361,12.7709,12.8251,12.8746,12.9391,12.9894,13.0532,13.177,13.2546,13.3811,13.7522,13.8651,13.9411,14.0102,14.0825,14.2004,14.3001,14.3911,14.4735,14.5549,14.7199,14.8054,14.9242,14.9834,15.0183,15.1456,15.2618,15.3562,15.4507,15.4847,15.5557,15.7248,15.8809,15.9913,16.1199,16.2059,16.2598,16.3195,16.3756,16.4606,16.4927,16.5588,16.6244,16.7753,16.8704,16.9263,16.9972,17.0207,17.0482,17.0923,17.1241,17.1734,17.2385,17.299,17.3751,17.4987,17.6245,17.7612,17.8881,17.9806,18.0634,18.1239,18.1818,18.2285,18.2681,18.3057,18.3423,18.3793,18.4463,18.4949,18.5965,18.6392,18.6806,18.7558,18.8403,19.1068,19.2859,19.4379,19.5674,19.7222,19.8973,20.038,20.14,20.2397,20.3463,20.4216,20.4741,20.5356,20.5981,20.6415,20.6839,20.7701,20.8196,20.8662,20.9037,20.941,20.9833,21.019,21.0908,21.3947,21.4864,21.6001,21.9099,22.092,22.2922,22.457,22.5708,22.6566,22.7444,22.8155,22.8909,22.9688,23.0675,23.1484,23.2282,23.3121,23.5253,23.6242,23.7706,23.8781,23.9391,23.9864,24.0423,24.1193,24.3285,24.5123,24.7243,24.9132,25.0627,25.1888,25.3019,25.5917,25.6572,25.7551,25.8176,25.8846,25.9732,26.0594,26.1455,26.2351,26.3254,26.3784,26.4188,26.4979,26.5494,26.6181,26.667,26.7697,26.8737,27.0932,27.5796,27.8516,28.0344,28.2704,28.4822,28.7074,29.0168,29.1172,29.1623,29.2144,29.2961,29.3731,29.457,29.542,29.6636,29.7156,29.7613,29.7914,29.8296,29.865,29.904,29.9616,30.0582,30.2299,30.4146,30.5442,30.6898,30.867,31.0142,31.1423,31.293,31.373,31.4402,31.5489,31.6379,31.7193,31.7989,31.8794,31.9688,32.1166,32.2066,32.2405,32.2787,32.3091,32.3936,32.4755,32.517,32.5698,32.642,32.7659,32.9091,33.0728,33.2371,33.3389,33.4305,33.5411,33.6523,33.7271,33.8198,33.9058,34.0254,34.1068,34.1796,34.3026,34.4628,34.6066,34.7008,34.7919,34.867,34.9236,35.0538,35.1845,35.3088,35.5297,35.6994,35.8317,35.9557,36.1163,36.1926,36.3199,36.385,36.4574,36.5195,36.5699,36.6178,36.6689,36.7268,36.847,36.902,36.9693,37.0343,37.0944,37.3117,37.4063,37.5221,37.6255,37.8191,37.974,38.1084,38.2438,38.3932,38.5037,38.5641,38.615,38.6698,38.7222,38.7614,38.7978,38.8401,38.8401,38.8401,38.8401,38.8401,38.8401,38.8401,38.8401,38.8401,38.8401,38.8401,38.8401,38.8401,38.8401,38.8401,38.8401,38.971,39.106,39.2166,39.2739,39.3618,39.4418,39.5391,39.6302,39.718,39.8938,40.0586,40.1247,40.1741,40.2778,40.3647,40.4196,40.5175,40.7091,40.8218,40.9468,41.0675,41.1632,41.2718,41.4311,41.5215,41.6818,41.7689,41.8522,41.9539,42.0539,42.1361,42.2285,42.2803,42.3299,42.428,42.5897,42.7205,42.8397,42.8903,42.9202,42.9962,43.0948,43.2431,43.2987,43.3451,43.3861,43.4652,43.56,43.6575,43.742,43.7993,43.891,43.9991,44.1318,44.2145,44.2949,44.3998,44.5277,44.5845,44.6774,44.7613,44.8107,44.8519,44.9445,45.0188,45.0457,45.0777,45.1046,45.1766,45.2736,45.3509,45.4414,45.5546,45.7049,45.8154,45.9334,45.9974,46.0523,46.1238,46.2399,46.331,46.4129,46.5021,46.6143,46.6599,46.6911,46.7225,46.8167,46.8816,46.9481,47.0402,47.1309,47.3009,47.4307,47.6411,47.7542,47.8493,47.969,48.0811,48.1772,48.284,48.3973,48.4908,48.5722,48.6299,48.7392,48.9696,49.1169,49.2699,49.3534,49.4046,49.5252,49.6063,49.6648,49.7695,50.0269,50.2434,50.3988,50.547,50.7125,50.8453,50.9512,51.0326,51.0994,51.1634,51.2111,51.2483,51.2972,51.3384,51.3809,51.4398,51.564,51.7139,52.0644,52.3195,52.4054,52.5498,52.6589,52.867,53.2044,53.388,53.5416,53.7341,53.8759,53.9933,54.0924,54.2033,54.2886,54.3529,54.42,54.4662,54.5021,54.5541,54.6131,54.6743,54.8055,54.889,54.943,55.0592,55.1072,55.316,55.4958,55.5807,55.6949,55.9637,56.1576,56.3565,56.4829,56.6052,56.72,56.844,56.9054,56.9775,57.0429,57.121,57.1924,57.2844,57.4629,57.6152,57.7138,57.7752,57.8215,57.8808,57.9376,58.0094,58.0873,58.231,58.3122,58.4157,58.4653,58.545,58.7288,58.8378,58.9564,59.0538,59.0975,59.1723,59.2753,59.3735,59.4782,59.6017,59.7087,59.8005,59.8823,59.9433,60.021,60.0595,60.0961,60.166,60.2363,60.3071,60.3606,60.4484,60.6056,60.7208,60.8377,60.9818,61.0653,61.301,61.398,61.5002,61.6003,61.6924,61.7716,61.8513,62.0134,62.1099,62.2028,62.3288,62.4032,62.4443,62.4997,62.5483,62.5944,62.6832,62.8328,63.0671,63.3069,63.4541,63.848,64.012,64.2355,64.324,64.4203,64.484,64.5836,64.6749,64.7585,64.8405,64.9564,65.1429,65.2646,65.4809,65.6871,65.7996,65.9339,66.0547,66.1668,66.3462,66.5237,66.764,66.9816,67.1561,67.3725,67.507,68.0597,68.1825,68.2554,68.3333,68.4737,68.6287,68.7286,68.8111,68.8953,69.0492,69.1401,69.2224,69.31,69.3957,69.5724,69.6874,69.774,69.8976,70.0696,70.2891,70.4966,70.8764,71.0583,71.1714,71.3051,71.4498,71.5598,71.6169,71.6651,71.7008,71.7379,71.7752,71.8146,71.8638,71.9577,72.0471,72.2209,72.3612,72.442,72.5646,72.7096,72.8866,73.0798,73.2856,73.4942,73.6843,73.8345,73.9693,74.0991,74.2349],"decisions":[{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline: no overcooling or warm room, batteries empty with idle prices, tanks at 0; no changes needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline everywhere: no overcooling or warm trim, batteries idle at SoC floor, tanks at 0; accepting strategy as given.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling baseline (no trim, rooms near setpoint); battery idle-ish gentle charge from cheap hour; dhw 0; Building_2 cooling held at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling baseline (no trim, rooms near setpoint), small battery charge in cheap hour, tank idle; Building_1 cooling range permits baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling baseline in B1 and null elsewhere, battery gently charged in cheap hour before top price; no tank action; no trim to end.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: baseline cooling, no trim held, batteries idle at low price, tanks at 0; peak limiter on so no extra charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline; battery idle as price is low and no top-price hours now; cooling stays baseline since rooms are near setpoint.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null (baseline) for all; small battery charge in cheap hour; tank idle. Building_2 battery kept per strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline; battery idle as price is not top-priced and peak headroom is zero, so I follow it.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 battery charge at 0.15, B2 same; cooling baseline except B1 cooling strategy 0.194 slightly under baseline; B3 trim ended per envelope; dhw 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B2 battery charge toward top-price hours and B3 cooling is null with trim ended; no overrides needed, all within ranges.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: Building 1 battery charge 0.15 in cheap clean hour, cooling baseline since no overcooling; Building 2 and 3 similar, dhw and cooling kept at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: no cooling trim (rooms near setpoint), small battery charge in cheap hour before top price; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following the strategy: no cooling trims, battery charges gently ahead of top-price hours; dhw idle, matching the envelope's ranges.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: no overcooling or warm trim, so cooling stays at baseline; B1 and B3 battery per strategy, B2 small charge; tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Accepted strategy: top-price discharge in all buildings; Building_3 overcooled 0.87 C so a trim starts at 0.658; others keep baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Top price now, so batteries discharge per strategy; B3 trim held in cold room, cooling at strategy value; B1 and B2 follow baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_3 trim held and cooling null in B2 at setpoint; B1 and B3 cooling per strategy; batteries discharge at top price, within ranges.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 and Building_3 hold cooling trims at range minimums; Building_2 unoccupied, baseline cooling; batteries discharge at top price; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy; Building_1 and Building_2 cooling at baseline-plus-strategy within range, Building_3 eases trim per strategy; battery discharges at top-price hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Send strategy as given: Building_1 cools warm room to 0.68; batteries have no usable charge, tanks idle, and no trims are held.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 cooling slightly below baseline is allowed but B1 is cold with trim off so keep baseline-near; B2 warm at setpoint+2.18 gets strategy cooling; batteries idle since usable near zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline everywhere: no overcooling or warm trim needed, flat price, batteries idle, tanks at 0; following strategy as given.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline everywhere: no overcooling or warm trim needed, flat price so batteries idle, tanks at 0; no change proposed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, so batteries idle; following strategy cooling for B1 and B3, B2 unoccupied with null cooling, no end_trim needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: hold cooling trims in cold rooms, batteries idle on flat 24h price, tanks at zero; Building_2 warm so cooling as strategy suggests.","status":"ok"},{"clamps":[{"applied":0.0,"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.099","requested":0.0,"rule":"trim_hold"}],"fallback":null,"reason":"Follow strategy: flat price, batteries idle, Building_1 held trim at baseline-range cooling 0; Building_2 and _3 at baseline since no trim or overcool.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline; Building_1 trim is ended, so cooling stays baseline and no action is needed; batteries idle on flat prices.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline everywhere: Building_1 and 3 cooling within range but no overcooling or warm trim; flat prices, batteries idle; accepting strategy as given.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline; flat price and no overcooling or warm trim, so null cooling and idle battery and tank are followed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices: flat price day, no overcooling or warm trim needed, batteries idle and tanks at 0; baseline cooling kept everywhere.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price and no overcooling; cooling and battery follow strategy (idle), with Building_1 and Building_3 held at baseline; no reason to deviate.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 stores spare solar slightly; Building_2 unoccupied, no cooling change; Building_3 near baseline. Flat price, no trim held.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 battery stores solar slightly, B2 and B3 keep baseline cooling since no trim; B3 warm but trim ended, no extra cooling taken.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline; flat price and no overcooling or warm trim, so baseline cooling and idle battery and tank are kept.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline: no overcooling or warm trim needed, flat prices so batteries idle, and tanks at 0; no changes made.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline: cooling null, batteries idle on flat price, tanks at 0; no trims held and rooms near setpoint.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries idle; Building_1 cooling trimmed slightly below baseline per strategy; Building_2 and 3 follow strategy, cooling null where in range, no tank action.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy followed: B1 cooling held in trim at strategy 0.623 inside range; B2 and B3 baseline cooling; batteries idle on flat price, tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: Building_1 holds trim at baseline-minus-depth; B2 and B3 at baseline; batteries idle on flat price, hot water tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline-ish cooling: B1 trim held at 0.551 (within range 0.5-0.59); B2 and B3 at baseline; batteries idle on flat price, no top-price hours.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy followed: cooling held at strategy values in cold rooms (B1, B3 trim hold), B2 unoccupied baseline, batteries idle on flat price, dhw zero.","status":"ok"},{"clamps":[{"applied":0.4904,"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.099","requested":0.5894,"rule":"trim_hold"},{"applied":0.3865,"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.098","requested":0.4846,"rule":"trim_hold"}],"fallback":null,"reason":"Following strategy: trims held in B1 and B3 with cooling inside range; B2 at setpoint with null cooling; batteries idle on flat price; tanks at 0.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 holds trim at cooling 0.2907 (room 0.9 C below setpoint); B2 and B3 at baseline cooling; batteries and tanks idle on flat price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: Building_1 cooling 0.3324 (trim held, room 0.35C below setpoint); Building_2 and 3 near baseline; batteries idle on flat price, dhw zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: flat price, so batteries idle; Building_3 trim held at baseline-plus-0.3466 cooling; Building_1 ends its trim and returns to baseline-free cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, so batteries idle; Building_2 warm-room trim and Building_3 held trim follow strategy, Building_1 baseline cooling.","status":"ok"},{"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.099 by at most 0.02 per hour","requested":0.0,"rule":"trim_hold"}],"fallback":null,"reason":"Follow strategy: flat price, battery idle; Building_1 cooling 0.53 is below cooling_range, so clamp to 0.4331; Building_2 and 3 hold baseline/trim as given.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Building_1 holds a trim at 0.2496 per strategy; Buildings 2 and 3 follow baseline cooling; batteries idle on flat price day, as strategy gives.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline-like cooling and idle batteries on a flat price day; Building_1 trim eases within range, Buildings 2 and 3 have no trim, so following strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline for B1 and B3 cooling where ranges allow; B2 warm room gets strategy cooling 0.044 within range; batteries idle on flat price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: flat price so batteries idle, cooling null or as given; Building_1 cooling 0.154 within range; Building_2 and 3 hold baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline-like actions: flat price so no battery arbitrage, B1 cooling held in trim, B2 and B3 at baseline; following strategy as given.","status":"ok"},{"clamps":[{"applied":0.1635,"point":"Building_1.cooling","reason":"indoor 19.7 C is within 0.5 C of the setpoint 20.0 C, trim eases off from 0.029 by at most 0.02 per hour","requested":0.1721,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day so batteries idle; Building_1 eases trim per strategy, B2 and B3 follow strategy with cooling null or baseline; tank idle.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Follow strategy: flat price so batteries idle, Building_1 eases trim within range, B2 and B3 use strategy cooling where allowed; B3 null as baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy cooling is null for B1 and B2/B3 mildly warm; battery charge follows strategy within envelope; ranges respected, no overrides needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 cooling baseline with battery charge, B2 unoccupied idle cooling; no trims held, all within ranges; charge is cheap and clean.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 cooling near baseline, B2 unoccupied so null; batteries charge gently before top-price hours; tanks idle; no trims held.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 eases trim with cooling 0.0571; Building_2 unoccupied, baseline; Building_3 at setpoint, baseline; store solar in batteries per strategy.","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.079","requested":0.0,"rule":"trim_hold"}],"fallback":null,"reason":"Accepted strategy actions within envelope ranges; B1 holds its cold-room trim, B1 stores solar, B2 cools warm room, B3 at baseline.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 and Building_2 battery/cooling as given; Building_1 trim is ended and cooling held per envelope; no deviations needed.","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":"Follow strategy: B1 battery 0.08 stores spare solar, B2 and B3 discharge to shave peak; B2 cooling held at baseline since cooling_range is tight, B3 cooling null.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Follow strategy: no cooling trims since rooms are near setpoint; B1 small battery charge from spare solar, B3 battery idle; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: all cooling at baseline (no trim, rooms near setpoint), batteries and tanks idle; price is low and peak headroom is ample.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following the strategy: batteries held since price is low and not top-price hours yet; cooling as given, with B2 slightly above baseline and B3 starting a small trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling per strategy for B1/B2 and B3 trim held; batteries idle, price flat-ish and not top hours yet; no tank action.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: idle batteries and tank, cooling per strategy; B1 and B3 cooling null keep baseline; B2 cooling null; no trim ends needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 holds trim at range minimum, Building_2 and 3 baseline-like; batteries idle as price is low and not top-price hours yet.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed the strategy: batteries and tanks held, Building_1 trim eases, Building_2 cools warm room, Building_3 trim held.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed the strategy: warm room 1 and 2 get extra cooling, room 3 holds its trim, batteries and tank idle with prices low and no top-price hours now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: idle batteries and tank, null cooling in B1/B2; B3 holds trim at baseline-minus 0.005 as strategy gives, no end needed.","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.028","requested":0.0,"rule":"trim_hold"}],"fallback":null,"reason":"Follow strategy: idle batteries and tank, hold Building_3 cooling trim at strategy value; Building_2 cooling null as trim ended, battery idle pre-peak.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling is null in B1 and B2 at baseline, B3 holds trim at 0.0117; batteries idle, no top-price discharge yet and price is low, tanks at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling near baseline, batteries idle since price is low and not top-price; Building_2 and 3 cooling null as rooms at/above setpoint.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling baseline or small adjustments within ranges, battery charges in cheap hour before top-price hours; B2 warm room gets extra cooling, B3 null.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 ease trim cooling 0.0044 and charge battery; B2 and B3 cooling null, charge 0.15 ahead of top-price hours; tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 cooling 0.0096 in ease trim, B2 cooling baseline with battery charge 0.15, B3 cooling baseline; charge batteries cheaply before top price, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 holds trim at 0.0022 cooling; Building_2 charges battery 0.15; Building_3 charges 0.15 with baseline cooling; tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building 1 and 2 cooling null (room not overcooled), Building 3 keeps baseline cooling; batteries charge gently ahead of top-price hours, dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline; buildings are near setpoint with no trim, and price is flat-ish with no discharge window yet.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline; battery idle since price is not top and peak below target, tank idle, cooling baseline kept as null.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: batteries and tank idle, cooling null at baseline; price is low now and top-price hours are ahead, so no discharge yet.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: cooling baseline/null, batteries idle, tank 0; Building_1 cooling near baseline with no trim; no clamp issues noted.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline everywhere: no overcooling or warm trim, and price is not at top; no grid charging needed, batteries idle as strategy says.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: building 1 and 2 cooling null at baseline; building 3 charges battery 0.15 before top price; no trims active, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B2 baseline cooling, B3 battery charge 0.15 ahead of top-price hours; no trims active, no clamps needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 and 3 use baseline cooling, Building_2 gets slight extra cooling; batteries charge ahead of top-price hours; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: top-price hour now, discharge batteries evenly; Building_2 cooling is in range but trim ended, so keep baseline-consistent strategy values as given.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Accepted strategy actions: discharge over top-price hours, warm-room cooling trim in Building_2, baseline cooling elsewhere, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following the strategy: baseline cooling, battery discharged evenly over the three top-price hours, tanks idle; no trim is active.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling baseline/null, batteries idle this hour, tanks idle; Building_2 trim already ended at setpoint so cooling stays null.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: batteries idle, cooling per strategy for B1 and B2 with B3 at baseline; no price spike now, top-price hours ahead at 20-22.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 cooling 0.1298 easing trim, B2 and B3 cooling null, batteries idle, no price-top hour now; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Accepting strategy: hold batteries for the top-price hours ahead, keep the cooling trim in Building 1 and the small cooling uplift in Building 2, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: holding batteries and tank, cooling per envelope; no clamps, cheap hours ahead of top-price evening.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baselines with mild extra cooling in warm Building_1 and idle battery; Building_2 and 3 follow strategy, Building_3 cooling null as trim is off.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: cheap-hour battery charging before the top-price window; B1 trims cooling while overcooled, B2 cools a warm room a bit more, B3 stays at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null (baseline) in all buildings, batteries charge toward top-price hours, dhw idle; Building_1 trim ended, no end_trim needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: Building 1 and 3 cooling per envelope, battery charging in cheap hour before top price at 13-15h; Building 2 cooling null, no trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: no cooling trim in any building, battery charging gently in cheap clean hour before top price; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null (baseline) in all, battery charge gently in cheap clean hour before top price; Building_2 trim already ended, no action needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: Building_1 cooling 0.055 and battery charge 0.15 ahead of top-price hours; Buildings 2 and 3 keep baseline cooling, charging batteries at 0.15 in cheap hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null (baseline) in all buildings, battery charged gently in cheap hour before top price; Building_1 battery 0.07 per strategy, tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: B1 and B3 cooling/battery as given; B2 cooling null since room is 1.05C above setpoint with no trim; peak limiter on, so no extra charging beyond strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 cooling trim held at 0.084 within range; Building_2 and 3 overcooling not present, battery charge near top-price start; tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building 1 holds trim at 0.068 cooling; Building 2 and 3 keep baseline cooling; batteries gently charge ahead of top-price hours, within envelope.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 eases trim within range; B2 and B3 unoccupied, baseline cooling; batteries charge gently ahead of top price, tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 eases its trim toward baseline, Building_2 and _3 use baseline cooling, batteries idle or store spare solar; no clamps needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: cooling baseline (null) in all buildings, battery stores spare solar, tank idle; no clamps or trims needed this hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null (baseline), no trim, battery and tank idle; all rooms within comfort, no price arbitrage this hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy keeps cooling at baseline and battery charges slightly ahead of the top price; no clamps or trims needed, following strategy as given.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: discharge batteries toward top-price hours, cooling as given; no trims held or ended, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: held trim in cold Building_1, discharge at top-price hour, tanks idle; no clamps expected.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Sent strategy actions as given: cooling trim held in Building_1, batteries discharge into top-price hours within range, and the district is at its peak target.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy within envelope ranges; shaving district peak and holding Building_1 cooling trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow the strategy: hold cooling trims in the overcooled rooms and idle battery and tank; Building_2 unoccupied so baseline. Peak limiter on, no changes.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 eases trim within range, Building_2 cooling baseline, Building_3 holds trim with small battery discharge to shave the peak; no price-driven moves now.","status":"ok"},{"clamps":[{"applied":0.1343,"point":"Building_1.cooling","reason":"indoor 24.2 C is within 0.5 C of the setpoint 24.3 C, trim eases off from 0.079 by at most 0.02 per hour","requested":0.1933,"rule":"trim_hold"},{"applied":0.0917,"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.099","requested":0.1908,"rule":"trim_hold"}],"fallback":null,"reason":"Following strategy: Building_1 and Building_3 cooling as given, Building_2 cooling null; batteries idle as flat-ish price; B3 trim held, B1 easing.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 hold eased trims at strategy cooling; B2 null cooling at baseline; batteries idle as price is not top-hour and no peak shave needed.","status":"ok"},{"clamps":[{"applied":0.1151,"point":"Building_1.cooling","reason":"indoor 24.3 C is within 0.5 C of the setpoint 24.3 C, trim eases off from 0.039 by at most 0.02 per hour","requested":0.1341,"rule":"trim_hold"}],"fallback":null,"reason":"Follow strategy: cooling per envelope, batteries idle this hour (price low, not top-price), tanks at 0; Building_2 and 3 cooling null as strategy gives.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 eases trim within range, Building_2 cooling up to strategy, Building_3 null; batteries charge gently in cheap hours before top price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: battery charges gently in cheap clean hour before top price; cooling null at baseline for all buildings as rooms are near setpoint with no trim held.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: Building_1 cooling 0.208 is clamped to range max 0.3332 but strategy gives in-range value; Building_2 and 3 keep baseline cooling; batteries charge to prepare for top-price hours.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: cooling null in B1 (baseline plus small range), B2 and B3 at baseline; battery charging 0.15 in cheap hour ahead of top price; tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 battery charges 0.15 (replaces its -0.5 discharge idea? no, strategy stands), cooling null; B2 and B3 cooling null, battery charge 0.15 in cheap clean hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null (baseline) in all buildings, battery charge in cheap hour before top price; Building_1 battery 0.15 and dhw 0 kept as given.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: B1 battery to -0.5 and B3 to -0.434 shave the peak; B2 cooling null, trim ended; tanks idle. Battery B2 at -0.074 would be clamped to range, so kept baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: cooling null where in band, battery charging toward 0.95 before top-price hours, tank idle; Building_1 cooling at strategy 0.151 is inside range.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 ease trim with cooling near baseline, B2 and B3 cooling null, batteries charge gently ahead of top price; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 cooling null-to-baseline range kept, battery discharge limited; B2 and B3 hold baseline cooling, no trim; tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 battery charges to 0.95 before top price; B2 unoccupied with cooling null; B3 battery charge per strategy; no trims held; tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building 1 and 3 battery moves as given, Building 2 unoccupied so cooling baseline; tank idle; no trims held, no end_trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 cooling at range/strategy values, B2 unoccupied, batteries charge modestly ahead of top-price hours 3-5; B1 cooling 0.183 within range.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 holds a trim at its setpoint, B2 and B3 unoccupied at baseline; B3 charges battery 0.15 in a cheap clean hour before top price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: no cooling trim in B1/B3 and B2 unoccupied; B3 charges battery from spare solar; B1 and B2 battery idle ahead of top-price hours.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: top-price hour now, discharge batteries within ranges; B2 unoccupied so cooling baseline; B1 and B3 keep baseline cooling since trims are off.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: discharge batteries in this top-price hour, hold Building_3 cooling trim, keep Building_2 cooling at baseline while unoccupied.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Accept strategy: Building_1 and Building_2 discharge into top-price hours, Building_3 holds its cold-room cooling trim; all values sit inside the envelope ranges.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy; Building_3 trim held at min depth; Building_2 cooling null as room is above setpoint; Building_1 battery kept at strategy discharge for peak shaving.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B2 cooling null at baseline, B3 holds ease trim at 0.1489; batteries discharge modestly; tanks idle, no grid-charge needed now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B2 cooling baseline, B3 battery discharge to shave peak; B2/B3 trims ended since rooms at or above setpoint; no dhw.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Sending strategy as given: batteries held with little usable charge, tank idle, Building_3 trims cooling for an overcooled room, others at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling per ranges, batteries idle at 0 since top price is 17-19h ahead with low SOC; Building_3 trim eases with cooling 0.0964 held.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: batteries idle at low price with little usable charge; Building_2 warm so cooling raised to strategy 0.276 within range; Building_1 and 3 cooling per strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline: no overcooling or warm trim, batteries idle as usable charge is tiny and price is flat-low now; follow strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling baseline (no trim), battery charge 0.15 in cheap hour before top price; Building_1 and 3 cooling null, dhw 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: cooling null in B2/B3 (baseline), B1 cooling 0.191 within range, batteries charge gently in cheap hour before top price; tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 holds a cooling trim at 0.132, Building_2 and 3 keep baseline cooling, batteries charge 0.15 ahead of top-price hours 12-14, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 eases trim with cooling 0.1138 and battery charge 0.15; Building_2 and 3 use baseline cooling; batteries charge in cheap hour before top price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 ease trim with cooling near baseline; B2 and B3 keep baseline cooling; battery charges gently ahead of top-price hours, dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null (baseline) in all buildings, battery charge from spare solar and cheap hour, dhw idle; no trim active.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: no cooling trims (rooms near setpoint), battery charges gently ahead of top price, tank idle; B1 battery strategy 0.041 vs 0.15 is a minor adjustment.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: no cooling trims or clamps needed (rooms within band), small battery charge before top price; keep tank idle; B2 unoccupied so baseline cooling kept.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: B1 and B3 cooling null at baseline, B2 unoccupied; batteries per strategy with charging ahead of top price, tank idle, no trim ends.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 cooling null, B2 unoccupied; B1 battery idle, B3 small charge in cheap hour; no trim held, so baseline cooling kept.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null in B2/B3 (no trim, at or near setpoint), B1 cooling baseline-range; battery discharge only to shave peak per strategy; dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: B1 battery charge 0.15 ahead of top-price hours, B2 and B3 idle cooling; B3 end_trim not needed; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 eases trim within range, B2 unoccupied idle cooling, B3 baseline cooling; batteries charge gently before top-price hours; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 holds a cooling trim at 0.4342 and gentle battery charge; Buildings 2 and 3 keep baseline cooling; batteries charge ahead of top-price hours, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building 1 trim held so cooling stays in range; B2 and B3 unoccupied, baseline cooling; batteries discharge at top price; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 holds trim at cooling 0.0341 and discharges; B2 unoccupied, null cooling; B3 cooling 0.545 and battery -0.302 within range; tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Accept strategy: cooling held for Building_3 trim, battery discharges into top-price hours; no clamps expected, end_trim not allowed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following the strategy: batteries held at 0 with low prices now, B3 cooling trim held inside its range, B1 cooling at 0.12, B2 at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: hold batteries and tanks at zero, ease Building_1 and hold Building_3 cooling trims within range; Building_2 unoccupied, so baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_3 holds trim at cooling 0.1996; Building_1 eases to 0.1481; Building_2 at baseline; batteries idle as price is not top, peak headroom ample.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B2 idle at baseline; B3 eases its held trim at 0.1796 within range, no end; battery idle as no top-price hour now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: hold batteries and tank idle, cooling per strategy; Building_2 warm so cooling raised within range; Building_1 and 3 trims eased per envelope.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 cooling null (at setpoint), B2 cooling 0.252 within range to ease overcooled room; batteries idle, price low and not top-price yet.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: batteries idle, cooling null for B1 and B3 (in band), B2 cooling 0.272 as strategy gives; dhw 0; no trim end.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null (baseline), battery charges gently in cheap hour before top price; Building_1 battery 0.15 within range; no trims held.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: no cooling trims needed, charge batteries in cheap clean hour before top price; Building_1 and Building_3 cooling null, Building_2 idle cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 and Building_2 battery charge 0.15 in cheap hour before top price; Building_3 cooling baseline; no trim, all null otherwise.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: no cooling trims needed, B1/B2 charge battery in cheap hour, B3 cooling null; hold dhw at 0; no end_trim as trims are off.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: no cooling trims, battery charges gently in cheap hour before top price; all devices at strategy values, no deviation needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling baseline/null, battery charge 0.15 in cheap hour before top price; tank idle. No trim held, so no end_trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline; battery idle as price is low and peak headroom is ample, and no trims are active.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline everywhere: no overcooling or warm trim, price now mid-low, top-price hours ahead; batteries idle, tanks at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling baseline for B1 (overcooled? no, 0.44 above setpoint), storing solar in batteries; B2/B3 unoccupied, idle cooling; dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null (baseline) for all; Building_1 and Building_3 battery per strategy; Building_2 idle; dhw 0 everywhere; no trim end.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling baseline (no trim held), charge batteries gently before top-price hours, tank idle; Building_2 unoccupied so cooling baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null (baseline) in all buildings, small battery charging toward 0.95 before top price; dhw idle; no trim change.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling baseline (no trim needed), battery gentle charge before top price; Building_1 and 3 small charge per strategy, dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null (baseline), small battery charge in cheap hour before top price; tank idle; no trims active.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 battery discharge to top-price hours, cooling baseline; B2 unoccupied so cooling baseline; dhw 0 everywhere.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: discharge batteries into the top-price hour, hold the Building_3 cooling trim within range, and keep the tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: Building_3 trim held, cooling 0.729 within range; B1 battery discharge at top price now; B2 unoccupied, cooling null; dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following the strategy: cooling and battery discharge as given, tanks idle; Building_3 trim held, Building_2 unoccupied so cooling baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following the strategy as given: cooling holds trims in B1 and B3, B2 stays at baseline, batteries discharge into top-price hours, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy for all buildings: trims held or eased within cooling ranges, batteries discharge into the top-price hour, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 ease trim with cooling 0.1221; B2 cooling null, battery discharge; B3 hold trim at 0.1561 and battery -0.115; no tank action, no grid charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: flat price so batteries idle, cooling per strategy; B1 and B3 trims ease, B2 cooling null at setpoint, no end_trim needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline for all: flat price, no top-price discharge; Building_1 and Building_3 cooling null trims stay as envelope allows, Building_2 trim ended at setpoint.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day and no overcooling or warm-room trim needed; following strategy with null cooling, idle battery and tank, no end_trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline: rooms within band, flat price so batteries idle, tanks empty; no clamps needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline: rooms at setpoint, flat prices, battery idle; cooling stays baseline since no trim or overcooling applies.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline: rooms within band, flat prices, no trim. Batteries idle on flat_24h day; nothing to change.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline: rooms at or near setpoint, flat prices, batteries idle; no clamps or overrides needed this hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline: no trims needed, flat price day so batteries idle, tanks at zero; ranges and comfort checked.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline: rooms are at or above setpoint, prices flat so batteries idle; baseline cooling kept.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline everywhere: no overcooling or warm trim, flat prices, batteries idle; Building_1 and Building_3 cooling stays at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline: cooling null, flat prices, no trims, battery idle; accepting strategy as given.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline: rooms within band, flat price so batteries idle, tanks at 0; no deviation needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline everywhere: no overcooling or warm trim needed, flat prices, batteries idle; following strategy as given.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline: cooling null in all buildings, flat prices so battery idle; no clamps or overrides needed this hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline cooling and idle storage; flat price day so batteries idle, tanks at 0, no trim held, keeping baseline action.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 and 2 at baseline cooling, Building_3 small discharge; no trims held, battery held near floor, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 and 3 cooling near baseline; B2 warm so no trim, cooling null; batteries idle-ish per strategy; flat price, no end trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 and Building_3 cooling within range; Building_2 at setpoint with no trim, cooling null; battery idle-ish on flat price, tank 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 hold cooling trims in cold rooms; B2 at baseline; batteries idle on flat prices, tanks at 0, no end_trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 and Building_3 hold trims in cold rooms; Building_2 is warm at setpoint+1.1 so baseline cooling; battery idle on flat price day.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: holding trims in B1 and B3 (cold rooms), B2 at baseline with no trim; battery idle since prices are flat and no top-price hours.","status":"ok"},{"clamps":[{"applied":0.219,"point":"Building_1.cooling","reason":"indoor 23.8 C is more than 0.5 C below the setpoint 24.9 C, trim held at 0.096","requested":0.3151,"rule":"trim_hold"},{"applied":0.2513,"point":"Building_3.cooling","reason":"indoor 22.8 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.057","requested":0.308,"rule":"trim_hold"}],"fallback":null,"reason":"Follow strategy: B1 and B3 hold trims in cold rooms with cooling in range; B2 at setpoint uses baseline; battery idle on flat price, no top-price hours.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Following strategy: B1 and B3 hold cooling trims in cold rooms, B2 at baseline; batteries and tanks idle on flat price, peak below target.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: cooling per envelope ranges, batteries idle on flat price, tanks at 0; Building_1 cooling 0.1428 at range top, Building_3 held trim at 0.1338.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline-like cooling with flat prices and idle batteries; Building_1 and Building_3 trims are easing, Building_2 has no trim, so following strategy as given.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: flat price, batteries idle, no tank action; Building_1 cooling at baseline end trim, Building_3 trim eases per strategy, Building_2 baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline-like cooling and idle batteries on a flat price day; Building_3 trim eases within range, so I follow strategy values with no overrides.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline everywhere: cooling null, batteries idle on flat price, tanks at 0; Building_1 trim is in end state so no end_trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline cooling and idle batteries; Building_1 is cold but trim is off, so cooling stays at baseline for comfort and to match the reference.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds batteries and tanks at baseline; cooling nulls for Buildings 2 and 3 and range-bound value for B1 as given, flat price so no arbitrage.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline cooling and idles batteries on a flat price day; Building_1 cooling kept at strategy 0.0898 within trim ease, others follow strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline everywhere: flat price, batteries idle, tank 0; Building_1 cooling at strategy 0.1027 within range, Building_2 and 3 nulls as given.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline in all buildings; flat price so batteries idle; Building_1 trim easing with cooling at strategy value 0.124 within range.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline cooling in B1 and B3 and idles batteries; B2 cooling null as room is warm, keeping strategy; no conflicts with envelope ranges.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 holds a cooling trim at 0.155 within range; B2 and B3 at baseline with no trim; batteries idle, flat-ish prices and no peak pressure.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 holds trim at 0.025, B2/B3 at baseline cooling; battery stores spare solar, tank idle, no end_trim since B1 trim is still needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 battery stores spare solar, Building_2 and Building_3 hold baseline cooling; no clamps needed, all within ranges.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: no trims held, cooling at baseline or small overcool/warm adjustments; battery per strategy since price is flat and solar is spare.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline cooling in all buildings (no trim held, rooms within band); batteries idle since price is flat and SOC is low; tank at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 cooling at 0.409 is below range so clamp to 0.3097; B2 and B3 baseline; batteries near idle, B1 small discharge within range.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 eases trim within range, Building_2 cooling baseline, Building_3 cooling 0.552; batteries idle, tanks zero, no end_trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 holds a trim at its range minimum, Building_2 and Building_3 keep baseline cooling; batteries idle as strategy gives near zero and price is flat-low.","status":"ok"},{"clamps":[{"applied":0.2669,"point":"Building_1.cooling","reason":"indoor 23.9 C is more than 0.5 C below the setpoint 26.3 C, trim held at 0.150","requested":0.4169,"rule":"trim_hold"}],"fallback":null,"reason":"Follow strategy: B1 holds trim at 0.2669 cooling; B2/B3 baseline cooling; batteries near idle with tiny discharge; peak limiter on, no tank action.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 trim ended at setpoint, B2 and B3 keep baseline; B3 strategy cooling 0.701 is inside range but B3 is cold, so trim is off and null is kept per envelope.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 and Building_3 cooling per strategy, Building_2 baseline; batteries idle since usable charge is near floor and grid charging is limited; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling trims held in B1 and B3 (overcooled), B2 at baseline; battery idle as usable charge is near zero and no grid charging is needed now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling held in cold rooms via trims, batteries idle with SOC near floor, DHW idle; no change needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 hold cooling trims in cold rooms, B2 at baseline; batteries idle as price is not top-hour and no peak shaving needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline for B1 and B2 (no trim, battery idle at low price); B3 holds a cooling trim at strategy value 0.093, which is inside range.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null in B2 and B3 (no trim held, end state), B1 cooling 0.125 inside range; batteries idle, price flat-ish and not top-price hour yet.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null (baseline) in all buildings, batteries idle with near-empty usable charge, tanks idle; no clamps apparent.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline; batteries near floor with ~0 usable charge and no overcooling or warm trim, so following strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling as given (B1 0.183, B3 null), battery charge 0.15 in cheap hour before top price; B2 cooling null; no trim held, no end_trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 holds a cooling trim (0.1347 within range); Building_2 and 3 use baseline cooling; batteries charge gently ahead of top-price hours; tanks idle.","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":"Follow strategy: Building_1 cooling and battery charge, Building_2 and 3 as given; Building_3 cooling held at 0 inside its trim; no overrides needed this 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.0,"rule":"trim_hold"}],"fallback":null,"reason":"Follow strategy: B1 cooling 0.1243 eases trim, B2 cooling null, B3 cooling 0 holds trim; batteries charge gently ahead of top-price hours 10-12.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 ease trim cooling 0.1404, B2 and B3 cooling null, battery charge 0.15 in cheap hour before top price; dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed the strategy: holding batteries idle, cooling per strategy within ranges, Building_1 trim held, Building_2 warm room cooled more, tanks at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building 1 and 3 trim holds with cooling in range; Building 2 is above setpoint so baseline cooling; batteries charge gently before top price, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 holds trim with cooling in range; B2 and B3 at baseline cooling; battery charges gently before top-price hours, tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 holds trim at range minimum, B2 and B3 keep baseline cooling; batteries charge gently before top-price hours, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 holds trim at 0.1621 cooling, battery 0.011; Building_2 and 3 keep baseline cooling; battery charge gently before top price hours; dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 cooling at range top 0.2544 with trim held; B2 and B3 unoccupied so cooling null; battery charge gently ahead of top-price hours 3-5 within limits.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 holds a trim at 0.3478 cooling, batteries idle, tank 0; Buildings 2 and 3 stay at baseline since unoccupied.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null (baseline) except none overcooled; battery discharge to shave peak per envelope; dhw idle; no trim end since not ok.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed the strategy for all buildings: trimmed cooling in cold occupied rooms and discharged batteries evenly over the three top-price hours.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 and 3 hold trims at cooling_range, Building_2 unoccupied so baseline; discharge batteries at top price, no tank or end_trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy followed: B1 and B3 hold cooling trims in cold occupied rooms; B2 unoccupied, null cooling; batteries discharge into top-price hours within ranges; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: holding cooling trims in B1 and B3, B2 unoccupied at baseline, batteries idle as price is not top and peak headroom is ample.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling in B1 and B3 held in trim range, B2 baseline; batteries idle as price is not top and peak is under target.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling trims held in B1 and B3 at range floor, B2 at baseline; batteries and tanks idle as price is not top and no peak shaving needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling in B1 and B3 within ranges, B2 baseline; battery idle-ish discharge within range; tank 0; end no trims.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null in B1 and B2, hold trim in B3 at 0.099; batteries idle, price low and no top-price hours now.","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.0,"rule":"trim_hold"}],"fallback":null,"reason":"Follow strategy: Building_3 holds trim at minimum depth; Buildings 1 and 2 keep baseline cooling, batteries held as price is not at top.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Follow strategy: batteries idle, cooling per strategy; Building_3 trim held, ending as at setpoint; Building_2 warm room gets extra cooling within range.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null (baseline) for all, batteries idle, tanks idle; trims are ended or not held, no overcooling; district load well below peak target.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling per envelope ranges, batteries charge gently before top-price hours 13-15; Building_2 and 3 cooling null as strategy gives; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 eases trim within range, B2 and B3 keep baseline cooling; batteries charge gently before top-price hours, dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 eases its trim at 0.1267 cooling, Building_2 and 3 keep baseline cooling, batteries charge gently before top-price hours; tanks idle.","status":"ok"},{"clamps":[{"applied":0.1332,"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.026 by at most 0.02 per hour","requested":0.1392,"rule":"trim_hold"}],"fallback":null,"reason":"Follow strategy: cooling ranges held per envelope, batteries charge gently ahead of top-price hours at 0.15, tanks idle; B2 and B3 at or above setpoint use baseline cooling.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 cooling at 0.1404 in easing trim, batteries charge 0.15 before top-price hours; Building_2 and _3 cooling null, dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds cooling at baseline and batteries idle; price is low now, top-price hours are ahead, so I follow the strategy as given.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 overcooled so trim cools at 0 and it stores spare solar; B2 and B3 keep baseline cooling, idle battery.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 ease trim cooling 0.0803 in range; B2 and B3 overcooling absent, null cooling; B3 charges battery 0.15 ahead of top price; tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 cooling 0.173 easing trim in range, B2 and B3 unoccupied so null cooling, batteries idle, tank 0; no clamps needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 holds a cooling trim at the strategy value, batteries idle until top-price hours, tanks at 0; Building_2 and 3 keep baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 holds trim cooling 0.2850 within range; B2 unoccupied, baseline; B3 baseline; batteries idle, price not at top; no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 holds trim at cooling range; B2 unoccupied, B3 charges battery in cheap clean hour before top price; dhw zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 holds a cooling trim at 1.2 C below setpoint; Building_2 and 3 unoccupied, idle cooling; batteries charge ahead of top-price hours 1-3 per strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy discharges batteries at top price and holds Building_1 trim; Building_2 and 3 unoccupied, cooling null; follow strategy as given.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 trim held at 1.7C below setpoint, Building_2 unoccupied so baseline cooling, Building_3 strategy cooling 0.536 is below range so it is clamped to baseline; discharge at top price.","status":"ok"},{"clamps":[{"applied":0.5704,"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.099","requested":0.6692,"rule":"trim_hold"}],"fallback":null,"reason":"Following strategy: top-price hour and peak limiter on, so discharge batteries and hold trims; Building_2 cooling null as it is at setpoint.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Follow strategy: hold Building_1 trim near 0.4259, Building_3 cooling 0.342 in range, batteries idle since no top-price or peak shave now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: holding cooling trims in Buildings 1 and 3 and idle batteries; Building 2 at baseline since room is at setpoint, no end needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: Building_1 and 3 hold cooling trims inside range, Building_2 at baseline; batteries idle as price is not top and peak headroom is limited.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 hold cooling trims at range; B2 baseline; batteries idle as price is not top and peak headroom is small.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy; B1 cooling eased in trim ease state, B2 at setpoint no trim, B3 held trim at its min depth; battery discharge limited by peak headroom.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B2 cooling null/baseline-range, B3 holds trim at 0.03 cooling, batteries idle as price is not top and peak under target.","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.0,"rule":"trim_hold"}],"fallback":null,"reason":"Follow strategy: Building_3 trim held at 0.099 cooling floor; batteries idle as price is low and not top-price yet; Building_1 and Building_2 cooling per strategy.","status":"clamped"},{"clamps":[{"applied":0.0,"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.099 by at most 0.02 per hour","requested":0.0,"rule":"trim_hold"}],"fallback":null,"reason":"Following strategy: idle batteries and tank, cooling null for B1 and B2; B3 trim is easing so cooling held at strategy 0.0 within range limits, ending not needed yet.","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.079 by at most 0.02 per hour","requested":0.0,"rule":"trim_hold"}],"fallback":null,"reason":"Follow strategy: B1 cooling 0.085 and battery charge 0.15, B2 cooling null, B3 cooling 0.0 (trim easing), tanks idle; battery charge fits cheap pre-peak hours.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Following strategy: B1 cooling 0.0724 in ease trim, B2 and B3 cooling null, batteries charge 0.15 ahead of top price; hot water idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy keeps cooling baseline (no trim, rooms at or near setpoint) and charges batteries in cheap hour; accepting strategy as given.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: buildings 1-3 keep null or given cooling; battery charges gently before top-price hours, within ranges; no tank action; no trim to end.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: no cooling trims active (all rooms within band, trims off or ended), battery charges gently in cheap hour before top price; dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline; battery idle as price is near low and top-price hours are ahead, so keeping SOC for later discharge.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline: no overcooling or warm trim, flat-ish prices, peak far below target; battery idle until top-price hours.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 slight battery charge from spare solar, B2/B3 unoccupied so cooling null; no trims active, all within ranges.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 battery stores spare solar, B2 and B3 unoccupied with cooling null, dhw idle; no clamps conflict with actions.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: cooling baseline (no trim), battery stores spare solar in B1 and holds in B2/B3, tanks idle; B1 battery small charge.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B2 cooling null, B3 battery charge 0.15 ahead of top price; B1 battery idle as cooling range allows; no trims held, no clamps.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 cooling null with baseline; B2 unoccupied, idle cooling; batteries charge modestly ahead of top-price hours; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 cooling 0.416 vs baseline 0.432 (overcooled trim), Building_2 and 3 idle battery charge per strategy; dhw 0; no end_trim, tank held at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 cool at strategy values inside range, B2 unoccupied uses baseline, batteries discharge at top price; B1 trim held, no end.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: top-price hour now, discharge batteries; cooling per strategy, trims held; Building_2 unoccupied so cooling null; dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Sent strategy actions as given: cold occupied rooms hold cooling trims, batteries discharge into top-price hours, all within envelope ranges.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Sent strategy as given: trims held in cold rooms within cooling ranges, batteries idle until top-price hours 21-23 approach.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: B1 and B3 hold cooling trims in cold rooms, B2 stays at baseline, batteries and tanks idle while price is low.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: Building_1 and Building_3 hold cooling trims in cold rooms, Building_2 cooling baseline; batteries and tanks idle as price is near low and no top-price hour now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 holds trim at cooling 0.1778, Building_2 baseline, Building_3 eases trim at 0.3162; batteries idle, tanks zero, no end_trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: holding cooling trims in B1 and B3, B2 at baseline, batteries idle since price is low and not top-price hours; no clamps.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following the strategy: hold batteries and tank, ease the Building_1 and Building_3 cooling trims within their ranges, leave Building_2 at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline everywhere; Building_3 trim eases with cooling 0.0275 within range, others null, no battery or tank action.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B2 battery charge 0.15 before top-price hours; B3 idle battery; cooling null everywhere since rooms are within band and no trim held.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building 1 and 2 cooling and battery charging in cheap hour; Building 3 cooling null as trim ended; no tank action; end_trim null.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 holds a cooling trim within range, Building_2 and Building_3 keep baseline cooling; battery charges gently before top-price hours, tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 eases trim near setpoint, Building_2 and _3 baseline cooling; batteries charge gently in cheap hour before top price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 eases trim within range, Building_2 and 3 use baseline cooling; batteries charge gently before top-price hours; dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: no cooling trims, battery charging gently in cheap hour before top price; B2 cooling null as room warm but within band.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null (baseline) in all buildings, small battery charge in B1/B3, tank idle; no trims active so ranges respected.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 cooling 0.167 within range, Building_2 and 3 cooling null, batteries per strategy, dhw idle; no trims held.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 trim held at 1.6C below setpoint, cooling 0.001; B2 and B3 unoccupied, baseline cooling; batteries charge gently ahead of top price; dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null where no trim, battery small charge to near 0.95 before top price; Building_1 and 2 idle battery, Building_3 stores spare solar as given.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following the strategy: cooling at baseline, tanks idle, Building_3 gently charges its battery ahead of the top-price hours; other batteries hold.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 cooling 0.114 (room warm, mild cooling), Building_2 and 3 unoccupied so baseline cooling, small battery charge in cheap hour before top price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: Building_1 holds cooling trim in range; B2 and B3 unoccupied, baseline cooling; batteries charge gently before top-price hours; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 cooling at range top while easing trim; batteries held near 0.95 SOC for top-price hours 1-3; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: top-price hour now so batteries discharge; B1 and B2 cooling at baseline, B3 trim held at strategy cooling 0.521 within range; dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: discharge batteries at top price, keep cooling at baseline except Building_3 held trim; Building_1 and 2 cooling null; dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed the strategy for all buildings: held cooling trim in Building_3, discharged batteries over top-price hours, and kept the tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1/B2 idle at baseline; B3 holds trim at min depth since room is 1.0C below setpoint; batteries idle as price is not top and peak limiter is near target.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B2 cooling at baseline, B3 holds trim at 0.3677 within range; battery discharge toward top-price hours, peak limiter on, dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 cooling inside ranges, B2 cooling null; battery idle-ish to shave peak; B3 trim held with end_trim_ok but room still cold, so no end.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: hold cooling trims in the two cold rooms, batteries idle this hour since price is not at top and no peak shaving needed; Building_2 at setpoint uses baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling in B1 and B3 held inside range with trims; B2 baseline; batteries idle as price is low and not top-price; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling held in Building_1 and 3 trims, Building_2 baseline; battery charging gently before top price hours 16-18 per plan.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: battery charges 0.15 in cheap hour before top price; cooling null except Building_1/2 already baseline-clamped; no trims held, keep baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: no cooling trim needed, rooms near setpoint; battery charges in cheap hour ahead of top-price window at 14-16h, tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: Building_1 and Building_3 cooling by strategy, Building_2 no cooling; batteries charge gently before top-price hours, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 holds trim at cooling 0.1539, battery charge 0.15; Building_2 and 3 keep baseline cooling; no end_trim as trim is held.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 eases trim within range, B2/B3 baseline cooling, batteries charge toward top-price hours; no clamps needed, all within ranges.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 and Building_3 battery charge, Building_2 cooling null; Building_1 cooling 0.096 within range; no trim held, no clamps needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 eases trim within range, B2 and B3 cooling at baseline, batteries charge gently before top-price hours; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: B1 eases trim near setpoint, B2 and B3 run at baseline; battery charges gently ahead of the top-price hours, and the peak limiter is on.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: no cooling trims, idle tank, battery discharge per envelope; peak limiter active so battery follows strategy values within range.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: B1 starts a cooling trim in its cold room, B2 and B3 charge cheap-hour batteries, tanks idle; no clamps expected.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null (baseline) in all buildings, small battery charging before top-price hours; dhw idle; Building_1 battery 0.04 per strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null in B1 and B3 (in band, no trim), B2 unoccupied idle cooling; batteries charge gently before top-price hours, tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: no cooling trims (rooms within band), battery charges gently in cheap clean hour ahead of top price; no tank action; ending nothing.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 cooling and battery as given, B2/B3 cooling null (unoccupied), battery small charge before top-price hours; no clamps needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null (baseline), batteries near strategy; Building_1 trim ended state, end_trim not allowed; hold battery charge for top-price hours ahead.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 cooling at baseline with no trim; B2 unoccupied, so cooling stays baseline. Batteries discharge at top price now, dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy for all buildings: trims and top-price battery discharge now, within the envelope ranges; tank idle, Building_2 cooling null while unoccupied.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 hold cooling trims in cold rooms; B2 unoccupied, baseline cooling; batteries discharge at top price; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 hold cooling trims within range; B2 unoccupied at baseline; batteries discharge toward top-price hours; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 hold cooling trims at range values; B2 unoccupied so cooling baseline; battery discharges at top price; dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: held cooling trims in cold rooms B1 and B3, baseline in B2, and small battery discharge into top-price hours; no clamps needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 cooling in trim range, B2 null baseline; batteries discharge per strategy; B1 trim easing so no end, B3 hold continues.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 and Building_3 hold cooling trims within range, Building_2 at baseline; batteries idle on flat price, tanks at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds cooling and batteries at baseline-compatible values; flat price day so batteries idle; Building_2 cooling null as strategy says, trims held where cold.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: flat price, idle batteries and tank; Building_3 trim held with cooling 0.053 inside range; others at baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: cooling null for B1 and B2 at baseline, B3 eases trim at 0.0348 within range; batteries idle on flat prices, tanks zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries idle; Building_1 and 2 follow strategy; Building_3 trim ends at setpoint per state end, cooling baseline held.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat prices and no top-price hours, so batteries and tanks stay idle; Building_1 is overcooled and takes the strategy's reduced cooling, others keep baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline except B1 cooling 0.1264 (ease trim, within range); B2 and B3 at setpoint so baseline; batteries idle on flat price, DHW idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline-ish cooling and idle batteries on a flat price day; following strategy values as given, no clamps needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy applied: flat price so batteries idle; Building_1 eases cooling within range, Building_2 and Building_3 keep baseline cooling since rooms are at or above setpoint.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline: rooms within band, flat price, no trim; following strategy as given with no clamps needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline for all: B1 cooling 0.109 is below its range 0.058-0.208 but baseline kept; B2 and B3 cooling null; batteries idle on flat prices.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: flat price so batteries idle, Building_1 holds a cooling trim at baseline range; Building_2 and 3 use baseline cooling since warm rooms are within band.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline; flat price day, no overcooling, batteries idle, peak headroom ample, so I follow the strategy as given.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: flat price so batteries idle, no trims held; Building_2 and 3 cooling null at baseline, Building_1 slightly below-setpoint room uses strategy cooling 0.214 within range.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 eases trim near setpoint, B2 and B3 no trim; battery idle on flat price, tank idle; B3 battery small discharge kept as strategy shaves peak.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: flat price so batteries idle, no trims held except B1 and B3 cooling near baseline; B2 at setpoint, end trim not needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: flat price day so batteries idle; cooling per strategy, Building_1 and 3 trims off, Building_2 cooling nudged to 0.896 within range; no tank action.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: flat price, idle batteries and tank; B1 and B3 hold trims at strategy cooling; B2 baseline since room near setpoint.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: Building_1 and 3 hold trims with cooling inside range; Building_2 uses baseline-range cooling 0.513; battery idle on flat prices, tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: cooling in trim hold/ease states, batteries and tanks idle on flat price; Building_3 cooling set to strategy value 0.469 within range.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day so batteries idle; cooling follows strategy within ranges, trims held for cold rooms, no tank action.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: flat price so batteries idle, cooling held at trim range for overcooled rooms in B1 and B3, B2 at baseline-ish null, tank 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds cooling trims in Buildings 1 and 3 and idles batteries and tanks on flat prices; following it as given.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: flat price so batteries idle, tank 0, cooling per strategy; Building_2 cooling null as room is at setpoint; Building_3 eases trim within range.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline in all buildings: B1 and B3 ease trims within cooling_range, B2 uses baseline; batteries idle on flat prices, tanks at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day so batteries idle; Building_3 eases its cooling trim at the strategy value; other actions hold baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat prices and no top-price hours, so batteries idle; following strategy, Building_2 cooling set to 0.175 within range; Building_1 and 3 keep baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: cooling near baseline in all buildings, batteries idle on flat price day, tank at 0; no trim held, no end_trim needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy values match envelope; flat price and no trim held, so baseline cooling and idle batteries; Building_3 end trim not needed since state is already end.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline everywhere: rooms within band, flat prices, no trims held; following strategy with no changes.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline: rooms near setpoint, flat prices, no trims; batteries idle on flat_24h, tanks at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline: rooms are near setpoint, prices are flat, and batteries idle on flat_24h days, so no changes proposed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline: no overcooling or warm trim, flat prices, batteries idle; following strategy as given.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null (baseline) for all, batteries and tanks idle; no trim held, and battery usable charge is near zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: cooling baseline or null, batteries idle, tanks at 0; no overcooling or warm trim triggered, price is flat so no discharge.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline: no overcooling, no warm trim, batteries idle as price is flat and SOC is near floor; following strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: all cooling null at baseline, batteries and tanks idle; no overcooling or warm trim triggers, and prices are flat.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null (baseline) in all buildings, batteries idle, tanks idle; no trims held and no clamps to override.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: baseline cooling and idle batteries and tanks; usable battery charge is near the floor and peak headroom is zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: all cooling null, batteries idle, tanks zero; Building_1 and Building_3 trims are off and not overcooled, Building_2 trim ended at setpoint.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: cooling null (baseline) and batteries idle; no overcooling or warm-room trim, flat price so no discharge needed. Tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling baseline (null) since no trim, battery idle as SOC near floor with usable 0.01 kWh, tank idle; price low now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling at baseline (no trim, rooms not overcooled), battery idle, tank idle; Building_1 is 4.3C warm but envelope range applied as given.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline; buildings are overheated with no trim held, cooling stays at baseline, and battery is near floor with no spare charge.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: all buildings hold baseline cooling and idle storage; Building_1 and Building_2 are above setpoint with no trim, so cooling stays at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: all buildings hold baseline cooling and idle storage; buildings 1-3 are at or above setpoint with no trim held, batteries near floor.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy cools warm rooms slightly more and holds batteries; battery usable charge is near zero, so accepting strategy as given.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B2 warm, cooling raised within range; B3 near setpoint so baseline cooling; batteries idle, DHW 0, no trim end.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_3 is overcooled-free; B1 and B2 warm, cooling at strategy within range; batteries idle at 0.2 SoC, price low, no top-price discharge yet.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null (rooms at or above setpoint, Building_3 cooling 0 is in range), batteries idle, tanks idle; no trim held.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds cooling at baseline for B1 and B2 where cooling is null; B3 uses null cooling as strategy says; batteries idle at soc floor, tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline; batteries near floor with 0.01 kWh usable and no top-price discharge needed yet, so I follow the strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling baseline (no trim, rooms near setpoint), battery charge gently in cheap hour before top price, tank idle; Building_1 battery limited by usable charge.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null (baseline), battery charge 0.15 in cheap hour before top price at hours 12-14; no trim, dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null (baseline) since no overcooling or warm trim; battery charges 0.15 in cheap clean hour before top price; dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: no cooling trims (rooms near setpoint), battery charges gently in cheap hour before top price; dhw idle; no overrides needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling per baseline or strategy, battery charges gently before top price hours, dhw idle; Building_2 cooling kept at its range.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: baselines for cooling in B1 and B3-B2 nulls; B1 eases trim within range; batteries idle as price is not top-tier now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 holds trim at range minimum; Building_2 and 3 baseline cooling; batteries idle as price is not top and peak under target.","status":"ok"},{"clamps":[{"applied":0.0,"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.150","requested":0.0,"rule":"trim_hold"}],"fallback":null,"reason":"Following the strategy: hold batteries and tank idle, keep the cooling trim in Building_1 and cooling within range in Building_2; price is low now with top prices ahead.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_2 holds a cooling trim in its cold room; Building_1 trim ended, batteries idle as price is not top-price now and peak headroom remains.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null in B2 and B3 (trim ending), B1 cooling 0.203 within range; batteries idle since price not top, no peak shaving needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 cooling 0.274 is below its range, so use the clamped baseline-range value; battery charging near-zero in cheap hour before top price; Building_2 at baseline; Building_3 idle battery.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building 1 holds trim at cooling range; B2 and B3 use strategy cooling null; battery charges near top price, tank idle, B3 unoccupied.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: no cooling trims (all rooms near setpoint, B2 occupied at +1.05C), small battery charge before top-price hours; tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: cooling null (baseline) and battery discharge at top price now; no trims active, dhw idle, Building_1 and 3 unoccupied with no overcooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 unoccupied so cooling baseline; B2 cooling baseline held per strategy; batteries discharge at top price, within ranges; tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow the strategy: trim cooling in the two occupied cold rooms, discharge batteries over top-price hours, keep tanks idle; all values within ranges.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: hold cooling in B1 and B3 within ranges, B2 baseline, batteries idle as price is not top and peak below target; no clamps needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: cooling as given within ranges, batteries and tank held at 0 since price is low and district load is below peak target; no trim end.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 holds trim at 0.077 cooling, B2 baseline (null), B3 eases at 0.1291; batteries idle, price not top now, peak headroom ample.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 holds trim at 0.1481 cooling, B2 idle, B3 eases trim at 0.1153; batteries held, no top-price hours now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: building 1 holds a cooling trim in an overcooled room; building 3 eases trim; battery charges gently ahead of top-price hours 17-19; no DHW.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling trims and battery charge near top price; Building_2 cooling null as strategy gives; no overrides needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: charge batteries gently before top-price hours 15-17, cooling null in Buildings 1 and 3, Building 2 cooling 0.238 per strategy; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 and 2 cooling per envelope, Building_3 trim ended at setpoint; battery charges gently ahead of top-price hours 14-16; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: battery charging in cheap hour before top-price window; cooling ranges respected; Building_1 cooling kept at baseline since strategy is within range; no trims end.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: Building_1 holds trim at cooling strategy value; Building_2 and 3 use baseline cooling; batteries charge/discharge per strategy with peak target respected.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy for all buildings; Building_1 trim eases with cooling inside range, battery charges gently ahead of top-price hours.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy; Building_1 cooling trim eases with envelope range, Building_3 batteries charge toward 0.95 before top-price hours, Building_2 cooling held at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 eases trim within range; Building_2 and 3 use baseline cooling; batteries charge gently ahead of top-price hours, peak headroom ample.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 cooling held in range with trim easing, Building_2 and 3 cooling baseline, batteries discharge per strategy; tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 and 3 cool at baseline plus battery charge; Building_2 battery charge; tanks idle; no trims held, so no end_trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 and 3 cooling null, Building_2 cooling null as trim ended; batteries charge gently before top-price hours; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy followed: Building 1 and 3 cooling null, Building 2 battery charge 0.15 in cheap hour; Building 3 battery small charge, dhw idle everywhere as given.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling baseline or null, store spare solar, hold battery near baseline for upcoming top-price hours 4-6 ahead; no clamps seen.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy is idle with no trim held; following it, with battery at 0 since top-price hours are 3-5 ahead and peak is under target.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: hold batteries and cooling at baseline; B1 battery has no discharge until top-price hours and B2 cooling is null as the trim ended at setpoint.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 battery -0.245 and B3 -0.24 shave peak; B2 discharges -0.5 for top-price hours; cooling baseline except B2 range fits; no dhw.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Sent strategy actions as given: battery discharges into the top-price hour, cooling trim off or ended, tanks idle; all within envelope ranges.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 holds trim at cooling 0.1352 and discharges battery; Building_2 and Building_3 use baseline cooling with battery discharge for the top-price hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building 1 holds its cooling trim per strategy, Building 2 and 3 use baseline cooling; discharge batteries at top price, no tank action.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 holds a cooling trim at 0.1061 and B3 cools at 0.079; B2 unoccupied, null. Batteries idle, no top price now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 cooling in ranges, B2 unoccupied null; batteries idle as price is not top-hour yet; no tank action.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: idle batteries and tanks, cooling per envelope; Building_3 trim eases, no end_trim since not at setpoint yet.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: cooling as given, batteries and hot water tanks held, trims kept; prices are not at the top yet, so no discharge.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling per envelope ranges, batteries idle as price is low and not top-price; B1 trim easing, B2 no trim, B3 baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: cooling null where room is near setpoint, small battery charge before top-price hours 16-18, dhw idle; Building_2 trim already ended.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: battery charges 0.15 in cheap hour before top price; cooling null for B1/B3 and B2 within range; B2 warm room gets strategy cooling 0.151 which is within range.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: no cooling trims needed, rooms within band; charge batteries gently before top-price hours 14-16; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: Building 1 and 3 cooling within range, B2 has no cooling; batteries charge gently ahead of top-price hours 13-15; dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 cooling trim eases toward baseline, battery charges pre-peak; Building_2 and 3 at baseline cooling; tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 cooling 0.1485 ease trim, B2/B3 no cooling; batteries charge gently before 0.0587 top-price hours; tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 and 3 cooling within ranges, Building_2 cooling null; batteries charge gently ahead of top-price hours; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: cooling null where room is not overcooled, battery holds to charge before top-price hours; dhw idle; no trims to end.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: no cooling trim (rooms near setpoint), gentle battery charge before top price; tanks idle; no end_trim needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 battery charging/cooling as given, B2 cooling null; cooling ranges respected, tanks idle, no trim ended.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 cooling stays baseline (no trim), B2 cooling raised above baseline for warm room, B3 unoccupied so baseline; battery charges gently before top price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: no trims or cooling changes except Building_1 baseline; Building_1 battery idle near 0.95 SOC, store spare solar only; Building_2/3 baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 and Building_2 cooling at baseline-ish, batteries idle as price is flat-ish and not top-price; Building_3 unoccupied, cooling null, battery idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling baseline or range-bound per room; battery idle-to-store as solar allows; tank idle; no trims to end yet.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow the strategy as given: B1 mild overcooling trim at 0.098; batteries idle, with top-price hours 2-4 ahead and SoC near full.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 cooling held in ease state within range, B2 unoccupied so null, B3 battery small charge; end trims not needed; tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: battery discharge over top-price hours; cooling at baseline since no trim is held and rooms are within band; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed the strategy for all buildings: discharge at top-price hour, overcooled trims in B1 and B3, B2 cooling null; all values inside ranges.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 hold cooling trims in cold rooms, B2 unoccupied uses baseline, batteries discharge at top price, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 cooling 0.0323 (ease), B2 null, B3 cooling 0.1526 (hold trim); batteries idle, tanks 0, no end_trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline in B1 and B2 and eases B3 cooling within its range; batteries idle since price is not top and peak is below target.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Sending strategy as given: batteries and tanks held, cooling null except Building_3 easing its trim at 0.1377; no top-price discharge yet.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: no trims needed (B1, B3 under setpoint, B2 at setpoint); battery shave per strategy; tanks idle; peak limiter at target.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null in all buildings (Building_3 cooling 0.05 per strategy, within range), batteries idle, tanks idle; Building_3 cooling set to 0.05.","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.0,"rule":"trim_hold"}],"fallback":null,"reason":"Follow strategy: Building_3 trim held with cooling 0 in range; Building_2 warm room gets strategy cooling 0.176; batteries idle, price not top-hour yet.","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":"Strategy holds cooling and batteries at baseline; Building_3 trim is easing, so cooling stays at its held value; Building_2 is warm but no trim applies, so nulls kept.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Follow strategy: idle batteries and tanks, cooling null for B1 and B3 as baseline; B2 uses strategy cooling 0.037 inside range, since room is below setpoint with no trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 cooling near baseline, battery charge 0.15 before top-price hours; B2 and B3 cooling null; hold dhw at 0 across buildings.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy for all buildings; Building_1 cooling trimmed to 0.103 as room is 0.83C below setpoint, battery charged toward top-price hours; Building_2 and 3 hold baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 cooling trim eases within range, B2 and B3 use baseline cooling; batteries charge in cheap hour before top price; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 eases trim within range, Building_2 and 3 use baseline cooling; batteries charge gently ahead of top-price hours, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: no cooling trims (rooms near setpoint), battery charges gently in cheap hour before top price; Building_1 and Building_3 battery at strategy values, Building_2 at 0.148.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds cooling and batteries; Building_1 battery idle is fine, peak headroom 2.29 kWh and prices flat now, so no change needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline everywhere: no overcooling or warm trim needed, batteries idle with price flat-ish and no top-price discharge yet; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: no trims active; Building_1 stores spare solar; hold battery idle elsewhere; cooling at baseline except strategy nulls, tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 cooling null, battery stores spare solar; B2 and B3 unoccupied with trim ended, cooling null; tank idle; no trims needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: no cooling trims, battery idle-to-gentle charge before top-price hours; B1 and B3 battery per strategy, tank idle, no end_trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: no cooling trims, Building_3 charges battery 0.15 ahead of top-price hours; battery idle elsewhere; tanks at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling at baseline or null in B2/B3, B1 slightly below baseline in range; charge batteries before top-price hours; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 holds trim at baseline-plus cooling, B2/B3 unoccupied idle; B1 battery idle, B3 small charge; tank idle; no clamps needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 holds trim at range minimum, B2/B3 unoccupied so baseline cooling; battery discharges at top price now, B1 and B3 follow strategy discharge.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following the strategy: cooling at baseline, tank idle, and battery discharging into the top-price hours, all within the envelope ranges.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed the strategy: trims start in overcooled occupied rooms, battery discharges over top-price hours, tanks idle, and all values sit within envelope ranges.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 hold trims in cold rooms; B2 cooling null; batteries follow strategy, peak limiter on so no extra discharge beyond strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow the strategy: cooling trims held in Building_1 and Building_3, batteries idle as price is not at top; Building_2 at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 hold cooling trims in cold rooms, B2 at baseline; batteries idle as price is not top, dhw held at zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: holds baseline-range cooling, batteries idle as price is not top-hour; Building_1 trim easing, Building_2 and 3 no trim needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: Building_1 cooling 0.0957 in held trim, Building_2 and 3 baseline cooling; battery charges gently before top-price hours 17-19; no tank action.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 ease trim at 0.088 within range; B2 and B3 cooling null (warm rooms, no trim); batteries charge 0.15 before top-price hours 16-18; tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 cooling null (baseline), B2 cooling 0.228 is inside range? Its range tops 0.3467, so use strategy; battery charging 0.15 in cheap hour before top price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy cooling is null (no trim, rooms near setpoint); following strategy: battery charge 0.15 in cheap hour before top price, dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling at baseline or null where no trim, battery charges gently ahead of top-price hours 13-15; tank idle; no end_trim since not held.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: battery charge to pre-load before top-price hours 12-14; cooling as given. Building_2 and 3 cooling null at baseline; Building_1 cooling kept at strategy value.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 eases trim within range, Building_2 no cooling, Building_3 baseline cooling; battery charges gently ahead of top price; tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 eases trim near setpoint, B2 and B3 idle cooling; batteries charge/hold per plan before top-price hours 10-12.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 holds a trim at its range; Building_2 and 3 use baseline cooling; battery discharges to shave peak, tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 eases trim within cooling_range, B2 and B3 at baseline cooling, batteries charge gently before top price; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 holds trim at 0.1642 cooling; B2 and B3 keep baseline cooling; batteries charge gently ahead of top-price hours; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 holds trim at baseline-ish cooling, B2 and B3 at baseline, batteries charge gently ahead of top-price hours; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: no cooling trim held, batteries charge gently before top-price hours; Building_1 and 3 batteries as given, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: no cooling trims, battery charges gently in cheap clean hour before top price; dhw idle; Building_2 unoccupied so cooling baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy for all buildings; Building 1 cooling 0.36 is below its range so clamped to 0.2799 floor is not applied, kept baseline-safe values and battery charge at strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 holds trim at strategy cooling; Building_2 and 3 baseline cooling; small battery charge in cheap clean hour; no tank action.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 eases trim within range; Building_2 unoccupied, baseline; Building_3 mild charge before top-price hours, cooling per strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 and Building_2 cooling null (baseline), Building_3 holds trim at 0.6214; battery discharge at top price now, within ranges; dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: top price now so discharge batteries; Building_3 trim held and cooling kept within range; Building_2 unoccupied so cooling baseline; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: battery discharges at the current top price, overcooled occupied rooms get in-range trimmed cooling, dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: trims held in B1 and B3 with cooling in range; B2 unoccupied uses baseline; battery discharges at top-price hour per strategy, dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy followed: trims held in cold rooms (B1, B3), B2 unoccupied uncooled; battery discharge per strategy, peak limiter on; no overrides needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: hold cooling trims in cold occupied rooms, discharge batteries at the top-price hour, keep tanks idle; all values sit inside envelope ranges.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 and 3 trims held in overcooled rooms; Building_2 at setpoint with no trim. Following strategy; battery discharge within ranges, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat 24h price, so batteries and tanks stay idle; cooling trims in cold rooms follow strategy, and Building_2 keeps baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baselines on flat-price day; Building_1 and 3 cooling at strategy values inside ranges, Building_2 has no trim and is warm so baseline kept; batteries idle, tanks zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat prices and a district load below the peak target, so batteries and tanks stay idle; Building_2 starts a small cooling trim since it is overcooled.","status":"ok"},{"clamps":[{"applied":0.0,"point":"Building_2.cooling","reason":"indoor 24.6 C is within 0.5 C of the setpoint 25.0 C, trim eases off from 0.044 by at most 0.02 per hour","requested":0.0,"rule":"trim_hold"}],"fallback":null,"reason":"Strategy holds cooling at baseline or null in most rooms; Building_2 trim is easing so cooling is 0 per strategy, batteries idle on flat prices.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Following strategy: cooling at baseline or null where ranges allow, batteries idle on flat price, tanks idle; Building_2 trim is ending at setpoint so cooling set null.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline: rooms near setpoint, flat prices, batteries idle with no usable charge; cooling nulls kept as given.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline: no overcooling or warm trim, flat price so batteries idle, tanks at zero; no clamps to address.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds cooling at baseline and batteries idle on flat prices; Building_1 and 3 cooling null, Building_2 at baseline, no trims needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline everywhere: rooms within band, flat prices, batteries near floor with no usable charge; no clamps to override.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline: rooms near setpoint, batteries near empty, flat prices, so no trim or storage action is warranted this hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline: rooms are near setpoint, flat prices, and batteries are at floor with no usable charge; no clamps to fix.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy cooling is null for B2 and B3 and B1 is ~0.226 within range; I send B1 at strategy 0.226 and keep batteries and tanks idle on flat-price day.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 holds trim at 0.2659 cooling; Building_2 and Building_3 baseline with null cooling; batteries idle on flat price, tanks at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 holds trim at baseline-plus cooling; Building_2 cooling null (above setpoint, no trim); batteries idle on flat price; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 cooling at strategy 0.4557 inside range, trim easing; batteries idle on flat price; tanks idle; no end_trim since within band.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: Building_1 holds trim at strategy cooling 0.514 (in range); Building_2 and Building_3 cooling stays baseline; batteries idle on flat price; tanks at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline-like actions: B1 trim held at 0.6096 cooling, B2 and B3 follow baseline; batteries idle on flat prices, dhw zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: holds in B1 and B3 trims (cooling inside range), B2 null; batteries idle on flat price with zero usable charge; dhw zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds cooling trims in B1 and B3 and idles batteries and tanks on a flat price day; B2 at setpoint uses baseline, so no overrides needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: Building 1 and 3 hold trims in overcooled rooms at cooling_range minimum; Building 2 null; batteries idle on flat prices; dhw 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: holding cooling trims in Buildings 1 and 3 at range minimum, Building 2 at baseline; batteries idle on flat prices, tanks at zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: flat price and no battery opportunity, so hold batteries and tanks at baseline; hold B1 and B3 cooling trims at strategy values, B2 at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: Building_1 and Building_3 hold cooling trims at their ranges, Building_2 at baseline; batteries and tanks idle on flat-price day.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: flat price so batteries idle; B1 trim easing, B3 cooling held in range; B2 at setpoint with no trim, baseline cooling kept.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline except Building_1 cooling 0.397 (warm room, no trim held); flat price, batteries idle with zero usable charge, so keep baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline on flat-price day with idle batteries and no trims; Building_1 and Building_3 cooling follow strategy within range, Building_2 stays baseline since trim is at end.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: flat price, batteries idle, tank idle; Building_1 and Building_3 hold/ease cooling trims, Building_2 at baseline since its room is above setpoint.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 cooling null (trim ended, at setpoint); B2 and B3 hold baseline-range cooling; batteries idle on flat prices; tanks at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline everywhere; B1 is 2.9C cold with no trim so cooling stays baseline; B2 and B3 hold eased trims; flat prices so batteries idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline everywhere: flat price, no trim held, batteries idle; Building_2 and 3 follow strategy with cooling null, Building_1 cooling 0 per overcool rule.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline: flat price, no overcooling or warm trim needed, batteries idle at SoC floor; Building_1 trim ended as at setpoint.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline everywhere: flat price, batteries idle, no trims; Building_1 and Building_3 are slightly cool but within band, so cooling stays at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy adopted for all buildings: cooling at baseline or within range, batteries idle on flat prices with SoC at floor, tank idle; B2 trim ended since at setpoint.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Accepted strategy: cheap-hour battery charging ahead of top price, cooling within envelope ranges, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Accepted strategy: cheap, fairly clean hour so storing 0.15 battery; Building_1 holds trim at range floor; all within envelope ranges.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy for all buildings; B1 cooling 0.0794 within range, B2 held trim at strategy cooling, B3 battery charge 0.15 stores spare solar before top price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 cooling at strategy 0.1761 (trim held, ease), Building_2 cooling null, Building_3 null; batteries idle, tank idle; end_trim not used.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Sending strategy as given: Building_1 holds its cooling trim within range, Building_3 runs slightly under baseline, batteries and tanks idle until top-price hours.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 and Building_3 hold trims in overcooled rooms, Building_2 baseline cooling; battery discharges to shave peak, dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: holding cooling trims in cold rooms and batteries idle; Building_1 trim hold, Building_3 trim hold, Building_2 at baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building 1 and 3 hold cooling trims within range, Building 2 baseline; batteries idle, dhw zero; no end_trim since trims are held.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: cooling trims for the cold rooms in Buildings 2 and 3, batteries and tanks held; no spare solar to store this hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling in B1/B3 within ranges, B2 eases trim; battery idle-ish discharge per strategy, peak limiter on; tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: holding cooling trims in overcooled rooms and idling batteries; price is low and no top-price hours now, so no battery discharge.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: holding cooling trims in overcooled rooms, batteries idle as price is not top and peak is near target; Building_2 eases trim per strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds cooling trims in all three overcooled rooms and idles batteries and tanks, since price is low and no top-price hour is now; following strategy as given.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 and Building_3 hold cooling trims in cold rooms, Building_2 trim ended at setpoint; batteries idle as price is not top and peak is below target.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following the strategy: holding cooling trims in Buildings 1 and 3 (rooms 1.1-1.4 C below setpoint), batteries and tanks idle since price is low and not top-price hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: holding trims in cold rooms and idle batteries at low price; Building_2 cooling uses baseline since no trim is active and room is not overcooled.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 hold trims at cooling range, B2 warm room gets strategy cooling 0.294; batteries idle, tanks zero, no top-price hour now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline everywhere; B1 and B2 cooling null, B3 cooling 0.0707 kept within its ease trim; batteries idle, price flat-low now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy cooling is applied for B1 and B3 within ranges; B2 idle; batteries hold since no top-price hour now and usable charge is tiny; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: Building_1 holds trim (cooling 0.054 in range), Building_2 and 3 keep baseline cooling; batteries charge gently in cheap hour before top price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 holds trim with cooling in range; B2 cooling null; B3 cooling 0.041 is below baseline and in range; charge batteries gently before top-price hours.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null where in band, battery charges near cheap hour before top price; Building_3 trim eases within range; no dhw.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling near baseline with no trim, battery charges in cheap hour before top price, tank idle; Building_1 cooling kept at strategy value.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building 1 holds trim and charges battery; B2 and B3 cool baseline, B2 cooling at strategy 0.192 is within range; batteries charge in cheap hour before top price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: Building_1 holds trim at cooling 0.128 within range; B2 and B3 use baseline cooling; batteries and tanks idle, price flat-ish, no top-price hour now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 holds cooling trim at 0.0977 (1.2C below setpoint); B2 and B3 at baseline cooling, batteries idle, tanks 0, no price peak now.","status":"ok"},{"clamps":[{"applied":0.0059,"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.076","requested":0.0819,"rule":"trim_hold"}],"fallback":null,"reason":"Follow strategy: Building_1 holds a trim (cooling 0, in range); B2 and B3 at setpoint use baseline cooling; batteries store solar or idle; tanks idle.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 trim eases at cooling 0.0813 within range; B2 and B3 baseline cooling; batteries idle, price flat-ish, no top-price discharge yet.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 holds trim at 0.1285 cooling; B2 and B3 unoccupied, baseline cooling; batteries store spare solar, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: Building_1 holds trim at strategy cooling; Building_2 and Building_3 unoccupied, null cooling; battery charge gently ahead of top price; tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: B1 holds trim at baseline-range cooling 0.276; B2/B3 unoccupied, cooling baseline; batteries charge gently ahead of top-price hours.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 holds a trim in cold room, Building_2 and 3 unoccupied so cooling baseline; charge batteries before top-price hours, dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following the strategy as given: B1 cooling 0.334 held in trim, batteries discharge into top-price hour, tanks idle; all values inside envelope ranges.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: top-price hour now, discharge battery within ranges; Building_1 trim held so cooling at strategy 0.3283 inside range; Building_3 cooling 0.366 within range; Building_2 unoccupied, cooling baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Sending the strategy actions as given: holding cooling trims in cold rooms, discharging batteries ahead of top-price hours, and keeping tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 hold trims at cooling in range; B2 unoccupied uses baseline; batteries idle, price not top-hour yet, DHW zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 and Building_2 hold baseline cooling; Building_3 holds trim at strategy cooling 0.2947; batteries idle and tank 0, as prices are not at top.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Sent strategy actions as given: batteries and tanks held, cooling per envelope; Building_3 trim held, no end, price not top now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: hold cooling trims in B1 and B3 at range floor, B2 baseline, batteries idle before top-price hours; no clamps needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 holds cooling trim at 0.0903, B2 baseline, B3 eases trim at 0.1062; batteries idle, price flat-ish and not top-price hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 and Building_3 hold trims at strategy cooling, Building_2 baseline; batteries idle as price is low and not top-price yet.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 cooling null (trim ended, at setpoint), battery charge 0.15 for top-price hours; Building_2 and Building_3 hold baseline cooling; dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling baseline (no trim, rooms near setpoint), battery charge 0.15 in cheap hour before top-price window, dhw idle; Building_3 trim end noted.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: all rooms within band with no trim held, so cooling baseline-equivalent; charge batteries gently before top-price hours 13-15; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: cooling is null where room is near setpoint; battery charges gently before top-price hours 12-14; dhw idle; no trim held so end_trim null.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: all buildings at baseline-range cooling, batteries charge gently before top-price hours; no trims held, tanks idle, no clamps needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null where baseline holds, battery charge toward 0.95 before top-price hours 10-12; tank idle, no trim to end.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling baselines and battery small charge before top-price hours; no trims held, tank idle, all within envelope ranges.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null where room is below setpoint without trim, battery charging gently ahead of top-price hours; Building_3 battery 0.15 accepted within range.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null where room is not overcooled, battery small charge ahead of top-price hours; Building_1 cooling strategy 0.072 kept within range; no trim held.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null in B2/B3 (rooms at or above setpoint, no trim), B1 baseline; small battery charge toward 0.95 before top price; DHW idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null where not overcooled, battery charges from spare solar ahead of top-price hours; Building_1 cooling kept at baseline since room is cool but unoccupied-trim rules hold.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 cooling 0.112 (within range), B2/B3 cooling null, batteries near-idle charging before top-price hours, tank idle; no clamp issues.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 eases trim within range, Building_2 unoccupied baseline, Building_3 small battery charge; no clamps needed, battery charging ok at low price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 and 3 cooling within ranges, Building_2 unoccupied null; battery charge only as strategy gives, tank idle; no end_trim since trims are holding.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: holding trims in cold rooms, battery charging toward 0.95 before top-price hours 1-3; B2 unoccupied so cooling baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 and Building_3 hold cooling trims within range; Building_2 unoccupied at baseline; battery discharges at top price, dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: hold B1 and B3 cooling trims inside range, B2 cooling at baseline, discharge batteries on top-price hour, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 cooling trims held in cold rooms; B2 unoccupied, baseline cooling; batteries discharge at top price with peak limiter; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 and 3 hold trims in cold rooms, Building_2 idle; batteries held as price is not top and peak headroom is limited.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 cooling inside ranges, B2 baseline, batteries idle since price is not top yet and peak is below target; B1 trim eases.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling held in trim ranges for B1 and B3, B2 at baseline; batteries idle as price is not top and peak headroom is small.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 and Building_3 hold trims at range minimum; Building_2 at baseline; batteries idle, price not at top hours yet.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null (baseline) in all buildings, batteries discharge per peak shaving, dhw 0; trims ending as rooms at setpoint.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: baseline cooling and idle batteries; Building_3 is cold but trim is off and its cooling range is at baseline, so no change.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy applied: cooling and battery held at baseline/strategy, rooms within comfort band; price flat now, batteries idle until top-price hours 15-17.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: no trim (rooms not overcooled), battery charge 0.15 in cheap hour before top-price window, dhw idle; Building_3 cooling 0.053 kept as strategy suggests.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_3 holds trim with cooling 0.039; battery charges gently in cheap hour before top price at 13-15h; dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: B1 and B2 battery charge gently before top-price hours; B3 holds ease trim at strategy cooling; B1 cooling kept near baseline as room is cold but trim off.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 hold cooling trims within range, B2 cooling null; charge batteries gently before the 11-13h top price, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: B1 eases trim within range, B2 and B3 keep baseline cooling, batteries charge spare solar gently ahead of top-price hours; no clamps needed.","status":"ok"},{"clamps":[{"applied":0.1264,"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.031 by at most 0.02 per hour","requested":0.1376,"rule":"trim_hold"}],"fallback":null,"reason":"Follow strategy: charge batteries in cheap hour before top price; Building_1 trim eases, Building_2 and 3 cooling per envelope; dhw idle.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null for B2, trims eased in B1 and B3 within ranges; batteries charge gently ahead of top-price hours; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: no cooling trims (rooms near setpoint), small battery charge before top-price hours; Building_3 battery 0.15 kept within range, tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling at baseline-ish levels with trims off, batteries near-idle as strategy suggests, tanks at zero; no clamps needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null in B1/B2, B3 unoccupied so cooling baseline; store spare solar gently before top price; tank idle; no trims held.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building 1 and 3 battery idle or small; Building 2 cooling null as room at setpoint; battery stores spare solar; no trim ends needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: idle cooling at baseline where unoccupied; B1 cooling 0.042 is below range so keep null-adjacent; store spare solar in B1 battery, idle elsewhere.","status":"ok"},{"clamps":[{"applied":0.0698,"point":"Building_1.cooling","reason":"indoor 26.2 C is more than 0.5 C below the setpoint 26.7 C, trim held at 0.100","requested":0.1693,"rule":"trim_hold"}],"fallback":null,"reason":"Follow strategy: B1 holds a cooling trim at 0.0698, B2 and B3 unoccupied, batteries idle at 0 since spare solar is low and top price is 2-4h ahead.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 held trim cooling at range minimum, Building_2 and 3 baseline; battery charges gently ahead of top-price hours.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 battery discharge, B2 unoccupied; B1 cooling null as in strategy; no trims held, no end_trim needed; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy accepted: Building_1 starts a cooling trim in its cold occupied room and both batteries discharge into the top-price hour; others stay at baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Kept strategy cooling within ranges; spread discharge evenly over the three top-price hours (22-24) for B1-B3 instead of front-loading, with peak not yet triggered.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 and Building_3 hold cooling trims in cold rooms; Building_2 at setpoint keeps baseline; battery discharge shaves the peak, tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: small battery discharge to shave peak, hold Building_3 trim, slight extra cooling in warm Building_1, all within ranges.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_3 trim held at 0.3052 within range; Building_2 trim ending at setpoint; batteries idle, price not at top; no tank action.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 cooling inside range, B2 cooling null; B3 trim held, no battery discharge since not top-price hours and B1 has tiny usable charge.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds cooling trims in B1 and B3 (overcooled) and idles batteries; accepting as given since no clamp risk is evident.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: baseline cooling where null, hold B3 trim at 0.086; end B1 trim (at setpoint); batteries idle, price flat-ish and not top price yet.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B2 cooling baseline-ish, B3 eases trim at 0.0667 within range; batteries idle, price low and no top-price discharge yet.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: charge batteries gently before top-price hours and hold trims; Building_3 trim ends at setpoint so cooling stays baseline; Building_1 eases trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 holds a cooling trim (1.0 C below setpoint) and battery charges in cheap hour; Buildings 2 and 3 use baseline cooling, storing spare charge.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 cooling held in trim at 0.102 within range; B2 and B3 cooling null; batteries charge 0.15 before top-price hours; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: Building 1 eases a held trim (cooling 0.0904), Building 2 and 3 keep baseline cooling; batteries charge gently before top-price hours, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building 1 cooling ease near setpoint, B2 and B3 baseline cooling, batteries charge gently before top price; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building 1 cooling at range top, battery charge near cheap hour before top price; Buildings 2 and 3 no trim, cooling baseline, battery charge 0.15.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: Building_1 holds its cooling trim inside range, batteries idle before the top-price hours, tanks idle, Buildings 2 and 3 keep baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: B1 cooling at 0.2367 eases the trim in range, B2 and B3 keep baseline, batteries and tanks held at 0 with no top-price discharge yet.","status":"ok"},{"clamps":[{"applied":0.0947,"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.039","requested":0.1341,"rule":"trim_hold"}],"fallback":null,"reason":"Follow strategy; Building_1 trim held, cooling kept inside range; B2 and B3 battery discharge limited by range; district peak near target so no extra action.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 holds cooling trim at 0.1599, B2 cooling null, B3 cooling 0.482; batteries charge toward 0.95 before top price in hours 5-7; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B2 cooling baseline/strategy, B3 holds trim at 0.381; charge batteries gently ahead of top-price hours; tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 cooling in range, B2 unoccupied idle; batteries as given with grid charging ok before top-price hours; no tank or end_trim changes.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 cooling is null-to-baseline mix; B2 and B3 unoccupied, baseline kept; B1 battery idle; B3 charges 0.15 cheap solar-free hour before top price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 holds trim at cooling range, B2 and B3 unoccupied keep baseline; B3 charges battery 0.15 in cheap hour before top price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Sending strategy as given: B1 holds its trim in range, B2 and B3 keep baseline cooling, and batteries discharge into the top-price hours.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: holding cooling trims in cold occupied rooms and discharging batteries over top-price hours; all actions sit inside envelope ranges.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Sent strategy as given: cold rooms hold cooling trims, batteries discharge into top-price hours, tanks idle, no end-trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed the strategy: hold cooling trims in Buildings 1 and 3 (cold rooms), no-trim baseline in Building 2, batteries idle before the top-price hours.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: holding trims in overcooled rooms, battery discharge kept to peak shaving with headroom 0.22 kWh; Building_2 cooling baseline as no trim is held.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling held in trims for B1 and B3 within ranges, B2 baseline null; batteries idle, tanks zero; no clamps needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 hold cooling trims in cold rooms; B2 at baseline; batteries and tanks idle as headroom is zero and no top-price hours now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 and 3 hold cooling trims at 0.138 and 0.1802 (ranges), Building_2 uses baseline; batteries idle, tank 0, no end_trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: holding cooling trims in B1 and B3 at range minimum, batteries idle as price is low and not top-price yet; B2 baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null (baseline) for all, batteries and tanks idle; trims held in B1/B3 at end state, no end_trim since end_trim_ok is false.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: no trim active, rooms near setpoint, battery charging gently ahead of top-price hours 14-16; ranges respected, tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: Building_1 and 2 cooling at baseline-equivalent, Building_3 cooling null; battery charges 0.15 in cheap hour before top-price window; dhw held at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null where no trim, battery charge 0.15 in cheap hour before top-price window; tank idle; no trims held so no end_trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling baselines and battery charge in cheap clean hour before top price; B1/B3 cooling within ranges; B2 trim ended at setpoint.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: B1 cooling 0.0802 ease trim, B2 and B3 baseline cooling, batteries charge 0.15 before top-price hours; tanks idle.","status":"ok"},{"clamps":[{"applied":0.144,"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.079 by at most 0.02 per hour","requested":0.2032,"rule":"trim_hold"}],"fallback":null,"reason":"Follow strategy: cooling null in B2/B3 and trims ease in B1; batteries charge gently before top-price hours 9-11; dhw idle.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Follow strategy: building 1 eases trim within range, building 2 unoccupied so baseline, building 3 battery charge; tank idle; reasoning per strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 holds trim at cooling_range; B2 and B3 unoccupied or at setpoint use baseline; battery charges gently before top-price hours as given.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 holds trim at cooling 0.116; Building_2 and 3 keep baseline cooling; batteries charge gently before top-price hours; dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: no cooling trims (all rooms near setpoint), battery idle-ish charging to ~0.95 before top price; Building_3 small charge per strategy, tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 and Building_3 cooling at baseline (room not overcooled enough), small battery charge before top-price hours; Building_2 unoccupied, idle. Tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B2 baseline cooling, B3 slight cooling cut as strategy gives; battery charge toward 0.95 before top price; tank idle; no trim ends.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 cooling inside ranges, B2 unoccupied baseline; small battery charge ahead of top price; dhw idle; no trim ends.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 holds trim at strategy cooling; Building_2 and Building_3 baseline cooling; batteries charge gently before top-price hours; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 holds a trim at 1.6 C below setpoint so cooling stays inside range; battery discharges at top price; Buildings 2 and 3 follow the baseline with no trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: B1 holds trim at range minimum with cooling 0.592 and battery -0.263; B2 and B3 unoccupied, baseline cooling; battery discharge at top price now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 trim held at cooling_range; Building_2 unoccupied, baseline cooling; Building_3 strategy cooling 0.625 within range; batteries discharge at top price now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 and 3 hold cooling trims within range; Building_2 unoccupied, baseline; batteries discharge at top price, dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Accepted strategy for all buildings; B1 and B2 battery idle since usable charge is zero, B3 discharges toward top-price hours and holds its cold-room trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Sent strategy actions as given: cooling trims held inside ranges for cold rooms, battery discharge on top-price hour within limits, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B2 cooling null/baseline-ish, B3 holds trim at 0.174; batteries idle (no usable charge in B1/B2, B3 discharge small); tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: flat price so batteries idle; Building_3 holds its cooling trim at 0.1161 since room is 0.7 C below setpoint; others use baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline cooling in B1 and B2 and idles batteries on flat prices; B3 eases its held trim per strategy, and dhw stays at zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline on all; B1 cooling 0.056 is below its range, so I follow the envelope-clamped strategy; batteries idle on flat price.","status":"ok"},{"clamps":[{"applied":0.0,"point":"Building_1.cooling","reason":"indoor 21.4 C is more than 0.5 C below the setpoint 23.7 C, trim held at 0.099","requested":0.0,"rule":"trim_hold"}],"fallback":null,"reason":"Follow strategy: Building_1 cooling held at range 0 (trim hold, cooling_range [0,0]), Building_2 and Building_3 baseline cooling; batteries idle on flat price day.","status":"clamped"},{"clamps":[{"applied":0.0,"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.099","requested":0.0,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price and low district load mean no battery action; cooling and dhw follow the strategy, with B1 holding its trim and B2 at 0.0 cooling.","status":"clamped"},{"clamps":[{"applied":0.0,"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.099","requested":0.0491,"rule":"trim_hold"}],"fallback":null,"reason":"Strategy holds all devices; Building_1 trim held at min depth, cooling_range 0 so baseline kept; flat price and idle battery, no changes needed.","status":"clamped"},{"clamps":[{"applied":0.0,"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.099 by at most 0.02 per hour","requested":0.0,"rule":"trim_hold"}],"fallback":null,"reason":"Follow strategy: Building_1 cooling held at 0 inside range; Building_2 and Building_3 baseline cooling; batteries idle on flat price; tanks at 0.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Followed strategy: all cooling null except B2 and B3 ranges allow baseline; B1 trim easing within range, batteries held on flat price, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline: no overcooling or warm trim needed, flat prices, battery idle; Building_1 trim ends at setpoint, no end_trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline: flat price, batteries idle, cooling null in B1/B2/B3 except B1 strategy 0.177 within range; follow strategy and keep tanks at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline on flat-price day; Building_1 cooling 0.141 is below cooling_range minimum 0.0653? No, it lies inside range, so follow strategy; batteries and tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline on all: B1 and B3 cooling in range, B2 and B3 null; flat price so batteries idle; tank 0; B1 trim easing, no end.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 holds a cooling trim at 0.3817; Buildings 2 and 3 keep baseline cooling; batteries and tanks idle on flat price day.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 holds cooling trim at 0.3878 (room 1.3C below setpoint); B2 and B3 baseline cooling; batteries idle on flat prices; dhw zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: Building_1 holds trim at 0.4572 (in range), Building_2 and Building_3 cooling baseline, batteries idle on flat prices, dhw zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 holds trim at 0.5557 cooling, B2 and B3 baseline-like cooling, batteries idle on flat price, dhw zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: holding cooling trims in B1 and B3 within ranges, B2 baseline-range cooling, batteries idle on flat prices, tanks at zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds: cooling trims in Buildings 1 and 3 are held, batteries idle on flat prices, tanks at zero; Building 2 follows baseline range.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: flat price so batteries idle; Building_1 and Building_3 hold cooling trims within range; Building_2 unoccupied, baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: B1 and B3 cooling trims held at strategy values; B2 unoccupied with baseline cooling; batteries idle on flat price; tanks at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: cooling held in trim ranges for overcooled rooms, batteries idle on flat price, tanks at 0; Building_2 at baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: flat price so batteries idle, B1 and B3 hold cooling trims inside range, B2 baseline-plus-strategy within range; tanks idle, no end_trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy matches envelope: B1 and B3 cooling trims held at strategy values, B2 eases trim; batteries idle on flat price, tanks at 0.","status":"ok"},{"clamps":[{"applied":0.1328,"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.2828,"rule":"trim_hold"},{"applied":0.1731,"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.099","requested":0.2725,"rule":"trim_hold"}],"fallback":null,"reason":"Strategy matches envelope: Building_1 and 3 hold trims at range minimum; Building_2 eases. Prices flat, batteries idle, tanks at 0, no clamps needed.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Follow strategy: flat price so batteries idle; B1 and B2 cooling per strategy, B3 trim held at its range; no tank action.","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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,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,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,5.0,6.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,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,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,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,11.0,11.0,11.0,12.0,13.0,13.0,13.0,13.0,13.0,13.0,13.0,13.0,13.0,13.0,13.0,13.0,13.0,13.0,13.0,13.0,13.0,13.0,13.0,13.0,13.0,13.0,14.0,15.0,16.0,17.0,19.0,21.0,23.0,26.0,29.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,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,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,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,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,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,31.0,32.0,33.0,34.0,34.0,34.0,34.0,34.0,34.0,34.0,34.0,34.0,34.0,34.0,34.0,34.0,34.0,34.0,34.0,34.0,34.0,34.0,34.0,34.0,34.0,35.0,36.0,36.0,36.0,36.0,36.0,36.0,36.0,36.0,36.0,36.0,36.0,36.0,36.0,36.0,36.0,36.0,36.0,36.0,36.0,36.0,36.0,36.0,38.0,40.0,41.0,41.0,41.0,41.0,41.0,42.0,42.0,42.0,42.0,42.0,42.0,42.0,42.0,42.0,42.0,42.0,42.0,42.0,42.0,42.0,42.0,42.0,42.0,44.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,47.0,47.0,47.0,47.0,47.0,47.0,47.0,47.0,47.0,47.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,49.0,49.0,50.0,51.0,51.0,51.0,52.0,52.0,52.0,52.0,52.0,52.0,52.0,52.0,52.0,52.0,52.0,52.0,52.0,53.0,53.0,53.0,53.0,55.0,57.0,58.0,59.0,59.0,59.0,59.0,59.0,59.0,59.0,60.0,60.0,60.0,60.0,60.0,60.0,60.0,60.0,60.0,60.0,60.0,60.0,60.0,60.0,61.0,63.0,64.0,65.0,65.0,66.0,67.0,68.0,68.0,68.0,68.0,68.0,68.0,68.0,68.0,68.0,68.0,68.0,68.0,68.0,68.0,68.0,69.0,70.0,72.0,74.0,76.0,76.0,76.0,76.0,76.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.511,4.521,2.435,3.856,4.394,6.658,5.278,4.935,5.313,2.612,1.759,1.389,2.11,2.376,2.591,2.559,1.447,3.144,1.423,2.63,3.47,8.481,6.488,5.599,6.938,7.36,5.65,6.643,4.793,5.901,5.221,4.961,3.065,2.344,1.935,2.164,1.768,1.739,1.855,1.814,3.458,4.284,1.229,1.772,1.909,1.449,7.592,1.84,4.907,5.804,4.224,4.704,3.431,2.984,4.345,1.856,1.566,1.347,1.366,2.127,2.415,1.8,2.908,3.847,1.927,2.93,1.364,1.75,0.977,1.72,0.864,1.153,-0.077,0.456,1.081,3.387,3.074,3.226,2.828,2.959,2.614,2.551,1.894,2.757,2.646,2.374,2.569,3.066,4.315,1.476,0.508,0.257,1.043,1.74,1.858,2.264,1.393,1.668,3.83,5.176,6.448,3.915,2.328,2.613,2.194,3.275,2.766,3.177,3.031,2.862,3.471,11.858,2.972,3.107,7.487,2.382,1.125,1.574,1.211,2.211,0.484,0.899,2.11,2.665,4.339,12.729,3.876,2.626,2.387,2.501,4.076,3.443,3.147,2.848,2.813,5.705,2.932,4.077,2.031,1.197,4.366,3.984,3.24,3.243,0.175,0.73,2.883,5.354,3.788,4.41,2.95,1.865,2.062,1.939,2.941,1.108,2.285,2.268,5.215,3.287,1.919,2.43,0.757,0.736,1.155,0.776,1.69,2.233,1.032,1.297,2.108,4.314,4.69,4.352,3.174,2.864,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.212,6.191,5.254,4.478,5.351,6.054,4.86,3.526,3.449,3.682,2.605,1.816,2.125,2.161,1.499,1.465,2.982,1.709,1.613,1.295,0.84,1.422,1.207,2.482,10.35,3.172,3.928,10.711,6.295,6.917,5.699,3.933,2.965,3.036,2.456,2.608,2.693,3.412,2.795,2.76,2.898,7.37,3.392,5.024,3.688,2.091,1.48,1.862,2.642,7.178,3.133,3.614,3.22,5.125,4.327,3.881,9.942,2.264,3.384,2.161,2.315,3.061,2.98,2.978,3.095,3.124,1.817,1.156,2.557,1.768,2.357,1.679,3.521,3.569,3.741,8.291,4.636,6.27,8.097,7.264,7.725,10.697,3.471,1.559,1.8,2.825,2.659,2.902,2.937,4.204,1.783,1.568,0.962,1.091,0.956,1.219,1.974,3.316,2.926,3.149,2.208,4.996,6.079,5.051,4.394,5.208,2.764,2.322,3.76,3.077,2.814,2.749,2.785,3.087,5.071,3.09,0.447,0.939,0.837,2.899,2.81,0.964,0.9,1.23,2.112,4.913,5.618,5.635,3.492,3.168,3.822,3.846,2.584,3.206,2.97,4.134,2.814,2.516,4.219,5.496,4.494,3.203,3.104,2.577,1.943,4.467,2.227,2.119,3.766,5.82,4.537,4.254,5.511,2.637,4.401,2.25,2.505,2.145,1.743,1.656,1.767,2.001,4.154,1.902,2.324,2.249,2.053,7.512,3.27,4.004,3.429,6.692,5.354,4.644,4.683,5.162,3.82,2.087,1.759,1.897,1.81,1.355,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.523,4.668,3.822,1.979,3.04,2.766,3.362,3.151,3.036,6.075,5.696,2.269,1.649,3.243,2.981,1.885,3.358,6.573,3.868,2.131,2.057,1.632,3.722,5.465,3.104,5.499,3.009,2.881,3.515,3.458,2.839,3.195,1.792,1.712,3.394,5.545,4.488,4.09,1.735,0.947,2.608,3.38,5.089,0.948,0.792,0.698,2.714,3.252,3.345,2.899,1.98,3.171,3.736,4.588,2.857,2.779,3.627,4.419,1.965,3.186,2.878,1.68,1.179,3.177,2.421,0.83,1.095,0.459,1.228,1.654,2.65,3.106,3.882,5.157,3.818,4.078,2.213,1.897,2.472,4.013,3.149,2.829,3.085,3.85,1.565,1.006,1.024,3.23,2.228,2.282,3.157,1.547,2.896,2.213,7.217,3.881,3.262,4.106,3.876,3.323,3.689,3.916,3.234,2.812,1.994,3.781,7.962,5.055,5.248,2.42,1.76,4.135,2.782,2.005,3.592,4.388,3.689,2.649,5.086,5.677,4.554,3.635,2.813,2.309,2.214,1.648,1.286,1.69,1.423,1.471,2.036,4.291,5.184,12.115,8.817,2.969,4.992,3.772,7.193,11.662,6.346,5.312,6.652,4.901,4.056,3.428,3.831,2.95,2.222,2.32,1.597,1.242,1.796,2.04,2.114,4.538,2.883,1.574,4.015,1.599,7.218,6.215,2.665,3.946,9.292,6.702,6.877,4.368,4.229,3.966,4.286,2.124,2.492,2.262,2.698,2.47,3.177,6.171,5.266,3.38,2.108,1.246,2.035,1.706,2.351,2.672,4.93,1.344,1.764,0.626,2.733,6.305,3.738,4.068,3.369,1.511,2.585,3.561,3.394,3.619,4.268,3.701,3.172,2.805,2.094,2.64,1.32,0.862,1.93,2.414,2.427,0.913,1.496,2.68,3.95,4.011,4.942,2.867,8.146,3.354,3.531,3.462,3.184,2.735,2.757,5.604,3.336,3.185,4.323,2.335,1.172,1.787,0.613,0.627,3.046,2.55,3.994,4.086,5.05,13.515,5.624,7.667,3.059,3.329,2.203,3.442,3.157,2.889,2.834,4.007,6.444,4.178,7.419,6.712,3.671,4.606,4.144,3.847,6.154,3.025,4.097,3.709,5.985,7.423,4.616,18.96,4.244,2.521,2.693,4.851,5.358,3.455,2.849,2.913,5.317,3.12,2.824,3.005,2.941,6.062,3.945,2.97,4.239,2.932,3.742,3.535,13.032,6.24,3.879,4.587,5.001,3.801,1.975,1.666,1.236,1.281,1.289,1.361,1.704,3.246,3.089,6.009,4.85,2.792,4.237,5.011,6.118,6.68,7.112,7.211,6.572,5.193,4.658,4.488,4.693],"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.745,24.825,25.92,27.612,29.528,32.46,34.821,37.04,39.394,40.52,41.22,41.752,42.539,43.42,44.371,45.325,45.877,47.173,47.782,48.998,50.67,54.777,57.909,60.597,63.884,67.304,69.897,72.892,75.023,77.659,80.05,82.325,83.72,84.817,85.679,86.593,87.301,87.977,88.696,89.412,90.817,92.602,93.281,94.202,95.296,96.088,100.19,101.157,103.711,106.712,108.882,111.28,112.992,114.467,116.632,117.54,118.315,118.965,119.591,120.47,121.4,122.149,123.453,125.163,126.091,127.6,128.313,129.267,129.797,130.718,131.178,131.848,131.971,132.206,132.758,134.488,136.074,137.756,139.211,140.697,141.93,143.05,143.827,144.893,145.94,146.909,148.03,149.457,151.534,152.281,152.648,153.102,153.911,154.919,155.918,157.124,157.857,158.727,160.709,163.356,166.597,168.535,169.644,170.853,171.866,173.289,174.415,175.661,176.784,177.841,179.134,183.833,185.075,186.459,189.878,190.985,191.565,192.51,193.385,194.521,194.961,195.511,196.556,197.845,199.884,205.739,207.491,208.653,209.661,210.689,212.264,213.551,214.728,215.825,216.94,219.309,220.53,222.353,223.266,223.813,225.862,227.771,229.358,230.942,231.224,231.807,233.162,235.608,237.271,239.214,240.518,241.323,242.201,243.019,244.131,244.534,245.344,246.182,248.165,249.507,250.399,251.604,251.996,252.444,253.151,253.655,254.442,255.498,255.989,256.602,257.589,259.605,261.792,263.834,265.329,266.65,267.596,268.475,269.163,269.718,270.237,270.75,271.293,272.319,273.064,274.681,275.348,276.007,277.227,278.624,283.051,285.97,288.42,290.5,292.968,295.732,297.95,299.587,301.182,302.809,303.877,304.604,305.405,306.153,306.662,307.158,308.164,308.752,309.319,309.781,310.235,310.795,311.308,312.415,317.256,318.748,320.601,325.653,328.619,331.79,334.359,336.137,337.466,338.781,339.832,340.912,341.98,343.287,344.34,345.357,346.437,349.228,350.534,352.527,353.948,354.785,355.484,356.355,357.602,361.051,362.564,364.322,365.892,368.394,370.506,372.406,377.203,378.251,379.726,380.657,381.596,382.795,383.956,385.136,386.394,387.724,388.539,389.173,390.38,391.187,392.317,393.132,394.831,396.532,398.296,402.158,404.279,407.11,410.803,414.184,417.844,422.856,424.447,425.164,425.977,427.172,428.265,429.488,430.779,432.751,433.646,434.441,434.955,435.615,436.246,436.945,437.97,439.683,441.17,442.747,443.835,446.271,449.252,451.75,453.932,456.481,457.816,458.871,460.528,461.787,462.906,463.966,465.106,466.468,468.868,470.398,470.954,471.572,472.071,473.469,474.812,475.485,475.909,476.485,477.472,479.744,482.333,484.95,486.565,487.965,489.592,491.135,492.123,493.294,494.349,495.844,496.932,497.961,499.746,502.087,504.101,505.47,506.851,508.0,508.866,510.829,511.808,512.726,514.348,516.869,518.84,520.716,523.171,524.317,526.143,527.06,528.005,528.807,529.452,530.067,530.737,531.504,533.108,533.837,534.709,535.59,536.451,539.628,541.025,542.722,544.24,547.068,549.333,551.299,553.302,555.56,557.287,558.238,559.028,559.919,560.758,561.393,561.97,562.663,562.663,562.663,562.663,562.663,562.663,562.663,562.663,562.663,562.663,562.663,562.663,562.663,562.663,562.663,562.663,564.951,567.33,569.266,570.27,571.789,573.204,574.888,576.438,577.908,580.919,583.804,584.974,585.866,587.727,589.322,590.345,592.163,595.697,597.723,598.815,599.858,600.668,602.489,605.21,606.788,609.588,611.082,612.47,614.031,615.549,616.789,618.199,619.01,619.825,621.528,624.368,626.7,628.808,629.715,630.259,631.645,633.434,636.105,636.599,637.01,637.369,638.745,640.348,641.953,643.32,644.227,645.617,647.297,649.222,650.402,651.618,653.318,655.512,656.517,658.151,659.621,660.497,661.236,662.918,664.281,664.781,665.375,665.624,666.288,667.183,668.618,670.301,672.402,675.175,677.217,679.392,680.529,681.528,682.818,684.943,686.648,688.21,689.918,692.058,692.916,693.496,694.077,695.818,697.023,698.253,699.944,700.77,702.316,703.499,707.365,709.466,711.243,713.448,715.477,717.14,718.789,720.454,721.745,722.845,723.616,725.106,728.51,730.724,733.152,734.467,735.316,737.352,738.729,739.71,741.437,743.534,745.285,746.532,748.894,751.481,753.549,755.189,756.418,757.396,758.31,758.979,759.465,760.079,760.583,761.159,762.002,763.728,765.734,770.265,773.746,775.006,777.203,778.917,782.286,787.812,790.825,793.345,796.493,798.78,800.639,802.196,803.886,805.138,806.027,806.895,807.479,807.915,808.535,809.226,809.956,811.573,812.615,813.292,814.826,815.497,818.596,821.344,822.664,824.466,828.734,831.746,834.761,836.655,838.504,840.237,842.075,842.973,844.043,844.948,845.974,846.942,848.243,851.003,853.502,855.202,856.256,857.034,858.033,858.999,860.229,861.566,864.048,864.744,865.633,866.058,867.424,870.551,872.399,874.415,876.057,876.775,877.895,879.367,880.702,882.117,883.795,885.299,886.635,887.855,888.788,889.917,890.493,891.071,892.183,893.328,894.488,894.925,895.64,896.917,898.799,900.713,903.097,904.477,908.263,909.744,911.208,912.571,913.796,914.839,915.882,918.052,919.402,920.743,922.57,923.603,924.217,925.115,925.924,926.698,928.194,929.451,931.429,933.462,935.968,942.658,945.448,949.225,950.664,952.147,953.056,954.434,955.64,956.712,957.781,959.361,962.066,963.939,967.401,970.557,972.336,974.525,976.528,978.403,981.381,982.826,984.755,986.481,989.239,992.648,994.777,1003.545,1005.436,1006.502,1007.596,1009.374,1011.284,1012.499,1013.51,1014.573,1016.595,1017.813,1018.899,1020.04,1021.23,1023.812,1025.55,1026.889,1028.833,1030.185,1031.903,1033.52,1039.469,1042.257,1043.982,1046.028,1048.243,1049.944,1050.834,1051.602,1052.172,1052.768,1053.36,1053.991,1054.77,1056.222,1057.552,1059.926,1061.851,1063.017,1064.847,1067.094,1069.934,1073.066,1076.407,1079.79,1082.848,1085.267,1087.457,1089.533,1091.638],"kpi":{"all_time_peak_average":0.958959,"annual_normalized_unserved_energy_total":0.01965,"carbon_emissions_total":0.945303,"cost_total":0.904463,"daily_one_minus_load_factor_average":0.961567,"daily_peak_average":0.907401,"discomfort_cold_delta_average":0.368852,"discomfort_cold_delta_maximum":2.424601,"discomfort_cold_delta_minimum":0.0,"discomfort_cold_proportion":0.026592,"discomfort_hot_delta_average":0.258349,"discomfort_hot_delta_maximum":5.163125,"discomfort_hot_delta_minimum":0.0,"discomfort_hot_proportion":0.012798,"discomfort_proportion":0.039389,"electricity_consumption_total":0.95466,"monthly_one_minus_load_factor_average":1.003547,"one_minus_thermal_resilience_proportion":0.369841,"power_outage_normalized_unserved_energy_total":0.684409,"ramping_average":0.996898,"zero_net_energy":0.953021},"run":"citylearn_challenge_2023_phase_2_local_evaluation_agent_citylearn_20261023T160151Z","steps":719},"agent_run":{"budget_stopped":false,"budget_usd":2.0,"calls":719,"clamped_hours":33,"cost_usd":0.4182,"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":-9.6,"discomfort_points":-13.2,"emissions_pct":-5.5,"text":"Cost down 9.6% and emissions down 5.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 10c4e96..c96f851 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.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} +{"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.134,0.0,0.0,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.074,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.017,-0.0,-0.092,-0.521,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.0,0.15,0.15,0.0,0.15,0.07,0.015,0.0,0.0,0.006,0.0,0.002,0.0,0.001,-0.249,-0.263,-0.296,-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.0,0.15,0.103,0.046,0.011,0.0,-0.0,0.0,-0.5,-0.334,-0.038,0.0,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.041,0.01,0.0,0.0,-0.5,0.15,0.15,0.15,-0.228,-0.197,-0.31,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.0,0.15,0.15,0.15,0.15,0.0,0.0,0.072,0.072,0.016,0.0,0.0,0.0,-0.152,-0.242,-0.394,-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.127,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.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.112,-0.118,-0.133,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.144,-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.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.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.009,0.0,-0.066,-0.189,-0.302,0.0,-0.254,-0.028,0.0,0.0,0.15,0.15,0.0,0.15,0.15,0.15,0.15,0.042,0.011,-0.404,0.042,0.04,0.027,0.15,0.15,0.037,-0.246,-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.064,-0.244,-0.258,-0.289,0.0,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.132,0.028,0.0,0.008,-0.163,0.144,0.032,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.138,0.031,0.0,0.0,0.009,0.002,0.0,0.0,0.0,0.0,0.0,-0.166,-0.3,-0.335,0.0,0.0,0.0,-0.039,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.025,0.0,-0.247,-0.26,-0.292,-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.338,0.15,0.15,0.046,0.031,0.0,0.0,0.009,0.0,-0.249,-0.262,-0.295,0.0,-0.011,-0.011,-0.099,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.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.122,-0.24,-0.254,-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.008,0.002,0.0,0.0,0.0,0.001,-0.249,-0.263,-0.296,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.098,-0.206,-0.024,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.038,0.014,0.0,0.0,0.0,-0.247,-0.262,-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.004,-0.249,-0.263,-0.295,-0.135,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,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.378,0.134,0.322,0.68,0.117,0.214,0.41,0.337,0.089,0.0,0.078,0.087,0.094,0.106,0.12,0.028,0.088,0.184,0.277,0.456,0.563,0.623,0.627,0.551,0.601,0.49,0.291,0.332,0.558,0.706,0.433,0.25,0.173,0.242,0.154,0.15,0.164,0.165,0.185,0.251,0.004,0.057,0.0,0.078,0.108,0.151,0.307,0.56,0.49,0.063,0.01,0.007,0.269,0.047,0.0,0.081,0.072,0.008,0.004,0.01,0.002,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.155,0.13,0.1,0.091,0.215,0.019,0.135,0.119,0.095,0.109,0.055,0.103,0.145,0.084,0.068,0.094,0.124,0.2,0.285,0.376,0.466,0.485,0.529,0.378,0.214,0.156,0.134,0.124,0.115,0.102,0.074,0.208,0.185,0.142,0.121,0.169,0.151,0.21,0.402,0.233,0.182,0.183,0.165,0.295,0.127,0.097,0.31,0.258,0.29,0.3,0.337,0.265,0.121,0.227,0.28,0.191,0.132,0.114,0.103,0.15,0.149,0.25,0.204,0.203,0.275,0.266,0.357,0.434,0.23,0.034,0.195,0.12,0.102,0.148,0.05,0.04,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.388,0.25,0.161,0.133,0.122,0.108,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.557,0.497,0.472,0.348,0.219,0.159,0.143,0.131,0.286,0.122,0.223,0.194,0.096,0.09,0.103,0.124,0.145,0.155,0.019,0.18,0.25,0.352,0.31,0.428,0.451,0.267,0.561,0.456,0.29,0.187,0.003,0.16,0.125,0.225,0.296,0.183,0.135,0.122,0.124,0.14,0.178,0.253,0.131,0.139,0.162,0.254,0.348,0.689,0.7,0.526,0.422,0.308,0.206,0.137,0.108,0.096,0.256,0.107,0.226,0.147,0.132,0.127,0.133,0.14,0.168,0.0,0.08,0.173,0.259,0.285,0.367,0.438,0.52,0.595,0.57,0.426,0.268,0.215,0.129,0.094,0.336,0.081,0.196,0.085,0.072,0.13,0.119,0.125,0.147,0.194,0.066,0.113,0.162,0.233,0.328,0.416,0.503,0.541,0.528,0.399,0.285,0.264,0.178,0.112,0.086,0.213,0.274,0.176,0.118,0.106,0.104,0.125,0.19,0.167,0.001,0.153,0.211,0.114,0.112,0.138,0.248,0.3,0.317,0.43,0.45,0.285,0.202,0.14,0.113,0.208,0.275,0.206,0.154,0.18,0.096,0.111,0.156,0.23,0.022,0.172,0.236,0.331,0.225,0.519,0.604,0.504,0.517,0.401,0.282,0.194,0.25,0.125,0.09,0.202,0.28,0.239,0.141,0.126,0.127,0.138,0.251,0.109,0.016,0.186,0.214,0.577,0.461,0.305,0.125,0.197,0.284,0.182,0.106,0.109,0.035,0.019,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.138,0.224,0.245,0.193,0.234,0.305,0.249,0.195,0.161,0.227,0.091,0.104,0.013,0.0,0.142,0.203,0.128,0.111,0.352,0.482,0.471,0.334,0.332,0.302,0.077,0.148,0.042,0.024,0.152,0.228,0.125,0.091,0.079,0.083,0.096,0.106,0.087,0.027,0.045,0.059,0.089,0.074,0.115,0.125,0.135,0.129,0.106,0.101,0.084,0.057,0.066,0.06,0.115,0.203,0.137,0.12,0.148,0.131,0.11,0.161,0.165,0.013,0.025,0.06,0.08,0.098,0.143,0.236,0.177,0.053,0.032,0.097,0.088,0.084,0.074,0.134,0.135,0.186,0.167,0.103,0.104,0.099,0.101,0.116,0.124,0.068,0.124,0.209,0.296,0.303,0.348,0.33,0.708,0.589,0.379,0.196,0.124,0.113,0.096,0.088,0.179,0.257,0.213,0.115,0.102,0.167,0.103,0.141,0.164,0.02,0.196,0.409,0.36,0.335,0.444,0.831,0.895,0.604,0.42,0.288,0.209,0.15,0.101,0.082,0.205,0.105,0.021,0.069,0.063,0.056,0.074,0.209,0.334,0.226,0.266,0.298,0.456,0.514,0.61,0.699,0.608,0.487,0.405,0.27,0.124,0.08,0.397,0.237,0.077,0.199,0.085,0.0,0.13,0.174,0.179,0.139,0.0,0.079,0.176,0.237,0.422,0.349,0.191,0.54,0.82,0.624,0.366,0.247,0.214,0.144,0.143,0.046,0.188,0.24,0.054,0.033,0.182,0.168,0.171,0.128,0.098,0.006,0.081,0.129,0.198,0.276,0.358,0.334,0.328,0.185,0.032,0.306,0.178,0.17,0.09,0.061,0.186,0.27,0.233,0.193,0.204,0.181,0.166,0.179,0.17,0.093,0.151,0.112,0.144,0.245,0.31,0.423,0.499,0.432,0.217,0.217,0.198,0.083,0.19,0.282,0.209,0.233,0.21,0.095,0.089,0.097,0.126,0.18,0.189,0.122,0.186,0.256,0.042,0.07,0.43,0.707,0.74,0.341,0.25,0.611,0.404,0.225,0.145,0.38,0.133,0.172,0.145,0.102,0.09,0.11,0.219,0.178,0.237,0.095,0.16,0.601,0.431,0.353,0.562,0.609,0.635,0.63,0.493,0.454,0.269,0.237,0.138,0.03,0.225,0.31,0.33,0.228,0.08,0.08,0.144,0.185,0.194,0.116,0.386,0.387,0.654,0.392,0.426,0.528,0.592,0.364,0.205,0.426,0.285,0.522,0.593,0.393,0.056,0.0,0.0,0.0,0.0,0.0,0.073,0.177,0.141,0.255,0.382,0.388,0.457,0.556,0.659,0.705,0.682,0.628,0.368,0.275,0.191,0.133,0.085],"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.134,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.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.15,0.15,0.15,0.15,0.15,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.114,-0.107,-0.18,-0.456,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.0,0.15,0.15,0.0,0.15,0.15,0.058,0.048,0.011,0.005,0.0,0.001,0.0,0.001,-0.249,-0.263,-0.296,-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.0,0.042,0.011,0.0,0.0,0.0,0.0,0.0,0.0,-0.205,-0.231,-0.259,-0.13,-0.014,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.0,0.15,0.15,0.15,0.15,0.0,0.0,0.0,0.0,0.093,0.02,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.009,0.0,-0.249,-0.255,-0.301,0.0,-0.033,0.0,0.0,0.0,0.15,0.15,0.0,0.15,0.15,0.15,0.15,0.042,0.01,-0.5,0.15,0.15,0.15,0.074,0.017,0.0,-0.247,-0.262,-0.293,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.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.053,0.012,0.0,0.005,-0.5,0.15,0.15,0.15,0.0,0.0,0.0,-0.5,-0.082,-0.087,-0.097,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.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.15,0.15,0.033,0.0,-0.089,0.087,0.019,0.0,0.0,0.0,0.0,0.007,0.0,-0.249,-0.218,-0.274,-0.022,-0.024,-0.025,-0.13,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.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.045,-0.246,-0.26,-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.008,0.0,0.0,0.0,0.0,0.002,-0.249,-0.254,-0.273,0.0,0.0,0.0,0.0,-0.061,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.098,-0.206,-0.024,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.129,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.004,-0.249,-0.263,-0.295,-0.135,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,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.395,0.32,0.06,0.011,0.137,0.129,0.006,0.0,0.0,0.0,0.023,0.453,0.189,0.278,0.428,0.47,0.754,0.838,0.984,0.64,0.601,0.479,0.256,0.203,0.192,0.218,0.131,0.083,0.057,0.044,0.042,0.02,0.014,0.027,0.048,0.074,0.121,0.181,0.288,0.289,0.448,0.403,0.167,0.213,0.203,0.152,0.099,0.121,0.218,0.15,0.035,0.007,0.02,0.152,0.073,0.0,0.0,0.0,0.0,0.0,0.027,0.059,0.069,0.091,0.111,0.201,0.191,0.256,0.236,0.167,0.108,0.068,0.059,0.099,0.141,0.158,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.186,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.212,0.156,0.13,0.097,0.276,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.158,0.252,0.272,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.268,0.567,0.243,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.258,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.32,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.0,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.243,0.132,0.0,0.0,0.002,0.004,0.062,0.139,0.288,0.525,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.896,0.917,0.513,0.477,0.447,0.308,0.218,0.165,0.121,0.091,0.175,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.249,0.213,0.155,0.087,0.2,0.173,0.0,0.002,0.008,0.01,0.337,0.17,0.269,0.522,0.127,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.238,0.081,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.151,0.045,0.0,0.0,0.0,0.0,0.001,0.017,0.031,0.195,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.176,0.21,0.037,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.228,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.039,0.0,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.0,0.007,0.013,0.017,0.017,0.066,0.469,0.347,0.167,0.621,0.38,0.499,0.859,0.904,0.466,0.817,0.456,0.547,0.216,0.337,0.227,0.092,0.294,0.233,0.0,0.001,0.013,0.02,0.022,0.192,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.341,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.428,0.261,0.216,0.159,0.121,0.179,0.172,0.0,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.341,0.244,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.222,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.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.0,-0.203,0.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.0,0.15,0.085,0.048,0.027,0.016,0.012,0.0,0.009,0.0,0.001,-0.246,-0.305,-0.452,-0.22,-0.105,-0.05,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.0,0.15,0.15,0.15,0.15,0.128,-0.225,-0.279,-0.414,-0.201,-0.096,-0.046,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.112,-0.109,0.12,0.066,0.037,-0.234,-0.302,-0.446,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.15,0.0,0.15,0.15,0.15,0.15,0.0,0.0,0.0,0.15,0.131,0.071,0.04,0.023,-0.244,-0.303,-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.0,-0.023,-0.01,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.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.012,0.0,-0.246,-0.305,-0.452,0.0,-0.219,-0.105,0.0,0.0,0.15,0.15,0.0,0.15,0.15,0.15,0.15,0.15,0.15,-0.409,0.15,0.15,0.15,0.15,0.09,0.05,-0.239,-0.296,-0.439,-0.053,-0.062,-0.076,-0.112,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,-0.048,0.0,0.0,0.0,-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.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.065,-0.221,0.15,0.083,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.079,0.044,0.025,0.017,0.0,0.0,0.0,0.0,0.015,-0.146,-0.252,-0.49,0.0,0.0,0.0,-0.276,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.143,0.079,-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.046,0.028,0.015,-0.245,-0.305,-0.451,-0.054,-0.063,-0.078,-0.218,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.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.204,0.0,0.0,0.0,-0.095,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.232,-0.207,-0.256,-0.38,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.09,0.052,0.027,0.017,0.011,0.0,0.01,-0.247,-0.306,-0.453,0.0,0.0,0.0,0.0,-0.218,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.149,-0.365,-0.177,0.0,-0.083,0.0,0.0,0.0,0.15,0.15,0.15,0.15,0.15,0.15,0.0,0.0,-0.448,0.15,0.15,0.15,0.15,0.15,-0.186,-0.231,-0.342,0.0,-0.163,0.0,-0.079,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.097,0.054,0.03,0.018,0.013,-0.246,-0.306,-0.452,-0.055,-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.658,0.696,0.442,0.335,0.22,0.253,0.224,0.27,0.328,0.086,0.048,0.058,0.018,0.009,0.039,0.033,0.05,0.132,0.225,0.296,0.373,0.448,0.537,0.644,0.819,0.909,0.581,0.387,0.475,0.408,0.347,0.05,0.0,0.06,0.051,0.043,0.036,0.032,0.026,0.031,0.08,0.173,0.176,0.322,0.266,0.246,0.394,0.422,0.431,0.32,0.254,0.301,0.235,0.196,0.171,0.076,0.0,0.012,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.41,0.477,0.198,0.092,0.077,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.345,0.23,0.149,0.357,0.146,0.096,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.545,0.576,0.413,0.294,0.2,0.18,0.128,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.549,0.593,0.729,0.466,0.313,0.239,0.156,0.093,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.511,0.484,0.477,0.48,0.251,0.173,0.134,0.121,0.096,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.552,0.543,0.862,0.701,0.549,0.453,0.249,0.179,0.093,0.149,0.197,0.18,0.154,0.0,0.0,0.0,0.362,0.064,0.075,0.192,0.244,0.322,0.47,0.561,0.599,0.523,0.556,0.406,0.405,0.418,0.329,0.33,0.099,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.342,0.339,0.413,0.528,0.352,0.03,0.0,0.0,0.0,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.49,0.554,0.487,0.416,0.308,0.263,0.316,0.278,0.052,0.028,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.521,0.59,0.401,0.31,0.368,0.332,0.198,0.17,0.059,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.606,0.523,0.525,0.375,0.266,0.179,0.138,0.262,0.053,0.035,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.574,0.628,0.613,0.469,0.358,0.267,0.196,0.164,0.127,0.1,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.439,0.318,0.23,0.0,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.296,0.215,0.138,0.129,0.115,0.097,0.025,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.079,0.04,0.059,0.077,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.159,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.369,0.261,0.182,0.176,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.525,0.621,0.724,0.6,0.502,0.468,0.322,0.239,0.109,0.058,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.762,0.754,0.713,0.476,0.399,0.265,0.168,0.112,0.212,0.109,0.112,0.114,0.104,0.092,0.085,0.075,0.072,0.106,0.177,0.283,0.383,0.439,0.502,0.565,0.619,0.65,0.711,0.625,0.533,0.34,0.195,0.149,0.098,0.066,0.071,0.114,0.102,0.041,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.366,0.323,0.327,0.295,0.201,0.131,0.106,0.013,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.451,0.483,0.503,0.522,0.572,0.461,0.311,0.243,0.281,0.145,0.342,0.141,0.111,0.053,0.039,0.049,0.052,0.253,0.062,0.101,0.272,0.261,0.285,0.342,0.412,0.479,0.557,0.626,0.668,0.613,0.506,0.481,0.305,0.217,0.142,0.086,0.067,0.117,0.096,0.08,0.066,0.061,0.126,0.164,0.315,0.46,0.482,0.381,0.553,0.655,0.776,0.837,0.753,0.614,0.462,0.373,0.255,0.306,0.18,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.683,0.533,0.634,0.697,0.748,0.747,0.625,0.604,0.364,0.242,0.174,0.116,0.093,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.823,0.875,0.901,0.859,0.739,0.527,0.356,0.247,0.173,0.272],"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.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.247,0.261,0.261,0.261,0.261,0.261,0.261,0.261,0.261,0.261,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.377,0.377,0.399,0.455,0.599,0.747,0.747,0.759,0.759,0.759,0.759,0.759,0.758,0.758,0.758,0.758,0.758,0.758,0.758,0.758,0.875,0.875,0.874,0.932,0.932,0.932,0.932,0.932,0.932,0.931,0.931,0.945,0.944,0.863,0.412,0.412,0.412,0.412,0.411,0.411,0.411,0.528,0.528,0.645,0.762,0.761,0.878,0.933,0.944,0.944,0.944,0.949,0.948,0.95,0.949,0.95,0.729,0.497,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.472,0.589,0.705,0.705,0.822,0.902,0.938,0.946,0.946,0.946,0.946,0.535,0.24,0.207,0.207,0.207,0.207,0.207,0.207,0.323,0.44,0.557,0.674,0.79,0.907,0.939,0.947,0.947,0.946,0.537,0.654,0.771,0.887,0.685,0.511,0.237,0.237,0.237,0.237,0.237,0.237,0.237,0.237,0.354,0.354,0.47,0.587,0.704,0.821,0.821,0.82,0.876,0.932,0.945,0.945,0.945,0.944,0.81,0.596,0.25,0.24,0.229,0.217,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.203,0.203,0.203,0.203,0.203,0.256,0.298,0.328,0.328,0.215,0.215,0.215,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.787,0.787,0.787,0.904,0.938,0.947,0.947,0.946,0.537,0.438,0.334,0.216,0.216,0.216,0.216,0.203,0.203,0.203,0.203,0.203,0.32,0.437,0.554,0.67,0.787,0.787,0.805,0.805,0.805,0.805,0.805,0.804,0.916,0.706,0.483,0.233,0.233,0.233,0.233,0.233,0.205,0.205,0.205,0.205,0.321,0.438,0.555,0.672,0.788,0.788,0.788,0.869,0.931,0.944,0.944,0.944,0.943,0.725,0.494,0.235,0.235,0.235,0.234,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.941,0.941,0.941,0.948,0.948,0.889,0.722,0.455,0.455,0.23,0.205,0.205,0.205,0.322,0.439,0.439,0.555,0.672,0.789,0.906,0.938,0.947,0.593,0.625,0.656,0.677,0.794,0.911,0.94,0.722,0.492,0.234,0.234,0.224,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,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.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.234,0.234,0.234,0.234,0.234,0.35,0.467,0.584,0.701,0.817,0.92,0.942,0.942,0.948,0.804,0.916,0.941,0.941,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.343,0.459,0.576,0.693,0.81,0.917,0.941,0.941,0.941,0.948,0.949,0.949,0.949,0.949,0.949,0.949,0.802,0.536,0.241,0.241,0.241,0.241,0.206,0.206,0.206,0.206,0.206,0.323,0.44,0.557,0.673,0.79,0.79,0.79,0.862,0.923,0.923,0.923,0.942,0.942,0.723,0.493,0.235,0.206,0.206,0.206,0.206,0.322,0.439,0.556,0.673,0.789,0.906,0.939,0.946,0.648,0.765,0.882,0.917,0.941,0.941,0.941,0.948,0.948,0.727,0.496,0.234,0.234,0.225,0.215,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.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.923,0.71,0.485,0.244,0.244,0.244,0.244,0.244,0.244,0.244,0.361,0.477,0.594,0.711,0.827,0.922,0.943,0.942,0.942,0.948,0.949,0.949,0.949,0.949,0.95,0.729,0.497,0.235,0.235,0.235,0.235,0.234,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.946,0.946,0.946,0.946,0.727,0.495,0.408,0.226,0.204,0.204,0.204,0.204,0.204,0.204,0.321,0.438,0.555,0.671,0.788,0.905,0.905,0.905,0.905,0.934,0.945,0.945,0.945,0.945,0.726,0.494,0.235,0.235,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.938,0.947,0.947,0.947,0.947,0.947,0.946,0.949,0.729,0.496,0.235,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,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.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.784,1.013,2.274,3.323,1.417,1.303,2.042,1.739,0.719,0.351,0.671,1.713,1.752,1.766,0.572,-0.043,-0.013,0.819,1.462,6.669,4.066,2.046,1.922,2.712,2.326,3.124,1.953,3.657,2.93,3.446,2.155,1.38,1.063,1.346,0.968,0.967,1.021,0.979,1.779,1.827,-0.428,-0.374,-0.43,-0.133,-0.321,-0.011,2.823,3.203,2.159,1.246,0.875,0.64,1.741,0.677,0.871,0.69,0.649,0.384,0.851,0.388,1.377,0.606,0.824,0.441,0.178,0.139,0.075,0.006,0.084,-0.119,-0.312,0.065,0.355,1.383,1.232,1.47,0.956,1.033,1.24,0.93,0.908,1.338,1.238,1.702,1.071,1.733,2.053,0.612,-0.215,-0.612,-0.417,-0.14,0.399,0.653,0.503,0.636,2.086,1.815,1.633,1.089,0.916,1.106,1.065,1.273,1.156,1.704,1.607,1.429,1.948,4.054,1.221,1.144,5.824,0.617,-0.07,-0.286,-0.486,0.569,-0.373,-0.189,1.494,0.871,2.704,8.927,2.165,1.511,0.853,1.289,2.234,1.622,1.375,1.314,1.265,2.371,1.134,2.551,0.266,0.062,4.099,1.558,1.474,1.533,-0.403,-0.479,1.233,1.571,1.118,2.04,0.75,0.525,0.561,0.49,0.93,0.383,0.848,0.847,3.696,0.95,0.203,1.584,-0.051,-0.207,-0.358,-0.314,0.182,0.323,0.104,0.167,0.276,1.669,1.679,1.345,0.997,0.804,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.485,1.794,2.135,1.831,1.879,1.264,1.222,1.02,1.57,0.858,1.262,1.367,0.745,0.718,2.153,0.811,0.653,0.246,-0.449,-0.041,-0.028,0.455,-0.153,0.744,1.21,5.167,2.385,3.195,2.049,1.936,0.619,1.687,0.87,1.278,1.568,1.601,1.402,1.335,1.356,1.411,1.869,1.837,0.875,0.164,-0.144,-0.055,0.424,6.474,1.683,1.963,1.868,2.102,1.364,1.011,0.761,0.755,1.867,0.794,1.283,1.454,1.391,1.367,1.392,1.41,0.8,-0.228,-0.157,0.728,1.073,0.033,0.484,1.24,2.532,6.821,2.316,3.055,2.433,2.03,1.213,0.87,1.737,0.687,1.156,1.199,1.146,1.38,1.337,1.32,0.656,0.496,-0.071,-0.221,-0.256,-0.121,0.188,0.677,1.459,1.921,1.161,2.075,2.785,2.308,1.185,0.881,1.184,1.228,1.976,1.573,1.335,1.281,1.271,1.721,3.455,0.349,-0.715,-0.371,-0.205,1.682,1.559,-0.459,0.045,0.131,0.196,2.194,1.75,1.689,1.375,1.16,1.319,1.708,1.481,1.696,1.481,2.649,1.238,0.915,0.789,0.275,-0.439,-0.028,-0.021,0.781,0.333,2.23,0.953,0.728,2.333,2.235,1.716,1.372,3.319,0.935,0.728,1.183,1.504,1.334,0.93,0.855,0.87,0.91,2.903,0.314,0.213,0.328,-0.022,4.912,0.98,0.609,-0.145,3.391,2.674,1.568,1.435,1.972,1.136,0.559,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.542,1.465,1.489,1.167,1.318,1.597,1.859,1.651,1.509,4.461,1.839,0.573,-0.046,-0.311,0.632,0.162,0.005,4.104,0.905,0.593,0.949,0.871,1.704,3.654,0.927,3.761,1.214,0.972,1.477,1.787,1.363,2.048,0.767,0.692,0.768,0.111,1.199,1.189,0.013,-0.079,0.686,0.25,0.168,0.071,0.126,0.263,1.223,2.112,1.4,1.091,0.913,1.322,1.324,2.785,1.412,1.34,2.191,2.146,0.857,2.247,1.595,-0.016,-0.235,0.481,-0.126,-0.096,0.121,0.115,0.722,0.479,0.567,1.214,1.11,1.772,1.166,2.755,1.131,1.115,1.537,1.271,1.684,1.25,1.22,0.544,0.213,-0.063,-0.054,1.116,0.465,0.386,1.04,0.008,1.651,1.473,4.519,1.833,0.958,1.794,1.471,1.216,1.587,1.906,1.724,1.321,0.892,2.674,0.046,1.234,1.338,-0.442,0.42,2.427,0.726,0.222,0.781,2.164,2.289,1.424,2.142,1.741,2.088,1.197,0.835,0.714,1.197,0.785,0.438,0.633,0.606,0.579,1.018,0.96,1.038,1.53,6.142,0.082,1.425,1.309,4.077,7.995,2.34,2.159,2.202,2.356,1.826,1.393,2.053,1.33,0.671,1.169,0.69,0.35,0.884,1.063,1.069,1.122,0.158,-0.294,0.707,-0.061,6.045,3.371,-0.27,1.484,3.015,3.493,1.925,1.605,1.491,1.355,2.627,0.564,1.13,1.339,1.071,0.982,1.593,4.511,2.533,1.706,0.322,-0.343,0.652,-0.242,-0.114,0.316,2.118,-0.039,0.557,-0.22,0.438,3.574,1.342,2.237,1.872,0.608,1.619,1.962,1.807,2.047,2.683,2.087,1.829,1.495,0.39,-0.025,0.114,-0.394,-0.466,0.182,0.266,0.06,0.64,1.175,1.259,1.621,2.204,0.796,1.092,1.514,1.213,1.808,1.712,1.208,1.214,1.244,1.36,1.257,0.439,-0.219,-0.236,-0.115,-1.053,-0.957,1.073,1.385,2.583,1.395,0.889,2.949,2.506,5.058,1.016,1.916,0.901,1.556,1.446,1.267,1.218,2.318,4.104,1.88,0.606,-0.361,-0.189,2.272,0.873,0.33,3.048,0.806,1.749,1.541,2.435,3.887,1.81,8.002,0.989,0.5,1.28,2.118,3.556,1.784,1.175,1.176,2.107,1.116,0.641,0.879,0.69,1.379,1.5,0.433,0.685,0.416,1.989,1.865,2.157,2.846,1.618,2.601,3.008,1.972,0.584,0.353,0.351,0.35,0.349,0.349,0.613,2.034,1.339,2.955,2.79,0.52,0.716,1.345,2.202,2.199,2.767,2.789,1.872,1.991,1.986,2.109,0.771],"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.18,26.29,23.96,20.63,22.86,22.04,19.69,19.57,21.42,23.11,22.13,22.26,22.18,22.28,22.55,24.1,24.48,24.53,24.48,23.74,23.65,23.5,23.48,23.86,23.26,23.52,24.09,23.42,20.93,18.95,19.16,19.71,20.2,18.99,19.76,19.66,19.54,19.64,19.69,19.55,22.35,23.14,24.74,24.35,24.6,24.44,22.89,20.7,20.65,23.13,24.42,25.0,20.5,22.48,23.68,22.66,22.88,23.83,24.12,24.24,24.4,24.6,23.47,23.8,23.86,25.06,24.25,24.45,25.39,25.11,25.6,24.63,23.68,23.62,24.0,23.84,23.99,23.94,21.59,23.6,21.39,21.74,21.81,21.52,22.24,21.72,21.59,22.72,23.55,24.09,24.53,24.45,24.27,23.91,23.38,23.32,22.88,23.47,23.94,24.22,24.33,24.32,24.22,24.09,24.25,21.68,21.72,21.81,21.99,21.51,22.06,22.09,20.94,22.49,23.63,24.27,25.1,24.55,26.25,27.28,25.64,25.88,24.66,24.15,23.27,23.25,24.19,22.42,21.44,21.69,22.0,22.1,22.27,21.92,22.34,21.9,22.67,23.22,23.38,24.04,23.78,23.64,25.26,27.46,26.42,26.97,26.85,26.2,27.1,27.44,27.36,27.51,27.75,28.03,28.32,28.49,26.95,27.87,28.47,27.66,28.2,28.25,28.12,27.93,27.52,27.14,26.75,26.41,26.08,26.68,26.93,26.96,26.94,26.86,26.94,26.75,26.9,26.96,27.03,27.09,27.29,27.18,27.3,25.96,26.18,25.96,25.56,25.17,24.69,24.18,23.81,23.89,23.54,23.79,24.11,24.44,24.45,24.38,21.77,22.88,21.02,21.13,21.9,21.95,21.81,21.79,22.02,22.53,24.53,23.5,23.75,23.41,24.24,23.85,23.95,25.2,22.53,22.96,23.36,23.91,25.77,23.57,23.9,22.16,21.02,21.59,21.89,22.02,21.87,21.75,21.55,21.12,22.66,23.44,24.11,23.91,23.71,21.3,21.3,21.89,22.39,23.06,23.6,24.12,24.36,24.46,21.79,23.07,21.05,21.86,21.88,21.98,21.86,21.87,21.96,24.08,24.01,23.87,23.35,23.59,23.28,23.15,22.74,22.28,22.29,22.63,23.07,23.25,23.99,24.28,20.56,22.56,20.7,22.07,22.32,21.7,21.87,21.94,22.01,21.9,23.69,24.06,24.2,24.04,23.77,23.45,23.16,22.97,22.82,23.14,23.33,23.31,23.83,24.35,24.59,22.51,21.35,21.66,21.99,22.08,22.12,22.28,22.17,22.8,25.01,24.26,24.41,25.75,26.55,26.96,26.41,26.12,25.74,24.34,23.24,23.59,23.9,24.34,24.52,22.89,21.59,21.63,21.8,21.36,22.21,22.22,22.27,22.11,24.47,23.72,24.07,23.88,25.15,23.02,22.85,23.1,22.71,23.06,23.48,23.96,23.12,24.03,24.4,22.68,21.4,21.23,21.83,21.91,21.88,22.01,21.27,22.86,24.6,23.72,24.2,21.73,22.79,23.98,25.85,26.03,25.53,26.1,26.55,26.4,27.14,27.51,26.75,26.69,26.7,26.77,26.89,27.01,27.38,27.42,27.62,27.6,27.49,27.28,26.39,26.36,26.6,27.13,27.67,28.34,28.95,29.72,30.17,27.96,26.21,25.06,24.79,23.55,22.02,21.85,21.83,21.9,20.94,22.09,22.25,23.93,24.85,23.92,23.95,25.03,25.78,23.68,22.98,22.56,22.91,22.12,21.73,23.52,22.69,24.01,24.44,22.15,21.0,21.72,22.01,22.12,22.04,21.93,21.83,22.23,23.31,23.64,23.79,23.65,24.06,23.81,23.84,23.87,23.9,23.97,23.77,23.75,24.0,23.8,23.84,22.82,21.31,21.75,21.74,21.33,21.49,21.8,21.14,21.19,22.98,23.58,23.73,23.86,23.91,23.53,22.47,22.96,24.29,24.94,24.13,24.15,24.03,24.05,22.96,22.64,21.49,21.39,21.95,21.92,21.97,22.1,22.31,22.79,24.17,24.26,24.04,23.79,24.05,23.93,24.29,21.11,21.7,22.34,23.29,23.97,24.13,24.27,24.27,22.68,21.3,21.2,21.92,22.06,21.26,22.09,22.24,22.73,24.73,23.96,23.24,23.93,24.53,24.23,21.66,21.38,21.96,22.47,22.93,23.35,23.81,24.32,24.55,22.61,23.36,24.47,23.96,24.09,24.2,24.29,23.06,22.39,23.49,23.8,24.23,23.44,23.49,22.99,22.35,22.35,22.53,22.54,23.11,24.23,24.82,20.05,21.11,22.52,20.75,21.99,23.4,21.47,21.1,21.08,21.84,24.01,24.0,23.79,23.76,22.8,23.72,25.32,22.51,21.02,21.29,22.11,22.59,22.61,23.11,22.93,23.99,21.67,21.04,22.65,23.23,21.12,21.3,21.01,21.62,22.35,24.0,23.8,23.89,23.66,23.38,22.94,23.09,23.03,24.15,25.82,22.22,23.34,23.18,23.95,24.3,22.21,20.99,20.86,20.89,20.58,20.71,20.88,21.02,21.54,22.88,22.89,23.96,24.13,23.81,23.73,23.0,22.52,22.82,24.04,23.73,23.75,24.73,23.24,21.85,22.01,21.1,20.99,21.97,22.09,22.13,22.0,21.87,22.16,23.5,23.72,23.86,26.15,27.1,24.39,23.08,22.62,24.38,25.11,20.91,21.9,22.7,23.4,20.22,21.92,21.24,21.59,22.01,22.21,22.08,21.13,21.92,21.78,23.71,24.08,20.58,22.25,23.29,22.45,22.5,22.27,22.12,22.37,21.87,22.62,22.62,23.33,24.65,21.63,20.71,19.94,20.36,21.75,22.05,21.85,21.89,22.24,23.57,21.65,22.5,20.69,22.64,22.88,22.75,22.33,23.55,24.75,22.18,22.9,19.89,18.96,19.05,21.36,22.88,23.56,24.0,24.32,24.59,23.92,23.19,24.0,23.51,23.15,23.53,23.48,23.23,22.84,22.45,22.14,21.95,22.97,23.21,23.71,24.23,24.76]},"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.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.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.433,0.251,0.251,0.251,0.251,0.251,0.251,0.251,0.251,0.251,0.251,0.251,0.251,0.251,0.368,0.484,0.601,0.718,0.834,0.834,0.834,0.834,0.834,0.834,0.834,0.834,0.923,0.828,0.668,0.271,0.271,0.271,0.271,0.271,0.271,0.271,0.388,0.388,0.504,0.621,0.621,0.738,0.855,0.9,0.937,0.945,0.949,0.949,0.95,0.949,0.95,0.729,0.497,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.906,0.938,0.947,0.947,0.947,0.946,0.946,0.946,0.946,0.765,0.56,0.331,0.216,0.204,0.204,0.204,0.204,0.203,0.203,0.32,0.437,0.554,0.67,0.787,0.904,0.938,0.947,0.946,0.946,0.844,0.925,0.942,0.942,0.724,0.498,0.272,0.272,0.272,0.272,0.272,0.272,0.272,0.272,0.389,0.389,0.506,0.622,0.739,0.856,0.856,0.856,0.855,0.855,0.928,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.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.204,0.204,0.204,0.204,0.204,0.204,0.204,0.204,0.32,0.437,0.554,0.671,0.787,0.787,0.787,0.904,0.938,0.947,0.947,0.946,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.321,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.438,0.555,0.672,0.789,0.789,0.789,0.788,0.788,0.788,0.788,0.905,0.938,0.721,0.566,0.346,0.346,0.346,0.346,0.346,0.346,0.346,0.346,0.463,0.579,0.696,0.813,0.919,0.941,0.941,0.941,0.941,0.941,0.941,0.941,0.948,0.948,0.727,0.502,0.235,0.235,0.206,0.206,0.206,0.206,0.323,0.439,0.439,0.556,0.673,0.79,0.906,0.939,0.947,0.524,0.64,0.757,0.874,0.931,0.944,0.944,0.726,0.494,0.234,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,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.203,0.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.319,0.436,0.553,0.669,0.786,0.786,0.786,0.786,0.786,0.786,0.786,0.884,0.934,0.718,0.49,0.311,0.311,0.311,0.311,0.311,0.428,0.544,0.661,0.778,0.895,0.936,0.945,0.945,0.949,0.533,0.649,0.766,0.883,0.883,0.883,0.882,0.449,0.376,0.299,0.213,0.213,0.213,0.213,0.213,0.213,0.33,0.447,0.563,0.68,0.797,0.913,0.941,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.94,0.818,0.647,0.56,0.56,0.56,0.56,0.45,0.45,0.45,0.45,0.45,0.45,0.567,0.683,0.8,0.915,0.915,0.915,0.915,0.915,0.915,0.915,0.94,0.94,0.722,0.492,0.31,0.214,0.214,0.214,0.214,0.331,0.448,0.565,0.681,0.798,0.915,0.94,0.94,0.861,0.929,0.944,0.944,0.944,0.943,0.943,0.948,0.948,0.728,0.535,0.292,0.273,0.252,0.23,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.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.94,0.722,0.492,0.356,0.356,0.356,0.356,0.356,0.355,0.355,0.355,0.472,0.589,0.706,0.822,0.921,0.942,0.942,0.942,0.948,0.948,0.948,0.948,0.948,0.949,0.729,0.504,0.263,0.263,0.262,0.262,0.262,0.208,0.208,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.946,0.946,0.946,0.727,0.495,0.408,0.226,0.205,0.204,0.204,0.204,0.204,0.204,0.321,0.438,0.555,0.671,0.788,0.905,0.905,0.905,0.704,0.82,0.921,0.942,0.942,0.942,0.723,0.493,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.949,0.729,0.496,0.235,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,0.2,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.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.886,1.561,1.277,0.913,0.323,0.212,0.488,0.46,0.201,0.202,0.231,0.243,0.245,2.33,0.564,1.008,1.188,1.013,1.528,1.827,2.989,1.635,1.344,1.37,0.795,0.66,0.629,0.684,0.483,0.374,0.313,0.284,0.282,0.247,0.262,0.3,0.905,0.869,0.5,0.455,1.923,1.017,0.143,0.738,0.363,0.491,0.676,0.656,0.581,0.637,0.939,0.532,0.268,0.202,0.232,1.025,0.85,0.7,0.729,0.752,0.361,0.365,0.437,0.441,0.449,0.404,0.336,0.916,0.107,0.173,0.312,0.673,0.728,0.518,0.521,0.553,0.632,1.041,0.23,0.683,0.685,0.202,0.729,0.739,1.793,0.62,0.592,0.884,1.536,1.007,0.964,1.036,0.334,0.298,0.334,1.02,0.737,0.781,0.715,0.584,0.374,1.104,0.776,0.683,0.685,0.7,0.729,0.298,0.566,0.606,0.516,0.582,0.598,1.149,0.966,0.734,0.141,0.158,0.178,0.676,0.65,0.552,0.488,0.412,0.811,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.857,0.653,0.745,0.511,0.549,0.757,0.8,1.184,0.185,0.685,0.7,0.729,0.738,0.971,0.4,0.494,0.514,1.131,0.738,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.746,0.36,0.205,0.725,0.733,0.748,0.773,0.844,0.815,2.349,1.332,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.768,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.941,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,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.683,0.685,0.7,0.682,0.511,0.589,2.082,0.686,1.01,0.714,0.885,0.828,0.929,0.186,0.175,1.392,1.077,1.085,0.806,0.751,0.616,0.947,1.233,0.483,0.683,0.685,0.704,0.738,0.591,0.656,4.527,3.724,2.305,2.265,1.003,0.91,1.282,0.407,0.355,0.314,1.231,0.901,0.954,1.058,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.056,1.939,1.124,1.192,1.286,1.051,0.856,1.04,0.466,0.394,0.582,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.763,1.264,0.542,0.385,0.638,0.576,0.683,0.691,0.718,0.751,2.706,0.708,0.975,2.696,0.677,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.221,0.866,0.683,0.363,0.242,0.231,0.294,5.058,1.98,2.061,1.067,0.533,0.915,2.424,4.514,0.39,0.288,0.094,0.357,0.305,0.443,0.45,0.233,0.804,1.142,0.785,0.683,0.685,0.7,0.347,0.252,0.309,0.462,0.899,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.632,0.66,0.269,0.185,0.685,0.7,0.729,0.757,0.373,0.466,0.572,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.199,1.156,0.683,0.685,0.312,0.231,0.063,2.659,1.047,1.299,0.681,0.976,1.447,1.125,1.875,1.157,0.148,0.189,1.091,0.839,0.627,0.703,0.966,1.008,0.287,0.186,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.414,0.202,0.216,0.241,0.269,0.389,2.363,1.528,0.606,2.297,0.715,0.411,1.8,1.831,0.935,2.676,1.115,2.235,0.844,1.124,0.708,0.401,0.851,0.713,0.186,0.686,0.714,0.746,0.778,1.534,0.752,0.762,0.72,0.811,0.904,1.367,1.394,1.63,0.767,0.62,0.105,0.58,0.718,0.739,0.65,0.492,0.441,0.33,0.743,0.747,0.745,0.755,0.701,0.459,0.475,0.589,0.725,0.664,0.687,0.862,0.821,0.959,0.181,0.174,0.188,1.025,0.991,0.888,0.851,4.83,0.691,0.413,0.849,0.724,0.73,0.739,0.765,0.965,0.878,1.837,0.926,0.907,1.525,0.928,1.053,1.164,0.479,0.52,1.164,2.582,1.047,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.392,1.79,1.222,1.457,0.772,0.855,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.756,1.166,1.053,1.231,1.079,1.197,1.483,2.031,1.006,0.58,0.515,1.228,1.561,0.953,0.875,0.552,0.461,0.59,0.574,0.185,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.077,1.855,1.711,1.995,1.236,0.915,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.52,23.91,25.38,25.92,24.25,23.88,25.16,25.85,25.89,26.32,26.7,24.4,25.46,25.72,25.56,25.93,25.13,25.14,24.82,25.88,25.94,26.23,26.46,26.47,26.36,25.67,25.85,25.83,26.06,26.25,26.36,26.65,26.72,26.97,27.18,27.38,27.37,27.18,26.5,26.35,25.22,25.34,26.7,26.57,26.55,26.52,26.47,25.94,24.45,24.4,25.24,25.69,25.79,23.73,24.11,25.33,25.49,25.85,26.14,26.31,26.62,26.82,27.05,27.2,27.26,26.82,26.95,26.45,26.44,26.6,26.53,26.55,26.41,25.6,24.53,23.62,24.66,25.35,25.54,25.57,25.45,26.05,25.33,25.79,26.12,24.26,24.19,24.5,24.77,24.74,24.92,25.29,25.52,25.4,25.36,25.45,25.53,25.62,25.69,24.17,25.08,25.81,26.07,26.16,26.13,26.45,26.47,26.39,26.33,26.37,26.38,25.46,25.32,26.06,26.44,26.46,26.48,26.69,26.49,26.5,26.51,26.54,24.11,24.31,25.85,26.34,26.55,26.55,26.42,25.66,26.15,25.53,23.67,25.53,25.86,25.87,25.92,25.75,26.02,26.14,26.27,26.39,26.27,26.31,26.27,25.68,24.06,22.87,22.27,24.29,25.53,25.67,25.52,25.6,25.37,25.56,25.63,25.7,25.57,25.67,25.9,25.82,26.04,26.12,26.2,26.24,26.24,26.18,26.07,25.97,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.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.83,24.74,25.7,26.0,26.26,26.46,26.57,26.72,24.96,23.28,24.47,23.87,24.38,24.96,25.05,25.02,25.26,25.35,25.4,25.43,25.39,25.47,25.55,25.18,24.45,23.24,24.05,25.3,25.83,26.16,26.34,26.49,26.42,26.16,25.08,25.48,25.46,25.5,25.51,25.36,25.48,25.56,25.5,25.68,25.6,25.57,25.42,23.88,24.49,25.67,25.72,25.78,25.88,25.96,26.0,26.18,26.18,25.91,25.87,25.9,25.86,25.88,25.96,24.06,24.05,25.78,25.79,26.01,25.85,25.67,25.52,24.79,24.96,24.22,23.81,25.25,25.84,26.0,25.94,26.11,26.11,24.48,25.23,25.43,25.49,25.54,25.71,25.6,25.72,25.75,24.47,25.32,25.22,25.4,25.44,25.5,25.34,23.58,23.92,25.4,25.9,26.07,25.99,26.06,26.03,25.47,23.88,23.68,25.04,25.6,25.48,25.29,25.37,25.38,25.36,25.35,25.32,25.14,24.3,24.66,24.97,24.45,24.83,25.86,26.1,26.23,26.15,26.18,26.06,25.92,25.77,25.78,25.69,25.59,25.54,23.96,23.62,24.95,25.24,25.07,25.14,25.28,25.38,25.49,25.53,24.21,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.03,27.27,26.45,26.43,24.31,24.02,25.63,26.25,26.51,26.6,24.22,24.42,24.14,23.6,25.29,25.42,24.28,24.94,23.88,24.09,24.85,24.82,24.9,25.04,25.09,25.13,25.19,24.55,22.86,23.62,24.76,25.18,25.47,25.63,25.72,25.55,25.62,25.75,25.73,25.79,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.7,24.35,25.14,25.43,25.58,25.61,25.76,25.78,25.82,24.27,23.96,25.33,25.71,25.82,25.69,25.66,25.73,25.7,25.5,25.67,25.65,25.63,25.01,23.45,22.49,23.74,25.01,25.38,25.47,25.37,25.7,25.8,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.43,23.44,25.05,25.62,25.76,25.69,25.8,24.01,23.67,23.03,24.48,24.5,23.6,24.42,23.27,23.16,24.98,25.16,25.19,25.23,25.26,25.31,24.11,22.99,24.59,25.64,25.82,25.96,26.04,25.97,26.03,25.5,25.21,24.64,24.47,23.4,23.9,25.18,25.04,25.1,25.1,25.12,25.15,25.2,25.23,25.23,25.3,23.61,22.89,24.78,25.51,25.85,26.03,26.05,25.99,23.32,23.78,25.2,23.49,24.49,24.69,23.37,23.31,24.95,23.53,24.7,23.96,24.89,23.71,24.02,24.78,22.64,22.68,24.5,25.18,25.52,25.77,25.89,24.5,24.5,24.84,25.4,25.69,24.61,23.98,24.77,23.21,23.18,22.41,24.14,24.9,25.01,25.05,25.13,24.76,24.65,24.9,25.27,25.35,25.46,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,25.12,24.92,24.81,24.63,24.49,24.32,24.58,25.05,25.48,25.63,25.68,25.82,25.73,25.19,25.42,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.28,24.66,24.65,24.79,24.89,24.04,23.71,25.21,25.47,25.65,25.63,25.66,25.54,25.2,24.99,24.9,24.81,24.73,24.7,24.42,24.36,24.25,24.26,24.1,24.8,24.93,24.86,25.06]},"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.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.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.2,0.2,0.269,0.338,0.406,0.406,0.405,0.404,0.299,0.298,0.298,0.297,0.297,0.296,0.296,0.295,0.295,0.294,0.294,0.293,0.293,0.361,0.43,0.498,0.567,0.635,0.634,0.633,0.632,0.631,0.63,0.698,0.766,0.833,0.793,0.726,0.599,0.598,0.597,0.596,0.595,0.594,0.593,0.592,0.66,0.728,0.796,0.795,0.863,0.9,0.921,0.932,0.938,0.942,0.941,0.943,0.942,0.941,0.812,0.653,0.422,0.307,0.252,0.226,0.226,0.225,0.225,0.294,0.362,0.431,0.499,0.567,0.635,0.413,0.481,0.549,0.549,0.617,0.685,0.753,0.821,0.878,0.76,0.615,0.402,0.298,0.248,0.223,0.223,0.223,0.222,0.222,0.291,0.359,0.428,0.496,0.564,0.632,0.7,0.768,0.836,0.886,0.829,0.882,0.911,0.927,0.805,0.647,0.419,0.418,0.417,0.417,0.416,0.415,0.415,0.414,0.482,0.482,0.55,0.618,0.686,0.754,0.753,0.752,0.75,0.818,0.877,0.908,0.925,0.935,0.807,0.649,0.42,0.391,0.358,0.317,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.225,0.225,0.212,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.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.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.942,0.94,0.812,0.653,0.421,0.421,0.307,0.252,0.251,0.251,0.32,0.388,0.388,0.456,0.524,0.592,0.661,0.729,0.796,0.586,0.654,0.722,0.79,0.858,0.898,0.919,0.794,0.64,0.415,0.387,0.354,0.314,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.225,0.225,0.224,0.224,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.202,0.201,0.27,0.339,0.407,0.475,0.544,0.543,0.542,0.541,0.54,0.539,0.608,0.665,0.733,0.64,0.526,0.357,0.357,0.356,0.356,0.355,0.424,0.492,0.56,0.628,0.696,0.764,0.832,0.885,0.913,0.798,0.865,0.902,0.922,0.92,0.919,0.917,0.792,0.689,0.572,0.467,0.467,0.466,0.465,0.465,0.464,0.532,0.531,0.599,0.667,0.735,0.803,0.869,0.904,0.923,0.933,0.939,0.938,0.936,0.935,0.933,0.939,0.862,0.73,0.48,0.479,0.478,0.478,0.334,0.334,0.333,0.332,0.332,0.4,0.469,0.537,0.605,0.673,0.672,0.671,0.67,0.669,0.737,0.805,0.869,0.904,0.782,0.631,0.41,0.302,0.301,0.301,0.3,0.369,0.437,0.506,0.574,0.642,0.71,0.778,0.846,0.596,0.664,0.732,0.8,0.867,0.902,0.922,0.933,0.939,0.811,0.652,0.421,0.392,0.359,0.318,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.2,0.2,0.2,0.2,0.2,0.269,0.338,0.406,0.406,0.405,0.299,0.298,0.298,0.297,0.248,0.247,0.247,0.246,0.246,0.246,0.245,0.245,0.245,0.244,0.313,0.381,0.45,0.518,0.586,0.585,0.584,0.583,0.583,0.582,0.65,0.718,0.823,0.715,0.582,0.386,0.385,0.384,0.384,0.383,0.383,0.382,0.381,0.45,0.518,0.586,0.654,0.722,0.79,0.858,0.898,0.921,0.931,0.938,0.941,0.94,0.943,0.814,0.654,0.422,0.422,0.421,0.42,0.42,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.914,0.913,0.928,0.801,0.645,0.567,0.378,0.286,0.285,0.242,0.242,0.241,0.241,0.31,0.378,0.447,0.515,0.583,0.651,0.65,0.649,0.42,0.488,0.556,0.625,0.693,0.76,0.663,0.543,0.366,0.365,0.28,0.28,0.238,0.238,0.238,0.237,0.306,0.374,0.443,0.511,0.579,0.648,0.716,0.783,0.851,0.894,0.918,0.93,0.937,0.941,0.813,0.653,0.422,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.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],"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.639,1.386,0.909,1.64,1.235,1.774,2.584,2.719,2.948,0.661,0.553,0.577,1.238,0.461,0.608,0.55,0.63,0.857,0.872,0.804,0.82,0.798,0.894,1.726,2.027,3.013,1.98,2.148,2.045,1.584,1.662,0.831,0.427,0.59,0.559,0.535,0.519,0.525,0.572,0.535,0.774,1.588,1.156,1.691,0.415,0.565,7.769,1.113,1.721,2.111,1.389,2.802,1.975,1.707,1.665,0.647,0.427,0.455,0.484,0.718,0.714,0.712,0.802,2.49,0.742,2.124,0.749,1.171,0.453,1.31,0.444,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.47,0.769,0.595,0.469,0.243,0.131,-0.014,-0.076,0.873,0.495,0.575,0.556,0.734,1.41,2.342,4.078,2.045,0.698,0.923,0.754,0.898,0.834,0.79,0.739,0.733,0.795,7.505,1.186,1.358,1.147,1.183,0.597,0.711,0.731,0.909,0.716,0.929,0.438,1.118,0.985,3.249,1.222,0.704,0.723,0.65,1.159,1.139,1.086,0.834,0.819,1.718,1.302,0.895,0.639,0.462,0.185,1.453,0.978,0.784,0.399,1.035,1.475,2.925,2.017,1.625,1.689,0.791,0.745,0.649,0.828,0.54,0.752,0.721,0.79,1.599,0.745,0.446,0.313,0.429,0.383,0.351,0.808,1.025,0.769,0.966,1.659,1.786,2.245,2.354,1.562,1.44,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.373,2.387,1.536,1.515,2.054,3.155,2.171,1.55,1.562,1.319,0.695,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.013,1.197,4.011,2.369,2.117,2.588,1.144,1.807,0.694,0.84,0.97,0.92,1.085,0.66,0.677,0.769,5.116,0.708,0.838,1.482,0.775,0.652,1.009,0.886,0.51,0.829,1.07,0.817,1.931,2.143,2.228,8.731,0.985,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,1.871,4.67,4.377,5.579,8.887,1.241,0.665,0.419,0.658,0.793,0.792,0.848,2.033,0.574,0.528,0.44,0.794,0.37,0.662,0.62,0.904,0.642,1.107,0.877,1.722,2.311,1.491,2.312,2.481,1.056,0.498,0.622,0.821,0.793,0.767,0.832,0.855,1.027,0.659,0.477,0.3,0.327,0.332,0.423,0.493,0.669,0.925,0.524,1.641,2.783,3.14,1.366,1.391,1.556,0.905,0.62,0.827,0.804,0.781,0.839,1.01,2.775,0.694,1.208,0.926,0.86,0.793,0.701,0.954,0.866,1.035,1.119,2.354,1.92,1.927,1.135,1.093,3.22,0.569,0.516,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.34,1.634,2.178,1.487,1.79,2.197,2.334,1.645,1.062,0.703,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.218,1.939,1.791,0.427,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.623,1.216,1.106,1.429,1.137,0.947,0.976,0.816,0.804,0.793,0.784,0.783,0.79,2.331,0.376,1.309,0.84,0.655,0.492,1.007,0.706,0.407,0.486,0.377,0.341,1.134,0.835,1.502,1.358,0.834,1.046,1.27,1.018,0.762,0.754,0.736,1.925,0.857,0.629,0.82,0.797,0.578,0.617,0.514,0.572,0.597,0.249,0.372,1.105,1.287,1.366,2.159,3.301,2.145,0.69,0.422,0.513,0.75,2.056,0.766,0.85,1.108,2.932,0.886,0.497,0.475,1.366,0.94,0.955,1.075,0.791,0.844,0.597,0.98,1.225,1.56,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.61,0.658,0.936,1.067,1.252,1.036,1.854,3.098,1.839,1.736,1.012,0.587,0.73,0.677,0.633,0.6,0.586,0.637,0.65,2.323,0.863,0.977,0.917,1.189,2.025,1.51,1.843,2.221,2.553,1.695,2.621,1.464,1.228,1.129,1.298,0.73,0.733,0.736,0.705,0.676,0.671,0.709,0.656,1.052,1.197,1.262,1.012,0.946,0.762,1.043,1.104,1.528,3.601,2.093,2.716,1.92,1.613,1.903,1.258,0.708,0.649,0.737,0.941,0.774,0.838,0.882,1.198,0.922,1.024,0.869,0.572,1.043,1.098,0.961,1.182,0.616,0.588,0.741,1.716,2.013,1.657,1.181,1.005,0.461,0.636,0.857,0.839,0.827,0.83,0.913,0.885,0.836,1.115,1.94,0.542,0.569,1.534,1.411,1.201,0.673,0.682,1.316,1.666,1.399,1.85,1.22,2.224,1.148,1.905,0.806,0.748,0.797,0.804,3.596,1.011,1.05,2.047,1.627,0.501,0.377,0.737,0.531,0.809,0.686,0.89,1.527,1.578,9.519,2.098,1.661,1.103,0.765,0.638,0.986,0.925,0.882,0.859,0.91,1.395,1.676,5.555,6.917,2.473,0.943,1.481,2.295,1.649,1.448,1.493,1.254,1.823,2.421,1.798,9.749,2.158,0.655,0.833,0.995,0.943,0.909,0.898,0.937,0.979,1.247,1.017,1.073,1.02,3.605,1.247,1.054,1.524,1.51,1.173,1.155,9.646,1.832,1.308,1.111,1.44,1.368,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.034,1.951,2.403,2.489,2.711,2.706,1.965,1.756,1.524,3.419],"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.51,22.24,23.41,23.97,24.61,24.41,24.48,23.86,22.84,23.8,24.23,24.27,24.93,25.22,24.86,25.24,25.68,25.43,25.03,24.73,24.45,24.25,24.01,23.64,22.8,22.05,22.95,23.67,22.55,22.53,22.53,24.29,25.15,24.97,25.19,25.29,25.34,25.39,25.48,25.66,25.37,24.96,25.01,24.16,24.12,23.99,23.24,22.91,22.6,23.08,23.39,22.77,22.79,22.78,22.77,23.4,24.39,24.61,24.71,24.87,24.99,25.12,25.25,24.7,25.07,24.62,24.93,25.02,24.86,24.66,24.5,24.39,24.4,24.36,24.22,24.38,24.43,23.82,23.22,23.22,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.82,24.51,24.3,24.06,23.53,23.93,22.71,23.66,24.34,24.68,24.47,24.7,24.68,24.73,24.87,25.08,25.15,25.03,25.16,24.26,23.81,23.53,23.08,22.81,22.52,22.24,22.45,22.21,23.48,24.29,24.49,23.25,24.15,24.5,24.54,24.76,24.54,24.42,24.4,24.68,24.95,25.29,25.34,25.4,25.3,25.01,24.74,24.35,24.11,23.86,23.56,23.46,23.17,23.44,23.66,24.13,24.3,24.65,24.7,24.77,24.86,24.9,24.98,25.17,25.28,25.17,25.4,25.32,25.13,24.97,24.64,24.33,23.63,23.27,23.1,22.7,21.72,22.29,22.73,23.05,23.68,24.34,24.06,24.17,24.25,24.33,24.34,24.37,24.46,24.67,24.84,24.88,24.86,24.69,24.45,24.27,23.47,23.37,23.38,23.42,23.24,22.85,23.45,23.79,24.1,24.21,24.35,24.35,24.46,24.53,24.56,24.65,24.72,24.95,25.15,25.23,25.13,24.9,24.55,24.13,23.76,23.54,23.45,21.67,21.84,21.85,21.79,22.49,22.94,23.57,23.13,22.56,22.35,22.34,23.63,24.36,24.69,23.18,23.87,24.34,23.95,23.78,23.51,22.85,22.53,22.4,22.92,22.63,23.39,23.28,22.57,22.6,22.15,23.35,24.45,24.33,24.19,23.96,23.99,24.06,24.19,24.68,25.07,24.54,24.21,23.8,23.53,23.38,23.07,22.75,22.52,22.51,22.76,23.67,23.26,22.71,21.46,21.62,23.44,24.12,24.44,24.73,24.66,24.83,25.02,24.85,24.99,24.44,23.99,23.68,23.46,23.21,22.95,22.69,23.0,22.91,23.12,23.2,23.34,23.69,23.2,23.11,24.38,24.81,24.6,24.64,24.72,24.9,25.06,25.44,25.69,25.61,25.25,24.83,24.49,24.15,23.82,23.61,23.22,22.69,23.42,23.98,23.31,23.27,23.68,23.73,24.74,24.57,24.73,24.78,24.84,24.97,24.98,25.12,24.41,24.58,24.49,24.36,24.11,23.71,23.46,23.19,22.6,22.56,22.9,22.59,22.92,23.26,23.72,24.01,23.25,24.2,24.57,24.46,24.58,24.65,24.73,24.93,25.06,25.01,24.3,23.85,23.5,23.16,22.83,22.84,22.49,22.42,22.9,23.31,23.65,24.0,24.18,24.42,24.59,24.45,24.53,24.57,24.58,24.61,25.04,25.3,25.17,24.52,24.23,23.78,23.63,23.56,23.62,24.02,24.43,25.2,25.96,26.85,27.44,23.07,23.2,23.12,24.75,24.5,24.63,24.7,24.73,24.79,24.86,25.04,25.07,24.56,24.03,23.59,23.38,23.13,22.89,22.68,22.49,22.37,23.15,23.29,23.61,23.7,23.76,23.83,24.52,24.47,24.48,24.53,24.62,24.76,24.91,24.41,24.25,24.15,24.56,24.57,24.36,24.02,23.79,23.61,23.48,23.01,23.52,23.78,24.06,24.07,23.97,24.1,24.19,24.38,24.42,24.52,24.68,24.9,24.58,24.82,24.91,24.34,24.15,24.03,23.77,23.52,23.41,23.33,23.18,23.37,23.14,23.52,23.49,23.46,22.28,23.39,24.2,24.65,24.6,24.68,24.05,24.48,24.74,25.1,24.39,24.06,23.76,23.57,23.35,23.13,22.88,22.66,22.52,22.47,23.46,24.02,24.36,24.56,24.36,24.52,24.04,24.55,24.66,24.72,24.81,24.94,25.05,24.82,25.05,24.09,24.17,24.01,23.71,23.47,23.3,23.47,23.28,22.49,22.68,22.65,22.44,22.81,23.13,24.06,24.68,24.29,24.45,24.49,24.5,24.56,24.64,24.83,24.16,24.32,24.18,23.95,23.64,22.89,22.26,21.9,21.66,21.49,22.15,22.33,22.84,23.35,23.91,23.05,23.61,23.49,23.42,23.42,23.44,23.46,23.52,23.99,24.42,24.39,23.85,23.29,23.02,22.87,22.73,22.56,22.26,21.61,21.54,21.5,21.98,22.74,23.08,23.51,23.84,23.93,23.61,23.65,24.24,24.33,24.49,24.66,24.6,24.03,23.84,23.58,23.29,22.98,22.71,22.53,22.42,22.97,23.29,23.08,23.02,23.32,23.69,23.85,24.76,24.5,24.51,24.55,24.61,24.71,24.85,25.1,25.17,24.89,24.68,23.92,23.28,23.07,22.93,22.81,22.72,22.22,23.0,23.42,23.57,23.24,23.9,22.42,23.32,23.6,23.93,24.15,24.26,24.41,23.47,24.16,24.46,23.89,23.93,23.69,23.5,23.23,23.05,22.79,22.54,22.29,22.52,22.85,22.48,23.01,23.36,23.83,24.3,24.61,24.26,24.27,24.33,24.46,24.63,24.67,24.65,24.01,23.31,23.06,23.52,22.73,22.39,21.78,21.41,21.67,22.13,22.64,22.96,23.47,23.09,23.67,24.6,23.83,24.04,24.1,24.19,24.3,24.46,24.69,24.76,24.71,24.45,24.1,22.65,23.1,22.47,22.34,22.11,21.88,22.2,21.98,22.66,23.28,23.74,24.26,24.53,24.1,24.23,24.25,24.27,24.3,24.4,24.57,24.56,24.42,23.48,23.43,23.14,22.42,21.9,21.51,21.35,21.2,21.45,21.97,22.53,23.05,23.53,22.8]}},"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.664,1.9293,2.0721,2.1845,2.3126,2.5067,2.6605,2.8033,2.957,3.0326,3.0835,3.1237,3.1847,3.2535,3.3284,3.4025,3.4443,3.5365,3.5781,3.6542,3.7546,3.9999,4.1876,4.3496,4.5503,4.7632,4.9267,5.1189,5.2575,5.4283,5.5793,5.7228,5.8115,5.8793,5.9353,5.9979,6.0491,6.0994,6.153,6.2055,6.3055,6.4295,6.4774,6.5395,6.6072,6.6529,6.8818,6.9354,7.0773,7.2452,7.3674,7.5035,7.6028,7.6891,7.8148,7.8685,7.9138,7.9528,7.9923,8.0538,8.1237,8.1758,8.2599,8.3712,8.4274,8.5128,8.5525,8.6035,8.632,8.6821,8.7073,8.7444,8.7582,8.785,8.8484,8.9471,9.0367,9.1307,9.2132,9.2988,9.3744,9.4482,9.503,9.5828,9.6593,9.728,9.8023,9.891,10.0168,10.0598,10.0809,10.1066,10.1514,10.2062,10.2604,10.3264,10.4081,10.5059,10.7306,10.8815,11.0695,11.1836,11.2515,11.3271,11.3905,11.4853,11.5653,11.6572,11.7449,11.8277,11.9281,12.2712,12.3578,12.4484,12.6666,12.7361,12.7709,12.8251,12.8746,12.9391,12.9894,13.0532,13.177,13.2546,13.3811,13.7522,13.8651,13.9411,14.0102,14.0825,14.2004,14.3001,14.3911,14.4735,14.5549,14.7199,14.8054,14.9242,14.9834,15.0183,15.1456,15.2618,15.3562,15.4507,15.4847,15.5557,15.7248,15.8809,15.9913,16.1199,16.2059,16.2598,16.3195,16.3756,16.4606,16.4927,16.5588,16.6244,16.7753,16.8704,16.9263,16.9972,17.0207,17.0482,17.0923,17.1241,17.1734,17.2385,17.299,17.3751,17.4987,17.6245,17.7612,17.8881,17.9806,18.0634,18.1239,18.1818,18.2285,18.2681,18.3057,18.3423,18.3793,18.4463,18.4949,18.5965,18.6392,18.6806,18.7558,18.8403,19.1068,19.2859,19.4379,19.5674,19.7222,19.8973,20.038,20.14,20.2397,20.3463,20.4216,20.4741,20.5356,20.5981,20.6415,20.6839,20.7701,20.8196,20.8662,20.9037,20.941,20.9833,21.019,21.0908,21.3947,21.4864,21.6001,21.9099,22.092,22.2922,22.457,22.5708,22.6566,22.7444,22.8155,22.8909,22.9688,23.0675,23.1484,23.2282,23.3121,23.5253,23.6242,23.7706,23.8781,23.9391,23.9864,24.0423,24.1193,24.3285,24.5123,24.7243,24.9132,25.0627,25.1888,25.3019,25.5917,25.6572,25.7551,25.8176,25.8846,25.9732,26.0594,26.1455,26.2351,26.3254,26.3784,26.4188,26.4979,26.5494,26.6181,26.667,26.7697,26.8737,27.0932,27.5796,27.8516,28.0344,28.2704,28.4822,28.7074,29.0168,29.1172,29.1623,29.2144,29.2961,29.3731,29.457,29.542,29.6636,29.7156,29.7613,29.7914,29.8296,29.865,29.904,29.9616,30.0582,30.2299,30.4146,30.5442,30.6898,30.867,31.0142,31.1423,31.293,31.373,31.4402,31.5489,31.6379,31.7193,31.7989,31.8794,31.9688,32.1166,32.2066,32.2405,32.2787,32.3091,32.3936,32.4755,32.517,32.5698,32.642,32.7659,32.9091,33.0728,33.2371,33.3389,33.4305,33.5411,33.6523,33.7271,33.8198,33.9058,34.0254,34.1068,34.1796,34.3026,34.4628,34.6066,34.7008,34.7919,34.867,34.9236,35.0538,35.1845,35.3088,35.5297,35.6994,35.8317,35.9557,36.1163,36.1926,36.3199,36.385,36.4574,36.5195,36.5699,36.6178,36.6689,36.7268,36.847,36.902,36.9693,37.0343,37.0944,37.3117,37.4063,37.5221,37.6255,37.8191,37.974,38.1084,38.2438,38.3932,38.5037,38.5641,38.615,38.6698,38.7222,38.7614,38.7978,38.8401,38.8401,38.8401,38.8401,38.8401,38.8401,38.8401,38.8401,38.8401,38.8401,38.8401,38.8401,38.8401,38.8401,38.8401,38.8401,38.971,39.106,39.2166,39.2739,39.3618,39.4418,39.5391,39.6302,39.718,39.8938,40.0586,40.1247,40.1741,40.2778,40.3647,40.4196,40.5175,40.7091,40.8218,40.9468,41.0675,41.1632,41.2718,41.4311,41.5215,41.6818,41.7689,41.8522,41.9539,42.0539,42.1361,42.2285,42.2803,42.3299,42.428,42.5897,42.7205,42.8397,42.8903,42.9202,42.9962,43.0948,43.2431,43.2987,43.3451,43.3861,43.4652,43.56,43.6575,43.742,43.7993,43.891,43.9991,44.1318,44.2145,44.2949,44.3998,44.5277,44.5845,44.6774,44.7613,44.8107,44.8519,44.9445,45.0188,45.0457,45.0777,45.1046,45.1766,45.2736,45.3509,45.4414,45.5546,45.7049,45.8154,45.9334,45.9974,46.0523,46.1238,46.2399,46.331,46.4129,46.5021,46.6143,46.6599,46.6911,46.7225,46.8167,46.8816,46.9481,47.0402,47.1309,47.3009,47.4307,47.6411,47.7542,47.8493,47.969,48.0811,48.1772,48.284,48.3973,48.4908,48.5722,48.6299,48.7392,48.9696,49.1169,49.2699,49.3534,49.4046,49.5252,49.6063,49.6648,49.7695,50.0269,50.2434,50.3988,50.547,50.7125,50.8453,50.9512,51.0326,51.0994,51.1634,51.2111,51.2483,51.2972,51.3384,51.3809,51.4398,51.564,51.7139,52.0644,52.3195,52.4054,52.5498,52.6589,52.867,53.2044,53.388,53.5416,53.7341,53.8759,53.9933,54.0924,54.2033,54.2886,54.3529,54.42,54.4662,54.5021,54.5541,54.6131,54.6743,54.8055,54.889,54.943,55.0592,55.1072,55.316,55.4958,55.5807,55.6949,55.9637,56.1576,56.3565,56.4829,56.6052,56.72,56.844,56.9054,56.9775,57.0429,57.121,57.1924,57.2844,57.4629,57.6152,57.7138,57.7752,57.8215,57.8808,57.9376,58.0094,58.0873,58.231,58.3122,58.4157,58.4653,58.545,58.7288,58.8378,58.9564,59.0538,59.0975,59.1723,59.2753,59.3735,59.4782,59.6017,59.7087,59.8005,59.8823,59.9433,60.021,60.0595,60.0961,60.166,60.2363,60.3071,60.3606,60.4484,60.6056,60.7208,60.8377,60.9818,61.0653,61.301,61.398,61.5002,61.6003,61.6924,61.7716,61.8513,62.0134,62.1099,62.2028,62.3288,62.4032,62.4443,62.4997,62.5483,62.5944,62.6832,62.8328,63.0671,63.3069,63.4541,63.848,64.012,64.2355,64.324,64.4203,64.484,64.5836,64.6749,64.7585,64.8405,64.9564,65.1429,65.2646,65.4809,65.6871,65.7996,65.9339,66.0547,66.1668,66.3462,66.5237,66.764,66.9816,67.1561,67.3725,67.507,68.0597,68.1825,68.2554,68.3333,68.4737,68.6287,68.7286,68.8111,68.8953,69.0492,69.1401,69.2224,69.31,69.3957,69.5724,69.6874,69.774,69.8976,70.0696,70.2891,70.4966,70.8764,71.0583,71.1714,71.3051,71.4498,71.5598,71.6169,71.6651,71.7008,71.7379,71.7752,71.8146,71.8638,71.9577,72.0471,72.2209,72.3612,72.442,72.5646,72.7096,72.8866,73.0798,73.2856,73.4942,73.6843,73.8345,73.9693,74.0991,74.2349],"decisions":[{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline: no overcooling or warm room, batteries empty with idle prices, tanks at 0; no changes needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline everywhere: no overcooling or warm trim, batteries idle at SoC floor, tanks at 0; accepting strategy as given.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling baseline (no trim, rooms near setpoint); battery idle-ish gentle charge from cheap hour; dhw 0; Building_2 cooling held at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling baseline (no trim, rooms near setpoint), small battery charge in cheap hour, tank idle; Building_1 cooling range permits baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling baseline in B1 and null elsewhere, battery gently charged in cheap hour before top price; no tank action; no trim to end.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: baseline cooling, no trim held, batteries idle at low price, tanks at 0; peak limiter on so no extra charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline; battery idle as price is low and no top-price hours now; cooling stays baseline since rooms are near setpoint.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null (baseline) for all; small battery charge in cheap hour; tank idle. Building_2 battery kept per strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline; battery idle as price is not top-priced and peak headroom is zero, so I follow it.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 battery charge at 0.15, B2 same; cooling baseline except B1 cooling strategy 0.194 slightly under baseline; B3 trim ended per envelope; dhw 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B2 battery charge toward top-price hours and B3 cooling is null with trim ended; no overrides needed, all within ranges.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: Building 1 battery charge 0.15 in cheap clean hour, cooling baseline since no overcooling; Building 2 and 3 similar, dhw and cooling kept at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: no cooling trim (rooms near setpoint), small battery charge in cheap hour before top price; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following the strategy: no cooling trims, battery charges gently ahead of top-price hours; dhw idle, matching the envelope's ranges.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: no overcooling or warm trim, so cooling stays at baseline; B1 and B3 battery per strategy, B2 small charge; tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Accepted strategy: top-price discharge in all buildings; Building_3 overcooled 0.87 C so a trim starts at 0.658; others keep baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Top price now, so batteries discharge per strategy; B3 trim held in cold room, cooling at strategy value; B1 and B2 follow baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_3 trim held and cooling null in B2 at setpoint; B1 and B3 cooling per strategy; batteries discharge at top price, within ranges.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 and Building_3 hold cooling trims at range minimums; Building_2 unoccupied, baseline cooling; batteries discharge at top price; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy; Building_1 and Building_2 cooling at baseline-plus-strategy within range, Building_3 eases trim per strategy; battery discharges at top-price hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Send strategy as given: Building_1 cools warm room to 0.68; batteries have no usable charge, tanks idle, and no trims are held.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 cooling slightly below baseline is allowed but B1 is cold with trim off so keep baseline-near; B2 warm at setpoint+2.18 gets strategy cooling; batteries idle since usable near zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline everywhere: no overcooling or warm trim needed, flat price, batteries idle, tanks at 0; following strategy as given.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline everywhere: no overcooling or warm trim needed, flat price so batteries idle, tanks at 0; no change proposed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, so batteries idle; following strategy cooling for B1 and B3, B2 unoccupied with null cooling, no end_trim needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: hold cooling trims in cold rooms, batteries idle on flat 24h price, tanks at zero; Building_2 warm so cooling as strategy suggests.","status":"ok"},{"clamps":[{"applied":0.0,"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.099","requested":0.0,"rule":"trim_hold"}],"fallback":null,"reason":"Follow strategy: flat price, batteries idle, Building_1 held trim at baseline-range cooling 0; Building_2 and _3 at baseline since no trim or overcool.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline; Building_1 trim is ended, so cooling stays baseline and no action is needed; batteries idle on flat prices.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline everywhere: Building_1 and 3 cooling within range but no overcooling or warm trim; flat prices, batteries idle; accepting strategy as given.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline; flat price and no overcooling or warm trim, so null cooling and idle battery and tank are followed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices: flat price day, no overcooling or warm trim needed, batteries idle and tanks at 0; baseline cooling kept everywhere.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price and no overcooling; cooling and battery follow strategy (idle), with Building_1 and Building_3 held at baseline; no reason to deviate.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 stores spare solar slightly; Building_2 unoccupied, no cooling change; Building_3 near baseline. Flat price, no trim held.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 battery stores solar slightly, B2 and B3 keep baseline cooling since no trim; B3 warm but trim ended, no extra cooling taken.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline; flat price and no overcooling or warm trim, so baseline cooling and idle battery and tank are kept.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline: no overcooling or warm trim needed, flat prices so batteries idle, and tanks at 0; no changes made.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline: cooling null, batteries idle on flat price, tanks at 0; no trims held and rooms near setpoint.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries idle; Building_1 cooling trimmed slightly below baseline per strategy; Building_2 and 3 follow strategy, cooling null where in range, no tank action.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy followed: B1 cooling held in trim at strategy 0.623 inside range; B2 and B3 baseline cooling; batteries idle on flat price, tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: Building_1 holds trim at baseline-minus-depth; B2 and B3 at baseline; batteries idle on flat price, hot water tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline-ish cooling: B1 trim held at 0.551 (within range 0.5-0.59); B2 and B3 at baseline; batteries idle on flat price, no top-price hours.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy followed: cooling held at strategy values in cold rooms (B1, B3 trim hold), B2 unoccupied baseline, batteries idle on flat price, dhw zero.","status":"ok"},{"clamps":[{"applied":0.4904,"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.099","requested":0.5894,"rule":"trim_hold"},{"applied":0.3865,"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.098","requested":0.4846,"rule":"trim_hold"}],"fallback":null,"reason":"Following strategy: trims held in B1 and B3 with cooling inside range; B2 at setpoint with null cooling; batteries idle on flat price; tanks at 0.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 holds trim at cooling 0.2907 (room 0.9 C below setpoint); B2 and B3 at baseline cooling; batteries and tanks idle on flat price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: Building_1 cooling 0.3324 (trim held, room 0.35C below setpoint); Building_2 and 3 near baseline; batteries idle on flat price, dhw zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: flat price, so batteries idle; Building_3 trim held at baseline-plus-0.3466 cooling; Building_1 ends its trim and returns to baseline-free cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, so batteries idle; Building_2 warm-room trim and Building_3 held trim follow strategy, Building_1 baseline cooling.","status":"ok"},{"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.099 by at most 0.02 per hour","requested":0.0,"rule":"trim_hold"}],"fallback":null,"reason":"Follow strategy: flat price, battery idle; Building_1 cooling 0.53 is below cooling_range, so clamp to 0.4331; Building_2 and 3 hold baseline/trim as given.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Building_1 holds a trim at 0.2496 per strategy; Buildings 2 and 3 follow baseline cooling; batteries idle on flat price day, as strategy gives.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline-like cooling and idle batteries on a flat price day; Building_1 trim eases within range, Buildings 2 and 3 have no trim, so following strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline for B1 and B3 cooling where ranges allow; B2 warm room gets strategy cooling 0.044 within range; batteries idle on flat price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: flat price so batteries idle, cooling null or as given; Building_1 cooling 0.154 within range; Building_2 and 3 hold baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline-like actions: flat price so no battery arbitrage, B1 cooling held in trim, B2 and B3 at baseline; following strategy as given.","status":"ok"},{"clamps":[{"applied":0.1635,"point":"Building_1.cooling","reason":"indoor 19.7 C is within 0.5 C of the setpoint 20.0 C, trim eases off from 0.029 by at most 0.02 per hour","requested":0.1721,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price day so batteries idle; Building_1 eases trim per strategy, B2 and B3 follow strategy with cooling null or baseline; tank idle.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Follow strategy: flat price so batteries idle, Building_1 eases trim within range, B2 and B3 use strategy cooling where allowed; B3 null as baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy cooling is null for B1 and B2/B3 mildly warm; battery charge follows strategy within envelope; ranges respected, no overrides needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 cooling baseline with battery charge, B2 unoccupied idle cooling; no trims held, all within ranges; charge is cheap and clean.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 cooling near baseline, B2 unoccupied so null; batteries charge gently before top-price hours; tanks idle; no trims held.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 eases trim with cooling 0.0571; Building_2 unoccupied, baseline; Building_3 at setpoint, baseline; store solar in batteries per strategy.","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.079","requested":0.0,"rule":"trim_hold"}],"fallback":null,"reason":"Accepted strategy actions within envelope ranges; B1 holds its cold-room trim, B1 stores solar, B2 cools warm room, B3 at baseline.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 and Building_2 battery/cooling as given; Building_1 trim is ended and cooling held per envelope; no deviations needed.","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":"Follow strategy: B1 battery 0.08 stores spare solar, B2 and B3 discharge to shave peak; B2 cooling held at baseline since cooling_range is tight, B3 cooling null.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Follow strategy: no cooling trims since rooms are near setpoint; B1 small battery charge from spare solar, B3 battery idle; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: all cooling at baseline (no trim, rooms near setpoint), batteries and tanks idle; price is low and peak headroom is ample.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following the strategy: batteries held since price is low and not top-price hours yet; cooling as given, with B2 slightly above baseline and B3 starting a small trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling per strategy for B1/B2 and B3 trim held; batteries idle, price flat-ish and not top hours yet; no tank action.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: idle batteries and tank, cooling per strategy; B1 and B3 cooling null keep baseline; B2 cooling null; no trim ends needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 holds trim at range minimum, Building_2 and 3 baseline-like; batteries idle as price is low and not top-price hours yet.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed the strategy: batteries and tanks held, Building_1 trim eases, Building_2 cools warm room, Building_3 trim held.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed the strategy: warm room 1 and 2 get extra cooling, room 3 holds its trim, batteries and tank idle with prices low and no top-price hours now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: idle batteries and tank, null cooling in B1/B2; B3 holds trim at baseline-minus 0.005 as strategy gives, no end needed.","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.028","requested":0.0,"rule":"trim_hold"}],"fallback":null,"reason":"Follow strategy: idle batteries and tank, hold Building_3 cooling trim at strategy value; Building_2 cooling null as trim ended, battery idle pre-peak.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling is null in B1 and B2 at baseline, B3 holds trim at 0.0117; batteries idle, no top-price discharge yet and price is low, tanks at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling near baseline, batteries idle since price is low and not top-price; Building_2 and 3 cooling null as rooms at/above setpoint.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling baseline or small adjustments within ranges, battery charges in cheap hour before top-price hours; B2 warm room gets extra cooling, B3 null.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 ease trim cooling 0.0044 and charge battery; B2 and B3 cooling null, charge 0.15 ahead of top-price hours; tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 cooling 0.0096 in ease trim, B2 cooling baseline with battery charge 0.15, B3 cooling baseline; charge batteries cheaply before top price, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 holds trim at 0.0022 cooling; Building_2 charges battery 0.15; Building_3 charges 0.15 with baseline cooling; tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building 1 and 2 cooling null (room not overcooled), Building 3 keeps baseline cooling; batteries charge gently ahead of top-price hours, dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline; buildings are near setpoint with no trim, and price is flat-ish with no discharge window yet.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline; battery idle since price is not top and peak below target, tank idle, cooling baseline kept as null.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: batteries and tank idle, cooling null at baseline; price is low now and top-price hours are ahead, so no discharge yet.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: cooling baseline/null, batteries idle, tank 0; Building_1 cooling near baseline with no trim; no clamp issues noted.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline everywhere: no overcooling or warm trim, and price is not at top; no grid charging needed, batteries idle as strategy says.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: building 1 and 2 cooling null at baseline; building 3 charges battery 0.15 before top price; no trims active, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B2 baseline cooling, B3 battery charge 0.15 ahead of top-price hours; no trims active, no clamps needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 and 3 use baseline cooling, Building_2 gets slight extra cooling; batteries charge ahead of top-price hours; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: top-price hour now, discharge batteries evenly; Building_2 cooling is in range but trim ended, so keep baseline-consistent strategy values as given.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Accepted strategy actions: discharge over top-price hours, warm-room cooling trim in Building_2, baseline cooling elsewhere, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following the strategy: baseline cooling, battery discharged evenly over the three top-price hours, tanks idle; no trim is active.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling baseline/null, batteries idle this hour, tanks idle; Building_2 trim already ended at setpoint so cooling stays null.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: batteries idle, cooling per strategy for B1 and B2 with B3 at baseline; no price spike now, top-price hours ahead at 20-22.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 cooling 0.1298 easing trim, B2 and B3 cooling null, batteries idle, no price-top hour now; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Accepting strategy: hold batteries for the top-price hours ahead, keep the cooling trim in Building 1 and the small cooling uplift in Building 2, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: holding batteries and tank, cooling per envelope; no clamps, cheap hours ahead of top-price evening.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baselines with mild extra cooling in warm Building_1 and idle battery; Building_2 and 3 follow strategy, Building_3 cooling null as trim is off.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: cheap-hour battery charging before the top-price window; B1 trims cooling while overcooled, B2 cools a warm room a bit more, B3 stays at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null (baseline) in all buildings, batteries charge toward top-price hours, dhw idle; Building_1 trim ended, no end_trim needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: Building 1 and 3 cooling per envelope, battery charging in cheap hour before top price at 13-15h; Building 2 cooling null, no trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: no cooling trim in any building, battery charging gently in cheap clean hour before top price; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null (baseline) in all, battery charge gently in cheap clean hour before top price; Building_2 trim already ended, no action needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: Building_1 cooling 0.055 and battery charge 0.15 ahead of top-price hours; Buildings 2 and 3 keep baseline cooling, charging batteries at 0.15 in cheap hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null (baseline) in all buildings, battery charged gently in cheap hour before top price; Building_1 battery 0.07 per strategy, tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: B1 and B3 cooling/battery as given; B2 cooling null since room is 1.05C above setpoint with no trim; peak limiter on, so no extra charging beyond strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 cooling trim held at 0.084 within range; Building_2 and 3 overcooling not present, battery charge near top-price start; tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building 1 holds trim at 0.068 cooling; Building 2 and 3 keep baseline cooling; batteries gently charge ahead of top-price hours, within envelope.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 eases trim within range; B2 and B3 unoccupied, baseline cooling; batteries charge gently ahead of top price, tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 eases its trim toward baseline, Building_2 and _3 use baseline cooling, batteries idle or store spare solar; no clamps needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: cooling baseline (null) in all buildings, battery stores spare solar, tank idle; no clamps or trims needed this hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null (baseline), no trim, battery and tank idle; all rooms within comfort, no price arbitrage this hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy keeps cooling at baseline and battery charges slightly ahead of the top price; no clamps or trims needed, following strategy as given.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: discharge batteries toward top-price hours, cooling as given; no trims held or ended, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: held trim in cold Building_1, discharge at top-price hour, tanks idle; no clamps expected.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Sent strategy actions as given: cooling trim held in Building_1, batteries discharge into top-price hours within range, and the district is at its peak target.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy within envelope ranges; shaving district peak and holding Building_1 cooling trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow the strategy: hold cooling trims in the overcooled rooms and idle battery and tank; Building_2 unoccupied so baseline. Peak limiter on, no changes.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 eases trim within range, Building_2 cooling baseline, Building_3 holds trim with small battery discharge to shave the peak; no price-driven moves now.","status":"ok"},{"clamps":[{"applied":0.1343,"point":"Building_1.cooling","reason":"indoor 24.2 C is within 0.5 C of the setpoint 24.3 C, trim eases off from 0.079 by at most 0.02 per hour","requested":0.1933,"rule":"trim_hold"},{"applied":0.0917,"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.099","requested":0.1908,"rule":"trim_hold"}],"fallback":null,"reason":"Following strategy: Building_1 and Building_3 cooling as given, Building_2 cooling null; batteries idle as flat-ish price; B3 trim held, B1 easing.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 hold eased trims at strategy cooling; B2 null cooling at baseline; batteries idle as price is not top-hour and no peak shave needed.","status":"ok"},{"clamps":[{"applied":0.1151,"point":"Building_1.cooling","reason":"indoor 24.3 C is within 0.5 C of the setpoint 24.3 C, trim eases off from 0.039 by at most 0.02 per hour","requested":0.1341,"rule":"trim_hold"}],"fallback":null,"reason":"Follow strategy: cooling per envelope, batteries idle this hour (price low, not top-price), tanks at 0; Building_2 and 3 cooling null as strategy gives.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 eases trim within range, Building_2 cooling up to strategy, Building_3 null; batteries charge gently in cheap hours before top price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: battery charges gently in cheap clean hour before top price; cooling null at baseline for all buildings as rooms are near setpoint with no trim held.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: Building_1 cooling 0.208 is clamped to range max 0.3332 but strategy gives in-range value; Building_2 and 3 keep baseline cooling; batteries charge to prepare for top-price hours.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: cooling null in B1 (baseline plus small range), B2 and B3 at baseline; battery charging 0.15 in cheap hour ahead of top price; tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 battery charges 0.15 (replaces its -0.5 discharge idea? no, strategy stands), cooling null; B2 and B3 cooling null, battery charge 0.15 in cheap clean hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null (baseline) in all buildings, battery charge in cheap hour before top price; Building_1 battery 0.15 and dhw 0 kept as given.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: B1 battery to -0.5 and B3 to -0.434 shave the peak; B2 cooling null, trim ended; tanks idle. Battery B2 at -0.074 would be clamped to range, so kept baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: cooling null where in band, battery charging toward 0.95 before top-price hours, tank idle; Building_1 cooling at strategy 0.151 is inside range.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 ease trim with cooling near baseline, B2 and B3 cooling null, batteries charge gently ahead of top price; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 cooling null-to-baseline range kept, battery discharge limited; B2 and B3 hold baseline cooling, no trim; tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 battery charges to 0.95 before top price; B2 unoccupied with cooling null; B3 battery charge per strategy; no trims held; tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building 1 and 3 battery moves as given, Building 2 unoccupied so cooling baseline; tank idle; no trims held, no end_trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 cooling at range/strategy values, B2 unoccupied, batteries charge modestly ahead of top-price hours 3-5; B1 cooling 0.183 within range.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 holds a trim at its setpoint, B2 and B3 unoccupied at baseline; B3 charges battery 0.15 in a cheap clean hour before top price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: no cooling trim in B1/B3 and B2 unoccupied; B3 charges battery from spare solar; B1 and B2 battery idle ahead of top-price hours.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: top-price hour now, discharge batteries within ranges; B2 unoccupied so cooling baseline; B1 and B3 keep baseline cooling since trims are off.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: discharge batteries in this top-price hour, hold Building_3 cooling trim, keep Building_2 cooling at baseline while unoccupied.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Accept strategy: Building_1 and Building_2 discharge into top-price hours, Building_3 holds its cold-room cooling trim; all values sit inside the envelope ranges.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy; Building_3 trim held at min depth; Building_2 cooling null as room is above setpoint; Building_1 battery kept at strategy discharge for peak shaving.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B2 cooling null at baseline, B3 holds ease trim at 0.1489; batteries discharge modestly; tanks idle, no grid-charge needed now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B2 cooling baseline, B3 battery discharge to shave peak; B2/B3 trims ended since rooms at or above setpoint; no dhw.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Sending strategy as given: batteries held with little usable charge, tank idle, Building_3 trims cooling for an overcooled room, others at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling per ranges, batteries idle at 0 since top price is 17-19h ahead with low SOC; Building_3 trim eases with cooling 0.0964 held.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: batteries idle at low price with little usable charge; Building_2 warm so cooling raised to strategy 0.276 within range; Building_1 and 3 cooling per strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline: no overcooling or warm trim, batteries idle as usable charge is tiny and price is flat-low now; follow strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling baseline (no trim), battery charge 0.15 in cheap hour before top price; Building_1 and 3 cooling null, dhw 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: cooling null in B2/B3 (baseline), B1 cooling 0.191 within range, batteries charge gently in cheap hour before top price; tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 holds a cooling trim at 0.132, Building_2 and 3 keep baseline cooling, batteries charge 0.15 ahead of top-price hours 12-14, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 eases trim with cooling 0.1138 and battery charge 0.15; Building_2 and 3 use baseline cooling; batteries charge in cheap hour before top price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 ease trim with cooling near baseline; B2 and B3 keep baseline cooling; battery charges gently ahead of top-price hours, dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null (baseline) in all buildings, battery charge from spare solar and cheap hour, dhw idle; no trim active.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: no cooling trims (rooms near setpoint), battery charges gently ahead of top price, tank idle; B1 battery strategy 0.041 vs 0.15 is a minor adjustment.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: no cooling trims or clamps needed (rooms within band), small battery charge before top price; keep tank idle; B2 unoccupied so baseline cooling kept.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: B1 and B3 cooling null at baseline, B2 unoccupied; batteries per strategy with charging ahead of top price, tank idle, no trim ends.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 cooling null, B2 unoccupied; B1 battery idle, B3 small charge in cheap hour; no trim held, so baseline cooling kept.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null in B2/B3 (no trim, at or near setpoint), B1 cooling baseline-range; battery discharge only to shave peak per strategy; dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: B1 battery charge 0.15 ahead of top-price hours, B2 and B3 idle cooling; B3 end_trim not needed; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 eases trim within range, B2 unoccupied idle cooling, B3 baseline cooling; batteries charge gently before top-price hours; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 holds a cooling trim at 0.4342 and gentle battery charge; Buildings 2 and 3 keep baseline cooling; batteries charge ahead of top-price hours, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building 1 trim held so cooling stays in range; B2 and B3 unoccupied, baseline cooling; batteries discharge at top price; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 holds trim at cooling 0.0341 and discharges; B2 unoccupied, null cooling; B3 cooling 0.545 and battery -0.302 within range; tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Accept strategy: cooling held for Building_3 trim, battery discharges into top-price hours; no clamps expected, end_trim not allowed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following the strategy: batteries held at 0 with low prices now, B3 cooling trim held inside its range, B1 cooling at 0.12, B2 at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: hold batteries and tanks at zero, ease Building_1 and hold Building_3 cooling trims within range; Building_2 unoccupied, so baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_3 holds trim at cooling 0.1996; Building_1 eases to 0.1481; Building_2 at baseline; batteries idle as price is not top, peak headroom ample.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B2 idle at baseline; B3 eases its held trim at 0.1796 within range, no end; battery idle as no top-price hour now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: hold batteries and tank idle, cooling per strategy; Building_2 warm so cooling raised within range; Building_1 and 3 trims eased per envelope.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 cooling null (at setpoint), B2 cooling 0.252 within range to ease overcooled room; batteries idle, price low and not top-price yet.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: batteries idle, cooling null for B1 and B3 (in band), B2 cooling 0.272 as strategy gives; dhw 0; no trim end.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null (baseline), battery charges gently in cheap hour before top price; Building_1 battery 0.15 within range; no trims held.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: no cooling trims needed, charge batteries in cheap clean hour before top price; Building_1 and Building_3 cooling null, Building_2 idle cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 and Building_2 battery charge 0.15 in cheap hour before top price; Building_3 cooling baseline; no trim, all null otherwise.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: no cooling trims needed, B1/B2 charge battery in cheap hour, B3 cooling null; hold dhw at 0; no end_trim as trims are off.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: no cooling trims, battery charges gently in cheap hour before top price; all devices at strategy values, no deviation needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling baseline/null, battery charge 0.15 in cheap hour before top price; tank idle. No trim held, so no end_trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline; battery idle as price is low and peak headroom is ample, and no trims are active.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline everywhere: no overcooling or warm trim, price now mid-low, top-price hours ahead; batteries idle, tanks at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling baseline for B1 (overcooled? no, 0.44 above setpoint), storing solar in batteries; B2/B3 unoccupied, idle cooling; dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null (baseline) for all; Building_1 and Building_3 battery per strategy; Building_2 idle; dhw 0 everywhere; no trim end.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling baseline (no trim held), charge batteries gently before top-price hours, tank idle; Building_2 unoccupied so cooling baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null (baseline) in all buildings, small battery charging toward 0.95 before top price; dhw idle; no trim change.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling baseline (no trim needed), battery gentle charge before top price; Building_1 and 3 small charge per strategy, dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null (baseline), small battery charge in cheap hour before top price; tank idle; no trims active.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 battery discharge to top-price hours, cooling baseline; B2 unoccupied so cooling baseline; dhw 0 everywhere.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: discharge batteries into the top-price hour, hold the Building_3 cooling trim within range, and keep the tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: Building_3 trim held, cooling 0.729 within range; B1 battery discharge at top price now; B2 unoccupied, cooling null; dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following the strategy: cooling and battery discharge as given, tanks idle; Building_3 trim held, Building_2 unoccupied so cooling baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following the strategy as given: cooling holds trims in B1 and B3, B2 stays at baseline, batteries discharge into top-price hours, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy for all buildings: trims held or eased within cooling ranges, batteries discharge into the top-price hour, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 ease trim with cooling 0.1221; B2 cooling null, battery discharge; B3 hold trim at 0.1561 and battery -0.115; no tank action, no grid charging.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: flat price so batteries idle, cooling per strategy; B1 and B3 trims ease, B2 cooling null at setpoint, no end_trim needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline for all: flat price, no top-price discharge; Building_1 and Building_3 cooling null trims stay as envelope allows, Building_2 trim ended at setpoint.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day and no overcooling or warm-room trim needed; following strategy with null cooling, idle battery and tank, no end_trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline: rooms within band, flat price so batteries idle, tanks empty; no clamps needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline: rooms at setpoint, flat prices, battery idle; cooling stays baseline since no trim or overcooling applies.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline: rooms within band, flat prices, no trim. Batteries idle on flat_24h day; nothing to change.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline: rooms at or near setpoint, flat prices, batteries idle; no clamps or overrides needed this hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline: no trims needed, flat price day so batteries idle, tanks at zero; ranges and comfort checked.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline: rooms are at or above setpoint, prices flat so batteries idle; baseline cooling kept.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline everywhere: no overcooling or warm trim, flat prices, batteries idle; Building_1 and Building_3 cooling stays at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline: cooling null, flat prices, no trims, battery idle; accepting strategy as given.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline: rooms within band, flat price so batteries idle, tanks at 0; no deviation needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline everywhere: no overcooling or warm trim needed, flat prices, batteries idle; following strategy as given.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline: cooling null in all buildings, flat prices so battery idle; no clamps or overrides needed this hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline cooling and idle storage; flat price day so batteries idle, tanks at 0, no trim held, keeping baseline action.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 and 2 at baseline cooling, Building_3 small discharge; no trims held, battery held near floor, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 and 3 cooling near baseline; B2 warm so no trim, cooling null; batteries idle-ish per strategy; flat price, no end trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 and Building_3 cooling within range; Building_2 at setpoint with no trim, cooling null; battery idle-ish on flat price, tank 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 hold cooling trims in cold rooms; B2 at baseline; batteries idle on flat prices, tanks at 0, no end_trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 and Building_3 hold trims in cold rooms; Building_2 is warm at setpoint+1.1 so baseline cooling; battery idle on flat price day.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: holding trims in B1 and B3 (cold rooms), B2 at baseline with no trim; battery idle since prices are flat and no top-price hours.","status":"ok"},{"clamps":[{"applied":0.219,"point":"Building_1.cooling","reason":"indoor 23.8 C is more than 0.5 C below the setpoint 24.9 C, trim held at 0.096","requested":0.3151,"rule":"trim_hold"},{"applied":0.2513,"point":"Building_3.cooling","reason":"indoor 22.8 C is more than 0.5 C below the setpoint 24.4 C, trim held at 0.057","requested":0.308,"rule":"trim_hold"}],"fallback":null,"reason":"Follow strategy: B1 and B3 hold trims in cold rooms with cooling in range; B2 at setpoint uses baseline; battery idle on flat price, no top-price hours.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Following strategy: B1 and B3 hold cooling trims in cold rooms, B2 at baseline; batteries and tanks idle on flat price, peak below target.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: cooling per envelope ranges, batteries idle on flat price, tanks at 0; Building_1 cooling 0.1428 at range top, Building_3 held trim at 0.1338.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline-like cooling with flat prices and idle batteries; Building_1 and Building_3 trims are easing, Building_2 has no trim, so following strategy as given.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: flat price, batteries idle, no tank action; Building_1 cooling at baseline end trim, Building_3 trim eases per strategy, Building_2 baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline-like cooling and idle batteries on a flat price day; Building_3 trim eases within range, so I follow strategy values with no overrides.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline everywhere: cooling null, batteries idle on flat price, tanks at 0; Building_1 trim is in end state so no end_trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline cooling and idle batteries; Building_1 is cold but trim is off, so cooling stays at baseline for comfort and to match the reference.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds batteries and tanks at baseline; cooling nulls for Buildings 2 and 3 and range-bound value for B1 as given, flat price so no arbitrage.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline cooling and idles batteries on a flat price day; Building_1 cooling kept at strategy 0.0898 within trim ease, others follow strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline everywhere: flat price, batteries idle, tank 0; Building_1 cooling at strategy 0.1027 within range, Building_2 and 3 nulls as given.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline in all buildings; flat price so batteries idle; Building_1 trim easing with cooling at strategy value 0.124 within range.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline cooling in B1 and B3 and idles batteries; B2 cooling null as room is warm, keeping strategy; no conflicts with envelope ranges.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 holds a cooling trim at 0.155 within range; B2 and B3 at baseline with no trim; batteries idle, flat-ish prices and no peak pressure.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 holds trim at 0.025, B2/B3 at baseline cooling; battery stores spare solar, tank idle, no end_trim since B1 trim is still needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 battery stores spare solar, Building_2 and Building_3 hold baseline cooling; no clamps needed, all within ranges.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: no trims held, cooling at baseline or small overcool/warm adjustments; battery per strategy since price is flat and solar is spare.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline cooling in all buildings (no trim held, rooms within band); batteries idle since price is flat and SOC is low; tank at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 cooling at 0.409 is below range so clamp to 0.3097; B2 and B3 baseline; batteries near idle, B1 small discharge within range.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 eases trim within range, Building_2 cooling baseline, Building_3 cooling 0.552; batteries idle, tanks zero, no end_trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 holds a trim at its range minimum, Building_2 and Building_3 keep baseline cooling; batteries idle as strategy gives near zero and price is flat-low.","status":"ok"},{"clamps":[{"applied":0.2669,"point":"Building_1.cooling","reason":"indoor 23.9 C is more than 0.5 C below the setpoint 26.3 C, trim held at 0.150","requested":0.4169,"rule":"trim_hold"}],"fallback":null,"reason":"Follow strategy: B1 holds trim at 0.2669 cooling; B2/B3 baseline cooling; batteries near idle with tiny discharge; peak limiter on, no tank action.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 trim ended at setpoint, B2 and B3 keep baseline; B3 strategy cooling 0.701 is inside range but B3 is cold, so trim is off and null is kept per envelope.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 and Building_3 cooling per strategy, Building_2 baseline; batteries idle since usable charge is near floor and grid charging is limited; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling trims held in B1 and B3 (overcooled), B2 at baseline; battery idle as usable charge is near zero and no grid charging is needed now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling held in cold rooms via trims, batteries idle with SOC near floor, DHW idle; no change needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 hold cooling trims in cold rooms, B2 at baseline; batteries idle as price is not top-hour and no peak shaving needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline for B1 and B2 (no trim, battery idle at low price); B3 holds a cooling trim at strategy value 0.093, which is inside range.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null in B2 and B3 (no trim held, end state), B1 cooling 0.125 inside range; batteries idle, price flat-ish and not top-price hour yet.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null (baseline) in all buildings, batteries idle with near-empty usable charge, tanks idle; no clamps apparent.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline; batteries near floor with ~0 usable charge and no overcooling or warm trim, so following strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling as given (B1 0.183, B3 null), battery charge 0.15 in cheap hour before top price; B2 cooling null; no trim held, no end_trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 holds a cooling trim (0.1347 within range); Building_2 and 3 use baseline cooling; batteries charge gently ahead of top-price hours; tanks idle.","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":"Follow strategy: Building_1 cooling and battery charge, Building_2 and 3 as given; Building_3 cooling held at 0 inside its trim; no overrides needed this 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.0,"rule":"trim_hold"}],"fallback":null,"reason":"Follow strategy: B1 cooling 0.1243 eases trim, B2 cooling null, B3 cooling 0 holds trim; batteries charge gently ahead of top-price hours 10-12.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 ease trim cooling 0.1404, B2 and B3 cooling null, battery charge 0.15 in cheap hour before top price; dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed the strategy: holding batteries idle, cooling per strategy within ranges, Building_1 trim held, Building_2 warm room cooled more, tanks at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building 1 and 3 trim holds with cooling in range; Building 2 is above setpoint so baseline cooling; batteries charge gently before top price, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 holds trim with cooling in range; B2 and B3 at baseline cooling; battery charges gently before top-price hours, tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 holds trim at range minimum, B2 and B3 keep baseline cooling; batteries charge gently before top-price hours, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 holds trim at 0.1621 cooling, battery 0.011; Building_2 and 3 keep baseline cooling; battery charge gently before top price hours; dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 cooling at range top 0.2544 with trim held; B2 and B3 unoccupied so cooling null; battery charge gently ahead of top-price hours 3-5 within limits.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 holds a trim at 0.3478 cooling, batteries idle, tank 0; Buildings 2 and 3 stay at baseline since unoccupied.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null (baseline) except none overcooled; battery discharge to shave peak per envelope; dhw idle; no trim end since not ok.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed the strategy for all buildings: trimmed cooling in cold occupied rooms and discharged batteries evenly over the three top-price hours.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 and 3 hold trims at cooling_range, Building_2 unoccupied so baseline; discharge batteries at top price, no tank or end_trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy followed: B1 and B3 hold cooling trims in cold occupied rooms; B2 unoccupied, null cooling; batteries discharge into top-price hours within ranges; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: holding cooling trims in B1 and B3, B2 unoccupied at baseline, batteries idle as price is not top and peak headroom is ample.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling in B1 and B3 held in trim range, B2 baseline; batteries idle as price is not top and peak is under target.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling trims held in B1 and B3 at range floor, B2 at baseline; batteries and tanks idle as price is not top and no peak shaving needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling in B1 and B3 within ranges, B2 baseline; battery idle-ish discharge within range; tank 0; end no trims.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null in B1 and B2, hold trim in B3 at 0.099; batteries idle, price low and no top-price hours now.","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.0,"rule":"trim_hold"}],"fallback":null,"reason":"Follow strategy: Building_3 holds trim at minimum depth; Buildings 1 and 2 keep baseline cooling, batteries held as price is not at top.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Follow strategy: batteries idle, cooling per strategy; Building_3 trim held, ending as at setpoint; Building_2 warm room gets extra cooling within range.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null (baseline) for all, batteries idle, tanks idle; trims are ended or not held, no overcooling; district load well below peak target.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling per envelope ranges, batteries charge gently before top-price hours 13-15; Building_2 and 3 cooling null as strategy gives; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 eases trim within range, B2 and B3 keep baseline cooling; batteries charge gently before top-price hours, dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 eases its trim at 0.1267 cooling, Building_2 and 3 keep baseline cooling, batteries charge gently before top-price hours; tanks idle.","status":"ok"},{"clamps":[{"applied":0.1332,"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.026 by at most 0.02 per hour","requested":0.1392,"rule":"trim_hold"}],"fallback":null,"reason":"Follow strategy: cooling ranges held per envelope, batteries charge gently ahead of top-price hours at 0.15, tanks idle; B2 and B3 at or above setpoint use baseline cooling.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 cooling at 0.1404 in easing trim, batteries charge 0.15 before top-price hours; Building_2 and _3 cooling null, dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds cooling at baseline and batteries idle; price is low now, top-price hours are ahead, so I follow the strategy as given.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 overcooled so trim cools at 0 and it stores spare solar; B2 and B3 keep baseline cooling, idle battery.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 ease trim cooling 0.0803 in range; B2 and B3 overcooling absent, null cooling; B3 charges battery 0.15 ahead of top price; tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 cooling 0.173 easing trim in range, B2 and B3 unoccupied so null cooling, batteries idle, tank 0; no clamps needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 holds a cooling trim at the strategy value, batteries idle until top-price hours, tanks at 0; Building_2 and 3 keep baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 holds trim cooling 0.2850 within range; B2 unoccupied, baseline; B3 baseline; batteries idle, price not at top; no tank use.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 holds trim at cooling range; B2 unoccupied, B3 charges battery in cheap clean hour before top price; dhw zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 holds a cooling trim at 1.2 C below setpoint; Building_2 and 3 unoccupied, idle cooling; batteries charge ahead of top-price hours 1-3 per strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy discharges batteries at top price and holds Building_1 trim; Building_2 and 3 unoccupied, cooling null; follow strategy as given.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 trim held at 1.7C below setpoint, Building_2 unoccupied so baseline cooling, Building_3 strategy cooling 0.536 is below range so it is clamped to baseline; discharge at top price.","status":"ok"},{"clamps":[{"applied":0.5704,"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.099","requested":0.6692,"rule":"trim_hold"}],"fallback":null,"reason":"Following strategy: top-price hour and peak limiter on, so discharge batteries and hold trims; Building_2 cooling null as it is at setpoint.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Follow strategy: hold Building_1 trim near 0.4259, Building_3 cooling 0.342 in range, batteries idle since no top-price or peak shave now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: holding cooling trims in Buildings 1 and 3 and idle batteries; Building 2 at baseline since room is at setpoint, no end needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: Building_1 and 3 hold cooling trims inside range, Building_2 at baseline; batteries idle as price is not top and peak headroom is limited.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 hold cooling trims at range; B2 baseline; batteries idle as price is not top and peak headroom is small.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy; B1 cooling eased in trim ease state, B2 at setpoint no trim, B3 held trim at its min depth; battery discharge limited by peak headroom.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B2 cooling null/baseline-range, B3 holds trim at 0.03 cooling, batteries idle as price is not top and peak under target.","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.0,"rule":"trim_hold"}],"fallback":null,"reason":"Follow strategy: Building_3 trim held at 0.099 cooling floor; batteries idle as price is low and not top-price yet; Building_1 and Building_2 cooling per strategy.","status":"clamped"},{"clamps":[{"applied":0.0,"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.099 by at most 0.02 per hour","requested":0.0,"rule":"trim_hold"}],"fallback":null,"reason":"Following strategy: idle batteries and tank, cooling null for B1 and B2; B3 trim is easing so cooling held at strategy 0.0 within range limits, ending not needed yet.","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.079 by at most 0.02 per hour","requested":0.0,"rule":"trim_hold"}],"fallback":null,"reason":"Follow strategy: B1 cooling 0.085 and battery charge 0.15, B2 cooling null, B3 cooling 0.0 (trim easing), tanks idle; battery charge fits cheap pre-peak hours.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Following strategy: B1 cooling 0.0724 in ease trim, B2 and B3 cooling null, batteries charge 0.15 ahead of top price; hot water idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy keeps cooling baseline (no trim, rooms at or near setpoint) and charges batteries in cheap hour; accepting strategy as given.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: buildings 1-3 keep null or given cooling; battery charges gently before top-price hours, within ranges; no tank action; no trim to end.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: no cooling trims active (all rooms within band, trims off or ended), battery charges gently in cheap hour before top price; dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline; battery idle as price is near low and top-price hours are ahead, so keeping SOC for later discharge.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline: no overcooling or warm trim, flat-ish prices, peak far below target; battery idle until top-price hours.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 slight battery charge from spare solar, B2/B3 unoccupied so cooling null; no trims active, all within ranges.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 battery stores spare solar, B2 and B3 unoccupied with cooling null, dhw idle; no clamps conflict with actions.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: cooling baseline (no trim), battery stores spare solar in B1 and holds in B2/B3, tanks idle; B1 battery small charge.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B2 cooling null, B3 battery charge 0.15 ahead of top price; B1 battery idle as cooling range allows; no trims held, no clamps.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 cooling null with baseline; B2 unoccupied, idle cooling; batteries charge modestly ahead of top-price hours; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 cooling 0.416 vs baseline 0.432 (overcooled trim), Building_2 and 3 idle battery charge per strategy; dhw 0; no end_trim, tank held at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 cool at strategy values inside range, B2 unoccupied uses baseline, batteries discharge at top price; B1 trim held, no end.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: top-price hour now, discharge batteries; cooling per strategy, trims held; Building_2 unoccupied so cooling null; dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Sent strategy actions as given: cold occupied rooms hold cooling trims, batteries discharge into top-price hours, all within envelope ranges.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Sent strategy as given: trims held in cold rooms within cooling ranges, batteries idle until top-price hours 21-23 approach.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: B1 and B3 hold cooling trims in cold rooms, B2 stays at baseline, batteries and tanks idle while price is low.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: Building_1 and Building_3 hold cooling trims in cold rooms, Building_2 cooling baseline; batteries and tanks idle as price is near low and no top-price hour now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 holds trim at cooling 0.1778, Building_2 baseline, Building_3 eases trim at 0.3162; batteries idle, tanks zero, no end_trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: holding cooling trims in B1 and B3, B2 at baseline, batteries idle since price is low and not top-price hours; no clamps.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following the strategy: hold batteries and tank, ease the Building_1 and Building_3 cooling trims within their ranges, leave Building_2 at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline everywhere; Building_3 trim eases with cooling 0.0275 within range, others null, no battery or tank action.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B2 battery charge 0.15 before top-price hours; B3 idle battery; cooling null everywhere since rooms are within band and no trim held.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building 1 and 2 cooling and battery charging in cheap hour; Building 3 cooling null as trim ended; no tank action; end_trim null.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 holds a cooling trim within range, Building_2 and Building_3 keep baseline cooling; battery charges gently before top-price hours, tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 eases trim near setpoint, Building_2 and _3 baseline cooling; batteries charge gently in cheap hour before top price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 eases trim within range, Building_2 and 3 use baseline cooling; batteries charge gently before top-price hours; dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: no cooling trims, battery charging gently in cheap hour before top price; B2 cooling null as room warm but within band.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null (baseline) in all buildings, small battery charge in B1/B3, tank idle; no trims active so ranges respected.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 cooling 0.167 within range, Building_2 and 3 cooling null, batteries per strategy, dhw idle; no trims held.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 trim held at 1.6C below setpoint, cooling 0.001; B2 and B3 unoccupied, baseline cooling; batteries charge gently ahead of top price; dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null where no trim, battery small charge to near 0.95 before top price; Building_1 and 2 idle battery, Building_3 stores spare solar as given.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following the strategy: cooling at baseline, tanks idle, Building_3 gently charges its battery ahead of the top-price hours; other batteries hold.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 cooling 0.114 (room warm, mild cooling), Building_2 and 3 unoccupied so baseline cooling, small battery charge in cheap hour before top price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: Building_1 holds cooling trim in range; B2 and B3 unoccupied, baseline cooling; batteries charge gently before top-price hours; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 cooling at range top while easing trim; batteries held near 0.95 SOC for top-price hours 1-3; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: top-price hour now so batteries discharge; B1 and B2 cooling at baseline, B3 trim held at strategy cooling 0.521 within range; dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: discharge batteries at top price, keep cooling at baseline except Building_3 held trim; Building_1 and 2 cooling null; dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed the strategy for all buildings: held cooling trim in Building_3, discharged batteries over top-price hours, and kept the tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1/B2 idle at baseline; B3 holds trim at min depth since room is 1.0C below setpoint; batteries idle as price is not top and peak limiter is near target.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B2 cooling at baseline, B3 holds trim at 0.3677 within range; battery discharge toward top-price hours, peak limiter on, dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 cooling inside ranges, B2 cooling null; battery idle-ish to shave peak; B3 trim held with end_trim_ok but room still cold, so no end.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: hold cooling trims in the two cold rooms, batteries idle this hour since price is not at top and no peak shaving needed; Building_2 at setpoint uses baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling in B1 and B3 held inside range with trims; B2 baseline; batteries idle as price is low and not top-price; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling held in Building_1 and 3 trims, Building_2 baseline; battery charging gently before top price hours 16-18 per plan.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: battery charges 0.15 in cheap hour before top price; cooling null except Building_1/2 already baseline-clamped; no trims held, keep baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: no cooling trim needed, rooms near setpoint; battery charges in cheap hour ahead of top-price window at 14-16h, tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: Building_1 and Building_3 cooling by strategy, Building_2 no cooling; batteries charge gently before top-price hours, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 holds trim at cooling 0.1539, battery charge 0.15; Building_2 and 3 keep baseline cooling; no end_trim as trim is held.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 eases trim within range, B2/B3 baseline cooling, batteries charge toward top-price hours; no clamps needed, all within ranges.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 and Building_3 battery charge, Building_2 cooling null; Building_1 cooling 0.096 within range; no trim held, no clamps needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 eases trim within range, B2 and B3 cooling at baseline, batteries charge gently before top-price hours; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: B1 eases trim near setpoint, B2 and B3 run at baseline; battery charges gently ahead of the top-price hours, and the peak limiter is on.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: no cooling trims, idle tank, battery discharge per envelope; peak limiter active so battery follows strategy values within range.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: B1 starts a cooling trim in its cold room, B2 and B3 charge cheap-hour batteries, tanks idle; no clamps expected.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null (baseline) in all buildings, small battery charging before top-price hours; dhw idle; Building_1 battery 0.04 per strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null in B1 and B3 (in band, no trim), B2 unoccupied idle cooling; batteries charge gently before top-price hours, tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: no cooling trims (rooms within band), battery charges gently in cheap clean hour ahead of top price; no tank action; ending nothing.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 cooling and battery as given, B2/B3 cooling null (unoccupied), battery small charge before top-price hours; no clamps needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null (baseline), batteries near strategy; Building_1 trim ended state, end_trim not allowed; hold battery charge for top-price hours ahead.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 cooling at baseline with no trim; B2 unoccupied, so cooling stays baseline. Batteries discharge at top price now, dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy for all buildings: trims and top-price battery discharge now, within the envelope ranges; tank idle, Building_2 cooling null while unoccupied.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 hold cooling trims in cold rooms; B2 unoccupied, baseline cooling; batteries discharge at top price; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 hold cooling trims within range; B2 unoccupied at baseline; batteries discharge toward top-price hours; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 hold cooling trims at range values; B2 unoccupied so cooling baseline; battery discharges at top price; dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: held cooling trims in cold rooms B1 and B3, baseline in B2, and small battery discharge into top-price hours; no clamps needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 cooling in trim range, B2 null baseline; batteries discharge per strategy; B1 trim easing so no end, B3 hold continues.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 and Building_3 hold cooling trims within range, Building_2 at baseline; batteries idle on flat price, tanks at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds cooling and batteries at baseline-compatible values; flat price day so batteries idle; Building_2 cooling null as strategy says, trims held where cold.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: flat price, idle batteries and tank; Building_3 trim held with cooling 0.053 inside range; others at baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: cooling null for B1 and B2 at baseline, B3 eases trim at 0.0348 within range; batteries idle on flat prices, tanks zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day, batteries idle; Building_1 and 2 follow strategy; Building_3 trim ends at setpoint per state end, cooling baseline held.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat prices and no top-price hours, so batteries and tanks stay idle; Building_1 is overcooled and takes the strategy's reduced cooling, others keep baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline except B1 cooling 0.1264 (ease trim, within range); B2 and B3 at setpoint so baseline; batteries idle on flat price, DHW idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline-ish cooling and idle batteries on a flat price day; following strategy values as given, no clamps needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy applied: flat price so batteries idle; Building_1 eases cooling within range, Building_2 and Building_3 keep baseline cooling since rooms are at or above setpoint.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline: rooms within band, flat price, no trim; following strategy as given with no clamps needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline for all: B1 cooling 0.109 is below its range 0.058-0.208 but baseline kept; B2 and B3 cooling null; batteries idle on flat prices.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: flat price so batteries idle, Building_1 holds a cooling trim at baseline range; Building_2 and 3 use baseline cooling since warm rooms are within band.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline; flat price day, no overcooling, batteries idle, peak headroom ample, so I follow the strategy as given.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: flat price so batteries idle, no trims held; Building_2 and 3 cooling null at baseline, Building_1 slightly below-setpoint room uses strategy cooling 0.214 within range.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 eases trim near setpoint, B2 and B3 no trim; battery idle on flat price, tank idle; B3 battery small discharge kept as strategy shaves peak.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: flat price so batteries idle, no trims held except B1 and B3 cooling near baseline; B2 at setpoint, end trim not needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: flat price day so batteries idle; cooling per strategy, Building_1 and 3 trims off, Building_2 cooling nudged to 0.896 within range; no tank action.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: flat price, idle batteries and tank; B1 and B3 hold trims at strategy cooling; B2 baseline since room near setpoint.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: Building_1 and 3 hold trims with cooling inside range; Building_2 uses baseline-range cooling 0.513; battery idle on flat prices, tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: cooling in trim hold/ease states, batteries and tanks idle on flat price; Building_3 cooling set to strategy value 0.469 within range.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day so batteries idle; cooling follows strategy within ranges, trims held for cold rooms, no tank action.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: flat price so batteries idle, cooling held at trim range for overcooled rooms in B1 and B3, B2 at baseline-ish null, tank 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds cooling trims in Buildings 1 and 3 and idles batteries and tanks on flat prices; following it as given.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: flat price so batteries idle, tank 0, cooling per strategy; Building_2 cooling null as room is at setpoint; Building_3 eases trim within range.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline in all buildings: B1 and B3 ease trims within cooling_range, B2 uses baseline; batteries idle on flat prices, tanks at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat price day so batteries idle; Building_3 eases its cooling trim at the strategy value; other actions hold baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat prices and no top-price hours, so batteries idle; following strategy, Building_2 cooling set to 0.175 within range; Building_1 and 3 keep baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: cooling near baseline in all buildings, batteries idle on flat price day, tank at 0; no trim held, no end_trim needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy values match envelope; flat price and no trim held, so baseline cooling and idle batteries; Building_3 end trim not needed since state is already end.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline everywhere: rooms within band, flat prices, no trims held; following strategy with no changes.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline: rooms near setpoint, flat prices, no trims; batteries idle on flat_24h, tanks at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline: rooms are near setpoint, prices are flat, and batteries idle on flat_24h days, so no changes proposed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline: no overcooling or warm trim, flat prices, batteries idle; following strategy as given.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null (baseline) for all, batteries and tanks idle; no trim held, and battery usable charge is near zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: cooling baseline or null, batteries idle, tanks at 0; no overcooling or warm trim triggered, price is flat so no discharge.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline: no overcooling, no warm trim, batteries idle as price is flat and SOC is near floor; following strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: all cooling null at baseline, batteries and tanks idle; no overcooling or warm trim triggers, and prices are flat.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null (baseline) in all buildings, batteries idle, tanks idle; no trims held and no clamps to override.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: baseline cooling and idle batteries and tanks; usable battery charge is near the floor and peak headroom is zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: all cooling null, batteries idle, tanks zero; Building_1 and Building_3 trims are off and not overcooled, Building_2 trim ended at setpoint.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: cooling null (baseline) and batteries idle; no overcooling or warm-room trim, flat price so no discharge needed. Tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling baseline (null) since no trim, battery idle as SOC near floor with usable 0.01 kWh, tank idle; price low now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling at baseline (no trim, rooms not overcooled), battery idle, tank idle; Building_1 is 4.3C warm but envelope range applied as given.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline; buildings are overheated with no trim held, cooling stays at baseline, and battery is near floor with no spare charge.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: all buildings hold baseline cooling and idle storage; Building_1 and Building_2 are above setpoint with no trim, so cooling stays at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: all buildings hold baseline cooling and idle storage; buildings 1-3 are at or above setpoint with no trim held, batteries near floor.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy cools warm rooms slightly more and holds batteries; battery usable charge is near zero, so accepting strategy as given.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B2 warm, cooling raised within range; B3 near setpoint so baseline cooling; batteries idle, DHW 0, no trim end.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_3 is overcooled-free; B1 and B2 warm, cooling at strategy within range; batteries idle at 0.2 SoC, price low, no top-price discharge yet.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null (rooms at or above setpoint, Building_3 cooling 0 is in range), batteries idle, tanks idle; no trim held.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds cooling at baseline for B1 and B2 where cooling is null; B3 uses null cooling as strategy says; batteries idle at soc floor, tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline; batteries near floor with 0.01 kWh usable and no top-price discharge needed yet, so I follow the strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling baseline (no trim, rooms near setpoint), battery charge gently in cheap hour before top price, tank idle; Building_1 battery limited by usable charge.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null (baseline), battery charge 0.15 in cheap hour before top price at hours 12-14; no trim, dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null (baseline) since no overcooling or warm trim; battery charges 0.15 in cheap clean hour before top price; dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: no cooling trims (rooms near setpoint), battery charges gently in cheap hour before top price; dhw idle; no overrides needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling per baseline or strategy, battery charges gently before top price hours, dhw idle; Building_2 cooling kept at its range.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: baselines for cooling in B1 and B3-B2 nulls; B1 eases trim within range; batteries idle as price is not top-tier now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 holds trim at range minimum; Building_2 and 3 baseline cooling; batteries idle as price is not top and peak under target.","status":"ok"},{"clamps":[{"applied":0.0,"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.150","requested":0.0,"rule":"trim_hold"}],"fallback":null,"reason":"Following the strategy: hold batteries and tank idle, keep the cooling trim in Building_1 and cooling within range in Building_2; price is low now with top prices ahead.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_2 holds a cooling trim in its cold room; Building_1 trim ended, batteries idle as price is not top-price now and peak headroom remains.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null in B2 and B3 (trim ending), B1 cooling 0.203 within range; batteries idle since price not top, no peak shaving needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 cooling 0.274 is below its range, so use the clamped baseline-range value; battery charging near-zero in cheap hour before top price; Building_2 at baseline; Building_3 idle battery.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building 1 holds trim at cooling range; B2 and B3 use strategy cooling null; battery charges near top price, tank idle, B3 unoccupied.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: no cooling trims (all rooms near setpoint, B2 occupied at +1.05C), small battery charge before top-price hours; tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: cooling null (baseline) and battery discharge at top price now; no trims active, dhw idle, Building_1 and 3 unoccupied with no overcooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 unoccupied so cooling baseline; B2 cooling baseline held per strategy; batteries discharge at top price, within ranges; tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow the strategy: trim cooling in the two occupied cold rooms, discharge batteries over top-price hours, keep tanks idle; all values within ranges.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: hold cooling in B1 and B3 within ranges, B2 baseline, batteries idle as price is not top and peak below target; no clamps needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: cooling as given within ranges, batteries and tank held at 0 since price is low and district load is below peak target; no trim end.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 holds trim at 0.077 cooling, B2 baseline (null), B3 eases at 0.1291; batteries idle, price not top now, peak headroom ample.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 holds trim at 0.1481 cooling, B2 idle, B3 eases trim at 0.1153; batteries held, no top-price hours now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: building 1 holds a cooling trim in an overcooled room; building 3 eases trim; battery charges gently ahead of top-price hours 17-19; no DHW.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling trims and battery charge near top price; Building_2 cooling null as strategy gives; no overrides needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: charge batteries gently before top-price hours 15-17, cooling null in Buildings 1 and 3, Building 2 cooling 0.238 per strategy; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 and 2 cooling per envelope, Building_3 trim ended at setpoint; battery charges gently ahead of top-price hours 14-16; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: battery charging in cheap hour before top-price window; cooling ranges respected; Building_1 cooling kept at baseline since strategy is within range; no trims end.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: Building_1 holds trim at cooling strategy value; Building_2 and 3 use baseline cooling; batteries charge/discharge per strategy with peak target respected.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy for all buildings; Building_1 trim eases with cooling inside range, battery charges gently ahead of top-price hours.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy; Building_1 cooling trim eases with envelope range, Building_3 batteries charge toward 0.95 before top-price hours, Building_2 cooling held at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 eases trim within range; Building_2 and 3 use baseline cooling; batteries charge gently ahead of top-price hours, peak headroom ample.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 cooling held in range with trim easing, Building_2 and 3 cooling baseline, batteries discharge per strategy; tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 and 3 cool at baseline plus battery charge; Building_2 battery charge; tanks idle; no trims held, so no end_trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 and 3 cooling null, Building_2 cooling null as trim ended; batteries charge gently before top-price hours; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy followed: Building 1 and 3 cooling null, Building 2 battery charge 0.15 in cheap hour; Building 3 battery small charge, dhw idle everywhere as given.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling baseline or null, store spare solar, hold battery near baseline for upcoming top-price hours 4-6 ahead; no clamps seen.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy is idle with no trim held; following it, with battery at 0 since top-price hours are 3-5 ahead and peak is under target.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: hold batteries and cooling at baseline; B1 battery has no discharge until top-price hours and B2 cooling is null as the trim ended at setpoint.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 battery -0.245 and B3 -0.24 shave peak; B2 discharges -0.5 for top-price hours; cooling baseline except B2 range fits; no dhw.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Sent strategy actions as given: battery discharges into the top-price hour, cooling trim off or ended, tanks idle; all within envelope ranges.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 holds trim at cooling 0.1352 and discharges battery; Building_2 and Building_3 use baseline cooling with battery discharge for the top-price hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building 1 holds its cooling trim per strategy, Building 2 and 3 use baseline cooling; discharge batteries at top price, no tank action.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 holds a cooling trim at 0.1061 and B3 cools at 0.079; B2 unoccupied, null. Batteries idle, no top price now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 cooling in ranges, B2 unoccupied null; batteries idle as price is not top-hour yet; no tank action.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: idle batteries and tanks, cooling per envelope; Building_3 trim eases, no end_trim since not at setpoint yet.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: cooling as given, batteries and hot water tanks held, trims kept; prices are not at the top yet, so no discharge.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling per envelope ranges, batteries idle as price is low and not top-price; B1 trim easing, B2 no trim, B3 baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: cooling null where room is near setpoint, small battery charge before top-price hours 16-18, dhw idle; Building_2 trim already ended.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: battery charges 0.15 in cheap hour before top price; cooling null for B1/B3 and B2 within range; B2 warm room gets strategy cooling 0.151 which is within range.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: no cooling trims needed, rooms within band; charge batteries gently before top-price hours 14-16; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: Building 1 and 3 cooling within range, B2 has no cooling; batteries charge gently ahead of top-price hours 13-15; dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 cooling trim eases toward baseline, battery charges pre-peak; Building_2 and 3 at baseline cooling; tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 cooling 0.1485 ease trim, B2/B3 no cooling; batteries charge gently before 0.0587 top-price hours; tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 and 3 cooling within ranges, Building_2 cooling null; batteries charge gently ahead of top-price hours; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: cooling null where room is not overcooled, battery holds to charge before top-price hours; dhw idle; no trims to end.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: no cooling trim (rooms near setpoint), gentle battery charge before top price; tanks idle; no end_trim needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 battery charging/cooling as given, B2 cooling null; cooling ranges respected, tanks idle, no trim ended.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 cooling stays baseline (no trim), B2 cooling raised above baseline for warm room, B3 unoccupied so baseline; battery charges gently before top price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: no trims or cooling changes except Building_1 baseline; Building_1 battery idle near 0.95 SOC, store spare solar only; Building_2/3 baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 and Building_2 cooling at baseline-ish, batteries idle as price is flat-ish and not top-price; Building_3 unoccupied, cooling null, battery idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling baseline or range-bound per room; battery idle-to-store as solar allows; tank idle; no trims to end yet.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow the strategy as given: B1 mild overcooling trim at 0.098; batteries idle, with top-price hours 2-4 ahead and SoC near full.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 cooling held in ease state within range, B2 unoccupied so null, B3 battery small charge; end trims not needed; tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: battery discharge over top-price hours; cooling at baseline since no trim is held and rooms are within band; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed the strategy for all buildings: discharge at top-price hour, overcooled trims in B1 and B3, B2 cooling null; all values inside ranges.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 hold cooling trims in cold rooms, B2 unoccupied uses baseline, batteries discharge at top price, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 cooling 0.0323 (ease), B2 null, B3 cooling 0.1526 (hold trim); batteries idle, tanks 0, no end_trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline in B1 and B2 and eases B3 cooling within its range; batteries idle since price is not top and peak is below target.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Sending strategy as given: batteries and tanks held, cooling null except Building_3 easing its trim at 0.1377; no top-price discharge yet.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: no trims needed (B1, B3 under setpoint, B2 at setpoint); battery shave per strategy; tanks idle; peak limiter at target.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null in all buildings (Building_3 cooling 0.05 per strategy, within range), batteries idle, tanks idle; Building_3 cooling set to 0.05.","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.0,"rule":"trim_hold"}],"fallback":null,"reason":"Follow strategy: Building_3 trim held with cooling 0 in range; Building_2 warm room gets strategy cooling 0.176; batteries idle, price not top-hour yet.","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":"Strategy holds cooling and batteries at baseline; Building_3 trim is easing, so cooling stays at its held value; Building_2 is warm but no trim applies, so nulls kept.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Follow strategy: idle batteries and tanks, cooling null for B1 and B3 as baseline; B2 uses strategy cooling 0.037 inside range, since room is below setpoint with no trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 cooling near baseline, battery charge 0.15 before top-price hours; B2 and B3 cooling null; hold dhw at 0 across buildings.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy for all buildings; Building_1 cooling trimmed to 0.103 as room is 0.83C below setpoint, battery charged toward top-price hours; Building_2 and 3 hold baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 cooling trim eases within range, B2 and B3 use baseline cooling; batteries charge in cheap hour before top price; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 eases trim within range, Building_2 and 3 use baseline cooling; batteries charge gently ahead of top-price hours, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: no cooling trims (rooms near setpoint), battery charges gently in cheap hour before top price; Building_1 and Building_3 battery at strategy values, Building_2 at 0.148.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds cooling and batteries; Building_1 battery idle is fine, peak headroom 2.29 kWh and prices flat now, so no change needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline everywhere: no overcooling or warm trim needed, batteries idle with price flat-ish and no top-price discharge yet; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: no trims active; Building_1 stores spare solar; hold battery idle elsewhere; cooling at baseline except strategy nulls, tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 cooling null, battery stores spare solar; B2 and B3 unoccupied with trim ended, cooling null; tank idle; no trims needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: no cooling trims, battery idle-to-gentle charge before top-price hours; B1 and B3 battery per strategy, tank idle, no end_trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: no cooling trims, Building_3 charges battery 0.15 ahead of top-price hours; battery idle elsewhere; tanks at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling at baseline or null in B2/B3, B1 slightly below baseline in range; charge batteries before top-price hours; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 holds trim at baseline-plus cooling, B2/B3 unoccupied idle; B1 battery idle, B3 small charge; tank idle; no clamps needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 holds trim at range minimum, B2/B3 unoccupied so baseline cooling; battery discharges at top price now, B1 and B3 follow strategy discharge.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following the strategy: cooling at baseline, tank idle, and battery discharging into the top-price hours, all within the envelope ranges.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed the strategy: trims start in overcooled occupied rooms, battery discharges over top-price hours, tanks idle, and all values sit within envelope ranges.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 hold trims in cold rooms; B2 cooling null; batteries follow strategy, peak limiter on so no extra discharge beyond strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow the strategy: cooling trims held in Building_1 and Building_3, batteries idle as price is not at top; Building_2 at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 hold cooling trims in cold rooms, B2 at baseline; batteries idle as price is not top, dhw held at zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: holds baseline-range cooling, batteries idle as price is not top-hour; Building_1 trim easing, Building_2 and 3 no trim needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: Building_1 cooling 0.0957 in held trim, Building_2 and 3 baseline cooling; battery charges gently before top-price hours 17-19; no tank action.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 ease trim at 0.088 within range; B2 and B3 cooling null (warm rooms, no trim); batteries charge 0.15 before top-price hours 16-18; tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 cooling null (baseline), B2 cooling 0.228 is inside range? Its range tops 0.3467, so use strategy; battery charging 0.15 in cheap hour before top price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy cooling is null (no trim, rooms near setpoint); following strategy: battery charge 0.15 in cheap hour before top price, dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling at baseline or null where no trim, battery charges gently ahead of top-price hours 13-15; tank idle; no end_trim since not held.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: battery charge to pre-load before top-price hours 12-14; cooling as given. Building_2 and 3 cooling null at baseline; Building_1 cooling kept at strategy value.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 eases trim within range, Building_2 no cooling, Building_3 baseline cooling; battery charges gently ahead of top price; tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 eases trim near setpoint, B2 and B3 idle cooling; batteries charge/hold per plan before top-price hours 10-12.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 holds a trim at its range; Building_2 and 3 use baseline cooling; battery discharges to shave peak, tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 eases trim within cooling_range, B2 and B3 at baseline cooling, batteries charge gently before top price; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 holds trim at 0.1642 cooling; B2 and B3 keep baseline cooling; batteries charge gently ahead of top-price hours; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 holds trim at baseline-ish cooling, B2 and B3 at baseline, batteries charge gently ahead of top-price hours; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: no cooling trim held, batteries charge gently before top-price hours; Building_1 and 3 batteries as given, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: no cooling trims, battery charges gently in cheap clean hour before top price; dhw idle; Building_2 unoccupied so cooling baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy for all buildings; Building 1 cooling 0.36 is below its range so clamped to 0.2799 floor is not applied, kept baseline-safe values and battery charge at strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 holds trim at strategy cooling; Building_2 and 3 baseline cooling; small battery charge in cheap clean hour; no tank action.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 eases trim within range; Building_2 unoccupied, baseline; Building_3 mild charge before top-price hours, cooling per strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 and Building_2 cooling null (baseline), Building_3 holds trim at 0.6214; battery discharge at top price now, within ranges; dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: top price now so discharge batteries; Building_3 trim held and cooling kept within range; Building_2 unoccupied so cooling baseline; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: battery discharges at the current top price, overcooled occupied rooms get in-range trimmed cooling, dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: trims held in B1 and B3 with cooling in range; B2 unoccupied uses baseline; battery discharges at top-price hour per strategy, dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy followed: trims held in cold rooms (B1, B3), B2 unoccupied uncooled; battery discharge per strategy, peak limiter on; no overrides needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: hold cooling trims in cold occupied rooms, discharge batteries at the top-price hour, keep tanks idle; all values sit inside envelope ranges.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building_1 and 3 trims held in overcooled rooms; Building_2 at setpoint with no trim. Following strategy; battery discharge within ranges, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat 24h price, so batteries and tanks stay idle; cooling trims in cold rooms follow strategy, and Building_2 keeps baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baselines on flat-price day; Building_1 and 3 cooling at strategy values inside ranges, Building_2 has no trim and is warm so baseline kept; batteries idle, tanks zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Flat prices and a district load below the peak target, so batteries and tanks stay idle; Building_2 starts a small cooling trim since it is overcooled.","status":"ok"},{"clamps":[{"applied":0.0,"point":"Building_2.cooling","reason":"indoor 24.6 C is within 0.5 C of the setpoint 25.0 C, trim eases off from 0.044 by at most 0.02 per hour","requested":0.0,"rule":"trim_hold"}],"fallback":null,"reason":"Strategy holds cooling at baseline or null in most rooms; Building_2 trim is easing so cooling is 0 per strategy, batteries idle on flat prices.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Following strategy: cooling at baseline or null where ranges allow, batteries idle on flat price, tanks idle; Building_2 trim is ending at setpoint so cooling set null.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline: rooms near setpoint, flat prices, batteries idle with no usable charge; cooling nulls kept as given.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline: no overcooling or warm trim, flat price so batteries idle, tanks at zero; no clamps to address.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds cooling at baseline and batteries idle on flat prices; Building_1 and 3 cooling null, Building_2 at baseline, no trims needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline everywhere: rooms within band, flat prices, batteries near floor with no usable charge; no clamps to override.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline: rooms near setpoint, batteries near empty, flat prices, so no trim or storage action is warranted this hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline: rooms are near setpoint, flat prices, and batteries are at floor with no usable charge; no clamps to fix.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy cooling is null for B2 and B3 and B1 is ~0.226 within range; I send B1 at strategy 0.226 and keep batteries and tanks idle on flat-price day.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 holds trim at 0.2659 cooling; Building_2 and Building_3 baseline with null cooling; batteries idle on flat price, tanks at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 holds trim at baseline-plus cooling; Building_2 cooling null (above setpoint, no trim); batteries idle on flat price; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 cooling at strategy 0.4557 inside range, trim easing; batteries idle on flat price; tanks idle; no end_trim since within band.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: Building_1 holds trim at strategy cooling 0.514 (in range); Building_2 and Building_3 cooling stays baseline; batteries idle on flat price; tanks at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline-like actions: B1 trim held at 0.6096 cooling, B2 and B3 follow baseline; batteries idle on flat prices, dhw zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: holds in B1 and B3 trims (cooling inside range), B2 null; batteries idle on flat price with zero usable charge; dhw zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds cooling trims in B1 and B3 and idles batteries and tanks on a flat price day; B2 at setpoint uses baseline, so no overrides needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: Building 1 and 3 hold trims in overcooled rooms at cooling_range minimum; Building 2 null; batteries idle on flat prices; dhw 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: holding cooling trims in Buildings 1 and 3 at range minimum, Building 2 at baseline; batteries idle on flat prices, tanks at zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: flat price and no battery opportunity, so hold batteries and tanks at baseline; hold B1 and B3 cooling trims at strategy values, B2 at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: Building_1 and Building_3 hold cooling trims at their ranges, Building_2 at baseline; batteries and tanks idle on flat-price day.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: flat price so batteries idle; B1 trim easing, B3 cooling held in range; B2 at setpoint with no trim, baseline cooling kept.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline except Building_1 cooling 0.397 (warm room, no trim held); flat price, batteries idle with zero usable charge, so keep baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline on flat-price day with idle batteries and no trims; Building_1 and Building_3 cooling follow strategy within range, Building_2 stays baseline since trim is at end.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: flat price, batteries idle, tank idle; Building_1 and Building_3 hold/ease cooling trims, Building_2 at baseline since its room is above setpoint.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 cooling null (trim ended, at setpoint); B2 and B3 hold baseline-range cooling; batteries idle on flat prices; tanks at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline everywhere; B1 is 2.9C cold with no trim so cooling stays baseline; B2 and B3 hold eased trims; flat prices so batteries idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline everywhere: flat price, no trim held, batteries idle; Building_2 and 3 follow strategy with cooling null, Building_1 cooling 0 per overcool rule.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline: flat price, no overcooling or warm trim needed, batteries idle at SoC floor; Building_1 trim ended as at setpoint.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline everywhere: flat price, batteries idle, no trims; Building_1 and Building_3 are slightly cool but within band, so cooling stays at baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy adopted for all buildings: cooling at baseline or within range, batteries idle on flat prices with SoC at floor, tank idle; B2 trim ended since at setpoint.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Accepted strategy: cheap-hour battery charging ahead of top price, cooling within envelope ranges, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Accepted strategy: cheap, fairly clean hour so storing 0.15 battery; Building_1 holds trim at range floor; all within envelope ranges.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy for all buildings; B1 cooling 0.0794 within range, B2 held trim at strategy cooling, B3 battery charge 0.15 stores spare solar before top price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 cooling at strategy 0.1761 (trim held, ease), Building_2 cooling null, Building_3 null; batteries idle, tank idle; end_trim not used.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Sending strategy as given: Building_1 holds its cooling trim within range, Building_3 runs slightly under baseline, batteries and tanks idle until top-price hours.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 and Building_3 hold trims in overcooled rooms, Building_2 baseline cooling; battery discharges to shave peak, dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: holding cooling trims in cold rooms and batteries idle; Building_1 trim hold, Building_3 trim hold, Building_2 at baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building 1 and 3 hold cooling trims within range, Building 2 baseline; batteries idle, dhw zero; no end_trim since trims are held.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: cooling trims for the cold rooms in Buildings 2 and 3, batteries and tanks held; no spare solar to store this hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling in B1/B3 within ranges, B2 eases trim; battery idle-ish discharge per strategy, peak limiter on; tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: holding cooling trims in overcooled rooms and idling batteries; price is low and no top-price hours now, so no battery discharge.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: holding cooling trims in overcooled rooms, batteries idle as price is not top and peak is near target; Building_2 eases trim per strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds cooling trims in all three overcooled rooms and idles batteries and tanks, since price is low and no top-price hour is now; following strategy as given.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 and Building_3 hold cooling trims in cold rooms, Building_2 trim ended at setpoint; batteries idle as price is not top and peak is below target.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following the strategy: holding cooling trims in Buildings 1 and 3 (rooms 1.1-1.4 C below setpoint), batteries and tanks idle since price is low and not top-price hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: holding trims in cold rooms and idle batteries at low price; Building_2 cooling uses baseline since no trim is active and room is not overcooled.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 hold trims at cooling range, B2 warm room gets strategy cooling 0.294; batteries idle, tanks zero, no top-price hour now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline everywhere; B1 and B2 cooling null, B3 cooling 0.0707 kept within its ease trim; batteries idle, price flat-low now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy cooling is applied for B1 and B3 within ranges; B2 idle; batteries hold since no top-price hour now and usable charge is tiny; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: Building_1 holds trim (cooling 0.054 in range), Building_2 and 3 keep baseline cooling; batteries charge gently in cheap hour before top price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 holds trim with cooling in range; B2 cooling null; B3 cooling 0.041 is below baseline and in range; charge batteries gently before top-price hours.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null where in band, battery charges near cheap hour before top price; Building_3 trim eases within range; no dhw.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling near baseline with no trim, battery charges in cheap hour before top price, tank idle; Building_1 cooling kept at strategy value.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building 1 holds trim and charges battery; B2 and B3 cool baseline, B2 cooling at strategy 0.192 is within range; batteries charge in cheap hour before top price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: Building_1 holds trim at cooling 0.128 within range; B2 and B3 use baseline cooling; batteries and tanks idle, price flat-ish, no top-price hour now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 holds cooling trim at 0.0977 (1.2C below setpoint); B2 and B3 at baseline cooling, batteries idle, tanks 0, no price peak now.","status":"ok"},{"clamps":[{"applied":0.0059,"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.076","requested":0.0819,"rule":"trim_hold"}],"fallback":null,"reason":"Follow strategy: Building_1 holds a trim (cooling 0, in range); B2 and B3 at setpoint use baseline cooling; batteries store solar or idle; tanks idle.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 trim eases at cooling 0.0813 within range; B2 and B3 baseline cooling; batteries idle, price flat-ish, no top-price discharge yet.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 holds trim at 0.1285 cooling; B2 and B3 unoccupied, baseline cooling; batteries store spare solar, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: Building_1 holds trim at strategy cooling; Building_2 and Building_3 unoccupied, null cooling; battery charge gently ahead of top price; tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: B1 holds trim at baseline-range cooling 0.276; B2/B3 unoccupied, cooling baseline; batteries charge gently ahead of top-price hours.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 holds a trim in cold room, Building_2 and 3 unoccupied so cooling baseline; charge batteries before top-price hours, dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following the strategy as given: B1 cooling 0.334 held in trim, batteries discharge into top-price hour, tanks idle; all values inside envelope ranges.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: top-price hour now, discharge battery within ranges; Building_1 trim held so cooling at strategy 0.3283 inside range; Building_3 cooling 0.366 within range; Building_2 unoccupied, cooling baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Sending the strategy actions as given: holding cooling trims in cold rooms, discharging batteries ahead of top-price hours, and keeping tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 hold trims at cooling in range; B2 unoccupied uses baseline; batteries idle, price not top-hour yet, DHW zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 and Building_2 hold baseline cooling; Building_3 holds trim at strategy cooling 0.2947; batteries idle and tank 0, as prices are not at top.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Sent strategy actions as given: batteries and tanks held, cooling per envelope; Building_3 trim held, no end, price not top now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: hold cooling trims in B1 and B3 at range floor, B2 baseline, batteries idle before top-price hours; no clamps needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 holds cooling trim at 0.0903, B2 baseline, B3 eases trim at 0.1062; batteries idle, price flat-ish and not top-price hour.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 and Building_3 hold trims at strategy cooling, Building_2 baseline; batteries idle as price is low and not top-price yet.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 cooling null (trim ended, at setpoint), battery charge 0.15 for top-price hours; Building_2 and Building_3 hold baseline cooling; dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling baseline (no trim, rooms near setpoint), battery charge 0.15 in cheap hour before top-price window, dhw idle; Building_3 trim end noted.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: all rooms within band with no trim held, so cooling baseline-equivalent; charge batteries gently before top-price hours 13-15; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: cooling is null where room is near setpoint; battery charges gently before top-price hours 12-14; dhw idle; no trim held so end_trim null.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: all buildings at baseline-range cooling, batteries charge gently before top-price hours; no trims held, tanks idle, no clamps needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null where baseline holds, battery charge toward 0.95 before top-price hours 10-12; tank idle, no trim to end.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling baselines and battery small charge before top-price hours; no trims held, tank idle, all within envelope ranges.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null where room is below setpoint without trim, battery charging gently ahead of top-price hours; Building_3 battery 0.15 accepted within range.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null where room is not overcooled, battery small charge ahead of top-price hours; Building_1 cooling strategy 0.072 kept within range; no trim held.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null in B2/B3 (rooms at or above setpoint, no trim), B1 baseline; small battery charge toward 0.95 before top price; DHW idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null where not overcooled, battery charges from spare solar ahead of top-price hours; Building_1 cooling kept at baseline since room is cool but unoccupied-trim rules hold.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 cooling 0.112 (within range), B2/B3 cooling null, batteries near-idle charging before top-price hours, tank idle; no clamp issues.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 eases trim within range, Building_2 unoccupied baseline, Building_3 small battery charge; no clamps needed, battery charging ok at low price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 and 3 cooling within ranges, Building_2 unoccupied null; battery charge only as strategy gives, tank idle; no end_trim since trims are holding.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: holding trims in cold rooms, battery charging toward 0.95 before top-price hours 1-3; B2 unoccupied so cooling baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 and Building_3 hold cooling trims within range; Building_2 unoccupied at baseline; battery discharges at top price, dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: hold B1 and B3 cooling trims inside range, B2 cooling at baseline, discharge batteries on top-price hour, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 cooling trims held in cold rooms; B2 unoccupied, baseline cooling; batteries discharge at top price with peak limiter; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 and 3 hold trims in cold rooms, Building_2 idle; batteries held as price is not top and peak headroom is limited.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 cooling inside ranges, B2 baseline, batteries idle since price is not top yet and peak is below target; B1 trim eases.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling held in trim ranges for B1 and B3, B2 at baseline; batteries idle as price is not top and peak headroom is small.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 and Building_3 hold trims at range minimum; Building_2 at baseline; batteries idle, price not at top hours yet.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null (baseline) in all buildings, batteries discharge per peak shaving, dhw 0; trims ending as rooms at setpoint.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: baseline cooling and idle batteries; Building_3 is cold but trim is off and its cooling range is at baseline, so no change.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy applied: cooling and battery held at baseline/strategy, rooms within comfort band; price flat now, batteries idle until top-price hours 15-17.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: no trim (rooms not overcooled), battery charge 0.15 in cheap hour before top-price window, dhw idle; Building_3 cooling 0.053 kept as strategy suggests.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_3 holds trim with cooling 0.039; battery charges gently in cheap hour before top price at 13-15h; dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: B1 and B2 battery charge gently before top-price hours; B3 holds ease trim at strategy cooling; B1 cooling kept near baseline as room is cold but trim off.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 hold cooling trims within range, B2 cooling null; charge batteries gently before the 11-13h top price, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: B1 eases trim within range, B2 and B3 keep baseline cooling, batteries charge spare solar gently ahead of top-price hours; no clamps needed.","status":"ok"},{"clamps":[{"applied":0.1264,"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.031 by at most 0.02 per hour","requested":0.1376,"rule":"trim_hold"}],"fallback":null,"reason":"Follow strategy: charge batteries in cheap hour before top price; Building_1 trim eases, Building_2 and 3 cooling per envelope; dhw idle.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null for B2, trims eased in B1 and B3 within ranges; batteries charge gently ahead of top-price hours; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: no cooling trims (rooms near setpoint), small battery charge before top-price hours; Building_3 battery 0.15 kept within range, tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling at baseline-ish levels with trims off, batteries near-idle as strategy suggests, tanks at zero; no clamps needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null in B1/B2, B3 unoccupied so cooling baseline; store spare solar gently before top price; tank idle; no trims held.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building 1 and 3 battery idle or small; Building 2 cooling null as room at setpoint; battery stores spare solar; no trim ends needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: idle cooling at baseline where unoccupied; B1 cooling 0.042 is below range so keep null-adjacent; store spare solar in B1 battery, idle elsewhere.","status":"ok"},{"clamps":[{"applied":0.0698,"point":"Building_1.cooling","reason":"indoor 26.2 C is more than 0.5 C below the setpoint 26.7 C, trim held at 0.100","requested":0.1693,"rule":"trim_hold"}],"fallback":null,"reason":"Follow strategy: B1 holds a cooling trim at 0.0698, B2 and B3 unoccupied, batteries idle at 0 since spare solar is low and top price is 2-4h ahead.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 held trim cooling at range minimum, Building_2 and 3 baseline; battery charges gently ahead of top-price hours.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 battery discharge, B2 unoccupied; B1 cooling null as in strategy; no trims held, no end_trim needed; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy accepted: Building_1 starts a cooling trim in its cold occupied room and both batteries discharge into the top-price hour; others stay at baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Kept strategy cooling within ranges; spread discharge evenly over the three top-price hours (22-24) for B1-B3 instead of front-loading, with peak not yet triggered.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 and Building_3 hold cooling trims in cold rooms; Building_2 at setpoint keeps baseline; battery discharge shaves the peak, tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: small battery discharge to shave peak, hold Building_3 trim, slight extra cooling in warm Building_1, all within ranges.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_3 trim held at 0.3052 within range; Building_2 trim ending at setpoint; batteries idle, price not at top; no tank action.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 cooling inside range, B2 cooling null; B3 trim held, no battery discharge since not top-price hours and B1 has tiny usable charge.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds cooling trims in B1 and B3 (overcooled) and idles batteries; accepting as given since no clamp risk is evident.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: baseline cooling where null, hold B3 trim at 0.086; end B1 trim (at setpoint); batteries idle, price flat-ish and not top price yet.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B2 cooling baseline-ish, B3 eases trim at 0.0667 within range; batteries idle, price low and no top-price discharge yet.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: charge batteries gently before top-price hours and hold trims; Building_3 trim ends at setpoint so cooling stays baseline; Building_1 eases trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 holds a cooling trim (1.0 C below setpoint) and battery charges in cheap hour; Buildings 2 and 3 use baseline cooling, storing spare charge.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 cooling held in trim at 0.102 within range; B2 and B3 cooling null; batteries charge 0.15 before top-price hours; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: Building 1 eases a held trim (cooling 0.0904), Building 2 and 3 keep baseline cooling; batteries charge gently before top-price hours, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building 1 cooling ease near setpoint, B2 and B3 baseline cooling, batteries charge gently before top price; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building 1 cooling at range top, battery charge near cheap hour before top price; Buildings 2 and 3 no trim, cooling baseline, battery charge 0.15.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: Building_1 holds its cooling trim inside range, batteries idle before the top-price hours, tanks idle, Buildings 2 and 3 keep baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: B1 cooling at 0.2367 eases the trim in range, B2 and B3 keep baseline, batteries and tanks held at 0 with no top-price discharge yet.","status":"ok"},{"clamps":[{"applied":0.0947,"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.039","requested":0.1341,"rule":"trim_hold"}],"fallback":null,"reason":"Follow strategy; Building_1 trim held, cooling kept inside range; B2 and B3 battery discharge limited by range; district peak near target so no extra action.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 holds cooling trim at 0.1599, B2 cooling null, B3 cooling 0.482; batteries charge toward 0.95 before top price in hours 5-7; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B2 cooling baseline/strategy, B3 holds trim at 0.381; charge batteries gently ahead of top-price hours; tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 cooling in range, B2 unoccupied idle; batteries as given with grid charging ok before top-price hours; no tank or end_trim changes.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 cooling is null-to-baseline mix; B2 and B3 unoccupied, baseline kept; B1 battery idle; B3 charges 0.15 cheap solar-free hour before top price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 holds trim at cooling range, B2 and B3 unoccupied keep baseline; B3 charges battery 0.15 in cheap hour before top price.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Sending strategy as given: B1 holds its trim in range, B2 and B3 keep baseline cooling, and batteries discharge into the top-price hours.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: holding cooling trims in cold occupied rooms and discharging batteries over top-price hours; all actions sit inside envelope ranges.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Sent strategy as given: cold rooms hold cooling trims, batteries discharge into top-price hours, tanks idle, no end-trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed the strategy: hold cooling trims in Buildings 1 and 3 (cold rooms), no-trim baseline in Building 2, batteries idle before the top-price hours.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: holding trims in overcooled rooms, battery discharge kept to peak shaving with headroom 0.22 kWh; Building_2 cooling baseline as no trim is held.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling held in trims for B1 and B3 within ranges, B2 baseline null; batteries idle, tanks zero; no clamps needed.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 hold cooling trims in cold rooms; B2 at baseline; batteries and tanks idle as headroom is zero and no top-price hours now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 and 3 hold cooling trims at 0.138 and 0.1802 (ranges), Building_2 uses baseline; batteries idle, tank 0, no end_trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: holding cooling trims in B1 and B3 at range minimum, batteries idle as price is low and not top-price yet; B2 baseline.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null (baseline) for all, batteries and tanks idle; trims held in B1/B3 at end state, no end_trim since end_trim_ok is false.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: no trim active, rooms near setpoint, battery charging gently ahead of top-price hours 14-16; ranges respected, tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: Building_1 and 2 cooling at baseline-equivalent, Building_3 cooling null; battery charges 0.15 in cheap hour before top-price window; dhw held at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling null where no trim, battery charge 0.15 in cheap hour before top-price window; tank idle; no trims held so no end_trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: cooling baselines and battery charge in cheap clean hour before top price; B1/B3 cooling within ranges; B2 trim ended at setpoint.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: B1 cooling 0.0802 ease trim, B2 and B3 baseline cooling, batteries charge 0.15 before top-price hours; tanks idle.","status":"ok"},{"clamps":[{"applied":0.144,"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.079 by at most 0.02 per hour","requested":0.2032,"rule":"trim_hold"}],"fallback":null,"reason":"Follow strategy: cooling null in B2/B3 and trims ease in B1; batteries charge gently before top-price hours 9-11; dhw idle.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Follow strategy: building 1 eases trim within range, building 2 unoccupied so baseline, building 3 battery charge; tank idle; reasoning per strategy.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 holds trim at cooling_range; B2 and B3 unoccupied or at setpoint use baseline; battery charges gently before top-price hours as given.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 holds trim at cooling 0.116; Building_2 and 3 keep baseline cooling; batteries charge gently before top-price hours; dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: no cooling trims (all rooms near setpoint), battery idle-ish charging to ~0.95 before top price; Building_3 small charge per strategy, tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 and Building_3 cooling at baseline (room not overcooled enough), small battery charge before top-price hours; Building_2 unoccupied, idle. Tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B2 baseline cooling, B3 slight cooling cut as strategy gives; battery charge toward 0.95 before top price; tank idle; no trim ends.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B3 cooling inside ranges, B2 unoccupied baseline; small battery charge ahead of top price; dhw idle; no trim ends.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 holds trim at strategy cooling; Building_2 and Building_3 baseline cooling; batteries charge gently before top-price hours; tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Building 1 holds a trim at 1.6 C below setpoint so cooling stays inside range; battery discharges at top price; Buildings 2 and 3 follow the baseline with no trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Followed strategy: B1 holds trim at range minimum with cooling 0.592 and battery -0.263; B2 and B3 unoccupied, baseline cooling; battery discharge at top price now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 trim held at cooling_range; Building_2 unoccupied, baseline cooling; Building_3 strategy cooling 0.625 within range; batteries discharge at top price now.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 and 3 hold cooling trims within range; Building_2 unoccupied, baseline; batteries discharge at top price, dhw idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Accepted strategy for all buildings; B1 and B2 battery idle since usable charge is zero, B3 discharges toward top-price hours and holds its cold-room trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Sent strategy actions as given: cooling trims held inside ranges for cold rooms, battery discharge on top-price hour within limits, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 and B2 cooling null/baseline-ish, B3 holds trim at 0.174; batteries idle (no usable charge in B1/B2, B3 discharge small); tank idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: flat price so batteries idle; Building_3 holds its cooling trim at 0.1161 since room is 0.7 C below setpoint; others use baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline cooling in B1 and B2 and idles batteries on flat prices; B3 eases its held trim per strategy, and dhw stays at zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline on all; B1 cooling 0.056 is below its range, so I follow the envelope-clamped strategy; batteries idle on flat price.","status":"ok"},{"clamps":[{"applied":0.0,"point":"Building_1.cooling","reason":"indoor 21.4 C is more than 0.5 C below the setpoint 23.7 C, trim held at 0.099","requested":0.0,"rule":"trim_hold"}],"fallback":null,"reason":"Follow strategy: Building_1 cooling held at range 0 (trim hold, cooling_range [0,0]), Building_2 and Building_3 baseline cooling; batteries idle on flat price day.","status":"clamped"},{"clamps":[{"applied":0.0,"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.099","requested":0.0,"rule":"trim_hold"}],"fallback":null,"reason":"Flat price and low district load mean no battery action; cooling and dhw follow the strategy, with B1 holding its trim and B2 at 0.0 cooling.","status":"clamped"},{"clamps":[{"applied":0.0,"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.099","requested":0.0491,"rule":"trim_hold"}],"fallback":null,"reason":"Strategy holds all devices; Building_1 trim held at min depth, cooling_range 0 so baseline kept; flat price and idle battery, no changes needed.","status":"clamped"},{"clamps":[{"applied":0.0,"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.099 by at most 0.02 per hour","requested":0.0,"rule":"trim_hold"}],"fallback":null,"reason":"Follow strategy: Building_1 cooling held at 0 inside range; Building_2 and Building_3 baseline cooling; batteries idle on flat price; tanks at 0.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Followed strategy: all cooling null except B2 and B3 ranges allow baseline; B1 trim easing within range, batteries held on flat price, tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds all devices at baseline: no overcooling or warm trim needed, flat prices, battery idle; Building_1 trim ends at setpoint, no end_trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline: flat price, batteries idle, cooling null in B1/B2/B3 except B1 strategy 0.177 within range; follow strategy and keep tanks at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline on flat-price day; Building_1 cooling 0.141 is below cooling_range minimum 0.0653? No, it lies inside range, so follow strategy; batteries and tanks idle.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds baseline on all: B1 and B3 cooling in range, B2 and B3 null; flat price so batteries idle; tank 0; B1 trim easing, no end.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 holds a cooling trim at 0.3817; Buildings 2 and 3 keep baseline cooling; batteries and tanks idle on flat price day.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: Building_1 holds cooling trim at 0.3878 (room 1.3C below setpoint); B2 and B3 baseline cooling; batteries idle on flat prices; dhw zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: Building_1 holds trim at 0.4572 (in range), Building_2 and Building_3 cooling baseline, batteries idle on flat prices, dhw zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: B1 holds trim at 0.5557 cooling, B2 and B3 baseline-like cooling, batteries idle on flat price, dhw zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: holding cooling trims in B1 and B3 within ranges, B2 baseline-range cooling, batteries idle on flat prices, tanks at zero.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy holds: cooling trims in Buildings 1 and 3 are held, batteries idle on flat prices, tanks at zero; Building 2 follows baseline range.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: flat price so batteries idle; Building_1 and Building_3 hold cooling trims within range; Building_2 unoccupied, baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: B1 and B3 cooling trims held at strategy values; B2 unoccupied with baseline cooling; batteries idle on flat price; tanks at 0.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Following strategy: cooling held in trim ranges for overcooled rooms, batteries idle on flat price, tanks at 0; Building_2 at baseline cooling.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Follow strategy: flat price so batteries idle, B1 and B3 hold cooling trims inside range, B2 baseline-plus-strategy within range; tanks idle, no end_trim.","status":"ok"},{"clamps":[],"fallback":null,"reason":"Strategy matches envelope: B1 and B3 cooling trims held at strategy values, B2 eases trim; batteries idle on flat price, tanks at 0.","status":"ok"},{"clamps":[{"applied":0.1328,"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.2828,"rule":"trim_hold"},{"applied":0.1731,"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.099","requested":0.2725,"rule":"trim_hold"}],"fallback":null,"reason":"Strategy matches envelope: Building_1 and 3 hold trims at range minimum; Building_2 eases. Prices flat, batteries idle, tanks at 0, no clamps needed.","status":"clamped"},{"clamps":[],"fallback":null,"reason":"Follow strategy: flat price so batteries idle; B1 and B2 cooling per strategy, B3 trim held at its range; no tank action.","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,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,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,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,5.0,6.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,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,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,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,11.0,11.0,11.0,12.0,13.0,13.0,13.0,13.0,13.0,13.0,13.0,13.0,13.0,13.0,13.0,13.0,13.0,13.0,13.0,13.0,13.0,13.0,13.0,13.0,13.0,13.0,14.0,15.0,16.0,17.0,19.0,21.0,23.0,26.0,29.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,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,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,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,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,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,31.0,32.0,33.0,34.0,34.0,34.0,34.0,34.0,34.0,34.0,34.0,34.0,34.0,34.0,34.0,34.0,34.0,34.0,34.0,34.0,34.0,34.0,34.0,34.0,34.0,35.0,36.0,36.0,36.0,36.0,36.0,36.0,36.0,36.0,36.0,36.0,36.0,36.0,36.0,36.0,36.0,36.0,36.0,36.0,36.0,36.0,36.0,36.0,38.0,40.0,41.0,41.0,41.0,41.0,41.0,42.0,42.0,42.0,42.0,42.0,42.0,42.0,42.0,42.0,42.0,42.0,42.0,42.0,42.0,42.0,42.0,42.0,42.0,44.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,47.0,47.0,47.0,47.0,47.0,47.0,47.0,47.0,47.0,47.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,48.0,49.0,49.0,50.0,51.0,51.0,51.0,52.0,52.0,52.0,52.0,52.0,52.0,52.0,52.0,52.0,52.0,52.0,52.0,52.0,53.0,53.0,53.0,53.0,55.0,57.0,58.0,59.0,59.0,59.0,59.0,59.0,59.0,59.0,60.0,60.0,60.0,60.0,60.0,60.0,60.0,60.0,60.0,60.0,60.0,60.0,60.0,60.0,61.0,63.0,64.0,65.0,65.0,66.0,67.0,68.0,68.0,68.0,68.0,68.0,68.0,68.0,68.0,68.0,68.0,68.0,68.0,68.0,68.0,68.0,69.0,70.0,72.0,74.0,76.0,76.0,76.0,76.0,76.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.511,4.521,2.435,3.856,4.394,6.658,5.278,4.935,5.313,2.612,1.759,1.389,2.11,2.376,2.591,2.559,1.447,3.144,1.423,2.63,3.47,8.481,6.488,5.599,6.938,7.36,5.65,6.643,4.793,5.901,5.221,4.961,3.065,2.344,1.935,2.164,1.768,1.739,1.855,1.814,3.458,4.284,1.229,1.772,1.909,1.449,7.592,1.84,4.907,5.804,4.224,4.704,3.431,2.984,4.345,1.856,1.566,1.347,1.366,2.127,2.415,1.8,2.908,3.847,1.927,2.93,1.364,1.75,0.977,1.72,0.864,1.153,-0.077,0.456,1.081,3.387,3.074,3.226,2.828,2.959,2.614,2.551,1.894,2.757,2.646,2.374,2.569,3.066,4.315,1.476,0.508,0.257,1.043,1.74,1.858,2.264,1.393,1.668,3.83,5.176,6.448,3.915,2.328,2.613,2.194,3.275,2.766,3.177,3.031,2.862,3.471,11.858,2.972,3.107,7.487,2.382,1.125,1.574,1.211,2.211,0.484,0.899,2.11,2.665,4.339,12.729,3.876,2.626,2.387,2.501,4.076,3.443,3.147,2.848,2.813,5.705,2.932,4.077,2.031,1.197,4.366,3.984,3.24,3.243,0.175,0.73,2.883,5.354,3.788,4.41,2.95,1.865,2.062,1.939,2.941,1.108,2.285,2.268,5.215,3.287,1.919,2.43,0.757,0.736,1.155,0.776,1.69,2.233,1.032,1.297,2.108,4.314,4.69,4.352,3.174,2.864,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.212,6.191,5.254,4.478,5.351,6.054,4.86,3.526,3.449,3.682,2.605,1.816,2.125,2.161,1.499,1.465,2.982,1.709,1.613,1.295,0.84,1.422,1.207,2.482,10.35,3.172,3.928,10.711,6.295,6.917,5.699,3.933,2.965,3.036,2.456,2.608,2.693,3.412,2.795,2.76,2.898,7.37,3.392,5.024,3.688,2.091,1.48,1.862,2.642,7.178,3.133,3.614,3.22,5.125,4.327,3.881,9.942,2.264,3.384,2.161,2.315,3.061,2.98,2.978,3.095,3.124,1.817,1.156,2.557,1.768,2.357,1.679,3.521,3.569,3.741,8.291,4.636,6.27,8.097,7.264,7.725,10.697,3.471,1.559,1.8,2.825,2.659,2.902,2.937,4.204,1.783,1.568,0.962,1.091,0.956,1.219,1.974,3.316,2.926,3.149,2.208,4.996,6.079,5.051,4.394,5.208,2.764,2.322,3.76,3.077,2.814,2.749,2.785,3.087,5.071,3.09,0.447,0.939,0.837,2.899,2.81,0.964,0.9,1.23,2.112,4.913,5.618,5.635,3.492,3.168,3.822,3.846,2.584,3.206,2.97,4.134,2.814,2.516,4.219,5.496,4.494,3.203,3.104,2.577,1.943,4.467,2.227,2.119,3.766,5.82,4.537,4.254,5.511,2.637,4.401,2.25,2.505,2.145,1.743,1.656,1.767,2.001,4.154,1.902,2.324,2.249,2.053,7.512,3.27,4.004,3.429,6.692,5.354,4.644,4.683,5.162,3.82,2.087,1.759,1.897,1.81,1.355,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.523,4.668,3.822,1.979,3.04,2.766,3.362,3.151,3.036,6.075,5.696,2.269,1.649,3.243,2.981,1.885,3.358,6.573,3.868,2.131,2.057,1.632,3.722,5.465,3.104,5.499,3.009,2.881,3.515,3.458,2.839,3.195,1.792,1.712,3.394,5.545,4.488,4.09,1.735,0.947,2.608,3.38,5.089,0.948,0.792,0.698,2.714,3.252,3.345,2.899,1.98,3.171,3.736,4.588,2.857,2.779,3.627,4.419,1.965,3.186,2.878,1.68,1.179,3.177,2.421,0.83,1.095,0.459,1.228,1.654,2.65,3.106,3.882,5.157,3.818,4.078,2.213,1.897,2.472,4.013,3.149,2.829,3.085,3.85,1.565,1.006,1.024,3.23,2.228,2.282,3.157,1.547,2.896,2.213,7.217,3.881,3.262,4.106,3.876,3.323,3.689,3.916,3.234,2.812,1.994,3.781,7.962,5.055,5.248,2.42,1.76,4.135,2.782,2.005,3.592,4.388,3.689,2.649,5.086,5.677,4.554,3.635,2.813,2.309,2.214,1.648,1.286,1.69,1.423,1.471,2.036,4.291,5.184,12.115,8.817,2.969,4.992,3.772,7.193,11.662,6.346,5.312,6.652,4.901,4.056,3.428,3.831,2.95,2.222,2.32,1.597,1.242,1.796,2.04,2.114,4.538,2.883,1.574,4.015,1.599,7.218,6.215,2.665,3.946,9.292,6.702,6.877,4.368,4.229,3.966,4.286,2.124,2.492,2.262,2.698,2.47,3.177,6.171,5.266,3.38,2.108,1.246,2.035,1.706,2.351,2.672,4.93,1.344,1.764,0.626,2.733,6.305,3.738,4.068,3.369,1.511,2.585,3.561,3.394,3.619,4.268,3.701,3.172,2.805,2.094,2.64,1.32,0.862,1.93,2.414,2.427,0.913,1.496,2.68,3.95,4.011,4.942,2.867,8.146,3.354,3.531,3.462,3.184,2.735,2.757,5.604,3.336,3.185,4.323,2.335,1.172,1.787,0.613,0.627,3.046,2.55,3.994,4.086,5.05,13.515,5.624,7.667,3.059,3.329,2.203,3.442,3.157,2.889,2.834,4.007,6.444,4.178,7.419,6.712,3.671,4.606,4.144,3.847,6.154,3.025,4.097,3.709,5.985,7.423,4.616,18.96,4.244,2.521,2.693,4.851,5.358,3.455,2.849,2.913,5.317,3.12,2.824,3.005,2.941,6.062,3.945,2.97,4.239,2.932,3.742,3.535,13.032,6.24,3.879,4.587,5.001,3.801,1.975,1.666,1.236,1.281,1.289,1.361,1.704,3.246,3.089,6.009,4.85,2.792,4.237,5.011,6.118,6.68,7.112,7.211,6.572,5.193,4.658,4.488,4.693],"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.745,24.825,25.92,27.612,29.528,32.46,34.821,37.04,39.394,40.52,41.22,41.752,42.539,43.42,44.371,45.325,45.877,47.173,47.782,48.998,50.67,54.777,57.909,60.597,63.884,67.304,69.897,72.892,75.023,77.659,80.05,82.325,83.72,84.817,85.679,86.593,87.301,87.977,88.696,89.412,90.817,92.602,93.281,94.202,95.296,96.088,100.19,101.157,103.711,106.712,108.882,111.28,112.992,114.467,116.632,117.54,118.315,118.965,119.591,120.47,121.4,122.149,123.453,125.163,126.091,127.6,128.313,129.267,129.797,130.718,131.178,131.848,131.971,132.206,132.758,134.488,136.074,137.756,139.211,140.697,141.93,143.05,143.827,144.893,145.94,146.909,148.03,149.457,151.534,152.281,152.648,153.102,153.911,154.919,155.918,157.124,157.857,158.727,160.709,163.356,166.597,168.535,169.644,170.853,171.866,173.289,174.415,175.661,176.784,177.841,179.134,183.833,185.075,186.459,189.878,190.985,191.565,192.51,193.385,194.521,194.961,195.511,196.556,197.845,199.884,205.739,207.491,208.653,209.661,210.689,212.264,213.551,214.728,215.825,216.94,219.309,220.53,222.353,223.266,223.813,225.862,227.771,229.358,230.942,231.224,231.807,233.162,235.608,237.271,239.214,240.518,241.323,242.201,243.019,244.131,244.534,245.344,246.182,248.165,249.507,250.399,251.604,251.996,252.444,253.151,253.655,254.442,255.498,255.989,256.602,257.589,259.605,261.792,263.834,265.329,266.65,267.596,268.475,269.163,269.718,270.237,270.75,271.293,272.319,273.064,274.681,275.348,276.007,277.227,278.624,283.051,285.97,288.42,290.5,292.968,295.732,297.95,299.587,301.182,302.809,303.877,304.604,305.405,306.153,306.662,307.158,308.164,308.752,309.319,309.781,310.235,310.795,311.308,312.415,317.256,318.748,320.601,325.653,328.619,331.79,334.359,336.137,337.466,338.781,339.832,340.912,341.98,343.287,344.34,345.357,346.437,349.228,350.534,352.527,353.948,354.785,355.484,356.355,357.602,361.051,362.564,364.322,365.892,368.394,370.506,372.406,377.203,378.251,379.726,380.657,381.596,382.795,383.956,385.136,386.394,387.724,388.539,389.173,390.38,391.187,392.317,393.132,394.831,396.532,398.296,402.158,404.279,407.11,410.803,414.184,417.844,422.856,424.447,425.164,425.977,427.172,428.265,429.488,430.779,432.751,433.646,434.441,434.955,435.615,436.246,436.945,437.97,439.683,441.17,442.747,443.835,446.271,449.252,451.75,453.932,456.481,457.816,458.871,460.528,461.787,462.906,463.966,465.106,466.468,468.868,470.398,470.954,471.572,472.071,473.469,474.812,475.485,475.909,476.485,477.472,479.744,482.333,484.95,486.565,487.965,489.592,491.135,492.123,493.294,494.349,495.844,496.932,497.961,499.746,502.087,504.101,505.47,506.851,508.0,508.866,510.829,511.808,512.726,514.348,516.869,518.84,520.716,523.171,524.317,526.143,527.06,528.005,528.807,529.452,530.067,530.737,531.504,533.108,533.837,534.709,535.59,536.451,539.628,541.025,542.722,544.24,547.068,549.333,551.299,553.302,555.56,557.287,558.238,559.028,559.919,560.758,561.393,561.97,562.663,562.663,562.663,562.663,562.663,562.663,562.663,562.663,562.663,562.663,562.663,562.663,562.663,562.663,562.663,562.663,564.951,567.33,569.266,570.27,571.789,573.204,574.888,576.438,577.908,580.919,583.804,584.974,585.866,587.727,589.322,590.345,592.163,595.697,597.723,598.815,599.858,600.668,602.489,605.21,606.788,609.588,611.082,612.47,614.031,615.549,616.789,618.199,619.01,619.825,621.528,624.368,626.7,628.808,629.715,630.259,631.645,633.434,636.105,636.599,637.01,637.369,638.745,640.348,641.953,643.32,644.227,645.617,647.297,649.222,650.402,651.618,653.318,655.512,656.517,658.151,659.621,660.497,661.236,662.918,664.281,664.781,665.375,665.624,666.288,667.183,668.618,670.301,672.402,675.175,677.217,679.392,680.529,681.528,682.818,684.943,686.648,688.21,689.918,692.058,692.916,693.496,694.077,695.818,697.023,698.253,699.944,700.77,702.316,703.499,707.365,709.466,711.243,713.448,715.477,717.14,718.789,720.454,721.745,722.845,723.616,725.106,728.51,730.724,733.152,734.467,735.316,737.352,738.729,739.71,741.437,743.534,745.285,746.532,748.894,751.481,753.549,755.189,756.418,757.396,758.31,758.979,759.465,760.079,760.583,761.159,762.002,763.728,765.734,770.265,773.746,775.006,777.203,778.917,782.286,787.812,790.825,793.345,796.493,798.78,800.639,802.196,803.886,805.138,806.027,806.895,807.479,807.915,808.535,809.226,809.956,811.573,812.615,813.292,814.826,815.497,818.596,821.344,822.664,824.466,828.734,831.746,834.761,836.655,838.504,840.237,842.075,842.973,844.043,844.948,845.974,846.942,848.243,851.003,853.502,855.202,856.256,857.034,858.033,858.999,860.229,861.566,864.048,864.744,865.633,866.058,867.424,870.551,872.399,874.415,876.057,876.775,877.895,879.367,880.702,882.117,883.795,885.299,886.635,887.855,888.788,889.917,890.493,891.071,892.183,893.328,894.488,894.925,895.64,896.917,898.799,900.713,903.097,904.477,908.263,909.744,911.208,912.571,913.796,914.839,915.882,918.052,919.402,920.743,922.57,923.603,924.217,925.115,925.924,926.698,928.194,929.451,931.429,933.462,935.968,942.658,945.448,949.225,950.664,952.147,953.056,954.434,955.64,956.712,957.781,959.361,962.066,963.939,967.401,970.557,972.336,974.525,976.528,978.403,981.381,982.826,984.755,986.481,989.239,992.648,994.777,1003.545,1005.436,1006.502,1007.596,1009.374,1011.284,1012.499,1013.51,1014.573,1016.595,1017.813,1018.899,1020.04,1021.23,1023.812,1025.55,1026.889,1028.833,1030.185,1031.903,1033.52,1039.469,1042.257,1043.982,1046.028,1048.243,1049.944,1050.834,1051.602,1052.172,1052.768,1053.36,1053.991,1054.77,1056.222,1057.552,1059.926,1061.851,1063.017,1064.847,1067.094,1069.934,1073.066,1076.407,1079.79,1082.848,1085.267,1087.457,1089.533,1091.638],"kpi":{"all_time_peak_average":0.958959,"annual_normalized_unserved_energy_total":0.01965,"carbon_emissions_total":0.945303,"cost_total":0.904463,"daily_one_minus_load_factor_average":0.961567,"daily_peak_average":0.907401,"discomfort_cold_delta_average":0.368852,"discomfort_cold_delta_maximum":2.424601,"discomfort_cold_delta_minimum":0.0,"discomfort_cold_proportion":0.026592,"discomfort_hot_delta_average":0.258349,"discomfort_hot_delta_maximum":5.163125,"discomfort_hot_delta_minimum":0.0,"discomfort_hot_proportion":0.012798,"discomfort_proportion":0.039389,"electricity_consumption_total":0.95466,"monthly_one_minus_load_factor_average":1.003547,"one_minus_thermal_resilience_proportion":0.369841,"power_outage_normalized_unserved_energy_total":0.684409,"ramping_average":0.996898,"zero_net_energy":0.953021},"run":"citylearn_challenge_2023_phase_2_local_evaluation_agent_citylearn_20261023T160151Z","steps":719},"agent_run":{"budget_stopped":false,"budget_usd":2.0,"calls":719,"clamped_hours":33,"cost_usd":0.4182,"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":-9.6,"discomfort_points":-13.2,"emissions_pct":-5.5,"text":"Cost down 9.6% and emissions down 5.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} From 3aba1a129db0de7c8497b07d2c7d7bf4502ff90f Mon Sep 17 00:00:00 2001 From: AddisonTech Date: Fri, 23 Oct 2026 12:35:10 -0400 Subject: [PATCH 4/4] Add 0.10.0 live results to README and CHANGELOG --- CHANGELOG.md | 68 +++++++++++++++++++++++++++++++++++++++++++- README.md | 80 ++++++++++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 141 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6a6267f..732770b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ ## 0.10.0 (2026-10-23) -Goal: find and close the gap between the 0.9.0 live agent and its own strategy, fix the hot-side comfort miss, and score everything on more than one month. The envelope does not change. No live model calls were made for this release. +Goal: find and close the gap between the 0.9.0 live agent and its own strategy, fix the hot-side comfort miss, and score everything on more than one month. The envelope does not change. The analysis, strategy and estimates below were built before any live call; the live months on all four months of the set follow them. Where the 0.9.0 live month (`runs/live/...20261023T135430Z`, cost 0.9245, discomfort 0.0940) left the scripted version 7 strategy (0.9016, 0.0430), from `scripts/analyze_deviations.py`: every hour, building and device against what `strategy_plan_v7` sends for the same observation, then the month's own replies replayed through the unchanged envelope with one class at a time put back to the strategy (the control replay reproduces the published KPIs exactly; shares are of the control to strategy gap): @@ -64,6 +64,72 @@ Estimates for a live v8 month (the 0.9.0 live replies with the version 8 strateg Request size and cost: a version 8 request averages 9,456 characters against 10,748 for version 7 over the same scripted month, 12.0 percent smaller (system prompt 3,645 against 4,780 characters, observation 153 shorter, reply schema unchanged). Scaled from the 0.9.0 live month (5,185 input and 245 output tokens per call, $0.4607), a Haiku month should cost about $0.42 ($0.4159 at the same reply length, $0.4379 if replies run 25 percent longer); the hard worst case is $0.95 for 719 hours and $0.98 for 743. Live Haiku months on all four months (2,924 hours) should cost about $1.69 to $1.78 in all, each under its own $2.00 cap. +Live runs (`claude-haiku-5-5`, prompt version 8, $2.00 budget each): phase 2 (run 20261023T160151Z, 719 hours), June (20261023T160150Z, 719), July (20261023T160200Z, 743) and August (20261023T160206Z, 743), scored with `hyperbolic months --run` against the baseline, the 0.4.0 rule-based controller (run 20261022T162847Z on phase 2) and scripted v8 on the same month: + +| KPI | | phase 2 | June | July | August | mean | +|---|---|---|---|---|---|---| +| cost_total | baseline | 1.0000 | 1.0000 | 1.0000 | 1.0000 | 1.0000 | +| | rule 0.4.0 | 0.9611 | 0.9506 | 0.9676 | 0.9682 | 0.9619 | +| | v8 scripted | 0.9031 | 0.9099 | 0.9193 | 0.9023 | 0.9087 | +| | Haiku v8 | 0.9045 | 0.9147 | 0.9228 | 0.9070 | 0.9122 | +| carbon_emissions_total | baseline | 1.0000 | 1.0000 | 1.0000 | 1.0000 | 1.0000 | +| | rule 0.4.0 | 0.9947 | 1.0001 | 1.0038 | 1.0024 | 1.0002 | +| | v8 scripted | 0.9447 | 0.9654 | 0.9703 | 0.9524 | 0.9582 | +| | Haiku v8 | 0.9453 | 0.9691 | 0.9731 | 0.9559 | 0.9609 | +| electricity_consumption_total | baseline | 1.0000 | 1.0000 | 1.0000 | 1.0000 | 1.0000 | +| | rule 0.4.0 | 1.0073 | 1.0065 | 1.0060 | 1.0071 | 1.0067 | +| | v8 scripted | 0.9540 | 0.9699 | 0.9717 | 0.9549 | 0.9626 | +| | Haiku v8 | 0.9547 | 0.9733 | 0.9744 | 0.9583 | 0.9652 | +| discomfort_proportion | baseline | 0.1714 | 0.1128 | 0.0645 | 0.1919 | 0.1352 | +| | rule 0.4.0 | 0.1714 | 0.1128 | 0.0645 | 0.1919 | 0.1352 | +| | v8 scripted | 0.0374 | 0.0174 | 0.0073 | 0.0210 | 0.0208 | +| | Haiku v8 | 0.0394 | 0.0207 | 0.0114 | 0.0251 | 0.0241 | +| too cool | baseline | 0.1538 | 0.0602 | 0.0614 | 0.1902 | 0.1164 | +| | rule 0.4.0 | 0.1538 | 0.0602 | 0.0614 | 0.1902 | 0.1164 | +| | v8 scripted | 0.0258 | 0.0069 | 0.0057 | 0.0210 | 0.0149 | +| | Haiku v8 | 0.0266 | 0.0088 | 0.0098 | 0.0251 | 0.0176 | +| too warm | baseline | 0.0176 | 0.0526 | 0.0031 | 0.0017 | 0.0188 | +| | rule 0.4.0 | 0.0176 | 0.0526 | 0.0031 | 0.0017 | 0.0188 | +| | v8 scripted | 0.0116 | 0.0104 | 0.0016 | 0.0000 | 0.0059 | +| | Haiku v8 | 0.0128 | 0.0118 | 0.0016 | 0.0000 | 0.0066 | +| ramping_average | baseline | 1.0000 | 1.0000 | 1.0000 | 1.0000 | 1.0000 | +| | rule 0.4.0 | 1.1309 | 1.0742 | 1.0922 | 1.0848 | 1.0955 | +| | v8 scripted | 0.9983 | 0.9732 | 0.9677 | 1.0100 | 0.9873 | +| | Haiku v8 | 0.9969 | 0.9802 | 0.9744 | 1.0157 | 0.9918 | +| daily_peak_average | baseline | 1.0000 | 1.0000 | 1.0000 | 1.0000 | 1.0000 | +| | rule 0.4.0 | 0.9978 | 0.9934 | 0.9743 | 0.9734 | 0.9847 | +| | v8 scripted | 0.9095 | 0.8830 | 0.8854 | 0.8861 | 0.8910 | +| | Haiku v8 | 0.9074 | 0.8919 | 0.8943 | 0.8896 | 0.8958 | +| all_time_peak_average | baseline | 1.0000 | 1.0000 | 1.0000 | 1.0000 | 1.0000 | +| | rule 0.4.0 | 1.0000 | 1.0000 | 1.0000 | 0.9383 | 0.9846 | +| | v8 scripted | 0.9588 | 0.8541 | 0.8491 | 0.8570 | 0.8797 | +| | Haiku v8 | 0.9590 | 0.8549 | 0.8822 | 0.8940 | 0.8975 | +| daily_one_minus_load_factor_average | baseline | 1.0000 | 1.0000 | 1.0000 | 1.0000 | 1.0000 | +| | rule 0.4.0 | 0.9913 | 0.9834 | 0.9791 | 0.9867 | 0.9851 | +| | v8 scripted | 0.9639 | 0.9490 | 0.9520 | 0.9546 | 0.9549 | +| | Haiku v8 | 0.9616 | 0.9534 | 0.9564 | 0.9514 | 0.9557 | +| unserved energy in outages | baseline | 0.6844 | 0.0000 | 0.0000 | 0.0000 | 0.1711 | +| | rule 0.4.0 | 0.6844 | 0.0000 | 0.0000 | 0.0000 | 0.1711 | +| | v8 scripted | 0.6844 | 0.0000 | 0.0000 | 0.0000 | 0.1711 | +| | Haiku v8 | 0.6844 | 0.0000 | 0.0000 | 0.0000 | 0.1711 | +| clamped hours | baseline | 0 | 0 | 0 | 0 | 0.0 | +| | rule 0.4.0 | 1 | 1 | 0 | 0 | 0.5 | +| | v8 scripted | 22 | 32 | 10 | 3 | 16.8 | +| | Haiku v8 | 33 | 39 | 14 | 17 | 25.8 | +| model cost | Haiku v8 | $0.4182 | $0.4118 | $0.4229 | $0.4288 | $0.4204 | + +Thermal resilience is scored only on phase 2, where all four controllers tie at 0.3698. + +- **Haiku v8 beats the 0.4.0 rule-based controller on every KPI in every one of the four months**, with unserved energy in outages tied (0.9.0 live trailed it on hot-side discomfort). +- **Too-warm discomfort is now below the baseline in every month**; the v7 strategy was above it in every month. +- **Phase 2 against 0.9.0 live:** cost 0.9045 against 0.9245, discomfort 0.0394 against 0.0940, too warm 0.0128 against 0.0181, ramping 0.9969 against 0.9864, clamped hours 33 against 27. +- **The best live run so far on cost, emissions, grid import, discomfort, too warm and the daily peak** (phase 2). Not on the all-time peak (0.9.0 live: 0.9412), ramping (0.9.0 live: 0.9864) or load factor (0.4.0 live: 0.9559). +- **The agent now follows its strategy closely:** Haiku runs within about 0.004 of the v8 scripted strategy on mean cost (0.9122 against 0.9087; 0.0013 to 0.0048 by month). +- **The one KPI over the baseline is August ramping** (1.0157), where the v8 scripted strategy is also over (1.0100): a strategy limit, not an agent deviation. +- **Phase 2 is no longer a clean holdout**, because the outage exception and the selection rule were set after looking at it; the three tuning months are the cleaner evidence. +- 2,924 calls, 0 fallbacks, $1.6817 in all ($0.4182, $0.4118, $0.4229, $0.4288), and every run replays all its hours identically with 0 API calls. +- The published viewer (`docs/data`) now shows the 0.10.0 phase 2 live run in place of 0.9.0 (cost down 9.6 percent, emissions down 5.5 percent). Phase 2 stays the published month so the viewer stays comparable with earlier releases. + ## 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. diff --git a/README.md b/README.md index 31ecdfc..4dd4015 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.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)). +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.10.0 Haiku run on the phase 2 month (see [Version 0.10.0](#version-0100)). It replaces the 0.9.0 live run there; the phase 2 month stays the published one so the page stays comparable with earlier releases. 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). @@ -426,7 +426,7 @@ On the tuning months (mean of three) the v7 scripted strategy scores cost 0.9086 ### Version 0.10.0 -**Goal:** find and close the gap between the 0.9.0 live agent (cost 0.9245, discomfort 0.0940) and the strategy it is given (scripted v7: 0.9016 and 0.0430), fix the hot-side comfort miss, and score everything on more than one month. The envelope is identical to 0.9.0. No live model calls were made for this release: everything here is measured on recorded runs and offline controllers, and the live months are still to run. +**Goal:** find and close the gap between the 0.9.0 live agent (cost 0.9245, discomfort 0.0940) and the strategy it is given (scripted v7: 0.9016 and 0.0430), fix the hot-side comfort miss, and score everything on more than one month. The envelope is identical to 0.9.0. The analysis, the strategy and the estimates below were built from recorded runs and offline controllers before any live call; the live months on all four months of the set follow them. **Where the live agent left its strategy.** `scripts/analyze_deviations.py` compares every hour, building and device of the 0.9.0 live month with what the scripted version 7 strategy sends for the very observation the model saw (within 0.002 for cooling, 0.005 for storage), sorts each departure into one class, and then replays the month's own replies through the unchanged envelope with one class at a time put back to the strategy's action. The control replay reproduces the published KPIs exactly. Shares are of the control to strategy gap; the classes interact, so they need not add up. @@ -493,10 +493,77 @@ On the tuning months (mean of three) the v7 scripted strategy scores cost 0.9086 | Scripted v8 | 0.9031 | 0.9447 | 0.0374 (0.0258, 0.0116) | 0.9983 | 0.9095 | 0.9588 | 22 | - If Haiku sends `strategy.cooling` as it sent `strategy_battery`, a live v8 month should land near the scripted v8 strategy: cost about 0.903, discomfort about 0.037 and too warm below the baseline. If it starts the trims but keeps its own deeper ones, cost could go lower (toward 0.892) with more ramping and the hot-side miss back. Following the strategy's cooling gives back the all-time peak the live agent's own cooling choices had won (0.9588 against 0.9412). -- **Only live runs can show** whether Haiku sends the strategy's cooling numbers as given, whether it keeps its battery discipline with the new wording, how far it goes its own way on trims, and how the rooms then evolve; and on the tuning months, how a live agent compares at all, since none has run there. +- **Only live runs can show** whether Haiku sends the strategy's cooling numbers as given, whether it keeps its battery discipline with the new wording, how far it goes its own way on trims, and how the rooms then evolve; and on the tuning months, how a live agent compares at all, since none had run there before this release. **Request size and cost.** A version 8 request averages 9,456 characters against 10,748 for version 7 over the same scripted month, 12.0 percent smaller: the system prompt is 3,645 characters against 4,780, the observation 153 shorter, and the reply schema unchanged. Scaled from the 0.9.0 live month (5,185 input and 245 output tokens per call, $0.4607), a Haiku month should cost about $0.42 ($0.4159 at the same reply length, $0.4379 if replies run 25 percent longer). The hard worst case is $0.95 for 719 hours and $0.98 for 743 hours, under the $2.00 cap. Live Haiku months on all four months of the set (2,924 hours) should cost about $1.69 to $1.78 in all, each month under its own $2.00 cap. +**Live results.** Four live runs (`claude-haiku-5-5`, prompt version 8, $2.00 budget each): the phase 2 month (run 20261023T160151Z, 719 hours) and tuning June (20261023T160150Z, 719 hours), July (20261023T160200Z, 743 hours) and August (20261023T160206Z, 743 hours), each scored by `hyperbolic months --run` against the baseline, the 0.4.0 rule-based controller (run 20261022T162847Z on the phase 2 month) and the scripted v8 strategy on the same month: + +| CityLearn KPI (district) | | phase 2 | tuning June | tuning July | tuning August | mean | +|---|---|---|---|---|---|---| +| cost_total | baseline | 1.0000 | 1.0000 | 1.0000 | 1.0000 | 1.0000 | +| | 0.4.0 rule-based | 0.9611 | 0.9506 | 0.9676 | 0.9682 | 0.9619 | +| | v8 scripted | 0.9031 | 0.9099 | 0.9193 | 0.9023 | 0.9087 | +| | **Haiku v8** | **0.9045** | **0.9147** | **0.9228** | **0.9070** | **0.9122** | +| carbon_emissions_total | baseline | 1.0000 | 1.0000 | 1.0000 | 1.0000 | 1.0000 | +| | 0.4.0 rule-based | 0.9947 | 1.0001 | 1.0038 | 1.0024 | 1.0002 | +| | v8 scripted | 0.9447 | 0.9654 | 0.9703 | 0.9524 | 0.9582 | +| | **Haiku v8** | **0.9453** | **0.9691** | **0.9731** | **0.9559** | **0.9609** | +| electricity_consumption_total | baseline | 1.0000 | 1.0000 | 1.0000 | 1.0000 | 1.0000 | +| | 0.4.0 rule-based | 1.0073 | 1.0065 | 1.0060 | 1.0071 | 1.0067 | +| | v8 scripted | 0.9540 | 0.9699 | 0.9717 | 0.9549 | 0.9626 | +| | **Haiku v8** | **0.9547** | **0.9733** | **0.9744** | **0.9583** | **0.9652** | +| discomfort_proportion | baseline | 0.1714 | 0.1128 | 0.0645 | 0.1919 | 0.1352 | +| | 0.4.0 rule-based | 0.1714 | 0.1128 | 0.0645 | 0.1919 | 0.1352 | +| | v8 scripted | 0.0374 | 0.0174 | 0.0073 | 0.0210 | 0.0208 | +| | **Haiku v8** | **0.0394** | **0.0207** | **0.0114** | **0.0251** | **0.0241** | +| too cool (discomfort_cold_proportion) | baseline | 0.1538 | 0.0602 | 0.0614 | 0.1902 | 0.1164 | +| | 0.4.0 rule-based | 0.1538 | 0.0602 | 0.0614 | 0.1902 | 0.1164 | +| | v8 scripted | 0.0258 | 0.0069 | 0.0057 | 0.0210 | 0.0149 | +| | **Haiku v8** | **0.0266** | **0.0088** | **0.0098** | **0.0251** | **0.0176** | +| too warm (discomfort_hot_proportion) | baseline | 0.0176 | 0.0526 | 0.0031 | 0.0017 | 0.0188 | +| | 0.4.0 rule-based | 0.0176 | 0.0526 | 0.0031 | 0.0017 | 0.0188 | +| | v8 scripted | 0.0116 | 0.0104 | 0.0016 | 0.0000 | 0.0059 | +| | **Haiku v8** | **0.0128** | **0.0118** | **0.0016** | **0.0000** | **0.0066** | +| ramping_average | baseline | 1.0000 | 1.0000 | 1.0000 | 1.0000 | 1.0000 | +| | 0.4.0 rule-based | 1.1309 | 1.0742 | 1.0922 | 1.0848 | 1.0955 | +| | v8 scripted | 0.9983 | 0.9732 | 0.9677 | 1.0100 | 0.9873 | +| | **Haiku v8** | **0.9969** | **0.9802** | **0.9744** | **1.0157** | **0.9918** | +| daily_peak_average | baseline | 1.0000 | 1.0000 | 1.0000 | 1.0000 | 1.0000 | +| | 0.4.0 rule-based | 0.9978 | 0.9934 | 0.9743 | 0.9734 | 0.9847 | +| | v8 scripted | 0.9095 | 0.8830 | 0.8854 | 0.8861 | 0.8910 | +| | **Haiku v8** | **0.9074** | **0.8919** | **0.8943** | **0.8896** | **0.8958** | +| all_time_peak_average | baseline | 1.0000 | 1.0000 | 1.0000 | 1.0000 | 1.0000 | +| | 0.4.0 rule-based | 1.0000 | 1.0000 | 1.0000 | 0.9383 | 0.9846 | +| | v8 scripted | 0.9588 | 0.8541 | 0.8491 | 0.8570 | 0.8797 | +| | **Haiku v8** | **0.9590** | **0.8549** | **0.8822** | **0.8940** | **0.8975** | +| daily_one_minus_load_factor_average | baseline | 1.0000 | 1.0000 | 1.0000 | 1.0000 | 1.0000 | +| | 0.4.0 rule-based | 0.9913 | 0.9834 | 0.9791 | 0.9867 | 0.9851 | +| | v8 scripted | 0.9639 | 0.9490 | 0.9520 | 0.9546 | 0.9549 | +| | **Haiku v8** | **0.9616** | **0.9534** | **0.9564** | **0.9514** | **0.9557** | +| power_outage_normalized_unserved_energy_total | baseline | 0.6844 | 0.0000 | 0.0000 | 0.0000 | 0.1711 | +| | 0.4.0 rule-based | 0.6844 | 0.0000 | 0.0000 | 0.0000 | 0.1711 | +| | v8 scripted | 0.6844 | 0.0000 | 0.0000 | 0.0000 | 0.1711 | +| | **Haiku v8** | **0.6844** | **0.0000** | **0.0000** | **0.0000** | **0.1711** | +| Clamped hours | baseline | 0 | 0 | 0 | 0 | 0.0 | +| | 0.4.0 rule-based | 1 | 1 | 0 | 0 | 0.5 | +| | v8 scripted | 22 | 32 | 10 | 3 | 16.8 | +| | **Haiku v8** | **33** | **39** | **14** | **17** | **25.8** | +| Model cost | **Haiku v8** | **$0.4182** | **$0.4118** | **$0.4229** | **$0.4288** | **$0.4204** | + +Thermal resilience is scored only where there are outages: on the phase 2 month all four controllers tie at 0.3698. + +- **Haiku v8 beats the 0.4.0 rule-based controller on every KPI in every one of the four months**, with unserved energy in outages tied. In 0.9.0 the live agent trailed it on hot-side discomfort. +- **Too-warm discomfort is now below the baseline in every month** (0.0128 against 0.0176 on phase 2, 0.0118 against 0.0526 in June, 0.0016 against 0.0031 in July, 0.0000 against 0.0017 in August). The v7 strategy was above the baseline in every month. +- **On the phase 2 month against 0.9.0 live:** cost 0.9045 against 0.9245, discomfort 0.0394 against 0.0940, too warm 0.0128 against 0.0181, ramping 0.9969 against 0.9864, clamped hours 33 against 27. It gives back a little ramping and a few clamped hours for a large gain in cost and comfort. +- **It is the best live run so far on cost, emissions, grid import, discomfort, too warm and the daily peak** (phase 2: 0.9045, 0.9453, 0.9547, 0.0394, 0.0128 and 0.9074, against 0.8.0 live's 0.9190 and 0.9610, 0.7.0 live's 0.9684 and 0.0741, 0.8.0 live's 0.0168 and 0.9.0 live's 0.9182). It is not the best on the all-time peak (0.9.0 live: 0.9412), ramping (0.9.0 live: 0.9864) or load factor (0.4.0 live: 0.9559). +- **The agent now follows its strategy closely.** Haiku runs within about 0.004 of the v8 scripted strategy on mean cost (0.9122 against 0.9087; 0.0013 to 0.0048 by month), where 0.9.0 live sat 0.0229 above the v7 strategy on the phase 2 month. +- **The one KPI over the baseline is August ramping** (1.0157), where the v8 scripted strategy is also over (1.0100). It is a strategy limit, not an agent deviation. +- **Phase 2 is no longer a clean holdout.** The outage exception in the warm-room cooling and the selection rule were set after looking at the phase 2 month, so the three tuning months are the cleaner evidence. They tell the same story: below the rule-based controller on every KPI and within 0.005 of the scripted strategy on cost. +- 0 fallbacks in all four months. The four runs cost $1.6817 in all ($0.4204 a month on average, against the $0.42 estimate), each well under its $2.00 budget, and each replays every hour identically with 0 API calls (719, 719, 743 and 743 of their hours). + +**The published viewer now shows the 0.10.0 phase 2 live run** in place of 0.9.0 (the page's headline: cost down 9.6 percent, emissions down 5.5 percent at equal or better comfort). The phase 2 month stays the published one so the page stays comparable with earlier releases. + ## What the agent sees Prompt version 8 (`hyperbolic/prompt.py`) is the default from 0.10.0. It keeps everything in version 7 and: @@ -590,7 +657,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): 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: the 0.9.0 live Haiku month cost 0.46 USD (5,185 input and 245 output tokens per call). Prompt version 8 shows the strategy's whole action and is 12.0 percent smaller again, about 9,460 characters: a Haiku month should cost about 0.42 USD, against a hard worst case of about 0.95 USD (0.98 USD for a 743 hour tuning month). 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: the 0.9.0 live Haiku month cost 0.46 USD (5,185 input and 245 output tokens per call). Prompt version 8 shows the strategy's whole action and is 12.0 percent smaller again, about 9,460 characters: the 0.10.0 live Haiku months cost 0.41 to 0.43 USD, against a hard worst case of about 0.95 USD (0.98 USD for a 743 hour tuning month). 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 @@ -674,13 +741,14 @@ CI (GitHub Actions) runs the tests on Python 3.10 and 3.12 with CPU-only torch, ## 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. 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 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. In 0.10.0 it beat it on every KPI in every one of the four months of the month set, with unserved energy in outages tied. 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 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. In the 0.9.0 live month the agent sent `strategy_battery` in 2,150 of 2,157 building-hours but started almost none of the trims the strategy calls for, so version 8 shows the cooling as a number too. 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.10.0 estimates are not live results.** They fill the version 8 strategy into the 0.9.0 live replies, which were written for the version 7 prompt and cannot react to what changed. The month set's scripted columns are not model results either, and no live run has been made on a tuning month yet. +- **The 0.10.0 estimates are not live results.** They fill the version 8 strategy into the 0.9.0 live replies, which were written for the version 7 prompt and cannot react to what changed. The month set's scripted columns are not model results either. The live months that followed came in close to the scripted v8 strategy (mean cost 0.9122 against 0.9087). +- **The phase 2 month is no longer a clean holdout.** The warm-room cooling's outage exception and the selection rule were set after looking at it, so from 0.10.0 the three tuning months are the cleaner evidence. - **The warm-room cooling rests on CityLearn's LSTM.** It answers a mechanism seen in the simulator: a trimmed room loses the baseline's cushion and a hot morning or an outage carries it over the band. On the tuning months it removed 80 percent of the strategy's too-warm hours for about 0.002 of cost. - **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.