Skip to content
Netzero

Powerwall Automation

Netzero automations control Powerwall settings, EV charging, and heating or cooling devices. They can run on a schedule or respond to live events such as the battery state of charge, energy flow, EV charging status, weather forecast, grid status, Storm Watch, Virtual Power Plant (VPP) events, or electricity price.

Automations can trigger based on time or events. The following triggers are available:

  1. Time of day.
  2. At sunrise or sunset, with an optional time offset of up to 4 hours before or after the event. This requires your city location to be set in Settings > Account.
  3. Powerwall state of charge: charged up to, or discharged down to a user-defined threshold.
  4. Vehicle charging starts or stops.
  5. Energy flow-based automations: when home usage, solar generation, grid import, grid export, Powerwall charge, or Powerwall discharge rise above or drop below a threshold.
  6. Electricity price-based automations: when import or export price is above or below a threshold.
  7. Grid status-based automations: when the system goes off-grid or is back on grid.
  8. Storm Watch: when Storm Watch activates or deactivates. See Storm Watch triggers below for when these fire.
  9. Virtual Power Plant (VPP) events: when an event is scheduled, a set number of hours before it starts, when it starts, or when it ends. See Virtual Power Plant event triggers below.
  10. Weather forecast-based automations: when the weather forecast is sunny, partly sunny, or cloudy.
  11. Estimated daily solar generation: when the forecasted solar generation for the day is at or above, or below a threshold (in kWh). This requires your city location and solar panel configuration to be set.
  12. Daily grid import total: when the energy imported from the grid so far today reaches a threshold (in kWh).
  13. Temperature forecast: when the forecasted high or low temperature for the day is at or above, or below a threshold. This requires your city location to be set.

The weather forecast, estimated daily solar generation, and temperature forecast triggers run once per day at a time you pick. A time at or before noon uses that day’s forecast; a time after noon uses the next day’s.

When Storm Watch activates fires when the Powerwall enters Storm Watch, which happens as soon as a weather service issues a warning for the area. The Powerwall begins charging at that point, so it is full before the weather arrives.

How far ahead of the weather that is depends on the kind of warning, and ranges from none at all to a couple of days:

  • A Severe Thunderstorm or Flash Flood Warning is issued once the storm has been detected, so the trigger fires while the weather is already happening.
  • A Red Flag or Winter Storm Warning is issued for a defined period ahead of time, usually around 12 hours out and sometimes up to two days.
  • A Tropical Storm Warning is issued well over a day before the winds arrive, even though it takes effect immediately.

The trigger fires once per Storm Watch, when the Powerwall enters it. It does not fire again at the start of the warning’s own time window, and that window is not a reliable guide to when the weather arrives: some warnings are written for a future period, while others take effect the moment they are issued regardless of how far off the hazard is. For an automation that should only act while the weather is actually happening, add a time restriction or pair the trigger with another condition.

When Storm Watch deactivates fires when the last warning’s window ends and the Powerwall leaves Storm Watch. Opting out of every active event in the Tesla app has the same effect and fires this trigger too. Opting out of an event before it starts means the Powerwall never enters Storm Watch for it, so neither trigger fires.

Storm Watch triggers do not need the Run during Storm Watch events option described in Storm Watch events below: the activation trigger runs even though Storm Watch is active, and the deactivation trigger only fires once Storm Watch has already ended. The option is hidden when either one is selected.

Storm Watch is not available on every system. On a Powerwall that does not support it, these triggers never fire.

All automations can be restricted to specific days of the week, and to a time of year (a date range such as Oct 1 to Mar 31) for seasonal schedules. Event triggers can additionally include a time restriction, to only run during specific time windows.

Notes:

  • Event automations use so-called “edge triggers” (also known as “threshold crossing triggers”). They run when something changes — not just when a condition is true, but when it becomes true. For example, “When Powerwall is charged up to 70%” will only trigger at the moment the Powerwall exceeds that state of charge. This has two important implications:

    • If the Powerwall is always above that threshold (e.g. due to a higher backup reserve setting), the automation will never run.
    • If the event has a time restriction (e.g. between 1-2 PM), and Powerwall is charged up to 70% outside of that time frame, the automation will not run.

    The advantage of edge triggers is that it is easy to understand exactly when an automation will run, and how many times it will run. It is also less likely for one automation to conflict with another (since there is no state associated with automations).

  • The vehicle charging automations are only available if you have a supported EV charger or EV. Similarly for heating and cooling devices.

