Skip to content

Lektri.co Load Balancing Public RPC list ​

1. Commands format. ​

All commands follow the Request/Response JSON-RPC 2.0 format specification: JSON-RPC specs.

2. Revisions. ​

VersionDateComments
1.025.02.2025Initial release.

3. Error codes. ​

Error codeError description
0 No error. Everything was successful.
-1General fail. No details.
-2JSON request format error. Usually means that a not all keys were found.
-3Key value length error. Applicable to keys of string type which should be of a fixed length.
-4Key value range error. The key value is out of range. Applicable to keys of integer type.
-5Error key format. Example: setting integer value to a boolean key.
-6Unknown key error.
-7Prohibited action error.

4. Application configuration keys. ​

Key nameKey typeDefault valueAccepted valuesDescription
breaker_ratinginteger3210 - 1000Breaker rating.
load_balancing_modeinteger00 - 3Load balancing mode. Values:
0 - Load balancing disabled1 - Power mode (keep charging as long as the breaker rating is not exceeded)
2 - Hybrid mode
3 - Green mode.
4 - Power share mode.
lb_meter_typestring"Off"
lb_pv_minimum_currentinteger61-6Minimum exported current at which the charging process is still allowed.
reverse_currentbooleanfalsetrue/falseReverse current sign.
lb_hybrid_currentinteger66 - 32Minimum current in Hybrid mode.
lb_meter_offline_currentinteger66 - 32Charging current when energy meter is offline.
car_minimum_currentinteger66 - 10Car minimum current.
green_forced_single_phasebooleanfalsetrue/falseForce single phase charging in Green mode.
hybrid_forced_single_phasebooleanfalsetrue/falseForce single phase charging in Hybrid mode.

5. Energy meter list info. ​

5.1 Supported energy meter list ​

5.1.0 Off ​

Required parameters ​

No parameters required.

5.1.1 Onboard ​

Required parameters ​

Available only for M2W. No parameters required.

5.1.2 Alfa by Sinapsi ​

Required parameters ​

json
{
  "ip": "string",
  "hostname": "string"
}

It is possible to set only ip or hostname, however, it is recommended to set both parameters, so the communication starts as soon as possible.

ip - A string containing IP address. Example: 192.168.0.1

hostname - A string with meter hostname. Example: shellyem-8CAAB505B323

5.1.3 SolarEdge inverter ​

Required parameters ​

json
{
  "ip": "string",
  "hostname": "string",
  "modbus_id": "integer",
  "port": "integer"
}

It is possible to set only ip or hostname, however, it is recommended to set both parameters, so the communication starts as soon as possible.

ip - A string containing IP address. Example: 192.168.0.1

hostname - A string with meter hostname. Example: shellyem-8CAAB505B323

modbus_id - ModBus ID.

port - TCP port for ModBus communication.

5.1.4 Shelly EM ​

Required parameters ​

json
{
  "ip": "string",
  "hostname": "string"
}

It is possible to set only ip or hostname, however, it is recommended to set both parameters, so the communication starts as soon as possible.

ip - A string containing IP address. Example: 192.168.0.1

hostname - A string with meter hostname. Example: shellyem-8CAAB505B323

5.1.5 Shelly 3EM ​

Required parameters ​

json
{
  "ip": "string",
  "hostname": "string"
}

It is possible to set only ip or hostname, however, it is recommended to set both parameters, so the communication starts as soon as possible.

ip - A string containing IP address. Example: 192.168.0.1

hostname - A string with meter hostname. Example: shellyem-8CAAB505B323

5.1.6 Shelly EM PRO ​

Required parameters ​

json
{
  "ip": "string",
  "hostname": "string"
}

It is possible to set only ip or hostname, however, it is recommended to set both parameters, so the communication starts as soon as possible.

ip - A string containing IP address. Example: 192.168.0.1

hostname - A string with meter hostname. Example: shellyem-8CAAB505B323

5.1.7 Shelly 3EM PRO ​

json
{
  "ip": "string",
  "hostname": "string"
}

It is possible to set only ip or hostname, however, it is recommended to set both parameters, so the communication starts as soon as possible.

ip - A string containing IP address. Example: 192.168.0.1

hostname - A string with meter hostname. Example: shellyem-8CAAB505B323

6. Commands ​

6.1 Get load balancing info ​

MethodDescription
Load_balancing_info.GetGet load balancing info.

Request params format ​

No parameters.

Response params format ​

