Store entity with its attributes

Hello dear Community,

I have configured an apexcharts-card to monitor the power generation of my PV System.

One problem I noticed, due to some reasons that I ignore, the prevision from solcast fails sometimes to update data correctly. In occurrence, the service updates all the entities of Solcast but fills them with zeros. The dashed lines of the graph obove will then disappear.

What I want to do :

Create a sensor with all attributes of the sensor sensor.solcast_pv_forecast_prognose_heute or simply duplicate it

and update this new sensor only if the state value of the first one is non zero (state of the sensor is the solar energy prevision, should be thus strictly bigger than 0 kWh).

The new sensor will be then always filled with non zero attributes, and I can generate data and sketch them in the apexcharts-card even if the Solcast update fails to get correct data.

“normal attributes” looks like this :

unit_of_measurement: kWh
device_class: energy
icon: mdi:solar-power
friendly_name: Solcast PV Forecast Prognose heute
detailedForecast:
  - period_start: "2025-03-21T00:00:00+01:00"
    pv_estimate: 0
    pv_estimate10: 0
    pv_estimate90: 0
  - period_start: "2025-03-21T00:30:00+01:00"
    pv_estimate: 0
    pv_estimate10: 0
    pv_estimate90: 0
  - period_start: "2025-03-21T01:00:00+01:00"
    pv_estimate: 0
    pv_estimate10: 0
    pv_estimate90: 0
  - period_start: "2025-03-21T01:30:00+01:00"
    pv_estimate: 0
    pv_estimate10: 0
    pv_estimate90: 0
  - period_start: "2025-03-21T02:00:00+01:00"
    pv_estimate: 0
    pv_estimate10: 0
    pv_estimate90: 0
  - period_start: "2025-03-21T02:30:00+01:00"
    pv_estimate: 0
    pv_estimate10: 0
    pv_estimate90: 0
  - period_start: "2025-03-21T03:00:00+01:00"
    pv_estimate: 0
    pv_estimate10: 0
    pv_estimate90: 0
  - period_start: "2025-03-21T03:30:00+01:00"
    pv_estimate: 0
    pv_estimate10: 0
    pv_estimate90: 0
  - period_start: "2025-03-21T04:00:00+01:00"
    pv_estimate: 0
    pv_estimate10: 0
    pv_estimate90: 0
  - period_start: "2025-03-21T04:30:00+01:00"
    pv_estimate: 0
    pv_estimate10: 0
    pv_estimate90: 0
  - period_start: "2025-03-21T05:00:00+01:00"
    pv_estimate: 0
    pv_estimate10: 0
    pv_estimate90: 0
  - period_start: "2025-03-21T05:30:00+01:00"
    pv_estimate: 0
    pv_estimate10: 0
    pv_estimate90: 0
  - period_start: "2025-03-21T06:00:00+01:00"
    pv_estimate: 0
    pv_estimate10: 0
    pv_estimate90: 0
  - period_start: "2025-03-21T06:30:00+01:00"
    pv_estimate: 0.0716
    pv_estimate10: 0.0532
    pv_estimate90: 0.0871
  - period_start: "2025-03-21T07:00:00+01:00"
    pv_estimate: 0.392
    pv_estimate10: 0.2298
    pv_estimate90: 0.4395
  - period_start: "2025-03-21T07:30:00+01:00"
    pv_estimate: 0.9068
    pv_estimate10: 0.5184
    pv_estimate90: 1.0077
  - period_start: "2025-03-21T08:00:00+01:00"
    pv_estimate: 0.7167
    pv_estimate10: 0.551
    pv_estimate90: 0.9086
  - period_start: "2025-03-21T08:30:00+01:00"
    pv_estimate: 1.3988
    pv_estimate10: 0.9555
    pv_estimate90: 1.8139
  - period_start: "2025-03-21T09:00:00+01:00"
    pv_estimate: 2.1584
    pv_estimate10: 1.4654
    pv_estimate90: 2.4038
  - period_start: "2025-03-21T09:30:00+01:00"
    pv_estimate: 2.7136
    pv_estimate10: 1.9688
    pv_estimate90: 2.7691
  - period_start: "2025-03-21T10:00:00+01:00"
    pv_estimate: 3.0455
    pv_estimate10: 2.3018
    pv_estimate90: 3.0455
  - period_start: "2025-03-21T10:30:00+01:00"
    pv_estimate: 3.2602
    pv_estimate10: 2.569
    pv_estimate90: 3.2602
  - period_start: "2025-03-21T11:00:00+01:00"
    pv_estimate: 3.3577
    pv_estimate10: 2.6871
    pv_estimate90: 3.4012
  - period_start: "2025-03-21T11:30:00+01:00"
    pv_estimate: 3.3952
    pv_estimate10: 2.7234
    pv_estimate90: 3.504
  - period_start: "2025-03-21T12:00:00+01:00"
    pv_estimate: 3.4973
    pv_estimate10: 3.4973
    pv_estimate90: 3.4973
  - period_start: "2025-03-21T12:30:00+01:00"
    pv_estimate: 3.4791
    pv_estimate10: 3.4728
    pv_estimate90: 3.4791
  - period_start: "2025-03-21T13:00:00+01:00"
    pv_estimate: 3.4255
    pv_estimate10: 3.2747
    pv_estimate90: 3.4255
  - period_start: "2025-03-21T13:30:00+01:00"
    pv_estimate: 3.2913
    pv_estimate10: 3.0356
    pv_estimate90: 3.2913
  - period_start: "2025-03-21T14:00:00+01:00"
    pv_estimate: 3.1246
    pv_estimate10: 2.7787
    pv_estimate90: 3.1246
  - period_start: "2025-03-21T14:30:00+01:00"
    pv_estimate: 2.8671
    pv_estimate10: 2.434
    pv_estimate90: 2.8671
  - period_start: "2025-03-21T15:00:00+01:00"
    pv_estimate: 2.5552
    pv_estimate10: 2.0525
    pv_estimate90: 2.5552
  - period_start: "2025-03-21T15:30:00+01:00"
    pv_estimate: 2.0383
    pv_estimate10: 1.4602
    pv_estimate90: 2.1717
  - period_start: "2025-03-21T16:00:00+01:00"
    pv_estimate: 1.603
    pv_estimate10: 1.0802
    pv_estimate90: 1.7382
  - period_start: "2025-03-21T16:30:00+01:00"
    pv_estimate: 1.1565
    pv_estimate10: 0.7369
    pv_estimate90: 1.2507
  - period_start: "2025-03-21T17:00:00+01:00"
    pv_estimate: 0.699
    pv_estimate10: 0.4013
    pv_estimate90: 0.7618
  - period_start: "2025-03-21T17:30:00+01:00"
    pv_estimate: 0.2438
    pv_estimate10: 0.1251
    pv_estimate90: 0.2837
  - period_start: "2025-03-21T18:00:00+01:00"
    pv_estimate: 0.0289
    pv_estimate10: 0.0222
    pv_estimate90: 0.0315
  - period_start: "2025-03-21T18:30:00+01:00"
    pv_estimate: 0
    pv_estimate10: 0
    pv_estimate90: 0
  - period_start: "2025-03-21T19:00:00+01:00"
    pv_estimate: 0
    pv_estimate10: 0
    pv_estimate90: 0
  - period_start: "2025-03-21T19:30:00+01:00"
    pv_estimate: 0
    pv_estimate10: 0
    pv_estimate90: 0
  - period_start: "2025-03-21T20:00:00+01:00"
    pv_estimate: 0
    pv_estimate10: 0
    pv_estimate90: 0
  - period_start: "2025-03-21T20:30:00+01:00"
    pv_estimate: 0
    pv_estimate10: 0
    pv_estimate90: 0
  - period_start: "2025-03-21T21:00:00+01:00"
    pv_estimate: 0
    pv_estimate10: 0
    pv_estimate90: 0
  - period_start: "2025-03-21T21:30:00+01:00"
    pv_estimate: 0
    pv_estimate10: 0
    pv_estimate90: 0
  - period_start: "2025-03-21T22:00:00+01:00"
    pv_estimate: 0
    pv_estimate10: 0
    pv_estimate90: 0
  - period_start: "2025-03-21T22:30:00+01:00"
    pv_estimate: 0
    pv_estimate10: 0
    pv_estimate90: 0
  - period_start: "2025-03-21T23:00:00+01:00"
    pv_estimate: 0
    pv_estimate10: 0
    pv_estimate90: 0
  - period_start: "2025-03-21T23:30:00+01:00"
    pv_estimate: 0
    pv_estimate10: 0
    pv_estimate90: 0
