Skip to main content

Meters / Site

The devices on this page can all be used as energy measuring points (meter) for various purposes:

  • grid: Grid supply
  • pv: Solar power
  • battery: House battery
  • charge: Charging power at the wallbox
  • aux: Smart consumer with its own surplus regulation

The configuration is formatted as follows:

meters:
- name: grid1
type: ...
- name: pv1
type: ...
- name: battery1
type: ...

Once you have adapted the code samples to suit your meters in evcc.yaml, you can test the connection using the evcc meter command, which returns the current status of all connected meters. If you just want to test one meter at a time, use evcc meter --name my_meter.

$ ./evcc meter

grid
-----
Power: -31W
Energy: 5195.5kWh
Current L1..L3: 3.05A 1.07A 1.15A
note

Most components used in modern Solar / Battery installations, especially inverters and battery storage (but also some metering devices!) have support for the relatively standardised "SunSpec" data model, which can be queried via Modbus/TCP without requiring device-specific data registers. If your system isn't listed here, that might mean that it is 100% SunSpec-compatible, so try that as your first port of call. (You may need to enable network support on your device - check the manual)

Features

  • active battery control: Passive battery control is possible with all home batteries. The charging of the vehicle is dynamically adjusted depending on the charge level of the house battery. If the house battery supports active control, further optimizations can be made. Currently, a home battery discharge lock is implemented when fast charging a vehicle.

Filter by feature

A-Tronix

meters:
- name: my_grid
type: template
template: wattsonic
usage: grid

# RS485 via adapter (Modbus RTU)
modbus: rs485serial
id: 247
device: /dev/ttyUSB0 # USB-RS485 Adapter Adresse
baudrate: 9600 # Prüfe die Geräteeinstellungen, typische Werte sind 9600, 19200, 38400, 57600, 115200
comset: "8N1" # Kommunikationsparameter für den Adapter

# RS485 via TCP/IP (Modbus RTU)
modbus: rs485tcpip
id: 247
host: 192.0.2.2 # Hostname
port: 502 # Port

ABB A43, A44, B23, B24

meters:
- name: my_grid
type: template
template: abb-ab
usage: grid

# RS485 via adapter (Modbus RTU)
modbus: rs485serial
id: 1
device: /dev/ttyUSB0 # USB-RS485 Adapter Adresse
baudrate: 9600 # Prüfe die Geräteeinstellungen, typische Werte sind 9600, 19200, 38400, 57600, 115200
comset: "8N1" # Kommunikationsparameter für den Adapter

# RS485 via TCP/IP (Modbus RTU)
modbus: rs485tcpip
id: 1
host: 192.0.2.2 # Hostname
port: 502 # Port

Acrel ADW300 Wireless Metering Meter

meters:
- name: my_grid
type: template
template: acrel-adw300
usage: grid

# RS485 via adapter (Modbus RTU)
modbus: rs485serial
id: 1
device: /dev/ttyUSB0 # USB-RS485 Adapter Adresse
baudrate: 1200 # Prüfe die Geräteeinstellungen, typische Werte sind 9600, 19200, 38400, 57600, 115200
comset: "8N1" # Kommunikationsparameter für den Adapter

# RS485 via TCP/IP (Modbus RTU)
modbus: rs485tcpip
id: 1
host: 192.0.2.2 # Hostname
port: 502 # Port

# Modbus TCP
modbus: tcpip
id: 1
host: 192.0.2.2 # Hostname
port: 502 # Port

Ads-tec StoraXe

meters:
- name: my_battery
type: template
template: storaxe
usage: battery

# Modbus TCP
modbus: tcpip
id: 2
host: 192.0.2.2 # Hostname
port: 502 # Port

Alpha ESS Storion SMILE

To use active battery control, times for grid charging must be defined once via the web interface or app. (Settings->Function settings->Grid charging/discharging) A continuous time period should be entered here (e.g.: Charging time 1 00:00-23:00, Charging time 2 23:00-00:00). However, deactivate the "Grid charging" switch. The actual control takes place via evcc. Discharge stop is realized via a scheduled grid charge with a target SoC of 10%. Alternatively, it can also be configured via Modbus. To do this, set the registers 2134,2142,2135,2136,2144,2137,2175 to the values 0,0,23,0,23,0,0,0,0.

meters:
- name: my_grid
type: template
template: alpha-ess-smile
usage: grid

# RS485 via adapter (Modbus RTU)
modbus: rs485serial
id: 85
device: /dev/ttyUSB0 # USB-RS485 Adapter Adresse
baudrate: 9600 # Prüfe die Geräteeinstellungen, typische Werte sind 9600, 19200, 38400, 57600, 115200
comset: "8N1" # Kommunikationsparameter für den Adapter

# RS485 via TCP/IP (Modbus RTU)
modbus: rs485tcpip
id: 85
host: 192.0.2.2 # Hostname
port: 502 # Port

# Modbus TCP
modbus: tcpip
id: 85
host: 192.0.2.2 # Hostname
port: 502 # Port

Ampere Ampere.StoragePro

meters:
- name: my_grid
type: template
template: saj-h2
usage: grid

# RS485 via adapter (Modbus RTU)
modbus: rs485serial
id: 1
device: /dev/ttyUSB0 # USB-RS485 Adapter Adresse
baudrate: 115200 # Prüfe die Geräteeinstellungen, typische Werte sind 9600, 19200, 38400, 57600, 115200
comset: "8N1" # Kommunikationsparameter für den Adapter

