Ostrom energy
Use Ostrom API data to fetch hourly day-ahead spot prices, plan cheapest appliance or EV charging windows, and trigger smart-home actions from price thresholds.From its SKILL.md
npx -y skills add pmagnomuller/ostrom-energyAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
3.9 KB, 929 tokens by cl100k_base, as published. Nobody here has run it
Ostrom Energy
When to use
Use when the user asks about:
- Current or upcoming electricity spot prices
- Cheapest time to run a load (dishwasher, laundry, EV charging)
- Device actions based on price thresholds
Setup
Set environment variables before running:
export OSTROM_CLIENT_ID="your_ostrom_client_id"
export OSTROM_CLIENT_SECRET="your_ostrom_client_secret"
export OSTROM_ZIP="optional_zip_code"
export OSTROM_ENV="production" # or sandbox
OSTROM_ZIP is optional, but recommended to include local taxes/levies and grid/base fees.
You can also copy .env.example to .env and fill values locally:
cp .env.example .env
Alternatively, for shareable/persistent configuration, create:
~/.config/ostrom-energy/config.json
You can copy the template from this repo:
cp config.json.example ~/.config/ostrom-energy/config.json
The scripts will use credentials in this order:
- environment variables (
OSTROM_*) ~/.config/ostrom-energy/config.json- interactive prompt (only if you pass
--prompt-missing-secrets)
Run
Use the wrapper from the skill directory:
bash run.sh prices
Commands
1) Fetch current and upcoming hourly spot prices
bash run.sh prices --hours 36
2) Find optimal time for appliance or EV charging
Estimate hours from kwh / power-kw, then find cheapest contiguous block:
bash run.sh optimize \
--kwh 28 \
--power-kw 11 \
--window-start "2026-04-27T18:00:00+02:00" \
--window-end "2026-04-28T08:00:00+02:00"
For fixed duration instead of kWh:
bash run.sh optimize --duration-hours 2
3) Control smart-home devices by price threshold
Use shell commands for your automation endpoint, Home Assistant script, or smart plug CLI.
Dry-run:
bash run.sh control \
--price-below 0.20 \
--on-command "ha service call switch.turn_on --entity_id switch.ev_charger" \
--off-command "ha service call switch.turn_off --entity_id switch.ev_charger"
Execute commands:
bash run.sh control \
--price-above 0.40 \
--on-command "ha service call switch.turn_on --entity_id switch.boiler" \
--off-command "ha service call switch.turn_off --entity_id switch.boiler" \
--execute
Notes
- The skill obtains an OAuth2 token via client credentials (
/oauth2/token) before each run. - Prices come from
/spot-pricesand are shown as:spot=grossKwhPrice(ct/kWh)taxes=grossKwhTaxAndLevies(ct/kWh)total=spot + taxes
optimizeandcontrolusetotalconverted to EUR/kWh.- Start with dry-run control mode and verify commands before
--execute.
Safety
- Never commit or publish
.envwith real credentials. - Keep
--executeoff until threshold logic is verified in dry-run. - Treat
--on-commandand--off-commandas trusted input only (they run as shell commands). - By default the scripts are non-interactive; pass
--prompt-missing-secretsonly when you want to enter credentials interactively.
Publisher Checklist (ClawHub)
- Include:
SKILL.md,run.sh,ostrom_energy.py,.env.example,config.json.example,.gitignore - Exclude:
.env,__pycache__/, local logs, temporary files - Validate from a clean shell:
cp .env.example .envand fill valid credentialsbash run.sh prices --hours 6bash run.sh optimize --duration-hours 2bash run.sh control --price-below 0.20 --on-command "echo on" --off-command "echo off"
What ships with it: 6 files
17.8 KB alongside SKILL.md, 2 of them executable
- config.json.example160 B
- .env.example223 B
- .gitignore34 B
- ostrom_energy.pyruns15.5 KB
- README.md1.6 KB
- run.shruns291 B