Skip to content

Releases: matth-x/MicroOcpp

MicroOCPP v1.2.0

03 Nov 22:12
2187f79
Compare
Choose a tag to compare

New features (for OCPP 1.6 and 2.0.1), optimization of internal data structures and slight changes of the API.

PIO package: matth-x/[email protected]

Some of the internal changes also affect the API in MicroOcpp.h (e.g. ReadingContext has been refactored from a C++ enum class to a C-style enum). See the descriptions in the PRs for potentially breaking changes.

Changelog:

Changed

  • Change MicroOcpp::ChargePointStatus into C-style enum (#309)
  • Connector lock disabled by default per MO_ENABLE_CONNECTOR_LOCK (#312)
  • Relaxed temporal order of non-tx-related operations (#345)
  • Use pseudo-GUIDs as messageId (#345)
  • ISO 8601 milliseconds omitted by default (352)
  • Rename MO_NUM_EVSE into MO_NUM_EVSEID (v2.0.1) (#371)
  • Change MicroOcpp::ReadingContext into C-style struct (#371)
  • Refactor RequestStartTransaction (v2.0.1) (#371)

Added

  • Provide ChargePointStatus in API (#309)
  • Built-in OTA over FTP (#313)
  • Built-in Diagnostics over FTP (#313)
  • Error severity mechanism (#331)
  • Build flag MO_REPORT_NOERROR to report error recovery (#331)
  • Support for parentIdTag (#344)
  • Input validation for unsigned int Configs (#344)
  • Support for TransactionMessageAttempts/-RetryInterval (#345, #380)
  • Heap profiler and custom allocator support (#350)
  • Migration of persistent storage (#355)
  • Benchmarks pipeline (#369, #376)
  • MeterValues port for OCPP 2.0.1 (#371)
  • UnlockConnector port for OCPP 2.0.1 (#371)
  • More APIs ported to OCPP 2.0.1 (#371)
  • Support for AuthorizeRemoteTxRequests (#373)
  • Persistent Variable and Tx store for OCPP 2.0.1 (#379)

Removed

  • ESP32 built-in HTTP OTA (#313)
  • Operation store (files op-*.jsn and opstore.jsn) (#345)
  • Explicit tracking of txNr (file txstore.jsn) (#345)
  • SimpleRequestFactory (#351)

Fixed

  • Skip Unix files . and .. in ftw_root (#313)
  • Skip clock-aligned measurements when time not set
  • Hold back error StatusNotifs when time not set (#311)
  • Don't send Available when tx occupies connector (#315)
  • Make ChargingScheduleAllowedChargingRateUnit read-only (#328)
  • Don't send StatusNotifs while offline (#344) (see (#371))
  • Don't change into Unavailable upon Reset (#344)
  • Reject DataTransfer by default (#344)
  • UnlockConnector NotSupported if connectorId invalid (#344)
  • Fix regression bug of #345 (#353, #356)
  • Correct MeterValue PreBoot timestamp (#354)
  • Send errorCode in triggered StatusNotif (#359)
  • Remove int to bool conversion in ChangeConfig (#362)
  • Multiple fixes of the OCPP 2.0.1 extension (#371)

MicroOcpp v1.1.0

21 May 14:54
e879c0e
Compare
Choose a tag to compare

New features release, bug fixes and experimental OCPP 2.0.1 support.

PIO package: matth-x/[email protected]

The API in MicroOcpp.h / MicroOcpp_c.h is compatible with the v1.0 API. See the migration notes for a few important things to consider nevertheless: Migrating to v1.1

The experimental OCPP 2.0.1 implementation is disabled by default and won't be compiled into the firmware. See the README for a description on how to try it out.

Changed

  • Replace PollResult<bool> with enum UnlockConnectorResult (#271)
  • Rename master branch into main
  • Tx logic directly checks if WebSocket is offline (#282)
  • ocppPermitsCharge ignores Faulted state (#279)
  • setEnergyMeterInput expects int input (#301)

Added

  • File index (#270)
  • Config Cst_TxStartOnPowerPathClosed to put back TxStartPoint (#271)
  • Build flag MO_ENABLE_RESERVATION=0 disables Reservation module (#302)
  • Build flag MO_ENABLE_LOCAL_AUTH=0 disables LocalAuthList module (#303)
  • Function bool isConnected() in Connection interface (#282)
  • Build flags for customizing memory limits of SmartCharging (#260)
  • SConscript (#287)
  • C-API for custom Configs store (297)
  • Certificate Management, UCs M03 - M05 (#262, #274, #292)
  • FTP Client (#291)
  • ProtocolVersion selects v1.6 or v2.0.1 (#247)
  • Build flag MO_ENABLE_V201=1 enables OCPP 2.0.1 features (#247)
    • Variables (non-persistent), UCs B05 - B07 (#247, #284)
    • Transactions (preview only), UCs E01 - E12 (#247)
    • StatusNotification compatibility (#247)
    • ChangeAvailability compatibility (#285)
    • Reset compatibility, UCs B11 - B12 (#286)
    • RequestStart-/StopTransaction, UCs F01 - F02 (#289)

Fixed

  • Fix defect idTag check in endTransaction (#275)
  • Make field localAuthorizationList in SendLocalList optional
  • Update charging profiles when flash disabled (relates to #260)
  • Ignore UnlockConnector when handler not set (#271)
  • Reject ChargingProfile if unit not supported (#271)
  • Fix building with debug level warn and error
  • Reduce debug output FW size overhead (#304)
  • Fix transaction freeze in offline mode (#279, #287)
  • Fix compilation error caused by PRId32 (#279)
  • Don't load FW-mngt. module when no handlers set (#271)
  • Change arduinoWebSockets URL param to path (#278)
  • Avoid creating conf when operation fails (#290)
  • Fix whitespaces in MeterValues (#301)

MicroOcpp v1.0.3

06 Apr 19:56
Compare
Choose a tag to compare

This release contains a fix for a critical bug when used with multiple connectors and a bug preventing setting debug verbosity levels.

Fixed

  • Fix nullptr access in endTransaction (#275)
  • Backport: Fix building with debug level warn and error

MicroOcpp v1.0.2

24 Mar 13:01
Compare
Choose a tag to compare

Fixes wrong MicroOcpp version numbers of the v1.0.1 release. There are no further code changes since v1.0.1

MicroOcpp v1.0.1

03 Mar 18:53
dc2cdaa
Compare
Choose a tag to compare

Fixes for issues which were reported since v1.0.0

Fixed

  • Allow nullptr as parameter for mocpp_set_console_out (#224)
  • Fix mocpp_tick_ms() on esp-idf roll-over after 12 hours
  • Pin ArduinoJson to v6.21 (#245)
  • Fix bounds checking in SmartCharging module (#260)

MicroOcpp v1.0.0

22 Oct 18:25
Compare
Choose a tag to compare

First release of MicroOcpp. Changelogs and semantic versioning are adopted starting with this release.

PIO package: matth-x/[email protected]

The following changelog is a comparison of v1.0.0 with the previous commit on master with breaking changes (1eff6e5)

Changed

  • mocpp_initialize takes OCPP URL without explicit host, port (#220)
  • endTransaction checks authorization of idTag
  • Update configurations API (#195)
  • Update Firmware- and DiagnosticsService API (#207)
  • Update Connection interface
  • Update Authorization module functions (#213)
  • Reflect changes in C-API
  • Change build flag prefix from MOCPP_ to MO_
  • Change mo_set_console_out to mocpp_set_console_out
  • Revise README.md
  • Revise misleading debug messages
  • Update Arduino IDE manifest (#206)

Added

  • Auto-recovery switch in mocpp_initialize params
  • WebAssembly port
  • Configurable MO_PARTITION_LABEL for the esp-idf SPIFFS integration (#218)
  • MO_TX_CLEAN_ABORTED=0 keeps aborted txs in journal
  • MO_VERSION specifier
  • MO_PLATFORM_NONE for compilation on custom platforms
  • endTransaction_authorized enforces the tx end
  • Add valgrind, ASan, UBSan CI/CD steps (#189)

Fixed

  • Reservation (#196)
  • Fix immediate FW-update Download phase abort (#216)
  • stat usage on arduino-esp32 LittleFS
  • SetChargingProfile JSON capacity calculation
  • Set correct idTag when Reset triggers StopTx
  • Execute operations only once despite multiple .conf send attempts (#207)
  • ConnectionTimeOut only applies when connector is still unplugged
  • Fix valgrind warnings