# RS485 via TCP/IP (Modbus RTU)
modbus: rs485tcpip
id: 1
host: 192.0.2.2 # Hostname
port: 502 # Port

# Modbus TCP
modbus: tcpip
id: 1
host: 192.0.2.2 # Hostname
port: 502 # Port

Anker Micro inverter

meters:
- name: my_pv
type: template
template: deye-mi
usage: pv

# RS485 via adapter (Modbus RTU)
modbus: rs485serial
id: 1
device: /dev/ttyUSB0 # USB-RS485 Adapter Adresse
baudrate: 9600 # Prüfe die Geräteeinstellungen, typische Werte sind 9600, 19200, 38400, 57600, 115200
comset: "8N1" # Kommunikationsparameter für den Adapter

# RS485 via TCP/IP (Modbus RTU)
modbus: rs485tcpip
id: 1
host: 192.0.2.2 # Hostname
port: 502 # Port

# Modbus TCP
modbus: tcpip
id: 1
host: 192.0.2.2 # Hostname
port: 502 # Port

APsystems EZ1

meters:
- name: my_pv
type: template
template: apsystems-ez1
usage: pv
host: 192.0.2.2 # IP address or hostname

Bernecker Engineering MPM3PM

meters:
- name: my_grid
type: template
template: mpm3pm
usage: grid

# RS485 via adapter (Modbus RTU)
modbus: rs485serial
id: 1
device: /dev/ttyUSB0 # USB-RS485 Adapter Adresse
baudrate: 9600 # Prüfe die Geräteeinstellungen, typische Werte sind 9600, 19200, 38400, 57600, 115200
comset: "8N1" # Kommunikationsparameter für den Adapter

# RS485 via TCP/IP (Modbus RTU)
modbus: rs485tcpip
id: 1
host: 192.0.2.2 # Hostname
port: 502 # Port

BGEtech

DS100

meters:
- name: my_grid
type: template
template: bge_tech_ds100
usage: grid

# RS485 via adapter (Modbus RTU)
modbus: rs485serial
id: 1
device: /dev/ttyUSB0 # USB-RS485 Adapter Adresse
baudrate: 1200 # Prüfe die Geräteeinstellungen, typische Werte sind 9600, 19200, 38400, 57600, 115200
comset: "8N1" # Kommunikationsparameter für den Adapter

# RS485 via TCP/IP (Modbus RTU)
modbus: rs485tcpip
id: 1
host: 192.0.2.2 # Hostname
port: 502 # Port

# Modbus TCP
modbus: tcpip
id: 1
host: 192.0.2.2 # Hostname
port: 502 # Port

WS100

meters:
- name: my_grid
type: template
template: bge_tech_ws100
usage: grid

# RS485 via adapter (Modbus RTU)
modbus: rs485serial
id: 1
device: /dev/ttyUSB0 # USB-RS485 Adapter Adresse
baudrate: 1200 # Prüfe die Geräteeinstellungen, typische Werte sind 9600, 19200, 38400, 57600, 115200
comset: "8N1" # Kommunikationsparameter für den Adapter

# RS485 via TCP/IP (Modbus RTU)
modbus: rs485tcpip
id: 1
host: 192.0.2.2 # Hostname
port: 502 # Port

# Modbus TCP
modbus: tcpip
id: 1
host: 192.0.2.2 # Hostname
port: 502 # Port

Bosswerk Micro inverter

meters:
- name: my_pv
type: template
template: deye-mi
usage: pv

# RS485 via adapter (Modbus RTU)
modbus: rs485serial
id: 1
device: /dev/ttyUSB0 # USB-RS485 Adapter Adresse
baudrate: 9600 # Prüfe die Geräteeinstellungen, typische Werte sind 9600, 19200, 38400, 57600, 115200
comset: "8N1" # Kommunikationsparameter für den Adapter

# RS485 via TCP/IP (Modbus RTU)
modbus: rs485tcpip
id: 1
host: 192.0.2.2 # Hostname
port: 502 # Port

# Modbus TCP
modbus: tcpip
id: 1
host: 192.0.2.2 # Hostname
port: 502 # Port

Carlo Gavazzi

EM110/111/112

meters:
- name: my_pv
type: template
template: cg-emt1xx
usage: pv

# RS485 via adapter (Modbus RTU)
modbus: rs485serial
id: 1
device: /dev/ttyUSB0 # USB-RS485 Adapter Adresse
baudrate: 9600 # Prüfe die Geräteeinstellungen, typische Werte sind 9600, 19200, 38400, 57600, 115200
comset: "8N1" # Kommunikationsparameter für den Adapter

# RS485 via TCP/IP (Modbus RTU)
modbus: rs485tcpip
id: 1
host: 192.0.2.2 # Hostname
port: 502 # Port

EM24

meters:
- name: my_grid
type: template
template: cg-em24
usage: grid

# RS485 via adapter (Modbus RTU)
modbus: rs485serial
id: 1
device: /dev/ttyUSB0 # USB-RS485 Adapter Adresse
baudrate: 9600 # Prüfe die Geräteeinstellungen, typische Werte sind 9600, 19200, 38400, 57600, 115200
comset: "8N1" # Kommunikationsparameter für den Adapter