json
{
  "lib_version": "string",
  "free_heap": "integer",
  "lb_mode": "integer",
  "chargers_number": "integer",
  "compute_mode": "integer",
  "meter_phases": "integer",
  "total_exported_current": "double",
  "phase_exported_current": "double",
  "limit_reason": ["integer", "integer", "integer"],
  "active_chargers": ["integer", "integer", "integer"],
  "active_total": "integer",
  "current": ["double", "double", "double"],
  "available_current": ["double", "double", "double"],
  "total_chargers_current": ["double", "double", "double"],
  "computed_charging_current": ["integer", "integer", "integer"],
  "exported_current": ["double", "double", "double"],
  "pause_requested": ["boolean", "boolean", "boolean"],
  "chargers_list": [
    {
      "id": "string",
      "ip": "string",
      "type": "integer",
      "connected_phase": "integer",
      "em_current": "integer",
      "charger_em_current": "integer",
      "current": ["double", "double", "double"],
      "state": "integer",
      "em_current_updated": "boolean",
      "is_online": "boolean",
      "is_paused": "boolean",
      "voltage": ["double", "double", "double"],
      "instant_power": "double",
      "session_id": "integer",
      "sched_lb_mode": "integer",
      "obc_type": "integer",
      "potential_relay_mode": "integer",
      "charging_mode": "integer",
      "em_relay_mode": "integer"
    },
    //...
    {
      //...
    }
  ]
}

lib_version - LB library version.

free_heap - Available heap memory.

lb_mode - Load balancing mode. Values:

  • 0 - Disabled.
  • 1 - Power mode.
  • 2 - Hybrid mode.
  • 3 - Green mode.

chargers_number - Number of chargers in the list.

compute_mode - Algorithm compute mode. Values:

  • 0 - Single phase compute mode - algo computed everything in single phase mode, making TRI charging in single phase mode.
  • 1 - Auto compute mode - algo keeps track of each type of charger (single/three phase), and distributes accordingly.

meter_phases - Number of phases the energy meter has.

total_exported_current - Total exported current in Amps.

phase_exported_current - Computed distributed exported current per phase in Amps

limit_reason - Limit reason. Values:

  • 0 - Limited because there are no active chargers.
  • 1 - Limited by the available current under breaker rating.
  • 2 - Charger current under resume current.
  • 3 - Forbidden to commute from single to auto.
  • 4 - When in Hybrid mode exporting less than 6 Amps.
  • 5 - In Green and Hybrid mode, limited by export current.
  • 6 - The exported current is less than the minimum necessary.
  • 7 - Exported current is under 6 Amps, but over LB minimum current.

active_chargers - Active chargers on each phase. [L1, L2, L3]

active_total - Total active charger.

current - Energy meter current value in Amps per phase. [L1, L2, L3]

available_current - Available current on each phase in Amps. [L1, L2, L3]

total_chargers_current - Total current used by the chargers now per phase in Amps. [L1, L2, L3].

computed_charging_current - Computed charging current per phase in Amps. [L1, L2, L3].

exported_current - Exported current per phase in Amps. [L1, L2, L3]

pause_requested - Pause is requested per phase [L1, L2, L3]

chargers_list - Chargers list info object:

  • id - Charger ID.

  • ip - Charger IP

  • type - Charger type. Values:

    • 1 - Single phase charger.
    • 2 - Dual phase charger.
    • 3 - Three phase charger.
  • connected_phase - Phase on which the L1 of the charger is connected.

  • em_current - Computed current value.

  • charger_em_current - EM current currently set on the charger.

  • current - Charger current on each phase in Amps. [L1, L2, L3]

  • state - Simplified charger state. Values:

    • 0 - State unknown.
    • 1 - Available.
    • 2 - Car connected.
    • 3 - Charging.
    • 4 - Charger error.
  • em_current_updated - Flag to note if em_current was updated.

  • is_online - Charger is online.

  • is_paused - Charger is paused.

  • voltage - Charger voltage on each phase in Volts. [L1, L2, L3]

  • instant_power - Charger instant power.

  • session_id - Charger session ID.

  • sched_lb_mode - Schedule load balancing mode.

  • obc_type - Car on-board charger type.

  • potential_relay_mode - Relay mode without taking into account the em_relay_mode.

  • charging_mode - Charger charging mode.

  • em_relay_mode - Relay mode set by energy management device.

6.2 Set load balancing mode ​

MethodDescription
Load_balancing_mode.SetSet load balancing mode.

Request params format ​

json
{
  "load_balancing_mode": "integer"
}

load_balancing_mode - Load balancing mode. Values:

  • 0 - Disabled.
  • 1 - Power mode.
  • 2 - Hybrid mode.
  • 3 - Green mode.

Response params format ​

On success:

true

On error: Error message according to RPC-JSON specification and error code number described in Error codes chapter.

6.3 Get load balancing mode ​

MethodDescription
Load_balancing_mode.GetGet load balancing mode.

Request params format ​

No parameters.

Response params format ​

json
{
  "load_balancing_mode": "integer"
}

load_balancing_mode - Load balancing mode. Values:

  • 0 - Disabled.
  • 1 - Power mode.
  • 2 - Hybrid mode.
  • 3 - Green mode.

6.4 Set chargers list. ​

