======================
Garo Entity Changelog
======================

This document describes changes for the Entity Charging Station and
Entity Balance firmware.

Release 2.0.7 (2024-02-14)
===========================

General:

* Support for signed firmware updates has been added, as described in whitepaper "Improved
  security for OCPP 1.6-J". The classic OCPP update mechanism is still supported, unless
  the new parameter GaroImprovedSecurity is set to True. Please note that it is not
  possible to change this parameter from True to False, not even with factory reset. This
  parameter also affects firmware update using the REST API. (NXT-1468)

* Secure Boot is used on devices manufactured with this release. (NXT-3053)

Entity Pro and Entity Compact:

* Compatibility with vehicles such as Porsche Taycan and Audi E-tron has been improved, by
  introducing a delay between "B2 - B1 - B2" transitions. (NXT-5297)

* "Free charge polling" was introduced in version 1.10.6. However, if an active
  transaction was remotely stopped, a scheduled charging session never started. This has
  been corrected. (NXT-5956)

* With the previous release, relays were left closed after pressing the "T" button, this
  has been corrected. (NXT-5964)

* When phases were connected in a rotated sequence to devices with ModBUS energy meters,
  the neutral current could be incorrectly calculated. With charging stations, this could
  result in an overload error. A correction for this problem was introduced in version
  1.12.3, but assumed that the meter was in installation mode; this mode is now enabled
  automatically. (NXT-5566)

* In earlier releases, remotely stopping the transaction would unlock the outlet, even if
  UnlockConnectorOnEVSideDisconnect was set to False. This has been corrected. (NXT-5877)

* With earlier releases, if parameter StopTransactionOnEVSideDisconnect was set to False
  and if remotely stopping the transaction, the charging station never left the
  "Finishing" state. (NXT-5944)

* If vehicle draws too much current, the signalled current is reduced to 90%. In this
  release, this mechanism has been adjusted not to drop below the minimum allowed current
  (based on charging profile and GaroOwnerMinCurrent parameter). (NXT-5982)

* It is now possible to update firmware even if a transaction is active, if EV is
  disconnected (state A). This situation can happen if StopTransactionOnEVSideDisconnect
  is False, cable is disconnected from the EV, but still connected to the EVSE. (NXT-5881)

* With earlier releases, if the CSMS communication was lost while in "Preparing" state,
  the charging session did not start. (NXT-6006)

Network:

* Support for "reverse SSH tunnels" has been added. This feature enables SSH and HTTPS
  access to Entity devices for diagnostic and monitoring purposes. A SSH tunnel is
  established by setting the new parameter GaroSshTunnelUrl to a SSH server which accepts
  authentication using the public key from the GaroSshPublicKey parameter. Note that
  GaroSshTunnelUrl can only be changed within 1 hour after pressing the "T"
  button. (NXT-1850)

OCPP:

* When downloading firmware updates using HTTP, "Accept-Ranges" can be used to resume
  download. (NXT-5830)

* With earlier releases, changing a parameter to a value with leading or trailing
  whitespace could incorrectly return "RebootRequired". This has been
  corrected. (NXT-5906)

* It is now possible to stream diagnostic data using DataTransfer requests. (NXT-5962)

* The error LocalListConflict can now be cleared even if LocalAuthListEnabled is
  False. (NXT-5815)

* The Local Controller is now able to forward "CallError" responses such as
  "NotSupported". (NXT-6021)


Release 1.14.6 (2024-01-15)
===========================

Entity Pro and Entity Compact:

* Fast transitions between A/B/C charging states are now detected. (NXT-5582)

* Logging of "Allowed relay modes" was incorrect on charging stations with less than 7
  relays. This has been corrected. (NXT-5640)

* If resuming transaction in faulted state, the transaction is now stopped. (NXT-5779)

* A new parameter GaroAllow1PhaseCharging has been added. If set to False (and
  GaroAllow2PhaseCharging is False as well), charging is only done with 3
  phases. (NXT-5789)

* In some cases, the white LED indication was used even when current was available. This
  has been corrected. (NXT-5790)

* Energy meter currents are no longer based on active power on charging stations (see
  description for NXT-4843). (NXT-5809)

* With earlier releases, a relay mode change was sometimes done even if the possible
  current did not increase. This has been corrected. (NXT-5810)

* A problem has been fixed which could cause false GaroBadVoltageNeutral
  errors. (NXT-5842)

* In some cases, GaroUnexpectedVoltage occured when charging was stopped. This has been
  corrected. (NXT-5843)

Entity Balance:

* When using Current Transformers, the current is now calculated as Root Mean Square, with
  DC offset removed, to improve accuracy. (NXT-2841)

General:

* DLM regulation has been changed and should now be more stable in large
  systems. (NXT-5366)

* The "downloader" now includes an updated "uuu", version 1.5.141. (NXT-5150)

* Analog values are now read using a different method, to make sure all values are in
  correct order, thus avoiding issues with waveform images. (NXT-5802)

Network:

* IPv6 is now disabled, as a workaround for issues with the "Avahi" software. (NXT-5651)

* "Avahi" no longer uses the PLC interface. (NXT-5655)

* In earlier releases, Wi-Fi communication was sometimes enabled on 5 GHz channels. This
  has been corrected. (NXT-5751)

OCPP:

* MeterValues saved in the transaction database are now deleted after being sent to
  CSMS, the same message can no longer be sent multiple times. (NXT-5856)

* With earlier releases, SuspendedEV was sometimes sent at the start of a charging
  session. This has been corrected. (NXT-5792)

* Energy Meter is now read every second. This applies to all energy meters except HAN
  types. OCPP MeterValues are now sent directly after new values are available. If a
  TriggerMessage for MeterValues is received, nothing will be sent until new energy meter
  values are available (typically 1 second, up to 10 seconds with HAN). The Local
  Controller only forwards MeterValues with Trigger context if CSMS used
  TriggerMessage. With these changes, it is now possible to set ClockAlignedDataInterval
  and/or MeterValueSampleInterval as low as 1 second, as required by UK Electric Vehicles
  Regulations 2021. (NXT-3169)


Release 1.12.3 (2023-12-13)
===========================

Entity Pro and Entity Compact:

