Automating SolarEdge Power Limiting with Home Assistant

Since 2026, exporting solar power back to the grid in the Netherlands actually costs money. The old net metering scheme (“salderingsregeling”) is being phased out, and the new rules mean that every kWh you push back comes with a fee. So instead of letting the inverter run at full blast and paying for the privilege of giving away electricity, I set up Home Assistant to automatically throttle the SolarEdge inverter when export gets too high.

The setup

ComponentDetails
InverterSolarEdge SE3000
IntegrationSolarEdge Modbus Multi (HACS)
Smart meterDSMR via Electricity Meter entities
Home AssistantRunning locally at 10.0.0.30
NotificationsHA Companion App on my phone

How it works

The SolarEdge inverter supports Modbus TCP, which means you can read and write registers over the network — including a site power limit. Combined with the SolarEdge Modbus Multi integration from HACS, Home Assistant gets full control over the inverter’s output.

The logic is simple:

  1. Monitor grid export via the smart meter
  2. If exporting > 0.5 kW for 5 minutes → throttle the inverter down to 1800W
  3. If export drops below 0.1 kW for 3 minutes → restore full power (3000W)
  4. Send a notification either way so I know what’s happening

Configuration

Step 1: Enable Modbus TCP

Modbus TCP needs to be enabled on the inverter itself (port 1502). This is a one-time setting in the SolarEdge commissioning interface.

Step 2: Install the integration

The SolarEdge Modbus Multi integration from HACS gives Home Assistant access to the inverter’s power control registers. Once installed, you get entities for the site limit, control mode, and a commit button.

Step 3: Set the control mode

EntityValue
select.solaredge_i1_limit_control_modeProduction Control
number.solaredge_i1_site_limit3000 W (max for SE3000)

After changing any power setting, you must press button.solaredge_i1_commit_power_settings to write the changes to the inverter. This is easy to forget and the most common reason for “it’s not working.”

The automations

Throttle on high export

When the smart meter reports more than 0.5 kW of export sustained for 5 minutes, the automation kicks in and drops the site limit to 1800W:

automation:
  - id: solaredge_limit_production
    alias: "SolarEdge - Limit production on export"
    trigger:
      - platform: numeric_state
        entity_id: sensor.electricity_meter_energieproductie
        above: 0.5
        for:
          minutes: 5
    action:
      - service: number.set_value
        target:
          entity_id: number.solaredge_i1_site_limit
        data:
          value: 1800
      - service: button.press
        target:
          entity_id: button.solaredge_i1_commit_power_settings
      - service: notify.mobile_app_nothing_phone
        data:
          message: "Export > 0.5 kW for 5 min. Production limited to 1800W."

Restore on low export

When export drops below 0.1 kW for 3 minutes, full power is restored:

  - id: solaredge_restore_production
    alias: "SolarEdge - Restore production"
    trigger:
      - platform: numeric_state
        entity_id: sensor.electricity_meter_energieproductie
        below: 0.1
        for:
          minutes: 3
    action:
      - service: number.set_value
        target:
          entity_id: number.solaredge_i1_site_limit
        data:
          value: 3000
      - service: button.press
        target:
          entity_id: button.solaredge_i1_commit_power_settings
      - service: notify.mobile_app_nothing_phone
        data:
          message: "Export < 0.1 kW for 3 min. Production restored to 3000W."

The 5-minute and 3-minute delays prevent the system from flapping on and off with every passing cloud. The restore threshold (0.1 kW) is deliberately lower than the limit threshold (0.5 kW) to create a dead zone that avoids oscillation.

Adapting to your setup

Most guides online assume a HomeWizard P1 meter, which reports power in watts with negative values for export. My setup uses the DSMR integration, which reports export as a separate positive sensor in kW. Here’s the translation:

HomeWizard P1 setupDSMR setup
sensor.hw_p1meter_power (W, negative = export)sensor.electricity_meter_energieproductie (kW, positive = export)
Trigger: power < −500 WTrigger: export > 0.5 kW
Restore: power > −100 WRestore: export < 0.1 kW
Site limit: 3700 WSite limit: 3000 W (SE3000 max)

The original guide also used 3700W as the max site limit. The SE3000 only does 3000W — make sure you use the actual max for your inverter model.

Key entities reference

Control

  • select.solaredge_i1_limit_control_mode — must be set to Production Control
  • number.solaredge_i1_site_limit — the power cap in watts
  • button.solaredge_i1_commit_power_settings — writes changes to the inverter
  • switch.solaredge_i1_advanced_power_control — enables advanced power control

Monitoring

  • sensor.solaredge_i1_ac_power — current AC output (W)
  • sensor.solaredge_i1_dc_power — current DC input (W)
  • sensor.electricity_meter_energieproductie — current grid export (kW)
  • sensor.electricity_meter_energieverbruik — current grid consumption (kW)

Troubleshooting

  • Site limit shows unavailable: check that the limit control mode isn’t set to Disabled
  • Changes have no effect: you probably forgot to press the commit button — it’s required after every change
  • Modbus connection lost: make sure the inverter has a static IP (DHCP reservation)
  • No notifications: verify the HA Companion App is logged in and notifications are enabled

Was it worth it?

Absolutely. The automation runs silently in the background and I get a phone notification whenever it kicks in. On a sunny day it triggers 2-3 times, saving me from exporting at a loss. The whole setup took about an hour to configure, and the Modbus integration makes it surprisingly clean — no hardware modifications, no cloud dependencies, just local network control over the inverter.