Skip to main content

PV, Battery, Grid

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

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

Orno OR-WE-516, OR-WE-517

meters:
- name: my_grid
type: template
template: orno
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: "8E1" # Kommunikationsparameter für den Adapter

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

P1Monitor P1 Monitor

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

Plexlog

The values are updated approximately every 15 seconds, hence the evcc interval should not be less than 30 seconds.

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

Powerdog

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

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

Powerfox Poweropti

meters:
- name: my_grid
type: template
template: powerfox-poweropti
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)

QCells Hybrid-Inverter (Cloud)

The QCells hybrid inverter has to be registered in the QCellsCloud.

Attention: Values can only be fetched every 150s and then also can be 5 minutes old. Charging by PV will not be optimal because of this! Only use as fallback if no local access is available.

meters:
- name: my_grid
type: template
template: qcells-hybrid-cloud
usage: grid
tokenid: # Go to https://qhome-ess-g3.q-cells.eu/#/api/ and take the value of "ObtaintokenID".
serial: # Go to https://qhome-ess-g3.q-cells.eu/blue/#/inverter and take the value of registration number.

Qcells Q.HOME ESS HYB-G3

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

# RS485 via adapter (Modbus RTU)
modbus: rs485serial
id: 1
device: /dev/ttyUSB0 # USB-RS485 Adapter Adresse
baudrate: 19200 # 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

RCT Power

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

Saia-Burgess Controls ALE3, AWD3

meters:
- name: my_grid
type: template
template: sbc-axx3
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

SAJ H2 Series Hybrid Solar Inverter

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

SAX Homespeicher

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

# Modbus TCP
modbus: tcpip
id: 64
host: 192.0.2.2 # Hostname
port: 3600 # Port

Schneider Electric iEM3xxx Modbus

meters:
- name: my_grid
type: template
template: schneider-iem3000
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

SENEC .Home

meters:
- name: my_grid
type: template
template: senec-home
usage: grid
host: 192.0.2.2 # IP address or hostname
schema: https # optional

Senergy SE 4/5/6KTL-S1/G2 Inverter

meters:
- name: my_pv
type: template
template: senergy
usage: pv

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

Shelly

3EM

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

Pro 3 EM

meters:
- name: my_grid
type: template
template: shelly-pro-3em
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)

Siemens

7KT1665

meters:
- name: my_grid
type: template
template: siemens-7kt1665
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

Junelight Smart Battery

The battery has to be set to Loxone with the installer account.

meters:
- name: my_grid
type: template
template: siemens-junelight
usage: grid

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

PAC 2200

meters:
- name: my_grid
type: template
template: siemens-pac2200
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

SMA

Data Manager

In the web interface of the SMA Data Manager you need to activate "Modbus Server activated" in the section "External communication".

meters:
- name: my_grid
type: template
template: sma-data-manager
usage: grid

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

Energy Meter

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

Inverter (Speedwire)

meters:
- name: my_pv
type: template
template: sma-inverter-speedwire
usage: pv
host: 192.0.2.2 # IP address or hostname
password: # Password for user group Standard (optional)

Smart Energy Hybrid Inverter

meters:
- name: my_pv
type: template
template: sma-hybrid
usage: pv

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

Sunny Boy Storage 1.5/2.0/2.5 (Modbus)

meters:
- name: my_battery
type: template
template: sma-sbs-15-25-modbus
usage: battery

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

Sunny Boy Storage 3.7/5.0/6.0 (Modbus)

meters:
- name: my_battery
type: template
template: sma-sbs-modbus
usage: battery

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

Sunny Home Manager 2.0

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

Sunny Island (Modbus)

meters:
- name: my_battery
type: template
template: sma-si-modbus
usage: battery

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

WebBox

meters:
- name: my_pv
type: template
template: sma-webbox
usage: pv

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

Wechselrichter (Modbus)

meters:
- name: my_pv
type: template
template: sma-inverter-modbus
usage: pv

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

Smartfox

Box, Reg, Reg extended

aux can be used for water heating power.

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

Pro, Pro 2, Pro Light, Pro Light 2, Light (EM2 firmware)

aux can be used for water heating power.

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

SofarSolar

HYD 3…6K-EP

LSE-3 logger stick using a LAN connection and ModBus TCP via the port 8899 is the easiest connection. The LSW-3 WiFi stick is not supported. For a RS485 serial connection using the inverter's COM port the inverter's side must be properly terminated.