* A randomized delay has been introduced, as required by UK Electric Vehicles Regulations
  2021. The random delay can be configured via the configuration parameter
  RandomisedDelay. (NXT-3073)

* If a device is configured for DLM, but loses connection with Local Controller, the
  maximum current will be limited to GaroFallbackMaxCurrent. In earlier releases, the
  fallback current was determined by GaroOwnerMinCurrent. (NXT-5364)

* The detection of the GaroBadVoltageNeutral error is now more tolerant against electrical
  disturbances. (NXT-5670)

* The "wakeup" and relay switching sequences have been adjusted to improve compatibility
  with Renault vehicles. (NXT-5674)

General:

* Waveforms of analog inputs can be viewed using the local web interface. (NXT-5409)

* When phases were connected in a rotated sequence, the neutral current could be
  incorrectly calculated. With charging stations, this could result in an overload
  error. This issue has been corrected. (NXT-5566)

Network:

* It is now possible to use Wi-Fi networks with a SSID containing non-ASCII
  characters. In the REST API and the GaroWifiSsid parameter, such characters should be
  specified using the  ``\xAB`` syntax. (NXT-4996)

* Under certain circumstances, it could happen that multiple Wi-Fi/Mesh client
  (wpa_supplicant) processes were running at the same time, causing connection
  issues. This problem has been fixed. (NXT-5690)

OCPP:

* If a transaction was started offline, it was not possible to install a transaction
  profile. This issue has been corrected. (NXT-5652)

* The diagnostic ZIP now includes the information sent in OCPP
  BootNotification. (NXT-4562)

* Transfer of clock aligned meter values can be delayed a random time by changing the
  configuration parameter GaroClockAlignedDataIntervalSpread. (NXT-5355)

* In some cases, the Charging Station was changing state without sending
  StatusNotification. This issue has been corrected. (NXT-5643)


Release 1.10.7 (2023-11-16)
===========================

OCPP:

* Request responses are processed before handling any new
  requests. Earlier it could happen that, for example,
  SetChargingProfile was handled before processing the
  StartTransaction response, even though CSMS sent the response before
  the request. (NXT-5618)


Release 1.10.6 (2023-11-14)
===========================

Entity Pro and Entity Compact:

* A new LED indication has been added: If charging station is
  available, but standby since the current limit of the active
  charging profile is zero, this is indicated with white. The same
  indication is used when the "enable input" is limiting current to
  zero. (NXT-5398)

* A new parameter GaroAllow3PhaseCharging has been added. If set to
  False (and GaroAllow2PhaseCharging is False as well), charging is
  optimized for vehicles which can only use one phase. (NXT-5204)

* The new error GaroBadVoltageNeutral will occur if Neutral input is
  actually connected to a phase (with TN earthing system). (NXT-2765)

* The GaroBadVoltage errors are now created and cleared using a
  hysteresis. The errors are created if voltage is out of range
  192-256 V, and cleared if voltage is in range 198-249 V. (NXT-4372)

* In state "B", the signalled current now corresponds to the value of
  the GaroOwnerMinCurrent parameter. With earlier releases, the
  signalled current could vary and caused wake-up events with some
  vehicles. (NXT-4768)

* The Neutral relay now closes first and opens last, to avoid high
  phase voltages. (NXT-5321)

* Overload protection now correctly handles system time
  changes. (NXT-5332)

* With earlier releases, the error GaroUnexpectedNumberOfPhases was
  always reported with IT earthing systems. This has been
  corrected. (NXT-5358)

* The detection of open/closed MCB and welded relays has been improved
  and is now less sensitive to disturbances, and intermittent IT
  ground faults. (NXT-5372)

* Detection of open/closed MCB and welded relays should now work on
  charging station variants with GaroEmbeddedNumberOfPhases=3 and
  GaroNumberOfRelays=2. (NXT-5375)

* With earlier releases, an overcurrent fault could be generated after
  the charging had been suspended. This has been corrected. (NXT-5468)

* Improved detection of relays being open/closed to prevent errors
  such as e.g. GaroUnexpectedVoltage from occuring when
  they should not. (NXT-5542)

* The legacy wake-up procedure described by IEC 61851-1 part A.5.3 can
  now wake up a car multiple times on the same transaction. (NXT-1061)

Entity Balance:

* It is now possible to change GaroMeterType from CurrentTransformer
  to some other type without a manual reboot. (NXT-4171)

Network:

* The "Avahi" component has been updated to version 0.8. This should
  make publishing of Connection Group information more stable. This
  version also includes a security fix, see
  https://github.com/lathiat/avahi/releases/tag/v0.8 for
  details. (NXT-5005)

* Security: Passwords are no longer visible in diagnostic ZIP
  files. (NXT-5301)

* A diagnostic ZIP file can be retrieved using the local web
  interface. (NXT-4506)

* The JSON/CSV file that describes error codes has been re-worked for
  clarity and completeness. (NXT-4598)

* Wi-Fi/Mesh stability has been improved. (NXT-4887)

* A new REST endpoint has been added, which allows setting current
  time. (NXT-5318)

OCPP:

* The handling of "free charge" tag authorization has been changed. If
  authorization fails, the charging station will continue to poll CSMS
  every minute. (NXT-5440)

* If Type 2 connector fails to lock, no OCPP transaction is
  started. (NXT-5205)

* Upon RemoteStopTransaction, the connector is unlocked before trying
  to send StopTransaction. (NXT-5325)

* The value of the ChargingScheduleMaxPeriods parameter is set to 50,
  regardless of any other value before firmware update. (NXT-5478)

* When using the FTP protocol for diagnostic upload, the path no
  longer needs to end with a slash. (NXT-4556)

* The FTP client no longer requires the server to support the "MLST"
  command. (NXT-4935)

* With earlier releases, "SuspendedEV" was sometimes sent during relay
  switching. This has been corrected. (NXT-4773)

* RemoteStartTransaction is no longer accepted if firmware update is
  in progress. (NXT-5155)

* In some cases, MeterValues intended for a Local Controller was sent
  to cloud CSMS as well. This problem has been corrected. (NXT-5260)

