[APP][Pro] Power Profiler — Schedule appliances at the cheapest energy price

Hi everyone,

Tired of guessing when to run your washing machine to save on energy costs? Power Profiler takes the guesswork out of it.

What it does

Pair it with any smart plug that reports power usage, and Power Profiler will:

  1. Learn your appliance’s power profile automatically — it detects wash cycles, dry cycles, etc. and builds a minute-by-minute consumption pattern
  2. Fetch day-ahead energy prices from your provider (EasyEnergy, EnergyZero, Frank Energie, ANWB Energie, Mijndomein Energie)
  3. Schedule the cheapest start time — using the actual power profile shape, not just a flat kWh estimate
  4. Trigger a flow when it’s time to start, so you can automate turning on the plug

Flow cards

  • Trigger: “Cheapest start time reached” / “Cycle completed”
  • Condition: “Has a profile” / “Is scheduled”
  • Action: “Schedule cheapest start before deadline” / “Clear schedule”

Tracks your savings

The device page shows total energy used, estimated cost, current electricity price, and cycle count — so you can see exactly how much you’re saving over time.

Requirements

  • Homey Pro (firmware ≥12.2.0)
  • A smart plug with power measurement (e.g. Fibaro Wall Plug, Shelly Plug S, Neo Coolcam)

Links

Feedback and bug reports are very welcome — this is the first release, so I’d love to hear how it works with your appliances!

Both links gave me a 404.

Just add /test to the URL like this:

Thanks @smarthomesven for the quick assist! :+1:

@SingKT — the app is currently in the Test phase, so the regular App Store link doesn’t work yet. As Sven mentioned, you can install it via the test link:

The GitHub link should work though — if it’s still giving you a 404, let me know.

Once the app passes the test phase, the regular link will start working. I’d love for you to give it a try and let me know how it goes!

The GitHub link still gives a 404 :cry:

You can use the link posted in the previous post

:sunny: v1.6.0 now in Test — Solar-aware scheduling

Hi everyone,

Exciting update — v1.6.0 is now available in the Test channel and it’s the biggest update since launch. Power Profiler can now schedule your appliances based on your solar production, not just grid prices.

What’s new

PV Profiler device — pair it with your solar inverter to monitor production. It fetches 48-hour solar forecasts from Solcast and learns a correction factor specific to your installation. If you have a smart meter connected to Homey, the app automatically detects it and uses it for accurate base load profiling.

Virtual Energy Provider device — a real-time dashboard showing:

  • Effective energy price (blended grid + solar)
  • PV surplus and available capacity
  • Household base load
  • Number of scheduled appliances

Smarter scheduling — the scheduler now computes effective prices per time slot. When solar surplus is available, the effective price drops to the feed-in tariff (opportunity cost). Multiple appliances are scheduled sequentially by deadline so they don’t fight over the same sunny slots.

New flow cards:

  • Triggers: surplus available, effective price below threshold, negative spot price, forecast updated
  • Conditions: surplus above, effective price below, PV producing above, forecast tomorrow above
  • Action: refresh Solcast forecast

How to try it

  1. Install Power Profiler from the Test channel
  2. Go to app settings → enter your Solcast API key and rooftop resource ID (free Hobbyist plan)
  3. Add a PV Profiler device → select your PV power source (inverter or monitoring meter)
  4. Add a Virtual Energy Provider device for the dashboard
  5. Your existing scheduler devices automatically use effective prices

Would love your feedback — especially from those of you with solar panels. Does the effective price make sense for your setup? Any flow card ideas?

:book: User documentation now available

I’ve published user documentation for Power Profiler at:

:point_right: Power Profiler

It covers everything you need to get started and get the most out of the app:

  • Getting Started — installation, adding your first Scheduler device, creating your first flow
  • Scheduler Device — how cycle detection works, dashboard explained, threshold settings
  • PV Profiler — setting up Solcast, correction factors, base load profiling
  • Smart Scheduling — standalone scheduling, PV-aware scheduling, capacity-aware multi-appliance scheduling
  • Virtual Energy Provider — effective pricing, surplus detection, capacity dashboard
  • App Settings — price providers, markup configuration, Solcast setup
  • Flow Examples — ready-to-use flows you can copy
  • FAQ / Troubleshooting — common questions and solutions

The docs will be updated with each release. If something is unclear or missing, let me know in this topic.