meters:
- name: my_grid
type: template
template: sofarsolar-g3
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: 8899 # Port

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

HYD 5…20K-3PH

LSE-3 logger stick using a LAN connection and ModBus TCP via the port 8899 is the easiest connection. The LSW-3 WiFi stick is not supported. For a RS485 serial connection using the inverter's COM port the inverter's side must be properly terminated.

meters:
- name: my_grid
type: template
template: sofarsolar-g3
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: 8899 # Port

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

Inverter, Hybrid Inverter

meters:
- name: my_grid
type: template
template: sofarsolar
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

SOFAR 5…24KTL-G3

LSE-3 logger stick using a LAN connection and ModBus TCP via the port 8899 is the easiest connection. The LSW-3 WiFi stick is not supported. For a RS485 serial connection using the inverter's COM port the inverter's side must be properly terminated.

meters:
- name: my_grid
type: template
template: sofarsolar-g3
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: 8899 # Port

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

SOFAR 80…136KTL

LSE-3 logger stick using a LAN connection and ModBus TCP via the port 8899 is the easiest connection. The LSW-3 WiFi stick is not supported. For a RS485 serial connection using the inverter's COM port the inverter's side must be properly terminated.

meters:
- name: my_grid
type: template
template: sofarsolar-g3
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: 8899 # Port

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

Solaranzeige Solaranzeige

meters:
- name: my_grid
type: template
template: solaranzeige
usage: grid
host: 192.0.2.2 # IP address or hostname of the MQTT broker
port: 1883 # MQTT broker port (optional)
topic: solaranzeige/box1 # Topic (omit leading /) (optional)
timeout: 30s # Don't accept values older than this value (optional)

SolarEdge

Hybrid Inverter

Only one system can and may have a Modbus TCP connection to the inverter at the same time! For optional battery control, StorageConf_CtrlMode (0xE004) must be set to 4 "Remote".

meters:
- name: my_grid
type: template
template: solaredge-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: 1502 # Port

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

Inverter

Only one system may access the inverter!

meters:
- name: my_grid
type: template
template: solaredge-inverter
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: 1502 # Port

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

Solarlog

We recommend to use this device for grid power values only, if no other device is available providing this data. If you have a home battery installed, please do not use this device at all for grid power values.

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

SolarMax

MAX.STORAGE / MAX.STORAGE Ultimate

For batter control, the "Connectivity+" function must be activated via the Solarmax support. Available from software version 3.4.4. Without activation, the function remains without effect. Grid charging is generally not available.

meters:
- name: my_grid
type: template
template: solarmax-maxstorage
usage: grid

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

SolarMax SMT

meters:
- name: my_pv
type: template
template: solarmax-smt
usage: pv

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

SP Series Inverter

meters:
- name: my_pv
type: template
template: senergy
usage: pv

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

Solarwatt

EnergyManager, EnergyManager Pro

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

MyReserve

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

MyReserve Matrix (LAN oder PowerGateway)

meters:
- name: my_grid
type: template
template: solarwatt-myreserve-matrix
usage: grid
host: 192.0.2.2 # IP address or hostname
port: 8080 # Port (optional)

Solax

Hybrid X1/X3 G3/G4

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

# RS485 via adapter (Modbus RTU)
modbus: rs485serial
id: 1
device: /dev/ttyUSB0 # USB-RS485 Adapter Adresse
baudrate: 19200 # 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

Hybrid-Inverter (Cloud)

The Solax hybrid inverter has to be registered in the SolaxCloud.

Attention: Values can only be fetched every 150s and then also can be 5 minutes old. Charging by PV will not be optimal because of this! Only use as fallback if no local access is available.

meters:
- name: my_grid
type: template
template: solax-hybrid-cloud
usage: grid
tokenid: # https://www.solaxcloud.com/ -> Support -> Third-party Ecology (old site) or Service -> API (new site), put the value of `tokenID` here in single quotes (Example: '20241028488283838')
serial: # https://www.solaxcloud.com/ -> Device -> Inverter (new site) or Support (old site), use the registration number

Inverter (Cloud)

The Solax inverter has to be registered in the SolaxCloud.

