fix: API module; delay sending commands to EvseManager until it is ready#856
Conversation
9f2b3db to
0d5c97e
Compare
1fc956c to
ce2b495
Compare
| bool notify{false}; | ||
| { | ||
| std::lock_guard lock(evse_manager_mux); | ||
| evse_manager_ready--; |
There was a problem hiding this comment.
These changes rely on the fact that each EvseManager publishes ready only once (which is currently given). Instead of using a counter that counts down you could actually check for each EVSE individually (e.g. by using a map).
There was a problem hiding this comment.
@Pietfried updated the approach so that an EVSE manager can be ready multiple times and not cause an issue.
| std::vector<std::string> connectors; | ||
| std::string var_connectors = this->api_base + "connectors"; | ||
|
|
||
| evse_manager_ready = this->r_evse_manager.size(); |
There was a problem hiding this comment.
For consistency reasons I would explicitly use this here since it's been used everywhere else too
| evse_manager_ready = this->r_evse_manager.size(); | |
| this->evse_manager_ready = this->r_evse_manager.size(); |
There was a problem hiding this comment.
this-> is commonly needed for lambdas. Elsewhere this-> should not be added unless is is actually required.
There was a problem hiding this comment.
I agree, I just think it might be better to have a consistent style and this has been used throughout this file to refer to class members not just in lambdas
|
|
||
| std::condition_variable evse_manager_cv; | ||
| std::mutex evse_manager_mux; | ||
| std::int16_t evse_manager_ready{0}; |
There was a problem hiding this comment.
I think it would be cleaner to use a bool instead of an integer here since this would better reflect the intent. I also think I would make an explicit check in the cpp file like so:
evse_manager_ready = this->r_evse_manager.size() == 0;
| std::int16_t evse_manager_ready{0}; | |
| bool evse_manager_ready{0}; |
There was a problem hiding this comment.
r_evse_manager.size() will never equal 0.
evse_manager:
interface: evse_manager
min_connections: 1
max_connections: 128
If there are 10 EVSE managers then r_evse_manager.size() == 10
evse_manager_ready is set to 10 and decremented when a manager becomes ready.
evse_manager_ready being 0 or less means that at least 10 ready messages have been received.
There was a problem hiding this comment.
Alright :) then I must have misunderstood how this variable works
8c4e6e3 to
1c00ddc
Compare
1c00ddc to
3f29150
Compare
875ade3 to
31e76aa
Compare
Signed-off-by: James Chapman <james.chapman@pionix.de>
Signed-off-by: James Chapman <james.chapman@pionix.de>
same EVSE manager Signed-off-by: James Chapman <james.chapman@pionix.de>
Signed-off-by: James Chapman <james.chapman@pionix.de>
31e76aa to
8f4430c
Compare
…ady (#856) * fix: API module; delay sending commands to EvseManager until it is ready Signed-off-by: James Chapman <james.chapman@pionix.de> * fix: allow for 128 EvseManagers Signed-off-by: James Chapman <james.chapman@pionix.de> * fix: approach updated to allow multiple `ready` events from the same EVSE manager Signed-off-by: James Chapman <james.chapman@pionix.de> * fix: update to latest main and fix compile/merge issue Signed-off-by: James Chapman <james.chapman@pionix.de> --------- Signed-off-by: James Chapman <james.chapman@pionix.de>
3beacf9b EvseV2G: Create session id with generate_random_data() instead of rand() (#1407) a8610181 EvseV2g/IsoMux: change tls_security default to allow (#1406) ad03080e EvseV2G/IsoMux: remove insecure cipher ECDH-ECDSA-AES128-SHA256 from list (#1405) 7e3b03dc EvseV2G: ensure that session id is != 0 (#1403) 0ab92a0d Update everest-sqlite to 0.1.4 (#1398) aab02dd3 fix: everest-utils header file only library now installed (#1411) 846d074c EvseV2G: restore ISO 15118-2 supportedAppProtocolRes response code OK_SuccessfulNegotiation (#1410) b41670d3 Update ftxui dependency to 6.1.9 (#1399) e0259396 Fix build issue in fusion_charger_lib/goose-lib unit tests with newer compiler (#1396) 34f05f3f fix: config-tmux-run-script.cmake needs to be installed (#1391) 3a87ac18 Add system module using D-Bus and RAUC (#1361) c54d1b9c EvseManager: fix limits variable does not take PP values into account (#1377) 9ce99cd1 fix: updated cmake for everest_io and use of mqttc (#1388) 211e4fac OpenSSL TPM2 configuration improvements (#1382) ac8b1251 feat(BringUp): Add BringUp module for dc_external_derate interface (#1387) acf9e034 Add libcap from bazel repo (#1386) af2c2e37 More bazel for OCPP201 (#1378) 36c0d4b2 feat(api): Extend EVerest API types library (new types and more unit tests) (#1372) 7cce1e4c Fix(OCPP): Harden OCPP modules: (#1374) 73ea7b68 Handle contactor state in CP events and defer transaction stop until contactor open (#1371) b7d128c6 Refactor OVM interface and include MCS limits (#1256) 8c443abb fix(ocpp2x): Properly queue session events on startup (#1367) 6bb37489 Feature/infypower dc powersupply driver (#1366) f728d6b2 feat(iso15118): Support for -2 Internet service VAS (#1355) 810b0df2 fix: Prevent spamming handle_update_ac_present_power warning if EvseV2G is selected (#1370) 322b5a91 Adding ISO15118-20 AC support: (#1213) d1e8a52e Add various BringUp modules (#1349) 11b4478f Add library everest_io (#1365) 0d628580 refactor(EvseManager): Introduce Shutdown type and make use of Severity in Error Handling (#1354) b7189d18 Add driver for InfyPower_BEG1K075G DC PowerSupply (#1335) 6c64e169 Rename Powermeter DZG_GHS01 (#1333) 17eafccc Add Huawei_V100R023C10 PowerSupply driver (#1336) 386bc06a restructure (#1329) c16f1870 Feature: NXP NFC frontend token provider (#1338) dbd77398 Add LocalAllowlistTokenValidator (#1356) e3558bbd Fix inconsistent everest_API namespace (#1359) f7f4a2df FIX: Changing DC capabilities for 'current' not applied (#1353) 9a49466d Fix lib/everest/gpio header install (#1351) bd0854a3 refactor: Removed set_faulted command from evse_manager interface. It was not used by any other module in everest-core and it is interfering with the more generic error handling that was added some time ago (#1352) 78daf9cd Adding iso15118_vas requirement to EvseV2G + Internet service config option to PyEvJosev (#1342) 8b51fbae Add Huawei_R100040Gx PowerSupply driver (#1334) adbb7e7f Fix unchecked optional access in tests (#1350) 81a8c14b Adding lib_everest_api_types (#1339) 54cb3dab * Added DC external derate interface including separate derate type (#1299) ec468bda Bump everest-utils to 0.6.2 for removed staging namespace (#1348) dac30cc7 Bump libevse-security dependency to 0.9.8 (#1346) edaa59a9 Bugfix: sanitize session logging path (#1345) a8e3dff7 Add Acrel_DJSF1352_RN PowerMeter driver (#1330) d25f8e25 Add driver for UUGreenPower UR1000X0 DC PowerSupply (#1331) 91fc37e2 Update version to 2025.8.0 (#1344) 5ea21b52 Updating codeowners (#1343) ea63abdf feat: Added crc library + tests (#1337) 7d509dd4 Refactor: Move lib/staging to lib/ (#1319) bef16fbf Add driver for Bender isoCHA425HV isolation monitor with self testing (#1320) 24f7b6d9 GenericPowermeter: use exponent value instead of not doint anything with it (#1327) 58502e2d feat(OCPP): Support Q02 (#1269) 3f43d820 Explicitly handle all cases in switch statements (#1325) df3e86ff YetiSimulator: fix parameters in drawPower silently being converted to int (#1326) 5f780ecc fix(EvseV2G): The certificate service is now offered again and will not be accidentally removed. In addition, the certificate service will be removed when the car establishes a TCP connection (#1322) 72b342e3 Move modules into subdirectories that describe their function (#1313) c30f77eb feat: add TIDA-010939 module (#1316) 6376dc5e trigger emergency shutdown when limits are set lower than current target voltage (#1278) 0c6988bd EvseManager: Remove unused variable (#1306) 337b7f4d Reduce the number of digits after comma to make it more readable (#1317) 54bf7ee0 AuthHandler: logging improvements (#1314) 0923ef26 Module manifests: clean up external mqtt usage (#1304) 67a37eb1 RsPaymentTerminal: Refactor the card disabled handling (#1308) 2eebd11e Integrate poposed fix for #1263: dedicated option for LEM which interface the driver uses for communication (#1310) deeb8436 EnergyManager to use steady_clock for valid until timeouts. (#1277) 5aa830cf Fix various typos in interfaces and types (#1311) a9ad8cf9 Introduce charger information interface and example implementation (#1109) 21f08f15 Add MRECC22 resistance fault error handling for isolation monitor (#1232) 1da6e5bf PhyVersoBSP: removed qwello specific proprietary phyverso_mcu_temperature interface/type and corresponding implementation which implies hardcoded/hard-use of specific sensors, not generic or reusable at all; temperature interface and its implementation should be hardware agnostic and generalized -> will be added in the future when needed/when consumer modules are available to digest temperature data (for example to throttle power supply current limits (#1301) 150e864a Added unit tests to IsabellenhuetteIemDcr module (#1214) d953e3dd fix(Auth): Auth module now implements change insensitive comparison of tokens throughout reservations, stopping transaction and parent/group id processing (#1300) 133f72d7 fix(tests): give csms some time to respond to StatusNotification message (#1288) f826537a EvseManager: disable the bsp when disabling charger (#942) a0f5b745 fix: Updated enum flags to include more functionality and unit tests (#1309) 819eae71 RsPaymentTerminal: fix test (#1307) bdcd4e47 feat(iso): Added energy services to ev charging needs (#1273) c4f1c35d Resetting evse_notification and service_list in v2g_ctx_init_charging_state . This is called on every new ISO15118 connection, which is the desired behavior. The service list is only set in case we have a TLS session (#1305) 61a145bc RsPaymentTerminal: avoid busy loop (#1302) 98c9621c RsPaymentTerminal: Add IncorrentDeviceId error (#1298) 10d2364e lib/staging/external_energy_limits: fix int to string in throw (#1294) 79034dd2 Updated dependencies (#1286) d8e83563 Adjusted documentation for new OCPP1.6 configuration key ISO15118CertificateManagemementEnabled. Extended existing test cases to verify CSMS read/write operations (#1296) cdc4f374 fix(ocpp2): Fix update of evcc id token from iso extensions interface (#1291) ea1387a3 fix(ocpp16): websocket connection options after a security profile upgrade (#1295) d3b77e10 Added e2e test for OCPP1.6 configuration keys (#1293) adc9a4d9 RsPaymentTerminal: Raise error on a PT configure error (#1270) a670127f CMake: add tls by default (#1290) 9480dbd4 fix(e2e): flaky tests with websocket dis(connect) (#1287) c19e9115 bump libocpp version (#1283) feb5af7e tests(EnergyManager): update json test files on change (#1284) 5e2bd153 PhyversoBsp: Remove OpaqueDataHandler (#1281) cfcc5041 RsIskraMeter: Handle power outage more gracefully (#1285) 84803ff3 RsIskraMeter: Show tariff on the Lcd (#1282) 28e98f60 Bazel: Compile System and EvseSecurity (#1272) bfa8afc6 In IEC61851-23:2023 (CC.3.5.2 & CC.3.5.3) the charger has the opportunity to pause the session if no energy is available. In addition, two configuration options have been added that allow you to ignore the pause and enable the charger to ignore the fact that the EV is not entering a pause. However, neither option is standard-compliant (#1274) cf642d64 Update CODEOWNERS (#1280) d0941712 RsIskraMeter: use pass on tariff information (#1271) 51fd44b2 fix(EvseManager): connector_ids were always one, even if several EvseManager connectors were defined when the autocharge_token was created. As a result, only connector 1 was authorized, but not the others (#1276) 854b985b fix: UK random delay not logging completed (#1275) 8438d872 Bazel: Add bazel files for OCPP module (#1267) 273e78c9 Feature/ocpp21 bidirectional building blocks (#1261) e7250fd4 RsIskraMeter: Correct the signature (#1264) b4cb1687 Refactoring vars from iso15118_ev interface. (#1248) 751f0fbb feat: Removed skipping marker from ISO15118 tests, enabling them in the CI (#1244) a98daa7e Add tests for invalid OCPP 1.6 and 2.x message encoding (#1251) b922e854 Make sure that gpio lib can be used outside everest-core (#1253) 103575de Bump version to 2025.6.0 (#1252) d6686c28 OCPP201: add access to module configs using EVerest device model (#1247) 501a4582 docs(API): change pause to resume (#1250) 35a92333 fix(EvseV2G): Remove Certificate Install service from ServiceDiscoveryRes (#1243) 488d48e2 add stop_charging command to api module (#1249) 55742c72 feat(Evse15118D20): Adding custom protocol namespace (#1246) bc3c2461 IsoMux: fix memory leak (#1245) 26c3c0ff Use 127.0.0.1 instead of localhost as host (#1226) daac5bde feat: add ISO15118D20 custom VAS functionality (#1236) 8f145953 feat(e2e-tests): Added OCPP 2.1 initial E2E tests (#1240) 7465fc3a EvseV2G: Adding a check for out of bounds parameters in charge parameter discovery (#1196) cfa93668 Fix crash when fail_on_powermeter_errors is configured true. Using static empty vector (#1237) 3983013d OCPP1.6: Report a powermeter/CommunicationFault as a PowerMeterFailure (#1231) 525748f0 EvseManager: log duty cycle only with single decimal digit (#1233) 6f9c5415 feat: Add static ISO15118 VAS Provider Module (#1191) 2d9404c8 Correct typo in _handler_set_bpt_dc_params (#1234) fac142ed feat(simulation): Add powermeter reset config option (#1230) 3ee1383e Add simple EvAPI and extend EvManager with simplistic SoC calculation (#891) 805b7784 Refactor: Add SQLite backend to EverestDeviceModelStorage in OCPP201 (#1229) 95921bbd RsPaymentTerminal: Add periodic end of day job (#1228) f69df5f6 AD-ACEVSE22KWZ-KIT driver integration (#1221) 8139e99c Slac: use AC style retries also for DC (#1185) b9e57ec7 EvManager: update error message to provide more information (#1206) 2fd4d118 chore: add ISO15118 VAS interface (#1187) 9ca13e43 Initializing EVSE and Connector components for OCPP201 dynamically at startup (#1194) 8a8fb7dd Fix: (a)Add param for connection timeout, (b)Allow TZ and DST in NTP case, (c)Cache the OCMF field and provide it in stop transaction response (#1215) 489408ed Refactor behaviour of find_package(everest-cmake.. (#1222) fd262a25 Fix(EvseManager): Removing inform_max_hlc_limits() when the power supply updates its capabilities. This had led to the hlc max limits being overwritten and to cases where the power supply set a higher current than the EnergyManager originally set (#1219) c6269e24 Refactor run_application abstraction from Setup module into staging lib (#1212) b7e827df feat(EvseV2G, IsoMux): Subscribing to certificate updates in EvseV2G and IsoMux and adjusting tls server configuration when relevant certificate updates are tracked. Moved build_config into tls_connection header in order to use it in EvseV2G and IsoMux module (#1218) 8a55269b feat: added TLS server suspend method (#1217) d22a4e6c Fixed typo in PnCEnabled variable. Defined other variable names as well instead of using the same string multiple times (#1216) 3a2ad4a8 feat(EvseSecurity): Extended evse_security interface by CertificateStoreUpdate var (#1211) 55d07789 feat(EvseManager): Configurable session id type (#1198) 137f2481 Update libocpp and everest-framework dependencies (#1210) 0440d21d Fix wait for mock function to address flaky test case that waits for mock calls (#1208) 06c9cf8c EnergyManager: Initialize node_type to "Undefined" in ctor (#1209) b6055723 refactor: Changed certificate verification in openssl utils: (#1202) 42cbc87d Fix(ISO15118): Move Plug&Charge contract request into Authorize handler (#1205) 72b8e400 Fix(ISO15118): (#1204) a7e9e503 Update version to 2025.5.0 (#1197) 74ee940d Bazel: remove alias for boost (#1203) fe2c2ccd Move to Bazel 8 (#1180) d5b00e88 Updating fedora version (#1170) 0242bfda feature(OCPP): Added support for OCMF TT (tariff text) information for powermeter start transaction (#1186) 0a80ccb6 Fixes regarding the vector tester ISO15118 -4 & -5 test cases (#1087) 8cf59ba6 Adapt to new set_variable_attribute_value return type (#1193) 25e1e8fc Adding ISO15118-20 pause/resume feature (#1095) 637c46e2 Refactor(ocpp201): ComposedDeviceModel source lookup (#1192) 5ae9c984 refactor(OCPP201): Simplified ComposedDeviceModel initialization and extensibility (#1188) 902c449b Adjusted OCPP1.6 E2E test cases to new composite schedule calculation. This omits the number_phases element if number_phases was not part of the profile sent in the SetChargingProfile.req (#1177) 7dd5beb3 Fine-tune build options for libcurl (#1190) 35d5c630 Add get_uuid() to staging helpers as a common implementation (#1174) c8edff60 Feat/slac reset instead of failed (#1181) e2434e23 Reduce time to PWM start for broken EVs such as SAIC (#1182) 73532ccb fix(OCPP): Make ResetStopDelay enabled for both soft and hard reset (#1179) de020d90 Fixed outdated documentation about display_message callbacks being used wrt California Pricing. The california pricing integration only uses the session_cost interface, not display_message anymore (#1169) 6115a9d6 Update libocpp dependency to 0.26.3 and everest-sqlite to 0.1.1 (#1176) 80c0400c feat: Reformat EVSE Manager inopertative error to preserve original error (#1175) deaa4509 RsPaymentTerminal: Update zvt version (#1164) 57108cec fix(ocpp/system): Number of retries for fw/logs + reset on installed fw (#1171) c7d3c1df fix(ocpp16): Reset use case not having the correct status notifications (#1165) 456468ab feat: Allow DummyBankSessionTokenProvider to optionally generate random IDs (#1162) 9c5af88c Skip HLC startup tests in GitHub CI (#1173) 1d833e67 module-dependencies, tests: drop PyJosev (#1161) 45763069 EvseManager: DC charging: Set hlc_charging_active already before v2g_setup_finished (#1154) 46b008ba feat(simulation): Make it possible to keep EV plug in state cross boot (#1156) 080aa904 Limiting target_current if the ev does not check the evse max limits (#1167) eb23c3ad Updating libcbv2g & libiso15118 version (#1155) abe4b558 chore: formatted the configs with the everest admin panel (#1158) 6ef8e80b feat(OcppAuth): Updates to id_token_info for token in use on connector (#1151) b8ab2777 Add tests for various invalid OCPP messages (#1153) 80634862 EvseManager: Make sure that charger state machine thread can only started once (#1157) 9b3abf46 Add rejection reasons to payment terminal interface (#1129) 4a99b5dd fix(auth): Missing parent id token in token validation callback (#1159) 43334507 module-dependencies: fix sqlite_cpp leftover (#1150) a3b94ec5 updated libocpp dependency (#1149) ea0aa4d9 GenericPowermeter: improve error handling (#1126) 36178974 Auth: Fix interface (#1145) 17748c6f EvseManager: Fix deadlock between hlc_mutex and state_machine_mutex (#1115) 9f95188c Adapt to generated (in)equality operators for types in ev-cli v0.5.2 (#1138) d73f9879 Update libocpp to 0.26.0 (#1146) 521cae6a Fix warnings in pytest based OCPP tests (#1141) c21844a0 * Removed maaikez from CODEOWNERS (#1130) 3e8f769c Sending correct iso-2 ResponseCode "FAILED_CertificateRevoked" in the AuthorizationRes if the contract certs are revoked (#1144) d8b3a4e6 RsPaymentTerminal: Update zvt dependency (#1140) 4d8da352 Update libcurl to 8.13.0 (#1143) 5dbc4bd3 Update version to 2025.4.0 (#1142) d06c9a49 Hardened CiString handling in OCPP modules (#1139) 7cdc3133 Configurable Plug&Charge options in EvseManager (#1128) a413dc28 Remove JS versions of YetiSimulator, SlacSimulator, JsTibber, JsEVmanager and other JS examples (#1102) 61411d4a feat(ocpp): Add support for Power.Offered meter value (#1132) 9db659d6 * Added OCPP1.6 test case for DataTransfer(GetInstalledCertificates) for NotFound (#1124) 72c06ba3 refactor(ErrorHistory): Use everest-sqlite instead of sqlitecpp (#1113) 68517eed Added IEM-DCR module (#1059) 636e8ba4 Adding a tls server state check before announcing security in the sdp response message (#1135) a6b8e460 Addressed added argument to libevse-security for verify_certificate (#1123) 3bfd0a76 Made sleep in hlc mode before starting pwm configurable (#1125) 92fd5377 Unlocking event_mutex while executing validate_token callbacks in Auth module (#1131) 5115ff08 skip dco check for merge queue (#1134) 3963c395 Merge pull request #1079 from EVerest/feature/session-cost-add-message 225b0215 Update libocpp dependency 99432b26 Change SessionCostMessage to TariffMessage. 8b7b4825 Review comment. e7be1b55 Fix build after rebase. b8c20994 Change description of IdentifierType. a9658f54 Fix Bazel build. 3816f01c Fix tests. Add DisplayMessage example module. Add ocpp transaction id to session cost message. b60309e5 OCPP 1.6: use session cost message instead of display message for pricing information. 600bc4b1 Merge pull request #1116 from EVerest/feature/merge_queue 833de802 Add merge_group trigger e479ef46 Remove mbed tls from evsev2g (#1008) 1af8b6ff RsPaymentTerminal: Add command to enable or disable payment terminal (#1056) 74b1f3d9 Remove unused functions from evsev2g (#1012) ffc00f5a Updated deps on libevse-security for checks before bugfix merge (#1114) 26a46495 Bump version to 2025.3.0 and update dependencies (#1112) 52a4c852 Added several OCPP1.6 integration tests for ChangeAvailability (#1097) 4abaab27 fix(ocpptests): Add a sleep to allow time for reboot (#1110) 5b7a0fff feat(ocpp16): Add test for connector 0 being replaced in db (#1104) 8edda775 Cancel Reservation signaling (#1108) 74269d93 Fix Auth module race condition on timeout (#1105) fd2e274b Feature/energymanagement extensions (#1033) 46dac081 Auth: clarify hint about missing storage configuration (#1098) 79282778 EvseManager processing of enable_disable() requests. (#1092) 7321e124 umwc: move external MQTT to MicroMegaWattBSP, throw MREC8 emergencystop error (#953) b7adf12c Add voltage_measurement_V var to over_voltage_monitor interface (#1081) bb7bd548 Add mlitre to CODEONWERS (#1100) dbb8fb05 API: differntiate between Finished EVSE and EV (#954) d310988f Fix race condition in test_c13 (#1090) 00c5b521 Fix: EVSE selection in Auth module (#1099) 9e3b180a Add withdraw authorization command in auth interface (#992) 5b6009e4 fix: Yeti Simulator was generating invalid date and time strings (#1093) 38c8813b Evse15118D20, IsoMux: forward pre-charge events (#1091) 88df7c6b Adding proper tls 1.3 support for d20 in Evse15118D20 and PyEvJosev (#1077) 2f5c84c6 Feature/notify ev charging needs (#1062) df15348d Fix typos and grammar (#1088) 767c8867 Adding yeti simulator (#862) bce7787e Feature/ocpp21 support (#1083) aefa6604 Bump libtimer dependency to 0.1.2 (#1089) 2c73ce37 Bump version to 2025.2.0 (#1085) f54510fb Evse15118D20: remove unused config parameter (#1086) 89838a12 Replace deprecated boost::asio::io_service with boost::asio::io_context (#1076) 521a2a9a Fix expected meter value in integration test for second transaction (#1084) dc4cf153 Update CI to v1.4.6 (#1074) 95a0c0a9 Replaced JsEvManager JsIMDMonitor and JsSlacSimulator with C++ versions in ocpp integration test configs (#1082) 41df2df1 Fix force unlock handling in EvseManager (#1078) 78a08f0b Adding retries when no cm_atten_char.rsp is received (#1069) 9274b0bc Hardened EvseSecurity conversions and EvseSecurity module implementation: * change runtime_exception to out_of_range * added try-catch blocks around functions calls that could potentially throw out_of_range a9ebe897 Over voltage monitor interface (#1055) c3575d1c Add MREC9AuthorizationTimeout Error (#956) 5e10bf5e Eichrecht refactor of LEM - add error recovery path: transaction alre… (#1035) 1b624a0b Added VendorError and VendorWarning to errors/generic (#1066) b6c188f8 - Fix TC_SECC_CMN_VTB_CmSlacParm_004/5/6 - Fix TC_SECC_CMN_VTB_CmSlacMatch_003 - Add reset event handling while waiting for Link - Add link detection to matching state and reset if link got lost 87fe0535 Add target dep generate_cpp_files (#1070) 471af73f Reservation Handling in EvseManager (#1067) 3ca04449 Adding AC & DC HLC tests to core_tests/startup_test (#830) a314d840 remove everest-modbus dependency (#1065) 30dd90e7 Fix debug output of EV max voltage (#905) 851eac59 Rename v201 to v2 for OCPP modules (#1058) d49814cf *Enabled -Werror=switch-enum for evse_security_conversions targt * Added missing enum value conversion for CertificateValidationResult dd7c1eba Add command to set current and phase limit for EVSE via MQTT API (#1016) af9ced98 feat: add TPM2 support for EvseV2G TLS server private key (#1021) 0c6449f8 Refactoring iso15118 EVerest types (#1050) 7e5cabb7 Fixing DcPowerSupplySimulator race condition (#1054) 433c8402 Adding new iso15118_extension interface (#1022) 61d52a01 feat: support ftps (#1051) 5b2a7976 cmake: install missed file from "feature: target register functionality and coverage" (#1052) 0082d1ac Use CSV for output tags of docker meta action in OCPP-tests (#1049) e694b8d8 RsPaymentTerminal: make all interfaces optional (#1047) d4dc560b Bump everest-framework dependency to 0.20.2 (#1045) 41c9f858 Bump libevse security dependency to 0.9.3 (#1046) f243612a Bump everest-framework to v0.20.1 (#1042) 3a922edb Ensure that "lib" is the CMAKE_INSTALL_LIBDIR in pugixml bazel dependency (#1043) 069864c9 Bump everest-framework and ev-cli for clear_error refactor (#1031) 6f0f2531 Update CODEOWNERS file (#1041) ffe208b2 Integrates the security module in the Evse15118D20 module (#1030) a7355cf7 Updating libcbv2g to latest version (v0.3.0) (#1037) a9b9a1ce Fixing EvseV2G doc.rst with the correct emoji (#1039) db711914 Publish PP state from PhyVersoBSP (#1034) 63b44151 Bump libocpp dependency to 0.23.0 (#1028) f7083805 API: Improve error handling for command parsing (#1020) 6a60ee59 EnergyManager: JSON based unit tests b65b8462 Additional documentation for powermeter start sequence or after communication loss (#1019) be31e96c Auth: Catch all exceptions while waiting for token validation and reject it instead of crashing (#1032) 377b01b1 Bump zvt lib (#1029) 170e0637 Renamed docs directory for CI (#1023) fbbfd863 Added documentation for EnergyManager module (#1009) 356a4cd0 Adding a few unit tests for the EvseV2G module. This should serve as a starting point for further tests: (#1013) 06cf9836 Introduce EVSE Manager configuration option for failing charging if t… (#993) cc46e47f refactor(coverage): documentation, register function reordering (#1007) 3bf38349 feature: direct support for `__dump_gcov` (#1005) 10dbb55d bugfix(tls_test): use timed_mutex (#1006) 53769bf1 Update everest-ci to v1.4.4 (#1003) e5d84086 feature: target register functionality and coverage (#1004) 34017182 Added features to EvseV2G doc.rst (#964) c328363b Refactored mutex locking in Auth module: (#1001) 5386a026 Accept bank cards only for specific connectors (#997) 43a43ed9 PN532TokenProvider: drop unused config 'timeout' (#995) 6e669fd8 Add module for NXP PN7160 NFC chip as token provider (#951) d8db9489 Fix if-statment guarding for invalid vector access (#996) 60f58896 Move reservations callbacks and handlers to new functional block some test changes ede5b2d4 After a plug in timeout, a replug is required in order to get authorization and start a transaction at this EVSE. The Auth module now marks an EVSE where a plug in time out occured in order to not select it for a later authorization request (#976) 5230a891 Reduce mutexes in Auth module (#991) a9d1ab08 Cost and price display message tests (#975) 4180de76 Reservation all connectors reserved (#958) 0a791679 Updated libocpp websocket dep (#984) dee89f41 CableCheck: allow 0 samples, option to disable wait below 60V at end … (#990) 48581e9c Added test to bounds check ConnectorEvseIds for OCPP1.6 (#989) a192cdd3 Slac: avoid second chip reset if it was already performed before unplug (#955) cd021209 RsIskraMeter: Report error on consistent meter communication failure (#988) 50d8baca Bump everest-framework to 0.19.1 (#987) 7771a02b OCPP 1.6: support multiple temperature readings (#986) 39fe934b Add dummy token provider for the bank_session_token_provider interface (#965) a4d802a7 Bump everest-framework to 0.18.1 (#983) 638408ab Redact tokens that are logged to console (#985) c2102053 Add @pietfried and @hikinggrass to CODEOWNERS for rust and bazel (#945) df448c11 Fixed probe module missing `get_verify_location` command (#982) 274abb71 Updated interface for security library (#981) 6c9fffc8 Always try to unlock the Connector, as long as the relays are not on (#962) 2b9d96d8 Move error reporting to ready function to ensure charge_point object is initialized (#969) 8828e4b4 Fixed ocpp generic interface integration tests by adding probe module command mock (#971) 71b8762a Add check if OCPP tests failed and fail job if that's the case (#970) e4ec2c7e Update network connection profile callback in OCPP201 module (#968) fcc20882 Reservation changes for 2.0.1 (#943) 81b366d4 OCPP E2E tests (#959) 5166c8b4 Fix typo on [V2G2-544] transition rule comment (#966) 82807274 SlacSimulator initialize state with UNMATCHED (#963) e786c576 Add composed device model storage and everest device model storage. (#846) a9382ec5 Adding ISO15118-20 dynamic mode support (#912) 5e967358 Fixed issue in EvseV2G and OCPP modules. The exiResponse is a required value in the OCPP type but its optional in the EVerest type. This could lead to the situation that the EvseV2G module receives an empty exiResponse that could lead to a segmentation fault. This commit only sets the exiResponse in OCPP when not empty and adds an additional check to EvseV2G to check if the exiResponse string is not empty (#961) 71c0ef5a Fix grammar and markdown format (#931) be977297 DC Power supply: perform mode switch only when it is on (#952) 23d3dc64 feature(OCPP1.6): forward VendorWarning appropriately (#949) 6fdb4720 Remove deprecated BSM powermeter module (#897) 421d18fe Move libcbv2g dependency before libiso15118 (#938) 798d621e Power supply off: send cablecheck as phase if switching off after suc… (#907) f5f9715d Use min/max phase on leave side 9fe4859d Fix(EvseV2G): [V2G2-691] Adding missing ReceiptRequired = false for EIM (#948) a4edcedd Made the evse_id and connector_id properties of OcppTransactionEvent optional, since the those properties are also optional TransactionEvent message in OCPP (#944) f55304ef Bump version to 2024.10.0 and libocpp to 0.19.0 (#950) 01dee7bf Refactor Energy Management integration of OCPP and API modules (#872) 2ec32d88 fix: removed duplicate file (#920) 1a162cc5 fix: support <ctrl>-c to stop nodered-sil containers (#940) 61c79dfe Implement changed callbacks for the network connection profile changes. (#850) 3ebd1afc Install ev-cli locally and depend on templates files for generation (#893) 1d312382 Use Reusable Workflow from everest-ci (#926) 55fbf4dd Refactor run-nodered script (#816) e3e14b04 Handle SwitchingPhases event in OCPP (#936) 562cf88c OCPP201: Prevent duplicate import Wh meter values (#916) 464a1ce4 Fix handwritten link for OCPP module docs (#937) ce3e9377 EvseV2G/IsoMux: check if if_name is nullptr (#925) b152b3e1 API: fix documentation for legacy enable/disable (#935) 11989a1c Bazel: set the compile flags for date also for the modules (#921) 1e06aaab Update libcbv2g to 0.2.1 (#933) a46ab61b Documentation for OCPP modules (#908) 61bfbd64 Fix 1ph3ph switching for schedules 85bd3b95 Update libocpp to v0.18.0 (#930) d2a087ec Fixed bug which interchanged number phases and stack level when conve… (#929) 25472a1a Adding tls key logger for EvseV2G (openssl part) (#910) a6867fdd feat: add support for new EVSE security API (#919) 36d2faee Feature/multi root trusted ca (#923) 2f9152f3 Introduce RequestCompositeScheduleUnit argument in OCPP module (#914) 780db3a8 Fix for providing powermeter public key (#924) b11c690b Hotfix umwc: send voltage change less often to avoid MCU crash (#911) 7cbca314 Allow EVerest to start even if the LEM module is not able to communicate with the device - in that case just raise the communication error (#917) 06038e42 OCPP: Handle ocpp::DateTime TimePointParseException (#892) 15a511b9 Fix(EvseV2G): Deleting an unnecessary reset when the contract chain certificates are validated locally (#913) bb6f2577 change to CODEOWNERS regarding PhyVersoBSP (#909) dce296f7 Fixed issue when recursively creating Market objects (#904) 544128e5 Published Auth timeout for one additional flow (#903) 8f8a6f73 Error Reporting via OCPP201 (#824) 6ae1c09f Fix signed update firmware conversion d34b04d5 Update libocpp to v0.17.2 73416bf3 Adjust codeowners for Bazel, Rust and PhyVersoBSP (#901) 1973b7ec Changed OCPP201 to address libocpp API changes for remote start and remote stop callbacks. The API change required the callback function to return a status for the operation (#890) b4f7d832 fix: TLS server certificate_sha_1 calculated incorrect hash (#902) d1eb9f2f RsIskraMeter/PhyversoBSP: Reduce verbosity 9913f801 Updated Error Handling docs of EvseManager (#899) 823a8cd0 Multiplexer module for ISO communication (#776) 7ae77dd3 Limit to ev_max_current/voltage if target is higher (#888) ab906c74 UMWC: ramp up voltage slowly f19861c4 OCPP&OCPP201: explicitly handle all cases in switch statements 5d87bd9f Raise CommunicationFault instead of throwing exception d0d8ecdd refactor(EvseManager): use std::optional instead of pair d7e0d614 Basic charging: use state F to signal error 3e7c82c7 dc_power_supply intf: Improve description 56d92b61 Remove annoying debug for DC c26999ca fix: API module; delay sending commands to EvseManager until it is ready (#856) 3d99f562 Beta release ISO15118-20 (#638) 4b18f46a Update everest-framework with a pinned node-addon-api version (#884) d7e53639 Remove old config entries of SlacSimulator in config-sil (#878) d64349b1 Updated Josev to 2024.9.0 (#877) d22db64c Make correct phase count available in API (#876) ce27c797 Bump version to 2024.9.0 (#875) 7888bed2 Bump cmake version to 3.16 (#860) f21ec2bc Lock connector in CP state B defined by config (#865) 5b2b4bd3 Feature/706 ocpp 201 california pricing requirements implement callbacks (#874) 65aa57b5 Adding Slac Simulator (#859) 17555a70 Extend OCPP security event with "critical" and "timestamp" parameters (#868) 7dde66b4 fix csms root ca default path (#873) 85ae9424 Registered time_sync_callback in OCPP201 module (#814) edb9b8f1 Fix LEM measurement error (#871) 0be3787f chore(clang-format) 60b301a9 feature(ocpp): transmit error message instead of description 57ed4baf Fix 0A in EV pause handling 45146159 evse_manager: Refactor error handling (#867) fd3bf0ff Make soft over current timeout configurable (#864) 97804501 Disable temporarily build of build-kit-everest-core image (#866) dd51ef03 Fix OC detection after wakeup and introduce 750ms X1 pause after t_step_EF cd1f60aa Integration of OCPP2.0.1 SmartCharging (#854) f763eb57 Bump actions/download-artifact from 4.1.2 to 4.1.7 in /.github/workflows (#861) 5e8371c7 Updates libocpp version to include MessageTypesDiscardForQueueing config option implemented in EVerest/libocpp#765 (#858) ddc580aa OCPP201: Fix reporting of energy_Wh_import_signed meter value (#840) 8676d43d EvManager: Move subscribe_to_external_mqtt to ready() (#855) 037a9be4 Fix lock guard usage with no effect bf48700d PhyVerso RCD errors and external stop button 0ffa681a Adding ev allow_power_on cmd call for AC (#851) a9a1bf83 Fix legacy wakeup for PWM charging 52bc897b Fix allow_power_on gets called repeatedly in case of active error 45b7a08c Added interface to provide access to /errors/genric 940c9201 API: make error history requirement optional 9d38af75 If LEM is returning from Communication Error, try to get its state id… (#827) de55afc6 Extending 1ph/3ph feature (#807) 18915ea9 Add generic error for auth, auth_token_provider, auth_token_validator e72f36d0 Added minimum requirements 38aa4ccb EvseSlac: Fix regression that NMK was not regenerated on reset e3eb4d97 Bump version to 2024.8.0 (#838) 67cd3920 system interface: fixes for `AcceptCanceled` (#826) c90c5ee8 feat: add optional support for TLS trusted_ca_keys extension (#778) bc76d84b Fix EvManager crash if not iso 15118 car was connected (#839) a19bce95 Fix module dependencies for libevse-security and tls libraries (#837) bee7af60 Bug/729 add remove variables and components from schema for device model (#822) bc84187a Fix locking in select_connector of AuthHandler (#833) 24444c07 OCPP201 module now uses connector_id of mapping of an error when calling on_fault or on_fault_cleared (#836) d0293452 bug(EvseManager): legacy wakeup aac5fba7 Commented out test case of Auth module that sporadically fails in the CI, even if changes have not touched the Auth module (#832) da0da548 Feature/376 ocpp 201 california pricing requirements tariff and cost (#768) 0e86d84e Update OCPP headers (#825) f4e273b4 Add documentation around error handling to EvseManager and OCPP modules (#819) 1cd809ce Fix the power DC mode spurious Import (#821) a889fb2e Signed meter data was not properly initialized when cleaning up a transaction (#820) 1460b535 Refactor docker images in EVerest (#770) 4c7b9f5f Release 2024.7.0 (#817) d0129aa5 types/evse_manager: document new Session Event enum `SwitchingPhases` (#818) efb8bdac fix: adjust location of openssl_types.hpp (#815) 665eb1d2 Various minor fixes (#813) e48e2245 Move thread spawning 'publish active errors' into ready function (#810) 82ddc583 Update docker compose syntax (#811) 4e4436e4 Fix std::bad_optional_access in EvManager + correct initialization of actual_bsp_event (#805) 6f9958e7 Detect during startup still open transactions in LEM and allow to gra… (#806) 4b5497cb Merge pull request #802 from EVerest/fix/rm_emtpy_folders db38a5a7 Merge branch 'main' into fix/rm_emtpy_folders f720edb6 Feature/evsemanager persistent transactions (#789) 2452ed71 Feature/evsemanager ocpp errorhandling (#764) 07728495 Merge branch 'main' into fix/rm_emtpy_folders 84e2d10a DC Power supply: Add charging phase information 65ba0a01 feat: use hex digits for SSID (#784) 0ba81d8c Merge branch 'main' into fix/rm_emtpy_folders 31451338 Avoid creating empty folders in /etc/everest e4b30fac Refactor iso15118_charger interface and types (#783) 4f90a844 Fix(EvManager): cmd "iso_wait_for_stop" now works as intended (#800) fe3b3d58 Update config-sil-dc-tls.yaml (#798) f6b74763 Remove get_hardware_capablities() and 1ph3ph switching support (#769) 5abfee9b Show simple timing statistics for DC (#777) a874d21e Enable compile warnings (#728) b4563808 Raise a CommunicationFault if we can't communicate with the LEM modul… (#790) db4389b3 added set charging profile callback in OCPP201 (#793) 466c60b6 OCPP201: Add trigger_reason argument (#787) 131a192f OCPP201: Implement security events over the generic ocpp interface (#781) c2ef7099 Add "Offline" value for DataTransferStatus (#788) 21971ce5 PhyVersoBSP: Keep alive, config rework, RCD handling (#771) 240c83f9 bugfix: the major version of LemDCBM should be the components[0] instead of [1] (#779) 7d02eb70 fix: everest_api/evse_manager/cmd/force_unlock to also stop any transaction (#786) 363e287f fix: event PluginTimeout to trigger State::Finished in API module (#785) 40e4fb5f Upload unit test logs (#751) 23516dad bump libocpp version to 673bc5bf5db3a02d03f4f06cc2d9a575cbe53f39 (#782) 4b13b10c OCPP201: Publish websocket connection state (#775) b2ea2fea Added OpenSSL server that supports TLS certificate status request (#677) 372906ec Fix(JsYetiSimulator): 0 kw charging if pwm duty cycle was set to 5% (#773) 41bed1f9 Fix ev-cli version check if not using venv (#772) 6fc6b84f EvseManager: Wait for initial meter value (#765) e1a4ad24 Adjust bazel to allow users to import everest-core in their bazel projects (#737) 11e8b3f2 Charger: Fix soft over current detection when PWM changes often (#762) eb5cbc46 Added temperature sensors values in Powermeter (#755) 83aff381 Make change to the libocpp interface for the device model set variabl… (#732) bae72ef6 SerialCommHub: several improvements (#731) 59269a7d Fix stoi exception in yeti fwupdate 7183fa4e Add warning to verify IPv6 ll address if bind fails 20777957 Bump libocpp version to 0.13.0 (#761) f1c15e9b Add python3-venv to packages that need to be installed on ubuntu 22.04 (#754) 81e18355 Charger: Transition to PausedByEV if EV does not start charging after wakeup (#757) ca900945 Fixes for DcSupplySimulator module (#759) 40f62a97 Perform ev-cli setup in ev_add_project() (#752) a0f1cf1d Adding EvManager (#643) 8c129e68 Adding powermeter interface to DcSupplySimulator (#758) 80a477f7 Fixes stop & unplug not working after iso pause & resume (#753) da9c1cba initiate DEAUTHORIZED event in OCPP201 in case reason is StoppedByEv (#748) 35bc83d3 Update version to 2024.6.0 (#744) b76fcbb8 Update everest-framework and libocpp dependencies (#745) 7b54f73e YetiDriver: Fix events on start up (#747) 65a8cee8 * Added handling in Auth handler to only trigger validation callbacks when it is useful (#734) 1c122f9f Update CODEOWNERS to have at least 3 CODEOWNERS per specification (#738) f758fcdc Adapt CableCheck to IEC-23(2023) (#720) 4bd70e14 Removed Ubuntu 20.04 support from README.md (#746) b59cfed7 Properly stop OCPP 2.0.1 transaction if reason is ImmediateReset (#736) 65b8e2c1 Bazel: read dependencies.yaml on the fly (#699) 54848fd0 uMWC: adapt driver to new firmware (#723) 50f73322 feat: move test stub to common directory so other modules can use it (#739) 2ba94912 Config option: Limit to 10A in simplified mode (#742) b68f0d93 Check if the ev-cli target has already been defined before adding it (#743) 3213f4ff setup_ev_cli should not return after find_program (#741) b8451781 Fix find_package call for cbv2g (#740) 42248d85 Feature/bsp stop transaction (#733) 10ee8822 Switch to libcbv2g from openv2g (#563) d4257933 Refactor CI Workflow (#701) 951e592a GenericPowermeter: improve logging and fix Modbus range (#730) bbce3e17 Remove THROWS from (#713) 6d67d7e7 Fixing empty string in EvseSecurity config (#708) b11e1e3f * OCPP modules subscribe to EVInfo to retrieve the SoC from the evse_manager (#729) 74f7f298 Add version information (#622) 7924eb8c Added @corneliusclaussen to /cmake/ and @maaikez to /modules/OCPP/ and /modules/OCPP201 (#727) b70f595b Add some error-framework features (#726) 14aa49ef Fix(EvseV2G): If AC is supported, DIN70121 is no longer falsely selected 22b7454b SerialCommHub: RTS/CTS support f78c9f13 YetiDriver: Add override max current setting bc621a7a Bugfix/publish charging schedules on startup (#718) 648b38d3 Auth: Notify Evse also when authorization is rejected (#698) cc014c24 refactor: correct include order b47f9bf0 bug(EvseV2G): use correct enum type 6c57d236 refactor(slac): remove dead code f166b8d1 Removed line in IEC state machine to set pwm off when in state F because that actually reverses state F (#714) 05c45c84 EvseV2G: Changes to EvseStatusCode (#712) 539cab19 Adapt error handling in JsYetiSimulator to recent error framework changes (#710) b22d74a1 Fix incorrect sentinel value in YetiDriver 16d41621 Extend PhyVersoBSP with PpState, Temperature and OpaqueData (#687) cc8f1aa8 Add workflow to do dco check, since github app is not working at the moment, but blocking all PRs in everest-core (#707) f73620c4 Fix EvseV2G: Prevent interger overflow after reading v2gtp message length (#706) 1f9433d9 Update version to 2024.5.0 (#689) 498478a4 OCPP2.0.1: Initiate TransactionEvent(Updated) when Deauthorized and TxStopPoint==[EVConnected] (#704) fd34de72 Updated documentation of Auth module: (#683) 571f3d43 Add source to enable/disable commands/events (#505) 177a8e62 Add timeout to token validation status (#703) 54ea32be System: introduce ResetDelay config option (#691) 8c4a1ae3 SerialCommHub: debug/logging improvements (#697) cbea82ce OCPP: implement set_system_time call back (#695) ac53aa37 Removed enabling of EVSE on startup (#700) cd5e64e0 A modbus error response is defined as <SLAVE ADDR><ERROR_CODE><EXCEPTION CODE>. (#702) 4cc17398 Fix publishing of DC_EVMax values (#696) e5787ef2 Simpler power supply dc interface (#661) 33233a48 EvseV2G: Adding EVSE_Emergency_Shutdown handling (#694) 932b5564 Yeti driver: fix typo in error 1aa886b6 Merge pull request #685 from EVerest/feature/udp-tls-secrets 892f4e29 Sending the TLS session key over a UDP message 482096a0 Adapt to refactoring in everest-framework (#678) dd4b38e7 Moved conversions of EVerest to/from libevse-security types to lib/staging in order to be able to use it also within other modules (#686) 2c28b841 Updated deps (#688) e8ec2c4a Phytec PhyVerso BSP driver (#648) 3a4897df Disable autocharge by default 43cccb62 Charger Auth state: Add some more warning logging 86c9131e Added OCPP BootNotification event to ocpp interface (#666) 966328aa Use correct hashes for libocpp and libevse-security (#680) 280ad88c Move third-party/bazel/deps_versions.bzl entry to bottom of CODEOWNERS (#681) 888aecbf Bugfix/66 graceful crash handling (#665) 1e58e40a Updating fedora version (#679) c11fc739 Do not publish charger information at all when it is "null" (#676) 4fee565b Bazel: choose tags or commit, when parsing dependencies.yaml (#654) 69dc99d9 RsIskraMeter: Remove env_logger dependency (#675) ef28a806 Enable DIN70121 by default cc584b08 Remove left-over references to SunSpec library and modules d71bc438 EvseManager: Fix bug where HLC is not stopped on unexpected CP state (#669) 993a60c0 Adding EnergyTransferMode type to iso15118_ev, toogle becomes toggle and external car sim mqtt enable call string set right (#667) 417aa3c8 Added exception for /third-party/bazel/deps_versions.bzl (#670) 1d0e469c added master pass conversion to tx-event DEAUTHORIZED (#671) b4194c8c Refactored OCMF powermeter transaction handling (#640) 06462878 EvseV2G: Fix incorrect matching bug in ServiceDiscovery (#662) 86ff4fb4 Bump version of used github action run-clang-format to v1.1.0 (#657) f1ad5ccf Update everest-framework dependency to 0.13.0, bump version to 2024.4.0 (#652) 45e20ba4 DC Powersupply: allow runtime update of max current/watt caps (#646) 7ec8da91 Fix simplified charging with waiting for energy (#650) d888a885 Removed websocketpp dependency. (#631) be8be808 Use the system provided sqlite3 for SQLiteCpp (#637) b7c70a0e Changed cipher prio in EvseV2G (#647) f3d6a56f Adding auto_exec_infinite config. Now you can choose whether the cmds should run once or infinitely (#641) dfcd0772 Bazel: Support bazel build for essential modules (#559) fb247079 Codeowners: adjust ownsers for Cargo.lock and Cargo.toml (#642) a504f689 Changed OCPP modules to use new sql migration paths (#628) 428758a7 Update everest-framework for Rust (#639) b84433d1 Updating CODEOWNERS for lib folder (#636) 4d270c9e Adding the JsEvManager as a JsCarSimulator replacement (#549) c1144618 Using host mac adress on the ev side (#635) c596544a OCPP1.6: Add IdTagInfo to transaction_updated callback (#632) 569cbd20 added meter value to SessionFinished type (#634) cdc13628 Rust: Use logging from the framework (#629) 74eed73b Bazel: Allow importing Rust modules into user workspace (#630) 1b494820 Refactor/use from to json (#469) 7480d349 fix: address mutex deadlock in state machine (#627) 031d028d OCPP2.0.1: Configurable TxStart and TxStop points (#611) 07f25b5e Fix unchecked optional access in Charger.cpp (#626) c6c1dd17 Various custom data extensions (#605) 8998cb71 RsPaymentTerminal: initial commit (#589) 3b155168 Yeti: Fix LED blinking in FW (#621) b135d383 Added charging schedules definition (#582) 8b52d9fc fixed headline (#607) 67ab41da RsIskraMeter: Recover from "stuck after power lost" scenario (#623) 9ce24d57 Adding start and stop transaction powermeter cmds to the JsDCSupplySimulator module (#625) f2548ee8 Remove unused libsunspec dep (#620) 75cc2470 Fix: Allow to link against GCOV (#614) 70d11368 Support starting transaction in EvseManager (#573) 70181d29 add at least two CODEOWNERS for each specification 0fb13fd0 Bazel: Update boost to fix XZ issue (#618) abd90414 Bump libocpp and libevse security dependencies (#616) f836cd53 DummyTokenProvider: Add connector-id config option (#617) 3d2b0011 Add QCA chip reset, Link detection, Version information (#599) 46aab34c Provided fix if both payment options are disabled in the EvseManager (#597) c2845151 EvseV2G: SDP bind only on one interface (#615) 2539f6dc bugfix: disable non-necessary tooling for sqlite_cpp (#613) 61be12a8 Use GPIO lib for reset GPIO, clear errors only if they were raised (#602) 91f219cf Remove unused config param CertsPath from OCPP modules (#600) 058478e4 remove deprecated modules and libsunspec lib dep (#604) 79121d46 fix: EnergyManager to select limit taking into account time (#610) e3a6d05a fix: parameter needs to be pass by reference rather than value (#608) 3098c616 libgpio: fix description 3214ec54 Add probe_module.start() (#606) d90d9250 Feature/add error history module (#447) a5e4173d EvseSecurity module documentation (#591) 1ab671eb Fix YetiDriver and include binary firmware image. (#595) 3b0ea32a Reorder and update dependencies (#594) 0c89b9ac EvseManager attempt to address errors seen with clearing events (#590) b1c9c4f9 Support for OCPP2.0.1 Plug&Charge (#588) a8408d3e Rust: Export EVEREST_CORE_ROOT from CMake (#592) 7a4aa611 fix: not all SessionEventEnum mapped to SessionInfo::State (#593) aed024ba RsIskraMeter: Initial commit (#580) 7c2a7191 Run unit tests in CI (#587) 5e5e7709 Fix unit tests (#585) c144d56c Updated interfaces (#586) 6b8a26e6 Implement get_variables and set_variables in OCPP201 module (#584) b172bb0b Feature/random delays (#530) 8cc7da81 GenericPowermeter: add new model Klefr 693x-694x (#560) 55416be6 Support for groupIdToken and MasterPassGroupId (#577) ae73fdd3 Bump everest-utils version to v0.2.1 (#581) 093f736b feat: add MQTT topic to publish OCPP transaction state and ID (#569) 42b11f09 Fix Price type in money.yaml file (#570) b47d502e Add issue and PR templates and CODEOWNERS file (#564) 22edddde fix bad optional access in System module (#578) c62ac2fc added proper reason within on_transaction_finished (#576) 2a4a8fdf Restructure OCPP and OCPP201 modules: Moved conversions (#561) 00cac353 Add ISO14443 id token type to token pblished by PN532TokenProvider (#571) a6e7ad88 Fix connector remains in plug_in_queue, although it is plugged out (#568) 8ec5656c Added missing cstdint in WifiSetup (#565) 3970ee3d Release 2024.2.0 (#562) fc986b96 Setup module to support WPA3 Wi-Fi networks (#555) e013817e Make gtest source dependency conditional on building testing (#557) 9b66f996 Add SignedMeterValue type powermeter types (#461) 616f3fe4 EvseManager: fix legacy wakeup 474e1d66 EvseManager: Fix 6s timeout in C1 84c3eb38 GenericPowermeter: add new model Eastron SDM630 V2 (#554) 6064b268 Adapt unit tests (#528) 21930bb5 Fix build on platforms which require libatomic 415b1646 SerialCommHub: support longer transactions, chunking and single register writes (#535) 5e589da0 Bugfix/no wifi related tasks when not enabled (#551) 2456abb4 added transmission of boot reason to OCPP module (#517) c5e277c0 Bump josev to 2024.2.1 release (#553) 67d2022b OCPP1.6 module: Now publishing EnhancedChargingSchedules (#547) ababee91 Bump josev to 2024.2.0 release (#548) 3aa13b65 Merge pull request #546 from EVerest/bump_libocpp_version 81742d58 Bump libocpp version f27a86ac Fix forced unlocking (#542) b0c350b9 Charger: Fix relay welding handling a0ab83e8 EvseManager: fix missing include in backtrace (#543) 6929cd75 DCSupplySimulator: remove designated assignments 164bcbc4 bump libevse-security to 69410a8 (#541) e6ad17fb Transition to PrepareCharging after WaitingForEnergy 51a674f0 Fix DC full power on reason and shutdown in PreCharge bf7aa77f EvseManager Charger timed mutexes, cleanup (#526) 3d4792cb Add tests that simply run all (SIL) configs in everest-core/config (#437) 49ea0bf6 remove obsolete `rcd_enabled` config variable (#534) 99b066aa EvseV2G: always assign GenChallenge and EVSETimeStamp in PaymentDetailsRes (#533) 1c873e5c Fix conversion of EVerest to OCPP KeyPair type (#531) d40971c8 Update rust examples (#515) dd3f4c5c Move PyJosev to deprecated folder (#527) 686e782c Support for conditional dependencies (#497) e2ef1a1a Fix connector lock unlock too early before relais open 0830b6a2 Rejecting OCPP1.6 reservation for connector#0 (#520) 0ef30473 Release 2024.1 (#519) 76f6671a Improve car manufacturer detection for Tesla c1c8a120 Fix OCPP compile warning, Setup ev-cli bug 4d2c6dcd EvseManager Charger: simply locking (#511) 15458aa1 Merge pull request #507 from EVerest/feature/certificate-links 331d0ebb Added support for extra GetKeyPairResult parameter d406d033 EnergyManager: fix memory bug when multiple Nodes are used 5019e942 OCPP201: Set Auth connection timeout based on EVConnectionTimeOut (#500) e1bfa0aa IMDSimulator: Add C++ simulation module 3b6a044b DCSupplySimulator: Add C++ simulation module e2077b7e fix: remove redundant files (#506) 17542791 Merge pull request #504 from EVerest/jc/enhanced-wifi-setup 8752531c feat: added optional arqument to MQTT to connect to hidden networks 8025fcae feat: support connecting to open WiFi networks feat: support configuragion for connecting to hidden WiFi networks feat: simplified specialising WiFi setup fix: refactored WiFi config code to separate class fix: added some unit tests b49a8535 OCPP201: Support for TxStartpoint EnergyTransfer (#501) 1b5992a0 Bump libevse-security to v0.4.1 7ffd0ab7 * Removed handling of operational states of components (ChargingStation, EVSE and Connector) from OCPP201 module. This is now persisted and handled inside libocpp * Removed kvs requirement from OCPP201 module because it is not required anymore to store operational states * Calling on_enabled and on_unavailable as part of connector_effective_operative_status_changed_callback to synchronously update the state machine in libocpp. Async updates using Enabled and Disabled events lead to a race condition on boot and could result in StatusNotification.req that are not up to date 9a4de02e adding default IdTokenEnum::Local in case id_token_type of ProvidedIdToken is not set 13b2e9ce Adjusted changed argument type for reason of on_session_started from string to ocpp::SessionStartedReason 903d5044 Update API state and error handling to new error framwork (#496) f1a0a9fe clang format d8623a87 bump libocpp version to 990e3bc 4e994769 added all error values to get_error_info function ae8ec39a Fix RCD error in sim commands 9e182a98 new flow f834b231 introduced ErrorInfo struct in OCPP module in order to map EvseManager and MREC errors. Use additional error information and supply into libocpp API d7ae11f0 fix init order 88e43803 Add extended error enum type to evse manager 4de642ec Update error enum f9688188 bump libocpp version to 8114bce dc0bf99c * changed type of id_tag of TransactionFinished and StopTransactionRequest types from string to ProvidedIdToken in order to be able to use the additional data * refactored Auth, OCPP, OCPP201 and EvseManager module by adressing the type changes 90b74fd3 Fix direction of message codec 6c3e62c4 Support for tpm CSR request (#489) d0c77e08 Some DC fixes (#481) 6baeb91c Interfaces change to support bank-card payments f4d0c494 * Remove dependency to iso15118_pip_install_dist, since it isn't needed in most cases (#475) 4acb5ae4 Add powermeter transaction error type, clear on unplug 26ac0ea0 Add additional information to SessionFinished events (#483) d24b64fb Address review comments 740da254 Update modules/EvseManager/Charger.cpp e194737f refactor BSP interfaces b9c36fd8 OCPP Module / Generic OCPP interface: Add command for internal availability change request (#484) b134559b Readme: Changed config file from json to yaml (#458) e62e2c97 Bump libocpp (#480) cf68de55 Queue up session events in OCPP 1.6 module before initialization c3cb061d Fixed typo c5c12162 Set external_ready_to_start_charging: true in second evse manager 085406e2 WIP: First draft of an additional evse manager ready signal 8b6c365d bump libocpp (#477) a82764df Fix legacy wakeup sequence 552c42b5 Add capabilities to module documentation bbbb13b0 Add libcap dependency to README.md 044b42a6 allow B->C transition in waiting for auth 8fc5e80e Proper shutdown of the TCP connection (#453) 774b599f Fix RCDDC error mapping (#474) f270e33f feat: Add configuration option to delay message queue resume (#456) 3828a61c Extend API with enable disable cmd (#460) a4465e3d Increase TLS timeout for really slow EV implementations (#466) 4e5f00a0 add sorting to get_variables OCPP interface command (#468) 7b1e846d Add generic OCPP interface (#463) 83b3da0f API: Fix documentation (#467) 7b78489d Add integration tests that check cpp framework error handling features (#446) 867f83ee umwc: Add config option for max voltage 6b1778cd Start up charger in Idle instead of Disabled 5be1ef7d Implement ocpp_data_transfer interface in OCPP201 (#448) bec9950e Add a log print for individual EVSE ready signals (#457) 424badd5 Fix cmake option -DBUILD_TESTING=ON (#462) 2cf898cc Fedora 39 is working out of the box. Remove fedora 36 because of EOL (#455) bb91cfed Bump ext-switchev-iso15118 version (#452) 54dd8f4b Refactoring iso15118_charger interface. (#426) 1c1cf2f5 Throw outside conversion switch/case to pacify compiler warnings (#451) ba37933e Add link_type to NetworkDeviceInfo bf49d6bb Only populate mac address if it's available 0980aa29 Stopping the charging process via the EVSE (DIN) now works 65177fe1 doc: how to activate `EVLOG_debug` for one module (#450) 52a1184c Add command to system interface to explicity allow firmware updates (#422) e52b21bd Minor fix to out-of-tree support (#444) fee0d880 Fix generic powermeter config (#439) f0e99e10 Add additional checks for optional values in API module (#438) dfb2ea5a Move OCPP data transfer into a dedicated interface (#433) 7bbf5ff1 Extend example by Py modules (#434) 977f75bf Merge pull request #435 from EVerest/refactor/libevse_header_refactor 8933a53b fixed evsesecurity header dependency c9fda2e0 Retry PP reading. Some BSPs may not have that value immediately after plugin. 9b99808a Feature/publish token authorization status from auth module (#401) f50d1037 Extend example by JS modules (#431) a2282dab bump libocpp version to a008911 d7736c8f Remove deprecated RiseV2G modules 4dca403c enable/disable run script generation option (#429) bf837755 Add missing find_package for ryml c81bc6a5 Improving start of charge performance for AC BASIC charging (#424) 07cde6e7 Add missing find_package for CURL (#427) 4a187c0e Extensions for API and Setup module (#403) b7a71dd0 Rust: add config support (#418) 38efa235 Fixed memory leak in Persistent Store module b0908b30 Schedule CI 2 times a day on main 23abc2a6 Improve build and test workflow (#419) 6876ecf7 Fix Generator expression for building rust modules (#417) 47390051 Add nanopb to exported targets 56ef61a4 Added missing cmd handler to PyJosev (#416) f9f7a8ea First example of a Rust module implementation (#344) 3ed4664c Publish configured networks regularly (#414) 74e613cf Update dependencies and increase version to 2023.10.0 (#413) da8e936f Supporting SAE J2847/2_202309 BPT: (#357) 83253460 Publish real AP state based on if hostapd is active 1d4ae20c EV-314: Add install/update request handling to OCPP module (#395) (#409) 564e18cf now validating v201 ws connection URI in OCPP201 (#408) 7168115a Update required ev-cli version to 0.0.22 (#411) f8732832 using persist flag when operational state is changed (#407) 36fd610c Feature/error handling (#284) 02b4a7e4 Add option to disable auth in EvseManager (#410) cbc0ba01 API: prevent iterator invalidation 8336691f Only subscribe to firmware update status and log status once dda60db9 added security dependency to EvseV2G 138b9db1 started to include EvseSecurity into EvseV2G module 7376b5c8 Add legacy wakeup for PWM basic AC charging as per IEC61851-1 A.5.3 8a51d987 Add verify file signature command to EvseSecurity module (#402) 5962e429 Update dependency to everest-framework to 0.7.1 and require ev-cli 0.0.21 fb9baa64 added support to report and consume security events from OCPP1.6 ae556b65 Use std::holds_alternative instead of index to check variant content 619b8786 Updated Josev to the recent commit a36ad751 Publish logging path over API on session start b7248cb0 Publish selected protocol, HLC log to API Add MAC address to network device info Track and publish AP state Publish charger information eac804ad Fix PacketSniffer module crash on fast session restart 4f5ab983 added BootReason to system interface and respective logic to System, OCPP and OCPP201 modules c67bec50 added FindFirst selection to Auth module. This is also the new default and all configs are updated. The FindFirst selection algorithm will still respect PlugIn events but in case no EV has been plugged in it will simply provide authorization to the first available EVSE when there has been a ProvidedIdToken that refers to multiple EVSEs. 56a9ff27 added pnc option to nodered 72491c55 added pnc config and adjusted nodered two evse flow 4e6556cd sending correct trigger reason in transaction statred based on the previous session event 4d5d8e8c Fix AC discharge current limit f8e1bf11 Fix max number of trading rounds reached when using OCPP charging schedules 1019f1b8 adjust lem module headers 91c10893 Update libcurl and everest-framework (#386) 69e7a1c4 added persistent store module to ocpp201 sil config (#385) 17166a3f fixed bug by not accessing L1 but DC in get_power_meter func de11b9b4 OCPP persisting states during Reset (#381) ee2ca205 changed charging state on transaction started to EVConnected f1b10ff1 move constructor of chargepoint to be able to handle cmds when init is done fa88aecc re-enable building with `clang` (#382) 93331bd9 EvseV2G: fix runtime bug passing non-trivial type to variadic `dlog()` macro (#380) a9fb04aa LEM DCBM 400/600 Module (#349) 388405b6 Support delay for CM_ATTEN_CHAR_IND (experimental) 1d97d023 Fix dlink error handling df1ac0ae Fix charger state machine if certain events come in very fast succession 4769091e fixed conversion of certificate type when calling call_generate_certificate_signing_request 9de06ab7 Update everest framework to 0.7.0 (#373) c0777023 now initializing evse ready map in ocpp modules f4126c39 do not check power limit with maximum voltage but actual voltage 9e369e63 Increase version to 2023.9.0 (#370) f1e74fc5 Update dependencies in preparation for 2023.9.0 release (#369) 6c9055b8 EvseManager now signals ready when its ready function ends and OCPP1.6 and OCPP2.0.1 modules wait for so this signal before starting up (#367) 9ded9a72 modules: fix `printf`-format for "Yeti SW version" (#363) cb032ae1 Added EvseSecurity module (#337) 6725dd3c added default case for fw status conversions (#366) 5a22bf58 Generate and install certificates for OCPP by default (#364) 961f93f9 * Applied interface changes of evse_manager for separation of evse and connector in OCPP and OCPP201 * Moved start of OCPP16 to ready function 9002898e bump ocpp version 99abfc6a added proper conversion of fw status notifications 887eac74 Add EVEREST_INCLUDE_MODULES cmake option to only build this list of modules 12acb0a0 Replace Js variants of dummy auth with C++ modules b2853c90 changed config path for OCPP201 DeviceModelDatabasePath a6ccd5a0 Don't build tests in `./lib` by default fe1e8371 Use std::filesystem in PersistentStore module (#348) e5d84348 Remove hint to use cmake -j, because there is no option -j in cmake to speed up configuration d8c0ef84 Not calling any event handler while OCPP1.6 is stopped (#353) 87f6c062 Updating README.md packages list (#352) 9e47be25 DPM1000: add external discharge resistor control via GPIO 78bffe2c add additional error types to BSP 55eea704 Remove RiseV2G repo from project and move JsCarV2G + JsRiseV2G modules to deprecated (#351) 2f48ca8f * Extended OCPP16 interface by adding functionality for custom configuration keys (#345) c3f8a29e Adapt Powermeter Interface + related Types; adjust concerned modules 460c2ffa added plug in timeout within evse manager and OCPP1.6 6dbc1443 implemented get log status and update firmware in OCPP201 0b5de4a1 Add callback for pause charging and some stubs so libocpp does not crash when calling them a2fc0e26 removed get_id command from evse_manager interface and added get_evse command to retrieve the id of the evse including its connectors. Added required adjustments in Auth, OCPP and OCPP201 922a87c0 added connector_id to evse_manager.yaml interface and adjusted the respective commands within the modules that require this interface a84b51b6 added change of powermeter interface to JsYetiSimulator a6fbd8d7 Refactor powermeter signed meter value interface a1857f2b Update libocpp dependency, increase version to 2023.8.0 (#336) a1788848 Adapt to EVerest/everest-utils#76 (#331) fbf976b3 MINOR: Typo in evse_manager.yaml (#335) 220dcd70 reduce umwc to 1000V 8a9c6960 clang-format 7702554c clang-format 173f8506 always trigger DC power supply update when changing between charge and discharge 8011a951 Publish hostname over everest_api 7084c989 Add option for low power DC charging: deal with cars that request integer ampere values 85d75378 hack BPT: allow starting with discharging 6b27c0c2 fix handling of external limits via API module 529dff4c Use more digits for physical value types to charge faster in low power applications cdf65603 DC: Use actual voltage instead of target voltage in current limit calculation cc171bd9 EvseSlac: log NMK d084d647 Change OCPP2.0.1 module callback signatures (#322) b21f32c8 Update dependencies (#318) 78467cad service name string length was not initialized which causes EXI encode errors if it is not 0 by sheer luck 947d6e88 Change logging of write commands from info to debug (#321) ad5b1bf1 Switch R_P and R_N to R_F (#320) bf2de55b Fix issue allowing deauthorization with invalid tag with valid parentId (#315) cf9e0dcc added ChargingStateEnum to on_transaction_finished in OCPP201 and bumped dependency (#319) 4ed45be0 Switch to custom container action for linting ce2025a7 power off DC properly in case of errors 9992e8d3 Add linting ff431da6 Fix format d8eb671a allowing external control over the websocket connection of OCPP201. Will be used for tetsing 42859dfc Use larger github runner and run on pull requests 8864d658 Fix parity option (#310) 274c685f enable SLAC retries with T_step_EF if EV does not wake up on B1-B2 after evse pause resume d86538e9 make flags to end session/tcp connection atomic be97920f Close TCP connection after dlink_ready(false) 4e48e51b Remove minProperty from type message (#301) 1de84afa Adding hlc sleep mode and some minor fixes (#305) d4a60372 added on_charging_state_changed callback and charging_state to on_transaction_started in OCPP201 module 959ec10a Fix workspace setup in README (#304) a75d73ab refactored error and fault handling in everest-core by extending error type and changing error enum and refactored respective modules accordingly dfe28df9 changed type to authorization_type in nodered flow! (#297) 158ed65f Fix typos in yaml: minumum -> minimum (#300) db8f866f Added OCPP201 callbacks for network configuration validation and configuring (#299) abea71be EvseV2G: Make the condition for loading root certificates more readable (#298) 43fab859 Fix startup tests (#287) 0f307e81 fixed: lock_guard was not created correctly 2a6bf32b bump libocpp commit bump Josev commit 2686d2f8 clang-format 33c4f349 - added support for remote start callback in OCPP201 e7ad0c56 Setting the voltage and current in the dc car sim is now possible 4f934c61 Fix a bug when OCPP requests a completely empty schedule 4051c504 EvseManager now signals Enabled event when ready (#286) 95ea600a Removed EvseV2G config option highlevel_authentication_mode (#289) 2d55fc82 Use new on_transaction_started signature in OCPP201 module (#285) 6c4415db Move module docs: docs/modules/<module-name>.rst -> modules/<module-name>/doc.rst 63681e4a Fix negative watt values in api set_limit_watts 6260d971 added config param DeviceModelDatabasePath to OCPP201 module and using this inside charge_point ctor cea722eb Allows to set a TX/RX GPIO for RS485 communication. da148215 Add data transfer to ocpp module (#281) 36b708e1 Unified ev_add_module and module sub-folder support e649250e Removed C_EV_PARM_REQ_RETRY 046204fc Add discharged_energy_wh to API (#272) 581df79f query DPM1000 less often to reduce load on CAN and MQTT 14cf691c EvSlac and slac fsm refactoring fcf063f6 Fix PEM encoding of contract certificates ff425e41 Bump dependencies for 2023.6.0 release (#273) 1bdf08cc fix powermeter.power_W is optional 576601bf Improve error handling in basic charging 4b4d4981 Fix josev dependency for main cfbc650b Request minimum current in PausedByEV state df19a4a4 EvseV2G: Do not stay long in authorization loop 452e98bb Adding the PyEvJosev module to replace the JsCarV2G module c3142211 Driver for SCU Pow…
* Add option to allow security level 0 connection in OCPP 2.0.1 Signed-off-by: Marc Emmers <m.emmers@alfen.com> * Add warning print in case we do use security level 0 Signed-off-by: Marc Emmers <m.emmers@alfen.com> * Update description in json Signed-off-by: Marc Emmers <m.emmers@alfen.com> * Skip profile instead of crashing when invalid Signed-off-by: Marc Emmers <m.emmers@alfen.com> * Add throw if all profiles are 0 since we would never start connecting anyway Signed-off-by: Marc Emmers <m.emmers@alfen.com> --------- Signed-off-by: Marc Emmers <m.emmers@alfen.com>
2ea181e6 Update everest-sqlite to 0.1.4, libevse-security to 0.9.9 and libwebsockets to 4.4.1 (#1143) c7f77717 fix(ocpp2x): Fix String too large exception (#1142) e77384dd Bugfix/typo in log messages raw (#1141) f6299194 fix(ocppv2): Fix GetCertStatusCallback to avoid uncaught exception (#1140) 3762400c Add raw message logging (before parsing the message) (off by default) (#1139) 6257696b Removed misleading TLS logging (#1138) 157ba65d fix: StatusNotification timestamp is updated to represent the report time (#1130) cce4fe38 Free memory allocated by strdup at the end of websocket init (#1134) 9ee949e3 Add missing override keyword, fixing compiler warnings (#1133) e13949fc fix int to string in throw (#1132) 098cf786 fix(ocpp2): Fix crash on missing nullptr check on tx start (#1127) 3c6e1be6 fix(ocpp16): Make UnlockConnectorOnEVSideDisconnect RO configurable (#1126) 0d300acf Change log from INFO to DEBUG (#1124) 13752fcf fix(ocpp16): Send invalid fw signature security event (#1125) 9c8ec21f fix(v21): Rejected response for NotifyAllowedEnergyTransfer (#1116) 5c75287f feat(ocpp16): add ISO15118CertificateManagementEnabled configuration option: (#1123) 7288e3fd fix(ocpp16): Set the correct websocket connection options after upgrade (#1122) 54d27c52 fix(v21): Fix V2XChargingCtrlr variables (#1114) 617d71fb fix(ocpp16): Configuration key fixes (#1120) c18eab18 Update dependencies, bump version to 0.29.0 (#1118) cf046127 Fix: Composite schedule calculation for connector 0 (#1112) 6f6b26ac fix: update OCPP 1.6 configuration via a separate file (#1113) 89c7b62e fix(generator): Fix generator for required arrays of string enums (#1115) 6e72da5f fix(v21): Removed NotifyCRL and NotifyQRCodeScanned as they don't exist (#1111) 5cb564a0 Feature/ocpp21 smartcharging support (#1110) 1d2ce8db Using correct default price texts if online / offline. Before this change, the DefaultPriceText.priceTexts[n] was used, although this configuration key is only meant for the non default languages as a backup (#1103) bc6ecb29 Add helper methods to set common charge point data (#1026) fd65ff84 Bump versions of liblog and libevse security (#1108) 0b84d7f9 Fix json exceptions being thrown during handling of invalid messages (#1107) 057cf3fb Stopping ping timer when connection closed or failed. Closing connection instead of calling reconnect() on a pong timeout. User application logic will trigger the reconnect (#1105) a0a99069 Bugfix/websocket ping pong (#1102) 668cc39a Catch and aggregate missing required variables in DeviceModel (#1091) 012eb14c fix(v2): eventNotificationType made optional NotifyMonitoringReport (#1099) f31f7d28 Refactor: Device model db initialization and cleanup (#1100) 7b4ba2c8 refactor(OCPP2.x): Adjustments to device model (#1093) 7c9d31e9 Fixed update of OCSP when a new certificate was installed via DataTransfer.req . Timer is used to schedule the update, because handle_data_transfer_pnc_certificate_signed needs to return in order to not block the message queue (#1097) 663f5977 Fixes for security interface updates (#1095) 7c90aa2f refactor(OCPP1.6): OCSP cache updates (#1094) 715d508e bump to 0.27.1 (#1092) bd1015bd Fixed issue in V2G CSR generation, where getCpoName().value() always evaluated and could cause a bad optional access (#1089) 34e83e1c Fix EVSE struct initialization in handle_unlock_connector (#1087) c76f5ef1 feature(ocpp16): Authorize response waits for set user price (#1065) 70556eb9 Let set_variable_attribute_value return SetVariableStatusEnum, not bool (#1066) 8df1ee20 refactor(ocpp1.6): Composite Schedule calculation (#1062) 7c632dd2 fix(ocpp16): Reset fw/log status' to Idle after success and failures (#1064) 0cbb27a8 fix(ocpp16): Security events for invalide CP and CPMS certificates (#1061) 6d954818 Bump version to 0.26.3 and libtimer dependency to 0.1.2 (#1060) b19c9696 fix(v16): Removed security event on firmware installed notification (#1059) e305daa4 fix(ocpp16): Reset connector status to available on failed fw install (#1058) ec4949cc refactor(ocpp16): Remove the call to stop during a reset (#1057) 5d97eedc [OCPP 1.6] periodically check for expired profiles across all profile types (#1054) 2af0e8f6 fix(config16): Fix ChargeRateUnit for full ocpp 1.6 config (#1056) 18cff33a refactor(1.6): Split start function in 2 (#1053) fb391b4f Fix handling and reporting of more invalid messages (#1052) ee0edb6f Add unittests for availability functional block (#1041) 848bdf54 Ensure compliance with OCPP 1.6 3.13.2. Stacking charging profiles (#1051) 32c78890 Update to v0.26.1 in CMakeLists (#1050) 9ef9da82 fix(v2Database): Use proper last used date for cache expiry (#1048) b40d2998 Integrate everest-sqlite as sqlite wrapper (#1027) bd1a8db3 fix(ocpp16): Send security event on invalid csms certificate TC_078_CS (#1046) b329f15d Bugfix/validate token (#1039) ea4a5d9d Verifying pnc contract against MO and now also against V2G root (#1034) aee7da8e Removed maaikez from CODEOWNERS (#1045) 91a45eb7 Initiating message queue operations before starting the message queue. This ensures that ensures that no message handlers (e.g. for StopTransaction.conf) are yet received that could interfere with try_resume_transactions, which could have lead to a duplicate sending of StopTransaction.req on startup (#1030) a43df192 Addressed added argument to libevse-security for verify_certificate (#1033) 76ed3c5b Fixed a bug that set_connection_timeout_callback was called without checking for nullptr (#1044) 9794491c Bounds checks for Plug&Charge configuration keys (#1040) 1db00929 Fixed bug to set CentralContractValidationAllowed (#1038) e46c2f6b DataTransfer.req(GetInstalledCertificates) now responds with NotFound in case no certificates were found (#1035) 3b1edda8 Session cost add message (#1007) 3ccfd0e5 Fix casting and types issues (#1029) ae8f7fbf Calling reservation cleared when a transaction starts. Allows the state machine to move from Reserved to Occupied when transactions start (#1025) f4094d99 fix(v16): Adding / removing connector id 0 default profiles (#1021) 8e2073f7 Added OCPP 2.1 complementary requirements to ocpp2x_status.md (#1011) 4d734a6c Updated README to address new OCPP2.1 support (#1022) b37d3af9 revert ChangeAvailability scheduled for reserved state (#1024) 940d6e90 fix(v201): Comparison for profile period entry (#1023) 0135dc76 Refactored OCPP1.6 error cleared handling (#1020) 601a5423 fix(Ocpp16): Make StopTransactionOnEVSideDisconnect optional (#1015) 593ad434 Respond with to ChangeAvailability with Scheduled when in Preparing/Reserved state (#1016) 4a11a672 Added configuration key StopTransactionIfUnlockNotSupported. If its configured to true, a transaction is stopped even if the response to the UnlockConnector is NotSupported. (#1017) c669fba0 Add mlitre to CODEONWERS (#1019) 91a704e7 Hardened message handling by adding handling for StringConversionException and std::exception in message_callback of OCPP1.6 (#1018) 63e25cdd Event handler for NotifyEVChargingNeedsRequest (#1003) c55d2581 OCPP 2.1 messages (#845) ec68901b Bump version to 0.24.2 (#1010) 4d055dad Replace deprecated boost::asio::io_service with boost::asio::io_context (#1005) 7030f4e2 ci: Set spe-tags=, (#1009) 7536c99e Deploy Doxygen Docs (#888) 3b25cc62 Update CI to v1.4.6 (#1004) a26227ae UnlockConnector refactoring (#1006) 055caef0 Moved StatusNotification.req(Finishing) behind StopTransaction.req message. Moving to StatusNotification.req(Available) in case transaction ends because of EVDisconnect (#1000) 205a0614 Functional blocks dependencies (#990) 6533694e Only change state to available if the current state is 'Reserved' (#998) dc51a495 Fixed issue that websocket ping timer was not started when websocket is connected. (#1001) 731bda71 * Added OCPP2.1 option to templates (#985) b3de351e Send CALLERROR only as response to CALL message (#995) e3c135eb Addressed requested changes 006b3e30 * Removed most default occurences from switch-cases * Switched from runtime_error or out_of_range to more specific Exceptions: EnumConversionException, StringToEnumException, EnumToStringException c5c835d9 Added all missing switch statements, added compile error when statements are missing ff0100ce Bump version to 0.24.0 (#986) 04059e2c * Renamed all occurances of v201 to v2 and V201 to V2 * Added clarifications of directory structure in getting started guide b6d807a3 Renamed v201 directories to v2 d1af3e29 Reintroduce getter function for transaction id (#992) 260bcec9 Add forward declarations and move includes to cpp files (#987) b7131c6f Move remote transaction control callbacks and handlers to functional block (#977) ea3cb61a Move provisioning callbacks and handlers to functional block (#976) 88a3df98 Transaction functional block. (#972) 2b14301e Raise error if charging schedules are empty (#920) 50520ce1 Refactoring of composite schedule calculation (#943) 817dc71b Move firmware update to new functional block (#952) 3283265e Catch exception when assiging String<> type with too long string (#966) fc107f30 Fix bug where security event notification was sent while bootnotification was still pending. #984 a425d348 Bump libevse security dependency to 0.9.3 (#980) c86a8f2d Fix potential nullptr access when we never constructed the websocket. Also change log to debug as it can spam when all options are not available (#979) ba076c84 Move smart charging handlers and callbacks to functional block (#957) 7f3687de Fix bug where retry of certificate signing is too fast (#970) 698e1014 Move diagnostics handlers and callbacks to functional block. (#968) 96232f08 Move tariff and cost handlers and callbacks to functional block (#965) 4149cc7f Move meter values functions and callbacks to functional block. (#961) e7d9de17 Move certificate stuff of iso15118 to security functional block. (#959) 1fa8fa0e Fetch everest-evse_security (#954) 9db4783f build with fetchcontent: add libwebsockets dependency (#955) 73cf4e5e Bump version to 0.23.0 (#963) c67cd07e Remove lines where get display message always returned 'unknown' (#964) ab89f477 Implemented missing handle_message in display message functional block (#956) 828ce615 Move 'Availability' callbacks and handlers to new functional block (#950) 5b24f57f Move functional block O: DisplayMessage (#944) a513b3d7 Prepare smart charging for stationmaxcurrent fix with some small fixes (#936) 353a3ebb Move security callbacks and handlers to new functional block (#937) 240f15a5 Configurable TPM support for SECC or CSMS leaf certificate (#947) e39d8237 Reset connection also if lws_client_connect_via_info fails (#948) 19049ff4 Move authorization callbacks and handlers to new functional block (#938) 96e7ae50 Change cmake test file so it is possible to add separate unit test executables (#934) e58099cd Integrate of send Triggermessage (MeterValues) in empty Connector case of present connectors or reject if non is present (#898) 850bd796 Update to add if the period returned was transformed in unit (#935) 4165d6cd Implement LocalAuthListDisablePostAuthorize variable (#941) 04b5b75a Initial commit: add device model test helper class. (#927) 83b3aa07 Change c-style casts of size_t to static_cast (#929) e333c075 Censor write only variables logging and added a new callback to sanitize any logging that would be passed to the existing message_callback (#911) 85ee171b Checking supported_feature_profiles for CostAndPrice before attepting to get respective conigutation keys (#924) 8b0ad21c Fixed bounds check of connectors when validating charging profile (#925) 8d5ae96b Support of v1.6 only compilation (#879) 61a1c54b Make centralSystemURI accessible via changeConfiguration, reject if readOnly (#900) 8d162ae8 Correct remaining booleans in CostAndPrice (#919) 00137ba7 Converte boolean to true/false string equvivalent (#916) c6638378 Move reservations callbacks and handlers to new functional block (Ticket #890, Pull request #894) c84487f1 Apply validation on the Custom part on ChangeConfiguration.req (#917) 3869f69b Add interfaces and mocks for connectivity manager and ocsp updater. (#918) 0d6f14d7 Add In Depth Smart Charging Documentation (#905) e52ac969 Reservation all connectors reserved (#878) e7a37da3 Block possibility of using a stale reference in SafeQueue (#913) 5a7a0083 Fixed GetCompositeScheduleRequest invalid optional access (#910) 68b375be Fix potential bad_optional_access crash in connectivity manager (#912) 230ae1a9 Bugfix/libwebsocket dtor deadlock (#896) 21c83c99 Added bounds checking for ConnectorEvseIds and ISO15118EvseId (#903) 2f005e04 1.6: Support multiple temperature measurements (#902) 0cd8b3c0 Changed CtrlrComponent vars from references to values (#904) c234ccc5 Harden handles against invalid connector id range (#882) 0d5649e2 Check for case insensitive bool value (#887) b8c81b68 Add option to select multiple ocpp versions to libwebsockets and connectivity_manager (#886) 254dfbb5 Harden message_callback against runtime error (#884) 03cc8687 Converting reading context of meter value to Other (#899) 469629c6 Support hashing directories of certificates (#852) 270acabf Set libwebsockets install lib dir to follow the CMAKE_INSTALL_LIBDIR (#876) 01b20340 Fix unchecked access to profiles vector in smart charging test case (#892) 83993da1 Optionally allow security level 0 connections (#856) 9836ac47 Connectivity manager refactoring (#874) 173af8dd Feature/327 use case h01 reservation (#854) c9a6f455 Fix bug in ClearChargingProfile.req (#872) 15e653d1 Libwebsockets (usage) improvements (#870) 18ca071b Feature/data transfer functional block (#871) 94a6844b Update Reusable Workflow to v1.4.4 (#873) 350430f1 Moved functionality to create message id from message_queue to call_types and made it a free function. Removed unused imports and usage of boost/uuid headers (#869) 0fbecf48 Merge pull request #863 from EVerest/857-certificates-handling-over-an-unsecure-connection-in-ocpp201-should-not-be-allowed 7f3ce1fc fix: rename config variables 4cb4a8a4 fix: rework on comments 1a042982 fix: add component variables in security controller dbae9b96 fix: reject two cert types db44a898 fix: security profile check when installing certificate 925e9cd3 Refactor of message dispatching (#864) 74f82e3a Refactored libocpp documentation (#847) b2290824 Handle enum value in message queue and use if instead of switch to prevent compiler warnings (#867) ac68603f Added fully featured v16 config as an example (#829) b00d278c Rename `DeviceModelStorage` to `DeviceModelInterface` (#768) 5416829e Fixed bug setting NetworkConfigurationPriority (#866) d042629d Use transaction BecomeAvailable when stopping transactions also when this->status->get_state(connector) == ChargePointStatus::Faulted since the internal state of the state machine could be other then Faulted, which would lead to an unspecified transaction not moving back to Available (#865) 49e05967 Add coverage and use reusable workflow from everest-ci (#858) af3d08e4 Fix reporting of log rotation status (#862) e29e5290 Bump libevse-security to 0.9.1 as used in everest-core already (#861) 4b0ab722 Improve network related logging (#859) 034b2f03 Bump version to 0.19.0 (#860) c7755aaf Feature for SmartCharging Offline Behavior (#783) d41bfc17 OCPP 1.6 add schema validation checks on updates to custom keys (#853) b1f947e0 Allow empty network connection priorities. Replace throw with a clear warning message. (#855) abdf54c9 Fix typo in testcase (#851) 6a001022 Removed websocket++ as a dependency (#846) a6f88c8f Enable pedantic compiler error and remove C++20 feature usage (#848) 3c0d64c9 408 extend network connection profiles (#769) 478e92de Added optional argument reason in on_suspended_evse function for v16 (#850) f480fc0e smart charging: updated validation to be explicit when conforming profile (#838) 8d74ff55 Configurable default limits for composite schedule calculation (#839) 97cc058a Add some additional security events (#818) f1f31880 Restore increased size of Get15118EVCertificate.exiResponse (#824) 83172ee7 Added test case to check if existing profiles can properly validated (#837) c6a6e01b check websocket and connectivity against nullptr in data_transfer_req (#833) 69c5bada Added parameter ChargingRateUnit to function to get composite schedules. This allows the user application the specify which unit to use (#834) 5c7f10cd Handle of invalid datetime when format check fails (#822) 846bc5e7 Reintroduce constructor which constructs the message queue (#830) de063744 Various code generator fixes (#825) 37542f38 Fix reconnect mechanism when basic auth password is set (#827) 2124d055 Update ChargePoint tests to use new constructor with dependency injection. (#789) c1d30ef9 Folkengine/k08 octt test failure (#803) fa801934 Remote start and stop could fail in core, we should be able to report that (#817) 66880737 Bugfix: revert renaming of nlohmann json validator (#823) 7d466746 Setting transaction pointer of connector to null in case a transaction is stopped. This addresses the issue that charging profiles with purpose TxProfile were accepted even in case no transaction was active (#821) feb302d9 Uri: fix schema reporting (#816) 8ccf5c11 OCPP 2.0.1: Refactor Smart Charging Persistence (#790) e29affd9 Log an explicit error when a wildcard server certificate is rejected (#814) 8c59de30 Merge pull request #807 from EVerest/feature/806-customise-exceptions c7a4e23c Add optional TLS secrets logging (disabled by default) (#804) 68f0aee3 Correctly set User-Host header if a HostName is provided in the config (#805) 252abab0 Make exceptions specific inside ComponentStateManager 15070a18 Fix missing backslash in URI if not filled in network profile (#801) af2fcc43 Feature/706 ocpp 201 california pricing requirements (#757) 5dedd1f9 Rename 'component schemas' to 'component config' (#794) 2647ee4b ChargePoint: add support for SecurityEventNotification `FirmwareUpdated` after reboot (#747) 10ff71f9 Add critical and timestamp parameters to on_security_event functions (#795) 9fca4cb8 refactor: Replace get_vector_from_csv with split_string (#791) 9a9a9b9c Testing: Updated test fixture names (#782) 1c0a2e3b Added certificate validation to FirmwareUpdate.req handler in ocpp201 (#727) c5237ea2 Update CODEOWNERS (#797) 4dcd8a27 Notify consumer about charging profile update when a transaction stops (#788) 8124039f Fix EvseId 0 not throwing the correct exception (#799) 0f5dfa05 Use the last_used value from the auth cache database to check for cache lifetime when authorizing (#793) 4e4085fd Remove code generator tooling for ocpp201 (#784) 71f8b1ae Feature/k02 05 cumulative (#760) affafb76 cache network connection profiles (#778) 2ae785fb Change for loop in get_all_composite_schedules to include all evses including 0 (#786) 4a62b490 Implemented API for composite schedules for ocpp201 (#773) 70b67a9c Move definition of device_model to let destructor of connectivity manager execute befroe the one of the device_model (#777) 591c978a Added verifications before calling callbacks (#725) 3fef0923 Ensure that connector stays in bounds of status notification callback (#767) 6e4035d1 Implemented feature and additional config option in addtion to QueueAllMessages. A new config option MessageTypesDiscardForQueueing has been introduced. It is a comma seperated list of message types that shall not be queued (when offline) even in case QueueAllMessages is true. If QueueAllMessages is false, the configuration of this paramater has no effect. The message queue will discard all message type listed as part of this value except for transaction-related message types. This feature has been implemented for OCPP1.6 and OCPP2.0.1 (#765) 079e12b1 Feature/K08 Get Composite Schedule (#745) 5cf14b34 [janitorial]: fix enum warning in connector, typo fixes (#764) 9849a961 Fix issue that connectivity_manager was only initialized in a single constructor (#771) 0c5aac4d Ensure ChargePoint initializes evse_manager before passing it to smart_charging_handler. (#763) 7fc94d20 Moved websocket to new connectivity_manager class. (#748) 2bc64f07 Add missing conversion to uint64_t (#762) fb4d4306 Add "critical" optional parameter to on_security_event() (#751) 9b2fba5e K01 - Small cleanups (#746) 21292cfc SmartCharging use cases K09 and K10 (#743) 65ef664f Device Model - hardwired monitors (#739) 47eee62a Bug/729 add remove variables and components from schema for device model (#740) 5602bbc0 Build examples in CI (#749) 033b18cd Fix build of example v16 binary (#731) e074a6b7 Moved loading of charging profiles from database into memory into constructor. Before that, this function was inside the start() function of the ChargePoint. If the libocpp consumer requested the composite schedule before the start() function is called, existing profiles were not used. (#738) e12fb952 Fix compilation issue with ambiguous type in types.cpp (#750) f096e5c1 Improved handling of json and enum conversion errors (#742) d967fcf3 Mark methods as override (#735) c2a980b7 Optional log rotation (#719) 4a2f7a55 Feature/376 ocpp 201 california pricing requirements tariff and cost (#707) 398f0c5e Update generators and move custom enums to new file (#741) 1c688a6b Implement SetChargingProfileRequest and basic database storage/loading (#711) 8476c0d8 moving add_stop_energy_wh (#737) 01dba252 Bump libocpp version to 0.15.0, bump libevse-security to 0.8.0 (#732) bfb3d1f1 Fix missing include (#726) abecf022 revert hardcoded csms uri in config (#724) aab1d578 Allow resuming of transactions for OCPP1.6 (#704) 1067cf3d Refactored OCPP16 error handling in state machine (#673) 1b15045b adjust some component schmeas and configs to align with requirements of OCPP201 spec (#720) ebe4fd51 added support for SummaryInventory in OCPP201 (#716) f7b26ec2 Replaced throws with error handling (#718) 341d3a51 Update API for new library header usage (#717) 2aef3530 Fix usage of SSL default password callback (#696) f40b6eae fixed bug that accessed evse id 0 as parameter in set_evse_operative_status (#714) c23b8136 [fix] explicitly initialize the variables in transaction.hpp (#710) d7189a0f Only log missing variables on debug (#708) d578e450 Added further handling for UnlockConnector.req (#712) 01f064f4 Smart Charging: Expand add profile capabilities (#682) d6064d73 Add support for AllowReset per EVSE in OCPP2.0.1 (#705) 8be8104b Feature/add trigger reason to transaction finished (#698) f5861735 Change return type of DataTransfer to std::optional (#699) 618ddbd4 Resume interrupted transactions (#501) 673bc5bf Adding async messages to queue and therefore persisting these messages when queue all messages is set (#695) 1dc06dc1 Add wait_for for futures (#694) a774d78f Added monitor triggering/filtering base capabilities (#686) 921635a8 pause charging when maxEnergyOnInvalidId is equal (#666) 22fc7025 Fixed bug that source and value was interchanged when setting NetworkConnectionProfiles variable (#692) 21b00339 Added callback connection_state_changed_callback to be able to notify libocpp consumer if the websocket connection status has been changed (#693) 618b79d9 Minor adjustments to device model initialization (#690) ad698a09 Add missing start of message queue for OCPP1.6 (#691) b223e4e8 charge point: improved thread handling (#685) b67951ce Add helper class holding the EVSE's (#668) 704ca434 Bump version to 0.14.0 (#689) 981925c6 Feature/656 device model initialization in cpp (#681) 10e194b4 Unit test refactoring (#674) 6587cd48 Fixed bug that lead to incorrect transaction handling in case StartTransaction.req could not be delivered: (#688) ee0f1ebe Improve readability/informativeness of the OCPP 2.0.1 status document (#617) 77f5b2a6 Support for persistently storing normal messages (if QueueAllMessages is enabled) (#684) 73017e6b Bump version to 0.13.0 (#683) 3d361ac6 Return listVersion -1 if LocalAuthListEnabled is false (#679) 8d4cccbc Feature/variable monitoring messages (#665) 15a632db K01: Implement Full Validate Profile Method & Required Methods (#611) 9d605a92 throw exception when NetworkConfigurationPriority is empty (#669) fbb7eac4 Message Queue Refactoring (#637) e479e62f changed SecurityEventNotification name for OCPP1.6 from InvalidCsmsCertificate (OCPP201) to InvalidCentralSystemCertificate (OCPP16) (#680) 1913fd5f Support SoC Measurand (#677) 86292aee Added transactions (#675) 71149ee3 Add option to disable compilation of v16 or v201 if you have no need for one of those 2 options (#670) 70607696 alternate composite schedule calculation (#619) d3adcf8c Feature/variable monitoring backend (#653) 8b385655 Bump version of liblog to prevent BUILD_TESTING=ON for liblog in case of (#660) 9398212a Add AuthCache cleanup logic (#243) 3dc613d6 Add not applicable to some of the Smart Charging cases (#663) 2f82f128 Added extra memory mode for DB (#659) 9a19d29b * Introduced new configuration key MaxMessageSize (#651) c89460cf Without this change, a Plug&Charge authorization request failed when the OCSP could not be generated, e.g. because the contract certificate chain did not contain any OCSP extension. Those contract certificates exist in the real world. This commit changes the behavior in case no OCSP data could be generated. If CentralContractValidationAllowed is true, the certificate is send as part of the Authorize.req instead of rejecting the request directly (#652) f5bd5196 Moved implicit instatiation of CallResult<AuthorizeResponse> within try-block (#636) e688898e Update to database connection usage (#643) 1d05b2e1 update availability status of the entire charging station in the device model (#648) 1cf2d654 Scoped lock to avoid a deadlock on connection timeout (#655) 960e9749 Bump version to 0.12.0 (#654) cab24d5b Trigger security event notification on root certificate mismatch (#624) 09762a7a Add thread that executes the callbacks via a queue to synchronize them (#615) 84dbfa38 bug: correct precision of meter_start (#646) a3e03e4b Bump libevse version (#647) 62aad728 Add missing return value to DatabaseHandler::authorization_cache_clea… (#642) d3921aa5 fix: OCPP message handling on invalid messages (#618) a383cff8 Updated dependency to OpenSSL V3 (#639) cc74b0b8 v1.6: Reject call of RemoteStart.req with negative connector (#627) c86da17e v1.6: Persist queued changeAvailabilty (#629) f9e2d48b Feature/631 support ocpp 201 2146 iso15118v2gcertificateinstallationenabled (#632) 6b3892f1 Set connection_attempts to 1 from construction to prevent sometimes reporting a reconnect delay of 0ms (#622) 6c2cdead Updated dependencies on new libevse (#620) 9810a9a8 Refactor Exception Handling of Database Handlers (#602) c83af3a0 * SetChargingProfile handler allowed TxProfile when there was no active transaction. This was fixed with this change. Added further test cases (#616) 0b4afa8f stopping bootnotification timer when BootNotification.conf is Accepted (#614) edb8bba5 Convert another logline to debug in libwebsockets (#601) 5278e16a Guard 2.0.1 database transactions with a mutex (#589) 16957338 Use correct libevse-security hash (#613) cea4087e Bugfix/66 gracefull crash handling (#604) 6fb39bdd OCPP1.6: Pending transactions at startup (#610) 4bd4daed Fix issue that two SecurityEventNotification.req were sent on startup (#612) d6e65d20 Execute on changeavailability for connector 0 callback (#607) 8ba873ab Moved security event notification to charge_point start function (#515) 8ad3c9a5 Fixing transactionData omitted in StopTransaction.req (#493) f90b5826 Change trigger reason for stopped by EV according to errata (#594) d3f696b5 Added BootNotificationResponse callback for OCPP1.6 (#605) 25a3c6e0 Added support to report QueueAllMessages and MessageQueueSizeThreshold in OCPP16 to the CSMS (#593) 37c877ef Fixed a case in which a re-connect was not attempted by the libwebsockets when there was a connection timeout. The conn thread did not had the opportunity to dispatch the 'on_conn_fail' callback in the case of a timeout (#603) c227242c Merge pull request #597 from EVerest/support-set-variable-on-the-fly ded4812e Support change of a variable on the fly 64e91c46 Add interface class for v201 ChargePoint class (#591) 5f574c5d Removed logging used in debug (#600) 42d139ae Install missing 3rd party headers (#588) 6d8a6866 Added support for iface in libwebsockets, added config values, added README (#552) ce164cde Fix user input usage (#599) f3e388ed Bump version of used github action run-clang-format to v1.1.0 (#587) c0f942ee Removed dependency on websocket++, minimized dependencies (#568) 19aba263 Switch to libevse-security tag v0.6.0 (#586) 85127948 Drop transaction message from database if delivery attempts are exceeded (#579) cf617008 Merge pull request #581 from EVerest/580-the-field-evse-persists-in-transactionevent-updated-and-ended a3fd1723 Format Clang e775a9eb Remove evse from TransactionEvent Updated and Ended eb8e36be Merge pull request #578 from EVerest/577-do-not-send-the-idtoken-in-transactionended-message-when-it-is-ended-because-remote-stop-or-ev-disconnected 315b8080 Updated for changes to libevse-security is_tpm_key_file (#583) b693a782 Schedule Validation Follow-Ups (#537) 6c4bcf5f Update the comment with reference to documentation 76e2301e changed default config to more reasonable values (#576) 26ee85ce moved handling of changed variable after responding with SetVariables.conf (#575) 129b8905 Send idToken at finish transaction only if it is deauthorized using a token cc169bed executing disconnected callback when websocket connection is closed (#573) d21b6c83 Add functionality for database migrations (#556) 27efcee3 Add IdTagInfo to startTransaction.conf callbacks (#498) 8cf99628 Remove redundant conversions for CustomData (#571) 23c4f44f Fixed message received from CSMS too large (#569) cb1c54b2 initialize nr_of_evses with 0 (#570) a7f9a75e Allowing NotifyReportResponse by CSMS in pending (#565) 04f87bb3 Response TriggerMessage Rejected for MeterValues if the measurand does not exist (#564) 8ba2086a Various custom data extensions (#541) 2d4193f2 statemachine returns faulted if faulted (#562) d2ef2c92 Improved validation of TxProfile: (#561) 04724176 - Fixed an issue that waited for a message to be sent for 20 seconds when the WS was offline. On new behavior it quickly fails. (#560) 10e75263 Start OCSP updater only when successfully connected to CSMS. Increase retry to 24h (#559) 86ca42ef Resetting next message to send in case we receive a CALL message while in ConnectionState::Rejected (#558) e2fe336c calling set_connection_timeout on start up to apply the value that is set (#557) d47fd2dc Validate a TxDefaultProfile. (#524) 63998422 OCPP2.0.1: Device model access for EVSE and Connector specific variables (#553) 0f471de8 Support configurable TxStart and TxStop points (#546) 3ce375e3 Made libwebsocket usage default (#555) 8a9e0696 Adding OCPP 2.0.1 status document (#540) 5c66e7bd Refactoring database handling to allow for unit testing (#549) cc6bfac1 OCPP1.6: Improved offline transaction handling (#551) d8d02ce5 Fix ConfigurationInventory reporting in GetBaseReport (#545) 6a339875 drop use of deprecated OpenSSL functions (#535) 88006dcb Add unit tests for sha256 functions (#548) e1ae0bcd OCPP1.6 P&C Handling adjustments (#538) ce792235 Make EVSE mockable and add mock (#534) 45d7e890 Verify that EVSE exists. (#531) 778e0800 Pg c07 authorize contract certs (#536) 86adda6e Updated interfaces (#532) b5301869 Adding OCPP1.6 add profiles tests (#440) 84477ba5 smart_charging: Add validation for profile schedules (#521) c19299e7 Add unit tests for using components as keys in map (#522) 10bb269c External variable access for OCPP2.0.1 (#530) 18541b4f Added SWTCH to list of 2.0.1 CSMS (#526) eed4bf48 Bugfix/494 libocpp verify csms cn wildcard (#516) d0ecfdfb Fix WriteOnly and ReadOnly variable reporting (#523) 1f7cbb63 add 1.6 k01 clear all profiles with filter tests (#447) 51b3a62f SmartChargingHandler: Add validation for TxProfiles (#452) 5a4f95f0 Rejected RemoteStartTransaction.req and RemoteStopTransaction.req while in Pending (#520) dafe04a0 using default interval for retries when no BootNotification.retryInterval is given by CSMS (#519) 8cc5808c feat: add method to obtain transaction id (#509) 7bf03378 added certificateType to SignCertificate.req (#514) 19b5e7c8 Mz security event boot reason (#512) ebb83cc7 fix: libwebsockets retry on no-connection (#513) 4d5cb7cd Fix insertion of duplicate signed meter values (#517) 39fa5b75 Added tested OCPP 2.0.1 CSMS systems (#511) 135b385b Added libwesocket support for secprofile 0 and 1 (#508) ba83f17c [fix] check on registration status in component_state_manager lambda (#506) 272be7a9 Supported Measurands for OCPP1.6 (#492) 2f591646 Send CALLERROR SecurityError B02.FR.09 (#503) 69c8afe0 add missing keypair conversion fields (#510) c978e5d7 Fixed conversion (#507) a7e9e61e fix: information log causing segfault (#500) eec7ea29 Added ITE to list of tested OCPP 2.0.1 systems. (#505) bcfae6d6 If no changeconfiguration callback is register call the generic one, … (#282) db4d1d0e Update dependency on libevse-security (#491) 7023ae3f Add filtering of signed meter values (#481) 72cbc5a9 Disconnect websocket also when it is not connected. (#418) d4c9bf40 Add option for custom logging library instead of header file (#487) 2ae29ec9 Unit testing best practices, fix gtest linkage (#488) ba9b7d52 Fixed link to OCPP protocols in README (#489) e401336c CiString conversion fixes for GCC<9 (#483) 73b64e86 Fix compatibility with python 3.7 (#484) 7e0ce54d Support for AuthCacheDisablePostAuthorize and DisableRemoteAuthorization (#476) 7e3aec20 specified pietfried and hikinggrass for ocpp16 domains in CODEOWNERS file (#479) 0236188b Usage of allow_zero also for integer values in device model (#477) df2400bc Reliability improvements for OpenSSL tpm2 provider on an embedded system (#463) 43286e58 Enable the Power.Offered measurand (#471) 65cb2ef8 Fix logic in connection attempt only AFTER a reconnect (#473) c9827c5e Added stackLevel to EnhancedChargingSchedulePeriod (#453) 674a5b72 Number of fixes to the Metervalue implementation for 2.0.1 (#448) f9e30ebb Fix usage of recursive_lock in lock_guard (#470) be4e10a8 Special handling for value 0 for certain variables (#466) 9ea3d291 Add issue and PR templates and CODEOWNERS file (#436) d12054ec Support of mutex inside get/set of configuration, which can be happen… (#281) dfb29dee Bump evse security version (#469) a1fe09b8 Libwebsockets: Fix message loss on reconnect (#457) 94902c2d Adjusted and moved SQLite close handler (#465) 4c6a8d14 Restore connector states to persisted states on failed firmware update (#464) eeff12f8 persist flag in execute_change_availability_request was not used and is now used (#461) 45102e1c removed error log for InternalError Message type (#462) 051c685f Dont persist unavailable on fw updates (#456) 06fcfa30 Add additional locking for next message to send (#451) 0ee858f7 changed type from string to ocpp::SessionStartedReason in 1.6 build examples (#435) 496c14bf Added certificate_single_path to KeyPair type (#455) 10323b29 Protect from concurrent connector status updates (#454) 722f09b1 Fix bug in handleGetInstalledCertificateIdsRequest (#449) 38943d4a 437: Fix delay in bootnotification 104fe883 Activenetworkprofile variable missing and is required if we support networkconnectionprofile (#424) 36df4f02 prioritizing bootnotification in message queue over transactional messages (#444) 72c7a1f9 Fixed reconnect attempt, fixed sys error on timer dtor (#443) fbc95ee6 Ensure that BootNotification is the first message in the queue (#439) d3971bdc Improved handling in case CSMS responds with CALLERROR or not at all to BootNotification.req (#431) bef3f615 Update libevse-security to v0.4.2 (#428) fde2ece7 Extended Use of SecurityEventNotification.req in OCPP1.6 (#425) d76c80a4 Localised per-thread conn data for a clean disconnect (#429) aae98f5a configuration_key_changed_callback function is now also called when set_custom_configuration_key finished successfully (#427) ac0538ea Add InvalidCsmsCertificate notification (#419) 84b604a9 Add support for certificate links (#398) 4ae306af Remove pycache file (#412) 1b59cc9a Fix vector conversion of network connection priorities (#411) 35195e63 Bump libevse-security to v0.4.1 (#409) 536ec6ef Fix: OCPP 2.0.1 CS, EVSE, and Connector availability tracking (#292) 7fa3cb9e Added option for writing SecurityEvents to a security log file for ocpp1.6 and ocpp2.0.1 (#407) 7b8eb76f CI: Add building, testing and linting (#297) 0255e3b3 Add request_value to 2.0.1 ChargePoint api (#405) c2033a06 Fix unit tests: database_tests and evse_security_mock (#389) 6af3a5b6 Fix message_id_generator lifetime issue (#404) 9afe4053 * changed argument reason of on_session_started from string to SessionStartedReason (#402) 8d7642d8 B07 get base report simplifications (#397) 5ee114c4 Added OCPP 2.0.1 feature profiles and link to google sheet (#370) 82bde3fa added argument initiated_by_trigger_message to all functions that could be triggered by TriggerMessage or ExtendedTriggerMessage. This fixes a bug that messages were not send to the CSMS as a result of TriggerMessages while being in BootNotification Pending state. Messages are now sent when triggered and while in Pending 3e876da3 Properly check network configuration priority size c03ac070 fix bytes and items per message in localauthlistctrl (#399) f79c7cdc B08 get custom report (#294) 990e3bc6 added vendor error codes and vendor id and info to on_error and on_fault and applied respective changes in chargepoint state machine (#395) 87506abb Several updates to OCPP201 device model (#392) 8114bce2 Fix build issue caused by implicit signed type in JSON schema validator bbdd481a Update README.md with SteVe 411439bc Update README.md 7888cd60 clang format 3168357d changed id_token parameter of on_transaction_finished to ocpp::v201::IdTokenType 2e1b537d Without this change, the disconnected_callback was executed also on reconnect attempts when the websocket is already disconnected. This leads to the situation that the time_disconnected of ChargePoint resets on reconnect attempts and therefore the handling of the OfflineThreshold is incorrect. This change only calls disconnected_callback if websocket is not already disconnected. 1ecd9cd5 Support for tpm CSR request (#381) 7174478c Fix websocket certificate check (#380) cf644b88 Added support for libwebsockets for tpm/secprofile 2/3 (#320) a6cd837e OCPP1.6: Add internal availability change request API (#358) 0d8c47b0 Fix sorting operator for map insertion (#291) b6190933 Fix regression: Add message queue "resuming" state (#357) 78652836 OCPP 1.6 Fix: add flag for pending firmware update (#306) bc6a9188 Bugfix/hotfix tls intermediates (#305) 3f05b142 Add component SeccId and add warning for missing components/variables (#300) c294586d Generate signing request not only for CSMS (#290) 049b19c1 Fix: Validate CN = FQDN for TLS websockets connections (#287) 191e6d16 fix: Remove optional StatusNotifications on reset (#302) fef9c417 Make sure the session_id_logging map is properly locked when modifying it 89158a10 OCPP 2.0.1: Make message interval, retries, and timeout configurable at run-time (#298) aba6f3b9 Fix potential crashes and fix TxProfile during transaction (#299) 32bc5c4a EV377: split notify report requests (#295) daa49501 Feat: Optionally delay the resumption of the message queue after reconnect (#283) 01c3a6bd Use sqlite_close_v2 775f02b0 OCPP2.0.1: Ensure individual firmware status notifications are sent once (#277) bb11e09e EV369b: drop update transactional messages if necessary (#285) d0b429b9 EV369: Message queue buffering (#284) 497b08c5 Fix union annotation for python<3.10 (#289) 9f8cf84c OCPP2.0.1 add data transfer in line with OCPP1.6 implementation (#279) 1826478c Validate datetime in OCPP 2.0.1 device model (#286) 776f5c07 EV 355: part II: update schemas and enforce required property (#272) 6aa9c90b add timestamp to StatusNotification.req for v16 6ad37127 EV 355: Consider & verify "default" and "required" settings for Device Model Variable Attributes (#269) 4cff8fe1 Do not send InstallScheduled when changing connectors to unavailable (#276) aa5990a8 Implement OCPP 2.0.1 use case M06: Get V2G Charging Station Certificate status (#249) 7afed39d Fix off by one error for max connection attempts 463975f0 Make sure a transaction cache update also sets the lifetime (#268) 07295a8b Set connectors to unavailable during fw update (#252) 5df2ceb8 Fix a few unchecked optional accesses (#273) f5c15437 A05.FR.06: Remove network profiles lower than the actual security level (#271) b208d4e7 disconnecting websocket with websocketpp::close::status::going away 34bd0a1a Fix default ciphers (#274) 004d98b1 Fix code generator for RequestStartTransaction and RequestStopTransaction (#270) 95aea4e1 Harden change configuration on integer input (#261) 8a4a9710 Averaging Measurements (#241) 4551bfa0 Change data transfer API for 1.6 (#265) baca3bd4 Merge pull request #266 from EVerest/refactor/libevse_header_refactor a43c4e68 Fixed evsesecurity header include f202c9b5 fixed argument in database tests (#267) 6bfdb5a0 Add websocket option update on component variable change (#263) a008911d fixed reporting of similar sampled data in transaction data of StopTransaction.req ba53f415 Fix reconnect interval not actually using the configured delay (#257) 081fec70 Support of security profile for example charge_point (#246) 280c6a8d configure message logging (#253) 271e0257 validate CSMS-URL: opt. schema must fit with security-profile; chargepoint-ID deprecated in URL (#201) 6ef52526 Added PUMP Connect as compatible CSMS for OCPP 1.6 (#260) b50b61a8 Usage of is token reserved for connector callback in remotestart (#220) f381e393 fixed optional access to CpoName 333c911e Add timers for certificate expiration check (A03) (#250) 9268b485 Merge pull request #255 from EVerest/fix/add-password-callback-in-profile-3 6a7de6eb chore: fix formatting 5807195c fix: limit max len of password in password callback d5f8a76a fix: add password callback to SSL if using profile 3 and the private key file is encrypted 0846082f OCPP201: SignCertificate and CertificateSigned (#212) d7675057 checking if error has changed before executing status_notification_callback 092d88fd changing type from bool to int; allowing pos 0 when data is empty dd13282b changed from recursion to loop 642d7d75 Update lib/ocpp/v201/charge_point.cpp 326ce3d5 clang format a2f73ebc added minimum of 512 to MaxCustomerInformationDataLength ed8b2405 implemented GetCustomerInformation and NotifyCustomerInformation (n09, n10) ba2ae51f Database error handling (#247) bcf4e57b Added new tested CSMS (#208) 93c14e95 Close libocpp gracefully (#245) 0fe5bbc7 Bump version & dependency versions (#244) 4c30a761 Add message logging callback (#209) a78f3e49 added handlers for GetInstalledCertificateIds and InstallCertificate for v201 (#242) 4c5d505e only stopping pending transactions if StopTransaction.req is not yet queued; This change is required because without this check the StopTransaction.req could be sent twice for the same transaction on startup because since e865d20 the transaction message queue is also loaded on startup (#239) 71e014c8 ChangeAvailability(Scheduled) moves inactive EVSE/connectors to unavailable directly 1cfe50a6 C16: Master Pass (#225) 839594c3 Allow connector phase rotation to accept <ConnectorId>.NotApplicable … (#211) 3745352b Use database to store transaction metervalues to be sent at the end of a transaction (#205) 386dcb26 added disconnected callback to websocket 790426a5 responding with NotSupported to GetBaseReport.req(SummaryInventory) 69703c2f fix: 1、fix component:ClockCtrlr config 9e89830b moved response to assign directly 0f120dfe implemented GetTransactionStatusRequest for v201 b8cf9579 Add handling of max energy on invalid id (#230) dd654871 callback for boot notification (#232) 08eb2fd9 Make sure that CallResult and CallError messages are delivered in order (#231) df8a2827 Update libevse-security dependency (#237) d5f6892d clang format 7fec2ba3 moved try/catch to next layer to add more context for logging 94a6ae1f Update lib/ocpp/v201/device_model.cpp 2111ace6 added is_integer and is_decimal functions to device model validation f46b66f7 Add additional security event notifications for firmware update tests (#233) e865d20d * added support to report and consume security events in OCPP1.6 * now treating SecurityEventNotification like transaction-related message * Revert SecurityEvent enum back to strings a1339411 B06:- Get variables requests (#218) 6749e46a fix crash invalid evseid 8292d0c2 J01- Non transaction meter values 2b4f3ea4 Only send status notifications on reconnect if we received a disconnect callback 0c434645 * Adding A04 Security Event Notification * Only send critical events to the CSMS * L01.FR.02, L01.FR.02, L01.FR.31 * Fixed TriggerMessage for FirmwareStatusNotifcation for L01.FR.26 f07b61d8 improved readability ba73be41 improved handling of ChangeAvailability.req 71a7f216 added minLimit and maxLimit for BasicAuthPassword 44b8df4c writing security profile to device model on init websocket and connected callback ac4bb792 If no metervalues are going to be sent, do not sent a MeterValueRequest or an empty meterValue list in a transaction (#187) 7f349e54 Add missing find_dependency(everest-evse_security) (#210) 4769c490 Added a time sync callback that can be used to sync system time (#202) 314baaad custom readonly values were not reported. now fixed (#207) 9d26227e added conversion functions for evse security types and using them in datatransfer pnc backports for 1.6 (#206) 1cb09994 Add some SQLiteStatement functions to prepare for other PRs (#203) 24fb839e Add auth cache storage size to de device model (#170) 3bb54185 Binding json default construct to use initializer list based constructor (#179) fd5a8dee Update liblog dependency to 0.2.0 (#198) dedfa941 Improved device model storage initialization (#204) e4f1ccdf Refactored pki_handler to evse_security (#157) 32dd05fd Fixed FirmwareStatusNotification for v16 and v201 (#200) 435a0cc7 Add ChargePoint constructor so a pointer to a device model storage can be used (#188) a4716b68 ran clang format and added user-host also to websocket tls (#197) 18a828e1 Set is connected to false in on fail handler of plain websocket (#196) 69c75d83 Integrated hostName as parameter which is applied on websocket plain (#194) 9c445dbf Support older C++ versions with `boost::filesystem` (#177) 0a1b3877 Fix clang lambda capture which went out of scope (#195) 17ae171f Fixed some compiler errors with older versions of gcc (#192) e8e9b9ea OCPP201 device model setup in cmake (#190) a53e4e0a Improvements for OCPP1.6 made during OCA Plugfest (#185) 743f6972 Fix build with clang < 16 (#183) 09fe1d73 Remove check on auth list ctrlr available (#189) 4aaf1cdb adding Custom.json to Config.json schema if it exists 49066870 not installing Custom.json by default in libocpp 2a572cbb added try catch around message_callback function to process messages that were not correctly formatted e244a2b9 appying new authorization key before reconnecting c5030bb6 added bounds checking for evse on change availability f3c2ea90 added NotImplemented response in case we receive CALL that is not implemented 5960ef05 added change of heartbeat interval on change 5d416f75 added argument connector status map as optional argument for restart command for 1.6 d2ef6966 added support for custom configuration keys for 1.6. This includes: * the option to register callbacks for specific keys that are executed when those keys change initiated by CSMS * an API call to retrieve configuration parameters * an API call to set custom configuration key in case they have changed internally 0278eeb8 Only send charging status transaction event updated when charging state actually changed 5dc53c80 E04-offline transactions (#173) 6534c4cc - added reduced state machine for connector 0 for 1.6 - chargepoint can now be initialized with initial chargepoint states ; if no states are provided, last states from persistant storage will be used to initialize the state machine - reset of state machine is now public 95706e02 added plug in timeout handler to move from preparing to finished ca1fe7af made WaitForStopTransactionsOnResetTimeout configurablefor ocpp1.6 392fddb1 No longer use async for transaction events, instead use normal response handling 73c97f58 * Send status notification if offline period exceeds threshold * Store the connector status when offline into a map * send status notification for changed connectors when back online 33c35465 Signed-off-by: Gregory Squires <gregsq@protonmail.ch> pg_websocket_v_dtor - Make WebSocketBase destructor virtual to properly call Websockettls or Websocketplain destructors when unique_ptr<WebSocketBase> dtor is called. 73cb2556 Add check to validate if the callback struct is completely filled before starting (#167) 840d3c3e calling set system time callback on bootnotification response and heartbeat 88032c75 Refactor the validate_token function; include both local list and auth cache in the correct order and offlineTxForUnkownId (#156) 8a3aa82f introduction of measurement (#160) 3360cd6c removed doubled definition of apply_local_list in v201 f73838e1 Refactor v16 database using the new sqlite statement wrapper (#154) 62b4959b authlist database changes (#153) 83533ebf Update README.md (#159) fc610b52 Make it possible to use own logger instead of everest logger. (#150) 6cfe002a Merge pull request #145 from EVerest/me-trigger-message 0dc78e06 Add function to device model that allows setting read-only values for certain components (#152) a2d5df45 Fix CamelCase to snake_case and fix doxygen comments a59b1369 Add firmware status notification to trigger message b16cb4f4 Fix style issue 81cf7246 Add LogStatusNotification be772087 Style fix and add triggers still needing implementation e5e32167 Removed meter value message where not intended, small style changes and added connectorId check just to be sure 8b93e0be Simplify evse searching, add exception to bootnotification and add status notification b4412b7a Simplfiy get_latest_meter_value 8ac54049 First few messages implemented 5f126991 Split off SQLite statement wrapper into own file and apply to v201 usages (#149) 24700a7b checking if message queue is running before pushing messages to it c365fe4b Reset with ongoing transaction (#128) 3c552995 Use the token id as well as the token type to generate auth cache hashes (#148) a01eb60b Don't store central type tokens in the authorization cache as per C03 and C05 (#147) 5c32e299 Add an example on how to build libocpp with FetchContent instead of EDM (#135) 76f57419 Update nlohmann json and schema validator (#144) e0de9b9a Adding missing dependency for gtest (#136) 970b663d Send rejected when a start or stop transaction request is sent and bootnotification is still pending (#142) 315842ed Add clang-format linter workflow (#140) 4660464a Transaction event changes to get remote start / stop working and compliant to octt (#138) 694ce69f now adding variables with instance properly in insert device model script 705cdb21 add unlockconnector to handle_message switch 115bcc27 added public function to disconnect and connect the websocket connection 14a08861 Merge pull request #134 from EVerest/doc/mz-sync-to-roadmap fa8707cc Reference to EVerest roadmap a1f46375 fixed units tests who had old boost dependencies 4af34133 returning websocket close reason back to chargepoint class to handle reconnects according to this reason, this is required for 2.0.1 fc220c2d Add charging state to transaction so it will be sent when a transaction has been started (#130) 8ba7a70e fixed bug in calculation of next network configuration priority a8fd8095 added shutting down flag to websocket to interrupt reconnect attempts when websocket was closed with code normal 674b1720 refactored error and fault handling in libocpp bumped version to 0.8.6 bb081036 - implemented a01: change auf BasicAuthPassword (#129) ee070c55 Handle more invalid messages (#119) 793a113b Add on_faulted and on_reserved events (#126) c65ca7de Firmware update (#121) 5e18bf1a - Added handling for ClearCache.req - Improved updating and deleting of cache entries - implemented validate_token with linear flow d4cd8f5d applying SampledMeasurands filter to Transaction_Begin and Transaction_End context values 30e9c6ba adding remote start id to transaction to be able to report it on EventType(Ended) 642c6dfc sending response to ChangeAvailability.req before executing callback 0f2bdbcb now including meter values without measurands in StopTransaction.req. This includes e.g. signed meter values 729cd7c4 added configuration key for allowing certain smart charging profiles with no startSchedule f79d59e3 Remote start stop (#110) 395b5e24 added config_path param to init_device_model_db script so that it need not be executed from within the folder where it is located. This is required to set up device model databases for testing a3b5e76f Remote unlock connector (#115) 4fd74407 Fix openssl warning of deprecated function 58e6bc4b Refactoring of OCPP201 device model - refactored device model API - device_model_storage.hpp provides an API for different device model storage implementations - added implementation of device model storage for SQLite - added support for initializing ocpp201 sqlite device model database - updated charge_point.cpp to use new device model api - updated component schemas by adding variable_name and instance properties - updated v201 config (can now include all possible VariableAttribute types (Actual, Target, MinSet, MaxSet) - added code generator tooling for setting up the device model and component schemas - enhanced libocpp readme by explaining how to set up ocpp201 a9e54376 improved logging around websocket connection; allowing 8 characters AuthorizationKey now b80fcaa8 OCPP 2.0.1 GetLog (#111) e4cd4ff9 added basic implementation for DataTransfer mechanism (#103) 168d9687 Handle invalid messages (#107) b3fa45fe added transaction started callback updated chargoint example code (#105) 3b006cca Make nlohmann_json_schema_validator a public dependency of libocpp in CMakeLists.txt (#106) 158e9e72 Fix v16 example, restructure headers (#98) 1b261816 Fix missing optional header 23413585 Switched from boost::optional to std::optional f67ba30e - added handling of Reset.req and Authorize.req / Authorize.conf - updated componenet schemas and device model management - added device_model_management_base as base class for configuring and retrieving components and variables - Added support for sending MeterValue.req and MeterValue within TransactionEvent.req - Considering all configuration keys of SampledDataCtrlr and AlignedDataCtrlr - moved database_handler to v16 - added database handler for v201 - added support for AuthCache - added handling for ChangeAvailability.req - added first support for DataTransfer.req (rejecting always) and NotifyEvent.req be1d2c50 SECC leaf certificate has to be requested using data_transfer_pnc_sign_certificate ; certificate will only be part of pnc Authorize.req if certificate is set and CentralContractValidationAllowed is set to true f4eb5627 - security profile is now written to user config only when it was actually changed by csms. before it was set already on the first connection - includes a bugfix that caused a segfault when changing the security profile b172af42 Removed libfsm dependency 940eaf83 adjusted install path of config and misc in cmake script. Changes needed by EVerest/everest-framework#79 2071320f Add commands to build the doxygen documentation to the README (#93) a49ef815 extended configuration so that also Internal configuration keys will be reported and can be set if they are rw b2ab9c6f validating supported purpose types on startup df677237 added on_enabled and on_disabled handlers for chargepoint bc57c698 improved generation of certificate signing request 872cf483 transactionId will now be added to MeterValue.req of message queue when transactionId was unknown at the time of queuing 56c1b935 introduced flag in database to track if CSMS has acknowledged StopTransaction.req with StopTransaction.conf. Incomplete transactions will be immediately stopped at startup. This also works now for transactions that have been stopped while being offline before a PowerLoss fb34de44 dont only update cache if token was accepted, also if it was rejected 1d93171d Configuration keys StopTxnAlignedData and StopTxnSampledData are now respected 052e0fb9 extended logging in database handler d7b9a97e updated README 27cdcaac - get_all_composite_charging_schedules for loop missed last connector - checking if signal_set_charging_profiles_callback has been set before executing and log warning if not set 65efa32b Use most recent libtimer version aea81568 now using reinterpret_cast bb1399c0 - added support for Hubject PnC requirements - this includes the introduction of additional ocpp configuration keys b7f550b7 checking timers against nullptr before calling stop 0bbb5961 General/PnC: - Added support for 1.6 ISO15118 PnC whitepaper - Added PnC to all configs 6e78fe80 removed return; when ws connection could not be initialized f79d5387 sending initial StatusNotification.req 525c5ae3 To avoid sending of unitialized powermeter: - made powermeter in Connector.hpp optional - made return value of get_latest_meter_value optional 0a838218 added log message when ocpp config validation against schemas fails 18918e08 - moved execution of run function of state machine to charge_point start() - catching exception if state machine event could not be submitted successfully 54e2e975 fix error and update example e5fc68a9 Checking if logging instance for given session id is present in map when calling stop_session_logging. session_id could not be present in case session logging is enabled but no session_id was given at on_session_started 58d7340a - Added Evse and Connector classes - moved ChargePointConnectionState back to 1.6 - improved ws connection and bootnotification handling - implemented functional block Provisioning profile as draft (B01 - B08) - renamed common ChargePoint to ChargingStationBase - renamed ChargePointConfiguration to DeviceModelManager - added method documentation - implemented draft for state machine within connector class instead of using libfsm 767494fe bumped versioN a5294d03 implemented session logging 22dd6f54 Implement WebsocketPingInterval for OCPP 1.6 (#73) 41868287 add dc reporting 40b148b6 - Restructured libocpp into seperate parts for OCPP1.6 and OCPP2.0.1 and common functionality - Updated code generator to generate schemas for 1.6 and 2.0.1 - Generalized Websocket, PkiHandler, MessageQueue, types and ChargePoint (all used as common base for 1.6 ChargePoint and 2.0.1 ChargePoint) - Very basic implementation of OCPP2.0.1 ChargePoint (BootNotification) ; Generated Datatypes and Enums are already included - Templated CiString type with length as template parameter - Templated MessageQueue, EnhancedMessage and ControlMessage with OCPP version - MessageQueue now handles message timeouts and respects retry attempts and retry intervals 6c36130a - ignore some database operation errors. These errors can occur when the charge point was previously stopped - stopping meter value timer on on_transaction_stopped and improved ocpp restart behavior by not stopping io service thread d7e58693 - Import Powermeter (and related) types from everest-core 7f4668fc Reworked OCPP smart charging - added class SmartChargingHandler - supporting all ChargingProfilePurpose and ChargingProfileKind - storing charging profiles persistently - added table CHARGING_PROFILES to database - added database tests for charging profiles 24267e25 fixed argument in register_provide_token_callback of build example 20637946 adding default transaction id of -1 when instantiating transactions. transaction_id is therefore not optional anymore in TransactionEntry strcut 8572810d added connection_state_changed_callback which will be called on websocket connect or disconnect ed433da7 - RemoteStartTransaction.req is now considering connector id of single connectors - set_connection_timeout_callback can now be called from outside the chargepoint acbf6f71 Bump libocpp version because of an API change 441eae4c lib now executes reset callbacks on Reset.req 746ac8fe Revert "changed type of timestamp in Powermeter to string" 90d960f8 changed type of timestamp in Powermeter to string 275ac345 Using tagged dependencies (#59) 09735172 fixed handling of StartTransaction.conf with status other than Accepted d96d8b7d Improved detail of readme and fixed/updated build examples 05d32116 - fixed bug that deleted ca cert without checking for parameters issuerkeyhash, issuernamehash and serial - stopping ocpp service properly before killing process on reset - improved handling of Reset.req - Transactions will be stopped properly before the actual reboot - Now properly erasing references of stopped transactions. This fixes the problem of MeterValues that have been sent also after stopped transactions - MinimumStatusDuration is now a considered configuration key - changed connection timeout to 30s - RemoteStartTransaction.req for no connector given now supported - Configuration key AuthorizeRemoteTxRequests is now rw - improved authorization handling and consideration of keys LocalPreAuthorize, LocalAuthorizeOffline, AuthorizationCacheEnabled, LocalAuthListEnabled - Now sending StatusNotification.req after successful reconnect for all connectors - RemoteStartTransaction.req with connector id = 0 now gets rejected - now dropping non-transaction-related msg queue is paused - maintaining time based order of messages in message queue 913af2ea Extended OCPP message logging with HTML and colorful console output Supported LogMessagesFormats: "log", "html", "console", "console_detailed" 7eee2d29 not throwing exception on db req with optional return 7cf55083 removed enabling and disabling of evse on startup of ocpp 6dfcccfa There was a race condition when we had a complete offline transaction and wanted to replace the transaction id in the message queue. Replacement of transaction id takes place in StartTransaction.conf handler but might be already too late when StopTransaction.req was sent before the replacement. Now we have a specific handling for StartTransaction.conf messages which means that we wait for the StartTransaction.conf handler to replace the transaction id in the mq before we send the next message 849317fb Replaced json power meter by power meter type. Now checking if measurands are present before accessing them 5d4b893d removed unused scheduled callbacks 3da0cbc3 - added callback to signal that new charging profiles have been set - add public function to get all composite schedules of chargepoint f8de72c7 configuration of smart charging profile purposes is now possible 6ab0e507 adding signed meter values to transaction on start and stop if present fabcb162 ChargePointConfiguration now takes ocpp_main_path and user_config_path as arguments a26f9bf5 removed creating of scheduled callbacks table 0ea18c0e Fix some abiguous overload compile errors (#44) f8604874 - added init.sql script for initialization of database - moved database handling from charge_point_configuration to charge_point - implemented database_handler class for all operations on the database - all database related operations now use the database_handler - added new database functionalities to libocpp build examples - added tests - transactions will now be inserted and updated in the database - incomplete transactions will now be stopped on startup by sending a StopTransaction.req for transactions without a meter_stop or time_end 4e2a8894 init_websocket should not be called in ctor 56ef3e41 CMake refactoring (#40) - cleaned up cmake files - added cmake config style support for install target - EDM compatibility e66f50d8 It is now possible to stop and restart the ocpp communication. Improved behavior on stop() and reinitialization and implemented method to restart to ocpp service 4f7ecf10 CMake refactoring (#40) 9fe3b61c Add Debian GNU/Linux 11 build dependencies (#37) b1a612b0 changed DEBUG to DEBG in logging.ini and changed to new liblog logging syntax 4d75f15e Update README.md cc21b201 setting bootnotification timer when in state pending 7ec4d4cc checking if LocalAuthListManagement is present in config before accessing LocalAuthListEnabled 03216ecf now differentiating between central system root certificate and manufacturers root certificate on InstallCertificate.req 88c600b6 - Handling bytestring representation and normal string - Reconnect now disconnects directly before setting the reconnect timer 44f192e9 Update readme 03aded16 Added CSMS compatibility to README 10a04120 checking if connector is in state faulted before reserving dee3357d Merge pull request #29 from EVerest/pg-fix-transaction-get-transaction 6792b52a avoiding to send StartTransaction.req twice and added lock_guard when iterating over transactions b0ec805c Merge pull request #31 from EVerest/pg-aw-extend-state-machine 6bea3429 squashed 7 commits into 1 6fab86fe Merge pull request #27 from EVerest/pg-add-checks-for-change-configuration-values 7d9e6c8b changed splitting string to using boost::split c3b0997c removed comment eee8a288 chec…
397ebd540 Moved StatusNotification.req(Finishing) behind StopTransaction.req message. Moving to StatusNotification.req(Available) in case transaction ends because of EVDisconnect (#1000) 9ee2f2ae4 UnlockConnector refactoring (#1006) 860848335 Add missing return 9cdb9e5a0 Bump version to 0.23.2 eb6edd47f Only change state to available if the current state is 'Reserved' (#998) b16d8df1b Fixed issue that websocket ping timer was not started when websocket is connected. (#1001) 29d9a5940 Added all missing switch statements, added compile error when statements are missing e95d33ca7 Catch exception when assiging String<> type with too long string (#966) 941b36fdc Fix bug where security event notification was sent while bootnotification was still pending. #984 e197c1323 Bump libevse security dependency to 0.9.3 (#980) 6670d2839 Fix potential nullptr access when we never constructed the websocket. Also change log to debug as it can spam when all options are not available (#979) 09350d7b1 Fix bug where retry of certificate signing is too fast (#970) 1fa8fa0 Fetch everest-evse_security (#954) 9db4783 build with fetchcontent: add libwebsockets dependency (#955) 73cf4e5 Bump version to 0.23.0 (#963) c67cd07 Remove lines where get display message always returned 'unknown' (#964) ab89f47 Implemented missing handle_message in display message functional block (#956) 828ce61 Move 'Availability' callbacks and handlers to new functional block (#950) 5b24f57 Move functional block O: DisplayMessage (#944) a513b3d Prepare smart charging for stationmaxcurrent fix with some small fixes (#936) 353a3eb Move security callbacks and handlers to new functional block (#937) 240f15a Configurable TPM support for SECC or CSMS leaf certificate (#947) e39d823 Reset connection also if lws_client_connect_via_info fails (#948) 19049ff Move authorization callbacks and handlers to new functional block (#938) 96e7ae5 Change cmake test file so it is possible to add separate unit test executables (#934) e58099c Integrate of send Triggermessage (MeterValues) in empty Connector case of present connectors or reject if non is present (#898) 850bd79 Update to add if the period returned was transformed in unit (#935) 4165d6c Implement LocalAuthListDisablePostAuthorize variable (#941) 04b5b75 Initial commit: add device model test helper class. (#927) 83b3aa0 Change c-style casts of size_t to static_cast (#929) e333c07 Censor write only variables logging and added a new callback to sanitize any logging that would be passed to the existing message_callback (#911) 85ee171 Checking supported_feature_profiles for CostAndPrice before attepting to get respective conigutation keys (#924) 8b0ad21 Fixed bounds check of connectors when validating charging profile (#925) 8d5ae96 Support of v1.6 only compilation (#879) 61a1c54 Make centralSystemURI accessible via changeConfiguration, reject if readOnly (#900) 8d162ae Correct remaining booleans in CostAndPrice (#919) 00137ba Converte boolean to true/false string equvivalent (#916) c663837 Move reservations callbacks and handlers to new functional block (Ticket #890, Pull request #894) c84487f Apply validation on the Custom part on ChangeConfiguration.req (#917) 3869f69 Add interfaces and mocks for connectivity manager and ocsp updater. (#918) 0d6f14d Add In Depth Smart Charging Documentation (#905) e52ac96 Reservation all connectors reserved (#878) e7a37da Block possibility of using a stale reference in SafeQueue (#913) 5a7a008 Fixed GetCompositeScheduleRequest invalid optional access (#910) 68b375b Fix potential bad_optional_access crash in connectivity manager (#912) 230ae1a Bugfix/libwebsocket dtor deadlock (#896) 21c83c9 Added bounds checking for ConnectorEvseIds and ISO15118EvseId (#903) 2f005e0 1.6: Support multiple temperature measurements (#902) 0cd8b3c Changed CtrlrComponent vars from references to values (#904) c234ccc Harden handles against invalid connector id range (#882) 0d5649e Check for case insensitive bool value (#887) b8c81b6 Add option to select multiple ocpp versions to libwebsockets and connectivity_manager (#886) 254dfbb Harden message_callback against runtime error (#884) 03cc868 Converting reading context of meter value to Other (#899) 469629c Support hashing directories of certificates (#852) 270acab Set libwebsockets install lib dir to follow the CMAKE_INSTALL_LIBDIR (#876) 01b2034 Fix unchecked access to profiles vector in smart charging test case (#892) 83993da Optionally allow security level 0 connections (#856) 9836ac4 Connectivity manager refactoring (#874) 173af8d Feature/327 use case h01 reservation (#854) c9a6f45 Fix bug in ClearChargingProfile.req (#872) 15e653d Libwebsockets (usage) improvements (#870) 18ca071 Feature/data transfer functional block (#871) 94a6844 Update Reusable Workflow to v1.4.4 (#873) 350430f Moved functionality to create message id from message_queue to call_types and made it a free function. Removed unused imports and usage of boost/uuid headers (#869) 0fbecf4 Merge pull request #863 from EVerest/857-certificates-handling-over-an-unsecure-connection-in-ocpp201-should-not-be-allowed 7f3ce1f fix: rename config variables 4cb4a8a fix: rework on comments 1a04298 fix: add component variables in security controller dbae9b9 fix: reject two cert types db44a89 fix: security profile check when installing certificate 925e9cd Refactor of message dispatching (#864) 74f82e3 Refactored libocpp documentation (#847) b229082 Handle enum value in message queue and use if instead of switch to prevent compiler warnings (#867) ac68603 Added fully featured v16 config as an example (#829) git-subtree-dir: libocpp git-subtree-split: 397ebd540cc12aa4e839751a420cdd7d257895d2
Describe your changes
The API module can send commands to EvseManager before the manager has completed initialisation.
When this happens there is a potential for the manager to dereference a null pointer and terminate.
This change holds requests to EvseManagers until they have all responded with
ready.Issue ticket number and link
Checklist before requesting a review