# OpenEMS REST-API

Source: https://docs.evcc.io/en/meters/openems-rest-api

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

##### FEMS documentation:
- FEMS App REST/JSON Read Access: [docs.fenecon.de](https://docs.fenecon.de/en/fems/fems-app/App_REST-JSON_Lesezugriff.html)
- FEMS App REST/JSON Write Access: [docs.fenecon.de](https://docs.fenecon.de/en/fems/fems-app/App_REST-JSON_Schreibzugriff.html)
##### OpenEMS documentation:
- OpenEMS Edge REST-Api Controller: [openems.github.io](https://openems.github.io/openems.io/openems/latest/edge/controller.html#_rest_api_controller)

Supported features: battery-control

## Parameters

| Name | Description | Default / example | |
| --- | --- | --- | --- |
| host | IP address or hostname | 192.0.2.2 |  |
| 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 % |  |
| password | Password Service account password | user | advanced |
| maxacpower | Maximum AC power of the hybrid inverter | 0 W | advanced |
| battery | Controllable battery component active battery control (REST/JSON Write Access) | ess0 | advanced |
| watchdog | FEMS/OpenEMS battery control API timeout FEMS/OpenEMS standard 60s | 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 |
| cache | Cache Time interval for data refresh | 1s | advanced |

## Configuration example for evcc.yaml

```yaml
meters:
    - name: my_grid
      type: template
      template: openems
      usage: grid
      host: 192.0.2.2 # IP address or hostname
      password: user # Password, Service account password (optional)
      cache: 1s # Cache, Time interval for data refresh (optional)
```

```yaml
meters:
    - name: my_pv
      type: template
      template: openems
      usage: pv
      host: 192.0.2.2 # IP address or hostname
      password: user # Password, Service account password (optional)
      maxacpower: 0 # Maximum AC power of the hybrid inverter (W), optional
      cache: 1s # Cache, Time interval for data refresh (optional)
```

```yaml
meters:
    - name: my_battery
      type: template
      template: openems
      usage: battery
      host: 192.0.2.2 # IP address or hostname
      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)
      password: user # Password, Service account password (optional)
      battery: ess0 # Controllable battery component, active battery control (REST/JSON Write Access) (optional)
      watchdog: 60s # FEMS/OpenEMS battery control API timeout, FEMS/OpenEMS standard 60s (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)
      cache: 1s # Cache, Time interval for data refresh (optional)
```
