# FENECON Modbus-API

Source: https://docs.evcc.io/en/meters/fenecon-modbus-api

##### License notice:
For active battery control on FENECON FEMS systems, a commercial license (*FEMS App Modbus/TCP Write Access*) is required.

##### FEMS documentation:
- FEMS App Modbus/TCP Read Access: [docs.fenecon.de](https://docs.fenecon.de/en/fems/fems-app/App_ModbusTCP_Lesezugriff.html)
- FEMS App Modbus/TCP Write Access: [docs.fenecon.de](https://docs.fenecon.de/en/fems/fems-app/App_ModbusTCP_Schreibzugriff.html)
##### OpenEMS documentation:
- OpenEMS Edge Api Modbus Controller: [openems.github.io](https://openems.github.io/openems.io/openems/latest/edge/controller.html#_api_modbus)

Supported features: battery-control

## Parameters

| Name | Description | Default / example | |
| --- | --- | --- | --- |
| modbus | Modbus Type (tcpip) | tcpip |  |
| battery | controls battery component active battery control (Modbus/TCP Write Access) | false |  |
| capacity | Battery capacity | 50 kWh |  |
| minsoc | Minimum charge Lower limit as configured on the battery system. Used by optimizer. | 0 % |  |
| maxsoc | Maximum charge Upper limit as configured on the battery system. Used by optimizer and for grid charging. | 100 % |  |
| grid_power_register | Modbus register for grid power GridActivePower (W) | 315 | advanced |
| grid_energy_register | Modbus register for grid import energy GridBuyActiveEnergy (Wh) | 359 | advanced |
| pv_power_register | Modbus register for PV power ProductionActivePower (W) | 327 | advanced |
| pv_energy_register | Modbus register for PV energy ProductionActiveEnergy (Wh) | 367 | advanced |
| maxacpower | Maximum AC power of the hybrid inverter | 0 W | advanced |
| battery_power_register | Modbus register for battery power EssDischargePower (W) | 415 | advanced |
| battery_soc_register | Modbus register for state of charge SoC (%) | 302 | advanced |
| battery_set_register | Modbus register for charge power SetActivePowerLessOrEquals (W) | 710 | advanced |
| watchdog | battery control API timeout | 60s | advanced |
| maxchargepower | Maximum charge power For forced charging of the battery. |  W | advanced |
| maxdischargepower | Maximum discharge power Maximum discharge power of the storage. |  W | advanced |

## Configuration example for evcc.yaml

```yaml
meters:
    - name: my_grid
      type: template
      template: openems-modbus
      usage: grid
      
      # Modbus TCP
      modbus: tcpip
      id: 1
      host:  # Hostname
      port: 502 # Port
      grid_power_register: 315 # Modbus register for grid power, GridActivePower (W) (optional)
      grid_energy_register: 359 # Modbus register for grid import energy, GridBuyActiveEnergy (Wh) (optional)
```

```yaml
meters:
    - name: my_pv
      type: template
      template: openems-modbus
      usage: pv
      
      # Modbus TCP
      modbus: tcpip
      id: 1
      host:  # Hostname
      port: 502 # Port
      pv_power_register: 327 # Modbus register for PV power, ProductionActivePower (W) (optional)
      pv_energy_register: 367 # Modbus register for PV energy, ProductionActiveEnergy (Wh) (optional)
      maxacpower: 0 # Maximum AC power of the hybrid inverter (W), optional
```

```yaml
meters:
    - name: my_battery
      type: template
      template: openems-modbus
      usage: battery
      
      # Modbus TCP
      modbus: tcpip
      id: 1
      host:  # Hostname
      port: 502 # Port
      battery: false # controls battery component, active battery control (Modbus/TCP Write Access) (optional)
      capacity: 50 # Battery capacity (kWh), optional
      minsoc: 0 # Minimum charge (%), Lower limit as configured on the battery system. Used by optimizer. (optional)
      maxsoc: 100 # Maximum charge (%), Upper limit as configured on the battery system. Used by optimizer and for grid charging. (optional)
      battery_power_register: 415 # Modbus register for battery power, EssDischargePower (W) (optional)
      battery_soc_register: 302 # Modbus register for state of charge, SoC (%) (optional)
      battery_set_register: 710 # Modbus register for charge power, SetActivePowerLessOrEquals (W) (optional)
      watchdog: 60s # battery control API timeout, optional
      maxchargepower: # Maximum charge power (W), For forced charging of the battery. (optional)
      maxdischargepower: # Maximum discharge power (W), Maximum discharge power of the storage. (optional)
```
