PeterH24x7 / -Solar-Analytics-integration-for-Home-Assistant-Energy-monitoring

Integration of the Solar Analytics public API for solar PV system status, and energy/power data for all available channels.
19 stars 1 forks source link

Periods of offline aren't handled well in the 5min sensors #24

Open aaronpowell opened 1 day ago

aaronpowell commented 1 day ago

I had my Solar Analytics offline for about half a days' worth of time, and that spanned through the night and what I've noticed is that all the sensors are reporting unavailable for their values, despite data now being present in Solar Analytics, and via their API.

Sensor example

I think the problem is because of this starting code in each template:

{%- if (value_json is defined) 
              and (value_json.data[0].energy_consumed|is_number or value_json.data[1].energy_consumed|is_number) 
              and (value_json.data[0].energy_generated|is_number or value_json.data[1].energy_generated|is_number)
            -%}

If the first two items are null then it won't ever parse beyond that.

For reference, here's the payload that I get back for today, note that the API started returning data at 9:05am:

{
  "data": [
    {
      "t_stamp": "2024-09-27 00:00:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 00:05:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 00:10:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 00:15:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 00:20:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 00:25:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 00:30:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 00:35:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 00:40:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 00:45:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 00:50:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 00:55:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 01:00:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 01:05:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 01:10:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 01:15:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 01:20:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 01:25:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 01:30:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 01:35:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 01:40:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 01:45:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 01:50:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 01:55:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 02:00:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 02:05:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 02:10:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 02:15:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 02:20:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 02:25:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 02:30:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 02:35:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 02:40:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 02:45:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 02:50:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 02:55:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 03:00:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 03:05:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 03:10:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 03:15:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 03:20:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 03:25:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 03:30:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 03:35:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 03:40:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 03:45:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 03:50:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 03:55:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 04:00:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 04:05:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 04:10:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 04:15:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 04:20:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 04:25:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 04:30:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 04:35:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 04:40:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 04:45:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 04:50:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 04:55:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 05:00:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 05:05:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 05:10:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 05:15:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 05:20:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 05:25:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 05:30:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 05:35:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 05:40:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 05:45:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 05:50:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 05:55:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 06:00:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 06:05:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 06:10:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 06:15:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 06:20:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 06:25:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 06:30:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 06:35:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 06:40:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 06:45:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 06:50:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 06:55:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 07:00:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 07:05:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 07:10:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 07:15:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 07:20:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 07:25:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 07:30:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 07:35:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 07:40:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 07:45:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 07:50:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 07:55:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 08:00:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 08:05:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 08:10:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 08:15:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 08:20:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 08:25:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 08:30:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 08:35:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 08:40:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 08:45:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 08:50:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 08:55:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 09:00:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "energy_generated": 838.9292,
      "energy_consumed": 47.4104,
      "t_stamp": "2024-09-27 09:05:00"
    },
    {
      "energy_generated": 803.7239,
      "energy_consumed": 42.227,
      "t_stamp": "2024-09-27 09:10:00"
    },
    {
      "energy_generated": 554.4642,
      "energy_consumed": 41.6158,
      "t_stamp": "2024-09-27 09:15:00"
    },
    {
      "energy_generated": 739.2681,
      "energy_consumed": 39.2234,
      "t_stamp": "2024-09-27 09:20:00"
    },
    {
      "energy_generated": 297.6642,
      "energy_consumed": 43.2425,
      "t_stamp": "2024-09-27 09:25:00"
    },
    {
      "energy_generated": 242.1733,
      "energy_consumed": 41.8322,
      "t_stamp": "2024-09-27 09:30:00"
    },
    {
      "energy_generated": 241.5744,
      "energy_consumed": 40.9991,
      "t_stamp": "2024-09-27 09:35:00"
    },
    {
      "energy_generated": 256.3053,
      "energy_consumed": 41.6517,
      "t_stamp": "2024-09-27 09:40:00"
    },
    {
      "energy_generated": 333.6461,
      "energy_consumed": 50.9344,
      "t_stamp": "2024-09-27 09:45:00"
    },
    {
      "energy_generated": 442.1143,
      "energy_consumed": 34.191,
      "t_stamp": "2024-09-27 09:50:00"
    },
    {
      "energy_generated": 535.4792,
      "energy_consumed": 47.3254,
      "t_stamp": "2024-09-27 09:55:00"
    },
    {
      "energy_generated": 316.5991,
      "energy_consumed": 56.3555,
      "t_stamp": "2024-09-27 10:00:00"
    },
    {
      "energy_generated": 637.6036,
      "energy_consumed": 48.7292,
      "t_stamp": "2024-09-27 10:05:00"
    },
    {
      "energy_generated": 515.963,
      "energy_consumed": 49.573,
      "t_stamp": "2024-09-27 10:10:00"
    },
    {
      "energy_generated": 416.5216,
      "energy_consumed": 51.7185,
      "t_stamp": "2024-09-27 10:15:00"
    },
    {
      "energy_generated": 230.5481,
      "energy_consumed": 54.4808,
      "t_stamp": "2024-09-27 10:20:00"
    },
    {
      "energy_generated": 611.1447,
      "energy_consumed": 43.5511,
      "t_stamp": "2024-09-27 10:25:00"
    },
    {
      "energy_generated": 644.3836,
      "energy_consumed": 39.9497,
      "t_stamp": "2024-09-27 10:30:00"
    },
    {
      "energy_generated": 354.3156,
      "energy_consumed": 45.5345,
      "t_stamp": "2024-09-27 10:35:00"
    },
    {
      "energy_generated": 390.6288,
      "energy_consumed": 42.4877,
      "t_stamp": "2024-09-27 10:40:00"
    },
    {
      "energy_generated": 559.3437,
      "energy_consumed": 40.1487,
      "t_stamp": "2024-09-27 10:45:00"
    },
    {
      "energy_generated": 696.095,
      "energy_consumed": 39.007,
      "t_stamp": "2024-09-27 10:50:00"
    },
    {
      "energy_generated": 781.8511,
      "energy_consumed": 37.5622,
      "t_stamp": "2024-09-27 10:55:00"
    },
    {
      "energy_generated": 702.4225,
      "energy_consumed": 38.5533,
      "t_stamp": "2024-09-27 11:00:00"
    },
    {
      "energy_generated": 730.5208,
      "energy_consumed": 37.863,
      "t_stamp": "2024-09-27 11:05:00"
    },
    {
      "energy_generated": 717.6786,
      "energy_consumed": 42.3675,
      "t_stamp": "2024-09-27 11:10:00"
    },
    {
      "energy_generated": 580.4567,
      "energy_consumed": 47.9212,
      "t_stamp": "2024-09-27 11:15:00"
    },
    {
      "energy_generated": 454.4387,
      "energy_consumed": 49.5201,
      "t_stamp": "2024-09-27 11:20:00"
    },
    {
      "energy_generated": 348.1625,
      "energy_consumed": 48.7072,
      "t_stamp": "2024-09-27 11:25:00"
    },
    {
      "energy_generated": 651.3458,
      "energy_consumed": 44.2744,
      "t_stamp": "2024-09-27 11:30:00"
    },
    {
      "energy_generated": 725.5636,
      "energy_consumed": 43.1052,
      "t_stamp": "2024-09-27 11:35:00"
    },
    {
      "energy_generated": 1018.6639,
      "energy_consumed": 39.9425,
      "t_stamp": "2024-09-27 11:40:00"
    },
    {
      "energy_generated": 950.5509,
      "energy_consumed": 59.4745,
      "t_stamp": "2024-09-27 11:45:00"
    },
    {
      "energy_generated": 624.178,
      "energy_consumed": 51.5395,
      "t_stamp": "2024-09-27 11:50:00"
    },
    {
      "energy_generated": 540.0181,
      "energy_consumed": 104.2619,
      "t_stamp": "2024-09-27 11:55:00"
    },
    {
      "energy_generated": 938.4633,
      "energy_consumed": 207.3064,
      "t_stamp": "2024-09-27 12:00:00"
    },
    {
      "energy_generated": 793.0075,
      "energy_consumed": 166.8697,
      "t_stamp": "2024-09-27 12:05:00"
    },
    {
      "energy_generated": 844.7338,
      "energy_consumed": 86.5999,
      "t_stamp": "2024-09-27 12:10:00"
    },
    {
      "energy_generated": 861.0061,
      "energy_consumed": 209.5958,
      "t_stamp": "2024-09-27 12:15:00"
    },
    {
      "energy_generated": 921.1578,
      "energy_consumed": 111.1859,
      "t_stamp": "2024-09-27 12:20:00"
    },
    {
      "energy_generated": 798.7602,
      "energy_consumed": 64.7632,
      "t_stamp": "2024-09-27 12:25:00"
    },
    {
      "energy_generated": 771.8928,
      "energy_consumed": 133.8209,
      "t_stamp": "2024-09-27 12:30:00"
    },
    {
      "energy_generated": 809.5259,
      "energy_consumed": 208.6259,
      "t_stamp": "2024-09-27 12:35:00"
    },
    {
      "energy_generated": 886.9174,
      "energy_consumed": 82.9247,
      "t_stamp": "2024-09-27 12:40:00"
    },
    {
      "energy_generated": 712.4627,
      "energy_consumed": 78.2074,
      "t_stamp": "2024-09-27 12:45:00"
    },
    {
      "energy_generated": 1016.3339,
      "energy_consumed": 119.3838,
      "t_stamp": "2024-09-27 12:50:00"
    },
    {
      "energy_generated": 603.1883,
      "energy_consumed": 202.3139,
      "t_stamp": "2024-09-27 12:55:00"
    },
    {
      "energy_generated": 449.347,
      "energy_consumed": 202.8653,
      "t_stamp": "2024-09-27 13:00:00"
    },
    {
      "energy_generated": 344.9108,
      "energy_consumed": 182.3844,
      "t_stamp": "2024-09-27 13:05:00"
    },
    {
      "energy_generated": 325.8322,
      "energy_consumed": 43.5011,
      "t_stamp": "2024-09-27 13:10:00"
    },
    {
      "energy_generated": 313.1528,
      "energy_consumed": 51.4011,
      "t_stamp": "2024-09-27 13:15:00"
    },
    {
      "energy_generated": 302.4822,
      "energy_consumed": 47.9316,
      "t_stamp": "2024-09-27 13:20:00"
    },
    {
      "energy_generated": 336.4572,
      "energy_consumed": 40.7375,
      "t_stamp": "2024-09-27 13:25:00"
    },
    {
      "energy_generated": 384.2223,
      "energy_consumed": 41.7212,
      "t_stamp": "2024-09-27 13:30:00"
    },
    {
      "energy_generated": 417.5452,
      "energy_consumed": 41.2452,
      "t_stamp": "2024-09-27 13:35:00"
    },
    {
      "energy_generated": 547.3917,
      "energy_consumed": 44.8572,
      "t_stamp": "2024-09-27 13:40:00"
    },
    {
      "energy_generated": 640.9369,
      "energy_consumed": 84.1038,
      "t_stamp": "2024-09-27 13:45:00"
    },
    {
      "energy_generated": 452.6064,
      "energy_consumed": 205.4237,
      "t_stamp": "2024-09-27 13:50:00"
    },
    {
      "energy_generated": 300.9667,
      "energy_consumed": 204.0372,
      "t_stamp": "2024-09-27 13:55:00"
    },
    {
      "energy_generated": 377.9836,
      "energy_consumed": 202.3733,
      "t_stamp": "2024-09-27 14:00:00"
    },
    {
      "energy_generated": 659.5237,
      "energy_consumed": 201.5242,
      "t_stamp": "2024-09-27 14:05:00"
    },
    {
      "energy_generated": 534.2428,
      "energy_consumed": 198.8904,
      "t_stamp": "2024-09-27 14:10:00"
    },
    {
      "energy_generated": 389.675,
      "energy_consumed": 196.737,
      "t_stamp": "2024-09-27 14:15:00"
    },
    {
      "energy_generated": 703.4928,
      "energy_consumed": 195.7208,
      "t_stamp": "2024-09-27 14:20:00"
    },
    {
      "energy_generated": 622.0127,
      "energy_consumed": 196.4505,
      "t_stamp": "2024-09-27 14:25:00"
    },
    {
      "energy_generated": 592.8003,
      "energy_consumed": 198.1075,
      "t_stamp": "2024-09-27 14:30:00"
    },
    {
      "energy_generated": 782.3249,
      "energy_consumed": 196.1649,
      "t_stamp": "2024-09-27 14:35:00"
    },
    {
      "energy_generated": 656.097,
      "energy_consumed": 188.7882,
      "t_stamp": "2024-09-27 14:40:00"
    },
    {
      "energy_generated": 789.4083,
      "energy_consumed": 184.8133,
      "t_stamp": "2024-09-27 14:45:00"
    },
    {
      "energy_generated": 301.6655,
      "energy_consumed": 189.1616,
      "t_stamp": "2024-09-27 14:50:00"
    },
    {
      "energy_generated": 526.9686,
      "energy_consumed": 193.7094,
      "t_stamp": "2024-09-27 14:55:00"
    },
    {
      "energy_generated": 383.0166,
      "energy_consumed": 189.6477,
      "t_stamp": "2024-09-27 15:00:00"
    },
    {
      "energy_generated": 553.2966,
      "energy_consumed": 64.1749,
      "t_stamp": "2024-09-27 15:05:00"
    },
    {
      "energy_generated": 602.3545,
      "energy_consumed": 63.2772,
      "t_stamp": "2024-09-27 15:10:00"
    },
    {
      "energy_generated": 637.7239,
      "energy_consumed": 63.4919,
      "t_stamp": "2024-09-27 15:15:00"
    },
    {
      "energy_generated": 637.8578,
      "energy_consumed": 62.3683,
      "t_stamp": "2024-09-27 15:20:00"
    },
    {
      "energy_generated": 604.9686,
      "energy_consumed": 43.4908,
      "t_stamp": "2024-09-27 15:25:00"
    },
    {
      "energy_generated": 400.6955,
      "energy_consumed": 42.6978,
      "t_stamp": "2024-09-27 15:30:00"
    },
    {
      "energy_generated": 190.5997,
      "energy_consumed": 46.7228,
      "t_stamp": "2024-09-27 15:35:00"
    },
    {
      "energy_generated": 278.5188,
      "energy_consumed": 43.5147,
      "t_stamp": "2024-09-27 15:40:00"
    },
    {
      "energy_generated": 178.2167,
      "energy_consumed": 46.155,
      "t_stamp": "2024-09-27 15:45:00"
    },
    {
      "energy_generated": 155.6117,
      "energy_consumed": 41.5645,
      "t_stamp": "2024-09-27 15:50:00"
    },
    {
      "energy_generated": 122.9795,
      "energy_consumed": 46.0309,
      "t_stamp": "2024-09-27 15:55:00"
    },
    {
      "energy_generated": 136.262,
      "energy_consumed": 49.8673,
      "t_stamp": "2024-09-27 16:00:00"
    },
    {
      "energy_generated": 159.6708,
      "energy_consumed": 55.2602,
      "t_stamp": "2024-09-27 16:05:00"
    },
    {
      "energy_generated": 135.698,
      "energy_consumed": 57.403,
      "t_stamp": "2024-09-27 16:10:00"
    },
    {
      "energy_generated": 111.9683,
      "energy_consumed": 58.4596,
      "t_stamp": "2024-09-27 16:15:00"
    },
    {
      "energy_generated": 102.9286,
      "energy_consumed": 57.9786,
      "t_stamp": "2024-09-27 16:20:00"
    },
    {
      "energy_generated": 86.5353,
      "energy_consumed": 57.9061,
      "t_stamp": "2024-09-27 16:25:00"
    },
    {
      "energy_generated": 71.7275,
      "energy_consumed": 56.857,
      "t_stamp": "2024-09-27 16:30:00"
    }
  ],
  "t_step": 5
}