Attention: Values can only be fetched every 150s and then also can be 5 minutes old. Charging by PV will not be optimal because of this! Only use as fallback if no local access is available.

meters:
- name: my_pv
type: template
template: solax-inverter-cloud
usage: pv
tokenid: # https://www.solaxcloud.com/ -> Support -> Third-party Ecology (old site) or Service -> API (new site), put the value of `tokenID` here in single quotes (Example: '20241028488283838')
serial: # https://www.solaxcloud.com/ -> Device -> Inverter (new site) or Support (old site), use the registration number

Solinteng

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

Sonnen

comfort, eco 5, eco 6, oem 6.5

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

sonnenBatterie

For active battery control, the "JSON Write API" must be activated via the sonnenBatterie web interface (under Software-Integration) and the API token generated there must be entered in the battery configuration under token. The power for grid charging can be adapted to the inverter power of the sonnenBatterie via the chargepower parameter.

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

St-ems

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

Steca coolcept fleX

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

Sungrow

SG Series Inverter

meters:
- name: my_grid
type: template
template: sungrow-inverter
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

SH Series Hybrid Inverter

Connections via the WiNet-S dongle (WiFi or LAN) only work with the latest firmware. Older versions do not provide all required data (power, state of charge).

meters:
- name: my_grid
type: template
template: sungrow-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
timeout: 10s # optional

Sunsynk

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

Sunway

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

Tasmota SML IR-reader for smartmeters e.g. Hichi

To be able to read the values of the smart meter for evcc correctly, the IR reader script must be changed so that the following JSON tags are generated:

  • SML as the group name of the read parameters
  • Total_in for the total consumption in KWh (4 decimal places)
  • Total_out for the total feed-in in KWh (4 decimal places)
  • Power_curr for the current consumption or the current feed-in in W (0 decimal places)

A corresponding IR reader script looks like this:

>D
>B
=>sensor53 r
>M 1
// highlight-next-line
+1,3,s,16,9600,SML
// highlight-next-line
1,77070100010800ff@1000,Gesamtverbrauch,KWh,Total_in,4
// highlight-next-line
1,77070100020800ff@1000,Gesamteinspeisung,KWh,Total_out,4
// highlight-next-line
1,77070100100700ff@1,Verbrauch,W,Power_curr,0
1,77070100600100ff@#,Zählernummer,,Meter_Id,0
#
meters:
- name: my_grid
type: template
template: tasmota-sml
usage: grid
host: 192.0.2.2 # IP address or hostname
user: # admin is default (optional)
password: # Password of the user account (use single quotes in case of leading zeros) (optional)

Tesla Powerwall

To use the optional battery control you need to generate a refresh token for communicating with the Tesla API.

The following apps allow to create the token:

meters:
- name: my_grid
type: template
template: tesla-powerwall
usage: grid
host: 192.0.2.2 # IP address or hostname
password: # Password of the user "customer". By default this is the last 5 characters of password stated on the Tesla Gateway.
refreshToken: # optional
siteId: # optional product identifier of the energy site, use to override autodectction (optional)

Tibber Pulse

meters:
- name: my_grid
type: template
template: tibber-pulse
usage: grid
token: 5K4MVS-OjfWhK_4yrjOlFe1F6kJXPVf7eQYggo8ebAE
homeid: 96a14971-525a-4420-aae9-e5aedaa129ff # optional

TQ

Energy Manager EM2xx/EM3xx

meters:
- name: my_grid
type: template
template: tq-em
usage: grid
host: 192.0.2.2 # IP address or hostname
port: 80 # Port (optional)
password: # Password of the user account (use single quotes in case of leading zeros) (optional)

Energy Manager EM420

meters:
- name: my_grid
type: template
template: tq-em420
usage: grid
host: 192.0.2.2 # IP address or hostname
port: 80 # Port (optional)
device: local # JSON-API -> Data Endpoint (optional)
token: ey... # Access token for EM420 (Create in Profile -> Access tokens)

VARTA pulse, pulse neo, element

PV only available with PV sensor

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

Victron

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

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

Energy

For grid usage, a grid meter VRM instance is require to enabled load management.

meters:
- name: my_grid
type: template
template: victron-energy
usage: grid
host: 192.0.2.2 # IP address or hostname
port: 502 # Port (optional)
meterid: # Grid meter VRM instance- can be read out in VRM portal or via remoteUI. (optional)

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

