Har søkt rundt etter dette tidligere, men aldri funnet en grei løsning. Hatt litt ledig tid nå, så tittet litt i message stream i dataene fra energy guard (publiseres hver hele klokketime). Ser at følgende data publiseres:
{
“serv”: “energy_price”,
“type”: “evt.energy_price.report”,
“val_t”: “object”,
“val”: {
“price”: 121,
“from”: “2023-12-01T00:00:00+01:00”,
“to”: “2023-12-01T01:00:00+01:00”,
“currency”: “NOK”,
“scale”: 100,
“energy_unit”: “kWh”,
“percentile”: 21,
“average”: 178,
“classification”: “low”
},
“props”: null,
“tags”: null,
“src”: “energy_guard”,
“ver”: “1”,
“uid”: “7cdf574a-3bb6-4c7d-94f2-63c46d9dbb7b”,
“topic”: “pt:j1/mt:evt/rt:app/rn:energy_guard/ad:1”
}
Her ligger jo “percentile”!!!
Så, ved en vanlig strømprisautomasjon hentes pris ($.price) og snitt ($.average):
Har nå lagt til percentil ($.percentile), og deretter regnet om slik at jeg får en variabel, N_cheapest, som er et tall mellom 1 og 24. 1 er døgnets billigste time, og 24 er døgnets dyreste time. Dersom du ønsker å la noe være på i de X billigste timer brukes da følgende kriterie:
appliance ON if N_cheapest<X+1
Jeg har ikke brukt dette lenge, så vet ikke hvordan det virker. Men jeg skjønner ikke hvorfor det ikke skal virke!
Første transform setter lokal variabel “percentile”. Andre transform gjør om til time (med desimaler), og lagrer til en midlertidig, lokal variabel “temp3”. Tredje transform fjerner desimaler (temp3-temp3%1) og legger til 1, slik at du får den N billigste timen. Denne lagres i global variabel “N_cheapest”.
Det er fortsatt et problem at man ikke “ser” over til neste døgn/natt, men får tenke mer på det senere. Innspill?
Flow: