Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Grid-aware energy load shifter for Home Assistant. Reads real-time electricity prices (TOU, time-of-use, dynamic pricing), solar production forecasts, batter...
Grid-aware energy load shifter for Home Assistant. Reads real-time electricity prices (TOU, time-of-use, dynamic pricing), solar production forecasts, batter...
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run.
Shift heavy residential loads to the cheapest electricity hours using Home Assistant energy data.
# Find all energy-related entities in HA python3 {baseDir}/scripts/ha_bridge.py discover # Get a full energy dashboard snapshot (prices, solar, consumption, batteries) python3 {baseDir}/scripts/ha_bridge.py energy-summary # Turn on the EV charger python3 {baseDir}/scripts/ha_bridge.py call-service switch/turn_on --entity-id switch.ev_charger
Two paths to reach Home Assistant: MCP (preferred): If the HA MCP server is configured, use mcporter call homeassistant.<tool> directly. REST API: Use python3 {baseDir}/scripts/ha_bridge.py. Requires HA_URL and HA_TOKEN environment variables.
Required credentials: VariableDescriptionHA_URLHome Assistant base URL (e.g. http://homeassistant.local:8123)HA_TOKENHome Assistant Long-Lived Access Token Least-privilege recommendations: Create a dedicated Home Assistant user account for this skill (e.g. openclaw-energy) Generate a Long-Lived Access Token from that account only Limit the account's entity access to energy-related entities if your HA setup supports entity-level permissions Test with read-only commands first (discover, energy-summary) before enabling device control Domain allowlist: The call-service command restricts actions to energy-related domains only: switch, automation, script, climate, water_heater, input_boolean, input_number, number. All other domains (e.g. lock, alarm_control_panel) are blocked with exit code 2.
CommandWhat it doesExamplediscoverList all energy entitiesha_bridge.py discoverenergy-summaryOne-shot dashboard (prices + consumption + solar + storage)ha_bridge.py energy-summarystatus <entity>Read a single entity's state and attributesha_bridge.py status sensor.electricity_pricecall-service <d/s>Call an energy-related HA service (restricted to allowed domains)ha_bridge.py call-service switch/turn_on --entity-id switch.ev_chargerhistory <entity>Get state changes over last N hoursha_bridge.py history sensor.grid_import --hours 24 All commands output JSON to stdout.
Follow these steps when asked about energy optimization: Discover available energy entities: run discover or energy-summary Read prices: Check pricing entities' state and attributes β look for: Hourly price arrays in today / tomorrow / prices_today / rates attributes price_level attribute (CHEAP / NORMAL / EXPENSIVE) Current vs. average price comparison Identify deferrable loads: Find switch.* entities for schedulable devices (EV charger, pool pump, dishwasher, washer/dryer, water heater) Find the cheapest window: Scan hourly prices for the contiguous N-hour block with the lowest sum (N = estimated run time of device) Execute: Call switch/turn_on at the optimal time, or automation/trigger if the user has an existing automation
Different integrations expose prices differently: Hourly arrays (Nordpool, ENTSO-e, Octopus): Read today/tomorrow attributes β find cheapest hours Price level (Tibber): Read price_level β act when CHEAP or VERY_CHEAP Real-time (Amber Electric): Read 5-minute pricing β shift loads immediately when cheap Utility meter tariffs: Read sensor.*_peak vs sensor.*_offpeak β user's HA automations switch tariffs at configured times Static TOU: Read current_price attribute β compare against historical average
When recommending a shift, show estimated savings: savings = (current_rate - cheapest_rate) Γ device_power_kw Γ run_duration_hours
If solar sensors exist, align loads with peak production: Read sensor.forecast_solar_* or sensor.solcast_* for today's forecast Shift loads to hours with highest expected production This avoids grid import entirely β savings = full retail rate Γ kWh shifted
HVAC is the largest residential load (40-50% of electricity). Pre-cool or pre-heat during cheap/solar hours so the home coasts through expensive peak periods: Read climate.* entities for current HVAC mode and setpoint During cheapest window: lower cooling setpoint by 2-3F (pre-cool) or raise heating setpoint by 2-3F (pre-heat) During peak window: raise cooling setpoint by 2-3F to coast on thermal mass Savings estimate: 1.5-3 kW shifted Γ price differential Γ hours
Electric water heaters (4.5 kW typical) are ideal deferrable loads: Find switch.water_heater or water_heater.* entities Heat during cheapest/solar window to full temperature Turn off during peak hours (tank maintains temperature for 4-6 hours) Savings estimate: 4.5 kW Γ price differential Γ 3-4 hours/day
If home battery entities exist (sensor.battery_soc, sensor.powerwall_*, sensor.enphase_*): Read current state of charge and charge/discharge rate limits Charge from grid during cheapest hours (or from solar) Discharge to home during peak price hours to avoid grid import Advanced: If battery supports grid export and VPP enrollment, discharge to grid during extreme price events ($2,000+/MWh) Savings estimate: battery_capacity_kwh Γ (peak_rate - valley_rate)
For homes enrolled in utility demand response or virtual power plant programs: Read demand response signal entities (if available via HA integration) When DR event active: shed non-critical loads, pre-cool/pre-heat, discharge battery Estimate DR payment: kW reduced Γ event duration Γ program rate
For detailed entity patterns across providers, read: energy_entities.md
Agent frameworks, memory systems, reasoning layers, and model-native orchestration.
Largest current source with strong distribution and engagement signals.