* Handling of "TriggerMessage" has been re-worked, so that requested
  messages are sent without creating any additional "tasks". If there
  are network problems, such tasks can waste resources and prevent
  transmission of other OCPP messages. (NXT-5278)

* With earlier releases, a firmware update could be indicated as
  "failed" if the device was rebooted immediately after firmware
  installation. (NXT-5419)

* If a reboot is done immediately after a firmware update, the reboot
  is delayed slightly to allow sending StatusNotification. (NXT-5504)

Modem:

* LTE Modem communication speed has been increased to 921
  Kbit/s. (NXT-4059)

* The "NB-IoT" communication standard is no longer used. (NXT-5474)


Release 1.8.16 (2023-10-11)
===========================

* There was a problem after using PAC, limits from TxProfile were
  still active which set the CS as unavailable. This has been fixed.
  (NXT-5280)

* There was a problem in the state transition B1 to B2. This could
  affect certain car models, making it so that it was not possible to
  start charging. This has been fixed. (NXT-5246)

* A delay has been introduced to avoid changing relay mode too often
  during charge. A certain mode will be used for at least 1
  minute. (NXT-5038)

* The parameter GaroLogLevel is now effective without a
  reboot. (NXT-4165)

* In earlier releases, a Master CS did not aggregate member currents
  correctly, causing problems with DLM. This has been
  corrected. (NXT-5209)

* WiFi/Mesh stability has been improved. If driver recovers, the
  network is automatically restarted. (NXT-5166)

* Support has been added for Kaifa HAN energy meters. (NXT-5162,
  NXT-5252)

* Device time is now set to OCPP time (using Heartbeat and
  BootNotification). The NTP protocol is still used until OCPP
  connection has been established. (NXT-2083)

* A correction has been done to Avahi/DNS-SD publishing, which affects
  connection groups. The mDNS group is re-joined after network
  interface has been re-connected. (NXT-5241)


Release 1.8.9 (2023-09-25)
==========================

* In some cases, the OCPP error GaroTransactionMessageFailure was not
  cleared, even after communication had been
  re-established. (NXT-5221)

* Temperature derating limits for Entity Compact have been
  adjusted. (NXT-3084)

* If LTE Modem does not respond to AT commands, it is
  re-initialized. (NXT-5208)

* With previous releases, if the energy meter reported a current of
  0.0 on some phase, the Local Controller did not allow charging on
  this phase. This can happen when local production exactly matches
  the consumption. This problem has been corrected. (NXT-5216)

* In rare cases, when changing from a suspended state (B or C) to idle
  state (A), the error GaroUnexpectedVoltage was incorrectly created,
  followed by MCB trip. This problem has been fixed. (NXT-5245)


Release 1.8.8 (2023-09-08)
==========================

* Fix a bug where e.g. a ConnectorLockFailure could result in the 
  transaction not being properly ended locally when starting 
  a transaction. (NXT-5196)


Release 1.8.7 (2023-09-05)
==========================
This release can be installed on version 0.10.0 or later.
IMPORTANT! To avoid problems in active running grouped installations
we strongly recommend to update all devices connecting to the network
via a network master device first. Then as the last step update the
network master device itself. Otherwise the devices that depend on
the network master might permanently drop the CSMS connection and need
power-cycling on site. See more info in NXT-5114.

General:

* With firmware version 1.6 and below, devices sometime fails to
  detect when the OCPP connection has been closed, for example due to
  temporary network issues. In this case no reconnection attempt is
  made, until a power cycle is done. This problem has been corrected.
  (NXT-5114)

* Security: Passwords are no longer visible in the firmware log
  file. (NXT-4975)

* Security: Wi-Fi components "wpa_supplicant" and "hostapd" have been
  updated to version 2.10. Earlier releases used components based on
  version 2.9. Security advisories 2019-7 to 2022-1 as described on
  https://w1.fi/security/ may apply. (NXT-2042)

* Log messages are now using a common format. The default GaroLogLevel
  has been changed from "debug" to "info", and this parameter is set
  to "info" during update. In total, there are more than 700 log
  messages. About 100 of these are only printed if GaroLogLevel is set
  to "debug". (NXT-2214)

* DLM installations with multiple levels are now handled. A Master
  Charging Station will aggregate member currents before sending to
  another Master. (NXT-3037)

* In earlier releases, if Installation Bracket was installed with
  phase rotation (using ConnectorPhaseRotation), MeterValue currents
  and voltages were reported with incorrect phases. This caused
  problems with the DLM calculations on the Master. This has been
  corrected. (NXT-4667)

* If a device is configured for DLM, but loses connection with Master,
  the maximum current will be limited to GaroOwnerMinCurrent. If a
  device is no longer configured for DLM, GaroSupplyMaxCurrents is
  reset so that no DLM limit applies. (NXT-3793)

* When Master is connecting via LTE modem or Wi-Fi, and providing
  network access to other devices, it implements Network Address
  Translation and DHCP services. The DHCP lease time has been lowered
  to 3 minutes, to minimize downtime if Master changes to another
  network interface type such as Ethernet. (NXT-4581)

* A stability issue with the Mesh/Wi-Fi driver has been corrected. For
  example, in some cases, an AP client was not able to get an IP
  address. (NXT-5097)

* The REST/web service, which is published using DNS-SD, now includes
  the device identity. This makes it easier to find Entity devices on
  a network (using "avahi-browse -r _https._tcp" or
  similar tool). (NXT-4723)

* Compatibility with Microsoft FTP services has been
  improved. (NXT-4862)

OCPP:

* A new OCPP error "GaroTransactionMessageFailure" is generated if a
  transaction message could not be sent. (NXT-4120)

* With previous versions, an incorrect value for "Thermal max current"
  was sent. This has been corrected. (NXT-4130)

* The following parameters are now effective without a reboot:
  GaroMeterAddress, GaroMeterCurrentCalibration, GaroMeterPort,
  GaroMeterSerialSettings, GaroMeterSerialSpeed, GaroMeterType,
  GaroMeterVoltageCalibration, GaroConnectionGroupMaxCurrent .
  (NXT-4166, NXT-4167, NXT-4168, NXT-4169, NXT-4170, NXT-4171,
  NXT-4172, NXT-5052)