# RS485 via TCP/IP (Modbus RTU)
modbus: rs485tcpip
id: 1
host: 192.0.2.2 # Hostname
port: 502 # Port

# Modbus TCP
modbus: tcpip
id: 1
host: 192.0.2.2 # Hostname
port: 502 # Port

EM330/EM340

meters:
- name: my_grid
type: template
template: cg-emt3xx
usage: grid

# RS485 via adapter (Modbus RTU)
modbus: rs485serial
id: 1
device: /dev/ttyUSB0 # USB-RS485 Adapter Adresse
baudrate: 9600 # Prüfe die Geräteeinstellungen, typische Werte sind 9600, 19200, 38400, 57600, 115200
comset: "8N1" # Kommunikationsparameter für den Adapter

# RS485 via TCP/IP (Modbus RTU)
modbus: rs485tcpip
id: 1
host: 192.0.2.2 # Hostname
port: 502 # Port

# Modbus TCP
modbus: tcpip
id: 1
host: 192.0.2.2 # Hostname
port: 502 # Port

EM530/EM540

meters:
- name: my_grid
type: template
template: cg-emt3xx
usage: grid

# RS485 via adapter (Modbus RTU)
modbus: rs485serial
id: 1
device: /dev/ttyUSB0 # USB-RS485 Adapter Adresse
baudrate: 9600 # Prüfe die Geräteeinstellungen, typische Werte sind 9600, 19200, 38400, 57600, 115200
comset: "8N1" # Kommunikationsparameter für den Adapter

# RS485 via TCP/IP (Modbus RTU)
modbus: rs485tcpip
id: 1
host: 192.0.2.2 # Hostname
port: 502 # Port

# Modbus TCP
modbus: tcpip
id: 1
host: 192.0.2.2 # Hostname
port: 502 # Port

ET112

meters:
- name: my_pv
type: template
template: cg-emt1xx
usage: pv

# RS485 via adapter (Modbus RTU)
modbus: rs485serial
id: 1
device: /dev/ttyUSB0 # USB-RS485 Adapter Adresse
baudrate: 9600 # Prüfe die Geräteeinstellungen, typische Werte sind 9600, 19200, 38400, 57600, 115200
comset: "8N1" # Kommunikationsparameter für den Adapter

# RS485 via TCP/IP (Modbus RTU)
modbus: rs485tcpip
id: 1
host: 192.0.2.2 # Hostname
port: 502 # Port

ET330/ET340

meters:
- name: my_grid
type: template
template: cg-emt3xx
usage: grid

# RS485 via adapter (Modbus RTU)
modbus: rs485serial
id: 1
device: /dev/ttyUSB0 # USB-RS485 Adapter Adresse
baudrate: 9600 # Prüfe die Geräteeinstellungen, typische Werte sind 9600, 19200, 38400, 57600, 115200
comset: "8N1" # Kommunikationsparameter für den Adapter

# RS485 via TCP/IP (Modbus RTU)
modbus: rs485tcpip
id: 1
host: 192.0.2.2 # Hostname
port: 502 # Port

# Modbus TCP
modbus: tcpip
id: 1
host: 192.0.2.2 # Hostname
port: 502 # Port

cFos PowerBrain Meter

meters:
- name: my_charger
type: template
template: cfos
usage: charge

# Modbus TCP
modbus: tcpip
id: 2
host: 192.0.2.2 # Hostname
port: 4702 # Port
Sponsor Token Required

More information on 💚 evcc Sponsorship can be found here.

Deye

3p hybrid inverter

meters:
- name: my_grid
type: template
template: deye-hybrid-3p
usage: grid

# RS485 via adapter (Modbus RTU)
modbus: rs485serial
id: 1
device: /dev/ttyUSB0 # USB-RS485 Adapter Adresse
baudrate: 9600 # Prüfe die Geräteeinstellungen, typische Werte sind 9600, 19200, 38400, 57600, 115200
comset: "8N1" # Kommunikationsparameter für den Adapter

# RS485 via TCP/IP (Modbus RTU)
modbus: rs485tcpip
id: 1
host: 192.0.2.2 # Hostname
port: 502 # Port

# Modbus TCP
modbus: tcpip
id: 1
host: 192.0.2.2 # Hostname
port: 502 # Port

hp3 hybrid inverter

meters:
- name: my_grid
type: template
template: deye-hybrid-hp3
usage: grid

# RS485 via adapter (Modbus RTU)
modbus: rs485serial
id: 1
device: /dev/ttyUSB0 # USB-RS485 Adapter Adresse
baudrate: 9600 # Prüfe die Geräteeinstellungen, typische Werte sind 9600, 19200, 38400, 57600, 115200
comset: "8N1" # Kommunikationsparameter für den Adapter

# RS485 via TCP/IP (Modbus RTU)
modbus: rs485tcpip
id: 1
host: 192.0.2.2 # Hostname
port: 502 # Port

# Modbus TCP
modbus: tcpip
id: 1
host: 192.0.2.2 # Hostname
port: 502 # Port

Micro inverter

meters:
- name: my_pv
type: template
template: deye-mi
usage: pv