detailedHourly:
  - period_start: "2025-03-21T00:00:00+01:00"
    pv_estimate: 0
    pv_estimate10: 0
    pv_estimate90: 0
  - period_start: "2025-03-21T01:00:00+01:00"
    pv_estimate: 0
    pv_estimate10: 0
    pv_estimate90: 0
  - period_start: "2025-03-21T02:00:00+01:00"
    pv_estimate: 0
    pv_estimate10: 0
    pv_estimate90: 0
  - period_start: "2025-03-21T03:00:00+01:00"
    pv_estimate: 0
    pv_estimate10: 0
    pv_estimate90: 0
  - period_start: "2025-03-21T04:00:00+01:00"
    pv_estimate: 0
    pv_estimate10: 0
    pv_estimate90: 0
  - period_start: "2025-03-21T05:00:00+01:00"
    pv_estimate: 0
    pv_estimate10: 0
    pv_estimate90: 0
  - period_start: "2025-03-21T06:00:00+01:00"
    pv_estimate: 0.0358
    pv_estimate10: 0.0266
    pv_estimate90: 0.0435
  - period_start: "2025-03-21T07:00:00+01:00"
    pv_estimate: 0.6494
    pv_estimate10: 0.3741
    pv_estimate90: 0.7236
  - period_start: "2025-03-21T08:00:00+01:00"
    pv_estimate: 1.0577
    pv_estimate10: 0.7532
    pv_estimate90: 1.3613
  - period_start: "2025-03-21T09:00:00+01:00"
    pv_estimate: 2.436
    pv_estimate10: 1.7171
    pv_estimate90: 2.5865
  - period_start: "2025-03-21T10:00:00+01:00"
    pv_estimate: 3.1528
    pv_estimate10: 2.4354
    pv_estimate90: 3.1528
  - period_start: "2025-03-21T11:00:00+01:00"
    pv_estimate: 3.3765
    pv_estimate10: 2.7052
    pv_estimate90: 3.4526
  - period_start: "2025-03-21T12:00:00+01:00"
    pv_estimate: 3.4882
    pv_estimate10: 3.4851
    pv_estimate90: 3.4882
  - period_start: "2025-03-21T13:00:00+01:00"
    pv_estimate: 3.3584
    pv_estimate10: 3.1551
    pv_estimate90: 3.3584
  - period_start: "2025-03-21T14:00:00+01:00"
    pv_estimate: 2.9958
    pv_estimate10: 2.6063
    pv_estimate90: 2.9958
  - period_start: "2025-03-21T15:00:00+01:00"
    pv_estimate: 2.2968
    pv_estimate10: 1.7564
    pv_estimate90: 2.3635
  - period_start: "2025-03-21T16:00:00+01:00"
    pv_estimate: 1.3798
    pv_estimate10: 0.9085
    pv_estimate90: 1.4945
  - period_start: "2025-03-21T17:00:00+01:00"
    pv_estimate: 0.4714
    pv_estimate10: 0.2632
    pv_estimate90: 0.5228
  - period_start: "2025-03-21T18:00:00+01:00"
    pv_estimate: 0.0144
    pv_estimate10: 0.0111
    pv_estimate90: 0.0158
  - period_start: "2025-03-21T19:00:00+01:00"
    pv_estimate: 0
    pv_estimate10: 0
    pv_estimate90: 0
  - period_start: "2025-03-21T20:00:00+01:00"
    pv_estimate: 0
    pv_estimate10: 0
    pv_estimate90: 0
  - period_start: "2025-03-21T21:00:00+01:00"
    pv_estimate: 0
    pv_estimate10: 0
    pv_estimate90: 0
  - period_start: "2025-03-21T22:00:00+01:00"
    pv_estimate: 0
    pv_estimate10: 0
    pv_estimate90: 0
  - period_start: "2025-03-21T23:00:00+01:00"
    pv_estimate: 0
    pv_estimate10: 0
    pv_estimate90: 0
dayname: Friday
dataCorrect: true
attribution: Data retrieved from Solcast

However when the Solcast update is faulty, all values of attributes are equal to zero.

Thank you a lot for helping :slightly_smiling_face:

Hi, have a look at this post on sensor availability, I think is what you are after: Why an availability template is important for energy template sensors

I think you would want to make the availability of the sensor a combination of ‘has value’ and greater than 0, or something like that.

If this sensor is straight from the integration, then this is something the integration maintainers should fix.

Thank you for helping.

Yes this sensor is coming from the integration of Solcast.

The problem is, updates occur via an automation every 4 hours. So, I can’t see whether the values are correct or not before updating. Once it’s done, it’s too late for that sensor, all values are equal to zero. That’s why I want to store it (including its attributes) in another one, which I will be keeping “consistently” different from zero and feeding then to the apexchats-card.
In case update values are equal to zero, the last values will still be there.