SolarEdge Binding

The SolarEdge binding is used to get live data from from SolarEdge inverters via the central web api. This binding should in general be compatible with all inverter models that upload data to the solaredge portal. Only read access is supported.

Supported Things

This binding provides only one thing type: "generic" which is the inverter itself. As the name suggests it is generic which means it applies to all available inverters. Create one inverter thing per physical inverter installation available in your home(s). Additional stuff like batteries is automatically supported.

Discovery

Auto-Discovery is not supported, as access requires authentication.

Thing Configuration

The following configuration parameters are available for this thing:

  • tokenOrApiKey (required) Either the official API Key for using the public API or when using the inofficial private API: a token which can be retrieved from browser's cookie store when logged into the solaredge website. It is called 'SPRING_SECURITY_REMEMBER_ME_COOKIE'

  • solarId (required)
    Id of your inverter at SolarEdge (can be found in the URL after successful login: https://monitoring.solaredge.com/solaredge-web/p/site/<>/#/dashboard)

  • usePrivateApi (optional)
    can be set to true to use the private API. Private API has no limit regarding query frequency but is less stable. Private API will only gather live data if a meter is available. The official public API ha a limit of 300 queries per day but should be much more reliable/stable. (default = false)

  • meterInstalled (optional)
    can be set to true for setups that contain a SolarEdge modbus meter (see here: https://www.solaredge.com/products/pv-monitoring/accessories/css-wattnode-modbus-meter ). A meter allows more detailed live data retrieval. (default = false)

  • liveDataPollingInterval (optional)
    interval (minutes) in which live data values are retrieved from Solaredge. Setting less than 10 minutes is only allowed when using private API. (default = 10).

  • "aggregateDataPollingInterval" (optional)
    interval (minutes) in which aggregate data values are retrieved from Solaredge. Setting less than 60 is only allowed when using private API. (default = 60).

Channels

Available channels depend on the specific setup e.g. if a meter and/or a battery is present. Following models/channels are currently available All numeric channels use the UoM feature (see https://www.eclipse.org/smarthome/blog/2018/02/22/units-of-measurement.html for details). This means you can easily change the desired unit e.g. MWh instead of kWh just in your item definition.

Channel Type IDItem TypeDescriptionRemark
live#productionNumber:PowerCurrent PV productiongeneral available
live#pv_statusStringCurrent PV statusonly available when 'meterInstalled' is set
live#consumptionNumber:PowerCurrent power consumptiononly available when 'meterInstalled' is set
live#load_statusStringCurrent load statusonly available when 'meterInstalled' is set
live#battery_chargeNumber:PowerCurrent charge flowrequires battery
live#battery_dischargeNumber:PowerCurrent discharge flowrequires battery
live#battery_charge_dischargeNumber:PowerCurrent charge/discharge flow (+/-)requires battery
live#battery_levelNumber:DimensionlessCurrent charge levelrequires battery
live#battery_statusStringCurrent battery statusrequires battery
live#battery_criticalStringtrue or falserequires battery
live#importNumber:PowerCurrent import from gridonly available when 'meterInstalled' is set
live#exportNumber:PowerCurrent export to gridonly available when 'meterInstalled' is set
live#grid_statusStringCurrent grid statusonly available when 'meterInstalled' is set
aggregate_day#productionNumber:EnergyDay Aggregate PV productiongeneral available
aggregate_day#consumptionNumber:EnergyDay Aggregate power consumptionrequires solaredge modbus meter attached
aggregate_day#selfConsumptionForConsumptionNumber:EnergyDay Aggregate self consumption (incl battery)requires solaredge modbus meter attached
aggregate_day#selfConsumptionCoverageNumber:DimensionlessDay Coverage of consumption by self productionrequires solaredge modbus meter attached
aggregate_day#batterySelfConsumptionNumber:EnergyDay Aggregate self consumption from batteryrequires battery and private API activated
aggregate_day#importNumber:EnergyDay Aggregate import from gridrequires solaredge modbus meter attached
aggregate_day#exportNumber:EnergyDay Aggregate export to gridrequires solaredge modbus meter attached
aggregate_week#productionNumber:EnergyWeek Aggregate PV productiongeneral available
aggregate_week#consumptionNumber:EnergyWeek Aggregate power consumptionrequires solaredge modbus meter attached
aggregate_week#selfConsumptionForConsumptionNumber:EnergyWeek Aggregate self consumption (incl battery)requires solaredge modbus meter attached
aggregate_week#selfConsumptionCoverageNumber:DimensionlessWeek Coverage of consumption by self productionrequires solaredge modbus meter attached
aggregate_week#batterySelfConsumptionNumber:EnergyWeek Aggregate self consumption from batteryrequires battery and private API activated
aggregate_week#importNumber:EnergyWeek Aggregate import from gridrequires solaredge modbus meter attached
aggregate_week#exportNumber:EnergyWeek Aggregate export to gridrequires solaredge modbus meter attached
aggregate_month#productionNumber:EnergyMonth Aggregate PV productiongeneral available
aggregate_month#consumptionNumber:EnergyMonth Aggregate power consumptionrequires solaredge modbus meter attached
aggregate_month#selfConsumptionForConsumptionNumber:EnergyMonth Aggregate self consumption (incl battery)requires solaredge modbus meter attached
aggregate_month#selfConsumptionCoverageNumber:DimensionlessMonth Coverage of consumption by self productionrequires solaredge modbus meter attached
aggregate_month#batterySelfConsumptionNumber:EnergyMonth Aggregate self consumption from batteryrequires battery and private API activated
aggregate_month#importNumber:EnergyMonth Aggregate import from gridrequires solaredge modbus meter attached
aggregate_month#exportNumber:EnergyMonth Aggregate export to gridrequires solaredge modbus meter attached
aggregate_year#productionNumber:EnergyYear Aggregate PV productiongeneral available
aggregate_year#consumptionNumber:EnergyYear Aggregate power consumptionrequires solaredge modbus meter attached
aggregate_year#selfConsumptionForConsumptionNumber:EnergyYear Aggregate self consumption (incl battery)requires solaredge modbus meter attached
aggregate_year#selfConsumptionCoverageNumber:DimensionlessYear Coverage of consumption by self productionrequires solaredge modbus meter attached
aggregate_year#batterySelfConsumptionNumber:EnergyYear Aggregate self consumption from batteryrequires battery and private API activated
aggregate_year#importNumber:EnergyYear Aggregate import from gridrequires solaredge modbus meter attached
aggregate_year#exportNumber:EnergyYear Aggregate export to gridrequires solaredge modbus meter attached

Full Example

Thing

  • minimum configuration
solaredge:generic:se2200 [ tokenOrApiKey="...", solarId="..."]
  • with pollingIntervals
solaredge:generic:se2200[ tokenOrApiKey="...", solarId="...", liveDataPollingInterval=..., aggregateDataPollingInterval=... ]
  • maximum version
solaredge:generic:se2200     [ tokenOrApiKey="secret", solarId="4711", meterInstalled=true, usePrivateApi=true, liveDataPollingInterval=15, aggregateDataPollingInterval=60 ]
  • multiple inverters
solaredge:generic:home1 [ tokenOrApiKey="...", solarId="..."]
solaredge:generic:home2  [ tokenOrApiKey="...", solarId="..."]

Items

Number:Power            SE2200_Live_Production   "PV Produktion [%.2f %unit%]"    {channel="solaredge:generic:se2200:live#production"}
Number:Dimensionless    SE2200_Live_Level        "Batterieladung"                 {channel="solaredge:generic:se2200:live#battery_level"}
Number:Energy           SE2200_Day_Production    "PV Produktion [%.2f kWh]"       {channel="solaredge:generic:se2200:aggregate_day#production"}