# RS485 via adapter (Modbus RTU)
modbus: rs485serial
id: 1
device: /dev/ttyUSB0 # USB-RS485 Adapter Adresse
baudrate: 9600 # Prüfe die Geräteeinstellungen, typische Werte sind 9600, 19200, 38400, 57600, 115200
comset: "8N1" # Kommunikationsparameter für den Adapter

# RS485 via TCP/IP (Modbus RTU)
modbus: rs485tcpip
id: 1
host: 192.0.2.2 # Hostname
port: 502 # Port

# Modbus TCP
modbus: tcpip
id: 1
host: 192.0.2.2 # Hostname
port: 502 # Port

Storage (hybrid) inverter

meters:
- name: my_pv
type: template
template: deye-storage
usage: pv

# RS485 via adapter (Modbus RTU)
modbus: rs485serial
id: 1
device: /dev/ttyUSB0 # USB-RS485 Adapter Adresse
baudrate: 9600 # Prüfe die Geräteeinstellungen, typische Werte sind 9600, 19200, 38400, 57600, 115200
comset: "8N1" # Kommunikationsparameter für den Adapter

# RS485 via TCP/IP (Modbus RTU)
modbus: rs485tcpip
id: 1
host: 192.0.2.2 # Hostname
port: 502 # Port

# Modbus TCP
modbus: tcpip
id: 1
host: 192.0.2.2 # Hostname
port: 502 # Port

String inverter

meters:
- name: my_pv
type: template
template: deye-string
usage: pv

# RS485 via adapter (Modbus RTU)
modbus: rs485serial
id: 1
device: /dev/ttyUSB0 # USB-RS485 Adapter Adresse
baudrate: 9600 # Prüfe die Geräteeinstellungen, typische Werte sind 9600, 19200, 38400, 57600, 115200
comset: "8N1" # Kommunikationsparameter für den Adapter

# RS485 via TCP/IP (Modbus RTU)
modbus: rs485tcpip
id: 1
host: 192.0.2.2 # Hostname
port: 502 # Port

# Modbus TCP
modbus: tcpip
id: 1
host: 192.0.2.2 # Hostname
port: 502 # Port

Discovergy

meters:
- name: my_grid
type: template
template: discovergy
usage: grid
user: # User account (e.g. email address, user id, etc.)
password: # Password of the user account (use single quotes in case of leading zeros)
meter: 1ESY1161229886

DSMR

meters:
- name: my_grid
type: template
template: dsmr
usage: grid
host: 192.0.2.2 # IP address or hostname
port: 1502 # Port (optional)

DZG DVH4013

meters:
- name: my_charger
type: template
template: dzg
usage: charge

# RS485 via adapter (Modbus RTU)
modbus: rs485serial
id: 1
device: /dev/ttyUSB0 # USB-RS485 Adapter Adresse
baudrate: 9600 # Prüfe die Geräteeinstellungen, typische Werte sind 9600, 19200, 38400, 57600, 115200
comset: "8N1" # Kommunikationsparameter für den Adapter

# RS485 via TCP/IP (Modbus RTU)
modbus: rs485tcpip
id: 1
host: 192.0.2.2 # Hostname
port: 502 # Port

E3/DC

Username and password are identical to Web Portal or My E3/DC App access. Key (=RSCP-Password) must be set in the E3/DC System at Personalize/User Profile.

Note: Active battery control will override Smart-Power/Operating Range settings.

meters:
- name: my_grid
type: template
template: e3dc-rscp
usage: grid
host: 192.0.2.2 # IP address or hostname
port: 5033 # Port (optional)
user: # User account (e.g. email address, user id, etc.)
password: # Password of the user account (use single quotes in case of leading zeros)
key:

Eastron

SDM120-Modbus

meters:
- name: my_grid
type: template
template: eastron-sdm120
usage: grid

# RS485 via adapter (Modbus RTU)
modbus: rs485serial
id: 1
device: /dev/ttyUSB0 # USB-RS485 Adapter Adresse
baudrate: 9600 # Prüfe die Geräteeinstellungen, typische Werte sind 9600, 19200, 38400, 57600, 115200
comset: "8N1" # Kommunikationsparameter für den Adapter

# RS485 via TCP/IP (Modbus RTU)
modbus: rs485tcpip
id: 1
host: 192.0.2.2 # Hostname
port: 502 # Port

SDM220/230

meters:
- name: my_grid
type: template
template: eastron-sdm220_230
usage: grid

# RS485 via adapter (Modbus RTU)
modbus: rs485serial
id: 1
device: /dev/ttyUSB0 # USB-RS485 Adapter Adresse
baudrate: 9600 # Prüfe die Geräteeinstellungen, typische Werte sind 9600, 19200, 38400, 57600, 115200
comset: "8N1" # Kommunikationsparameter für den Adapter

# RS485 via TCP/IP (Modbus RTU)
modbus: rs485tcpip
id: 1
host: 192.0.2.2 # Hostname
port: 502 # Port

SDM630-Modbus

meters:
- name: my_grid
type: template
template: eastron
usage: grid

# RS485 via adapter (Modbus RTU)
modbus: rs485serial
id: 1
device: /dev/ttyUSB0 # USB-RS485 Adapter Adresse
baudrate: 9600 # Prüfe die Geräteeinstellungen, typische Werte sind 9600, 19200, 38400, 57600, 115200
comset: "8N1" # Kommunikationsparameter für den Adapter

