Use max power capabilities in PMaxSchedule#1979
Merged
Merged
Conversation
Member
|
The PMax schedule in din_server.cpp should be changed as well |
Contributor
I think we just have to be careful for the values in DIN since I know there was an issue with the size of the integer |
Member
There is already a check for that but thx for reminding 👍 |
Contributor
Author
Added it 👍 |
SebaLukas
approved these changes
Mar 19, 2026
Contributor
|
@Pietfried we can test the fix on Monday at the earliest. |
…8-2 and DIN for DC. The behavior is in line with AC. Signed-off-by: Piet Gömpel <pietgoempel@gmail.com>
bb3ae6d to
fb34ae5
Compare
Contributor
Author
Ok, we will include the fix in the upcoming rc4. |
Pietfried
added a commit
that referenced
this pull request
Mar 20, 2026
…8-2 and DIN for DC. The behavior is in line with AC. (#1979) Signed-off-by: Piet Gömpel <pietgoempel@gmail.com>
hikinggrass
added a commit
that referenced
this pull request
Apr 9, 2026
Use the mosquitto based everest::io::mqtt in the framework MQTT abstraction code Make everest::io position independent Use mosquitto_connect_async when no bind_address is used in mosquitto_cpp wrapper Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> Pass MQTTSettings directly to MQTTAbstractionImpl Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> Set bind address from config if present Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> Ignore errors that are already raised Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> Add Message ctor and use make_unique Use topic available at subscribe time instead of receive time to better handle wildcards Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> clang-format Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> Default to empty MQTT bind address Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> Register missing disconnect callback Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> Only print bind address in log if actually set Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> Also start mosquitto with IPv6 support in ci Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> Use disconnect event and subscribe/unsubscribe via add_action (this makes the operation threadsafe since it will run in the event loop) Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> Build io lib with bazel Since it depends on mosquitto but the upstream recipe seems to have the wrong visibility set, patch this Depend on io lib in framework to fix bazel build Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> Address review comment Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> rust/cmake: fix mismatch in cxxbridge version cxxbridge has recently been upgraded to 1.0.194 but not in the CMake support This leads to build errors when building the Rust support with CMake Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> Downgrade mosquitto version used in bazel build to the one used by cmake (2.0.22) 2.1.x seems to cause connectivity issues in our wrapper (needs investigating) Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> Add retry capability to mqtt.get() Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> Refactor get_module_config to also use mqtt.get() with retry Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> Revert changes to mosquitto_cpp.cpp Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> ci: add backport workflow (#1937) pin runner version restrict codeowners for backport workflow update contributing docs Update docs/source/project/contributing.rst Apply suggestion from @Pietfried Signed-off-by: Piet Gömpel <37657534+Pietfried@users.noreply.github.com> Signed-off-by: Wire Jansen <mail@nzbr.de> feat(EnergyNode): Enhancement to set per phase A limit when only W is set (#1942) We can now configure the energy node to convert the total W power to a current per phase limit. This is only useful for top level energy nodes. Furthermore, we've replaced the use of the mutex for the monitor. Signed-off-by: Martin Litre <mnlitre@gmail.com> docs(release-and-versioning): Add link to RpcAPI and add note to exclude Dummy and Simulation modules from public API (#1954) Signed-off-by: Piet Gömpel <pietgoempel@gmail.com> Signed-off-by: Piet Gömpel <37657534+Pietfried@users.noreply.github.com> Co-authored-by: Christoph Burandt <christoph.burandt@pionix.de> fix(config): drop obsolete keys (#1924) The config keys `max_current_import_A` and `max_current_export_A` were recently removed (in #1736), but were still to be found in configs introduced in newer pull requests. Signed-off-by: Moritz Barsnick <moritz.barsnick@chargebyte.com> Fix(libiso15118): CMake finds edm again for local build (#1959) Signed-off-by: Sebastian Lukas <sebastian.lukas@pionix.de> EvseManager: use a cached value for voltage requests to power supply (#1770) The standard ISO15518-20 [V2G20-2183] describes the provided EV target voltage and current in ChargeLoopReq from EV. The voltage and current shall never be send in the same message. In the current implementation, the voltage and current is only sent to powersupplyDC when voltage is greater than 0. But then the voltage is only sent at the beginning of the chargeloop (and in other states). This prevents successful charging when the EV does not update the voltage later. Let's use a cached, latest non-zero value in this case. Signed-off-by: Martin Lukas <martin.lukas@chargebyte.com> Signed-off-by: Michael Heimpold <michael.heimpold@chargebyte.com> Co-authored-by: Michael Heimpold <michael.heimpold@chargebyte.com> rust/cmake: fix mismatch in cxxbridge version (#1947) cxxbridge has recently been upgraded to 1.0.194 but not in the CMake support This leads to build errors when building the Rust support with CMake Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> fix(backport-label): use runtime GitHub App token for backport workflow (#1964) Generate a short-lived installation token via actions/create-github-app-token instead of passing a static secret, which caused Bad Credentials errors Signed-off-by: Piet Gömpel <pietgoempel@gmail.com> Signed-off-by: Andreas Heinrich <andreas.heinrich@rwth-aachen.de> Bazel: Add cross compilation toolchains for armv7 and aarch64 (#1895) Signed-off-by: Dima Dorezyuk <ddo@qwello.eu> Co-authored-by: Dima Dorezyuk <ddo@qwello.eu> io: compatibility with older kernels Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> clang-format Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> Remove superfluous header that would create a compile error in musl Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> Make PACKET_IGNORE_OUTGOING compile time configurable Set this define for cross-compile targets in bazel Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> Set len8_dlc to 0 based on review Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> bazel: Use our openssl recipe in mosquitto recipe Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> bazel: remove obsolete mqtt-c recipe Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> Remove mqtt_bind_address again since it is not needed Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> Turn connecting message back into debug Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> mqtt broker port is a 16 bit unsigned int, not just an int Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> Reduce scope of mqtt_get_config_retries Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> use constexpr Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> Address review comments Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> Move QOS definition into Everest namespace and add converter to io QoS Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> CMake: export standalone util lib (#1975) Potentially fixes #1968. Signed-off-by: Moritz Barsnick <moritz.barsnick@chargebyte.com> feat(evse_manager): add hlc_session_failed variable with protocol-agnostic failure reason (#1939) Introduces HlcSessionFailedReasonEnum and HlcSessionFailedEvent to report ISO 15118-2 HLC session failures independently of the EvseManager state machine. EvseV2G maps the last V2G message at disconnect to a reason and publishes it via the ISO15118_charger interface; IsoMux forwards it from the active protocol; EvseManager attaches the session UUID and re-publishes on the evse_manager interface. Adds smoke tests covering ProtocolNegotiationFailed, AuthorizationFailed, ChargingParametersNotAccepted, and EnergyTransferSetupFailed (cable check fault). Extends plug_in_ac_iso/plug_in_dc_iso with an optional payment_type argument to support the new test scenarios. Signed-off-by: Piet Gömpel <pietgoempel@gmail.com> Signed-off-by: Piet Gömpel <37657534+Pietfried@users.noreply.github.com> Co-authored-by: Christoph Burandt <christoph.burandt@pionix.de> exclude author emails that match github noreply addresses (#1977) Signed-off-by: Andreas Heinrich <andreas.heinrich@rwth-aachen.de> feat: add OCPP 1.6 to 2.x configuration key mapping (#1771) Introduce mapping layer to reuse OCPP 2.x device model storage for OCPP 1.6 implementations. Adds OCPP16MavericksCtrlr component for 1.6 configuration keys without direct 2.x equivalents. feat: add mapping between OCPP V2 and V16 configuration keys fix: remove redundant file fix: compile & incorporate PR comments fix: add write only parameter so that AuthorizationKey can be retrieved feat: added checking for behind the scenes supported feature profiles fix: addressed PR #1771 additional comments SecurityProfile, AuthorizationKey and CentralSystemURI now in OCPP16LegacyCtrlr Signed-off-by: James Chapman <james.chapman@pionix.de> fix(EvseManager): prevent delayed auth response from bypassing external cancellation (#1963) A delayed authorization response arriving after cancel_transaction() could restore flag_authorized, preventing the state machine from routing to Finished and leaving the transaction open after a remote stop. Introduce flag_externally_cancelled to block authorize() from overriding the cancellation. Signed-off-by: Piet Gömpel <pietgoempel@gmail.com> fix(ISO15118): Use max power capabilities in PMaxSchedule for ISO15118-2 and DIN for DC. The behavior is in line with AC. (#1979) Signed-off-by: Piet Gömpel <pietgoempel@gmail.com> clang-format Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> bazel: fix mosquitto dependency on openssl Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> yocto/kirkstone: add openssl patch for newer versions (#1917) The patch originally provided in lib/staging/tls and lib/everest/tls was for openssl-3.0.8, and no longer applies to openssl starting with version 3.0.19, which is currently used by poky kirkstone (post 4.0.33). Convert the original SRC_URI from a URL pointing to a git blob to an actual patch file. Create a rebased patch file for 3.0.19. Apply the patches conditionally, depending on the openssl version. Restrict the bbappend to openssl versions 3.0.x via file name scheme, as the patch does not apply to 3.y with y >= 1 either (which kirkstone will likely never package). Signed-off-by: Moritz Barsnick <moritz.barsnick@chargebyte.com> fix(EvseManager): Setting the powersupply target is not jumping anymore if charging in d20 dynamic mode. (#1980) Add smoke-tests: Parameterize DC ISO15118 smoke tests so that they run with ISO15118-2 and ISO15118-20 Signed-off-by: Sebastian Lukas <sebastian.lukas@pionix.de> Signed-off-by: Piet Gömpel <pietgoempel@gmail.com> Co-authored-by: Piet Gömpel <pietgoempel@gmail.com> feat(framework): retries for mqtt get() (#1960) * Add retry capability to mqtt.get() Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> * Refactor get_module_config to also use mqtt.get() with retry Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> --------- Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> Skip scrollbar in bottom for ocpp log and add line break in message characterisation (#1950) Signed-off-by: Matthias Suess <matthias.suess@mail.nidec.com> dummyTokenProviderManual: Add MQTT topic configuration for token provider (#1908) When no mqtt_topic: provided, the module will subscribe to "everest_api/<module_id>/cmd/provide" by default. If mqtt_topic: is provided, the module will subscribe to that topic instead. Signed-off-by: ThatsLucas <lucasmailpro9@gmail.com> Co-authored-by: Christoph Burandt <christoph.burandt@pionix.de> fix(evsev2g): Flaky test by fixing threads (#1988) Signed-off-by: Martin Litre <mnlitre@gmail.com> fix(ocpp): respect CertSigningWaitMinimum in cert signing retry (#1982) The certificate signing retry logic had two spec violations (A02.FR.17, A02.FR.18): - A hardcoded 250s floor overrode CertSigningWaitMinimum via std::max(), making configured values below 250s ineffective. Reduced to a 10s safety floor to prevent rapid retries from misconfiguration while respecting legitimate values. - Exponential backoff started at 2^1 instead of 2^0, doubling the first wait. Fixed exponent to csr_attempt-1 so the first wait equals CertSigningWaitMinimum per spec. Also extends the timer test stub to capture timeout intervals and adds unit tests verifying the backoff sequence and the 10s floor. Signed-off-by: Martin Litre <mnlitre@gmail.com> fix(websocket): prevent segfault during lws_context_destroy reconnection callbacks (#1971) When a websocket connection fails, lws_context_destroy fires cleanup callbacks (e.g. CLIENT_CLOSED, EVENT_WAIT_CANCELLED) while the connection state is being torn down. These callbacks call lws_callback_on_writable with a null wsi (set to nullptr in reset_connection_data), causing a SIGSEGV. Add an atomic 'resetting' flag to ConnectionData that suppresses all callbacks in callback_minimal during context destruction. Also guard push_deferred_callback against enqueuing during shutdown. Signed-off-by: Martin Litre <mnlitre@gmail.com> added yocto specifications in CODEOWNERS file + barsnick for EvseV2G (#1966) Signed-off-by: Piet Gömpel <pietgoempel@gmail.com> Signed-off-by: Piet Gömpel <37657534+Pietfried@users.noreply.github.com> fix(message_queue): protect BootNotification from being dropped during queue overflow (#1987) When the websocket connection is delayed, transaction messages accumulate and trigger drop_messages_from_normal_message_queue(). Since BootNotification sits at the front of the normal queue (push_front'd at startup), it gets dropped first — deadlocking the queue because transaction messages with stall_until_accepted=true wait for registration that never completes. Skip BootNotification in the drop loop using is_boot_notification_message(), and add a break guard in check_queue_sizes() to prevent infinite looping when only protected messages remain in the normal queue. Signed-off-by: Martin Litre <mnlitre@gmail.com> fix(EvseManager,DC): Set default current ramp to 25A/s (#1999) Signed-off-by: Cornelius Claussen <cc@pionix.de> feat(IsoMux): Make proxy connect target configurable via proxy_device (#2004) * Add a new config option to IsoMux. When set, the proxy connects to the IPv6 link-local address of the given interface instead of the hardcoded ::1 loopback; Defaults to empty string to preserve existing behaviour. * Required for parallel ISO 15118 test execution where multiple IsoMux instances would otherwise conflict on the shared loopback. Signed-off-by: Piet Gömpel <pietgoempel@gmail.com> feat(ocpp): inject TariffFallbackMessage into AuthorizeResponse and TotalCostFallbackMessage at offline transaction end (#1989) * When the CSMS provides no personalMessage in the AuthorizeResponse, inject the configured TariffFallbackMessage (or OfflineTariffFallbackMessage when offline) into IdTokenInfo.personalMessage, with additional language variants in customData.personalMessageExtra (California Pricing Spec 4.3.4, I04.FR.01). * When a transaction ends while offline, publish TotalCostFallbackMessage via the tariff_message_callback since no CSMS totalCost response will arrive (I05.FR.02). * Extended Integrate Tariff and Cost documentation Signed-off-by: Piet Gömpel <pietgoempel@gmail.com> fix(iso15118): TC_SECC_CMN_VTB_SDP_004 (#1983) Signed-off-by: Martin Litre <mnlitre@gmail.com> add TSC notes 2026-03-26 (#2013) Signed-off-by: Marco Möller <2248448+caller@users.noreply.github.com> Update index.rst (#2014) reflect new TSC roles and election results Signed-off-by: Marco Möller <2248448+caller@users.noreply.github.com> Add sync timer so loop_misc() of the MQTT client is called periodically This ensures that, if there is no MQTT traffic during the keep alive period, a PING is still sent to the broker Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> feat(mqtt_util): Add client_id support (#2011) Signed-off-by: Martin Litre <mnlitre@gmail.com> Bazel: comply with the 10Gb github cache limit (#2023) * Bazel: tighten fallback keys Signed-off-by: Dima Dorezyuk <ddo@qwello.eu> * strip everything to reduce cache Signed-off-by: Dima Dorezyuk <ddo@qwello.eu> --------- Signed-off-by: Dima Dorezyuk <ddo@qwello.eu> Co-authored-by: Dima Dorezyuk <ddo@qwello.eu> feat(cmake): add selective library inclusion for EDM consumers (#2021) Allow external projects to pull only specific everest-core libraries via EDM/CPM without building the full module framework. This is useful for projects that only need lightweight libraries like liblog, everest-util, everest-io, or heavier standalone ones like libocpp and libiso15118. Three new CMake options control this behavior: - EVEREST_LIBS_ONLY: skip modules, applications, config, and code generation entirely — only build libraries under lib/everest/ - EVEREST_INCLUDE_LIBS: semicolon-separated allowlist of libraries to build, with automatic transitive dependency resolution - EVEREST_EXCLUDE_LIBS: semicolon-separated blocklist of libraries to skip Example usage from an external project's dependencies.yaml: everest-core: git: https://github.com/EVerest/everest-core.git git_tag: 2026.02.0 options: - "EVEREST_LIBS_ONLY ON" - "EVEREST_INCLUDE_LIBS log;util;io" The internal dependency map is defined in a single file (cmake/ev-lib-dependencies.cmake) which also serves as the master list of library subdirectories. Adding a new library only requires updating this one file. All options default to empty/OFF, preserving existing behavior. Signed-off-by: Martin Litre <mnlitre@gmail.com> fix(smoke-tests): Added a sleep to test_iso15118_dc_session_error_before_session in order to allow EvseManager to process error ; Added rerun anotation for test cases that include ev side pausing. (#2031) Signed-off-by: Piet Gömpel <pietgoempel@gmail.com> Remove MQTT-C from framework dependencies.yaml Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> MQTT-C is only a dependency of the fusion_charger_lib power_stack_mock Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> refactor(framework): Change MQTTAbstraction to pure virtual function (#2022) * Change allows for easier testability of components that use MQTTAbstraction * Added mock class for MQTTAbstraction that can be used for testing * Adjusted downstream usage of MQTTAbstraction Signed-off-by: Piet Gömpel <pietgoempel@gmail.com> Bazel: Extend the everest_env.bzl to handle arbitrary test binaries (#2018) Signed-off-by: Dima Dorezyuk <ddo@qwello.eu> Co-authored-by: Dima Dorezyuk <ddo@qwello.eu> fix(framework): log MQTT messages to level "verbose" (#2029) In level "debug", these messages were flooding the logs, keeping you from being able to debug actual issues. Fixes #2028 Signed-off-by: Moritz Barsnick <moritz.barsnick@chargebyte.com> Bazel: Prepere support for running smoke_tests.py as integration test (#2020) Signed-off-by: Dima Dorezyuk <ddo@qwello.eu> Co-authored-by: Dima Dorezyuk <ddo@qwello.eu> docs(contribution-guideline): Clarify contributor responsibilities in contribution guideline (#1955) * docs(contribution): clarify contributor responsibilities in contribution guidelines; add link to LF policy on AI-Generated open source contributions Signed-off-by: Piet Gömpel <pietgoempel@gmail.com> * add sentence for human contribution Signed-off-by: Piet Gömpel <pietgoempel@gmail.com> * Specifically mentioning human contributor Signed-off-by: Piet Gömpel <pietgoempel@gmail.com> --------- Signed-off-by: Piet Gömpel <pietgoempel@gmail.com> Fix error and warning handling; add support in bringup for temp display (#2015) Signed-off-by: Florin Mihut <florinmihut1@gmail.com> Bazel: build io library and dependencies (#2040) Since the arm toolchains in the ci are quite old, do not build the "can" and "raw" portions of the io library for these targets Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> remove duplicate mosquitto entry in Bazel extension.bzl Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> Do not convert MQTT broker port between string an uint, just keep it at the provided uint Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> Revert "io: compatibility with older kernels" This reverts commit 775508b. Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> revert can and tun_tap changes Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> Fix integrated yocto source fetching (#2025) If the main repo is not called "everest-core" this could cause issues. Now uses the basename of the checked-out repo for flexibility Fixes #2024 Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> Manager: add to the cli (#2036) Signed-off-by: Dima Dorezyuk <ddo@qwello.eu> Co-authored-by: Dima Dorezyuk <ddo@qwello.eu> Bazel: Update python dependencies (#2032) Signed-off-by: Dima Dorezyuk <ddo@qwello.eu> Co-authored-by: Dima Dorezyuk <ddo@qwello.eu> RpcApi: normalize signed external limits to absolute values (#2005) Fix external limit handling so negative values are mapped like the API module and discharge limits are transferred correctly Signed-off-by: Fabian Hartung <fabian.hartung@chargebyte.com> Rust: Add `everestrs_main` proc macro (#2038) * Rust: Add proc macro Signed-off-by: Dima Dorezyuk <ddo@qwello.eu> * rename to everesrs_derive Signed-off-by: Dima Dorezyuk <ddo@qwello.eu> --------- Signed-off-by: Dima Dorezyuk <ddo@qwello.eu> Co-authored-by: Dima Dorezyuk <ddo@qwello.eu> everest::lib::io::mqtt_client add periodic call to loop_misc Signed-off-by: Jan Christoph Habig <jan.habig@pionix.de> FIX missing pings Signed-off-by: Jan Christoph Habig <jan.habig@pionix.de>
hikinggrass
added a commit
that referenced
this pull request
Apr 9, 2026
Use the mosquitto based everest::io::mqtt in the framework MQTT abstraction code Make everest::io position independent Use mosquitto_connect_async when no bind_address is used in mosquitto_cpp wrapper Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> Pass MQTTSettings directly to MQTTAbstractionImpl Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> Set bind address from config if present Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> Ignore errors that are already raised Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> Add Message ctor and use make_unique Use topic available at subscribe time instead of receive time to better handle wildcards Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> clang-format Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> Default to empty MQTT bind address Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> Register missing disconnect callback Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> Only print bind address in log if actually set Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> Also start mosquitto with IPv6 support in ci Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> Use disconnect event and subscribe/unsubscribe via add_action (this makes the operation threadsafe since it will run in the event loop) Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> Build io lib with bazel Since it depends on mosquitto but the upstream recipe seems to have the wrong visibility set, patch this Depend on io lib in framework to fix bazel build Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> Address review comment Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> rust/cmake: fix mismatch in cxxbridge version cxxbridge has recently been upgraded to 1.0.194 but not in the CMake support This leads to build errors when building the Rust support with CMake Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> Downgrade mosquitto version used in bazel build to the one used by cmake (2.0.22) 2.1.x seems to cause connectivity issues in our wrapper (needs investigating) Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> Add retry capability to mqtt.get() Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> Refactor get_module_config to also use mqtt.get() with retry Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> Revert changes to mosquitto_cpp.cpp Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> ci: add backport workflow (#1937) pin runner version restrict codeowners for backport workflow update contributing docs Update docs/source/project/contributing.rst Apply suggestion from @Pietfried Signed-off-by: Piet Gömpel <37657534+Pietfried@users.noreply.github.com> Signed-off-by: Wire Jansen <mail@nzbr.de> feat(EnergyNode): Enhancement to set per phase A limit when only W is set (#1942) We can now configure the energy node to convert the total W power to a current per phase limit. This is only useful for top level energy nodes. Furthermore, we've replaced the use of the mutex for the monitor. Signed-off-by: Martin Litre <mnlitre@gmail.com> docs(release-and-versioning): Add link to RpcAPI and add note to exclude Dummy and Simulation modules from public API (#1954) Signed-off-by: Piet Gömpel <pietgoempel@gmail.com> Signed-off-by: Piet Gömpel <37657534+Pietfried@users.noreply.github.com> Co-authored-by: Christoph Burandt <christoph.burandt@pionix.de> fix(config): drop obsolete keys (#1924) The config keys `max_current_import_A` and `max_current_export_A` were recently removed (in #1736), but were still to be found in configs introduced in newer pull requests. Signed-off-by: Moritz Barsnick <moritz.barsnick@chargebyte.com> Fix(libiso15118): CMake finds edm again for local build (#1959) Signed-off-by: Sebastian Lukas <sebastian.lukas@pionix.de> EvseManager: use a cached value for voltage requests to power supply (#1770) The standard ISO15518-20 [V2G20-2183] describes the provided EV target voltage and current in ChargeLoopReq from EV. The voltage and current shall never be send in the same message. In the current implementation, the voltage and current is only sent to powersupplyDC when voltage is greater than 0. But then the voltage is only sent at the beginning of the chargeloop (and in other states). This prevents successful charging when the EV does not update the voltage later. Let's use a cached, latest non-zero value in this case. Signed-off-by: Martin Lukas <martin.lukas@chargebyte.com> Signed-off-by: Michael Heimpold <michael.heimpold@chargebyte.com> Co-authored-by: Michael Heimpold <michael.heimpold@chargebyte.com> rust/cmake: fix mismatch in cxxbridge version (#1947) cxxbridge has recently been upgraded to 1.0.194 but not in the CMake support This leads to build errors when building the Rust support with CMake Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> fix(backport-label): use runtime GitHub App token for backport workflow (#1964) Generate a short-lived installation token via actions/create-github-app-token instead of passing a static secret, which caused Bad Credentials errors Signed-off-by: Piet Gömpel <pietgoempel@gmail.com> Signed-off-by: Andreas Heinrich <andreas.heinrich@rwth-aachen.de> Bazel: Add cross compilation toolchains for armv7 and aarch64 (#1895) Signed-off-by: Dima Dorezyuk <ddo@qwello.eu> Co-authored-by: Dima Dorezyuk <ddo@qwello.eu> io: compatibility with older kernels Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> clang-format Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> Remove superfluous header that would create a compile error in musl Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> Make PACKET_IGNORE_OUTGOING compile time configurable Set this define for cross-compile targets in bazel Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> Set len8_dlc to 0 based on review Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> bazel: Use our openssl recipe in mosquitto recipe Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> bazel: remove obsolete mqtt-c recipe Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> Remove mqtt_bind_address again since it is not needed Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> Turn connecting message back into debug Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> mqtt broker port is a 16 bit unsigned int, not just an int Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> Reduce scope of mqtt_get_config_retries Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> use constexpr Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> Address review comments Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> Move QOS definition into Everest namespace and add converter to io QoS Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> CMake: export standalone util lib (#1975) Potentially fixes #1968. Signed-off-by: Moritz Barsnick <moritz.barsnick@chargebyte.com> feat(evse_manager): add hlc_session_failed variable with protocol-agnostic failure reason (#1939) Introduces HlcSessionFailedReasonEnum and HlcSessionFailedEvent to report ISO 15118-2 HLC session failures independently of the EvseManager state machine. EvseV2G maps the last V2G message at disconnect to a reason and publishes it via the ISO15118_charger interface; IsoMux forwards it from the active protocol; EvseManager attaches the session UUID and re-publishes on the evse_manager interface. Adds smoke tests covering ProtocolNegotiationFailed, AuthorizationFailed, ChargingParametersNotAccepted, and EnergyTransferSetupFailed (cable check fault). Extends plug_in_ac_iso/plug_in_dc_iso with an optional payment_type argument to support the new test scenarios. Signed-off-by: Piet Gömpel <pietgoempel@gmail.com> Signed-off-by: Piet Gömpel <37657534+Pietfried@users.noreply.github.com> Co-authored-by: Christoph Burandt <christoph.burandt@pionix.de> exclude author emails that match github noreply addresses (#1977) Signed-off-by: Andreas Heinrich <andreas.heinrich@rwth-aachen.de> feat: add OCPP 1.6 to 2.x configuration key mapping (#1771) Introduce mapping layer to reuse OCPP 2.x device model storage for OCPP 1.6 implementations. Adds OCPP16MavericksCtrlr component for 1.6 configuration keys without direct 2.x equivalents. feat: add mapping between OCPP V2 and V16 configuration keys fix: remove redundant file fix: compile & incorporate PR comments fix: add write only parameter so that AuthorizationKey can be retrieved feat: added checking for behind the scenes supported feature profiles fix: addressed PR #1771 additional comments SecurityProfile, AuthorizationKey and CentralSystemURI now in OCPP16LegacyCtrlr Signed-off-by: James Chapman <james.chapman@pionix.de> fix(EvseManager): prevent delayed auth response from bypassing external cancellation (#1963) A delayed authorization response arriving after cancel_transaction() could restore flag_authorized, preventing the state machine from routing to Finished and leaving the transaction open after a remote stop. Introduce flag_externally_cancelled to block authorize() from overriding the cancellation. Signed-off-by: Piet Gömpel <pietgoempel@gmail.com> fix(ISO15118): Use max power capabilities in PMaxSchedule for ISO15118-2 and DIN for DC. The behavior is in line with AC. (#1979) Signed-off-by: Piet Gömpel <pietgoempel@gmail.com> clang-format Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> bazel: fix mosquitto dependency on openssl Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> yocto/kirkstone: add openssl patch for newer versions (#1917) The patch originally provided in lib/staging/tls and lib/everest/tls was for openssl-3.0.8, and no longer applies to openssl starting with version 3.0.19, which is currently used by poky kirkstone (post 4.0.33). Convert the original SRC_URI from a URL pointing to a git blob to an actual patch file. Create a rebased patch file for 3.0.19. Apply the patches conditionally, depending on the openssl version. Restrict the bbappend to openssl versions 3.0.x via file name scheme, as the patch does not apply to 3.y with y >= 1 either (which kirkstone will likely never package). Signed-off-by: Moritz Barsnick <moritz.barsnick@chargebyte.com> fix(EvseManager): Setting the powersupply target is not jumping anymore if charging in d20 dynamic mode. (#1980) Add smoke-tests: Parameterize DC ISO15118 smoke tests so that they run with ISO15118-2 and ISO15118-20 Signed-off-by: Sebastian Lukas <sebastian.lukas@pionix.de> Signed-off-by: Piet Gömpel <pietgoempel@gmail.com> Co-authored-by: Piet Gömpel <pietgoempel@gmail.com> feat(framework): retries for mqtt get() (#1960) * Add retry capability to mqtt.get() Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> * Refactor get_module_config to also use mqtt.get() with retry Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> --------- Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> Skip scrollbar in bottom for ocpp log and add line break in message characterisation (#1950) Signed-off-by: Matthias Suess <matthias.suess@mail.nidec.com> dummyTokenProviderManual: Add MQTT topic configuration for token provider (#1908) When no mqtt_topic: provided, the module will subscribe to "everest_api/<module_id>/cmd/provide" by default. If mqtt_topic: is provided, the module will subscribe to that topic instead. Signed-off-by: ThatsLucas <lucasmailpro9@gmail.com> Co-authored-by: Christoph Burandt <christoph.burandt@pionix.de> fix(evsev2g): Flaky test by fixing threads (#1988) Signed-off-by: Martin Litre <mnlitre@gmail.com> fix(ocpp): respect CertSigningWaitMinimum in cert signing retry (#1982) The certificate signing retry logic had two spec violations (A02.FR.17, A02.FR.18): - A hardcoded 250s floor overrode CertSigningWaitMinimum via std::max(), making configured values below 250s ineffective. Reduced to a 10s safety floor to prevent rapid retries from misconfiguration while respecting legitimate values. - Exponential backoff started at 2^1 instead of 2^0, doubling the first wait. Fixed exponent to csr_attempt-1 so the first wait equals CertSigningWaitMinimum per spec. Also extends the timer test stub to capture timeout intervals and adds unit tests verifying the backoff sequence and the 10s floor. Signed-off-by: Martin Litre <mnlitre@gmail.com> fix(websocket): prevent segfault during lws_context_destroy reconnection callbacks (#1971) When a websocket connection fails, lws_context_destroy fires cleanup callbacks (e.g. CLIENT_CLOSED, EVENT_WAIT_CANCELLED) while the connection state is being torn down. These callbacks call lws_callback_on_writable with a null wsi (set to nullptr in reset_connection_data), causing a SIGSEGV. Add an atomic 'resetting' flag to ConnectionData that suppresses all callbacks in callback_minimal during context destruction. Also guard push_deferred_callback against enqueuing during shutdown. Signed-off-by: Martin Litre <mnlitre@gmail.com> added yocto specifications in CODEOWNERS file + barsnick for EvseV2G (#1966) Signed-off-by: Piet Gömpel <pietgoempel@gmail.com> Signed-off-by: Piet Gömpel <37657534+Pietfried@users.noreply.github.com> fix(message_queue): protect BootNotification from being dropped during queue overflow (#1987) When the websocket connection is delayed, transaction messages accumulate and trigger drop_messages_from_normal_message_queue(). Since BootNotification sits at the front of the normal queue (push_front'd at startup), it gets dropped first — deadlocking the queue because transaction messages with stall_until_accepted=true wait for registration that never completes. Skip BootNotification in the drop loop using is_boot_notification_message(), and add a break guard in check_queue_sizes() to prevent infinite looping when only protected messages remain in the normal queue. Signed-off-by: Martin Litre <mnlitre@gmail.com> fix(EvseManager,DC): Set default current ramp to 25A/s (#1999) Signed-off-by: Cornelius Claussen <cc@pionix.de> feat(IsoMux): Make proxy connect target configurable via proxy_device (#2004) * Add a new config option to IsoMux. When set, the proxy connects to the IPv6 link-local address of the given interface instead of the hardcoded ::1 loopback; Defaults to empty string to preserve existing behaviour. * Required for parallel ISO 15118 test execution where multiple IsoMux instances would otherwise conflict on the shared loopback. Signed-off-by: Piet Gömpel <pietgoempel@gmail.com> feat(ocpp): inject TariffFallbackMessage into AuthorizeResponse and TotalCostFallbackMessage at offline transaction end (#1989) * When the CSMS provides no personalMessage in the AuthorizeResponse, inject the configured TariffFallbackMessage (or OfflineTariffFallbackMessage when offline) into IdTokenInfo.personalMessage, with additional language variants in customData.personalMessageExtra (California Pricing Spec 4.3.4, I04.FR.01). * When a transaction ends while offline, publish TotalCostFallbackMessage via the tariff_message_callback since no CSMS totalCost response will arrive (I05.FR.02). * Extended Integrate Tariff and Cost documentation Signed-off-by: Piet Gömpel <pietgoempel@gmail.com> fix(iso15118): TC_SECC_CMN_VTB_SDP_004 (#1983) Signed-off-by: Martin Litre <mnlitre@gmail.com> add TSC notes 2026-03-26 (#2013) Signed-off-by: Marco Möller <2248448+caller@users.noreply.github.com> Update index.rst (#2014) reflect new TSC roles and election results Signed-off-by: Marco Möller <2248448+caller@users.noreply.github.com> Add sync timer so loop_misc() of the MQTT client is called periodically This ensures that, if there is no MQTT traffic during the keep alive period, a PING is still sent to the broker Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> feat(mqtt_util): Add client_id support (#2011) Signed-off-by: Martin Litre <mnlitre@gmail.com> Bazel: comply with the 10Gb github cache limit (#2023) * Bazel: tighten fallback keys Signed-off-by: Dima Dorezyuk <ddo@qwello.eu> * strip everything to reduce cache Signed-off-by: Dima Dorezyuk <ddo@qwello.eu> --------- Signed-off-by: Dima Dorezyuk <ddo@qwello.eu> Co-authored-by: Dima Dorezyuk <ddo@qwello.eu> feat(cmake): add selective library inclusion for EDM consumers (#2021) Allow external projects to pull only specific everest-core libraries via EDM/CPM without building the full module framework. This is useful for projects that only need lightweight libraries like liblog, everest-util, everest-io, or heavier standalone ones like libocpp and libiso15118. Three new CMake options control this behavior: - EVEREST_LIBS_ONLY: skip modules, applications, config, and code generation entirely — only build libraries under lib/everest/ - EVEREST_INCLUDE_LIBS: semicolon-separated allowlist of libraries to build, with automatic transitive dependency resolution - EVEREST_EXCLUDE_LIBS: semicolon-separated blocklist of libraries to skip Example usage from an external project's dependencies.yaml: everest-core: git: https://github.com/EVerest/everest-core.git git_tag: 2026.02.0 options: - "EVEREST_LIBS_ONLY ON" - "EVEREST_INCLUDE_LIBS log;util;io" The internal dependency map is defined in a single file (cmake/ev-lib-dependencies.cmake) which also serves as the master list of library subdirectories. Adding a new library only requires updating this one file. All options default to empty/OFF, preserving existing behavior. Signed-off-by: Martin Litre <mnlitre@gmail.com> fix(smoke-tests): Added a sleep to test_iso15118_dc_session_error_before_session in order to allow EvseManager to process error ; Added rerun anotation for test cases that include ev side pausing. (#2031) Signed-off-by: Piet Gömpel <pietgoempel@gmail.com> Remove MQTT-C from framework dependencies.yaml Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> MQTT-C is only a dependency of the fusion_charger_lib power_stack_mock Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> refactor(framework): Change MQTTAbstraction to pure virtual function (#2022) * Change allows for easier testability of components that use MQTTAbstraction * Added mock class for MQTTAbstraction that can be used for testing * Adjusted downstream usage of MQTTAbstraction Signed-off-by: Piet Gömpel <pietgoempel@gmail.com> Bazel: Extend the everest_env.bzl to handle arbitrary test binaries (#2018) Signed-off-by: Dima Dorezyuk <ddo@qwello.eu> Co-authored-by: Dima Dorezyuk <ddo@qwello.eu> fix(framework): log MQTT messages to level "verbose" (#2029) In level "debug", these messages were flooding the logs, keeping you from being able to debug actual issues. Fixes #2028 Signed-off-by: Moritz Barsnick <moritz.barsnick@chargebyte.com> Bazel: Prepere support for running smoke_tests.py as integration test (#2020) Signed-off-by: Dima Dorezyuk <ddo@qwello.eu> Co-authored-by: Dima Dorezyuk <ddo@qwello.eu> docs(contribution-guideline): Clarify contributor responsibilities in contribution guideline (#1955) * docs(contribution): clarify contributor responsibilities in contribution guidelines; add link to LF policy on AI-Generated open source contributions Signed-off-by: Piet Gömpel <pietgoempel@gmail.com> * add sentence for human contribution Signed-off-by: Piet Gömpel <pietgoempel@gmail.com> * Specifically mentioning human contributor Signed-off-by: Piet Gömpel <pietgoempel@gmail.com> --------- Signed-off-by: Piet Gömpel <pietgoempel@gmail.com> Fix error and warning handling; add support in bringup for temp display (#2015) Signed-off-by: Florin Mihut <florinmihut1@gmail.com> Bazel: build io library and dependencies (#2040) Since the arm toolchains in the ci are quite old, do not build the "can" and "raw" portions of the io library for these targets Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> remove duplicate mosquitto entry in Bazel extension.bzl Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> Do not convert MQTT broker port between string an uint, just keep it at the provided uint Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> Revert "io: compatibility with older kernels" This reverts commit 775508b. Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> revert can and tun_tap changes Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> Fix integrated yocto source fetching (#2025) If the main repo is not called "everest-core" this could cause issues. Now uses the basename of the checked-out repo for flexibility Fixes #2024 Signed-off-by: Kai-Uwe Hermann <kai-uwe.hermann@pionix.de> Manager: add to the cli (#2036) Signed-off-by: Dima Dorezyuk <ddo@qwello.eu> Co-authored-by: Dima Dorezyuk <ddo@qwello.eu> Bazel: Update python dependencies (#2032) Signed-off-by: Dima Dorezyuk <ddo@qwello.eu> Co-authored-by: Dima Dorezyuk <ddo@qwello.eu> RpcApi: normalize signed external limits to absolute values (#2005) Fix external limit handling so negative values are mapped like the API module and discharge limits are transferred correctly Signed-off-by: Fabian Hartung <fabian.hartung@chargebyte.com> Rust: Add `everestrs_main` proc macro (#2038) * Rust: Add proc macro Signed-off-by: Dima Dorezyuk <ddo@qwello.eu> * rename to everesrs_derive Signed-off-by: Dima Dorezyuk <ddo@qwello.eu> --------- Signed-off-by: Dima Dorezyuk <ddo@qwello.eu> Co-authored-by: Dima Dorezyuk <ddo@qwello.eu> everest::lib::io::mqtt_client add periodic call to loop_misc Signed-off-by: Jan Christoph Habig <jan.habig@pionix.de> FIX missing pings Signed-off-by: Jan Christoph Habig <jan.habig@pionix.de>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Describe your changes
This PR addresses the issue that inside an ISO15118-2 ChargeParameterDiscoveryRes DC session, EVerest reports the power that is available at that point in time. This can apparently cause EVs to use this as a maximum limit for the whole session. In order to improve real world compatibility, we set this value to the capabilities of the DC power supply. This is in line with the behavior in AC.
Issue ticket number and link
Checklist before requesting a review