# This is the template file pyPlc.ini.template. # Copy this file in the same folder like the pyPlc.py, and rename it to pyPlc.ini [general] # mode can be either PevMode to use as car, or EvseMode to use as charger. # This setting can be overruled by using the first command line parameter, to EvseMode: # python pyPlc.py E # or to PevMode: # python pyPlc.py P mode = PevMode # Simulation without modem # For development purposes, make it possible to run two instances (pev and evse) on one machine, without # a modem connected. # If this setting is set to false, nevertheless the simulation mode can be activated by the second command # line parameter "S", e.g. # python pyPlc.py E S # or # python pyPlc.py P S is_simulation_without_modems = false # The Ethernet interface. Usually eth0 on Raspberry. # This setting is considered only on linux. eth_interface = eth0 # The Ethernet interface name on Windows. Something like # \Device\NPF_{E4B8176C-8516-4D48-88BC-85225ABCF259} eth_windows_interface_name = \Device\NPF_{E4B8176C-8516-4D48-88BC-85225ABCF259} # If a display is connected via serial line, e.g. an WIFI-KIT-32 running the software from https://github.com/uhi22/SerialToOLED # Possible values: yes or no display_via_serial = yes # LightBulbDemo turns on the relay with a short delay in the charging loop, to stabilize the voltage # before the resistive load is connected. # This mode is intended to test the PevMode without the need of a real battery, but a load like a light bulb, # or kettle or similar. # Possible values: yes or no # For the use together with a real battery set this to "no". light_bulb_demo = no # SOC simulation. # In PevMode, simulate a rising SOC while charging. # Possible values: yes or no soc_simulation = yes # Precharge simulation # In EVSE mode simulate precharging rather than using physical value evse_simulate_precharge = yes # Device selection for the digital outputs, for CP state and power relays # Possible options: # dieter: Serial controlled device, which controls the digital outputs. E.g. arduino from https://github.com/uhi22/dieter # beaglebone: GPIO pins of the beagleBone, as used in https://github.com/jsphuebner/pyPLC/tree/beaglebone # celeron55device: Serial controlled device as used in https://openinverter.org/forum/viewtopic.php?p=56192#p56192 digital_output_device = dieter #digital_output_device = beaglebone #digital_output_device = celeron55device #digital_output_device = mqtt # Device to read the physically measured inlet voltage in PevMode # Possible options: # dieter: The high-voltage dieter from https://github.com/uhi22/dieter, which is connected on serial port. # none: if no measurement is intended. # celeron55device: as used in https://openinverter.org/forum/viewtopic.php?p=56192#p56192 #analog_input_device = dieter analog_input_device = none #analog_input_device = celeron55device #analog_input_device = mqtt # Criteria for ending the PreCharge phase in PevMode # Possible options: # yes: use the EVSEPresentVoltage which is reported by the charger, to decide the end of the precharge # no: use the physically measured inlet voltage to decide the end of the precharge use_evsepresentvoltage_for_precharge_end = yes # Use the physically measured inlet voltage to show on display during the charge loop. # If false, we are showing the EVSEPresentVoltage which is reported by the charger. use_physical_inlet_voltage_during_chargeloop = no # Voltage threshold for the end-of-precharge decision # This is the maximum difference voltage between the charger voltage and the accu voltage. If the actual voltage # difference is lower than this threshold, we will close the power relay, to connect the accu to the charger. # Unit: volt u_delta_max_for_end_of_precharge = 10 # Added by celeron55 # The serial port and baud rate used for communication. Used # for serial devices like Dieter, OLED-Display and # celeron55's measuring and switching device # Examples: # /dev/ttyS1 # auto serial_port = auto serial_baud = 19200 # MQTT broker and base topic in case MQTT is used mqtt_broker = localhost mqtt_topic = pyPlc # The target voltage used in the CurrentDemandRequest. # This is a value for first try-outs. Better would # be if the BMS would provide the value. # 11 * 6 * 4.1V = 66 * 4.1V = 270V charge_target_voltage = 270 # By using an external manager script, this is useful for splitting charging # into separately logged sessions and avoiding logging when not connected to a # charger. # Recommended setting: True, and configure the starter.sh as service (Linux only). # Deeper explanations here: https://github.com/uhi22/pyPLC/blob/master/doc/installation_on_raspberry.md#further-optimizations exit_on_session_end = False # If pyPLC does not find a local link address, this means there is no # ethernet connection to the homeplug modem. This is a severe hardware # error, so pyPLC will terminate. However, for special testing purposes this can # be set to False. In this case, pyPLC will continue to run, even if there is no modem connected. exit_if_no_local_link_address_is_found = True # pyPLC in PevMode or ListenMode can detect the MAC address of the charger (SECC MAC) and # write it, together with the time stamp, into the file MacLog.txt log_the_evse_mac_to_file = True # Run test cases. # Explanation in doc/testing_and_simulation.md # Possible values: # No: No testcases are executed. Normal function as Evse or Pev. # Yes: Testcases are executed. The EvseMode will produce various errors for fault injection tests. testsuite_enable = No # Logging to UDP Syslog messages # If this is activated, the pyPlc will send all logging messages also to the network interface, # in form of UDP Syslog messages. For details see in udplog.py. # For development purposes, set this to "Yes". # For daily use, set this to "No". There is the risk that the broadcast UDP packets disturb the charger, # which may lead to unwanted aborts. udp_syslog_enable = Yes # Set backend for obtaining charging parameters, we start with CHAdeMO CAN for now # Need to make a simulator device and maybe a celeron device? # Possible values: # mqtt: pyPLC is used as a bridge between an MQTT broker and the car or EVSE # chademo: pyPLC is used as bridge between a CCS charger and a CHAdeMO* car. # Limitations/explanations here: https://openinverter.org/forum/viewtopic.php?p=57894#p57894 and # https://openinverter.org/forum/viewtopic.php?t=1063 (Is it possible to make a CCS to CHAdeMO adapter?) # none: all other use cases #charge_parameter_backend = chademo #charge_parameter_backend = mqtt charge_parameter_backend = none # REST callback for SoC states. Comment out to disable. Do not leave a trailing slash # This parameter is used in EvseMode, to configure where the data which is retrieved # from the vehicle shall go to. Discussed # here: https://github.com/SmartEVSE/SmartEVSE-3/issues/25#issuecomment-1563519025 soc_callback_enabled = False soc_callback_endpoint = http://1.1.1.1 # Fallback value to use if the vehicle does not support the EVEnergyCapacity.Value soc_fallback_energy_capacity = 2700 # The URL where to send some logging data. logging_url = http://enteryourhosthere.org/pyPlcLogging/addLog.php