# RS485 via TCP/IP (Modbus RTU)
modbus: rs485tcpip
id: 1
host: 192.0.2.2 # Hostname
port: 502 # Port

SDM72D-M

meters:
- name: my_grid
type: template
template: eastron-sdm72
usage: grid

# RS485 via adapter (Modbus RTU)
modbus: rs485serial
id: 1
device: /dev/ttyUSB0 # USB-RS485 Adapter Adresse
baudrate: 9600 # Prüfe die Geräteeinstellungen, typische Werte sind 9600, 19200, 38400, 57600, 115200
comset: "8N1" # Kommunikationsparameter für den Adapter

# RS485 via TCP/IP (Modbus RTU)
modbus: rs485tcpip
id: 1
host: 192.0.2.2 # Hostname
port: 502 # Port

SDM72DM-V2

meters:
- name: my_grid
type: template
template: eastron
usage: grid

# RS485 via adapter (Modbus RTU)
modbus: rs485serial
id: 1
device: /dev/ttyUSB0 # USB-RS485 Adapter Adresse
baudrate: 9600 # Prüfe die Geräteeinstellungen, typische Werte sind 9600, 19200, 38400, 57600, 115200
comset: "8N1" # Kommunikationsparameter für den Adapter

# RS485 via TCP/IP (Modbus RTU)
modbus: rs485tcpip
id: 1
host: 192.0.2.2 # Hostname
port: 502 # Port

Enphase IQ Envoy

Only batteries of type "AC Battery" are currently supported by Enphase-API.

meters:
- name: my_grid
type: template
template: enphase
usage: grid
host: 192.0.2.2 # IP address or hostname
token: # Required if Envoy Firmware D7.x.xxx. Token is valid for one year. Instructions for obtaining a token via web UI: https://enphase.com/download/accessing-iq-gateway-local-apis-or-local-ui-token-based-authentication (optional)

ESPHome DSMR

meters:
- name: my_grid
type: template
template: slimmelezer
usage: grid
host: 192.0.2.2 # IP address or hostname

FENECON

meters:
- name: my_grid
type: template
template: openems
usage: grid
host: 192.0.2.2 # IP address or hostname

FoxESS

H1 Series Hybrid Inverter

meters:
- name: my_pv
type: template
template: fox-ess-h1
usage: pv

# RS485 via adapter (Modbus RTU)
modbus: rs485serial
id: 247
device: /dev/ttyUSB0 # USB-RS485 Adapter Adresse
baudrate: 9600 # Prüfe die Geräteeinstellungen, typische Werte sind 9600, 19200, 38400, 57600, 115200
comset: "8N1" # Kommunikationsparameter für den Adapter

# RS485 via TCP/IP (Modbus RTU)
modbus: rs485tcpip
id: 247
host: 192.0.2.2 # Hostname
port: 502 # Port

# Modbus TCP
modbus: tcpip
id: 247
host: 192.0.2.2 # Hostname
port: 502 # Port

H3 Series Hybrid Inverter

meters:
- name: my_grid
type: template
template: fox-ess-h3
usage: grid

# RS485 via adapter (Modbus RTU)
modbus: rs485serial
id: 247
device: /dev/ttyUSB0 # USB-RS485 Adapter Adresse
baudrate: 9600 # Prüfe die Geräteeinstellungen, typische Werte sind 9600, 19200, 38400, 57600, 115200
comset: "8N1" # Kommunikationsparameter für den Adapter

# RS485 via TCP/IP (Modbus RTU)
modbus: rs485tcpip
id: 247
host: 192.0.2.2 # Hostname
port: 502 # Port

# Modbus TCP
modbus: tcpip
id: 247
host: 192.0.2.2 # Hostname
port: 502 # Port

Fronius

Ohmpilot

meters:
- name: my_aux
type: template
template: fronius-ohmpilot
usage: aux
host: 192.0.2.2 # IP address or hostname

Primo GEN24 Plus

meters:
- name: my_grid
type: template
template: fronius-gen24
usage: grid
host: 192.0.2.2 # IP address or hostname
port: 502 # Port (optional)

Solar API V1

Solar API should only be used as fallback. Integration via Modbus is preferred.

Username and password are only required for active battery control.

Attention: Active battery control should only be used if no other settings for time-dependent battery control were made in the inverter configuration under "Energy Management" - "Battery Management", as existing settings will be overwritten.

meters:
- name: my_grid
type: template
template: fronius-solarapi-v1
usage: grid
host: 192.0.2.2 # IP address or hostname
user: customer # User account (e.g. email address, user id, etc.) (optional)
password: # Password of the user account (use single quotes in case of leading zeros) (optional)

Symo GEN24 Plus

meters:
- name: my_grid
type: template
template: fronius-gen24
usage: grid
host: 192.0.2.2 # IP address or hostname
port: 502 # Port (optional)

Ginlong

Solis Hybrid Inverter (RHI and S series)

meters:
- name: my_grid
type: template
template: solis-hybrid
usage: grid

# RS485 via adapter (Modbus RTU)
modbus: rs485serial
id: 1
device: /dev/ttyUSB0 # USB-RS485 Adapter Adresse
baudrate: 9600 # Prüfe die Geräteeinstellungen, typische Werte sind 9600, 19200, 38400, 57600, 115200
comset: "8N1" # Kommunikationsparameter für den Adapter