* If ChangeConfiguration is requested but the new value is the same as
  the old value, a reboot will never be requested. (NXT-4910)

* The descriptions for the GaroCsmsUrl and GaroRemoteCsmsUrl
  parameters have been changed, to clarify the purpose of these
  parameters. (NXT-4630)

* In 1.6.0, MeterValues with "Trigger" context was sent without
  "transactionId". This caused problems with the GARO Connect App when
  starting a new charging session: it took a long time before charging
  power and current values were available. It could also happen that
  MeterValues with "Sample.Periodic" context was sent before
  StartTransaction. These problems have been corrected. (NXT-4638)

Modem:

* LTE Modem EG915N is now supported. Modem EG915U is no longer
  supported. (NXT-4819)

* Firmware will now try available network operators in order until one
  succeeds. NB-IoT is enabled for BG95 modems. (NXT-4793)

Entity Pro and Entity Compact:

* With earlier releases, the CS stopped responding if set to
  inoperative while already inoperative. (NXT-4675)

* Some improvements have been made to the legacy wake-up procedure as
  described by IEC 61851-1 part A.5.3. (NXT-1061)

* The RCD sensor is now monitored for internal errors. If an error
  occurs, OCPP error "GroundFailure" is generated. (NXT-2474)

* The detection of open/closed MCB and welded relays has been
  re-worked and is now less sensitive to disturbances. (NXT-2955)

* Detection of open/closed MCB and welded relays should now work on 1
  phase base boards, assuming GaroEmbeddedNumberOfPhases is set
  correctly. (NXT-4688)

* If CS is configured for "free of charge" (using GaroFreeChargeTag)
  and the CSMS rejects the configured tag, it is now possible to try a
  real tag instead. (NXT-3406)

* A new parameter GaroStopTransactionOnPowerFailure has been
  introduced. If true, the Charging Station stops a transaction upon
  power failure, and if false it will resume when power is
  back. (NXT-4123)

* If an invalid tag is presented during charge, this now gives red LED
  indication. (NXT-4523)

* With earlier releases, if GaroOwnerMinCurrent was set to a higher
  value than 6, it could happen that the wrong relay configuration was
  used. This has been corrected. (NXT-4645)

* It is no longer possible to start a new transaction while firmware
  update is in progress. (NXT-4741)

* It is now possible to start a new transaction, by presenting RFID
  tag, even if CS is currently unavailable due to installed charging
  profile. (NXT-4762)

* CS will not generate any sound when switching relays during
  charge. (NXT-5054)

Entity Balance:

* Support has been added for Kamstrup energy meters via Norwegian
  AMSHAN interface. However, energy export is not yet
  supported. (NXT-4665)

* External energy meter currents are now calculated based on active
  power, in order to improve DLM regulation when energy is exported to
  the grid. (NXT-4843)


Release 1.6.1 (2023-06-22)
==========================
This release can be installed on version 0.10.0 or later.

General:

* Energy export with HAN energy meters is now handled. During energy
  export, currents are reported using the Current.Export
  measurand. This Local Controller is now able to interpret this
  measurand when calculating DLM limits. (NXT-4785)

OCPP:

* In some cases, a timed out operation for a previous connection could
  cancel the existing connection. This has been corrected. (NXT-4807)

* The OCPP parameter WebSocketPingInterval is now
  supported. (NXT-2492)

Modem:

* In rare cases, the modem was not restarted when the firmware was
  restarted. (NXT-4803)

Entity Balance:

* Norwegian HAN current values are now divided by 10 to get correct
  scaling with Aidon energy meters. (NXT-4418)

* The decoding of HAN OBIS values checked too many fields. This has
  been corrected. (NXT-4796)


Release 1.6.0 (2023-05-30)
==========================
This release can be installed on version 0.10.0 or later.

General:

* If Firmware fails, it will automatically try to reboot a few
  times. If this still fails, an automatic factory reset is
  performed. (NXT-4559)

* If a "proximity pilot error" has earlier occured, it is now reset if
  cable is removed and/or after reboot. (NXT-4588)

OCPP:

* The FTP client, which may be used for Diagnostic Upload or Firmware
  Download, has been modified to support the case where the server
  returns "550 Permission denied" as a result of the EPSV command. In
  this case, PASV will be tried instead. (NXT-4556)

* The FTP client now supports a non-standard date format commonly used
  with old Windows FTP servers. (NXT-4651)

* If offline, MeterValues are now saved to a local database, and
  transmitted when online next time. (NXT-3202)

* When updating the Firmware, the file is downloaded from an URL which
  is given by the CSMS. This URL can now contain a username and/or
  password with special characters, encoded according to RFC
  3986. (NXT-4557)

Network:

* Mesh network stability has been improved and kernel has been updated
  to version 5.10.72. (NXT-4325)

* Mesh network is now limited to 8 peer links, avoiding that too many
  peer links prevents connection to the Access Point. (NXT-4458)

* In some cases, Group information published via Avahi/DNS-SD was not
  broadcasted to both Ethernet and Mesh. "Multicast snooping" has been
  disabled on the internal bridge to avoid this problem. (NXT-4653)

Modem:

* The modem connection is now monitored using "LCP echo requests" to
  the PPP peer. If responses are missing during 1 minute, the
  connection is re-established. (NXT-4304)

* With earlier releases, it could happen that the Firmware was stuck
  during modem disconnect. This has been corrected. (NXT-4590)

* When downloading firmware updates with earlier releases, all other
  communication over the modem link was almost halted, since latency
  increased to ~35 s. This is no longer the case; the latency has been
  reduced to ~2 s. (NXT-4296)

Entity Balance:

* In some cases, the energy meter component could fail. This has been
  observed with GNM3D-RS485 meters. This problem has been
  corrected. (NXT-4621)


Release 1.4.0 (2023-05-02)
==========================

This release can be installed on version 0.10.0 or later.

General:

* The grid voltage is now monitored. If any phase voltage is out of
  range, an OCPP fault is generated and charging is
  stopped. (NXT-1677)

* It is no longer possible to start charging during a firmware
  update. (NXT-4276)

* A Firmware update request is now postponed until charging has been
  stopped. (NXT-4275)

