Settings guide and FAQ
App settings (Apps → Swiss Dynamic Electricity Tariff → Configure)
Read-only overview page: what the app does, the recommended settings, and the live values of your device (current price, energy/grid split, next price, rank, min/avg/max, price level and today’s curve). It refreshes every minute.
Pairing
- Metering point number: the 33-character “CH…” number from your utility.
- API token: provided by your utility for the Innostrom API.
- Wrong credentials give a 403. That means either the token or the metering point number is wrong, so check both.
- If the token is rejected later, use the device’s Repair function. It must be the same metering point; for a different one, pair a new device.
Trying it without a contract
Innostrom runs a public test environment with constant dummy prices, which is enough to check that pairing and the Flow cards work. The public test metering point number and token are listed in Innostrom’s test API documentation: Innostrom API v2 Documentation
- Pair with the test metering point number and the test token. The app recognises the test metering point and switches the device to the test environment automatically.
- You can also switch later in the device settings under Access → Environment (Production / Test). Your own production credentials do not work on the test environment.
- The test environment always returns the same price, so price level, rank and the cheapest-block cards have nothing to compare. Real fluctuating prices need a production metering point and token.
Device settings (gear icon on the device)
Access
- Metering point number, API token, environment (Production / Test). Test uses Innostrom’s public test environment with constant prices.
Price
- Price used for Flows: Total (energy + grid), Energy only, or Grid only. Total is the one that matters for decisions. It is used by the conditions and the cheapest-block cards.
- VAT (%): default 8.1. Added on top of the API prices (which are excl. VAT). Set 0 to show prices excl. VAT.
- Fallback price (CHF/kWh): used when no price data is available. 0 = off (shows nothing). Keep it at 0 until your real tariff is known.
Price level thresholds (% of the daily average)
- Defaults: very cheap < 75, cheap < 90, expensive > 110, very expensive > 125.
What the device shows
All prices are in Rp./kWh incl. VAT: current price (total), energy part, grid part, next quarter-hour, today’s lowest / highest / average, rank today (1 = cheapest quarter-hour), price level, “No prices for tomorrow” alarm, last update, and a “Refresh prices now” button.
When are prices fetched?
- On app start: today and tomorrow.
- Every day from 16:05: tomorrow’s prices. If they are not complete yet, it retries every 15 minutes until 23:45.
- At 18:30 without tomorrow’s prices, the alarm turns on and the fallback price (if set) takes over.
- Network or server errors: retry after 1, 2, 5, 10, 15 minutes, then wait for the next regular attempt.
- The price slot switches exactly on every quarter-hour.
Dashboard widget
Shows the current price, level, next price, rank, min/avg/max, the price curve for today and tomorrow (green = cheap, red = expensive, bar outline = now), a refresh button and the last update time.
FAQ
Which utilities are supported?
Any utility that offers dynamic tariffs through the Innostrom (Swisspower) API. The first target is AEW Classic Dynamic (from 1 Jan 2027). If you use another one, please tell me in the thread.
Why do I only see constant prices?
You are on the test environment, which always returns the same price (see “Trying it without a contract”). Real fluctuating prices need a production metering point and token from your utility.
Why are there no prices for tomorrow yet?
They are normally published around 16:00. Before that, an empty “tomorrow” is expected and not an error.
What happens on the days with the time change?
Days have 92 or 100 quarter-hours instead of 96. The app handles this. The hourly-prices card cannot build 24 values on the spring day (the 02:00 hour does not exist) and returns an error that day.
How do I use the cheapest block cards?
Pick the duration in hours and a search window. “Fixed window” repeats daily (e.g. 22:00–06:00, may cross midnight), “from now until” is for Flows that start at any moment, and “within the next N hours” needs no clock time at all. All three return start, end, average price and (the last two) minutes until start as tokens.
How do I feed an EMS or other app with hourly prices?
Use “Get today’s / tomorrow’s hourly prices”. It returns a JSON array of 24 values (index 0 = 00:00–01:00, local time), each the average of the four quarter-hours, in Rp./kWh incl. VAT. Homey tokens have no array type, so it is a JSON string. If an hour is missing and no fallback price is set, the card fails instead of returning an incomplete array.
Why are there two “refresh“ cards?
“Reload prices now” is the app’s own card. “Press the button” is generated automatically by Homey for the device’s refresh button. Both do the same. I’ll revisit this in a later version.
Are the prices incl. or excl. VAT?
The API delivers excl. VAT. The app adds the VAT setting (8.1% default) for everything it shows and for the Flow cards.
Does it need cloud access or permissions?
No special Homey permissions. It only talks to the Innostrom API. Your token stays on your Homey and is never logged. Homey Pro (local) only.
My Flow cards and values do not match my utility bill
Compare the same price component: the app’s “total” is energy + grid incl. VAT. Utilities may add fixed fees that are not part of the 15-minute price.
Questions, bugs and feature wishes are welcome here in the thread or on GitHub.