Skip to content

Latest commit

 

History

History
13095 lines (9871 loc) · 351 KB

File metadata and controls

13095 lines (9871 loc) · 351 KB
sidebar_position
2

import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem"; import DeviceConfig from "/src/components/DeviceConfig"; import DeviceFeatures from "/src/components/DeviceFeatures"; import DeviceFeatureFilter from "/src/components/DeviceFeatureFilter"; import SponsorshipRequired from "/docs/_sponsorship_required.mdx";

PV, Battery, Grid, Meter

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
  • ext: Additional meter, e.g. for load management or data logging

The configuration is formatted as follows:

# Definition of all devices
meters:
  - name: grid1
    type: ...
  - name: pv1
    type: ...
  - name: pv2
    type: ...
  - name: battery1
    type: ...

# Mapping by purpose
site:
  meters:
    grid: grid1
    pv:
      - pv1
      - pv2
    battery:
      - battery1
    aux:
      - ...
    ext:
      - ...

This page lists the configurations for all supported components that can be used as energy measuring points (meter). 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. The command evcc meter --name grid1 can be used to test a single meter by name.

$ ./evcc meter

grid1
-----
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 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 {#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

<DeviceConfig code={`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`} advanced={`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
  delay: 100ms # optional`} />

<DeviceConfig code={`meters: - name: my_pv type: template template: wattsonic 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`} advanced={`meters:
- name: my_pv
  type: template
  template: wattsonic
  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
  delay: 100ms # optional`} />

<DeviceConfig code={`meters: - name: my_battery type: template template: wattsonic usage: battery

  # 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`} advanced={`meters:
- name: my_battery
  type: template
  template: wattsonic
  usage: battery
  
  # 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
  capacity: 50 # Battery capacity in kWh (optional)
  delay: 100ms # optional`} />

ABB A43, A44, B23, B24

<DeviceConfig code={`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`}  />

<DeviceConfig code={`meters: - name: my_charger type: template template: abb-ab 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`}  />

Acrel ADW300 Wireless Metering Meter

<DeviceConfig code={`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`}  />

<DeviceConfig code={`meters: - name: my_pv type: template template: acrel-adw300 usage: pv

  # 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`}  />

<DeviceConfig code={`meters: - name: my_charger type: template template: acrel-adw300 usage: charge

  # 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

<DeviceConfig code={`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`} advanced={`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
  capacity: 50 # Battery capacity in kWh (optional)`} />

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.

<DeviceConfig code={`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`} advanced={`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
  minsoc: 20 # Lower limit when discharging the battery (normal operation) (optional)
  maxsoc: 95 # Upper limit when charging the battery from the grid (optional)`} />

<DeviceConfig code={`meters: - name: my_pv type: template template: alpha-ess-smile usage: pv

  # 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`} advanced={`meters:
- name: my_pv
  type: template
  template: alpha-ess-smile
  usage: pv
  
  # 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
  minsoc: 20 # Lower limit when discharging the battery (normal operation) (optional)
  maxsoc: 95 # Upper limit when charging the battery from the grid (optional)
  maxacpower: 0 # Maximum AC power of the hybrid inverter in W (optional)`} />

<DeviceConfig code={`meters: - name: my_battery type: template template: alpha-ess-smile usage: battery

  # 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`} advanced={`meters:
- name: my_battery
  type: template
  template: alpha-ess-smile
  usage: battery
  
  # 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
  capacity: 50 # Battery capacity in kWh (optional)
  minsoc: 20 # Lower limit when discharging the battery (normal operation) (optional)
  maxsoc: 95 # Upper limit when charging the battery from the grid (optional)`} />

Ampere Ampere.StoragePro

<DeviceConfig code={`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`} advanced={`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
  minsoc: 20 # Lower limit when discharging the battery (normal operation) (optional)
  maxsoc: 95 # Upper limit when charging the battery from the grid (optional)`} />

<DeviceConfig code={`meters: - name: my_pv type: template template: saj-h2 usage: pv

  # 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`} advanced={`meters:
- name: my_pv
  type: template
  template: saj-h2
  usage: pv
  
  # 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
  minsoc: 20 # Lower limit when discharging the battery (normal operation) (optional)
  maxsoc: 95 # Upper limit when charging the battery from the grid (optional)`} />

<DeviceConfig code={`meters: - name: my_battery type: template template: saj-h2 usage: battery

  # 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`} advanced={`meters:
- name: my_battery
  type: template
  template: saj-h2
  usage: battery
  
  # 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
  capacity: 50 # Battery capacity in kWh (optional)
  defaultmode: 2 # Default mode for battery control to which the inverter falls back after charging the battery or after stopping discharge. (optional)
  minsoc: 20 # Lower limit when discharging the battery (normal operation) (optional)
  maxsoc: 95 # Upper limit when charging the battery from the grid (optional)`} />

Anker Micro inverter

<DeviceConfig code={`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

<DeviceConfig code={meters: - name: my_pv type: template template: apsystems-ez1 usage: pv host: 192.0.2.2 # IP address or hostname} />

Axitec AXIhycon 12-15H

<DeviceConfig code={`meters: - name: my_grid type: template template: solis-hybrid-s 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`}  />

<DeviceConfig code={`meters: - name: my_pv type: template template: solis-hybrid-s 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`} advanced={`meters:
- name: my_pv
  type: template
  template: solis-hybrid-s
  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
  maxacpower: 0 # Maximum AC power of the hybrid inverter in W (optional)`} />

<DeviceConfig code={`meters: - name: my_battery type: template template: solis-hybrid-s 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`} advanced={`meters:
- name: my_battery
  type: template
  template: solis-hybrid-s
  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
  capacity: 50 # Battery capacity in kWh (optional)`} />

Bernecker Engineering MPM3PM

<DeviceConfig code={`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`}  />

<DeviceConfig code={`meters: - name: my_charger type: template template: mpm3pm 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`}  />

BGEtech

DS100

<DeviceConfig code={`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`}  />

<DeviceConfig code={`meters: - name: my_pv type: template template: bge_tech_ds100 usage: pv

  # 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`}  />

<DeviceConfig code={`meters: - name: my_charger type: template template: bge_tech_ds100 usage: charge

  # 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`}  />

<DeviceConfig code={`meters: - name: my_aux type: template template: bge_tech_ds100 usage: aux

  # 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

<DeviceConfig code={`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`}  />

<DeviceConfig code={`meters: - name: my_pv type: template template: bge_tech_ws100 usage: pv

  # 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`}  />

<DeviceConfig code={`meters: - name: my_charger type: template template: bge_tech_ws100 usage: charge

  # 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`}  />

<DeviceConfig code={`meters: - name: my_aux type: template template: bge_tech_ws100 usage: aux

  # 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

<DeviceConfig code={`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

<DeviceConfig code={`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`}  />

<DeviceConfig code={`meters: - name: my_charger type: template template: cg-emt1xx 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`}  />

EM24

<DeviceConfig code={`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`}  />

<DeviceConfig code={`meters: - name: my_charger type: template template: cg-em24 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
  
  # Modbus TCP
  modbus: tcpip
  id: 1
  host: 192.0.2.2 # Hostname
  port: 502 # Port`}  />

EM330/EM340

<DeviceConfig code={`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`}  />

<DeviceConfig code={`meters: - name: my_charger type: template template: cg-emt3xx 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
  
  # Modbus TCP
  modbus: tcpip
  id: 1
  host: 192.0.2.2 # Hostname
  port: 502 # Port`}  />

EM530/EM540

<DeviceConfig code={`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`}  />

<DeviceConfig code={`meters: - name: my_charger type: template template: cg-emt3xx 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
  
  # Modbus TCP
  modbus: tcpip
  id: 1
  host: 192.0.2.2 # Hostname
  port: 502 # Port`}  />

ET112

<DeviceConfig code={`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`}  />

<DeviceConfig code={`meters: - name: my_charger type: template template: cg-emt1xx 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`}  />

ET330/ET340

<DeviceConfig code={`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`}  />

<DeviceConfig code={`meters: - name: my_charger type: template template: cg-emt3xx 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
  
  # Modbus TCP
  modbus: tcpip
  id: 1
  host: 192.0.2.2 # Hostname
  port: 502 # Port`}  />

cFos PowerBrain Meter

<DeviceConfig code={`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`}  />

Deye

3p hybrid inverter

<DeviceConfig code={`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`} advanced={`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
  minsoc: 20 # Lower limit when discharging the battery (normal operation) (optional)
  maxsoc: 95 # Upper limit when charging the battery from the grid (optional)`} />

<DeviceConfig code={`meters: - name: my_pv type: template template: deye-hybrid-3p 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`} advanced={`meters:
- name: my_pv
  type: template
  template: deye-hybrid-3p
  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
  minsoc: 20 # Lower limit when discharging the battery (normal operation) (optional)
  maxsoc: 95 # Upper limit when charging the battery from the grid (optional)
  maxacpower: 0 # Maximum AC power of the hybrid inverter in W (optional)`} />

<DeviceConfig code={`meters: - name: my_battery type: template template: deye-hybrid-3p 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`} advanced={`meters:
- name: my_battery
  type: template
  template: deye-hybrid-3p
  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
  capacity: 50 # Battery capacity in kWh (optional)
  minsoc: 20 # Lower limit when discharging the battery (normal operation) (optional)
  maxsoc: 95 # Upper limit when charging the battery from the grid (optional)`} />

hp3 hybrid inverter

<DeviceConfig code={`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`} advanced={`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
  storageunit: 1 # optional
  minsoc: 20 # Lower limit when discharging the battery (normal operation) (optional)
  maxsoc: 95 # Upper limit when charging the battery from the grid (optional)`} />

<DeviceConfig code={`meters: - name: my_pv type: template template: deye-hybrid-hp3 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`} advanced={`meters:
- name: my_pv
  type: template
  template: deye-hybrid-hp3
  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
  storageunit: 1 # optional
  minsoc: 20 # Lower limit when discharging the battery (normal operation) (optional)
  maxsoc: 95 # Upper limit when charging the battery from the grid (optional)
  maxacpower: 0 # Maximum AC power of the hybrid inverter in W (optional)`} />

<DeviceConfig code={`meters: - name: my_battery type: template template: deye-hybrid-hp3 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`} advanced={`meters:
- name: my_battery
  type: template
  template: deye-hybrid-hp3
  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
  storageunit: 1 # optional
  capacity: 50 # Battery capacity in kWh (optional)
  minsoc: 20 # Lower limit when discharging the battery (normal operation) (optional)
  maxsoc: 95 # Upper limit when charging the battery from the grid (optional)`} />

Micro inverter

<DeviceConfig code={`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

<DeviceConfig code={`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`}  />

<DeviceConfig code={`meters: - name: my_battery type: template template: deye-storage 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`} advanced={`meters:
- name: my_battery
  type: template
  template: deye-storage
  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
  capacity: 50 # Battery capacity in kWh (optional)`} />

<DeviceConfig code={`meters: - name: my_grid type: template template: deye-storage 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`}  />

String inverter

<DeviceConfig code={`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

<DeviceConfig code={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} />

<DeviceConfig code={meters: - name: my_pv type: template template: discovergy usage: pv 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

<DeviceConfig code={meters: - name: my_grid type: template template: dsmr usage: grid host: 192.0.2.2 # IP address or hostname port: 1502 # Port (optional)} advanced={meters: - name: my_grid type: template template: dsmr usage: grid host: 192.0.2.2 # IP address or hostname port: 1502 # Port (optional) energy: # Typically 1-0:1.8.0 or 1-0:1.8.1/1-0:1.8.2 with multiple tariffs (optional)} />

DZG DVH4013

<DeviceConfig code={`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. The IP adresses of evcc and E3/DC system must be in the same subnet.

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

<DeviceConfig code={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:} advanced={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: dischargelimit: # Limits discharge power in 'Hold' battery mode (optional)} />

<DeviceConfig code={meters: - name: my_pv type: template template: e3dc-rscp usage: pv 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:} advanced={meters: - name: my_pv type: template template: e3dc-rscp usage: pv 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: dischargelimit: # Limits discharge power in 'Hold' battery mode (optional)} />

<DeviceConfig code={meters: - name: my_battery type: template template: e3dc-rscp usage: battery 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:} advanced={meters: - name: my_battery type: template template: e3dc-rscp usage: battery 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: dischargelimit: # Limits discharge power in 'Hold' battery mode (optional) capacity: 50 # Battery capacity in kWh (optional)} />

Eastron

SDM120-Modbus

<DeviceConfig code={`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`}  />

<DeviceConfig code={`meters: - name: my_charger type: template template: eastron-sdm120 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`}  />

<DeviceConfig code={`meters: - name: my_pv type: template template: eastron-sdm120 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`}  />

SDM220/230

<DeviceConfig code={`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`}  />

<DeviceConfig code={`meters: - name: my_charger type: template template: eastron-sdm220_230 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`}  />

SDM630-Modbus

<DeviceConfig code={`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`}  />

<DeviceConfig code={`meters: - name: my_charger type: template template: eastron 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`}  />

SDM72D-M

<DeviceConfig code={`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`}  />

<DeviceConfig code={`meters: - name: my_charger type: template template: eastron-sdm72 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`}  />

SDM72DM-V2

<DeviceConfig code={`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`}  />

<DeviceConfig code={`meters: - name: my_charger type: template template: eastron 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`}  />

Enphase IQ Envoy

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

<DeviceConfig code={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)} advanced={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) cache: 1s # Time interval with when data should be reloaded from the vehicle (optional)} />

<DeviceConfig code={meters: - name: my_pv type: template template: enphase usage: pv 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)} advanced={meters: - name: my_pv type: template template: enphase usage: pv 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) cache: 1s # Time interval with when data should be reloaded from the vehicle (optional)} />

<DeviceConfig code={meters: - name: my_battery type: template template: enphase usage: battery 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)} advanced={meters: - name: my_battery type: template template: enphase usage: battery 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) capacity: 50 # Battery capacity in kWh (optional) cache: 1s # Time interval with when data should be reloaded from the vehicle (optional)} />

ESPHome DSMR

<DeviceConfig code={meters: - name: my_grid type: template template: slimmelezer usage: grid host: 192.0.2.2 # IP address or hostname} advanced={meters: - name: my_grid type: template template: slimmelezer usage: grid host: 192.0.2.2 # IP address or hostname scale: 1000 # Use scale of 1000 for Zuidwijk Slimmelezer. Use scale 1 for ESPHome DSMR and mhendriks P1 Dongle} />

FENECON

<DeviceConfig code={meters: - name: my_grid type: template template: openems usage: grid host: 192.0.2.2 # IP address or hostname} advanced={meters: - name: my_grid type: template template: openems usage: grid host: 192.0.2.2 # IP address or hostname password: user # Password of the user account (use single quotes in case of leading zeros) (optional)} />

<DeviceConfig code={meters: - name: my_pv type: template template: openems usage: pv host: 192.0.2.2 # IP address or hostname} advanced={meters: - name: my_pv type: template template: openems usage: pv host: 192.0.2.2 # IP address or hostname password: user # Password of the user account (use single quotes in case of leading zeros) (optional) maxacpower: 0 # Maximum AC power of the hybrid inverter in W (optional)} />

<DeviceConfig code={meters: - name: my_battery type: template template: openems usage: battery host: 192.0.2.2 # IP address or hostname} advanced={meters: - name: my_battery type: template template: openems usage: battery host: 192.0.2.2 # IP address or hostname password: user # Password of the user account (use single quotes in case of leading zeros) (optional) capacity: 50 # Battery capacity in kWh (optional)} />

FoxESS

H1 Series Hybrid Inverter

<DeviceConfig code={`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`}  />

<DeviceConfig code={`meters: - name: my_battery type: template template: fox-ess-h1 usage: battery

  # 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

<DeviceConfig code={`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`} advanced={`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
  minsoc: 25 # Lower limit when discharging the battery (normal operation) (optional)
  maxsoc: 95 # Upper limit when charging the battery from the grid (optional)`} />

<DeviceConfig code={`meters: - name: my_pv type: template template: fox-ess-h3 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`} advanced={`meters:
- name: my_pv
  type: template
  template: fox-ess-h3
  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
  minsoc: 25 # Lower limit when discharging the battery (normal operation) (optional)
  maxsoc: 95 # Upper limit when charging the battery from the grid (optional)
  maxacpower: 0 # Maximum AC power of the hybrid inverter in W (optional)`} />

<DeviceConfig code={`meters: - name: my_battery type: template template: fox-ess-h3 usage: battery

  # 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`} advanced={`meters:
- name: my_battery
  type: template
  template: fox-ess-h3
  usage: battery
  
  # 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
  capacity: 50 # Battery capacity in kWh (optional)
  minsoc: 25 # Lower limit when discharging the battery (normal operation) (optional)
  maxsoc: 95 # Upper limit when charging the battery from the grid (optional)`} />

Fronius

Ohmpilot

<DeviceConfig code={meters: - name: my_aux type: template template: fronius-ohmpilot usage: aux host: 192.0.2.2 # IP address or hostname} advanced={meters: - name: my_aux type: template template: fronius-ohmpilot usage: aux host: 192.0.2.2 # IP address or hostname key: 0 # optional} />

Primo GEN24 Plus

<DeviceConfig code={meters: - name: my_grid type: template template: fronius-gen24 usage: grid host: 192.0.2.2 # IP address or hostname port: 502 # Port (optional)} advanced={meters: - name: my_grid type: template template: fronius-gen24 usage: grid host: 192.0.2.2 # IP address or hostname port: 502 # Port (optional) id: 200 # Meter address of primary or secondary meters. On the web interface of the inverter, only the address of the first meter (e.g., 200) can be set. Additional meters receive an ascending number (e.g., 201). (optional)} />

<DeviceConfig code={meters: - name: my_pv type: template template: fronius-gen24 usage: pv host: 192.0.2.2 # IP address or hostname port: 502 # Port (optional)} advanced={meters: - name: my_pv type: template template: fronius-gen24 usage: pv host: 192.0.2.2 # IP address or hostname port: 502 # Port (optional) maxacpower: 0 # Maximum AC power of the hybrid inverter in W (optional)} />

<DeviceConfig code={meters: - name: my_battery type: template template: fronius-gen24 usage: battery host: 192.0.2.2 # IP address or hostname port: 502 # Port (optional)} advanced={meters: - name: my_battery type: template template: fronius-gen24 usage: battery host: 192.0.2.2 # IP address or hostname port: 502 # Port (optional) maxchargerate: 100 # Power limit for grid charging. (optional) capacity: 50 # Battery capacity in kWh (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.

<DeviceConfig code={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)} />

<DeviceConfig code={meters: - name: my_pv type: template template: fronius-solarapi-v1 usage: pv 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)} />

<DeviceConfig code={meters: - name: my_battery type: template template: fronius-solarapi-v1 usage: battery 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)} advanced={meters: - name: my_battery type: template template: fronius-solarapi-v1 usage: battery 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) capacity: 50 # Battery capacity in kWh (optional)} />

Symo GEN24 Plus

<DeviceConfig code={meters: - name: my_grid type: template template: fronius-gen24 usage: grid host: 192.0.2.2 # IP address or hostname port: 502 # Port (optional)} advanced={meters: - name: my_grid type: template template: fronius-gen24 usage: grid host: 192.0.2.2 # IP address or hostname port: 502 # Port (optional) id: 200 # Meter address of primary or secondary meters. On the web interface of the inverter, only the address of the first meter (e.g., 200) can be set. Additional meters receive an ascending number (e.g., 201). (optional)} />

<DeviceConfig code={meters: - name: my_pv type: template template: fronius-gen24 usage: pv host: 192.0.2.2 # IP address or hostname port: 502 # Port (optional)} advanced={meters: - name: my_pv type: template template: fronius-gen24 usage: pv host: 192.0.2.2 # IP address or hostname port: 502 # Port (optional) maxacpower: 0 # Maximum AC power of the hybrid inverter in W (optional)} />

<DeviceConfig code={meters: - name: my_battery type: template template: fronius-gen24 usage: battery host: 192.0.2.2 # IP address or hostname port: 502 # Port (optional)} advanced={meters: - name: my_battery type: template template: fronius-gen24 usage: battery host: 192.0.2.2 # IP address or hostname port: 502 # Port (optional) maxchargerate: 100 # Power limit for grid charging. (optional) capacity: 50 # Battery capacity in kWh (optional)} />

Ginlong

Solis Hybrid Inverter (RHI series)

<DeviceConfig code={`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`}  />

<DeviceConfig code={`meters: - name: my_pv type: template template: solis-hybrid 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`} advanced={`meters:
- name: my_pv
  type: template
  template: solis-hybrid
  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
  maxacpower: 0 # Maximum AC power of the hybrid inverter in W (optional)`} />

<DeviceConfig code={`meters: - name: my_battery type: template template: solis-hybrid 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`} advanced={`meters:
- name: my_battery
  type: template
  template: solis-hybrid
  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
  capacity: 50 # Battery capacity in kWh (optional)`} />

Solis Hybrid Inverter (S Series)

<DeviceConfig code={`meters: - name: my_grid type: template template: solis-hybrid-s 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`}  />

<DeviceConfig code={`meters: - name: my_pv type: template template: solis-hybrid-s 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`} advanced={`meters:
- name: my_pv
  type: template
  template: solis-hybrid-s
  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
  maxacpower: 0 # Maximum AC power of the hybrid inverter in W (optional)`} />

<DeviceConfig code={`meters: - name: my_battery type: template template: solis-hybrid-s 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`} advanced={`meters:
- name: my_battery
  type: template
  template: solis-hybrid-s
  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
  capacity: 50 # Battery capacity in kWh (optional)`} />

Solis Inverter

<DeviceConfig code={`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`}  />

<DeviceConfig code={`meters: - name: my_pv type: template template: solis 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`}  />

go-e Controller

<DeviceConfig code={meters: - name: my_grid type: template template: go-e-controller usage: grid host: 192.0.2.2 # IP address or hostname} />

<DeviceConfig code={meters: - name: my_pv type: template template: go-e-controller usage: pv host: 192.0.2.2 # IP address or hostname} />

GoodWe

ET/EH/BH/BT Hybrid Inverter

<DeviceConfig code={`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`}  />

<DeviceConfig code={`meters: - name: my_pv type: template template: goodwe-hybrid 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
  battery: 1 # optional`} advanced={`meters:
- name: my_pv
  type: template
  template: goodwe-hybrid
  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
  battery: 1 # optional
  maxacpower: 0 # Maximum AC power of the hybrid inverter in W (optional)`} />

<DeviceConfig code={`meters: - name: my_battery type: template template: goodwe-hybrid usage: battery

  # 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`} advanced={`meters:
- name: my_battery
  type: template
  template: goodwe-hybrid
  usage: battery
  
  # 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
  capacity: 50 # Battery capacity in kWh (optional)`} />

GoodWe over Wifi

<DeviceConfig code={meters: - name: my_grid type: template template: goodwe-wifi usage: grid uri: # HTTP(S) address (optional)} />

<DeviceConfig code={meters: - name: my_pv type: template template: goodwe-wifi usage: pv uri: # HTTP(S) address (optional)} />

<DeviceConfig code={meters: - name: my_battery type: template template: goodwe-wifi usage: battery uri: # HTTP(S) address (optional)} />

SDT/DT Inverter

<DeviceConfig code={`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.

<DeviceConfig code={`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`}  />

<DeviceConfig code={`meters: - name: my_pv type: template template: growatt-hybrid 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`} advanced={`meters:
- name: my_pv
  type: template
  template: growatt-hybrid
  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
  maxacpower: 0 # Maximum AC power of the hybrid inverter in W (optional)`} />

<DeviceConfig code={`meters: - name: my_battery type: template template: growatt-hybrid 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`} advanced={`meters:
- name: my_battery
  type: template
  template: growatt-hybrid
  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
  capacity: 50 # Battery capacity in kWh (optional)`} />

TL-X(H) Hybrid Inverter

<DeviceConfig code={`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`}  />

<DeviceConfig code={`meters: - name: my_pv type: template template: growatt-hybrid-tlxh 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`} advanced={`meters:
- name: my_pv
  type: template
  template: growatt-hybrid-tlxh
  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
  maxacpower: 0 # Maximum AC power of the hybrid inverter in W (optional)`} />

<DeviceConfig code={`meters: - name: my_battery type: template template: growatt-hybrid-tlxh 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`} advanced={`meters:
- name: my_battery
  type: template
  template: growatt-hybrid-tlxh
  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
  capacity: 50 # Battery capacity in kWh (optional)`} />

HomeWizard

kWh Meter

<DeviceConfig code={meters: - name: my_pv type: template template: homewizard-kwh usage: pv host: 192.0.2.2 # IP address or hostname} />

Wi-Fi P1 Meter

<DeviceConfig code={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)

<DeviceConfig code={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)

<DeviceConfig code={meters: - name: my_pv type: template template: hoymiles-opendtu usage: pv host: 192.0.2.2 # IP address or hostname} />

Huawei

EMMA

<DeviceConfig code={`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`}  />

<DeviceConfig code={`meters: - name: my_pv type: template template: huawei-emma usage: pv

  # Modbus TCP
  modbus: tcpip
  id: 1
  host: 192.0.2.2 # Hostname
  port: 502 # Port`}  />

<DeviceConfig code={`meters: - name: my_battery type: template template: huawei-emma usage: battery

  # Modbus TCP
  modbus: tcpip
  id: 1
  host: 192.0.2.2 # Hostname
  port: 502 # Port`} advanced={`meters:
- name: my_battery
  type: template
  template: huawei-emma
  usage: battery
  
  # Modbus TCP
  modbus: tcpip
  id: 1
  host: 192.0.2.2 # Hostname
  port: 502 # Port
  capacity: 50 # Battery capacity in kWh (optional)`} />

SmartLogger

<DeviceConfig code={`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`} advanced={`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
  storageunit: 1 # optional`} />

<DeviceConfig code={`meters: - name: my_pv type: template template: huawei-smartlogger usage: pv

  # Modbus TCP
  modbus: tcpip
  id: 1
  host: 192.0.2.2 # Hostname
  port: 502 # Port
  timeout: 15s # optional`} advanced={`meters:
- name: my_pv
  type: template
  template: huawei-smartlogger
  usage: pv
  
  # Modbus TCP
  modbus: tcpip
  id: 1
  host: 192.0.2.2 # Hostname
  port: 502 # Port
  timeout: 15s # optional
  storageunit: 1 # optional
  maxacpower: 0 # Maximum AC power of the hybrid inverter in W (optional)`} />

<DeviceConfig code={`meters: - name: my_battery type: template template: huawei-smartlogger usage: battery

  # Modbus TCP
  modbus: tcpip
  id: 1
  host: 192.0.2.2 # Hostname
  port: 502 # Port
  timeout: 15s # optional`} advanced={`meters:
- name: my_battery
  type: template
  template: huawei-smartlogger
  usage: battery
  
  # Modbus TCP
  modbus: tcpip
  id: 1
  host: 192.0.2.2 # Hostname
  port: 502 # Port
  timeout: 15s # optional
  storageunit: 1 # optional
  capacity: 50 # Battery capacity in kWh (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

<DeviceConfig code={`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`} advanced={`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
  storageunit: 1 # optional`} />

<DeviceConfig code={`meters: - name: my_pv type: template template: huawei-sun2000 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
  timeout: 15s # optional`} advanced={`meters:
- name: my_pv
  type: template
  template: huawei-sun2000
  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
  timeout: 15s # optional
  storageunit: 1 # optional
  maxacpower: 0 # Maximum AC power of the hybrid inverter in W (optional)`} />

<DeviceConfig code={`meters: - name: my_battery type: template template: huawei-sun2000 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
  timeout: 15s # optional`} advanced={`meters:
- name: my_battery
  type: template
  template: huawei-sun2000
  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
  timeout: 15s # optional
  storageunit: 1 # optional
  maxchargepower: 10000 # Power limit for grid charging. (optional)
  capacity: 50 # Battery capacity in kWh (optional)
  forceaccharging: false # Keep AC charging active to charge the storage from other inverters via AC. Prevents stand-by. (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

<DeviceConfig code={`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`}  />

IAMMETER

WEM3080

3-phase meters (WEM3080T/WEM3046T/WEM3050T) require Net Metering Mode (NEM) to be enabled. See https://www.iammeter.com/newsshow/net-energy-metering

<DeviceConfig code={meters: - name: my_grid type: template template: iammeter usage: grid host: 192.0.2.2 # IP address or hostname} />

<DeviceConfig code={meters: - name: my_pv type: template template: iammeter usage: pv host: 192.0.2.2 # IP address or hostname} />

<DeviceConfig code={meters: - name: my_charger type: template template: iammeter usage: charge host: 192.0.2.2 # IP address or hostname} />

WEM3080T/WEM3046T/WEM3050T

3-phase meters (WEM3080T/WEM3046T/WEM3050T) require Net Metering Mode (NEM) to be enabled. See https://www.iammeter.com/newsshow/net-energy-metering

<DeviceConfig code={meters: - name: my_grid type: template template: iammeter usage: grid host: 192.0.2.2 # IP address or hostname} />

<DeviceConfig code={meters: - name: my_pv type: template template: iammeter usage: pv host: 192.0.2.2 # IP address or hostname} />

<DeviceConfig code={meters: - name: my_charger type: template template: iammeter usage: charge host: 192.0.2.2 # IP address or hostname} />

IGEN Tech Solarman Logger

<DeviceConfig code={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

<DeviceConfig code={`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`}  />

<DeviceConfig code={`meters: - name: my_charger type: template template: inepro 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`}  />

Janitza B series, UMG series

<DeviceConfig code={`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`}  />

<DeviceConfig code={`meters: - name: my_charger type: template template: janitza 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
  
  # Modbus TCP
  modbus: tcpip
  id: 1
  host: 192.0.2.2 # Hostname
  port: 502 # Port`}  />

KEBA KeContact E10

<DeviceConfig code={`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)

<DeviceConfig code={`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`}  />

<DeviceConfig code={`meters: - name: my_charger type: template template: cg-emt3xx 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
  
  # Modbus TCP
  modbus: tcpip
  id: 1
  host: 192.0.2.2 # Hostname
  port: 502 # Port`}  />

Energy Meter P (KEM-P)

<DeviceConfig code={`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`}  />

<DeviceConfig code={`meters: - name: my_charger type: template template: eastron 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`}  />

Piko (legacy)

<DeviceConfig code={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

<DeviceConfig code={meters: - name: my_grid type: template template: kostal-piko-hybrid usage: grid host: 192.0.2.2 # IP address or hostname} />

<DeviceConfig code={meters: - name: my_pv type: template template: kostal-piko-hybrid usage: pv host: 192.0.2.2 # IP address or hostname} />

<DeviceConfig code={meters: - name: my_battery type: template template: kostal-piko-hybrid usage: battery host: 192.0.2.2 # IP address or hostname} advanced={meters: - name: my_battery type: template template: kostal-piko-hybrid usage: battery host: 192.0.2.2 # IP address or hostname capacity: 50 # Battery capacity in kWh (optional)} />

Piko MP Plus

<DeviceConfig code={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

<DeviceConfig code={meters: - name: my_grid type: template template: kostal-piko-pv usage: grid host: 192.0.2.2 # IP address or hostname} />

<DeviceConfig code={meters: - name: my_pv type: template template: kostal-piko-pv usage: pv host: 192.0.2.2 # IP address or hostname} />

Plenticore Hybrid

Only a single system may access the inverter! For active battery control the function external battery control via Modbus must be activated using installer access. Grid charging is not available! see also https://github.com/evcc-io/evcc/wiki/Kostal-Plenticore

<DeviceConfig code={`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`} advanced={`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
  endianness: little # optional
  maxacpower: 0 # Maximum AC power of the hybrid inverter in W (optional)
  minsoc: 25 # Lower limit when discharging the battery (normal operation) (optional)
  maxsoc: 95 # Upper limit when charging the battery from the grid (optional)
  watchdog: 60s # optional`} />

<DeviceConfig code={`meters: - name: my_battery type: template template: kostal-plenticore usage: battery

  # Modbus TCP
  modbus: tcpip
  id: 71
  host: 192.0.2.2 # Hostname
  port: 1502 # Port`} advanced={`meters:
- name: my_battery
  type: template
  template: kostal-plenticore
  usage: battery
  
  # Modbus TCP
  modbus: tcpip
  id: 71
  host: 192.0.2.2 # Hostname
  port: 1502 # Port
  endianness: little # optional
  capacity: 50 # Battery capacity in kWh (optional)
  minsoc: 25 # Lower limit when discharging the battery (normal operation) (optional)
  maxsoc: 95 # Upper limit when charging the battery from the grid (optional)
  watchdog: 60s # optional`} />

Plenticore Hybrid, incl. grid charging of the house battery

Only a single system may access the inverter! For active battery control, the feature external battery control via modbus must be activated using installer access. Can basically be used for various inverter generations (G1/G2/G3). The function for grid charging the battery is available using this template, but is currently incompatible with some older inverters - test carefully! see also https://github.com/evcc-io/evcc/wiki/Kostal-Plenticore

<DeviceConfig code={`meters: - name: my_pv type: template template: kostal-plenticore-gen2 usage: pv

  # Modbus TCP
  modbus: tcpip
  id: 71
  host: 192.0.2.2 # Hostname
  port: 1502 # Port`} advanced={`meters:
- name: my_pv
  type: template
  template: kostal-plenticore-gen2
  usage: pv
  
  # Modbus TCP
  modbus: tcpip
  id: 71
  host: 192.0.2.2 # Hostname
  port: 1502 # Port
  endianness: little # optional
  maxacpower: 0 # Maximum AC power of the hybrid inverter in W (optional)
  watchdog: 60s # optional`} />

<DeviceConfig code={`meters: - name: my_battery type: template template: kostal-plenticore-gen2 usage: battery

  # Modbus TCP
  modbus: tcpip
  id: 71
  host: 192.0.2.2 # Hostname
  port: 1502 # Port`} advanced={`meters:
- name: my_battery
  type: template
  template: kostal-plenticore-gen2
  usage: battery
  
  # Modbus TCP
  modbus: tcpip
  id: 71
  host: 192.0.2.2 # Hostname
  port: 1502 # Port
  endianness: little # optional
  capacity: 50 # Battery capacity in kWh (optional)
  maxchargerate: 100 # Power limit for grid charging. (optional)
  watchdog: 60s # optional`} />

Smart Energy Meter

<DeviceConfig code={`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.

<DeviceConfig code={`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

<DeviceConfig code={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)} advanced={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) registration: DE200... # Registration id of the LG ESS HOME inverter. (optional) minsoc: 25 # Lower limit when discharging the battery (normal operation) (optional) maxsoc: 95 # Upper limit when charging the battery from the grid (optional)} />

<DeviceConfig code={meters: - name: my_pv type: template template: lg-ess-home-15 usage: pv 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)} advanced={meters: - name: my_pv type: template template: lg-ess-home-15 usage: pv 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) registration: DE200... # Registration id of the LG ESS HOME inverter. (optional) minsoc: 25 # Lower limit when discharging the battery (normal operation) (optional) maxsoc: 95 # Upper limit when charging the battery from the grid (optional)} />

<DeviceConfig code={meters: - name: my_battery type: template template: lg-ess-home-15 usage: battery 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)} advanced={meters: - name: my_battery type: template template: lg-ess-home-15 usage: battery 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) registration: DE200... # Registration id of the LG ESS HOME inverter. (optional) capacity: 50 # Battery capacity in kWh (optional) minsoc: 25 # Lower limit when discharging the battery (normal operation) (optional) maxsoc: 95 # Upper limit when charging the battery from the grid (optional)} />

ESS Home 8/10

<DeviceConfig code={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)} advanced={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) registration: DE200... # Registration id of the LG ESS HOME inverter. (optional) minsoc: 25 # Lower limit when discharging the battery (normal operation) (optional) maxsoc: 95 # Upper limit when charging the battery from the grid (optional)} />

<DeviceConfig code={meters: - name: my_pv type: template template: lg-ess-home-8-10 usage: pv 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)} advanced={meters: - name: my_pv type: template template: lg-ess-home-8-10 usage: pv 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) registration: DE200... # Registration id of the LG ESS HOME inverter. (optional) minsoc: 25 # Lower limit when discharging the battery (normal operation) (optional) maxsoc: 95 # Upper limit when charging the battery from the grid (optional)} />

<DeviceConfig code={meters: - name: my_battery type: template template: lg-ess-home-8-10 usage: battery 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)} advanced={meters: - name: my_battery type: template template: lg-ess-home-8-10 usage: battery 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) registration: DE200... # Registration id of the LG ESS HOME inverter. (optional) capacity: 50 # Battery capacity in kWh (optional) minsoc: 25 # Lower limit when discharging the battery (normal operation) (optional) maxsoc: 95 # Upper limit when charging the battery from the grid (optional)} />

Loxone Miniserver

<DeviceConfig code={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)} />

<DeviceConfig code={meters: - name: my_pv type: template template: loxone usage: pv 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)} />

<DeviceConfig code={meters: - name: my_battery type: template template: loxone usage: battery 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)} />

<DeviceConfig code={meters: - name: my_charger type: template template: loxone usage: charge 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

<DeviceConfig code={`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`}  />

<DeviceConfig code={`meters: - name: my_pv type: template template: mtec-eb-gen2 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`}  />

<DeviceConfig code={`meters: - name: my_battery type: template template: mtec-eb-gen2 usage: battery

  # 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

<DeviceConfig code={`meters: - name: my_grid type: template template: mtec-eb-gen3 usage: grid

  # RS485 via adapter (Modbus RTU)
  modbus: rs485serial
  id: 255
  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: 255
  host: 192.0.2.2 # Hostname
  port: 502 # Port
  
  # Modbus TCP
  modbus: tcpip
  id: 255
  host: 192.0.2.2 # Hostname
  port: 502 # Port`}  />

<DeviceConfig code={`meters: - name: my_pv type: template template: mtec-eb-gen3 usage: pv

  # RS485 via adapter (Modbus RTU)
  modbus: rs485serial
  id: 255
  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: 255
  host: 192.0.2.2 # Hostname
  port: 502 # Port
  
  # Modbus TCP
  modbus: tcpip
  id: 255
  host: 192.0.2.2 # Hostname
  port: 502 # Port`}  />

<DeviceConfig code={`meters: - name: my_battery type: template template: mtec-eb-gen3 usage: battery

  # RS485 via adapter (Modbus RTU)
  modbus: rs485serial
  id: 255
  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: 255
  host: 192.0.2.2 # Hostname
  port: 502 # Port
  
  # Modbus TCP
  modbus: tcpip
  id: 255
  host: 192.0.2.2 # Hostname
  port: 502 # Port`} advanced={`meters:
- name: my_battery
  type: template
  template: mtec-eb-gen3
  usage: battery
  
  # RS485 via adapter (Modbus RTU)
  modbus: rs485serial
  id: 255
  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: 255
  host: 192.0.2.2 # Hostname
  port: 502 # Port
  
  # Modbus TCP
  modbus: tcpip
  id: 255
  host: 192.0.2.2 # Hostname
  port: 502 # Port
  capacity: 50 # Battery capacity in kWh (optional)`} />

mhendriks P1 dongle

<DeviceConfig code={meters: - name: my_grid type: template template: slimmelezer usage: grid host: 192.0.2.2 # IP address or hostname} advanced={meters: - name: my_grid type: template template: slimmelezer usage: grid host: 192.0.2.2 # IP address or hostname scale: 1000 # Use scale of 1000 for Zuidwijk Slimmelezer. Use scale 1 for ESPHome DSMR and mhendriks P1 Dongle} />

my-PV

AC ELWA 2

<DeviceConfig code={meters: - name: my_aux type: template template: ac-elwa-2 usage: aux host: 192.0.2.2 # IP address or hostname} />

AC ELWA-E

<DeviceConfig code={meters: - name: my_aux type: template template: ac-elwa-e usage: aux host: 192.0.2.2 # IP address or hostname} />

AC•THOR

<DeviceConfig code={meters: - name: my_aux type: template template: thor usage: aux host: 192.0.2.2 # IP address or hostname} />

WiFi Meter

<DeviceConfig code={`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

<DeviceConfig code={meters: - name: my_grid type: template template: openems usage: grid host: 192.0.2.2 # IP address or hostname} advanced={meters: - name: my_grid type: template template: openems usage: grid host: 192.0.2.2 # IP address or hostname password: user # Password of the user account (use single quotes in case of leading zeros) (optional)} />

<DeviceConfig code={meters: - name: my_pv type: template template: openems usage: pv host: 192.0.2.2 # IP address or hostname} advanced={meters: - name: my_pv type: template template: openems usage: pv host: 192.0.2.2 # IP address or hostname password: user # Password of the user account (use single quotes in case of leading zeros) (optional) maxacpower: 0 # Maximum AC power of the hybrid inverter in W (optional)} />

<DeviceConfig code={meters: - name: my_battery type: template template: openems usage: battery host: 192.0.2.2 # IP address or hostname} advanced={meters: - name: my_battery type: template template: openems usage: battery host: 192.0.2.2 # IP address or hostname password: user # Password of the user account (use single quotes in case of leading zeros) (optional) capacity: 50 # Battery capacity in kWh (optional)} />

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

<DeviceConfig code={`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`}  />

<DeviceConfig code={`meters: - name: my_charger type: template template: orno 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: "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

<DeviceConfig code={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.

<DeviceConfig code={meters: - name: my_grid type: template template: plexlog usage: grid host: 192.0.2.2 # IP address or hostname port: 503 # Port (optional)} />

<DeviceConfig code={meters: - name: my_pv type: template template: plexlog usage: pv host: 192.0.2.2 # IP address or hostname port: 503 # Port (optional)} />

<DeviceConfig code={meters: - name: my_battery type: template template: plexlog usage: battery host: 192.0.2.2 # IP address or hostname port: 503 # Port (optional)} />

Powerdog

<DeviceConfig code={`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`}  />

<DeviceConfig code={`meters: - name: my_pv type: template template: powerdog usage: pv

  # Modbus TCP
  modbus: tcpip
  id: 1
  host: 192.0.2.2 # Hostname
  port: 502 # Port`}  />

Powerfox Poweropti

<DeviceConfig code={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)} advanced={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) id: main # Id in case of multiple PowerOpti} />

<DeviceConfig code={meters: - name: my_pv type: template template: powerfox-poweropti usage: pv user: # User account (e.g. email address, user id, etc.) password: # Password of the user account (use single quotes in case of leading zeros)} advanced={meters: - name: my_pv type: template template: powerfox-poweropti usage: pv user: # User account (e.g. email address, user id, etc.) password: # Password of the user account (use single quotes in case of leading zeros) id: main # Id in case of multiple PowerOpti} />

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.

<DeviceConfig code={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.} />

<DeviceConfig code={meters: - name: my_pv type: template template: qcells-hybrid-cloud usage: pv 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.} />

<DeviceConfig code={meters: - name: my_battery type: template template: qcells-hybrid-cloud usage: battery 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.} advanced={meters: - name: my_battery type: template template: qcells-hybrid-cloud usage: battery 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. capacity: 50 # Battery capacity in kWh (optional)} />

Qcells Q.HOME ESS HYB-G3

<DeviceConfig code={`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
  mppt3: false # optional`} advanced={`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
  mppt3: false # optional
  storageunit: 1 # optional`} />

<DeviceConfig code={`meters: - name: my_pv type: template template: solax usage: pv

  # 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
  mppt3: false # optional`} advanced={`meters:
- name: my_pv
  type: template
  template: solax
  usage: pv
  
  # 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
  mppt3: false # optional
  storageunit: 1 # optional
  maxacpower: 0 # Maximum AC power of the hybrid inverter in W (optional)`} />

<DeviceConfig code={`meters: - name: my_battery type: template template: solax usage: battery

  # 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
  mppt3: false # optional`} advanced={`meters:
- name: my_battery
  type: template
  template: solax
  usage: battery
  
  # 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
  mppt3: false # optional
  storageunit: 1 # optional
  capacity: 50 # Battery capacity in kWh (optional)
  defaultmode: 0 # Default mode for battery control to which the inverter falls back after charging the battery or after stopping discharge. (optional)`} />

RCT Power

<DeviceConfig code={meters: - name: my_grid type: template template: rct-power usage: grid host: 192.0.2.2 # IP address or hostname} advanced={meters: - name: my_grid type: template template: rct-power usage: grid host: 192.0.2.2 # IP address or hostname minsoc: 7 # Lower limit when discharging the battery (normal operation) (optional) maxsoc: 97 # Upper limit when charging the battery from the grid (optional) cache: 30s # Time interval with when data should be reloaded from the vehicle (optional)} />

<DeviceConfig code={meters: - name: my_pv type: template template: rct-power usage: pv host: 192.0.2.2 # IP address or hostname} advanced={meters: - name: my_pv type: template template: rct-power usage: pv host: 192.0.2.2 # IP address or hostname minsoc: 7 # Lower limit when discharging the battery (normal operation) (optional) maxsoc: 97 # Upper limit when charging the battery from the grid (optional) cache: 30s # Time interval with when data should be reloaded from the vehicle (optional)} />

<DeviceConfig code={meters: - name: my_battery type: template template: rct-power usage: battery host: 192.0.2.2 # IP address or hostname} advanced={meters: - name: my_battery type: template template: rct-power usage: battery host: 192.0.2.2 # IP address or hostname capacity: 50 # Battery capacity in kWh (optional) minsoc: 7 # Lower limit when discharging the battery (normal operation) (optional) maxsoc: 97 # Upper limit when charging the battery from the grid (optional) cache: 30s # Time interval with when data should be reloaded from the vehicle (optional)} />

Saia-Burgess Controls ALE3, AWD3

<DeviceConfig code={`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`}  />

<DeviceConfig code={`meters: - name: my_charger type: template template: sbc-axx3 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`}  />

SAJ

H1 Series Hybrid Solar Inverter

<DeviceConfig code={`meters: - name: my_grid type: template template: saj-h1 usage: grid

  # Modbus TCP
  modbus: tcpip
  id: 1
  host: 192.0.2.2 # Hostname
  port: 502 # Port
  timeout: 5s # optional`}  />

<DeviceConfig code={`meters: - name: my_pv type: template template: saj-h1 usage: pv

  # Modbus TCP
  modbus: tcpip
  id: 1
  host: 192.0.2.2 # Hostname
  port: 502 # Port
  timeout: 5s # optional`}  />

<DeviceConfig code={`meters: - name: my_battery type: template template: saj-h1 usage: battery

  # Modbus TCP
  modbus: tcpip
  id: 1
  host: 192.0.2.2 # Hostname
  port: 502 # Port
  timeout: 5s # optional`} advanced={`meters:
- name: my_battery
  type: template
  template: saj-h1
  usage: battery
  
  # Modbus TCP
  modbus: tcpip
  id: 1
  host: 192.0.2.2 # Hostname
  port: 502 # Port
  timeout: 5s # optional
  capacity: 50 # Battery capacity in kWh (optional)`} />

H2 Series Hybrid Solar Inverter

<DeviceConfig code={`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`} advanced={`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
  minsoc: 20 # Lower limit when discharging the battery (normal operation) (optional)
  maxsoc: 95 # Upper limit when charging the battery from the grid (optional)`} />

<DeviceConfig code={`meters: - name: my_pv type: template template: saj-h2 usage: pv

  # 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`} advanced={`meters:
- name: my_pv
  type: template
  template: saj-h2
  usage: pv
  
  # 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
  minsoc: 20 # Lower limit when discharging the battery (normal operation) (optional)
  maxsoc: 95 # Upper limit when charging the battery from the grid (optional)`} />

<DeviceConfig code={`meters: - name: my_battery type: template template: saj-h2 usage: battery

  # 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`} advanced={`meters:
- name: my_battery
  type: template
  template: saj-h2
  usage: battery
  
  # 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
  capacity: 50 # Battery capacity in kWh (optional)
  defaultmode: 2 # Default mode for battery control to which the inverter falls back after charging the battery or after stopping discharge. (optional)
  minsoc: 20 # Lower limit when discharging the battery (normal operation) (optional)
  maxsoc: 95 # Upper limit when charging the battery from the grid (optional)`} />

R5 Series Solar Inverter

<DeviceConfig code={`meters: - name: my_pv type: template template: saj-r5 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`}  />

SAX Homespeicher

<DeviceConfig code={`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`}  />

<DeviceConfig code={`meters: - name: my_battery type: template template: sax usage: battery

  # Modbus TCP
  modbus: tcpip
  id: 64
  host: 192.0.2.2 # Hostname
  port: 3600 # Port`}  />

Schneider Electric iEM3xxx Modbus

<DeviceConfig code={`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`}  />

<DeviceConfig code={`meters: - name: my_charger type: template template: schneider-iem3000 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`}  />

SENEC .Home

<DeviceConfig code={meters: - name: my_grid type: template template: senec-home usage: grid host: 192.0.2.2 # IP address or hostname schema: https # optional} />

<DeviceConfig code={meters: - name: my_pv type: template template: senec-home usage: pv host: 192.0.2.2 # IP address or hostname schema: https # optional} />

<DeviceConfig code={meters: - name: my_battery type: template template: senec-home usage: battery host: 192.0.2.2 # IP address or hostname schema: https # optional} advanced={meters: - name: my_battery type: template template: senec-home usage: battery host: 192.0.2.2 # IP address or hostname schema: https # optional capacity: 50 # Battery capacity in kWh (optional)} />

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

<DeviceConfig code={`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

<DeviceConfig code={meters: - name: my_grid type: template template: shelly-3em usage: grid host: 192.0.2.2 # IP address or hostname} advanced={meters: - name: my_grid type: template template: shelly-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)} />

<DeviceConfig code={meters: - name: my_pv type: template template: shelly-3em usage: pv host: 192.0.2.2 # IP address or hostname} advanced={meters: - name: my_pv type: template template: shelly-3em usage: pv 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)} />

<DeviceConfig code={meters: - name: my_charger type: template template: shelly-3em usage: charge host: 192.0.2.2 # IP address or hostname} advanced={meters: - name: my_charger type: template template: shelly-3em usage: charge 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)} />

Pro 3 EM

<DeviceConfig code={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)} />

<DeviceConfig code={meters: - name: my_pv type: template template: shelly-pro-3em usage: pv 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)} />

<DeviceConfig code={meters: - name: my_charger type: template template: shelly-pro-3em usage: charge 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

<DeviceConfig code={`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`}  />

<DeviceConfig code={`meters: - name: my_charger type: template template: siemens-7kt1665 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
  
  # 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.

<DeviceConfig code={`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`}  />

<DeviceConfig code={`meters: - name: my_pv type: template template: siemens-junelight usage: pv

  # Modbus TCP
  modbus: tcpip
  id: 1
  host: 192.0.2.2 # Hostname
  port: 502 # Port`}  />

<DeviceConfig code={`meters: - name: my_battery type: template template: siemens-junelight usage: battery

  # Modbus TCP
  modbus: tcpip
  id: 1
  host: 192.0.2.2 # Hostname
  port: 502 # Port`} advanced={`meters:
- name: my_battery
  type: template
  template: siemens-junelight
  usage: battery
  
  # Modbus TCP
  modbus: tcpip
  id: 1
  host: 192.0.2.2 # Hostname
  port: 502 # Port
  capacity: 50 # Battery capacity in kWh (optional)`} />

PAC 2200

<DeviceConfig code={`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`}  />

<DeviceConfig code={`meters: - name: my_charger type: template template: siemens-pac2200 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
  
  # 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".

<DeviceConfig code={`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`}  />

<DeviceConfig code={`meters: - name: my_pv type: template template: sma-data-manager usage: pv

  # Modbus TCP
  modbus: tcpip
  id: 2
  host: 192.0.2.2 # Hostname
  port: 502 # Port`}  />

<DeviceConfig code={`meters: - name: my_battery type: template template: sma-data-manager usage: battery

  # Modbus TCP
  modbus: tcpip
  id: 2
  host: 192.0.2.2 # Hostname
  port: 502 # Port`} advanced={`meters:
- name: my_battery
  type: template
  template: sma-data-manager
  usage: battery
  
  # Modbus TCP
  modbus: tcpip
  id: 2
  host: 192.0.2.2 # Hostname
  port: 502 # Port
  capacity: 50 # Battery capacity in kWh (optional)`} />

Energy Meter

<DeviceConfig code={meters: - name: my_grid type: template template: sma-energy-meter usage: grid host: 192.0.2.2 # IP address or hostname} advanced={meters: - name: my_grid type: template template: sma-energy-meter usage: grid host: 192.0.2.2 # IP address or hostname interface: eth0 # Network interface (optional)} />

<DeviceConfig code={meters: - name: my_pv type: template template: sma-energy-meter usage: pv host: 192.0.2.2 # IP address or hostname} advanced={meters: - name: my_pv type: template template: sma-energy-meter usage: pv host: 192.0.2.2 # IP address or hostname interface: eth0 # Network interface (optional)} />

Inverter (Speedwire)

<DeviceConfig code={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)} />

<DeviceConfig code={meters: - name: my_battery type: template template: sma-inverter-speedwire usage: battery host: 192.0.2.2 # IP address or hostname password: # Password for user group Standard (optional)} advanced={meters: - name: my_battery type: template template: sma-inverter-speedwire usage: battery host: 192.0.2.2 # IP address or hostname password: # Password for user group Standard (optional) capacity: 50 # Battery capacity in kWh (optional)} />

Smart Energy Hybrid Inverter

<DeviceConfig code={`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`} advanced={`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
  maxacpower: 0 # Maximum AC power of the hybrid inverter in W (optional)`} />

<DeviceConfig code={`meters: - name: my_battery type: template template: sma-hybrid usage: battery

  # Modbus TCP
  modbus: tcpip
  id: 3
  host: 192.0.2.2 # Hostname
  port: 502 # Port`} advanced={`meters:
- name: my_battery
  type: template
  template: sma-hybrid
  usage: battery
  
  # Modbus TCP
  modbus: tcpip
  id: 3
  host: 192.0.2.2 # Hostname
  port: 502 # Port
  capacity: 50 # Battery capacity in kWh (optional)
  watchdog: 60s # optional
  chargepower: 4200 # Maximum charging power for forced charging of the battery in Watt (optional)`} />

Sunny Boy Storage 1.5/2.0/2.5 (Modbus)

<DeviceConfig code={`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`} advanced={`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
  capacity: 50 # Battery capacity in kWh (optional)
  watchdog: 60s # optional
  chargepower: 4200 # Maximum charging power for forced charging of the battery in Watt (optional)`} />

Sunny Boy Storage 3.7/5.0/6.0 (Modbus)

<DeviceConfig code={`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`} advanced={`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
  capacity: 50 # Battery capacity in kWh (optional)
  watchdog: 60s # optional
  chargepower: 4200 # Maximum charging power for forced charging of the battery in Watt (optional)`} />

Sunny Home Manager 2.0

<DeviceConfig code={meters: - name: my_grid type: template template: sma-home-manager usage: grid host: 192.0.2.2 # IP address or hostname} advanced={meters: - name: my_grid type: template template: sma-home-manager usage: grid host: 192.0.2.2 # IP address or hostname interface: eth0 # Network interface (optional)} />

Sunny Island (Modbus)

<DeviceConfig code={`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`} advanced={`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
  capacity: 50 # Battery capacity in kWh (optional)
  watchdog: 60s # optional
  chargepower: 4200 # Maximum charging power for forced charging of the battery in Watt (optional)`} />

WebBox

<DeviceConfig code={`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)

<DeviceConfig code={`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.

<DeviceConfig code={meters: - name: my_grid type: template template: smartfox usage: grid host: 192.0.2.2 # IP address or hostname} />

<DeviceConfig code={meters: - name: my_pv type: template template: smartfox usage: pv host: 192.0.2.2 # IP address or hostname} />

<DeviceConfig code={meters: - name: my_aux type: template template: smartfox usage: aux 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.

<DeviceConfig code={meters: - name: my_grid type: template template: smartfox-em2 usage: grid host: 192.0.2.2 # IP address or hostname} advanced={meters: - name: my_grid type: template template: smartfox-em2 usage: grid host: 192.0.2.2 # IP address or hostname cache: 1s # Time interval with when data should be reloaded from the vehicle (optional)} />

<DeviceConfig code={meters: - name: my_pv type: template template: smartfox-em2 usage: pv host: 192.0.2.2 # IP address or hostname} advanced={meters: - name: my_pv type: template template: smartfox-em2 usage: pv host: 192.0.2.2 # IP address or hostname cache: 1s # Time interval with when data should be reloaded from the vehicle (optional)} />

<DeviceConfig code={meters: - name: my_aux type: template template: smartfox-em2 usage: aux host: 192.0.2.2 # IP address or hostname} advanced={meters: - name: my_aux type: template template: smartfox-em2 usage: aux host: 192.0.2.2 # IP address or hostname cache: 1s # Time interval with when data should be reloaded from the vehicle (optional)} />

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.

<DeviceConfig code={`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`} advanced={`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
  storageunit: 1 # Number of the battery storage. In case of a BTS storage not the address of a BTS 5K battery module, but the storage tower (BTS 5K-BDU control unit with 1-4 BTS 5K modules). (optional)`} />

<DeviceConfig code={`meters: - name: my_pv type: template template: sofarsolar-g3 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: 8899 # Port
  
  # Modbus TCP
  modbus: tcpip
  id: 1
  host: 192.0.2.2 # Hostname
  port: 8899 # Port`} advanced={`meters:
- name: my_pv
  type: template
  template: sofarsolar-g3
  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: 8899 # Port
  
  # Modbus TCP
  modbus: tcpip
  id: 1
  host: 192.0.2.2 # Hostname
  port: 8899 # Port
  storageunit: 1 # Number of the battery storage. In case of a BTS storage not the address of a BTS 5K battery module, but the storage tower (BTS 5K-BDU control unit with 1-4 BTS 5K modules). (optional)
  maxacpower: 0 # Maximum AC power of the hybrid inverter in W (optional)`} />

<DeviceConfig code={`meters: - name: my_battery type: template template: sofarsolar-g3 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: 8899 # Port
  
  # Modbus TCP
  modbus: tcpip
  id: 1
  host: 192.0.2.2 # Hostname
  port: 8899 # Port`} advanced={`meters:
- name: my_battery
  type: template
  template: sofarsolar-g3
  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: 8899 # Port
  
  # Modbus TCP
  modbus: tcpip
  id: 1
  host: 192.0.2.2 # Hostname
  port: 8899 # Port
  storageunit: 1 # Number of the battery storage. In case of a BTS storage not the address of a BTS 5K battery module, but the storage tower (BTS 5K-BDU control unit with 1-4 BTS 5K modules). (optional)
  capacity: 50 # Battery capacity in kWh (optional)
  defaultmode: 0 # Default mode for battery control. Valid values are 0 (self use), 1 (time of use), 2 (timing mode), 4 (peak-shaving mode) (optional)`} />

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.

<DeviceConfig code={`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`} advanced={`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
  storageunit: 1 # Number of the battery storage. In case of a BTS storage not the address of a BTS 5K battery module, but the storage tower (BTS 5K-BDU control unit with 1-4 BTS 5K modules). (optional)`} />

<DeviceConfig code={`meters: - name: my_pv type: template template: sofarsolar-g3 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: 8899 # Port
  
  # Modbus TCP
  modbus: tcpip
  id: 1
  host: 192.0.2.2 # Hostname
  port: 8899 # Port`} advanced={`meters:
- name: my_pv
  type: template
  template: sofarsolar-g3
  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: 8899 # Port
  
  # Modbus TCP
  modbus: tcpip
  id: 1
  host: 192.0.2.2 # Hostname
  port: 8899 # Port
  storageunit: 1 # Number of the battery storage. In case of a BTS storage not the address of a BTS 5K battery module, but the storage tower (BTS 5K-BDU control unit with 1-4 BTS 5K modules). (optional)
  maxacpower: 0 # Maximum AC power of the hybrid inverter in W (optional)`} />

<DeviceConfig code={`meters: - name: my_battery type: template template: sofarsolar-g3 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: 8899 # Port
  
  # Modbus TCP
  modbus: tcpip
  id: 1
  host: 192.0.2.2 # Hostname
  port: 8899 # Port`} advanced={`meters:
- name: my_battery
  type: template
  template: sofarsolar-g3
  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: 8899 # Port
  
  # Modbus TCP
  modbus: tcpip
  id: 1
  host: 192.0.2.2 # Hostname
  port: 8899 # Port
  storageunit: 1 # Number of the battery storage. In case of a BTS storage not the address of a BTS 5K battery module, but the storage tower (BTS 5K-BDU control unit with 1-4 BTS 5K modules). (optional)
  capacity: 50 # Battery capacity in kWh (optional)
  defaultmode: 0 # Default mode for battery control. Valid values are 0 (self use), 1 (time of use), 2 (timing mode), 4 (peak-shaving mode) (optional)`} />

Inverter, Hybrid Inverter

<DeviceConfig code={`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`}  />

<DeviceConfig code={`meters: - name: my_pv type: template template: sofarsolar 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`}  />

<DeviceConfig code={`meters: - name: my_battery type: template template: sofarsolar 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`} advanced={`meters:
- name: my_battery
  type: template
  template: sofarsolar
  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
  capacity: 50 # Battery capacity in kWh (optional)`} />

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.

<DeviceConfig code={`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`} advanced={`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
  storageunit: 1 # Number of the battery storage. In case of a BTS storage not the address of a BTS 5K battery module, but the storage tower (BTS 5K-BDU control unit with 1-4 BTS 5K modules). (optional)`} />

<DeviceConfig code={`meters: - name: my_pv type: template template: sofarsolar-g3 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: 8899 # Port
  
  # Modbus TCP
  modbus: tcpip
  id: 1
  host: 192.0.2.2 # Hostname
  port: 8899 # Port`} advanced={`meters:
- name: my_pv
  type: template
  template: sofarsolar-g3
  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: 8899 # Port
  
  # Modbus TCP
  modbus: tcpip
  id: 1
  host: 192.0.2.2 # Hostname
  port: 8899 # Port
  storageunit: 1 # Number of the battery storage. In case of a BTS storage not the address of a BTS 5K battery module, but the storage tower (BTS 5K-BDU control unit with 1-4 BTS 5K modules). (optional)
  maxacpower: 0 # Maximum AC power of the hybrid inverter in W (optional)`} />

<DeviceConfig code={`meters: - name: my_battery type: template template: sofarsolar-g3 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: 8899 # Port
  
  # Modbus TCP
  modbus: tcpip
  id: 1
  host: 192.0.2.2 # Hostname
  port: 8899 # Port`} advanced={`meters:
- name: my_battery
  type: template
  template: sofarsolar-g3
  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: 8899 # Port
  
  # Modbus TCP
  modbus: tcpip
  id: 1
  host: 192.0.2.2 # Hostname
  port: 8899 # Port
  storageunit: 1 # Number of the battery storage. In case of a BTS storage not the address of a BTS 5K battery module, but the storage tower (BTS 5K-BDU control unit with 1-4 BTS 5K modules). (optional)
  capacity: 50 # Battery capacity in kWh (optional)
  defaultmode: 0 # Default mode for battery control. Valid values are 0 (self use), 1 (time of use), 2 (timing mode), 4 (peak-shaving mode) (optional)`} />

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.

<DeviceConfig code={`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`} advanced={`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
  storageunit: 1 # Number of the battery storage. In case of a BTS storage not the address of a BTS 5K battery module, but the storage tower (BTS 5K-BDU control unit with 1-4 BTS 5K modules). (optional)`} />

<DeviceConfig code={`meters: - name: my_pv type: template template: sofarsolar-g3 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: 8899 # Port
  
  # Modbus TCP
  modbus: tcpip
  id: 1
  host: 192.0.2.2 # Hostname
  port: 8899 # Port`} advanced={`meters:
- name: my_pv
  type: template
  template: sofarsolar-g3
  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: 8899 # Port
  
  # Modbus TCP
  modbus: tcpip
  id: 1
  host: 192.0.2.2 # Hostname
  port: 8899 # Port
  storageunit: 1 # Number of the battery storage. In case of a BTS storage not the address of a BTS 5K battery module, but the storage tower (BTS 5K-BDU control unit with 1-4 BTS 5K modules). (optional)
  maxacpower: 0 # Maximum AC power of the hybrid inverter in W (optional)`} />

<DeviceConfig code={`meters: - name: my_battery type: template template: sofarsolar-g3 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: 8899 # Port
  
  # Modbus TCP
  modbus: tcpip
  id: 1
  host: 192.0.2.2 # Hostname
  port: 8899 # Port`} advanced={`meters:
- name: my_battery
  type: template
  template: sofarsolar-g3
  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: 8899 # Port
  
  # Modbus TCP
  modbus: tcpip
  id: 1
  host: 192.0.2.2 # Hostname
  port: 8899 # Port
  storageunit: 1 # Number of the battery storage. In case of a BTS storage not the address of a BTS 5K battery module, but the storage tower (BTS 5K-BDU control unit with 1-4 BTS 5K modules). (optional)
  capacity: 50 # Battery capacity in kWh (optional)
  defaultmode: 0 # Default mode for battery control. Valid values are 0 (self use), 1 (time of use), 2 (timing mode), 4 (peak-shaving mode) (optional)`} />

Solaranzeige Solaranzeige

<DeviceConfig code={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)} advanced={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) 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)} />

<DeviceConfig code={meters: - name: my_pv type: template template: solaranzeige usage: pv 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)} advanced={meters: - name: my_pv type: template template: solaranzeige usage: pv 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) 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)} />

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".

<DeviceConfig code={`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`} advanced={`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
  watchdog: 60s # optional`} />

<DeviceConfig code={`meters: - name: my_pv type: template template: solaredge-hybrid 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: 1502 # Port
  
  # Modbus TCP
  modbus: tcpip
  id: 1
  host: 192.0.2.2 # Hostname
  port: 1502 # Port
  timeout: 10s # optional`} advanced={`meters:
- name: my_pv
  type: template
  template: solaredge-hybrid
  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: 1502 # Port
  
  # Modbus TCP
  modbus: tcpip
  id: 1
  host: 192.0.2.2 # Hostname
  port: 1502 # Port
  timeout: 10s # optional
  maxacpower: 0 # Maximum AC power of the hybrid inverter in W (optional)
  watchdog: 60s # optional`} />

<DeviceConfig code={`meters: - name: my_battery type: template template: solaredge-hybrid 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: 1502 # Port
  
  # Modbus TCP
  modbus: tcpip
  id: 1
  host: 192.0.2.2 # Hostname
  port: 1502 # Port
  timeout: 10s # optional`} advanced={`meters:
- name: my_battery
  type: template
  template: solaredge-hybrid
  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: 1502 # Port
  
  # Modbus TCP
  modbus: tcpip
  id: 1
  host: 192.0.2.2 # Hostname
  port: 1502 # Port
  timeout: 10s # optional
  capacity: 50 # Battery capacity in kWh (optional)
  watchdog: 60s # optional`} />

Inverter

Only one system may access the inverter!

<DeviceConfig code={`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`}  />

<DeviceConfig code={`meters: - name: my_pv type: template template: solaredge-inverter 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: 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.

<DeviceConfig code={meters: - name: my_grid type: template template: solarlog usage: grid host: 192.0.2.2 # IP address or hostname port: 502 # Port (optional)} />

<DeviceConfig code={meters: - name: my_pv type: template template: solarlog usage: pv 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.

<DeviceConfig code={`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`} advanced={`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
  watchdog: 60s # optional`} />

<DeviceConfig code={`meters: - name: my_pv type: template template: solarmax-maxstorage usage: pv

  # Modbus TCP
  modbus: tcpip
  id: 1
  host: 192.0.2.2 # Hostname
  port: 502 # Port`} advanced={`meters:
- name: my_pv
  type: template
  template: solarmax-maxstorage
  usage: pv
  
  # Modbus TCP
  modbus: tcpip
  id: 1
  host: 192.0.2.2 # Hostname
  port: 502 # Port
  maxacpower: 0 # Maximum AC power of the hybrid inverter in W (optional)
  watchdog: 60s # optional`} />

<DeviceConfig code={`meters: - name: my_battery type: template template: solarmax-maxstorage usage: battery

  # Modbus TCP
  modbus: tcpip
  id: 1
  host: 192.0.2.2 # Hostname
  port: 502 # Port`} advanced={`meters:
- name: my_battery
  type: template
  template: solarmax-maxstorage
  usage: battery
  
  # Modbus TCP
  modbus: tcpip
  id: 1
  host: 192.0.2.2 # Hostname
  port: 502 # Port
  capacity: 50 # Battery capacity in kWh (optional)
  watchdog: 60s # optional`} />

SolarMax SMT

<DeviceConfig code={`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

<DeviceConfig code={`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

<DeviceConfig code={meters: - name: my_grid type: template template: solarwatt usage: grid host: 192.0.2.2 # IP address or hostname} />

<DeviceConfig code={meters: - name: my_pv type: template template: solarwatt usage: pv host: 192.0.2.2 # IP address or hostname} />

<DeviceConfig code={meters: - name: my_battery type: template template: solarwatt usage: battery host: 192.0.2.2 # IP address or hostname} advanced={meters: - name: my_battery type: template template: solarwatt usage: battery host: 192.0.2.2 # IP address or hostname capacity: 50 # Battery capacity in kWh (optional)} />

Manager flex

Combines data of all connected PV inverters or batteries.

<DeviceConfig code={meters: - name: my_grid type: template template: solarwatt-flex usage: grid host: 192.0.2.2 # IP address or hostname} />

<DeviceConfig code={meters: - name: my_pv type: template template: solarwatt-flex usage: pv host: 192.0.2.2 # IP address or hostname} />

<DeviceConfig code={meters: - name: my_battery type: template template: solarwatt-flex usage: battery host: 192.0.2.2 # IP address or hostname} advanced={meters: - name: my_battery type: template template: solarwatt-flex usage: battery host: 192.0.2.2 # IP address or hostname capacity: 50 # Battery capacity in kWh (optional)} />

MyReserve

<DeviceConfig code={meters: - name: my_grid type: template template: solarwatt usage: grid host: 192.0.2.2 # IP address or hostname} />

<DeviceConfig code={meters: - name: my_pv type: template template: solarwatt usage: pv host: 192.0.2.2 # IP address or hostname} />

<DeviceConfig code={meters: - name: my_battery type: template template: solarwatt usage: battery host: 192.0.2.2 # IP address or hostname} advanced={meters: - name: my_battery type: template template: solarwatt usage: battery host: 192.0.2.2 # IP address or hostname capacity: 50 # Battery capacity in kWh (optional)} />

MyReserve Matrix (LAN oder PowerGateway)

<DeviceConfig code={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)} />

<DeviceConfig code={meters: - name: my_pv type: template template: solarwatt-myreserve-matrix usage: pv host: 192.0.2.2 # IP address or hostname port: 8080 # Port (optional)} />

<DeviceConfig code={meters: - name: my_battery type: template template: solarwatt-myreserve-matrix usage: battery host: 192.0.2.2 # IP address or hostname port: 8080 # Port (optional)} advanced={meters: - name: my_battery type: template template: solarwatt-myreserve-matrix usage: battery host: 192.0.2.2 # IP address or hostname port: 8080 # Port (optional) capacity: 50 # Battery capacity in kWh (optional)} />

Solax

Hybrid X1/X3 G3/G4

<DeviceConfig code={`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
  mppt3: false # optional`} advanced={`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
  mppt3: false # optional
  storageunit: 1 # optional`} />

<DeviceConfig code={`meters: - name: my_pv type: template template: solax usage: pv

  # 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
  mppt3: false # optional`} advanced={`meters:
- name: my_pv
  type: template
  template: solax
  usage: pv
  
  # 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
  mppt3: false # optional
  storageunit: 1 # optional
  maxacpower: 0 # Maximum AC power of the hybrid inverter in W (optional)`} />

<DeviceConfig code={`meters: - name: my_battery type: template template: solax usage: battery

  # 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
  mppt3: false # optional`} advanced={`meters:
- name: my_battery
  type: template
  template: solax
  usage: battery
  
  # 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
  mppt3: false # optional
  storageunit: 1 # optional
  capacity: 50 # Battery capacity in kWh (optional)
  defaultmode: 0 # Default mode for battery control to which the inverter falls back after charging the battery or after stopping discharge. (optional)`} />

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.

<DeviceConfig code={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`} />

<DeviceConfig code={meters: - name: my_pv type: template template: solax-hybrid-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`} />

<DeviceConfig code={meters: - name: my_battery type: template template: solax-hybrid-cloud usage: battery 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} advanced={meters: - name: my_battery type: template template: solax-hybrid-cloud usage: battery 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 capacity: 50 # Battery capacity in kWh (optional)`} />

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.

<DeviceConfig code={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

<DeviceConfig code={`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`} advanced={`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
  delay: 100ms # optional`} />

<DeviceConfig code={`meters: - name: my_pv type: template template: wattsonic 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`} advanced={`meters:
- name: my_pv
  type: template
  template: wattsonic
  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
  delay: 100ms # optional`} />

<DeviceConfig code={`meters: - name: my_battery type: template template: wattsonic usage: battery

  # 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`} advanced={`meters:
- name: my_battery
  type: template
  template: wattsonic
  usage: battery
  
  # 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
  capacity: 50 # Battery capacity in kWh (optional)
  delay: 100ms # optional`} />

Sonnen

comfort, eco 5, eco 6, oem 6.5

<DeviceConfig code={meters: - name: my_grid type: template template: sonnenbatterie-eco56 usage: grid host: 192.0.2.2 # IP address or hostname port: 7979 # Port (optional)} />

<DeviceConfig code={meters: - name: my_pv type: template template: sonnenbatterie-eco56 usage: pv host: 192.0.2.2 # IP address or hostname port: 7979 # Port (optional)} />

<DeviceConfig code={meters: - name: my_battery type: template template: sonnenbatterie-eco56 usage: battery host: 192.0.2.2 # IP address or hostname port: 7979 # Port (optional)} advanced={meters: - name: my_battery type: template template: sonnenbatterie-eco56 usage: battery host: 192.0.2.2 # IP address or hostname port: 7979 # Port (optional) capacity: 50 # Battery capacity in kWh (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 two operating modes supported for the sonnenBatterie are “self-consumption” (default) and “time-of-use”. The mode can be adapted to the configuration of the sonnenBatterie via the 'defaultmode' parameter. The power for grid charging can be adapted to the inverter power of the sonnenBatterie via the chargepower parameter.

<DeviceConfig code={meters: - name: my_grid type: template template: sonnenbatterie usage: grid host: 192.0.2.2 # IP address or hostname port: 8080 # Port (optional)} />

<DeviceConfig code={meters: - name: my_pv type: template template: sonnenbatterie usage: pv host: 192.0.2.2 # IP address or hostname port: 8080 # Port (optional)} />

<DeviceConfig code={meters: - name: my_battery type: template template: sonnenbatterie usage: battery host: 192.0.2.2 # IP address or hostname port: 8080 # Port (optional) token: # API Token (required for active battery control) (optional)} advanced={meters: - name: my_battery type: template template: sonnenbatterie usage: battery host: 192.0.2.2 # IP address or hostname port: 8080 # Port (optional) token: # API Token (required for active battery control) (optional) capacity: 50 # Battery capacity in kWh (optional) defaultmode: self-consumption # Default mode for active battery control (self-consumption or time-of-use) (optional) chargepower: 3300 # Charging power for grid charging in W (optional)} />

St-ems

<DeviceConfig code={`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`} advanced={`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
  delay: 100ms # optional`} />

<DeviceConfig code={`meters: - name: my_pv type: template template: wattsonic 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`} advanced={`meters:
- name: my_pv
  type: template
  template: wattsonic
  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
  delay: 100ms # optional`} />

<DeviceConfig code={`meters: - name: my_battery type: template template: wattsonic usage: battery

  # 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`} advanced={`meters:
- name: my_battery
  type: template
  template: wattsonic
  usage: battery
  
  # 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
  capacity: 50 # Battery capacity in kWh (optional)
  delay: 100ms # optional`} />

Steca coolcept fleX

<DeviceConfig code={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

<DeviceConfig code={`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`}  />

<DeviceConfig code={`meters: - name: my_pv type: template template: sungrow-inverter 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`}  />

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).

<DeviceConfig code={`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`}  />

<DeviceConfig code={`meters: - name: my_pv type: template template: sungrow-hybrid 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
  timeout: 10s # optional`} advanced={`meters:
- name: my_pv
  type: template
  template: sungrow-hybrid
  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
  timeout: 10s # optional
  maxacpower: 0 # Maximum AC power of the hybrid inverter in W (optional)`} />

<DeviceConfig code={`meters: - name: my_battery type: template template: sungrow-hybrid 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
  timeout: 10s # optional`} advanced={`meters:
- name: my_battery
  type: template
  template: sungrow-hybrid
  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
  timeout: 10s # optional
  capacity: 50 # Battery capacity in kWh (optional)
  maxchargepower: # Power limit for grid charging. (optional)`} />

Sunsynk

3p hybrid inverter

<DeviceConfig code={`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`} advanced={`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
  minsoc: 20 # Lower limit when discharging the battery (normal operation) (optional)
  maxsoc: 95 # Upper limit when charging the battery from the grid (optional)`} />

<DeviceConfig code={`meters: - name: my_pv type: template template: deye-hybrid-3p 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`} advanced={`meters:
- name: my_pv
  type: template
  template: deye-hybrid-3p
  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
  minsoc: 20 # Lower limit when discharging the battery (normal operation) (optional)
  maxsoc: 95 # Upper limit when charging the battery from the grid (optional)
  maxacpower: 0 # Maximum AC power of the hybrid inverter in W (optional)`} />

<DeviceConfig code={`meters: - name: my_battery type: template template: deye-hybrid-3p 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`} advanced={`meters:
- name: my_battery
  type: template
  template: deye-hybrid-3p
  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
  capacity: 50 # Battery capacity in kWh (optional)
  minsoc: 20 # Lower limit when discharging the battery (normal operation) (optional)
  maxsoc: 95 # Upper limit when charging the battery from the grid (optional)`} />

hp3 hybrid inverter

<DeviceConfig code={`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`} advanced={`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
  storageunit: 1 # optional
  minsoc: 20 # Lower limit when discharging the battery (normal operation) (optional)
  maxsoc: 95 # Upper limit when charging the battery from the grid (optional)`} />

<DeviceConfig code={`meters: - name: my_pv type: template template: deye-hybrid-hp3 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`} advanced={`meters:
- name: my_pv
  type: template
  template: deye-hybrid-hp3
  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
  storageunit: 1 # optional
  minsoc: 20 # Lower limit when discharging the battery (normal operation) (optional)
  maxsoc: 95 # Upper limit when charging the battery from the grid (optional)
  maxacpower: 0 # Maximum AC power of the hybrid inverter in W (optional)`} />

<DeviceConfig code={`meters: - name: my_battery type: template template: deye-hybrid-hp3 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`} advanced={`meters:
- name: my_battery
  type: template
  template: deye-hybrid-hp3
  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
  storageunit: 1 # optional
  capacity: 50 # Battery capacity in kWh (optional)
  minsoc: 20 # Lower limit when discharging the battery (normal operation) (optional)
  maxsoc: 95 # Upper limit when charging the battery from the grid (optional)`} />

Micro inverter

<DeviceConfig code={`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

<DeviceConfig code={`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`}  />

<DeviceConfig code={`meters: - name: my_battery type: template template: deye-storage 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`} advanced={`meters:
- name: my_battery
  type: template
  template: deye-storage
  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
  capacity: 50 # Battery capacity in kWh (optional)`} />

<DeviceConfig code={`meters: - name: my_grid type: template template: deye-storage 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`}  />

String inverter

<DeviceConfig code={`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

<DeviceConfig code={`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`} advanced={`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
  delay: 100ms # optional`} />

<DeviceConfig code={`meters: - name: my_pv type: template template: wattsonic 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`} advanced={`meters:
- name: my_pv
  type: template
  template: wattsonic
  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
  delay: 100ms # optional`} />

<DeviceConfig code={`meters: - name: my_battery type: template template: wattsonic usage: battery

  # 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`} advanced={`meters:
- name: my_battery
  type: template
  template: wattsonic
  usage: battery
  
  # 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
  capacity: 50 # Battery capacity in kWh (optional)
  delay: 100ms # optional`} />

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
#

<DeviceConfig code={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:

<DeviceConfig code={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)} advanced={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) minsoc: 25 # Lower limit when discharging the battery (normal operation) (optional) maxsoc: 95 # Upper limit when charging the battery from the grid (optional)} />

<DeviceConfig code={meters: - name: my_pv type: template template: tesla-powerwall usage: pv 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)} advanced={meters: - name: my_pv type: template template: tesla-powerwall usage: pv 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) minsoc: 25 # Lower limit when discharging the battery (normal operation) (optional) maxsoc: 95 # Upper limit when charging the battery from the grid (optional)} />

<DeviceConfig code={meters: - name: my_battery type: template template: tesla-powerwall usage: battery 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)} advanced={meters: - name: my_battery type: template template: tesla-powerwall usage: battery 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) minsoc: 25 # Lower limit when discharging the battery (normal operation) (optional) maxsoc: 95 # Upper limit when charging the battery from the grid (optional)} />

Tibber Pulse

<DeviceConfig code={meters: - name: my_grid type: template template: tibber-pulse usage: grid token: 5K4MVS-OjfWhK_4yrjOlFe1F6kJXPVf7eQYggo8ebAE homeid: 96a14971-525a-4420-aae9-e5aedaa129ff # optional} advanced={meters: - name: my_grid type: template template: tibber-pulse usage: grid token: 5K4MVS-OjfWhK_4yrjOlFe1F6kJXPVf7eQYggo8ebAE homeid: 96a14971-525a-4420-aae9-e5aedaa129ff # optional timeout: 1m # optional} />

TQ

Energy Manager EM2xx/EM3xx

<DeviceConfig code={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

<DeviceConfig code={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

<DeviceConfig code={meters: - name: my_grid type: template template: varta usage: grid host: 192.0.2.2 # IP address or hostname port: 502 # Port (optional)} />

<DeviceConfig code={meters: - name: my_pv type: template template: varta usage: pv host: 192.0.2.2 # IP address or hostname port: 502 # Port (optional)} />

<DeviceConfig code={meters: - name: my_battery type: template template: varta usage: battery host: 192.0.2.2 # IP address or hostname port: 502 # Port (optional)} advanced={meters: - name: my_battery type: template template: varta usage: battery host: 192.0.2.2 # IP address or hostname port: 502 # Port (optional) capacity: 50 # Battery capacity in kWh (optional)} />

Victron

EM24

<DeviceConfig code={`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`}  />

<DeviceConfig code={`meters: - name: my_charger type: template template: cg-em24 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
  
  # Modbus TCP
  modbus: tcpip
  id: 1
  host: 192.0.2.2 # Hostname
  port: 502 # Port`}  />

EM530/EM540

<DeviceConfig code={`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`}  />

<DeviceConfig code={`meters: - name: my_charger type: template template: cg-emt3xx 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
  
  # 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.

<DeviceConfig code={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)} advanced={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) minsoc: 25 # Lower limit when discharging the battery (normal operation) (optional) maxsoc: 95 # Upper limit when charging the battery from the grid (optional)} />

<DeviceConfig code={meters: - name: my_pv type: template template: victron-energy usage: pv host: 192.0.2.2 # IP address or hostname port: 502 # Port (optional)} advanced={meters: - name: my_pv type: template template: victron-energy usage: pv host: 192.0.2.2 # IP address or hostname port: 502 # Port (optional) maxacpower: 0 # Maximum AC power of the hybrid inverter in W (optional) minsoc: 25 # Lower limit when discharging the battery (normal operation) (optional) maxsoc: 95 # Upper limit when charging the battery from the grid (optional)} />

<DeviceConfig code={meters: - name: my_battery type: template template: victron-energy usage: battery host: 192.0.2.2 # IP address or hostname port: 502 # Port (optional)} advanced={meters: - name: my_battery type: template template: victron-energy usage: battery host: 192.0.2.2 # IP address or hostname port: 502 # Port (optional) capacity: 50 # Battery capacity in kWh (optional) minsoc: 25 # Lower limit when discharging the battery (normal operation) (optional) maxsoc: 95 # Upper limit when charging the battery from the grid (optional)} />

ET340

<DeviceConfig code={`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`}  />

<DeviceConfig code={`meters: - name: my_charger type: template template: cg-emt3xx 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
  
  # Modbus TCP
  modbus: tcpip
  id: 1
  host: 192.0.2.2 # Hostname
  port: 502 # Port`}  />

Wattsonic

<DeviceConfig code={`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`} advanced={`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
  delay: 100ms # optional`} />

<DeviceConfig code={`meters: - name: my_pv type: template template: wattsonic 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`} advanced={`meters:
- name: my_pv
  type: template
  template: wattsonic
  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
  delay: 100ms # optional`} />

<DeviceConfig code={`meters: - name: my_battery type: template template: wattsonic usage: battery

  # 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`} advanced={`meters:
- name: my_battery
  type: template
  template: wattsonic
  usage: battery
  
  # 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
  capacity: 50 # Battery capacity in kWh (optional)
  delay: 100ms # optional`} />

Weidmüller

EM110-RTU-2P

<DeviceConfig code={`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`}  />

<DeviceConfig code={`meters: - name: my_charger type: template template: eastron-sdm220_230 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`}  />

EM111-RTU-2P

<DeviceConfig code={`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`}  />

<DeviceConfig code={`meters: - name: my_charger type: template template: eastron-sdm220_230 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`}  />

EM120-RTU-2P

<DeviceConfig code={`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`}  />

<DeviceConfig code={`meters: - name: my_charger type: template template: eastron 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`}  />

EM122-RTU-2P

<DeviceConfig code={`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`}  />

<DeviceConfig code={`meters: - name: my_charger type: template template: eastron 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`}  />

Youless Energy Monitor

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

<DeviceConfig code={meters: - name: my_grid type: template template: youless usage: grid host: 192.0.2.2 # IP address or hostname} />

<DeviceConfig code={meters: - name: my_pv type: template template: youless usage: pv host: 192.0.2.2 # IP address or hostname} />

ZCS Azzurro Inverter, Hybrid Inverter

<DeviceConfig code={`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`}  />

<DeviceConfig code={`meters: - name: my_pv type: template template: sofarsolar 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`}  />

<DeviceConfig code={`meters: - name: my_battery type: template template: sofarsolar 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`} advanced={`meters:
- name: my_battery
  type: template
  template: sofarsolar
  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
  capacity: 50 # Battery capacity in kWh (optional)`} />

Zendure Hyper 2000

<DeviceConfig code={meters: - name: my_pv type: template template: zendure usage: pv account: [email protected] serial: VU5D99F74021B04 # You can find this in the Zendure App in the settings of the device region: EU # optional timeout: 10s # optional} />

<DeviceConfig code={meters: - name: my_battery type: template template: zendure usage: battery account: [email protected] serial: VU5D99F74021B04 # You can find this in the Zendure App in the settings of the device region: EU # optional timeout: 10s # optional} advanced={meters: - name: my_battery type: template template: zendure usage: battery account: [email protected] serial: VU5D99F74021B04 # You can find this in the Zendure App in the settings of the device region: EU # optional timeout: 10s # optional capacity: 2 # Battery capacity in kWh (optional)} />

Zuidwijk

SlimmeLezer(+)

<DeviceConfig code={meters: - name: my_grid type: template template: slimmelezer usage: grid host: 192.0.2.2 # IP address or hostname} advanced={meters: - name: my_grid type: template template: slimmelezer usage: grid host: 192.0.2.2 # IP address or hostname scale: 1000 # Use scale of 1000 for Zuidwijk Slimmelezer. Use scale 1 for ESPHome DSMR and mhendriks P1 Dongle} />

SlimmeLezer(+) in Luxembourg

Slimmelezer devices use different sensor names in Luxembourg.

<DeviceConfig code={meters: - name: my_grid type: template template: slimmelezer-luxembourg 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.

<DeviceConfig code={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
        # ...
    limitsoc: # optional lower soc limit (%)
      source: # plugin type
      # ...
    batterymode: # optional battery mode (1: normal, 2: hold, 3: charge)
      source: # plugin type
      # ...

:::note limitsoc is set to the current value of 'soc' by EVCC to block further discharge of a battery e.g. for quick charging. Alternatively you can configure batterymode and have an external control take care of the charging or discharging of the battery based on the given mode. When soc and limitsoc are configured batterymode will be ignored. :::

Demo battery

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

<DeviceConfig code={meters: - name: my_battery type: template template: demo-battery usage: battery power: # optional soc: # optional controllable: # Supports active battery control (optional)} advanced={meters: - name: my_battery type: template template: demo-battery usage: battery power: # optional soc: # optional controllable: # Supports active battery control (optional) energy: # optional currentL1: # optional currentL2: # optional currentL3: # optional} />

Demo meter

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

<DeviceConfig code={meters: - name: my_grid type: template template: demo-meter usage: grid power: # optional} advanced={meters: - name: my_grid type: template template: demo-meter usage: grid power: # optional energy: # optional currentL1: # optional currentL2: # optional currentL3: # optional} />

<DeviceConfig code={meters: - name: my_pv type: template template: demo-meter usage: pv power: # optional} advanced={meters: - name: my_pv type: template template: demo-meter usage: pv power: # optional energy: # optional currentL1: # optional currentL2: # optional currentL3: # optional} />

<DeviceConfig code={meters: - name: my_aux type: template template: demo-meter usage: aux power: # optional} advanced={meters: - name: my_aux type: template template: demo-meter usage: aux power: # optional energy: # optional currentL1: # optional currentL2: # optional currentL3: # optional} />

<DeviceConfig code={meters: - name: my_charger type: template template: demo-meter usage: charge power: # optional} advanced={meters: - name: my_charger type: template template: demo-meter usage: charge power: # optional energy: # optional currentL1: # optional currentL2: # optional currentL3: # optional} />

SunSpec Battery (Model 124)

<DeviceConfig code={`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`} advanced={`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
  maxchargerate: 100 # Power limit for grid charging. (optional)
  capacity: 50 # Battery capacity in kWh (optional)`} />

SunSpec Battery (Model 802)

<DeviceConfig code={`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`} advanced={`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
  capacity: 50 # Battery capacity in kWh (optional)
  minsoc: 25 # Lower limit when discharging the battery (normal operation) (optional)
  maxsoc: 95 # Upper limit when charging the battery from the grid (optional)`} />

SunSpec Hybrid Inverter

<DeviceConfig code={`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`}  />

<DeviceConfig code={`meters: - name: my_pv type: template template: sunspec-hybrid 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`} advanced={`meters:
- name: my_pv
  type: template
  template: sunspec-hybrid
  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
  maxacpower: 0 # Maximum AC power of the hybrid inverter in W (optional)`} />

<DeviceConfig code={`meters: - name: my_battery type: template template: sunspec-hybrid 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`} advanced={`meters:
- name: my_battery
  type: template
  template: sunspec-hybrid
  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
  capacity: 50 # Battery capacity in kWh (optional)`} />

SunSpec Inverter

<DeviceConfig code={`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`}  />

<DeviceConfig code={`meters: - name: my_pv type: template template: sunspec-inverter 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`}  />

<DeviceConfig code={`meters: - name: my_battery type: template template: sunspec-inverter 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`} advanced={`meters:
- name: my_battery
  type: template
  template: sunspec-inverter
  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
  capacity: 50 # Battery capacity in kWh (optional)`} />

Volkszähler

HTTP API

<DeviceConfig code={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

<DeviceConfig code={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

<DeviceConfig code={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

<DeviceConfig code={meters: - name: my_grid type: template template: vzlogger usage: grid host: 192.0.2.2 # IP address or hostname port: 8081 # Port (optional) uuid:} advanced={meters: - name: my_grid type: template template: vzlogger usage: grid host: 192.0.2.2 # IP address or hostname port: 8081 # Port (optional) uuid: scale: 1 # Multiply by this value (optional) l1currentuuid: # optional l2currentuuid: # optional l3currentuuid: # optional l1poweruuid: # optional l2poweruuid: # optional l3poweruuid: # optional l1voltageuuid: # optional l2voltageuuid: # optional l3voltageuuid: # optional cache: 1s # Time interval with when data should be reloaded from the vehicle (optional)} />

Switchable sockets

AVM FritzDECT

<DeviceConfig code={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.} />

<DeviceConfig code={meters: - name: my_charger type: template template: fritzdect usage: charge 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

<DeviceConfig code={meters: - name: my_grid type: template template: homematic usage: grid 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) meterchannel: 6 # Homematic meter channel number like shown after the device id separated with a colon in the CCU web user interface.} advanced={meters: - name: my_grid type: template template: homematic usage: grid 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) meterchannel: 6 # Homematic meter channel number like shown after the device id separated with a colon in the CCU web user interface. cache: 1s # In case of duty cycle problems try a cache setting of 30s. (optional)} />

<DeviceConfig code={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) meterchannel: 6 # Homematic meter channel number like shown after the device id separated with a colon in the CCU web user interface.} advanced={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) meterchannel: 6 # Homematic meter channel number like shown after the device id separated with a colon in the CCU web user interface. cache: 1s # In case of duty cycle problems try a cache setting of 30s. (optional)} />

<DeviceConfig code={meters: - name: my_charger type: template template: homematic usage: charge 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) meterchannel: 6 # Homematic meter channel number like shown after the device id separated with a colon in the CCU web user interface.} advanced={meters: - name: my_charger type: template template: homematic usage: charge 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) meterchannel: 6 # Homematic meter channel number like shown after the device id separated with a colon in the CCU web user interface. cache: 1s # In case of duty cycle problems try a cache setting of 30s. (optional)} />

myStrom Switch

<DeviceConfig code={meters: - name: my_pv type: template template: mystrom usage: pv host: 192.0.2.2 # IP address or hostname} />

<DeviceConfig code={meters: - name: my_charger type: template template: mystrom usage: charge host: 192.0.2.2 # IP address or hostname} />

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

<DeviceConfig code={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} />

<DeviceConfig code={meters: - name: my_pv type: template template: shelly-1pm usage: pv 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} />

<DeviceConfig code={meters: - name: my_charger type: template template: shelly-1pm usage: charge 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)

<DeviceConfig code={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)} />

<DeviceConfig code={meters: - name: my_battery type: template template: tasmota usage: battery 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)} />

<DeviceConfig code={meters: - name: my_charger type: template template: tasmota usage: charge 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.

<DeviceConfig code={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)} />

<DeviceConfig code={meters: - name: my_pv type: template template: tasmota-3p 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)} />

<DeviceConfig code={meters: - name: my_battery type: template template: tasmota-3p usage: battery 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)} />

<DeviceConfig code={meters: - name: my_charger type: template template: tasmota-3p usage: charge 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)} />

TP-Link

H-Series Smart Plug

<DeviceConfig code={meters: - name: my_pv type: template template: tplink usage: pv host: 192.0.2.2 # IP address or hostname} />

Tapo P-Series Smart Plug

<DeviceConfig code={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)} />