{
  "trace": {
    "last_step": "sequence/7",
    "run_id": "c243d37c2b930efe99a1f1ed32605d8a",
    "state": "stopped",
    "script_execution": "finished",
    "timestamp": {
      "start": "2025-11-23T08:57:37.319928+00:00",
      "finish": "2025-11-23T08:57:43.275851+00:00"
    },
    "domain": "script",
    "item_id": "generate_emhass_energy_plan_mpc",
    "trace": {
      "sequence/0": [
        {
          "path": "sequence/0",
          "timestamp": "2025-11-23T08:57:37.320295+00:00",
          "changed_variables": {
            "this": {
              "entity_id": "script.generate_emhass_energy_plan_mpc",
              "state": "off",
              "attributes": {
                "last_triggered": "2025-11-23T08:55:35.511253+00:00",
                "mode": "single",
                "current": 0,
                "friendly_name": "Generate EMHASS Energy Plan (MPC)"
              },
              "last_changed": "2025-11-23T08:57:34.276144+00:00",
              "last_reported": "2025-11-23T08:57:34.276144+00:00",
              "last_updated": "2025-11-23T08:57:34.276144+00:00",
              "context": {
                "id": "01KAQYXKA4A67XBJYDAASKM1JV",
                "parent_id": null,
                "user_id": null
              }
            },
            "context": {
              "id": "01KAQYXP97PKKKAQ4NC93APCPM",
              "parent_id": null,
              "user_id": "d8ed6ce3e54a42a2b58cf041b9706ccd"
            },
            "costfun": "profit",
            "maximum_power_from_grid": 30000,
            "maximum_power_to_grid": 30000,
            "battery_minimum_percent": 0
          }
        }
      ],
      "sequence/1": [
        {
          "path": "sequence/1",
          "timestamp": "2025-11-23T08:57:37.320380+00:00",
          "changed_variables": {
            "num_prediction_days": 2,
            "optimization_time_step": 5,
            "weight_battery_charge": 0.02,
            "weight_battery_discharge": 0.02,
            "sensor_prefix": "mpc_",
            "sensor_name_prefix": "MPC "
          }
        }
      ],
      "sequence/2": [
        {
          "path": "sequence/2",
          "timestamp": "2025-11-23T08:57:37.320437+00:00",
          "changed_variables": {
            "sensors": {
              "energy_capacity": "sensor.sigen_plant_rated_energy_capacity",
              "charging_power": "sensor.sigen_plant_ess_rated_charging_power",
              "discharging_power": "sensor.sigen_plant_ess_rated_discharging_power",
              "max_inverter_power": "sensor.sigen_plant_max_active_power",
              "battery_soc": "sensor.sigen_plant_battery_state_of_charge",
              "consumed_power": "sensor.sigen_plant_consumed_power",
              "solar": {
                "current_power": "sensor.sigen_plant_pv_power",
                "forecasts": [
                  "sensor.solcast_pv_forecast_forecast_today",
                  "sensor.solcast_pv_forecast_forecast_tomorrow",
                  "sensor.solcast_pv_forecast_forecast_day_3"
                ]
              },
              "amber": {
                "general_price": "sensor.home_general_price",
                "general_forecast": "sensor.home_general_forecast",
                "feed_in_price": "sensor.home_feed_in_price",
                "feed_in_forecast": "sensor.home_feed_in_forecast"
              }
            }
          }
        }
      ],
      "sequence/3": [
        {
          "path": "sequence/3",
          "timestamp": "2025-11-23T08:57:37.320481+00:00",
          "changed_variables": {
            "history": {
              "statistics": {
                "sensor.sigen_plant_consumed_power": [
                  {
                    "start": "2025-11-22T09:00:00+00:00",
                    "end": "2025-11-22T10:00:00+00:00",
                    "mean": 2.3841708570299995
                  },
                  {
                    "start": "2025-11-22T10:00:00+00:00",
                    "end": "2025-11-22T11:00:00+00:00",
                    "mean": 1.556615987105
                  },
                  {
                    "start": "2025-11-22T11:00:00+00:00",
                    "end": "2025-11-22T12:00:00+00:00",
                    "mean": 1.8659062276216665
                  },
                  {
                    "start": "2025-11-22T12:00:00+00:00",
                    "end": "2025-11-22T13:00:00+00:00",
                    "mean": 1.3031602064144445
                  },
                  {
                    "start": "2025-11-22T13:00:00+00:00",
                    "end": "2025-11-22T14:00:00+00:00",
                    "mean": 0.8624122103877777
                  },
                  {
                    "start": "2025-11-22T14:00:00+00:00",
                    "end": "2025-11-22T15:00:00+00:00",
                    "mean": 1.5851629952627777
                  },
                  {
                    "start": "2025-11-22T15:00:00+00:00",
                    "end": "2025-11-22T16:00:00+00:00",
                    "mean": 1.2202648717477778
                  },
                  {
                    "start": "2025-11-22T16:00:00+00:00",
                    "end": "2025-11-22T17:00:00+00:00",
                    "mean": 0.700110341566389
                  },
                  {
                    "start": "2025-11-22T17:00:00+00:00",
                    "end": "2025-11-22T18:00:00+00:00",
                    "mean": 0.6004815361577778
                  },
                  {
                    "start": "2025-11-22T18:00:00+00:00",
                    "end": "2025-11-22T19:00:00+00:00",
                    "mean": 0.6506967946180555
                  },
                  {
                    "start": "2025-11-22T19:00:00+00:00",
                    "end": "2025-11-22T20:00:00+00:00",
                    "mean": 0.6420206772402778
                  },
                  {
                    "start": "2025-11-22T20:00:00+00:00",
                    "end": "2025-11-22T21:00:00+00:00",
                    "mean": 1.0239288632530354
                  },
                  {
                    "start": "2025-11-22T21:00:00+00:00",
                    "end": "2025-11-22T22:00:00+00:00",
                    "mean": 3.0796328953966667
                  },
                  {
                    "start": "2025-11-22T22:00:00+00:00",
                    "end": "2025-11-22T23:00:00+00:00",
                    "mean": 3.274849237741389
                  },
                  {
                    "start": "2025-11-22T23:00:00+00:00",
                    "end": "2025-11-23T00:00:00+00:00",
                    "mean": 2.910728840949167
                  },
                  {
                    "start": "2025-11-23T00:00:00+00:00",
                    "end": "2025-11-23T01:00:00+00:00",
                    "mean": 2.544147299298333
                  },
                  {
                    "start": "2025-11-23T01:00:00+00:00",
                    "end": "2025-11-23T02:00:00+00:00",
                    "mean": 5.4826406354727775
                  },
                  {
                    "start": "2025-11-23T02:00:00+00:00",
                    "end": "2025-11-23T03:00:00+00:00",
                    "mean": 1.802770600671389
                  },
                  {
                    "start": "2025-11-23T03:00:00+00:00",
                    "end": "2025-11-23T04:00:00+00:00",
                    "mean": 3.868225446640556
                  },
                  {
                    "start": "2025-11-23T04:00:00+00:00",
                    "end": "2025-11-23T05:00:00+00:00",
                    "mean": 4.1071914237477785
                  },
                  {
                    "start": "2025-11-23T05:00:00+00:00",
                    "end": "2025-11-23T06:00:00+00:00",
                    "mean": 3.0741100296430557
                  },
                  {
                    "start": "2025-11-23T06:00:00+00:00",
                    "end": "2025-11-23T07:00:00+00:00",
                    "mean": 4.098359560066111
                  },
                  {
                    "start": "2025-11-23T07:00:00+00:00",
                    "end": "2025-11-23T08:00:00+00:00",
                    "mean": 3.4936065736872215
                  }
                ]
              }
            }
          },
          "result": {
            "params": {
              "domain": "recorder",
              "service": "get_statistics",
              "service_data": {
                "start_time": "2025-11-22T19:57:37.320598+11:00",
                "end_time": "2025-11-23T19:57:37.320700+11:00",
                "statistic_ids": "sensor.sigen_plant_consumed_power",
                "period": "hour",
                "types": "mean"
              },
              "target": {}
            },
            "running_script": false
          }
        }
      ],
      "sequence/4": [
        {
          "path": "sequence/4",
          "timestamp": "2025-11-23T08:57:37.322709+00:00",
          "changed_variables": {
            "num_forecasts": 576,
            "soc_init": 0.634,
            "soc_final": 0,
            "now_iso": "2025-11-23T19:57:37+11:00",
            "max_inverter_power": 29999,
            "common": {
              "costfun": "profit",
              "prediction_horizon": 576,
              "optimization_time_step": 5,
              "delta_forecast_daily": 2,
              "set_use_pv": true,
              "set_use_battery": true,
              "inverter_is_hybrid": true,
              "number_of_deferrable_loads": 0,
              "set_nodischarge_to_grid": false
            },
            "payload": {
              "weight_battery_charge": 0.02,
              "weight_battery_discharge": 0.02,
              "battery_minimum_state_of_charge": 0,
              "battery_maximum_state_of_charge": 1,
              "battery_nominal_energy_capacity": 48360,
              "battery_charge_power_max": 25200,
              "battery_discharge_power_max": 28800,
              "maximum_power_from_grid": 30000,
              "maximum_power_to_grid": 30000,
              "inverter_ac_output_max": 29999,
              "inverter_ac_input_max": 29999,
              "soc_init": 0.634,
              "soc_final": 0,
              "load_cost_forecast": {
                "2025-11-23T19:57:37+11:00": 0.58,
                "2025-11-23T20:00:01+11:00": 0.56,
                "2025-11-23T20:30:01+11:00": 0.57,
                "2025-11-23T21:00:01+11:00": 0.36,
                "2025-11-23T21:30:01+11:00": 0.26,
                "2025-11-23T22:00:01+11:00": 0.27,
                "2025-11-23T22:30:01+11:00": 0.23,
                "2025-11-23T23:00:01+11:00": 0.25,
                "2025-11-23T23:30:01+11:00": 0.23,
                "2025-11-24T00:00:01+11:00": 0.2,
                "2025-11-24T00:30:01+11:00": 0.21,
                "2025-11-24T01:00:01+11:00": 0.22,
                "2025-11-24T01:30:01+11:00": 0.19,
                "2025-11-24T02:00:01+11:00": 0.19,
                "2025-11-24T02:30:01+11:00": 0.18,
                "2025-11-24T03:00:01+11:00": 0.17,
                "2025-11-24T03:30:01+11:00": 0.17,
                "2025-11-24T04:00:01+11:00": 0.17,
                "2025-11-24T04:30:01+11:00": 0.17,
                "2025-11-24T05:00:01+11:00": 0.18,
                "2025-11-24T05:30:01+11:00": 0.19,
                "2025-11-24T06:00:01+11:00": 0.22,
                "2025-11-24T06:30:01+11:00": 0.17,
                "2025-11-24T07:00:01+11:00": 0.14,
                "2025-11-24T07:30:01+11:00": 0.1,
                "2025-11-24T08:00:01+11:00": 0.1,
                "2025-11-24T08:30:01+11:00": 0.09,
                "2025-11-24T09:00:01+11:00": 0.09,
                "2025-11-24T09:30:01+11:00": 0.08,
                "2025-11-24T10:00:01+11:00": 0.08,
                "2025-11-24T10:30:01+11:00": 0.08,
                "2025-11-24T11:00:01+11:00": 0.08,
                "2025-11-24T11:30:01+11:00": 0.08,
                "2025-11-24T12:00:01+11:00": 0.08,
                "2025-11-24T12:30:01+11:00": 0.08,
                "2025-11-24T13:00:01+11:00": 0.09,
                "2025-11-24T13:30:01+11:00": 0.12,
                "2025-11-24T14:00:01+11:00": 0.12,
                "2025-11-24T14:30:01+11:00": 0.12,
                "2025-11-24T15:00:01+11:00": 0.38,
                "2025-11-24T15:30:01+11:00": 0.38,
                "2025-11-24T16:00:01+11:00": 0.36,
                "2025-11-24T16:30:01+11:00": 0.36,
                "2025-11-24T17:00:01+11:00": 0.36,
                "2025-11-24T17:30:01+11:00": 0.37,
                "2025-11-24T18:00:01+11:00": 0.37,
                "2025-11-24T18:30:01+11:00": 0.44,
                "2025-11-24T19:00:01+11:00": 0.47,
                "2025-11-24T19:30:01+11:00": 0.47,
                "2025-11-24T20:00:01+11:00": 0.56,
                "2025-11-24T20:30:01+11:00": 0.57,
                "2025-11-24T21:00:01+11:00": 0.36,
                "2025-11-24T21:30:01+11:00": 0.26,
                "2025-11-24T22:00:01+11:00": 0.27,
                "2025-11-24T22:30:01+11:00": 0.23,
                "2025-11-24T23:00:01+11:00": 0.25,
                "2025-11-24T23:30:01+11:00": 0.23,
                "2025-11-25T00:00:01+11:00": 0.2,
                "2025-11-25T00:30:01+11:00": 0.21,
                "2025-11-25T01:00:01+11:00": 0.22,
                "2025-11-25T01:30:01+11:00": 0.19,
                "2025-11-25T02:00:01+11:00": 0.19,
                "2025-11-25T02:30:01+11:00": 0.18,
                "2025-11-25T03:00:01+11:00": 0.17,
                "2025-11-25T03:30:01+11:00": 0.17,
                "2025-11-25T04:00:01+11:00": 0.17,
                "2025-11-25T04:30:01+11:00": 0.17,
                "2025-11-25T05:00:01+11:00": 0.18,
                "2025-11-25T05:30:01+11:00": 0.19,
                "2025-11-25T06:00:01+11:00": 0.22,
                "2025-11-25T06:30:01+11:00": 0.17,
                "2025-11-25T07:00:01+11:00": 0.14,
                "2025-11-25T07:30:01+11:00": 0.1,
                "2025-11-25T08:00:01+11:00": 0.1,
                "2025-11-25T08:30:01+11:00": 0.09,
                "2025-11-25T09:00:01+11:00": 0.09,
                "2025-11-25T09:30:01+11:00": 0.08,
                "2025-11-25T10:00:01+11:00": 0.08,
                "2025-11-25T10:30:01+11:00": 0.08,
                "2025-11-25T11:00:01+11:00": 0.08,
                "2025-11-25T11:30:01+11:00": 0.08,
                "2025-11-25T12:00:01+11:00": 0.08,
                "2025-11-25T12:30:01+11:00": 0.08,
                "2025-11-25T13:00:01+11:00": 0.09,
                "2025-11-25T13:30:01+11:00": 0.12,
                "2025-11-25T14:00:01+11:00": 0.12,
                "2025-11-25T14:30:01+11:00": 0.12,
                "2025-11-25T15:00:01+11:00": 0.38,
                "2025-11-25T15:30:01+11:00": 0.38,
                "2025-11-25T16:00:01+11:00": 0.36,
                "2025-11-25T16:30:01+11:00": 0.36,
                "2025-11-25T17:00:01+11:00": 0.36,
                "2025-11-25T17:30:01+11:00": 0.37,
                "2025-11-25T18:00:01+11:00": 0.37,
                "2025-11-25T18:30:01+11:00": 0.44,
                "2025-11-25T19:00:01+11:00": 0.47,
                "2025-11-25T19:30:01+11:00": 0.47,
                "2025-11-25T20:00:01+11:00": 0.49,
                "2025-11-25T20:30:01+11:00": 0.46,
                "2025-11-25T21:00:01+11:00": 0.19,
                "2025-11-25T21:30:01+11:00": 0.2,
                "2025-11-25T22:00:01+11:00": 0.19,
                "2025-11-25T22:30:01+11:00": 0.17,
                "2025-11-25T23:00:01+11:00": 0.2,
                "2025-11-25T23:30:01+11:00": 0.19,
                "2025-11-26T00:00:01+11:00": 0.19,
                "2025-11-26T00:30:01+11:00": 0.17,
                "2025-11-26T01:00:01+11:00": 0.17,
                "2025-11-26T01:30:01+11:00": 0.17,
                "2025-11-26T02:00:01+11:00": 0.17,
                "2025-11-26T02:30:01+11:00": 0.16,
                "2025-11-26T03:00:01+11:00": 0.16,
                "2025-11-26T03:30:01+11:00": 0.16,
                "2025-11-26T04:00:01+11:00": 0.16,
                "2025-11-26T04:30:01+11:00": 0.16
              },
              "prod_price_forecast": {
                "2025-11-23T19:57:37+11:00": 0.24,
                "2025-11-23T20:00:01+11:00": 0.23,
                "2025-11-23T20:30:01+11:00": 0.23,
                "2025-11-23T21:00:01+11:00": 0.24,
                "2025-11-23T21:30:01+11:00": 0.16,
                "2025-11-23T22:00:01+11:00": 0.16,
                "2025-11-23T22:30:01+11:00": 0.13,
                "2025-11-23T23:00:01+11:00": 0.15,
                "2025-11-23T23:30:01+11:00": 0.13,
                "2025-11-24T00:00:01+11:00": 0.1,
                "2025-11-24T00:30:01+11:00": 0.1,
                "2025-11-24T01:00:01+11:00": 0.11,
                "2025-11-24T01:30:01+11:00": 0.09,
                "2025-11-24T02:00:01+11:00": 0.09,
                "2025-11-24T02:30:01+11:00": 0.08,
                "2025-11-24T03:00:01+11:00": 0.07,
                "2025-11-24T03:30:01+11:00": 0.07,
                "2025-11-24T04:00:01+11:00": 0.07,
                "2025-11-24T04:30:01+11:00": 0.07,
                "2025-11-24T05:00:01+11:00": 0.08,
                "2025-11-24T05:30:01+11:00": 0.09,
                "2025-11-24T06:00:01+11:00": 0.11,
                "2025-11-24T06:30:01+11:00": 0.07,
                "2025-11-24T07:00:01+11:00": 0.04,
                "2025-11-24T07:30:01+11:00": 0.01,
                "2025-11-24T08:00:01+11:00": 0.01,
                "2025-11-24T08:30:01+11:00": 0,
                "2025-11-24T09:00:01+11:00": 0,
                "2025-11-24T09:30:01+11:00": -0.01,
                "2025-11-24T10:00:01+11:00": -0.02,
                "2025-11-24T10:30:01+11:00": -0.02,
                "2025-11-24T11:00:01+11:00": -0.02,
                "2025-11-24T11:30:01+11:00": -0.02,
                "2025-11-24T12:00:01+11:00": -0.02,
                "2025-11-24T12:30:01+11:00": -0.02,
                "2025-11-24T13:00:01+11:00": -0.01,
                "2025-11-24T13:30:01+11:00": 0.01,
                "2025-11-24T14:00:01+11:00": 0.01,
                "2025-11-24T14:30:01+11:00": 0.01,
                "2025-11-24T15:00:01+11:00": 0.02,
                "2025-11-24T15:30:01+11:00": 0.02,
                "2025-11-24T16:00:01+11:00": 0.04,
                "2025-11-24T16:30:01+11:00": 0.04,
                "2025-11-24T17:00:01+11:00": 0.04,
                "2025-11-24T17:30:01+11:00": 0.05,
                "2025-11-24T18:00:01+11:00": 0.05,
                "2025-11-24T18:30:01+11:00": 0.11,
                "2025-11-24T19:00:01+11:00": 0.14,
                "2025-11-24T19:30:01+11:00": 0.14,
                "2025-11-24T20:00:01+11:00": 0.23,
                "2025-11-24T20:30:01+11:00": 0.23,
                "2025-11-24T21:00:01+11:00": 0.24,
                "2025-11-24T21:30:01+11:00": 0.16,
                "2025-11-24T22:00:01+11:00": 0.16,
                "2025-11-24T22:30:01+11:00": 0.13,
                "2025-11-24T23:00:01+11:00": 0.15,
                "2025-11-24T23:30:01+11:00": 0.13,
                "2025-11-25T00:00:01+11:00": 0.1,
                "2025-11-25T00:30:01+11:00": 0.1,
                "2025-11-25T01:00:01+11:00": 0.11,
                "2025-11-25T01:30:01+11:00": 0.09,
                "2025-11-25T02:00:01+11:00": 0.09,
                "2025-11-25T02:30:01+11:00": 0.08,
                "2025-11-25T03:00:01+11:00": 0.07,
                "2025-11-25T03:30:01+11:00": 0.07,
                "2025-11-25T04:00:01+11:00": 0.07,
                "2025-11-25T04:30:01+11:00": 0.07,
                "2025-11-25T05:00:01+11:00": 0.08,
                "2025-11-25T05:30:01+11:00": 0.09,
                "2025-11-25T06:00:01+11:00": 0.11,
                "2025-11-25T06:30:01+11:00": 0.07,
                "2025-11-25T07:00:01+11:00": 0.04,
                "2025-11-25T07:30:01+11:00": 0.01,
                "2025-11-25T08:00:01+11:00": 0.01,
                "2025-11-25T08:30:01+11:00": 0,
                "2025-11-25T09:00:01+11:00": 0,
                "2025-11-25T09:30:01+11:00": -0.01,
                "2025-11-25T10:00:01+11:00": -0.02,
                "2025-11-25T10:30:01+11:00": -0.02,
                "2025-11-25T11:00:01+11:00": -0.02,
                "2025-11-25T11:30:01+11:00": -0.02,
                "2025-11-25T12:00:01+11:00": -0.02,
                "2025-11-25T12:30:01+11:00": -0.02,
                "2025-11-25T13:00:01+11:00": -0.01,
                "2025-11-25T13:30:01+11:00": 0.01,
                "2025-11-25T14:00:01+11:00": 0.01,
                "2025-11-25T14:30:01+11:00": 0.01,
                "2025-11-25T15:00:01+11:00": 0.02,
                "2025-11-25T15:30:01+11:00": 0.02,
                "2025-11-25T16:00:01+11:00": 0.04,
                "2025-11-25T16:30:01+11:00": 0.04,
                "2025-11-25T17:00:01+11:00": 0.04,
                "2025-11-25T17:30:01+11:00": 0.05,
                "2025-11-25T18:00:01+11:00": 0.05,
                "2025-11-25T18:30:01+11:00": 0.11,
                "2025-11-25T19:00:01+11:00": 0.14,
                "2025-11-25T19:30:01+11:00": 0.14,
                "2025-11-25T20:00:01+11:00": 0.16,
                "2025-11-25T20:30:01+11:00": 0.13,
                "2025-11-25T21:00:01+11:00": 0.09,
                "2025-11-25T21:30:01+11:00": 0.1,
                "2025-11-25T22:00:01+11:00": 0.09,
                "2025-11-25T22:30:01+11:00": 0.07,
                "2025-11-25T23:00:01+11:00": 0.1,
                "2025-11-25T23:30:01+11:00": 0.09,
                "2025-11-26T00:00:01+11:00": 0.09,
                "2025-11-26T00:30:01+11:00": 0.07,
                "2025-11-26T01:00:01+11:00": 0.07,
                "2025-11-26T01:30:01+11:00": 0.07,
                "2025-11-26T02:00:01+11:00": 0.07,
                "2025-11-26T02:30:01+11:00": 0.06,
                "2025-11-26T03:00:01+11:00": 0.06,
                "2025-11-26T03:30:01+11:00": 0.06,
                "2025-11-26T04:00:01+11:00": 0.06,
                "2025-11-26T04:30:01+11:00": 0.06
              },
              "pv_power_forecast": {
                "2025-11-23T19:57:37+11:00": 0,
                "2025-11-23T20:00:00+11:00": 0,
                "2025-11-23T20:30:00+11:00": 0,
                "2025-11-23T21:00:00+11:00": 0,
                "2025-11-23T21:30:00+11:00": 0,
                "2025-11-23T22:00:00+11:00": 0,
                "2025-11-23T22:30:00+11:00": 0,
                "2025-11-23T23:00:00+11:00": 0,
                "2025-11-23T23:30:00+11:00": 0,
                "2025-11-24T00:00:00+11:00": 0,
                "2025-11-24T00:30:00+11:00": 0,
                "2025-11-24T01:00:00+11:00": 0,
                "2025-11-24T01:30:00+11:00": 0,
                "2025-11-24T02:00:00+11:00": 0,
                "2025-11-24T02:30:00+11:00": 0,
                "2025-11-24T03:00:00+11:00": 0,
                "2025-11-24T03:30:00+11:00": 0,
                "2025-11-24T04:00:00+11:00": 0,
                "2025-11-24T04:30:00+11:00": 0,
                "2025-11-24T05:00:00+11:00": 0,
                "2025-11-24T05:30:00+11:00": 36,
                "2025-11-24T06:00:00+11:00": 470,
                "2025-11-24T06:30:00+11:00": 1888,
                "2025-11-24T07:00:00+11:00": 3389,
                "2025-11-24T07:30:00+11:00": 5062,
                "2025-11-24T08:00:00+11:00": 6899,
                "2025-11-24T08:30:00+11:00": 8700,
                "2025-11-24T09:00:00+11:00": 10258,
                "2025-11-24T09:30:00+11:00": 11735,
                "2025-11-24T10:00:00+11:00": 12630,
                "2025-11-24T10:30:00+11:00": 12890,
                "2025-11-24T11:00:00+11:00": 13493,
                "2025-11-24T11:30:00+11:00": 14699,
                "2025-11-24T12:00:00+11:00": 15575,
                "2025-11-24T12:30:00+11:00": 16054,
                "2025-11-24T13:00:00+11:00": 16194,
                "2025-11-24T13:30:00+11:00": 15926,
                "2025-11-24T14:00:00+11:00": 15455,
                "2025-11-24T14:30:00+11:00": 15153,
                "2025-11-24T15:00:00+11:00": 14618,
                "2025-11-24T15:30:00+11:00": 13585,
                "2025-11-24T16:00:00+11:00": 12187,
                "2025-11-24T16:30:00+11:00": 10307,
                "2025-11-24T17:00:00+11:00": 8123,
                "2025-11-24T17:30:00+11:00": 5966,
                "2025-11-24T18:00:00+11:00": 4085,
                "2025-11-24T18:30:00+11:00": 2096,
                "2025-11-24T19:00:00+11:00": 429,
                "2025-11-24T19:30:00+11:00": 12,
                "2025-11-24T20:00:00+11:00": 0,
                "2025-11-24T20:30:00+11:00": 0,
                "2025-11-24T21:00:00+11:00": 0,
                "2025-11-24T21:30:00+11:00": 0,
                "2025-11-24T22:00:00+11:00": 0,
                "2025-11-24T22:30:00+11:00": 0,
                "2025-11-24T23:00:00+11:00": 0,
                "2025-11-24T23:30:00+11:00": 0,
                "2025-11-25T00:00:00+11:00": 0,
                "2025-11-25T00:30:00+11:00": 0,
                "2025-11-25T01:00:00+11:00": 0,
                "2025-11-25T01:30:00+11:00": 0,
                "2025-11-25T02:00:00+11:00": 0,
                "2025-11-25T02:30:00+11:00": 0,
                "2025-11-25T03:00:00+11:00": 0,
                "2025-11-25T03:30:00+11:00": 0,
                "2025-11-25T04:00:00+11:00": 0,
                "2025-11-25T04:30:00+11:00": 0,
                "2025-11-25T05:00:00+11:00": 0,
                "2025-11-25T05:30:00+11:00": 62,
                "2025-11-25T06:00:00+11:00": 956,
                "2025-11-25T06:30:00+11:00": 2304,
                "2025-11-25T07:00:00+11:00": 3572,
                "2025-11-25T07:30:00+11:00": 5297,
                "2025-11-25T08:00:00+11:00": 7251,
                "2025-11-25T08:30:00+11:00": 9299,
                "2025-11-25T09:00:00+11:00": 11110,
                "2025-11-25T09:30:00+11:00": 12871,
                "2025-11-25T10:00:00+11:00": 14185,
                "2025-11-25T10:30:00+11:00": 14629,
                "2025-11-25T11:00:00+11:00": 15006,
                "2025-11-25T11:30:00+11:00": 15400,
                "2025-11-25T12:00:00+11:00": 15455,
                "2025-11-25T12:30:00+11:00": 15145,
                "2025-11-25T13:00:00+11:00": 14465,
                "2025-11-25T13:30:00+11:00": 13370,
                "2025-11-25T14:00:00+11:00": 12031,
                "2025-11-25T14:30:00+11:00": 10508,
                "2025-11-25T15:00:00+11:00": 8685,
                "2025-11-25T15:30:00+11:00": 6663,
                "2025-11-25T16:00:00+11:00": 5204,
                "2025-11-25T16:30:00+11:00": 4238,
                "2025-11-25T17:00:00+11:00": 3690,
                "2025-11-25T17:30:00+11:00": 2943,
                "2025-11-25T18:00:00+11:00": 1854,
                "2025-11-25T18:30:00+11:00": 582,
                "2025-11-25T19:00:00+11:00": 184,
                "2025-11-25T19:30:00+11:00": 12
              },
              "load_power_forecast": {
                "2025-11-23T19:57:37+11:00": 1821,
                "2025-11-23T20:00:00+11:00": 2384,
                "2025-11-23T21:00:00+11:00": 1557,
                "2025-11-23T22:00:00+11:00": 1866,
                "2025-11-23T23:00:00+11:00": 1303,
                "2025-11-24T00:00:00+11:00": 862,
                "2025-11-24T01:00:00+11:00": 1585,
                "2025-11-24T02:00:00+11:00": 1220,
                "2025-11-24T03:00:00+11:00": 700,
                "2025-11-24T04:00:00+11:00": 600,
                "2025-11-24T05:00:00+11:00": 651,
                "2025-11-24T06:00:00+11:00": 642,
                "2025-11-24T07:00:00+11:00": 1024,
                "2025-11-24T08:00:00+11:00": 3080,
                "2025-11-24T09:00:00+11:00": 3275,
                "2025-11-24T10:00:00+11:00": 2911,
                "2025-11-24T11:00:00+11:00": 2544,
                "2025-11-24T12:00:00+11:00": 5483,
                "2025-11-24T13:00:00+11:00": 1803,
                "2025-11-24T14:00:00+11:00": 3868,
                "2025-11-24T15:00:00+11:00": 4107,
                "2025-11-24T16:00:00+11:00": 3074,
                "2025-11-24T17:00:00+11:00": 4098,
                "2025-11-24T18:00:00+11:00": 3494,
                "2025-11-24T20:00:00+11:00": 2384,
                "2025-11-24T21:00:00+11:00": 1557,
                "2025-11-24T22:00:00+11:00": 1866,
                "2025-11-24T23:00:00+11:00": 1303,
                "2025-11-25T00:00:00+11:00": 862,
                "2025-11-25T01:00:00+11:00": 1585,
                "2025-11-25T02:00:00+11:00": 1220,
                "2025-11-25T03:00:00+11:00": 700,
                "2025-11-25T04:00:00+11:00": 600,
                "2025-11-25T05:00:00+11:00": 651,
                "2025-11-25T06:00:00+11:00": 642,
                "2025-11-25T07:00:00+11:00": 1024,
                "2025-11-25T08:00:00+11:00": 3080,
                "2025-11-25T09:00:00+11:00": 3275,
                "2025-11-25T10:00:00+11:00": 2911,
                "2025-11-25T11:00:00+11:00": 2544,
                "2025-11-25T12:00:00+11:00": 5483,
                "2025-11-25T13:00:00+11:00": 1803,
                "2025-11-25T14:00:00+11:00": 3868,
                "2025-11-25T15:00:00+11:00": 4107,
                "2025-11-25T16:00:00+11:00": 3074,
                "2025-11-25T17:00:00+11:00": 4098,
                "2025-11-25T18:00:00+11:00": 3494
              }
            }
          }
        }
      ],
      "sequence/5": [
        {
          "path": "sequence/5",
          "timestamp": "2025-11-23T08:57:37.328638+00:00",
          "result": {
            "params": {
              "domain": "rest_command",
              "service": "emhass_naive_mpc_optim",
              "service_data": {
                "payload": "{\n  \"costfun\": \"profit\",\n  \"prediction_horizon\": 576,\n  \"optimization_time_step\": 5,\n  \"delta_forecast_daily\": 2,\n  \"set_use_pv\": true,\n  \"set_use_battery\": true,\n  \"inverter_is_hybrid\": true,\n  \"number_of_deferrable_loads\": 0,\n  \"set_nodischarge_to_grid\": false,\n  \"weight_battery_charge\": 0.02,\n  \"weight_battery_discharge\": 0.02,\n  \"battery_minimum_state_of_charge\": 0.0,\n  \"battery_maximum_state_of_charge\": 1,\n  \"battery_nominal_energy_capacity\": 48360,\n  \"battery_charge_power_max\": 25200,\n  \"battery_discharge_power_max\": 28800,\n  \"maximum_power_from_grid\": 30000,\n  \"maximum_power_to_grid\": 30000,\n  \"inverter_ac_output_max\": 29999,\n  \"inverter_ac_input_max\": 29999,\n  \"soc_init\": 0.634,\n  \"soc_final\": 0.0,\n  \"load_cost_forecast\": {\n    \"2025-11-23T19:57:37+11:00\": 0.58,\n    \"2025-11-23T20:00:01+11:00\": 0.56,\n    \"2025-11-23T20:30:01+11:00\": 0.57,\n    \"2025-11-23T21:00:01+11:00\": 0.36,\n    \"2025-11-23T21:30:01+11:00\": 0.26,\n    \"2025-11-23T22:00:01+11:00\": 0.27,\n    \"2025-11-23T22:30:01+11:00\": 0.23,\n    \"2025-11-23T23:00:01+11:00\": 0.25,\n    \"2025-11-23T23:30:01+11:00\": 0.23,\n    \"2025-11-24T00:00:01+11:00\": 0.2,\n    \"2025-11-24T00:30:01+11:00\": 0.21,\n    \"2025-11-24T01:00:01+11:00\": 0.22,\n    \"2025-11-24T01:30:01+11:00\": 0.19,\n    \"2025-11-24T02:00:01+11:00\": 0.19,\n    \"2025-11-24T02:30:01+11:00\": 0.18,\n    \"2025-11-24T03:00:01+11:00\": 0.17,\n    \"2025-11-24T03:30:01+11:00\": 0.17,\n    \"2025-11-24T04:00:01+11:00\": 0.17,\n    \"2025-11-24T04:30:01+11:00\": 0.17,\n    \"2025-11-24T05:00:01+11:00\": 0.18,\n    \"2025-11-24T05:30:01+11:00\": 0.19,\n    \"2025-11-24T06:00:01+11:00\": 0.22,\n    \"2025-11-24T06:30:01+11:00\": 0.17,\n    \"2025-11-24T07:00:01+11:00\": 0.14,\n    \"2025-11-24T07:30:01+11:00\": 0.1,\n    \"2025-11-24T08:00:01+11:00\": 0.1,\n    \"2025-11-24T08:30:01+11:00\": 0.09,\n    \"2025-11-24T09:00:01+11:00\": 0.09,\n    \"2025-11-24T09:30:01+11:00\": 0.08,\n    \"2025-11-24T10:00:01+11:00\": 0.08,\n    \"2025-11-24T10:30:01+11:00\": 0.08,\n    \"2025-11-24T11:00:01+11:00\": 0.08,\n    \"2025-11-24T11:30:01+11:00\": 0.08,\n    \"2025-11-24T12:00:01+11:00\": 0.08,\n    \"2025-11-24T12:30:01+11:00\": 0.08,\n    \"2025-11-24T13:00:01+11:00\": 0.09,\n    \"2025-11-24T13:30:01+11:00\": 0.12,\n    \"2025-11-24T14:00:01+11:00\": 0.12,\n    \"2025-11-24T14:30:01+11:00\": 0.12,\n    \"2025-11-24T15:00:01+11:00\": 0.38,\n    \"2025-11-24T15:30:01+11:00\": 0.38,\n    \"2025-11-24T16:00:01+11:00\": 0.36,\n    \"2025-11-24T16:30:01+11:00\": 0.36,\n    \"2025-11-24T17:00:01+11:00\": 0.36,\n    \"2025-11-24T17:30:01+11:00\": 0.37,\n    \"2025-11-24T18:00:01+11:00\": 0.37,\n    \"2025-11-24T18:30:01+11:00\": 0.44,\n    \"2025-11-24T19:00:01+11:00\": 0.47,\n    \"2025-11-24T19:30:01+11:00\": 0.47,\n    \"2025-11-24T20:00:01+11:00\": 0.56,\n    \"2025-11-24T20:30:01+11:00\": 0.57,\n    \"2025-11-24T21:00:01+11:00\": 0.36,\n    \"2025-11-24T21:30:01+11:00\": 0.26,\n    \"2025-11-24T22:00:01+11:00\": 0.27,\n    \"2025-11-24T22:30:01+11:00\": 0.23,\n    \"2025-11-24T23:00:01+11:00\": 0.25,\n    \"2025-11-24T23:30:01+11:00\": 0.23,\n    \"2025-11-25T00:00:01+11:00\": 0.2,\n    \"2025-11-25T00:30:01+11:00\": 0.21,\n    \"2025-11-25T01:00:01+11:00\": 0.22,\n    \"2025-11-25T01:30:01+11:00\": 0.19,\n    \"2025-11-25T02:00:01+11:00\": 0.19,\n    \"2025-11-25T02:30:01+11:00\": 0.18,\n    \"2025-11-25T03:00:01+11:00\": 0.17,\n    \"2025-11-25T03:30:01+11:00\": 0.17,\n    \"2025-11-25T04:00:01+11:00\": 0.17,\n    \"2025-11-25T04:30:01+11:00\": 0.17,\n    \"2025-11-25T05:00:01+11:00\": 0.18,\n    \"2025-11-25T05:30:01+11:00\": 0.19,\n    \"2025-11-25T06:00:01+11:00\": 0.22,\n    \"2025-11-25T06:30:01+11:00\": 0.17,\n    \"2025-11-25T07:00:01+11:00\": 0.14,\n    \"2025-11-25T07:30:01+11:00\": 0.1,\n    \"2025-11-25T08:00:01+11:00\": 0.1,\n    \"2025-11-25T08:30:01+11:00\": 0.09,\n    \"2025-11-25T09:00:01+11:00\": 0.09,\n    \"2025-11-25T09:30:01+11:00\": 0.08,\n    \"2025-11-25T10:00:01+11:00\": 0.08,\n    \"2025-11-25T10:30:01+11:00\": 0.08,\n    \"2025-11-25T11:00:01+11:00\": 0.08,\n    \"2025-11-25T11:30:01+11:00\": 0.08,\n    \"2025-11-25T12:00:01+11:00\": 0.08,\n    \"2025-11-25T12:30:01+11:00\": 0.08,\n    \"2025-11-25T13:00:01+11:00\": 0.09,\n    \"2025-11-25T13:30:01+11:00\": 0.12,\n    \"2025-11-25T14:00:01+11:00\": 0.12,\n    \"2025-11-25T14:30:01+11:00\": 0.12,\n    \"2025-11-25T15:00:01+11:00\": 0.38,\n    \"2025-11-25T15:30:01+11:00\": 0.38,\n    \"2025-11-25T16:00:01+11:00\": 0.36,\n    \"2025-11-25T16:30:01+11:00\": 0.36,\n    \"2025-11-25T17:00:01+11:00\": 0.36,\n    \"2025-11-25T17:30:01+11:00\": 0.37,\n    \"2025-11-25T18:00:01+11:00\": 0.37,\n    \"2025-11-25T18:30:01+11:00\": 0.44,\n    \"2025-11-25T19:00:01+11:00\": 0.47,\n    \"2025-11-25T19:30:01+11:00\": 0.47,\n    \"2025-11-25T20:00:01+11:00\": 0.49,\n    \"2025-11-25T20:30:01+11:00\": 0.46,\n    \"2025-11-25T21:00:01+11:00\": 0.19,\n    \"2025-11-25T21:30:01+11:00\": 0.2,\n    \"2025-11-25T22:00:01+11:00\": 0.19,\n    \"2025-11-25T22:30:01+11:00\": 0.17,\n    \"2025-11-25T23:00:01+11:00\": 0.2,\n    \"2025-11-25T23:30:01+11:00\": 0.19,\n    \"2025-11-26T00:00:01+11:00\": 0.19,\n    \"2025-11-26T00:30:01+11:00\": 0.17,\n    \"2025-11-26T01:00:01+11:00\": 0.17,\n    \"2025-11-26T01:30:01+11:00\": 0.17,\n    \"2025-11-26T02:00:01+11:00\": 0.17,\n    \"2025-11-26T02:30:01+11:00\": 0.16,\n    \"2025-11-26T03:00:01+11:00\": 0.16,\n    \"2025-11-26T03:30:01+11:00\": 0.16,\n    \"2025-11-26T04:00:01+11:00\": 0.16,\n    \"2025-11-26T04:30:01+11:00\": 0.16\n  },\n  \"prod_price_forecast\": {\n    \"2025-11-23T19:57:37+11:00\": 0.24,\n    \"2025-11-23T20:00:01+11:00\": 0.23,\n    \"2025-11-23T20:30:01+11:00\": 0.23,\n    \"2025-11-23T21:00:01+11:00\": 0.24,\n    \"2025-11-23T21:30:01+11:00\": 0.16,\n    \"2025-11-23T22:00:01+11:00\": 0.16,\n    \"2025-11-23T22:30:01+11:00\": 0.13,\n    \"2025-11-23T23:00:01+11:00\": 0.15,\n    \"2025-11-23T23:30:01+11:00\": 0.13,\n    \"2025-11-24T00:00:01+11:00\": 0.1,\n    \"2025-11-24T00:30:01+11:00\": 0.1,\n    \"2025-11-24T01:00:01+11:00\": 0.11,\n    \"2025-11-24T01:30:01+11:00\": 0.09,\n    \"2025-11-24T02:00:01+11:00\": 0.09,\n    \"2025-11-24T02:30:01+11:00\": 0.08,\n    \"2025-11-24T03:00:01+11:00\": 0.07,\n    \"2025-11-24T03:30:01+11:00\": 0.07,\n    \"2025-11-24T04:00:01+11:00\": 0.07,\n    \"2025-11-24T04:30:01+11:00\": 0.07,\n    \"2025-11-24T05:00:01+11:00\": 0.08,\n    \"2025-11-24T05:30:01+11:00\": 0.09,\n    \"2025-11-24T06:00:01+11:00\": 0.11,\n    \"2025-11-24T06:30:01+11:00\": 0.07,\n    \"2025-11-24T07:00:01+11:00\": 0.04,\n    \"2025-11-24T07:30:01+11:00\": 0.01,\n    \"2025-11-24T08:00:01+11:00\": 0.01,\n    \"2025-11-24T08:30:01+11:00\": 0.0,\n    \"2025-11-24T09:00:01+11:00\": -0.0,\n    \"2025-11-24T09:30:01+11:00\": -0.01,\n    \"2025-11-24T10:00:01+11:00\": -0.02,\n    \"2025-11-24T10:30:01+11:00\": -0.02,\n    \"2025-11-24T11:00:01+11:00\": -0.02,\n    \"2025-11-24T11:30:01+11:00\": -0.02,\n    \"2025-11-24T12:00:01+11:00\": -0.02,\n    \"2025-11-24T12:30:01+11:00\": -0.02,\n    \"2025-11-24T13:00:01+11:00\": -0.01,\n    \"2025-11-24T13:30:01+11:00\": 0.01,\n    \"2025-11-24T14:00:01+11:00\": 0.01,\n    \"2025-11-24T14:30:01+11:00\": 0.01,\n    \"2025-11-24T15:00:01+11:00\": 0.02,\n    \"2025-11-24T15:30:01+11:00\": 0.02,\n    \"2025-11-24T16:00:01+11:00\": 0.04,\n    \"2025-11-24T16:30:01+11:00\": 0.04,\n    \"2025-11-24T17:00:01+11:00\": 0.04,\n    \"2025-11-24T17:30:01+11:00\": 0.05,\n    \"2025-11-24T18:00:01+11:00\": 0.05,\n    \"2025-11-24T18:30:01+11:00\": 0.11,\n    \"2025-11-24T19:00:01+11:00\": 0.14,\n    \"2025-11-24T19:30:01+11:00\": 0.14,\n    \"2025-11-24T20:00:01+11:00\": 0.23,\n    \"2025-11-24T20:30:01+11:00\": 0.23,\n    \"2025-11-24T21:00:01+11:00\": 0.24,\n    \"2025-11-24T21:30:01+11:00\": 0.16,\n    \"2025-11-24T22:00:01+11:00\": 0.16,\n    \"2025-11-24T22:30:01+11:00\": 0.13,\n    \"2025-11-24T23:00:01+11:00\": 0.15,\n    \"2025-11-24T23:30:01+11:00\": 0.13,\n    \"2025-11-25T00:00:01+11:00\": 0.1,\n    \"2025-11-25T00:30:01+11:00\": 0.1,\n    \"2025-11-25T01:00:01+11:00\": 0.11,\n    \"2025-11-25T01:30:01+11:00\": 0.09,\n    \"2025-11-25T02:00:01+11:00\": 0.09,\n    \"2025-11-25T02:30:01+11:00\": 0.08,\n    \"2025-11-25T03:00:01+11:00\": 0.07,\n    \"2025-11-25T03:30:01+11:00\": 0.07,\n    \"2025-11-25T04:00:01+11:00\": 0.07,\n    \"2025-11-25T04:30:01+11:00\": 0.07,\n    \"2025-11-25T05:00:01+11:00\": 0.08,\n    \"2025-11-25T05:30:01+11:00\": 0.09,\n    \"2025-11-25T06:00:01+11:00\": 0.11,\n    \"2025-11-25T06:30:01+11:00\": 0.07,\n    \"2025-11-25T07:00:01+11:00\": 0.04,\n    \"2025-11-25T07:30:01+11:00\": 0.01,\n    \"2025-11-25T08:00:01+11:00\": 0.01,\n    \"2025-11-25T08:30:01+11:00\": 0.0,\n    \"2025-11-25T09:00:01+11:00\": -0.0,\n    \"2025-11-25T09:30:01+11:00\": -0.01,\n    \"2025-11-25T10:00:01+11:00\": -0.02,\n    \"2025-11-25T10:30:01+11:00\": -0.02,\n    \"2025-11-25T11:00:01+11:00\": -0.02,\n    \"2025-11-25T11:30:01+11:00\": -0.02,\n    \"2025-11-25T12:00:01+11:00\": -0.02,\n    \"2025-11-25T12:30:01+11:00\": -0.02,\n    \"2025-11-25T13:00:01+11:00\": -0.01,\n    \"2025-11-25T13:30:01+11:00\": 0.01,\n    \"2025-11-25T14:00:01+11:00\": 0.01,\n    \"2025-11-25T14:30:01+11:00\": 0.01,\n    \"2025-11-25T15:00:01+11:00\": 0.02,\n    \"2025-11-25T15:30:01+11:00\": 0.02,\n    \"2025-11-25T16:00:01+11:00\": 0.04,\n    \"2025-11-25T16:30:01+11:00\": 0.04,\n    \"2025-11-25T17:00:01+11:00\": 0.04,\n    \"2025-11-25T17:30:01+11:00\": 0.05,\n    \"2025-11-25T18:00:01+11:00\": 0.05,\n    \"2025-11-25T18:30:01+11:00\": 0.11,\n    \"2025-11-25T19:00:01+11:00\": 0.14,\n    \"2025-11-25T19:30:01+11:00\": 0.14,\n    \"2025-11-25T20:00:01+11:00\": 0.16,\n    \"2025-11-25T20:30:01+11:00\": 0.13,\n    \"2025-11-25T21:00:01+11:00\": 0.09,\n    \"2025-11-25T21:30:01+11:00\": 0.1,\n    \"2025-11-25T22:00:01+11:00\": 0.09,\n    \"2025-11-25T22:30:01+11:00\": 0.07,\n    \"2025-11-25T23:00:01+11:00\": 0.1,\n    \"2025-11-25T23:30:01+11:00\": 0.09,\n    \"2025-11-26T00:00:01+11:00\": 0.09,\n    \"2025-11-26T00:30:01+11:00\": 0.07,\n    \"2025-11-26T01:00:01+11:00\": 0.07,\n    \"2025-11-26T01:30:01+11:00\": 0.07,\n    \"2025-11-26T02:00:01+11:00\": 0.07,\n    \"2025-11-26T02:30:01+11:00\": 0.06,\n    \"2025-11-26T03:00:01+11:00\": 0.06,\n    \"2025-11-26T03:30:01+11:00\": 0.06,\n    \"2025-11-26T04:00:01+11:00\": 0.06,\n    \"2025-11-26T04:30:01+11:00\": 0.06\n  },\n  \"pv_power_forecast\": {\n    \"2025-11-23T19:57:37+11:00\": 0,\n    \"2025-11-23T20:00:00+11:00\": 0,\n    \"2025-11-23T20:30:00+11:00\": 0,\n    \"2025-11-23T21:00:00+11:00\": 0,\n    \"2025-11-23T21:30:00+11:00\": 0,\n    \"2025-11-23T22:00:00+11:00\": 0,\n    \"2025-11-23T22:30:00+11:00\": 0,\n    \"2025-11-23T23:00:00+11:00\": 0,\n    \"2025-11-23T23:30:00+11:00\": 0,\n    \"2025-11-24T00:00:00+11:00\": 0,\n    \"2025-11-24T00:30:00+11:00\": 0,\n    \"2025-11-24T01:00:00+11:00\": 0,\n    \"2025-11-24T01:30:00+11:00\": 0,\n    \"2025-11-24T02:00:00+11:00\": 0,\n    \"2025-11-24T02:30:00+11:00\": 0,\n    \"2025-11-24T03:00:00+11:00\": 0,\n    \"2025-11-24T03:30:00+11:00\": 0,\n    \"2025-11-24T04:00:00+11:00\": 0,\n    \"2025-11-24T04:30:00+11:00\": 0,\n    \"2025-11-24T05:00:00+11:00\": 0,\n    \"2025-11-24T05:30:00+11:00\": 36,\n    \"2025-11-24T06:00:00+11:00\": 470,\n    \"2025-11-24T06:30:00+11:00\": 1888,\n    \"2025-11-24T07:00:00+11:00\": 3389,\n    \"2025-11-24T07:30:00+11:00\": 5062,\n    \"2025-11-24T08:00:00+11:00\": 6899,\n    \"2025-11-24T08:30:00+11:00\": 8700,\n    \"2025-11-24T09:00:00+11:00\": 10258,\n    \"2025-11-24T09:30:00+11:00\": 11735,\n    \"2025-11-24T10:00:00+11:00\": 12630,\n    \"2025-11-24T10:30:00+11:00\": 12890,\n    \"2025-11-24T11:00:00+11:00\": 13493,\n    \"2025-11-24T11:30:00+11:00\": 14699,\n    \"2025-11-24T12:00:00+11:00\": 15575,\n    \"2025-11-24T12:30:00+11:00\": 16054,\n    \"2025-11-24T13:00:00+11:00\": 16194,\n    \"2025-11-24T13:30:00+11:00\": 15926,\n    \"2025-11-24T14:00:00+11:00\": 15455,\n    \"2025-11-24T14:30:00+11:00\": 15153,\n    \"2025-11-24T15:00:00+11:00\": 14618,\n    \"2025-11-24T15:30:00+11:00\": 13585,\n    \"2025-11-24T16:00:00+11:00\": 12187,\n    \"2025-11-24T16:30:00+11:00\": 10307,\n    \"2025-11-24T17:00:00+11:00\": 8123,\n    \"2025-11-24T17:30:00+11:00\": 5966,\n    \"2025-11-24T18:00:00+11:00\": 4085,\n    \"2025-11-24T18:30:00+11:00\": 2096,\n    \"2025-11-24T19:00:00+11:00\": 429,\n    \"2025-11-24T19:30:00+11:00\": 12,\n    \"2025-11-24T20:00:00+11:00\": 0,\n    \"2025-11-24T20:30:00+11:00\": 0,\n    \"2025-11-24T21:00:00+11:00\": 0,\n    \"2025-11-24T21:30:00+11:00\": 0,\n    \"2025-11-24T22:00:00+11:00\": 0,\n    \"2025-11-24T22:30:00+11:00\": 0,\n    \"2025-11-24T23:00:00+11:00\": 0,\n    \"2025-11-24T23:30:00+11:00\": 0,\n    \"2025-11-25T00:00:00+11:00\": 0,\n    \"2025-11-25T00:30:00+11:00\": 0,\n    \"2025-11-25T01:00:00+11:00\": 0,\n    \"2025-11-25T01:30:00+11:00\": 0,\n    \"2025-11-25T02:00:00+11:00\": 0,\n    \"2025-11-25T02:30:00+11:00\": 0,\n    \"2025-11-25T03:00:00+11:00\": 0,\n    \"2025-11-25T03:30:00+11:00\": 0,\n    \"2025-11-25T04:00:00+11:00\": 0,\n    \"2025-11-25T04:30:00+11:00\": 0,\n    \"2025-11-25T05:00:00+11:00\": 0,\n    \"2025-11-25T05:30:00+11:00\": 62,\n    \"2025-11-25T06:00:00+11:00\": 956,\n    \"2025-11-25T06:30:00+11:00\": 2304,\n    \"2025-11-25T07:00:00+11:00\": 3572,\n    \"2025-11-25T07:30:00+11:00\": 5297,\n    \"2025-11-25T08:00:00+11:00\": 7251,\n    \"2025-11-25T08:30:00+11:00\": 9299,\n    \"2025-11-25T09:00:00+11:00\": 11110,\n    \"2025-11-25T09:30:00+11:00\": 12871,\n    \"2025-11-25T10:00:00+11:00\": 14185,\n    \"2025-11-25T10:30:00+11:00\": 14629,\n    \"2025-11-25T11:00:00+11:00\": 15006,\n    \"2025-11-25T11:30:00+11:00\": 15400,\n    \"2025-11-25T12:00:00+11:00\": 15455,\n    \"2025-11-25T12:30:00+11:00\": 15145,\n    \"2025-11-25T13:00:00+11:00\": 14465,\n    \"2025-11-25T13:30:00+11:00\": 13370,\n    \"2025-11-25T14:00:00+11:00\": 12031,\n    \"2025-11-25T14:30:00+11:00\": 10508,\n    \"2025-11-25T15:00:00+11:00\": 8685,\n    \"2025-11-25T15:30:00+11:00\": 6663,\n    \"2025-11-25T16:00:00+11:00\": 5204,\n    \"2025-11-25T16:30:00+11:00\": 4238,\n    \"2025-11-25T17:00:00+11:00\": 3690,\n    \"2025-11-25T17:30:00+11:00\": 2943,\n    \"2025-11-25T18:00:00+11:00\": 1854,\n    \"2025-11-25T18:30:00+11:00\": 582,\n    \"2025-11-25T19:00:00+11:00\": 184,\n    \"2025-11-25T19:30:00+11:00\": 12\n  },\n  \"load_power_forecast\": {\n    \"2025-11-23T19:57:37+11:00\": 1821,\n    \"2025-11-23T20:00:00+11:00\": 2384,\n    \"2025-11-23T21:00:00+11:00\": 1557,\n    \"2025-11-23T22:00:00+11:00\": 1866,\n    \"2025-11-23T23:00:00+11:00\": 1303,\n    \"2025-11-24T00:00:00+11:00\": 862,\n    \"2025-11-24T01:00:00+11:00\": 1585,\n    \"2025-11-24T02:00:00+11:00\": 1220,\n    \"2025-11-24T03:00:00+11:00\": 700,\n    \"2025-11-24T04:00:00+11:00\": 600,\n    \"2025-11-24T05:00:00+11:00\": 651,\n    \"2025-11-24T06:00:00+11:00\": 642,\n    \"2025-11-24T07:00:00+11:00\": 1024,\n    \"2025-11-24T08:00:00+11:00\": 3080,\n    \"2025-11-24T09:00:00+11:00\": 3275,\n    \"2025-11-24T10:00:00+11:00\": 2911,\n    \"2025-11-24T11:00:00+11:00\": 2544,\n    \"2025-11-24T12:00:00+11:00\": 5483,\n    \"2025-11-24T13:00:00+11:00\": 1803,\n    \"2025-11-24T14:00:00+11:00\": 3868,\n    \"2025-11-24T15:00:00+11:00\": 4107,\n    \"2025-11-24T16:00:00+11:00\": 3074,\n    \"2025-11-24T17:00:00+11:00\": 4098,\n    \"2025-11-24T18:00:00+11:00\": 3494,\n    \"2025-11-24T20:00:00+11:00\": 2384,\n    \"2025-11-24T21:00:00+11:00\": 1557,\n    \"2025-11-24T22:00:00+11:00\": 1866,\n    \"2025-11-24T23:00:00+11:00\": 1303,\n    \"2025-11-25T00:00:00+11:00\": 862,\n    \"2025-11-25T01:00:00+11:00\": 1585,\n    \"2025-11-25T02:00:00+11:00\": 1220,\n    \"2025-11-25T03:00:00+11:00\": 700,\n    \"2025-11-25T04:00:00+11:00\": 600,\n    \"2025-11-25T05:00:00+11:00\": 651,\n    \"2025-11-25T06:00:00+11:00\": 642,\n    \"2025-11-25T07:00:00+11:00\": 1024,\n    \"2025-11-25T08:00:00+11:00\": 3080,\n    \"2025-11-25T09:00:00+11:00\": 3275,\n    \"2025-11-25T10:00:00+11:00\": 2911,\n    \"2025-11-25T11:00:00+11:00\": 2544,\n    \"2025-11-25T12:00:00+11:00\": 5483,\n    \"2025-11-25T13:00:00+11:00\": 1803,\n    \"2025-11-25T14:00:00+11:00\": 3868,\n    \"2025-11-25T15:00:00+11:00\": 4107,\n    \"2025-11-25T16:00:00+11:00\": 3074,\n    \"2025-11-25T17:00:00+11:00\": 4098,\n    \"2025-11-25T18:00:00+11:00\": 3494\n  }\n}"
              },
              "target": {}
            },
            "running_script": false
          }
        }
      ],
      "sequence/6": [
        {
          "path": "sequence/6",
          "timestamp": "2025-11-23T08:57:43.147626+00:00",
          "changed_variables": {
            "payload": {
              "custom_pv_forecast_id": {
                "entity_id": "sensor.mpc_pv_power",
                "unit_of_measurement": "W",
                "device_class": "power",
                "friendly_name": "MPC PV Power"
              },
              "custom_load_forecast_id": {
                "entity_id": "sensor.mpc_load_power",
                "unit_of_measurement": "W",
                "device_class": "power",
                "friendly_name": "MPC Load Power"
              },
              "custom_hybrid_inverter_id": {
                "entity_id": "sensor.mpc_inverter_power",
                "unit_of_measurement": "W",
                "device_class": "power",
                "friendly_name": "MPC Inverter Power"
              },
              "custom_batt_forecast_id": {
                "entity_id": "sensor.mpc_batt_power",
                "unit_of_measurement": "W",
                "device_class": "power",
                "friendly_name": "MPC Battery Power"
              },
              "custom_grid_forecast_id": {
                "entity_id": "sensor.mpc_grid_power",
                "unit_of_measurement": "W",
                "device_class": "power",
                "friendly_name": "MPC Grid Power"
              },
              "custom_batt_soc_forecast_id": {
                "entity_id": "sensor.mpc_batt_soc",
                "unit_of_measurement": "%",
                "device_class": "battery",
                "friendly_name": "MPC Battery SOC"
              },
              "custom_cost_fun_id": {
                "entity_id": "sensor.mpc_cost_fun",
                "unit_of_measurement": "$",
                "device_class": "monetary",
                "friendly_name": "MPC Cost Function"
              },
              "custom_unit_load_cost_id": {
                "entity_id": "sensor.mpc_general_price",
                "unit_of_measurement": "$",
                "device_class": "monetary",
                "friendly_name": "MPC Buy Price"
              },
              "custom_unit_prod_price_id": {
                "entity_id": "sensor.mpc_feed_in_price",
                "unit_of_measurement": "$",
                "device_class": "monetary",
                "friendly_name": "MPC Sell Price"
              },
              "custom_optim_status_id": {
                "entity_id": "sensor.mpc_optim_status",
                "unit_of_measurement": "",
                "friendly_name": "MPC Optimisation Status"
              }
            }
          }
        }
      ],
      "sequence/7": [
        {
          "path": "sequence/7",
          "timestamp": "2025-11-23T08:57:43.148291+00:00",
          "result": {
            "params": {
              "domain": "rest_command",
              "service": "emhass_publish_data",
              "service_data": {
                "payload": "{\n  \"costfun\": \"profit\",\n  \"prediction_horizon\": 576,\n  \"optimization_time_step\": 5,\n  \"delta_forecast_daily\": 2,\n  \"set_use_pv\": true,\n  \"set_use_battery\": true,\n  \"inverter_is_hybrid\": true,\n  \"number_of_deferrable_loads\": 0,\n  \"set_nodischarge_to_grid\": false,\n  \"custom_pv_forecast_id\": {\n    \"entity_id\": \"sensor.mpc_pv_power\",\n    \"unit_of_measurement\": \"W\",\n    \"device_class\": \"power\",\n    \"friendly_name\": \"MPC PV Power\"\n  },\n  \"custom_load_forecast_id\": {\n    \"entity_id\": \"sensor.mpc_load_power\",\n    \"unit_of_measurement\": \"W\",\n    \"device_class\": \"power\",\n    \"friendly_name\": \"MPC Load Power\"\n  },\n  \"custom_hybrid_inverter_id\": {\n    \"entity_id\": \"sensor.mpc_inverter_power\",\n    \"unit_of_measurement\": \"W\",\n    \"device_class\": \"power\",\n    \"friendly_name\": \"MPC Inverter Power\"\n  },\n  \"custom_batt_forecast_id\": {\n    \"entity_id\": \"sensor.mpc_batt_power\",\n    \"unit_of_measurement\": \"W\",\n    \"device_class\": \"power\",\n    \"friendly_name\": \"MPC Battery Power\"\n  },\n  \"custom_grid_forecast_id\": {\n    \"entity_id\": \"sensor.mpc_grid_power\",\n    \"unit_of_measurement\": \"W\",\n    \"device_class\": \"power\",\n    \"friendly_name\": \"MPC Grid Power\"\n  },\n  \"custom_batt_soc_forecast_id\": {\n    \"entity_id\": \"sensor.mpc_batt_soc\",\n    \"unit_of_measurement\": \"%\",\n    \"device_class\": \"battery\",\n    \"friendly_name\": \"MPC Battery SOC\"\n  },\n  \"custom_cost_fun_id\": {\n    \"entity_id\": \"sensor.mpc_cost_fun\",\n    \"unit_of_measurement\": \"$\",\n    \"device_class\": \"monetary\",\n    \"friendly_name\": \"MPC Cost Function\"\n  },\n  \"custom_unit_load_cost_id\": {\n    \"entity_id\": \"sensor.mpc_general_price\",\n    \"unit_of_measurement\": \"$\",\n    \"device_class\": \"monetary\",\n    \"friendly_name\": \"MPC Buy Price\"\n  },\n  \"custom_unit_prod_price_id\": {\n    \"entity_id\": \"sensor.mpc_feed_in_price\",\n    \"unit_of_measurement\": \"$\",\n    \"device_class\": \"monetary\",\n    \"friendly_name\": \"MPC Sell Price\"\n  },\n  \"custom_optim_status_id\": {\n    \"entity_id\": \"sensor.mpc_optim_status\",\n    \"unit_of_measurement\": \"\",\n    \"friendly_name\": \"MPC Optimisation Status\"\n  }\n}"
              },
              "target": {}
            },
            "running_script": false
          }
        }
      ]
    },
    "config": {
      "sequence": [
        {
          "variables": {
            "costfun": "profit",
            "maximum_power_from_grid": 30000,
            "maximum_power_to_grid": 30000,
            "battery_minimum_percent": 0
          },
          "alias": "Configure critical settings"
        },
        {
          "variables": {
            "num_prediction_days": 2,
            "optimization_time_step": 5,
            "weight_battery_charge": 0.02,
            "weight_battery_discharge": 0.02,
            "sensor_prefix": "mpc_",
            "sensor_name_prefix": "MPC "
          },
          "alias": "Configure secondary settings"
        },
        {
          "variables": {
            "sensors": {
              "energy_capacity": "sensor.sigen_plant_rated_energy_capacity",
              "charging_power": "sensor.sigen_plant_ess_rated_charging_power",
              "discharging_power": "sensor.sigen_plant_ess_rated_discharging_power",
              "max_inverter_power": "sensor.sigen_plant_max_active_power",
              "battery_soc": "sensor.sigen_plant_battery_state_of_charge",
              "consumed_power": "sensor.sigen_plant_consumed_power",
              "solar": {
                "current_power": "sensor.sigen_plant_pv_power",
                "forecasts": [
                  "sensor.solcast_pv_forecast_forecast_today",
                  "sensor.solcast_pv_forecast_forecast_tomorrow",
                  "sensor.solcast_pv_forecast_forecast_day_3"
                ]
              },
              "amber": {
                "general_price": "sensor.home_general_price",
                "general_forecast": "sensor.home_general_forecast",
                "feed_in_price": "sensor.home_feed_in_price",
                "feed_in_forecast": "sensor.home_feed_in_forecast"
              }
            }
          },
          "alias": "Configure sensor entities"
        },
        {
          "action": "recorder.get_statistics",
          "data": {
            "start_time": "{{ (now() - timedelta(days=1)).isoformat() }}",
            "end_time": "{{ now().isoformat() }}",
            "statistic_ids": "{{ sensors.consumed_power }}",
            "period": "hour",
            "types": "mean"
          },
          "response_variable": "history",
          "alias": "Fetch load history"
        },
        {
          "variables": {
            "num_forecasts": "{{ (60 / optimization_time_step * 24 * num_prediction_days) | int }}",
            "soc_init": "{{ (states(sensors.battery_soc) | float(0) / 100) | round(3) }}",
            "soc_final": "{{ battery_minimum_percent / 100 }}",
            "now_iso": "{{ now().replace(microsecond=0).isoformat() }}",
            "max_inverter_power": "{{ (states(sensors.max_inverter_power) | float(0) * 1000) | round }}",
            "common": {
              "costfun": "{{ costfun }}",
              "prediction_horizon": "{{ num_forecasts }}",
              "optimization_time_step": "{{ optimization_time_step }}",
              "delta_forecast_daily": "{{ num_prediction_days }}",
              "set_use_pv": true,
              "set_use_battery": true,
              "inverter_is_hybrid": true,
              "number_of_deferrable_loads": 0,
              "set_nodischarge_to_grid": false
            },
            "payload": {
              "weight_battery_charge": "{{ weight_battery_charge }}",
              "weight_battery_discharge": "{{ weight_battery_discharge }}",
              "battery_minimum_state_of_charge": "{{ battery_minimum_percent / 100 }}",
              "battery_maximum_state_of_charge": 1,
              "battery_nominal_energy_capacity": "{{ (states(sensors.energy_capacity) | float(0) * 1000) | round }}",
              "battery_charge_power_max": "{{ (states(sensors.charging_power) | float(0) * 1000) | round }}",
              "battery_discharge_power_max": "{{ (states(sensors.discharging_power) | float(0) * 1000) | round }}",
              "maximum_power_from_grid": "{{ maximum_power_from_grid }}",
              "maximum_power_to_grid": "{{ maximum_power_to_grid }}",
              "inverter_ac_output_max": "{{ max_inverter_power }}",
              "inverter_ac_input_max": "{{ max_inverter_power }}",
              "soc_init": "{{ soc_init }}",
              "soc_final": "{{ soc_final }}",
              "load_cost_forecast": "{% set ns = namespace(\n  input=(\n      state_attr(sensors.amber.general_forecast, 'forecasts') | list\n  ) | selectattr('per_kwh', 'is_number') | list,\n  output={\n    now_iso: states(sensors.amber.general_price) | float(0)\n  }\n) %}\n{% for day in range(num_prediction_days) %}\n  {% for forecast in ns.input %}\n    {% set start = forecast.start_time | as_datetime | as_local + timedelta(days=day) %}\n    {% set price = forecast.per_kwh | float(0) %}\n    {% set ns.output = ns.output | combine({ start.isoformat(): price }) %}\n  {% endfor %}\n{% endfor %}\n{{ ns.output }}",
              "prod_price_forecast": "{% set ns = namespace(\n  input=(\n      state_attr(sensors.amber.feed_in_forecast, 'forecasts') | list\n  ) | selectattr('per_kwh', 'is_number') | list,\n  output={\n    now_iso: states(sensors.amber.feed_in_price) | float(0)\n  }\n) %}\n{% for day in range(num_prediction_days) %}\n  {% for forecast in ns.input %}\n    {% set start = forecast.start_time | as_datetime | as_local + timedelta(days=day) %}\n    {% set price = forecast.per_kwh | float(0) %}\n    {% set ns.output = ns.output | combine({ start.isoformat(): price }) %}\n  {% endfor %}\n{% endfor %}\n{{ ns.output }}",
              "pv_power_forecast": "{% set ns = namespace(\n  input=sensors.solar.forecasts\n    | map('state_attr', 'detailedForecast')\n    | sum(start=[])\n    | selectattr('period_start', '>', now())\n    | selectattr('period_start', '<=', now() + timedelta(days=num_prediction_days)),\n  output={\n    now_iso: (states(sensors.solar.current_power) | float(0) * 1000) | round\n  }\n) %}\n{% for solar in ns.input %}\n  {% set key = (solar.period_start | as_datetime | as_local).isoformat() %}\n  {% set value = (solar.pv_estimate * 1000) | round %}\n  {% set ns.output = ns.output | combine({ key: value }) %}\n{% endfor %}\n{{ ns.output }}",
              "load_power_forecast": "{% set ns = namespace(\n  input=history.statistics[sensors.consumed_power],\n  output={\n    now_iso: (states(sensors.consumed_power) | float(0) * 1000) | round(0)\n  }\n) %}\n{% for day in range(num_prediction_days) %}\n  {% for load in ns.input %}\n    {% set load_start = load.start | as_datetime | as_local + timedelta(days=day + 1) %}\n    {% set load_value_watts = (load.mean | float(0) * 1000) | round(0) %}\n    {% set ns.output = ns.output | combine({ load_start.isoformat(): load_value_watts }) %}\n  {% endfor %}\n{% endfor %}\n{{ ns.output }}"
            }
          },
          "alias": "Calculate payload"
        },
        {
          "action": "rest_command.emhass_naive_mpc_optim",
          "metadata": {},
          "data": {
            "payload": "{{ combine(common, payload) | to_json(pretty_print=true) }}"
          },
          "alias": "Run EMHASS"
        },
        {
          "variables": {
            "payload": {
              "custom_pv_forecast_id": {
                "entity_id": "sensor.{{ sensor_prefix }}pv_power",
                "unit_of_measurement": "W",
                "device_class": "power",
                "friendly_name": "{{ sensor_name_prefix }}PV Power"
              },
              "custom_load_forecast_id": {
                "entity_id": "sensor.{{ sensor_prefix }}load_power",
                "unit_of_measurement": "W",
                "device_class": "power",
                "friendly_name": "{{ sensor_name_prefix }}Load Power"
              },
              "custom_hybrid_inverter_id": {
                "entity_id": "sensor.{{ sensor_prefix }}inverter_power",
                "unit_of_measurement": "W",
                "device_class": "power",
                "friendly_name": "{{ sensor_name_prefix }}Inverter Power"
              },
              "custom_batt_forecast_id": {
                "entity_id": "sensor.{{ sensor_prefix }}batt_power",
                "unit_of_measurement": "W",
                "device_class": "power",
                "friendly_name": "{{ sensor_name_prefix }}Battery Power"
              },
              "custom_grid_forecast_id": {
                "entity_id": "sensor.{{ sensor_prefix }}grid_power",
                "unit_of_measurement": "W",
                "device_class": "power",
                "friendly_name": "{{ sensor_name_prefix }}Grid Power"
              },
              "custom_batt_soc_forecast_id": {
                "entity_id": "sensor.{{ sensor_prefix }}batt_soc",
                "unit_of_measurement": "%",
                "device_class": "battery",
                "friendly_name": "{{ sensor_name_prefix }}Battery SOC"
              },
              "custom_cost_fun_id": {
                "entity_id": "sensor.{{ sensor_prefix }}cost_fun",
                "unit_of_measurement": "$",
                "device_class": "monetary",
                "friendly_name": "{{ sensor_name_prefix }}Cost Function"
              },
              "custom_unit_load_cost_id": {
                "entity_id": "sensor.{{ sensor_prefix }}general_price",
                "unit_of_measurement": "$",
                "device_class": "monetary",
                "friendly_name": "{{ sensor_name_prefix }}Buy Price"
              },
              "custom_unit_prod_price_id": {
                "entity_id": "sensor.{{ sensor_prefix }}feed_in_price",
                "unit_of_measurement": "$",
                "device_class": "monetary",
                "friendly_name": "{{ sensor_name_prefix }}Sell Price"
              },
              "custom_optim_status_id": {
                "entity_id": "sensor.{{ sensor_prefix }}optim_status",
                "unit_of_measurement": "",
                "friendly_name": "{{ sensor_name_prefix }}Optimisation Status"
              }
            }
          }
        },
        {
          "action": "rest_command.emhass_publish_data",
          "metadata": {},
          "data": {
            "payload": "{{ combine(common, payload) | to_json(pretty_print=true) }}"
          },
          "alias": "Publish Energy Plan to HA"
        }
      ],
      "alias": "Generate EMHASS Energy Plan (MPC)",
      "description": "Runs EMHASS MPC optimizer, generating an optimal energy plan"
    },
    "blueprint_inputs": null,
    "context": {
      "id": "01KAQYXP97PKKKAQ4NC93APCPM",
      "parent_id": null,
      "user_id": "d8ed6ce3e54a42a2b58cf041b9706ccd"
    }
  },
  "logbookEntries": [
    {
      "state": "on",
      "entity_id": "script.generate_emhass_energy_plan_mpc",
      "when": 1763888257.320152,
      "context_user_id": "d8ed6ce3e54a42a2b58cf041b9706ccd"
    }
  ]
}
