# Easee Binding

The Easee binding can be used to retrieve data from the Easee Cloud API and also to control your wallbox via the Cloud API. This allows you to dynamically adjust the charge current for your car depending on production of your solar plant.

# Supported Things

This binding provides three thing types:

Thing/Bridge Thing Type Description
bridge site cloud connection to a site within an Easee account
thing charger the physical charger which is connected to a circuit within the given site
thing mastercharger like the "normal" charger but with additional capability to control the circuit

Basically any Easee wallbox that supports the Cloud API should automatically be supported by this binding.

# Discovery

Auto-discovery is supported and will discover all circuits and chargers assigned to a given site.

# Bridge Configuration

The following configuration parameters are available for the binding/bridge:

Configuration Parameter Required Description
username yes The username to login at Easee Cloud service. This should be an e-mail address or phone number.
passord yes Your password to login at Easee Cloud service.
siteId yes The ID of the site containing the wallbox(es) and circuit(s) that should be integrated into openHAB. The ID of your site can be found via the sites overview (https://easee.cloud/sites (opens new window)). You just need to click one of the sites listed there, the id will be part of the URL which is then opened. It will be a number with typically 6 digits.
dataPollingInterval no Interval (seconds) in which live data values are retrieved from the Easee Cloud API. (default = 120)

# Thing configuration

It is recommended to use auto discovery which does not require further configuration. If manual configuration is preferred you need to specify configuration as below.

# Charger

Configuration Parameter Required Description
id yes The id of the charger that will be represented by this thing.

# Mastercharger

Configuration Parameter Required Description
id yes The id of the charger that will be represented by this thing.
circuitId yes The id of the circuit that is controlled by this charger.

# Channels

The binding only supports a subset of the available endpoints provided by the Easee Cloud API. The tables below show all available channels and which of them are writable. The settings that start with "dynamic" can be changed frequently, the others are written to flash and thus should not be changed too often as this could result in damage of your flash.

# Charger Channels

Channel Item Type Writable Description Allowed Values (write access)
state#smartCharging Switch yes ON/OFF
state#cableLocked Switch no
state#chargerOpMode Number no 0=Offline, 1=Disconnected, 2=AwaitingStart, 3=Charging, 4=Completed, 5=Error, 6=ReadyToCharge, 7=AwaitingAuthentication, 8=Deauthenticating
state#totalPower Number:Power no current session total power (all phases)
state#sessionEnergy Number:Energy no current session
state#energyPerHour Number:Energy no energy per hour
state#wiFiRSSI Number:Power no
state#cellRSSI Number:Power no
state#dynamicCircuitCurrentP1 Number:ElectricCurrent no
state#dynamicCircuitCurrentP2 Number:ElectricCurrent no
state#dynamicCircuitCurrentP3 Number:ElectricCurrent no
state#latestPulse DateTime no
state#chargerFirmware Number no
state#voltage Number:ElectricPotential no
state#inCurrentT2 Number:ElectricCurrent no
state#inCurrentT3 Number:ElectricCurrent no
state#inCurrentT4 Number:ElectricCurrent no
state#inCurrentT5 Number:ElectricCurrent no
state#outputCurrent Number:ElectricCurrent no
state#inVoltageT1T2 Number:ElectricPotential no
state#inVoltageT1T3 Number:ElectricPotential no
state#inVoltageT1T4 Number:ElectricPotential no
state#inVoltageT1T5 Number:ElectricPotential no
state#inVoltageT2T3 Number:ElectricPotential no
state#inVoltageT2T4 Number:ElectricPotential no
state#inVoltageT2T5 Number:ElectricPotential no
state#inVoltageT3T4 Number:ElectricPotential no
state#inVoltageT3T5 Number:ElectricPotential no
state#inVoltageT4T5 Number:ElectricPotential no
state#ledMode Number no
state#cableRating Number:ElectricCurrent no
state#isOnline Switch no
state#dynamicChargerCurrent Number:ElectricCurrent yes 0, 6-32
state#reasonForNoCurrent Number no 0=OK, 2=DynamicCircuitCurrentLimitTooLow, 27=DynamicCircuitCurrentCharging, 52=DynamicChargerCurrentLimitTooLow, 55=NotAuthorized, 79=CarLimit, 81=CarLimitedCharging
state#lifetimeEnergy Number:Energy no
state#errorCode Number no
state#fatalErrorCode Number no
state#connectedToCloud Switch no
config#lockCablePermanently Switch yes ON/OFF
config#authorizationRequired Switch yes ON/OFF
config#limitToSinglePhaseCharging Switch yes ON/OFF
config#phaseMode Number yes 1=1phase, 2=auto, 3=3phase 1-3
config#maxChargerCurrent Number:ElectricCurrent no write access not yet implemented
commands#genericCommand String yes Generic Endpoint to send commands reboot, update_firmware, poll_all, smart_charging, start_charging, stop_charging, pause_charging, resume_charging, toggle_charging, override_schedule
commands#startStop Switch yes Start/Stop charging, only works with authorization
commands#pauseResume Switch yes Pause/Resume charging
latestSession#sessionEnergy Number:Energy no latest (already ended) session
latestSession#sessionStart DateTime no
latestSession#sessionEnd DateTime no

# Master Charger Channels

The Master Charger is like the "normal" charger but has some extra channels to control the circuit. These additional channels are listed in the table below.

Channel Item Type Writable Description Allowed Values (write access)
dynamicCurrent#phase1 Number:ElectricCurrent no
dynamicCurrent#phase2 Number:ElectricCurrent no
dynamicCurrent#phase3 Number:ElectricCurrent no
dynamicCurrent#dynamicCurrents String yes read/write only for all phases. <value phase1>;<value phase2>;<value phase3> valid values for each phase are 0, 6-32. Example: 8;8;8
settings#maxCircuitCurrentP1 Number:ElectricCurrent no
settings#maxCircuitCurrentP2 Number:ElectricCurrent no
settings#maxCircuitCurrentP3 Number:ElectricCurrent no
settings#maxCurrents String yes read/write only for all phases. <value phase1>;<value phase2>;<value phase3> valid values for each phase are 0, 6-32. Example: 8;8;8
settings#offlineMaxCircuitCurrentP1 Number:ElectricCurrent no
settings#offlineMaxCircuitCurrentP2 Number:ElectricCurrent no
settings#offlineMaxCircuitCurrentP3 Number:ElectricCurrent no
settings#offlineMaxCurrents String yes read/write only for all phases. <value phase1>;<value phase2>;<value phase3> valid values for each phase are 0, 6-32. Example: 8;8;8
settings#enableIdleCurrent Switch yes ON/OFF
settings#allowOfflineMaxCircuitCurrent Switch no

# Full Example

# Thing

# Minimum configuration

Bridge easee:site:mysite1 [ username="[email protected]", password="secret", siteId="123456" ]

# Manual configuration with two chargers, pollingInterval set to 60 seconds.

Bridge easee:site:mysite1 [ username="[email protected]", password="secret", siteId="471111", dataPollingInterval=60 ] {
        Thing mastercharger myCharger1 [ id="EHXXXXX1", circuitId="1234567" ]
        Thing charger myCharger2 [ id="EHXXXXX2" ]

# Items

Number:ElectricCurrent  Easee_Circuit_Phase1                  "Phase 1"                                   { channel="easee:mastercharger:mysite1:myCharger1:dynamicCurrent#phase1" }
Number:ElectricCurrent  Easee_Circuit_Phase2                  "Phase 2"                                   { channel="easee:mastercharger:mysite1:myCharger1:dynamicCurrent#phase2" }
Number:ElectricCurrent  Easee_Circuit_Phase3                  "Phase 3"                                   { channel="easee:mastercharger:mysite1:myCharger1:dynamicCurrent#phase3" }
String                  Easee_Circuit_Dynamic_Phases          "Dynamic Power [MAP(easeePhases.map):%s]"   { channel="easee:mastercharger:mysite1:myCharger1:dynamicCurrent#setDynamicCurrents" }
Switch                  Easee_Charger_Start_Stop              "Start / Stop"                              { channel="easee:mastercharger:mysite1:myCharger1:commands#startStop" }

# Sitemap

    Switch item=Easee_Circuit_Dynamic_Phases mappings=["0;0;0"="0.00 kW", "6;0;0"="1.44 kW", "7;0;0"="1.68 kW", "8;0;0"="1.92 kW", "9;0;0"="2.16 kW", "10;0;0"="2.40 kW", "16;0;0"="3.72 kW", "16;16;16"="11.1 kW"] icon="energy"

# Mapping

easeePhases.map will make the phase setting more readable.

0;0;0=0.00 kW
6;0;0=1.44 kW
7;0;0=1.68 kW
8;0;0=1.92 kW
9;0;0=2.16 kW
10;0;0=2.40 kW
11;0;0=2.64 kW
12;0;0=2.88 kW
13;0;0=3.12 kW
14;0;0=3.36 kW
15;0;0=3.60 kW
16;0;0=3.72 kW
6;6;6=4.32 kW
7;7;7=5.04 kW
8;8;8=5.76 kW
9;9;9=6.48 kW
10;10;10=7.20 kW
11;11;11=7.92 kW
12;12;12=8.64 kW
13;13;13=9.36 kW
14;14;14=10.1 kW
15;15;15=10.8 kW
16;16;16=11.1 kW