# RS485 via TCP/IP (Modbus RTU)
modbus: rs485tcpip
id: 1
host: 192.0.2.2 # Hostname
port: 502 # Port

Solis Inverter

meters:
- name: my_grid
type: template
template: solis
usage: grid

# RS485 via adapter (Modbus RTU)
modbus: rs485serial
id: 1
device: /dev/ttyUSB0 # USB-RS485 Adapter Adresse
baudrate: 9600 # Prüfe die Geräteeinstellungen, typische Werte sind 9600, 19200, 38400, 57600, 115200
comset: "8N1" # Kommunikationsparameter für den Adapter

# RS485 via TCP/IP (Modbus RTU)
modbus: rs485tcpip
id: 1
host: 192.0.2.2 # Hostname
port: 502 # Port

go-e Controller

meters:
- name: my_grid
type: template
template: go-e-controller
usage: grid
host: 192.0.2.2 # IP address or hostname

GoodWe

ET/EH/BH/BT Hybrid Inverter

meters:
- name: my_grid
type: template
template: goodwe-hybrid
usage: grid

# RS485 via adapter (Modbus RTU)
modbus: rs485serial
id: 247
device: /dev/ttyUSB0 # USB-RS485 Adapter Adresse
baudrate: 9600 # Prüfe die Geräteeinstellungen, typische Werte sind 9600, 19200, 38400, 57600, 115200
comset: "8N1" # Kommunikationsparameter für den Adapter

# RS485 via TCP/IP (Modbus RTU)
modbus: rs485tcpip
id: 247
host: 192.0.2.2 # Hostname
port: 502 # Port

# Modbus TCP
modbus: tcpip
id: 247
host: 192.0.2.2 # Hostname
port: 502 # Port
battery: 1 # optional

SDT/DT Inverter

meters:
- name: my_pv
type: template
template: goodwe-dt
usage: pv

# RS485 via adapter (Modbus RTU)
modbus: rs485serial
id: 247
device: /dev/ttyUSB0 # USB-RS485 Adapter Adresse
baudrate: 9600 # Prüfe die Geräteeinstellungen, typische Werte sind 9600, 19200, 38400, 57600, 115200
comset: "8N1" # Kommunikationsparameter für den Adapter

# RS485 via TCP/IP (Modbus RTU)
modbus: rs485tcpip
id: 247
host: 192.0.2.2 # Hostname
port: 502 # Port

# Modbus TCP
modbus: tcpip
id: 247
host: 192.0.2.2 # Hostname
port: 502 # Port

Growatt

Hybrid Inverter

To use the active battery control, a one-time manual setup is necessary. The modbus registers 1100, 1101, 1102 need to be set to the values 0, 5947, 0 at the same time (via "write multiple", FC 16). This can be done by e.g. using the Modbus CLI: modbus [...] H@1100=0 H@1101=5947 H@1102=0. The active battery control uses the first "Battery first" timeslot, so it cannot be used otherwise.

meters:
- name: my_grid
type: template
template: growatt-hybrid
usage: grid

# RS485 via adapter (Modbus RTU)
modbus: rs485serial
id: 1
device: /dev/ttyUSB0 # USB-RS485 Adapter Adresse
baudrate: 9600 # Prüfe die Geräteeinstellungen, typische Werte sind 9600, 19200, 38400, 57600, 115200
comset: "8N1" # Kommunikationsparameter für den Adapter

# RS485 via TCP/IP (Modbus RTU)
modbus: rs485tcpip
id: 1
host: 192.0.2.2 # Hostname
port: 502 # Port

# Modbus TCP
modbus: tcpip
id: 1
host: 192.0.2.2 # Hostname
port: 502 # Port

TL-X(H) Hybrid Inverter

meters:
- name: my_grid
type: template
template: growatt-hybrid-tlxh
usage: grid

# RS485 via adapter (Modbus RTU)
modbus: rs485serial
id: 1
device: /dev/ttyUSB0 # USB-RS485 Adapter Adresse
baudrate: 9600 # Prüfe die Geräteeinstellungen, typische Werte sind 9600, 19200, 38400, 57600, 115200
comset: "8N1" # Kommunikationsparameter für den Adapter

# RS485 via TCP/IP (Modbus RTU)
modbus: rs485tcpip
id: 1
host: 192.0.2.2 # Hostname
port: 502 # Port

# Modbus TCP
modbus: tcpip
id: 1
host: 192.0.2.2 # Hostname
port: 502 # Port

HomeWizard

kWh Meter

meters:
- name: my_pv
type: template
template: homewizard-kwh
usage: pv
host: 192.0.2.2 # IP address or hostname

Wi-Fi P1 Meter

meters:
- name: my_grid
type: template
template: homewizard
usage: grid
host: 192.0.2.2 # IP address or hostname

Hoymiles

HM & HMS Series (via AhoyDTU)

meters:
- name: my_pv
type: template
template: hoymiles-ahoydtu
usage: pv
host: 192.0.2.2 # IP address or hostname
id: 0 # optional

HM & HMS Series (via OpenDTU)

meters:
- name: my_pv
type: template
template: hoymiles-opendtu
usage: pv
host: 192.0.2.2 # IP address or hostname

Huawei

EMMA

meters:
- name: my_grid
type: template
template: huawei-emma
usage: grid