* With earlier versions, Charging Stations occasionally reported
  incorrectly that the MCB was open. Corrections for this has been
  made. (NXT-4285, NXT-4301)

OCPP:

* Changes to GaroPeContactor and GaroPmeProtection parameters are
  effective without reboot. (NXT-2798)

* A new parameter GaroStopTransactionOnUnlockConnector has been
  introduced. If set to True, "UnlockConnector" will stop any ongoing
  transaction before unlocking. (NXT-2073)

* Devices will now send a StatusNotification with "Unavailable" after
  an accepted Reset request. (NXT-3361)

* Earlier, a AuthorizeRequest was sent when stopping a transaction
  with same tag that started it. This has been corrected. (NXT-3366)

* The parameters GaroConnectorPhases and ConnectorPhaseRotation
  indicates the current relay mode and grid earthing system (TN or
  IT). With earlier versions, these were not always updated
  correctly. (NXT-3395)

* It is now possible to set an even parity for the energy meter serial
  communication, using the parameter GaroMeterSerialSetting. (NXT-3423)

* Setting LightIntensity to 95 or more should now work
  correctly. (NXT-4021)

* GetCompositeSchedule no longer requires the chargingRateUnit
  field. (NXT-4026)

* A maximum of 1000 offline transactions can be stored now. (NXT-4097)

* StopTransaction now correctly indicates "PowerLoss" upon power
  failure, if EV is disconnected. (NXT-4186)

* With earlier versions, the Charging Station was sending two
  "StopTransaction" requests in some cases. This has been
  fixed. (NXT-4259)

* The Firmware now correctly handles multiple concurrent
  GetDiagnostics requests. (NXT-4396)

* MeterValue requests now contains context if not
  Sample.Periodic. (NXT-3359)

Network:

* Kernel has been patched to avoid "skb_under_panic" error. (NXT-2977)

* An issue with scanning for Wi-Fi networks has been
  corrected. (NXT-3241)

* With earlier versions, the DHCP client was not terminated when
  changing network interface from Mesh or Ethernet to
  Wi-Fi. This has been corrected. (NXT-4257)

* Group information published via Avahi/DNS-SD now works for groups up
  to 32 devices. (NXT-4468)

* With previous version, the Firmware could fail if a Wi-Fi connection
  was requested at the same time that the device discovered a
  Connection Group via DNS-SD. This has been corrected. (NXT-4417)

Modem:

* It is now possible to upload large diagnostic files using LTE
  modem. (NXT-4375)

Entity Balance:

* The earlier 1.2.0 release incorrectly generated a
  GaroEnergyMeterReadFailure fault, when using HAN energy
  meters. (NXT-4315)

* Sending a Local Authorization List to an Entity Balance device
  caused it to fail. This has been fixed. (NXT-4366)

* Balance now sends StatusNotification after
  BootNotification. (NXT-4321)


Release 1.2.0 (2023-03-27)
==========================

General:

* Two phase charging is disabled by default, but can be activated by
  setting GaroAllow2PhaseCharging = True. (NXT-4028)

* Transition from IEC state B1 to C1 is now supported. (NXT-4094)

* Input voltage levels are continuously monitored. (NXT-1677)

OCPP:

* When changing configuration parameters, RebootRequired is returned
  for all parameters that require a reboot. Network is no longer
  automatically restarted, when network related parameters are
  changed. (NXT-2006)

* The timestamp resolution has been increased to fractional seconds
  with 3 decimals. (NXT-3707)

* If Firmware Update has failed and the device is restarted,
  InstallationFailed is now correctly sent. (NXT-4050)

Modem:

* Modem type EG915 is now supported. (NXT-4129)

DLM:

* Local Controller now handles CSMS connection losses
  better. (NXT-3036)


Release 1.0.0 (2023-03-01)
===========================

General:

* The transition to status "Available" after "Finishing" is now
  done after the EV is disconnected (NXT-3789)

* Factory reset clears all local data (NXT-2784).

* Increase image size, to reduce the risk of a full filesystem 
  (NXT-3249).

* Improved handling of security profile with specified URL. The
  SecurityProfile config parameter is only used as fallback if no
  schema supplied in the URL (NXT-1742, NXT-3358).

* Time for trying to reconnect to CSMS was increased (NXT-3677).

* Support has been added to detect and protect agains neutral
  current overloads for IT systems (NXT-1871).

* The status handling has been refactored and improved (NXT-3231).

* Log the HTTP response when connection to CSMS fails (NXT-3535).

* If a kernel panic occurs the system will reboot after 60 seconds
  (NXT-3783).

* The EVSE no longer indicates solid red LED and changes status to
  Unavailable when DLM operation sets current limit below minimum
  charging limit (NXT-3282).

OCPP:

* Handle previously active errors at startup, i.e. report them
  again to CSMS (NXT-3841).

* Fixed a bug that occured when CSMS issues multiple UpdateFirmware
  requests at the same time (NXT-3556).

* MeterValues with context Sample.Periodic is not only sent during
  a ongoing transaction (NXT-3362).

* The charging profile handling has been refactored to work according
  to standard. Support has been added to install TxProfile(s) with the
  RemoteStartTransaction request. Added extensive validation for
  incoming profiles. Overhauled GetCompositeSchedule implementation
  (NXT-3448, NXT-2480, NXT-3349, NXT-3327).

* StatusNotification now has timestamp (NXT-3360).

* Fixed so that firmware can be updated with third party ftp (NXT-3367).

* ChangeAvailability implementation now integrated to work alongside
  with our error handling (NXT-3239).

* When not resuming a transaction after a powercycle, send
  StopTransaction (NXT-3368).

* Refactored StopTransactionOnInvalidId implementation so that invalid
  transaction are always stopped (NXT-3256).

* Fixed so that GetDiagnostics can upload to third party ftp server
  (NXT-3379, NXT-3376, NXT-2123, NXT-2543).

* HeartbeatInterval is now correctly set via ChangeConfiguration
  (NXT-2014).

REST:

* Configuration parameters can now be set as a empty string with
  swagger (NXT-3354).

* Control relays on Compact (NXT-3424).