By default, an automation does not run while a Storm Watch event is active, so that it does not interfere with the Powerwall charging ahead of severe weather. A run that is refused for this reason is listed as failed in the Past Runs tab, with the message “Storm Watch is active, refusing to run automation”. Note that a Powerwall enters Storm Watch as soon as a warning is issued, which can be a day or more before the weather itself.

To run an automation anyway, enable Run during Storm Watch events under Advanced options when editing it. This is useful for restoring your own settings once the event has passed, in combination with the When Storm Watch deactivates trigger.

Automations that are exempt from this rule, and run during Storm Watch without the option:

  • automations with a Storm Watch trigger,
  • automations with a Set Storm Watch participation action, and
  • any automation when every active Storm Watch event has been opted out of in the Tesla app.

A Virtual Power Plant (VPP) event is a period during which Powerwalls enrolled in a VPP program discharge to support the grid. The Virtual Power Plant triggers run an automation around the events scheduled for your system:

  • As soon as a VPP event is scheduled fires when an upcoming event is announced.
  • Before a VPP event starts fires a set number of hours before the event starts, from 1 to 24. If the event is announced with less notice than that, the trigger fires as soon as it is announced.
  • When a VPP event starts fires at the start of the event.
  • When a VPP event ends or is cancelled fires at the end of the event. It also fires when a scheduled event is cancelled, or when you opt out of it in the Tesla app.

Each trigger fires once per event. To change a setting ahead of an event and restore it afterwards, pair an automation that uses Before a VPP event starts with one that uses When a VPP event ends or is cancelled.

Netzero reads the event schedule from Tesla and checks it every 10 minutes, so it can take that long to notice a newly announced or cancelled event. Some VPP programs list an event only shortly before it starts. The first two triggers then fire later than expected, or not at all when the event is already underway by the time it is listed.

An automation that is created, or has its trigger changed, after the trigger’s moment for an event has passed waits for the next event. On a system that is not enrolled in a VPP program through Tesla, these triggers never fire.

The following actions are available:

  • Set Powerwall backup reserve to a user-defined value.
  • Set Powerwall backup reserve to the current state of charge. This will preserve the Powerwall’s charge (prevent it from discharging), for example, when charging an EV.
  • Set operational mode to Self-Powered, Savings, or Backup Mode
  • Set energy exports to Solar only, Everything (solar and battery) or No exports. Note: the No exports mode requires inverter support, and is only available for Powerwall+ and Powerwall 3.
  • Set grid charging to Enabled or Disabled.
  • Turn Storm Watch on or off, like the toggle in the Tesla app. This does not start a Storm Watch event or charge the Powerwall. Not available on systems without Storm Watch support.
  • Start or stop vehicle charging (requires a supported EV charger or EV).
  • Control heating and cooling (requires a supported heating/cooling device): Set heating/cooling permanent hold with a mode (heat, cool, auto, or off) and setpoints, or Follow heating/cooling device schedule to hand control back to the device’s own schedule.
  • Go off-grid or Reconnect to the grid (requires Powerwall Pairing).
  • Configure utility rate plan for grid exports or Restore utility rate plan, to start and end a Powerwall grid export.
  • Send a notification only, with no other actions. Note: this action is only shown if no other actions are selected, since all actions notify by default.

Automations can optionally be configured to run only once. This can be used for one-off automations or to test an automation. After such an automation runs, it will be automatically paused to prevent future runs.

Note: backup reserve values between 81% and 99% are not supported by Tesla and reset to 80%. See Powerwall Backup Reserve Update.

Here are some commonly configured automations, and the goals they accomplish.

EV charging without discharging the Powerwall

Section titled “EV charging without discharging the Powerwall”