# Modbus TCP
modbus: tcpip
id: 1
host: 192.0.2.2 # Hostname
port: 502 # Port

SmartLogger

meters:
- name: my_grid
type: template
template: huawei-smartlogger
usage: grid

# Modbus TCP
modbus: tcpip
id: 1
host: 192.0.2.2 # Hostname
port: 502 # Port
timeout: 15s # optional

SUN2000

Grid and Battery require the PowerSensor. Modbus/TCP requires activation using "maintenance access" within the communication settings of the inverter. See https://forum.huawei.com/enterprise/en/modbus-tcp-guide/thread/667250677153415168-667213868771979264

meters:
- name: my_grid
type: template
template: huawei-sun2000
usage: grid

# RS485 via adapter (Modbus RTU)
modbus: rs485serial
id: 1
device: /dev/ttyUSB0 # USB-RS485 Adapter Adresse
baudrate: 9600 # Prüfe die Geräteeinstellungen, typische Werte sind 9600, 19200, 38400, 57600, 115200
comset: "8N1" # Kommunikationsparameter für den Adapter

# RS485 via TCP/IP (Modbus RTU)
modbus: rs485tcpip
id: 1
host: 192.0.2.2 # Hostname
port: 502 # Port

# Modbus TCP
modbus: tcpip
id: 1
host: 192.0.2.2 # Hostname
port: 502 # Port
timeout: 15s # optional

SUN2000 (SDongle)

Needs "Modbus/TCP". Activation using "maintenance access" within the communication settings of the inverter. See https://forum.huawei.com/enterprise/en/modbus-tcp-guide/thread/667250677153415168-667213868771979264

meters:
- name: my_pv
type: template
template: huawei-dongle
usage: pv

# Modbus TCP
modbus: tcpip
id: 1
host: 192.0.2.2 # Hostname
port: 502 # Port
timeout: 15s # optional

IGEN Tech Solarman Logger

meters:
- name: my_pv
type: template
template: solarman
usage: pv
host: 192.0.2.2 # IP address or hostname
user: admin # User account (e.g. email address, user id, etc.) (optional)
password: admin # Password of the user account (use single quotes in case of leading zeros) (optional)

inepro PRO380-MOD

meters:
- name: my_grid
type: template
template: inepro
usage: grid

# RS485 via adapter (Modbus RTU)
modbus: rs485serial
id: 1
device: /dev/ttyUSB0 # USB-RS485 Adapter Adresse
baudrate: 9600 # Prüfe die Geräteeinstellungen, typische Werte sind 9600, 19200, 38400, 57600, 115200
comset: "8N1" # Kommunikationsparameter für den Adapter

# RS485 via TCP/IP (Modbus RTU)
modbus: rs485tcpip
id: 1
host: 192.0.2.2 # Hostname
port: 502 # Port

Janitza B series, UMG series

meters:
- name: my_grid
type: template
template: janitza
usage: grid

# RS485 via adapter (Modbus RTU)
modbus: rs485serial
id: 1
device: /dev/ttyUSB0 # USB-RS485 Adapter Adresse
baudrate: 9600 # Prüfe die Geräteeinstellungen, typische Werte sind 9600, 19200, 38400, 57600, 115200
comset: "8N1" # Kommunikationsparameter für den Adapter

# RS485 via TCP/IP (Modbus RTU)
modbus: rs485tcpip
id: 1
host: 192.0.2.2 # Hostname
port: 502 # Port

# Modbus TCP
modbus: tcpip
id: 1
host: 192.0.2.2 # Hostname
port: 502 # Port

KEBA KeContact E10

meters:
- name: my_grid
type: template
template: keba-kecontact
usage: grid

# Modbus TCP
modbus: tcpip
id: 1
host: 192.0.2.2 # Hostname
port: 502 # Port

Kostal

Energy Meter C (KEM-C)

meters:
- name: my_grid
type: template
template: cg-emt3xx
usage: grid

# RS485 via adapter (Modbus RTU)
modbus: rs485serial
id: 1
device: /dev/ttyUSB0 # USB-RS485 Adapter Adresse
baudrate: 9600 # Prüfe die Geräteeinstellungen, typische Werte sind 9600, 19200, 38400, 57600, 115200
comset: "8N1" # Kommunikationsparameter für den Adapter

# RS485 via TCP/IP (Modbus RTU)
modbus: rs485tcpip
id: 1
host: 192.0.2.2 # Hostname
port: 502 # Port

# Modbus TCP
modbus: tcpip
id: 1
host: 192.0.2.2 # Hostname
port: 502 # Port

Energy Meter P (KEM-P)

meters:
- name: my_grid
type: template
template: eastron
usage: grid

# RS485 via adapter (Modbus RTU)
modbus: rs485serial
id: 1
device: /dev/ttyUSB0 # USB-RS485 Adapter Adresse
baudrate: 9600 # Prüfe die Geräteeinstellungen, typische Werte sind 9600, 19200, 38400, 57600, 115200
comset: "8N1" # Kommunikationsparameter für den Adapter

# RS485 via TCP/IP (Modbus RTU)
modbus: rs485tcpip
id: 1
host: 192.0.2.2 # Hostname
port: 502 # Port

Piko (legacy)