* Some connectivity endpoints were deprecated, to change connectivity
  settings the configuration API should be used instead (NXT-3712).

* LED color control have been improved. Colors have been calibrated for
  different LED intensity settings (NXT-3553, NXT-3304).

Modem:

* Fixed a problem that made it not possible to update the EVSE firmware
  over HTTP when connected with modem (NXT-3829).

* Modem firmware update is delayed to occur during the night after the
  EVSE has been on for a while, to not interfere with user activities
  or the first time the device is installed (NXT-3430).

* The modem APN is set before checking LTE registration (NXT-3505).


Release 0.11.0 (2023-01-17)
===========================

General:

* Transactions are automatically resumed when power is restored after
  a power outage. (NXT-1689)

* The network is automatically restarted after changing network
  related configuration parameters. (NXT-2128)

* The main log file is now available from the web
  interface. (NXT-3012)

* A new parameter (GaroMeterVoltageCalibration) can be used to
  calibrate the embedded energy meter voltage. (NXT-3350)

* A stability problem with the Wi-Fi/Mesh driver has been
  corrected. (NXT-2977)

OCPP:

* Support for charging profiles has been substantially
  improved. (NXT-2264, NXT-2283, NXT-2359, NXT-2447, NXT-3273, NXT-3313)

DLM:

* DLM current regulation (GaroSupplyMaxCurrents) is more stable
  now. (NXT-2612)

* It is now possible to use DLM with a Charging Station as
  Master. (NXT-2976)


Release 0.10.0 (2022-12-12)
===========================

General:

* The i.MX Linux platform has been updated. This update contains fixes
  for security vulnerabilites. (NXT-1385)

* Device web status page now includes information about attached
  Installation Bracket. (NXT-2789)

* LED indications has been changed slightly. When waiting for cable
  removal, CS blinks green. A failure of locking Type 2 outlet is
  indicated with solid yellow. Blinking yellow indicates that CS is
  waiting for authorization. (NXT-2957)

* Configuration parameters for Entity Compact are now included in the
  parameter schema file. (NXT-3027)

* A Master device publish "group key" information using DNS-SD. This
  means that a Mesh formation is possible even if one node cannot
  reach the Master directly. (NXT-3055)

* The system log file "messages" is no longer used and no longer
  included in the GetDiagnostics ZIP file. Instead, a new log file
  "journal.log" is used. This file includes both messages from the
  kernel and system services. (NXT-3145)

* The temperature is written to the log file every minute. (NXT-3160)

* A new feature automatically updates the LTE modem firmware, if
  needed. The update process is indicated with a Red/Blue LED
  pattern. (NXT-3200)

* DNS servers from the LTE modem PPP connection are now
  used. (NXT-3208)

* The parameter GaroNumberOfRelays is now used. This avoids that an
  incorrect "load mode" (relay configuration) is used on a CS with
  less than 7 relays. (NXT-3221)

REST:

* /certs/set-unit-cert writes the certificate to disk before returning
  (NXT-3182)

OCPP:

* Error handling and reporting has been reworked and substantially
  improved. Both the standard and vendor specific error codes are
  documented in a JSON file, similar to how parameters are
  documented. (NXT-1365)

* The Energy Meter type and serial number are included in the Boot
  Notification request. (NXT-1992)

* GetDiagnostics converts query parameters in the upload URL to HTTP
  POST form parameters, in order to support uploading diagnostic files
  to AWS S3. (NXT-2924)


Release 0.9.0 (2022-10-31)
==========================

General:

* Support for network connections via LTE modem has been
  added. (NXT-69)

* The relays are continuously monitored in order to detect if any
  relay is stuck. (NXT-1228)

* The correct product name (Entity) is now used. (NXT-1293)

* The entity-downloader tool now supports setting a serial number and
  downloading firmware in a single invocation. (NXT-1487)

* LED indication can be configured for permanent white light or some
  other color. (NXT-1851)

* Spanning Tree Protocol is now disabled on Ethernet
  bridge. (NXT-1870)

* The embedded energy meter stores the accumulated energy to a
  permanent parameter (GaroEmbeddedMeterEnergy). (NXT-2025)

* The log file is now rotated if larger than 5 MiB. (NXT-2043)

* A new Certificate Authority is used for the unit HTTPS
  certificate. (NXT-2087)

* Entity Compact is now supported. (NXT-2215)

* The RCD "convenience mode", used when GaroRcdRelayControl is True,
  is now more reliable. (NXT-2290)

* A recovery mechanism for Wi-Fi driver troubles has been
  implemented. (NXT-2324)

* An open MCB is now detected. This error is indicated with a red LED
  indication. (NXT-2350)

* The active "load mode" (relay configuration) is indicated using
  index 1 of ConnectorPhaseRotation and GaroConnectorPhases. The
  detected grid earthing system (TN or IT) is also
  indicated. (NXT-2571)

* Entity Pro "Spin3" hardware is now supported. (NXT-2604)

* Entity Balance "Spin2" hardware is now supported. (NXT-2827)

* Iskra energy meters are now supported. (NXT-2729)

* During firmware update, old kernel packages are automatically
  removed, in order to avoid running out of disk space. (NXT-2742)

* With earlier releases, it could happen that the configuration was
  cleared upon power loss. This has been corrected. (NXT-2766)

* UK PME protection should now work correctly even with the embedded
  energy meter. (NXT-2787)

* The Firmware now supports Type 2 outlets from PCE. (NXT-2790)

* IEC 61851-1 state handling has been improved. (NXT-2810)

* RFID reader output power has been reduced in order to improve
  EMC. (NXT-2838)

* The analog measurement of the Control Pilot signal has been
  calibrated. (NXT-2846)

* Voltage readings from the embedded energy meter and the ADC have
  been calibrated. (NXT-2038)

* The parameter GaroEnableInputMaxCurrent has been reworked and an
  additional related parameter GaroEnableInputInvert has been
  added. (NXT-2888)

* A new parameter GaroNumberOfRelays indicates the number of output
  relays in this Charging Unit. (NXT-2945)

* The parameter GaroMeterCurrentCalibration now also applies to the
  embedded energy meter. (NXT-2978)

* The firmware now supports the legacy wake-up procedure as described
  by IEC 61851-1 part A.5.3. (NXT-1061)