When in Self-Powered mode or during peak pricing in Savings mode, charging an EV might result in depleting the Powerwall. Usually that’s not what users want, because the EV battery is much larger than the Powerwall. Netzero automations can prevent that, using integrations with EV or EV charger (learn more). If the EV or EV charger is not supported, there are also automations based on home usage (home usage is usually measurably higher when charging an EV).

Example with a supported EV charger or EV:

When vehicle charging starts: Set backup reserve to the current state of charge (preserve Powerwall charge).
When vehicle charging stops: Set backup reserve to: 20%.

Example without a supported EV or EV charger (replace 8 kW as needed, based on your charging rate):

When home usage rises above 8 kW: Set backup reserve to the current state of charge (preserve Powerwall charge).
When home usage drops below 8 kW: Set backup reserve to: 20%.

By setting the Powerwall backup reserve to its current state of charge, we prevent the battery from discharging. Once EV charging is done, we can reset the backup reserve to its usual value (replace 20% with your desired backup reserve).

Tesla offers two different modes of operation: Self-Powered (using stored energy to power your home after the sun goes down) and Savings (using stored energy to maximize savings based on time-of-use utility plans). Sometimes users want the best of both worlds, e.g. the ability to export the battery to the grid during peak times (which Savings mode offers), while still avoiding grid imports in off-peak times (which Self-Powered mode offers). Automations allow switching between the two modes on a schedule.

Example:

Every day at 4:00 PM: Set operational mode to: Savings.
Every day at 9:00 PM: Set operational mode to: Self-Powered.

You can include additional configuration changes here if needed, e.g. Grid Charging and Energy Exports.

Tesla doesn’t provide much control over charging the Powerwall from the grid. You have to be in Savings mode, have Grid Charging enabled, and even then it’s up to the Savings mode algorithm to decide whether grid charging is needed. Some Netzero users prefer full control over when the battery is charged from the grid. Automations accomplish that by setting the backup reserve to 100% (which will top off the battery) and resetting it after the battery is charged.

Example:

Every day at 12:00 AM: Set backup reserve to: 100%.
Every day at 6:00 AM: Set backup reserve to: 20%.

Note: Replace 20% with your desired backup reserve. Because of Tesla’s limitations, the battery will charge at a lower rate compared to Savings mode charging, ~1.8 kW per Powerwall instead of 5 kW per Powerwall. See Backup Mode for an alternate automation with faster charging.

Users on a dynamic utility rate plan may want to act during periods of low electricity prices, e.g. charge an EV or charge the Powerwall when the electricity price drops below a threshold.

Examples:

When electricity price is below $0.10: Start vehicle charging.
When electricity price is at or above $0.10: Stop vehicle charging.
When electricity price is below $0.10: Set backup reserve to 100%.
When electricity price is at or above $0.10: Set backup reserve to 20%.

Note: Replace the price thresholds and backup reserve with your desired settings.

Adjusting Powerwall behavior based on solar forecast

Section titled “Adjusting Powerwall behavior based on solar forecast”

If you have days with low solar production (e.g. cloudy winter days), you may want to charge the Powerwall from the grid overnight instead of relying on solar. Estimated daily solar generation automations let you adjust Powerwall settings based on the forecasted solar output for the day.

The automation checks the solar estimate once per day at the configured time. If the time is at or before noon, it uses today’s forecast; if after noon, it uses tomorrow’s forecast. This requires your location and solar panel arrays to be configured (Settings > Account, Settings > Solar Estimates).

Example:

When estimated daily solar generation is below 10 kWh (run at 12:00 AM): Set backup reserve to 100%.
Every day at 5:00 AM: Set backup reserve to 20%.

On days when little solar generation is expected, the Powerwall will charge from the grid overnight (by setting backup reserve to 100%). In the morning, the backup reserve is restored. Adjust the 10 kWh threshold based on your system size, and the 20% backup reserve based on your usual setting.

Powerwall settings often need to differ between seasons: a summer schedule that relies on solar, and a winter one that charges from the grid overnight when there is little or no generation. Both sets of automations can be kept side by side. Give each automation a Date range under When it can run, and the automations outside their range are skipped, so the two schedules hand over to each other with no manual step at the turn of the season.

Example:

