OpenEVSE / EmonEVSE Setup Guide


OpenEVSE and EmonEVSE share the same software platform, both these units are configured and setup in the same way, "OpenEVSE" and "EmonEVSE" will be used interchangeably in this guide.

Web Interface Setup

WiFi Setup


  • Once powered up connect to WiFi network with SSID OpenEVSE_xxxx with password openevse using a computer or mobile device.

  • You should get directed to a captive portal where you choose to join a local network. If captive portal does not work, browse to

Services Setup

Emoncms Server Setup

OpenEVSE can post data directly to an Emoncms server, enter the following:

  • Emoncms server url e.g
  • Node-name is the name given to the OpenEVSE data in Emoncms Inputs
  • Write API key, obtained from Emoncms account page
  • SHA-1 fingerpint, if posting over HTTPS/SSL is required enter Emoncms server SHA-1 fingerprint. Recomended leave blank. The SHA-1 finger print will change ever few months.
  • See Emoncms Setup below for details of how to log the EVSE data in Emoncms

MQTT Setup

The OpenEVSE supports MQTT connection. MQTT is used to communicate with an emonPi for Solar PV Divert (EcoMode) feature.

For Solar PV Divert (EcoMode) to work emonPi and OpenEVSE should be on the same local network.

  • Check your local emonPi hostname, this should bt emonpi/ or emonpi.local/. On some networks local hostname lookup doesn’t work. In this case use emonPi local IP address, highly recommend assigning emonPi a reserved local IP address to avoid it chaging via DHCP.
  • Enter emonPi local netwok
  • To connect to an emonPi MQTT server on local network use pre-populated username and password
  • Base-topic is the base topic used by the OpenEVSE to publish data. If posting data to local emonPi via MQTT is required change base-topic to emon/openevse. EVSE data should will now appaar in local emonPi Emoncms Inputs
  • If Solar PV Divert feature is required enter either Grid Import Export to divert excess generation to the EVSE or Solar PV generation feed to divert generated energy to EVSE. I
  • If using an emonPi CT1 this will the default MQTT feed is emon/emonpi/power1 or power2 for CT2. It’s also possible to obtain data from an emonTx connected to an emonPi, the default for a single emonTx is system (Node ID 8) is emon/emontx3/power1 for CT1.
  • See Solar PV Divert section below for more info

Developer API

The OpenEVSE can be controlled remotely via web interface or via MQTT, HTTP or direct serial using RAPI API.See full OpenEVSE WiFi gateway documentation in the OpenEVSE ESP8266 WiFi GitHub Repo.

Developer mode can be enabled on the System tab of the OpenEVSE web interface

Solar PV Divert

The OpenEVSE WifI gateway includes a solar PV diversion feature. This feature allows the OpenEVSE to adjust the charge rate based on the amount of available solar PV production or excess power.

OpenEVSE solar PV diversion example. Yellow: solar PV, blue: OpenEVSE.

The graph above is explained as follows:

  • OpenEVSE is initially sleeping with an EV connected
  • Once solar PV generation (yellow) reaches 6A (1.5kW @ 240V) the OpenEVSE initiates charging
  • Charging current is dynamically adjusted based on available solar PV generation
  • Once charging has begun, even if generation drops below 6A, the EV will continue to charge*

*The decision was made not to pause charging if generation current drops below 6A since repeatedly starting / stopping a charge causes excess wear to the OpenEVSE relay contactor.

If a Grid +I/-E (positive import / negative export) feed was used (instead of solar PV generation feed) the OpenEVSE would adjust its charging rate based on excess power that would be exported to the grid; for example, if solar PV was producing 4kW and 1kW was being used on-site, the OpenEVSE would charge at 3kW and the amount exported to the grid would be 0kW. If on-site consumption increases to 2kW the OpenEVSE would reduce its charging rate to 2kW.

An OpenEnergyMonitor solar PV energy monitor with an AC-AC voltage sensor adaptor is required to monitor direction of current flow.

Solar PV Divert Setup

  • To use ‘Eco’ charging mode MQTT must be enabled and ‘Solar PV divert’ MQTT topics must be entered.
  • Integration with an OpenEnergyMonitor emonPi is straightforward:
    • Connect to emonPi MQTT server, emonPi MQTT credentials should be pre-populated
    • Enter solar PV generation / Grid (+I/-E) MQTT topic e.g. if solar PV is being monitored by emonPi CT channel 1 enter emon/emonpi/power1
    • MQTT lens Chrome extension can be used to view MQTT data e.g. subscribe to emon/# for all OpenEnergyMonitor MQTT data. To lean more about MQTT see MQTT section of OpenEnergyMonitor user guide
    • If using Grid +I/-E (positive import / negative export) MQTT feed ensure the notation positive import / negative export is correct, CT sensor can be physically reversed on the cable to invert the reading.

Solar PV Divert Operation


To enable ‘Eco’ mode (solar PV divert) charging:

  • Connect EV and ensure EV’s internal charging timer is switched off
  • Pause charge; OpenEVSE should display ‘sleeping’
  • Enable ‘Eco’ mode using web interface or via MQTT
  • EV will not begin charging when generation / excess current reaches 6A (1.4kW @ 240V)

  • During ‘Eco’ charging changes to charging current are temporary (not saved to EEPROM)
  • After an ‘Eco mode’ charge the OpenEVSE will revert to ‘Normal’ when EV is disconnected and previous ‘Normal’ charging current will be reinstated.
  • Current is adjusted in 1A increments between 6A* (1.5kW @ 240V) > max charging current (as set in OpenEVSE setup)
  • 6A is the lowest supported charging current that SAE J1772 EV charging protocol supports
  • The OpenEVSE does not adjust the current itself but rather request that the EV adjusts its charging current by varying the duty cycle of the pilot signal, see theory of operation and Basics of SAE J1772.
  • Charging mode can be viewed and set via MQTT: {base-topic}/divertmode/set (1 = normal, 2 = eco).

* OpenEVSE controller firmware V4.8.0 has a bug which restricts the lowest charging current to 10A. The J1772 protocol can go down to 6A. This will has be fixed with a firmware update. See OpenEnergyMonitor OpenEVSE FW releases. A ISP programmer is required to update openevse controler FW.

See full OpenEVSE WiFi gateway documentation in the OpenEVSE ESP8266 WiFi GitHub Repo.

Emoncms Setup

OpenEVSE can be setup to log data directly to Emoncms for datalogging and visualization. This guide section will cover configuring Emoncms once OpenEVSE is posting data.

Input Processing

First enable Device Module view (currently beta)

On the Emoncms Inputs page click the ‘cog’ icon on the OpenEVSE device to log OpenEVSE Inputs to Feeds using Device Module template:

Note: If OpenEVSE Inputs are not present see section 1 to check OpenEVSE WiFi Emoncms service setup settings.

Choose OpenEVSE device template then click Save:

Device Module shows the Feeds and Input Processing which will be applied:

Once Initialized and saved the Device Module has automatically applied the correct Input Processing to the OpenEVSE Inputs:

On the Emoncms Feeds page the OpenEVSE Feeds should now be there with correct scale, names and units:

Emoncms ‘Apps’ Dashboard

Click on ‘Apps’ on the Emoncms top bar then select new OpenEVSE App

Clicking on a Feed on the feeds page will open the Emoncms Graph display to show the raw feed data. Various Feeds van be displayed at once, e.g. looking at the effect of the internal temperature of the OpenEVSE unit during a charge:

Note: The OpenEVSE has integrated temperature monitoring and will automatically throttle charging current and eventually stop a charging session if the temperature gets too hot.