Skip to main content
v5.33
operator
manufacturer
Last updated on

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 Controller
    ls *_*
  • For filenames and parameter mapping, see here.

    Run on Controller
    head -n 1 *_*

  • For filenames and parameter mapping, see here.

    Run on Controller
    head -1 
  • Run on Controller
    sync
    tip

    The sync command ensures that all pending changes are written to disk. Make sure to always run it before rebooting the Charge Controller.

  • Run on Controller
    reboot
    tip

    Make sure to always run sync before rebooting the Charge Controller.

4. Configuration recipes



  • Filename: ChargeBoxIdentity_custom

    Run 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_custom
    Run on Controller
    sync
    reboot


  • Filename: OCPPBackendJSONURL_custom

    Run 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_custom
    Run on Controller
    sync
    reboot


  • Filename: SerialNumberManufacturer_custom

    Run 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_custom
    Run on Controller
    ls -l /home/charge/persistency/SerialNumberManufacturer_custom
    sync
    reboot


  • This recipe is used for:

    • ManufacturerPwd_custom
    • OperatorPwd_custom
    • InstallerPwd_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.

    tip

    For 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.

    danger

    Do not run the command below as-is. Use your own strong password generator and replace the password variable 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 -NoNewline


  • Filename: ManufacturerPwd_custom

    • OperatorPwd_custom
    • InstallerPwd_custom
    danger

    Do not run the command below as-is. Use your own strong password generator and replace the password variable 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_custom
    Run on Controller
    ls -l /home/charge/persistency/ManufacturerPwd_custom
    sync
    reboot


  • Filename: OCPPMeterType_custom

    For 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_custom
    Run on Controller
    sync
    reboot


  • Filename: SecondMeterType_custom

    For 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_custom
    Run on Controller
    sync
    reboot

5. Device identity recipes

    • Option 1:
    Run on Controller
    head -n 1 /tmp/.ebee_version_info.txt

    Example output: 5.33.0-21510-57641b50ef

    • Option 2:
    Run on Controller
    head -n 1 /tmp/.ebee_version.txt

    Example output: 5.33.0-21510

  • Run on Controller
    head -n 1 /sys/class/net/eth0/address

    This 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 Controller
    head -n 1 /home/charge/persistency/SerialNumberManufacturer_custom
    • Controller Serial Number:
    Run on Controller
    head -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 Controller
    head -n 1 /tmp/.ebee_version_info.txt

    Example output: 5.33.0-21510-57641b50ef

    • Option 2:
    Run on Controller
    head -n 1 /tmp/.ebee_version.txt

    Example output: 5.33.0-21510