DLM:

* A Master device will publish Connection Group information using
  DNS-SD. Unless parameter GaroCsmsUrl is manually changed, other
  devices will automatically connect to the Master Local Controller
  for DLM services. (NXT-961)

* Stability of DLM regulation has been improved. (NXT-2550)

* Local Controller offline message handling has been
  improved. (NXT-2598)

* In rare cases, the Local Controller OCPP communication could end up
  in a deadlock. This has been corrected. (NXT-2983)

* The Local Controller did not correctly interpret OCPP MeterValues
  requests without any Current.Import measurand. (NXT-2989)

* The Local Controller now uses the correct SSL context, which means
  that certificate validation can work correctly. (NXT-2710)

REST:

* Support for "factory parameters" has been added, with corresponding
  REST endpoints. (NXT-1194)

* The REST API has been extended to support PCBA testing. (NXT-2549,
  NXT-2730)

* The REST endpoint /certs/set-unit-cert checks if certificate is
  valid before storing it. (NXT-2822)

* Temperatures can now be read using the new REST endpoint
  /status/temperatures. (NXT-2897)

Entity Balance:

* Entity Balance now supports Energy Meters using the DSMR (Swedish)
  HAN communication protocol. (NXT-1452)

* Entity Balance LED indication has been re-worked to indicate
  faults. A short blink indicates a new energy meter
  reading. (NXT-2453, NXT-2639)

OCPP:

* Charging Unit and Charging Station serial numbers are included in
  the OCPP "Boot Notification" message. (NXT-2015)

* LTE modem SIM card parameters ICCID and IMSI are included in the
  OCPP "Boot Notification" message. (NXT-2247)

* A new parameter (GaroIdTokenEncoding) controls the encoding of RFID
  tag serial numbers within the OCPP protocol. (NXT-2044)

* OCPP parent idTags are now supported. (NXT-2212)

* An OCPP "Get Diagnostics" request will now return a ZIP file with
  main log file as well as system log files. (NXT-2430)

* The firmware now supports "scheduled free of charge", and checks if
  CSMS allows the corresponding tag. (NXT-2457)

* OCPP parameters StopTransactionOnInvalidId and MaxEnergyOnInvalidId
  are now supported. (NXT-2489)

* The Firmware no longer sends OCPP requests if registration is
  "pending". (NXT-2628)


Release 0.8.0 (2022-05-10)
==========================

* nextgen-downloader can monitor only specified USB paths. This makes
  it possible to program multiple devices on the same
  machine. (NXT-1012)

* The --force feature of nextgen-downloader is more robust and works
  even if u-boot is already counting down towards automatic
  boot. (NXT-2499)

* The configuration schema is used as fallback, in case a
  configuration parameter is missing from the INI file. The
  configuration schema is also used to determine if a certain
  parameter is readonly, and which values are valid. (NXT-1374,
  NXT-2431)

* The firmware CPU usage has been reduced. (NXT-1477)

* The WiFi firmware has been updated in order to solve multiple
  vulnerabilities. Details are available in TI document
  TI-PSIRT-2020-090066. (NXT-2053)

* The correct LED indication (alternating red/blue) is now used during
  firmware update. OCPP communication during update is also possible
  now. Please note that this correction will only be visible when
  updating from 0.8.0 and later. (NXT-2077)

* A new Certificate Authority is used for the unit HTTPS
  certificate. (NXT-2086)

* Shorter unit and device names are now used. The new names are
  GaroCU-<serial>, GaroCS-<serial>, and GaroLI-<serial>. (NXT-2097)

* The Energy Meter type is automatically detected by
  default. (NXT-2172)

* An EMC test mode for Load Interface devices has been
  added. (NXT-2180)

* The firmware switches from state A2 to A1 faster. (NXT-2181)

* The firmware reacts to new charging current limits
  faster. (NXT-2262)

* The firmware reacts faster when switching to state B. (NXT-2178)

* The Control Pilot sensing now ignores short transients. (NXT-2429)

* The OCPP Finishing state (slow yellow blink) is now only used if the
  new parameter GaroFinishingTimeOut is set to to a value greater than
  zero. (NXT-2182)

* A new parameter "GaroEnableInputMaxCurrent" can be used to configure
  the "enable" input logic. (NXT-2189)

* With earlier releases, the RCD self test sometimes failed. This has
  been corrected. (NXT-2195)

* With earlier releases, the RCD self test interval was 11 minutes,
  instead of the intended 11 hours. This has been
  corrected. (NXT-2280)

* The REST API has been adjusted and extended in many ways. Note that
  some HTTP operations have been changed from PUT to POST, and that
  endpoints have been renamed to use dash instead of underscore.
  (NXT-2220, NXT-2376)

* The REST API now provides many endpoints for hardware
  testing. (NXT-2333)

* The older "TCP interface" has been replaced with corresponding REST
  endpoints. (NXT-2336, NXT-2375)

* The front RFID reader failed to work after a soft restart. This has
  been corrected. (NXT-2249)

* Several configuration parameters have been renamed for consistency
  and clarity:
  GaroMaxChargingCurrent -> GaroOwnerMaxCurrent,
  GaroMinChargingCurrent -> GaroOwnerMinCurrent,
  GaroSupplyLimits -> GaroSupplyMaxCurrents.
  Please note that this means that when using Dynamic Load Management,
  all devices must be upgraded to this release. (NXT-2257)

* The Local Controller for DLM now uses TriggerMessage to retrieve
  MeterValues more often, even when CSMS is online. It also handles
  decimal MeterValues correctly. (NXT-2540)

* The Local Controller uses a low pass filter for both local and
  remote current measurements, to compensate for the fact that these
  readings typically do not occur at the same time. (NXT-2550)

* The parameter GaroConnectionGroupCsmsUrl has been replaced with
  GaroRemoteCsmsUrl, which is also used if GaroCsmsUrl is
  empty. (NXT-2475)

* The GaroConnectionGroupDeviceX parameter syntax has been extended to
  allow specifying that a certain device may only use DLM or network
  services. (NXT-2477)

* The default maximum current (GaroBracketMaxCurrent) has been reduced
  from 32 A to 16 A. (NXT-2308)