How can I make sure that the pricing for the power i provide to the grid uses dynamic pricing? I am using Tibber.

Very promising app! Nowadays, however, all appliances have multiple programs that now are recorded under one profiler, which makes it hard to get some benefits from the scheduling possibilities. Would it be possible to add an ‘enable’ parameter so different profilers can be created for one appliance, one for each program, that is activated if the specific program is running? This can be done by creating a flow checking the selected program on the appliance.

Two things to separate here:

  1. Price source. Power Profiler doesn’t read prices from Tibber. The supported dynamic-price providers are EasyEnergy, EnergyZero (hourly and quarterly), Frank Energie (hourly and quarterly), ANWB Energie and Mijndomein Energie (Settings → Price provider). For the Dutch market these all follow the same day-ahead EPEX prices that Tibber’s dynamic tariff is based on, so the shape of the curve is identical: the cheapest and most expensive hours line up with what you see in Tibber, which is what scheduling depends on. The absolute amounts can differ, because providers differ in VAT handling and surcharges (EnergyZero is fetched including VAT, EasyEnergy returns the APX tariffs). Select one there to get dynamic pricing at all.

  2. Feed-in (teruglevering) pricing. Power Profiler already prices exported energy dynamically. It uses the per-slot dynamic return price from your selected provider, combined with the fixed Feed-in tariff (EUR/kWh) you set in Settings (what your contract pays you per exported kWh). You see this through the Virtual Energy Provider (VEP) device: add it and it exposes measure_return_price (the dynamic feed-in price per slot) and measure_effective_price (grid price and your feed-in tariff combined against your real-time surplus). So the export side is already dynamic once you (a) select a supported provider and (b) add the VEP device and set your feed-in tariff.

If you specifically need Tibber as the price source, that’s not available today — let me know and I’ll log it as a feature request.

Great suggestion, and you’ve described the current limitation exactly: a Scheduler device learns one aggregate power profile per plug, so different programs (eco/hot/quick) get averaged into a single profile and per-program scheduling loses accuracy. There isn’t a way today to hold several profiles per appliance or to select the active one from a Flow.

I’ve logged your request on the backlog so it can be picked up: multiple profiles per appliance, with a Flow-selectable active profile (your “enable” parameter that a Flow flips based on the selected program). I’ll report back in this thread once it lands. Thanks for the clear write-up.

Thanks. The pricing side is clear now. I have a separate issue with the PV Profiler’s daily yield.

Current power is detected correctly for all three PV systems, but meter_pv_yield_today remains at 0 for APsystems and Growatt.

In Homey the source devices currently expose:

  • APsystems ECU: measure_power = 1445 W, daily yield appears to be available as meter_power.exported = 17.43 kWh
  • Growatt: measure_power = 435 W, daily yield is available as meter_power.today = 13.7 kWh
  • Sunny Boy: measure_power = 719 W, daily yield is available as meter_power = 5.22 kWh

The resulting PV Profiler devices show:

  • APsystems: 0 kWh today
  • Growatt: 0 kWh today
  • Sunny Boy: about 5.1 kWh today

So it looks as if the profiler currently recognises the Sunny Boy yield source, but not meter_power.exported or meter_power.today.

Could you check whether support for these capabilities can be added, or whether there is already a way to select/map the daily-yield capability per PV device?

The power measurement itself is working correctly, so this seems limited to the daily-yield mapping.

Thanks Theo,

your details pinned it down. The PV Profiler doesn’t read a yield capability from the inverter; it calculates the yield from measure_power over time. It ignored every gap of 5 minutes or more between two power updates. APsystems ECU and Growatt are polled from the cloud roughly every 5 minutes, so nearly every interval was dropped and the yield stayed at 0 kWh. The Sunny Boy updates locally and often, which is why it worked.

Fixed in v1.9.1: each power reading now counts until the next one (up to 20 minutes), so slower inverters are counted correctly. The daily yield also resets at local midnight now instead of 01:00/02:00. No need to map meter_power.today or meter_power.exported.

You can test it via the test version: Power Profiler | Homey
Yield is counted from the moment the update is installed, so today’s value starts partway through the day; tomorrow gives a full-day comparison with your inverters. Let me know how it compares.

@CasperV: multiple profiles per appliance, selectable from a Flow, is included in v1.9.0.