Cookbook
This page contains task-based SSH recipes for common EOL operations.
1. Audience and assumptions
We assume the following:
- you are a mid- or senior-level software engineer with linux command line knowledge
- you are working on Windows 11
- you are using PowerShell
- SSH access to the controller is already available
The SSH-based provisioning method will work on other host operating systems and with other terminal applications as well, but the instructions in this documentation are tailored to the above assumptions for simplicity. Minor adjustments may be needed.
2. Frequently asked questions
Q: Do I really need to run sync before rebooting the controller?
A: Yes if you force a reboot with the -f flag, otherwise the controller performs a sync when rebooting is done with the plain reboot command. It doesn't hurt and costs no additional time, so we still recommend doing it.
3. General recipes
- Run on Computer (PowerShell)
ssh charge@192.168.123.123 - Run on Controller
cd /home/charge/persistency For filenames and parameter mapping, see here.
Run on Controllerls *_*For filenames and parameter mapping, see here.
Run on Controllerhead -n 1 *_*For filenames and parameter mapping, see here.
Run on Controllerhead -1- Run on Controller
synctipThe
synccommand ensures that all pending changes are written to disk. Make sure to always run it before rebooting the Charge Controller. - Run on Controller
reboottipMake sure to always run
syncbefore rebooting the Charge Controller.
4. Configuration recipes
Filename:
ChargeBoxIdentity_customRun on Computer (PowerShell)$Value = 'DE*ABC*E1234567*1'
Set-Content -Path .\ChargeBoxIdentity_custom -Value $Value -NoNewline
scp -O .\ChargeBoxIdentity_custom charge@192.168.123.123:/home/charge/persistency/ChargeBoxIdentity_customRun on Controllersync
rebootFilename:
OCPPBackendJSONURL_customRun on Computer (PowerShell)$Value = 'ws://backend.example.com/OCPPJProxy/v16/'
Set-Content -Path .\OCPPBackendJSONURL_custom -Value $Value -NoNewline
scp -O .\OCPPBackendJSONURL_custom charge@192.168.123.123:/home/charge/persistency/OCPPBackendJSONURL_customRun on Controllersync
rebootFilename:
SerialNumberManufacturer_customRun on Computer (PowerShell)$Value = '1234567890'
Set-Content -Path .\SerialNumberManufacturer_custom -Value $Value -NoNewline
scp -O .\SerialNumberManufacturer_custom charge@192.168.123.123:/home/charge/persistency/SerialNumberManufacturer_customRun on Controllerls -l /home/charge/persistency/SerialNumberManufacturer_custom
sync
rebootThis recipe is used for:
ManufacturerPwd_customOperatorPwd_customInstallerPwd_custom
Passwords must be saved in valid Base64-encoding per Network Working Group RFC 4648. Ensure your password generator outputs strings that can unambiguously be Base64-encoded, i.e. without padding characters (
=) or line breaks as defined in the RFC.tipFor simplicity, you can restrict your password generation to alphanumeric characters (A-Z, a-z, 0-9). This ensures that the generated password can always be safely Base64-encoded.
dangerDo not run the command below as-is. Use your own strong password generator and replace the
passwordvariable with your generated password. Make sure to keep the password secure and out of reach of unauthorized parties.Run on Computer (PowerShell)$FileName = 'ManufacturerPwd_custom'
$Password = ''
$Bytes = [System.Text.Encoding]::UTF8.GetBytes($Password)
$Base64 = [Convert]::ToBase64String($Bytes)
Set-Content -Path ".\$FileName" -Value $Base64 -NoNewlineFilename:
ManufacturerPwd_customOperatorPwd_customInstallerPwd_custom
dangerDo not run the command below as-is. Use your own strong password generator and replace the
passwordvariable with your generated password. Make sure to keep the password secure and out of reach of unauthorized parties.Run on Computer (PowerShell)scp -O .\ManufacturerPwd_custom charge@192.168.123.123:/home/charge/persistency/ManufacturerPwd_customRun on Controllerls -l /home/charge/persistency/ManufacturerPwd_custom
sync
rebootFilename:
OCPPMeterType_customFor valid numeric values, see here.
Run on Computer (PowerShell)$Value = ''
Set-Content -Path .\OCPPMeterType_custom -Value $Value -NoNewline
scp -O .\OCPPMeterType_custom charge@192.168.123.123:/home/charge/persistency/OCPPMeterType_customRun on Controllersync
rebootFilename:
SecondMeterType_customFor valid numeric values, see here.
Run on Computer (PowerShell)$Value = ''
Set-Content -Path .\SecondMeterType_custom -Value $Value -NoNewline
scp -O .\SecondMeterType_custom charge@192.168.123.123:/home/charge/persistency/SecondMeterType_customRun on Controllersync
reboot
5. Device identity recipes
- Option 1:
Run on Controllerhead -n 1 /tmp/.ebee_version_info.txtExample output:
5.33.0-21510-57641b50ef- Option 2:
Run on Controllerhead -n 1 /tmp/.ebee_version.txtExample output:
5.33.0-21510- Run on Controller
head -n 1 /sys/class/net/eth0/addressThis is the MAC address of the controller's Ethernet interface (eth0).
- Run on Controller
head -n 1 /dev/ebee_variant - Manufacturer Serial Number:
Run on Controllerhead -n 1 /home/charge/persistency/SerialNumberManufacturer_custom- Controller Serial Number:
Run on Controllerhead -n 1 /home/charge/persistency/SerialNumber_custom- Run on Controller
head -n 1 /tmp/.ebee_version.txt
head -n 1 /dev/ebee_variant
head -n 1 /sys/class/net/eth0/address
head -n 1 /home/charge/persistency/SerialNumber_custom
6. Firmware update recipes
- Run on Computer (PowerShell)
scp -O .\ charge@192.168.123.123:/home/charge/ - Run on Controller
opkg install /home/charge/ - Run on Controller
reboot - Option 1:
Run on Controllerhead -n 1 /tmp/.ebee_version_info.txtExample output:
5.33.0-21510-57641b50ef- Option 2:
Run on Controllerhead -n 1 /tmp/.ebee_version.txtExample output:
5.33.0-21510