It would be preferable that it didn't write off the whole day if the first two time blocks are null.

PeterH24x7 commented 22 hours ago

Hi @aaronpowell - thanks for sharing. This is new data edge-case which I haven't seen before. I gather with the start of a new day things are back to normal for you. The reason the code checks for both [0] and [1] is there were instances where the first energy read after midnight was None (never sure why); in your example there's many more before there's numeric data. More generally this was a check that the returned list contained valid "looking" data. In your example, the data is valid "looking", but is full of nulls (aka None) until much later in the list. I otherwise presume >99% of the time you have no issues. Let me have a think about it. Any solution will be hard to test given the situation is rare, but I think worth looking into. Chrs, Peter

PeterH24x7 commented 12 hours ago

@aaronpowell Here's some test code with a mocked-up value_json based on your sample data above - copy/paste it into the Developer Tools / Template tester. It's an alternative to sa_data_by_5min_energy_consumed and essentially deletes the checks for the [0] and [1] items in the list. It also implements some default values in case the value_json.data list only has a single item with null for energy_consumed (e.g. at midnight). This seems to be a worthwhile improvement and would need to be adapted for all other sa_data_by5min... related sensors.

{% set value_json = 
{
  "data": [
    {
      "t_stamp": "2024-09-27 00:00:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 00:05:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 00:10:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 00:15:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "t_stamp": "2024-09-27 00:20:00",
      "energy_generated": null,
      "energy_consumed": null
    },
    {
      "energy_generated": 20,
      "energy_consumed": 10,
      "t_stamp": "2024-09-27 16:20:00"
    },
    {
      "energy_generated": 21,
      "energy_consumed": 11,
      "t_stamp": "2024-09-27 16:25:00"
    },
    {
      "energy_generated": 22,
      "energy_consumed": 12,
      "t_stamp": "2024-09-27 16:30:00"
    }
  ],
  "t_step": 5
}
%}

{{ value_json }}

          {%- if (value_json is defined) -%}
            {%- set most_recent_sensor_data = value_json['data'] | rejectattr('energy_consumed', 'equalto', None) | list | last -%}
              {{- most_recent_sensor_data.energy_consumed|default(0.0)
                  if most_recent_sensor_data.energy_consumed|default(0.0) > 0.0
                  else 0.0                 
                -}}
          {%- else -%}
            {{- states.sensor.sa_data_by_5min_energy_consumed.state|default(0.0) -}}
          {%- endif -%}