* Meter Values are now transferred by default every minute, since
  MeterValueSampleInterval is set to 60. (NXT-2322)

* The serial number scheme has been changed. The unit serial number is
  now always equal to the MAC adress of the first Ethernet interface,
  normally ending with a zero. Please note that units that have been
  programmed according to the earlier scheme may get non-standard MAC
  adresses on certain network interfaces. (NXT-2368)

* The garoevse application can run in simulated mode on
  MacOS. (NXT-2418)

* The order of the Current Transformer inputs on Load Interface has
  been reversed. (NXT-2476)

* Ethernet RMII drive strength has been reduced. (NXT-2379)

* The REST/web service is published using DNS-SD, and the unit
  responds to mDNS queries for the UnitID. (NXT-643)


Release 0.7.0 (2022-03-04)
==========================

* The WiFi client "wpa_supplicant" has been updated. (NXT-2102)

* Support for the "enable" input has been added. If Charging Station
  is a group Master, the input state affects the entire
  group. (NXT-302, NXT-2093)

* The embedded energy meter calculated phase-to-phase voltages
  incorrectly. This has now been fixed. (NXT-2088)

* A Charging Station will now automatically use the phases which
  provides the highest total charging current, also considering if a
  TN or IT grid is used. (NXT-63, NXT-687)

* A Master Charging Station and Load Interface now provides a Local
  Controller service for multi-level Dynamic Load
  Balancing. (NXT-82, NXT-1449)

* The internal RCD and MCB shunt trip can be tested with a short press
  of the button. The internal RCD logic is automatically tested every
  11th hour. (NXT-1422)

* When pressing the button for 10 seconds, settings are restored to
  factory defaults. (NXT-645)

* For Charging Stations equipped with a PE contactor, PME protection
  according to BS 7671 is now supported. (NXT-613)

* Uppercase hex characters are used for serial numbers and
  identifiers. (NXT-2185)

* Installation Bracket tag passwords are no longer encoded as hex and
  Base64 during authentication. (NXT-2106, NXT-2107)

* OCPP password authentication now uses the UTF-8 character encoding.
  (NXT-2170)

* The "groupkey" representation has been changed from hex characters
  to Base64. (NXT-2130)

* Support has been added for additional OCPP Parameters: ResetRetries,
  TransactionMessageAttempts, and TransactionMessageRetryInterval.
  (NXT-2144, NXT-2142)

* Energy meter data is now included in start/stop transaction
  messages. (NXT-2089)

* OCPP Charging Profiles are now supported. (NXT-1426)

* It is now possible to permanently lock the Type2 Outlet, by setting
  UnlockConnectorOnEVSideDisconnect to False. (NXT-1423)

* A new parameter "GaroAudioEnabled" controls if audio signals should
  be used. (NXT-673)

* OCPP "MeterValues" are now supported. (NXT-81)

* OCPP "Reservations" are now supported. (NXT-79)

* The OCPP 1.6 support is now feature complete. (NXT-1424)


Release 0.6.0 (2022-02-02)
==========================

* Devices in a Connection Group will now automatically join a WiFi
  Mesh network hosted by the group Master.

* Charging state handling has been re-worked to improve correctness
  and stability.

* Charging Station LED indication has been re-worked and aligned with
  OCPP statuses and earlier Garo charging stations.

* If the vehicle draws more current than offered by Control Pilot, the
  signalled current will be lowered. If vehicle still draws too much,
  relays will open.

* Load Interface now supports energy meters connected via Modbus,
  M-bus, and Norwegian AMSHAN interface. Parameters have been added to
  allow using any supported protocol over any physical port.

* The REST API has been extended to support installing unit
  certificates, resetting device, and retrieving Device ID. For
  Charging Stations, the Device ID is based on the Installation
  Bracket RFID tag UID.

* Support has been added for OCPP "Unknown Offline Authorization".

* Load Interface Current Transformer inputs can be calibrated and
  configured for different types.

* Offline OCPP transaction queue has been improved.

* OCPP authentication using RFID tag Challenge-Response can now be
  used even in --simulate mode.

* The last release could only use one Ethernet port. Support for two
  ports has been restored. (Correction is not applied by incremental
  update, a full image download is required.)

* Configuration schema now has a group concept, where groups of
  parameters can depend on other parameters as well as device model.

* Core components Python and aiohttp have been updated for stability
  and security.


Release 0.5.0 (2021-12-30)
==========================

* Load Interface devices are now supported

* ChangeConfiguration now works again (not working in 0.3.0 - 0.4.0)

* FirmwareUpdate now correctly reports "Installed" status

* Serial number ranges are now based on 0x100000 instead of
  1000000. This also means that Beaglebone devices will get a identity
  which matches the MAC address

* OCPP features "Authorization Cache" and "Local Authorization List"
  are now supported

* File system size has been reduced to 500 MB to improve device
  download time

* Device OCPP identity is now automatically determined from
  Installation Bracket tag on Charging Stations and from serial/MAC on
  Load Interface and Beaglebone

* By default, OCPP authentication will be done using RFID tag in
  Installation Bracket

* Charging Station now derates charging current when hot

* The Ethernet port is automatically used if link is detected

* By default, relays will open when residual current fault is
  detected, avoiding MCB tripping


Release 0.4.0 (2021-11-24)
==========================

* A lost connection to CSMS is now handled

* EV Driver Authorization using RFID tag has been implemented

* Support for Charging Stations with fixed cable has been added

* Ethernet with DHCP is now activated if main applications fails

* OCPP GetDiagnostics is now implemented

* Charging status is now indicated with LEDs

* New parameters: GaroFixedCableMaxCurrent, GaroHttpPort, GaroHttpsPort

* EVK boards are no longer supported

* Beaglebone image now supports Beaglebone Green Gateway


Release 0.3.0 (2021-10-21)
==========================

* 30 additional configuration parameters have been added.

* Adapted to Spin2 Hardware

* Update mechanism has been improved

* Reworked ADC subsystem

* REST API supports changing configuration parameters

* Log file moved to /var/log


Release 0.2.0 (2021-09-21)
==========================
This is the initial release.
