[APP][Pro] Power by the Hour: Insights per hour, day, month and year

Hi Robin,

PV Forecast

Somehow I didn’t notice the LatLon fields before (shame on me), so I entered my home coordinates.
What caught my eye: “auto-detect”:

As the app has access to Homey’s location data:
– What location is used when it can’t fetch Homey’s location?
– Can you add a notification of some kind in case the location can’t be determined (and which generic location is used)?
Just as nice to have.

Thanks!

1 Like

Next version will show the lat lon

1 Like

Yes, you still need to have a condition card (and) to decide if the trigger is within the time frame. The midnight’s change from tomorrow’s rates to today’s rates still triggers the New prices received for tomorrow card. IMO it should only trigger when new prices have been received from the provider. And that is somewhere around 1300-1500 depending on your timezone.

1 Like

Thank you. It seems to work fine when I added the AND -time condition to the flow.

Major new test version 8.8.0 is now available: https://homey.app/a/com.gruijter.powerhour/test

  • Add use of Import vs Export DAP tariffs in all drivers.
  • Reduce memory footprint.
  • Add PV Max power setting.
  • Fix battery earnings.
  • Fix avg price capabilities.
  • Solar location check on start.
  • Improve Solar charts.
  • Solar cloudiness learning improved.
  • Solar curtailment detection and handling improved.
  • New solar icon.
  • Updated translations.
  • Code refactoring.
  • Homey-api@3.17.12.

Beside many bugfixes and under-the-hood code improvements, the Solar driver has had some significant improvements. But the biggest change is the implementation of Import versus Export spot prices:

My provider (FrankEnergy) pays me a lower fee when I export energy to the grid compared to what I have to pay when importing from the grid. The yellow line shows the export (feedback) price. All drivers and devices that use tariffs, like power summarizers, solar and battery, now automatically use the active tariff based on whether your main meter is reporting import (positive power) or export (negative power). This increases the accuracy of the money values over time. When you always want to use export or import prices, you can select that in the device settings.

This is really a huge code change, so please let me know if you find any issues.

8 Likes

In and export rate. I’m happy with it. I used to use two rates. This is a better solution. Just customised my flows.

Strange, after adjusting the decimals from 4 to 3, the yield is in English.

Interesting, Money values for all the Energy Summarizers went to null with the 8.8.0 update. Seems that those will be lost for ever now?

That sux! Will investigate. Were they already using the euro sign before?

You can reconstruct the settings from Insights, correct?

Yes they had € already.
Need to look into Insights what values I can get

1 Like

Can confirm the same, previous periods seem to exist but current are zeroed, currency etc. is OK as is current price..

I confirm the same - without prices - day, year…

Would it be possible to also show the Zonneplan 10% sun bonus on the yellow line (export tariffs), applied between sunrise and sunset?

1 Like

Dont know what that is. But can you not set that up using the time based markups?

The sun bonus is an additional +10% applied to the base (raw) energy price.
It only applies to exported power, and only between sunrise and sunset.

For example, if sunrise is at 07:05, the bonus becomes active from 07:00 (rounded to the full hour).

What would be the correct chart setup or configuration to apply this bonus only to the export tariffs?

stel variabele opslag in op?

1 Like

In principle yes, you could start a flow on sunrise and sunset to change the % markup. But I dont think I implemented that flow card for export tarifs yet.

Going on a short break. Hope I have completely forgotten about this when I get back :sleeping_face::face_blowing_a_kiss:

1 Like

Need more :shark: :tumbler_glass: for additional export tariffs?


Progress is made!

1 Like

Something is indeed off. Some Summarizers are working fine and some resets the previous periods to null, like on this whole house consumption:


But looking from dev tools:

Settings
Key Value
meter_money_this_day 3.8402445402994063
meter_money_this_month 271.86
meter_money_this_year 1171.47
meter_money_last_day 14.085014420249024
meter_money_last_month 649.5126836366684
meter_money_last_year 1676.9539470787086
meter_money_last_hour null
Capabilities
ID Title Type Value Set Value Last Changed
meter_kwh_last_hour kWh prev. hour number -3.142 26 minutes ago
meter_kwh_this_hour kWh this hour number -1.198 2 seconds ago
meter_kwh_last_day kWh prev. day number 70.487 15 hours ago
meter_kwh_this_day kWh this day number 11.437 2 seconds ago
meter_kwh_last_month kWh prev. month number 3155.695 1 month ago
meter_kwh_this_month kWh this month number 1961.887 2 seconds ago
meter_kwh_last_year kWh prev. year number 13499.894 3 months ago
meter_kwh_this_year kWh this year number 8481.725 2 seconds ago
meter_money_last_hour Money prev. hour number null 26 minutes ago
meter_money_this_hour Money this hour number null 2 seconds ago
meter_money_last_day Money prev. day number null 15 hours ago
meter_money_this_day Money this day number null 2 seconds ago
meter_money_last_month Money prev. month number 649.51 1 month ago
meter_money_this_month Money this month number null 2 seconds ago
meter_money_last_year Money prev. year number 1676.95 3 months ago
meter_money_this_year Money this year number null 2 seconds ago
meter_money_this_month_avg Avg. money this month number null

Then I have Summarizers that continue to work ok, like this for the spa:

Im away for some days, so cannot look into it at the moment. Will dive into it when I get back next week.

4 Likes


Enjoy your trip!

One thing I noticed: the battery strategy doesn’t seem to use the additional export prices in its calculations. Could you maybe check what’s going on when you have time?

Changed a bit in com.gruijter.powerhour\lib\flows\batflows.js
const options = {
prices: […this.device.pricesNextHours],
exportPrices: this.device.exportPricesNextHours
? […this.device.exportPricesNextHours]
: (this.device.feedbackPricesNextHours
? […this.device.feedbackPricesNextHours]
: null),
minPriceDelta: args.minPriceDelta,
soc: this.device.soc,
startMinute,
batCapacity: this.device.getSettings().batCapacity,
chargeSpeeds,
dischargeSpeeds,
priceInterval: this.device.priceInterval,
homePowerUsage: this.device.getSettings().roiHomePowerUsage ?? 300,
};