MethodDescription
Chargers_list.SetSet chargers list.

Request params format ​

json
{
  "chargers_list": [
    {
      "ip": "string",
      "id": "string"
      // ...
    },
    {
      //...
    }
  ]
}

At leas on parameter is needed. The other parameter will be updated through mDNS.!

ip - Charger IP.

id - Charger ID.

Response params format ​

On success:

true

On error: Error message according to RPC-JSON specification and error code number described in Error codes chapter.

6.5 Get chargers list. ​

MethodDescription
Chargers_list.GetGet chargers list.

Request params format ​

No parameters.

Response params format ​

json
{
  "chargers_list": [
    {
      "id": "string",
      "ip": "string",
      "phase_type": "integer",
      "connected_phase": "integer"
      // ...
    },
    {
      //...
    }
  ]
}

ip - Charger IP.

id - Charger ID.

phase_type - Charger type. Values:

  • 1 - Single phase charger.
  • 2 - Dual phase charger.
  • 3 - Three phase charger.

connected_phase - Phase on which the L1 of the charger is connected.

6.6 Get load balancing meter info. ​

MethodDescription
Lb_meter_info.GetDescription.

Request params format ​

No parameters.

Response params format ​

json
{
  "type": "integer",
  "phases": "integer",
  "meter_status": "integer",
  "custom_code": "integer",
  "voltage": ["double", "double", "double"],
  "current": ["double", "double", "double"],
  "active_current": ["double", "double", "double"],
  "exported_active_energy": ["double", "double", "double"],
  "imported_active_energy": ["double", "double", "double"],
  "total_exported_energy": "double",
  "total_imported_energy": "double",
  "power_factor": ["double", "double", "double"],
  "angle": ["double", "double", "double"],
  "active_p": ["double", "double", "double"],
  "apparent_p": ["double", "double", "double"],
  "reactive_p": ["double", "double", "double"],
  "inverter": {
    "lifetime_energy": "double",
    "ac_power": "double"
  }
}

type – Meter type. Values:

  • 0 - Unknown
  • 1 - No onboard meter.
  • 2 - ADE753 onboard meter
  • 3 - ADE7880 onboard meter
  • 4 - Chain2Gate by MAC meter
  • 5 - Alfa by Sinapsi meter
  • 6 - Sunspec SolarEdge inverter
  • 7 - Shelly EM meter
  • 8 - Shelly 3EM meter
  • 9 - Shelly EM PRO meter
  • 10 - Shelly 3EM PRO meter
  • 11 - Internal meter

phases – Meter number of phases. Range: 1-3.

meter_status – Meter communication status. Values:

  • 0 – Communication is working.
  • -1 – General communication error.
  • -2 – Meter not initialized.
  • -3 – Meter communication timeout.

custom_code – Meter dependent error status. Check source code for explanations.

voltage – Measured voltage per phase. [L1, L2, L3]

current – Measured current per phase. [L1, L2, L3]

active_current – Measured active current per phase. [L1, L2, L3]

angle – Measured angle per phase. [L1, L2, L3]

active_p – Measured active power per phase. [L1, L2, L3]

apparent_p – Measured apparent power per phase. [L1, L2, L3]

reactive_p – Measured reactive power per phase. [L1, L2, L3]

6.7 Get meter list. ​

MethodDescription
Lb_meter_list.GetA list of supported meters.

Request params format ​

No parameters.

Response params format ​

json
{
  "meter_list": [
    "string",
    "string"
    //...
  ]
}

meter_list - A list of supported energy meters, according to Supported meter list.

6.8 Set energy meter configuration. ​

MethodDescription
Lb_meter_config.SetSet energy meter configuration.

Request params format ​

json
{
  "name": "string",
  "ip": "string",
  "hostname": "string",
  "port": "integer",
  "modbus_id": "integer",
  "baudrate": "integer"
}

name - Meter name according to Supported meter list.

ip - A string containing IP address. Example: "192.168.0.1"

hostname - A string with meter hostname. Example: "shellyem-8CAAB505B323"

port - TCP port number.

modbus_id - ModBus ID.

baudrate - Baudrate for RS485 energy meters.

Response params format ​

On success:

true

On error: Error message according to RPC-JSON specification and error code number described in Error codes chapter.

6.9 Get energy meter configuration ​

MethodDescription
Lb_meter_config.GetGet energy meter configuration.

Request params format ​

No parameters.

Response params format ​

json
{
  "name": "string",
  "ip": "string",
  "hostname": "string",
  "port": "integer",
  "modbus_id": "integer",
  "baudrate": "integer"
}

name - Meter name according to Supported meter list.

ip - A string containing IP address. Example: "192.168.0.1"

hostname - A string with meter hostname. Example: "shellyem-8CAAB505B323"

port - TCP port number.

modbus_id - ModBus ID.

baudrate - Baudrate for RS485 energy meters.