meters:
- name: my_pv
type: template
template: kostal-piko-legacy
usage: pv
host: 192.0.2.2 # IP address or hostname
user: # User account (e.g. email address, user id, etc.)
password: # Password of the user account (use single quotes in case of leading zeros)

Piko Hybrid

meters:
- name: my_grid
type: template
template: kostal-piko-hybrid
usage: grid
host: 192.0.2.2 # IP address or hostname

Piko MP Plus

meters:
- name: my_pv
type: template
template: kostal-piko-mp-plus
usage: pv
host: 192.0.2.2 # IP address or hostname

Piko, Piko BA

meters:
- name: my_grid
type: template
template: kostal-piko-pv
usage: grid
host: 192.0.2.2 # IP address or hostname

Plenticore Hybrid

Only a single system may access the inverter! For active battery control, the external battery control via Modbus must be activated using installer access. This template is for inverters with HW version 0100. Grid charging is not available.

meters:
- name: my_pv
type: template
template: kostal-plenticore
usage: pv

# Modbus TCP
modbus: tcpip
id: 71
host: 192.0.2.2 # Hostname
port: 1502 # Port

Plenticore Hybrid (Gen2)

Only a single system may access the inverter! For active battery control, the external battery control via Modbus must be activated using installer access. The function for grid charging the battery is available using this template, but is currently incompatible with inverters of HW version 0100.

meters:
- name: my_pv
type: template
template: kostal-plenticore-hw0200
usage: pv

# Modbus TCP
modbus: tcpip
id: 71
host: 192.0.2.2 # Hostname
port: 1502 # Port

Smart Energy Meter

meters:
- name: my_grid
type: template
template: kostal-ksem
usage: grid

# Modbus TCP
modbus: tcpip
id: 71
host: 192.0.2.2 # Hostname
port: 502 # Port

Smart Energy Meter (via inverter)

The energy meter must be installed in sensor position 2 (grid connection). Sensor position 1 (House consumption) is not supported.

meters:
- name: my_grid
type: template
template: kostal-ksem-inverter
usage: grid

# Modbus TCP
modbus: tcpip
id: 71
host: 192.0.2.2 # Hostname
port: 1502 # Port

LG

ESS Home 15

meters:
- name: my_grid
type: template
template: lg-ess-home-15
usage: grid
host: 192.0.2.2 # IP address or hostname
password: # User password, see https://github.com/Morluktom/ioBroker.lg-ess-home/tree/master#getting-the-password. Alteratively, use registration id for admin login. (optional)

ESS Home 8/10

meters:
- name: my_grid
type: template
template: lg-ess-home-8-10
usage: grid
host: 192.0.2.2 # IP address or hostname
password: # User password, see https://github.com/Morluktom/ioBroker.lg-ess-home/tree/master#getting-the-password. Alteratively, use registration id for admin login. (optional)

Loxone Miniserver

meters:
- name: my_grid
type: template
template: loxone
usage: grid
host: 192.0.2.2 # IP address or hostname
user: # User account (e.g. email address, user id, etc.) (optional)
password: # Password of the user account (use single quotes in case of leading zeros) (optional)
meterblock: # Name from Loxone Config
socblock: # Name from Loxone Config, only for battery (optional)

M-TEC

Energy Butler GEN2

meters:
- name: my_grid
type: template
template: mtec-eb-gen2
usage: grid

# RS485 via adapter (Modbus RTU)
modbus: rs485serial
id: 247
device: /dev/ttyUSB0 # USB-RS485 Adapter Adresse
baudrate: 9600 # Prüfe die Geräteeinstellungen, typische Werte sind 9600, 19200, 38400, 57600, 115200
comset: "8N1" # Kommunikationsparameter für den Adapter

# RS485 via TCP/IP (Modbus RTU)
modbus: rs485tcpip
id: 247
host: 192.0.2.2 # Hostname
port: 502 # Port

Energy Butler GEN3

meters:
- name: my_grid
type: template
template: mtec-eb-gen3
usage: grid

# RS485 via adapter (Modbus RTU)
modbus: rs485serial
id: 247
device: /dev/ttyUSB0 # USB-RS485 Adapter Adresse
baudrate: 9600 # Prüfe die Geräteeinstellungen, typische Werte sind 9600, 19200, 38400, 57600, 115200
comset: "8N1" # Kommunikationsparameter für den Adapter

# RS485 via TCP/IP (Modbus RTU)
modbus: rs485tcpip
id: 247
host: 192.0.2.2 # Hostname
port: 502 # Port

mhendriks P1 dongle

meters:
- name: my_grid
type: template
template: slimmelezer
usage: grid
host: 192.0.2.2 # IP address or hostname

my-PV

AC ELWA 2

meters:
- name: my_aux
type: template
template: ac-elwa-2
usage: aux
host: 192.0.2.2 # IP address or hostname

AC ELWA-E

meters:
- name: my_aux
type: template
template: ac-elwa-e
usage: aux
host: 192.0.2.2 # IP address or hostname

AC•THOR

meters:
- name: my_aux
type: template
template: thor
usage: aux
host: 192.0.2.2 # IP address or hostname

WiFi Meter

meters:
- name: my_grid
type: template
template: mypv-wifi-meter
usage: grid

# Modbus TCP
modbus: tcpip
id: 1
host: 192.0.2.2 # Hostname
port: 502 # Port

OpenEMS