Wattsonic

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

Weidmüller

EM110-RTU-2P

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

EM111-RTU-2P

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

EM120-RTU-2P

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

EM122-RTU-2P

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

Youless Energy Monitor

An externally connected S0 generation meter is required to record the solar production.

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

ZCS Azzurro Inverter, Hybrid Inverter

meters:
- name: my_grid
type: template
template: sofarsolar
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

Zendure Hyper 2000

meters:
- name: my_pv
type: template
template: zendure
usage: pv
account: dev@zendure.com
serial: VU5D99F74021B04 # You can find this in the Zendure App in the settings of the device
region: EU # optional
timeout: 10s # optional

Zuidwijk

SlimmeLezer(+)

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

SlimmeLezer(+) V2

More recent slimmelezer devices use a different configuration. Try this template if the other one fails.

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

Generic support

Custom

meters:
- name: my_meter
type: custom
power: # power (W)
source: # plugin type
# ...
energy: # optional energy (kWh)
source: # plugin type
# ...
soc: # optional battery soc (%)
source: # plugin type
# ...
currents: # optional currents (A)
- source: # L1 plugin type
# ...
- source: # L2 plugin type
# ...
- source: # L3 plugin type
# ...
batterymode: # controllable (1: normal, 2: hold, 3: charge)
source: # plugin type

Demo battery

For demonstration purposes. Battery with a fixed set of values.

meters:
- name: my_battery
type: template
template: demo-battery
usage: battery
power: # optional
soc: # optional
controllable: # Supports active battery control (optional)

Demo meter

For demonstration purposes. Meter with a fixed set of values.

meters:
- name: my_grid
type: template
template: demo-meter
usage: grid
power: # optional

SunSpec Battery (Model 124)

meters:
- name: my_battery
type: template
template: sunspec-inverter-control
usage: battery

# 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

SunSpec Battery (Model 802)

meters:
- name: my_battery
type: template
template: sunspec-battery-control
usage: battery

# 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

SunSpec Hybrid Inverter

meters:
- name: my_grid
type: template
template: sunspec-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

SunSpec Inverter

meters:
- name: my_grid
type: template
template: sunspec-inverter
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

Volkszähler

HTTP API

meters:
- name: my_grid
type: template
template: volkszaehler-http
usage: grid
url: # Example: http://zaehler.network.local:8080/api/data (optional)
uuid:

HTTP API, Import & Export

meters:
- name: my_grid
type: template
template: volkszaehler-importexport
usage: grid
url: # The URL is for example: http://zaehler.network.local:8080/api/data (optional)
importuuid:
exportuuid:

WebSocket API

meters:
- name: my_grid
type: template
template: volkszaehler-ws
usage: grid
host: 192.0.2.2 # IP address or hostname
port: 8082 # Port (optional)
uuid:

vzlogger

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

Switchable sockets

AVM FritzDECT

meters:
- name: my_pv
type: template
template: fritzdect
usage: pv
uri: https://fritz.box # HTTP(S) address (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)
ain: 307788992233 # The AIN is printed on the type label on the back of the device. Embed it in double quotes in case of leading zeroes.

Homematic IP

meters:
- name: my_pv
type: template
template: homematic
usage: pv
host: 192.0.2.2 # IP address or hostname
device: '0001EE89AAD848' # Homematic device id like shown in the CCU web user interface.
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)

myStrom Switch

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

Shelly 1PM, EM, Plug S, Pro 3EM in monophase mode

meters:
- name: my_grid
type: template
template: shelly-1pm
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)
channel: 0 # optional

Tasmota (1 Phase Meter)

meters:
- name: my_pv
type: template
template: tasmota
usage: pv
host: 192.0.2.2 # IP address or hostname
user: # admin is default (optional)
password: # Password of the user account (use single quotes in case of leading zeros) (optional)
channel: 1 # Meterchannel number (1-8)

Tasmota three phase

Meter channels 1,2,3 must be used.

meters:
- name: my_grid
type: template
template: tasmota-3p
usage: grid
host: 192.0.2.2 # IP address or hostname
user: # admin is default (optional)
password: # Password of the user account (use single quotes in case of leading zeros) (optional)

H-Series Smart Plug

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

Tapo P-Series Smart Plug

meters:
- name: my_pv
type: template
template: tapo
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)