Every day at 5:00 AM, from Apr 1 to Sep 30: Set backup reserve to: 20%.
Every day at 12:00 AM, from Oct 1 to Mar 31: Set backup reserve to: 100%.
Every day at 6:00 AM, from Oct 1 to Mar 31: Set backup reserve to: 20%.

Date ranges are available on every automation, not just scheduled ones, and can be combined with day-of-week restrictions. A range can wrap the new year (Oct 1 to Mar 31). To keep the two sets apart in the automation list, give each one a group label (see Automation Labels).

The temperature forecast trigger runs once a day at a time you pick, using that day’s forecast when the time is at or before noon and the next day’s forecast after noon. It can prepare the Powerwall for a day of heavy air conditioning or heating, or pre-heat and pre-cool the home with a connected heating/cooling device.

Examples:

When forecasted high temperature is at or above 95F (run at 12:00 AM): Set backup reserve to: 100%.
Every day at 3:00 PM: Set backup reserve to: 20%.
When forecasted low temperature is below 32F (run at 2:00 PM): Set heating/cooling permanent hold (heat setpoint at 70F).
Every day at 9:00 PM: Follow heating/cooling device schedule.

If your utility plan has daily consumption allowances or tiered daily pricing, you can act when the energy imported from the grid reaches a daily threshold.

Examples:

When today's grid import reaches 30 kWh: Send notification.
When today's grid import reaches 30 kWh: Stop vehicle charging.

Note: Replace the 30 kWh threshold with your desired daily limit.

Going off-grid to avoid negative export pricing or demand charges

Section titled “Going off-grid to avoid negative export pricing or demand charges”

If your utility has negative export pricing or demand charges, you can use Go Off-Grid automations to disconnect from the grid during those periods. This requires Powerwall Pairing.

Example with negative export pricing:

When export price is below $0.00: Go off-grid.
When export price is at or above $0.00: Reconnect to the grid.

Example with demand charges during peak hours:

Every day at 4:00 PM: Go off-grid.
Every day at 9:00 PM: Reconnect to the grid.

The only action for these automations is a push notification or email, with no change to the system. Sometimes it’s useful to get notified about the Powerwall state of charge and act on it (especially if the action cannot currently be automated). For example, plug the EV in when the Powerwall is full, or reduce home electricity usage when the Powerwall is down to the backup reserve.

Examples:

When Powerwall is charged up to 100%: Send notification.
When Powerwall is discharged down to backup reserve: Send notification.

Automations can optionally have labels and group labels to improve organization and control.

Labels are short descriptions attached to individual automations. They appear in the automation list, past run history, and notifications.

Groups are special labels shared by multiple automations. When multiple automations use the same group label, they are displayed together in the automation list. The entire group can be paused or resumed at once, which is useful for situational automations that are turned on and off by hand, such as a holiday or away-from-home set. Schedules that should change over on their own, such as summer and winter, are better handled with a date range on each automation (see Seasonal schedules); groups then serve to keep the two sets apart in the list.

Labels and group labels also determine display order. Groups are ordered alphabetically by their label, and automations within a group are ordered by their own labels. To enforce a specific order, prefix labels with numbers. For example:

Group: 1 Summer automations
1 Schedule Savings mode
2 Notify when Powerwall is full
Group: 2 Winter automations
1 Adjust backup reserve based on weather
2 Stop EV charging during grid outage

By default, every automation runs independently: creating multiple automations behaves like OR logic, where each trigger runs its own actions on its own. Sometimes you want AND logic instead: run actions only when several conditions apply at the same time. Merged automations provide this without a complex rule editor — you merge 2-4 existing automations into a single merged automation that runs only when all of its triggers apply together, and then applies the combined actions of all merged automations.

Merged automations are available in Netzero app version 2.6.0 and above.

To create a merged automation, first create each part as a regular standalone automation. Then tap Merge with AND in the automation list, select the automations to combine, and confirm. An automation that only serves as an extra condition can use the Send notification only action: when automations are merged, that action is dropped and only the actions of the other automations run.

Examples of what merging enables:

  • Every day at 8:00 PM, if powerwall charged up to 80%: Set energy exports to: Everything (solar and battery). (a time trigger merged with a state-of-charge condition)
  • When electricity price drops below $0.10 and when Powerwall is discharged down to 20%: Set backup reserve to: 100%. (a price trigger merged with a state-of-charge condition, to charge up the battery only when electricity is cheap and the battery is actually low)

For the second example, create a price automation (“When electricity price drops below $0.10” with the action “Set backup reserve to 100%”) and a notification-only state-of-charge automation (“When Powerwall is discharged down to 20%” with “Send notification only”), then merge the two.

How merged automations behave:

  • Without a time trigger, the merged automation runs at the moment any member trigger fires (the usual edge trigger semantics) while every other condition is currently true. In the backup reserve example above, the automation runs when the price drops below $0.10 while the Powerwall is already below 20%, and also when the Powerwall drops to 20% while the price is already below $0.10 — whichever happens last.
  • With a time trigger, the merged automation runs only at the scheduled time, and only if all other conditions are true at that exact time. If a condition is false at the scheduled time, the automation is skipped for the day, and a skipped entry appears in Past Runs explaining why.
  • Each automation keeps its own optional day, date, and time-window restrictions, and they all have to be satisfied for the merged automation to run.
  • Pausing, resuming, muting, and deleting apply to the merged automation as a whole.
  • Merged automations cannot be edited directly. Unmerge first (this restores the original automations exactly as they were), make the changes, and merge again.

Restrictions: a merged automation combines 2 to 4 automations with at most one time-of-day trigger. All of them must use the same Run during Storm Watch events setting, and their actions must not conflict (for example, two different backup reserve values). Time of day, state of charge, vehicle charging, energy flow, electricity price, grid status, and Storm Watch triggers can be merged. Weather forecast, solar estimate, temperature forecast, and daily grid import triggers cannot, since they do not represent an instantaneous condition that can be checked at a point in time.

Automations can send a notification each time they run, as a push notification in the app, an email, or both. Both are off by default: turn them on in Settings > Notifications.

  • Push notifications are enabled per device, so a phone and a tablet can be set differently.
  • Email notifications go to the email address in Settings > Account.
  • Automations notify only when failing stops notifications for successful runs of every automation. Automations whose only action is Send notification only still notify.

A failed automation is retried automatically, and a failure notification is sent once the retries are used up, so a brief problem such as a Tesla API timeout does not notify. A run that has nothing to do sends no notification either: for example, a Start vehicle charging action when no vehicle is plugged in.

To silence a single automation, mute it: swipe left on the automation in the mobile app, or use the mute icon in the web app. A muted automation keeps running as usual and its runs are still listed under Past Runs, but it sends no notifications at all, including failure notifications. Unmute it the same way. Muting is different from pausing, which stops the automation from running.

Powerwall grid export discharges stored energy to the grid: see Powerwall Grid Export.

  1. Does the Netzero app have to be running for automations to run?

    No, the automations run on the Netzero cloud and do not require the app to run. You can enable notifications (app notifications or email) to keep track of automation runs or failures.

  2. Why did my scheduled automation not run?

    Check the “Past Runs” Automation tab for any failures. If a Storm Watch event is active, automations will fail to run on purpose to avoid interfering with Storm Watch behavior, unless Run during Storm Watch events is enabled for the automation. See Storm Watch events above for the details and the exemptions. In rare cases, a command that Netzero successfully sends to Tesla might get lost on the way from Tesla to your Powerwall (e.g. if the gateway is in a bad state or updating firmware at the time). If this happens repeatedly, try resetting your gateway and contact us if the issue persists.

  3. Why is an automation trigger or action missing?

    Vehicle charging triggers and actions require a supported EV charger or EV, and heating and cooling actions require a connected heating/cooling device. Go off-grid actions require Powerwall Pairing, and the Powerwall grid export action is only shown when the grid connection permits exporting stored energy (see Powerwall Grid Export). Electricity price triggers evaluate the prices of your utility rate plan, so they are only useful with time-varying prices, such as a dynamic utility rate plan. The solar estimate and temperature triggers require your location (and for solar estimates, your solar arrays) to be configured.