Skip to content

Latest commit

 

History

History
370 lines (271 loc) · 15 KB

CHANGELOG.md

File metadata and controls

370 lines (271 loc) · 15 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Unreleased

Added

Changed

Deprecated

Removed

Fixed

Security

0.5.5 - 2024-09-05

Added

  • Runtime/UI: Ability to set up the RS-485 connection by full file reference. That allows it to bind the connection to the physical port, persistently through the reboots.
  • Runtime/UI: Ability to view stdout log in control interface.
  • Runtime: Improved the GSM state information handling for the UI.

Changed

  • Runtime: Using Armbian_23.8.1_Orangepipcplus_jammy_current_6.1.47 image as a base now. Should fix the issue of losing GSM connection when device is rebooted with GSM USB stick inserted.

Fixed

  • UI: Correctly processing "unknown" status on GSM interface.
  • UI: LWG-1 callibration UI bug fix.

0.5.4 - 2024-05-09

Changed

  • UI: Manufacturing interface texts review.

Fixed

  • UI: Battery level was not displaying on 0% for LoraSens devices.
  • UI: Interface was not updating after switching LWG-1 device on/off (perpetual spinner).
  • Runtime: Flush FS cache after writing command file to the external USB stick.

0.5.3 - 2024-04-08

Added

  • Runtime: Config is backed up on changes. Config file write is an atomic operation now.
  • Runtime: Temporary Modbus registers for LoraSens LWG-1 data with additional LoraSens related settings in config file.
  • Tasks: lorasens-logger task to read and store information from LWG-1 (weight) and LTH-1 (temperature/humidity) sensors.

Fixed

  • Runtime: Background task logging LoraSens data incorrectly wrote loaded/unloaded counters.
  • Runtime: Don't start Modbus TCP server if it's disabled in configuration (preventing SIGTERM errors).
  • Runtime: Additional opcb224l fixes in config schema.
  • Runtime: Fixed an error while detecting USB device unplugging (RS-485 module).

0.5.2 - 2024-02-27

Fixed

  • Runtime: Added missing opcb224l support in config schema.

0.5.1 - 2024-02-23

Added

  • Runtime: IPKA master protocol support on RS-485.
  • Runtime/UI: LTE USB modems basic support (currently only Huawei E353(3.se)).

Fixed

  • Runtime: Sometimes disconnection reslted in SIGPIPE error in Modbus TCP server.
  • UI: In stream log ASCII was incorrectly decoded.
  • UI: Debug connection log didn't display the direction of transfer (TX/RX) for messages that can't be parsed by highlighter.
  • Runtime: RS-485 module now forcefully ends the receiving process after the buffer is full. This is important when there is a constant stream of data or noise is on the line.

0.5.0 - 2024-02-12

Added

  • Runtime: New OPCB-224L, supporting LoraSens protocol able to connect and read data from LoRa sensor devices.
  • Runtime: LWG-1 weight sensor array device support.
  • Runtime: Background task to log incoming LoraSens data from sensors.
  • UI: Interface for managing connected LoraSens devices
  • Runtime: API and internal procedures for managing authorized SSH keys.
  • UI: Interface for managing authorized SSH keys on the device.
  • Runtime: Reporting connectivity telemetrics to the external server for licensed devices. Can be disabled and configured in config file.
  • UI: Hiding the private key on license picture on LAN/Internet page.
  • UI: Increased the timeout for retrieving Wi-Fi list API request (sometimes Wi-Fi scanning can take more than 10s).
  • UI: Link to changelog in the successful update notification.
  • UI/Runtime: SD-card speed testing utility on the "control" page.
  • Runtime: Enabling SPI interface for OPCB-224L automatically. Can be disabled in the config file.

Changed

  • Runtime: Authorized root SSH key is only set once during the first boot.

Fixed

  • Runtime: Incorrect path was reported in log regarding restoring factory value in config.
  • Runtime: In some cases, Node 20 process was taking 300% CPU because of Linux kernel's bug with uvlib. Using UV_USE_IO_URING=0 environment value now to fix the issue.
  • UI: When the connection with VPN was lost, device was displaying VPN status as "unregistered".

0.4.0 - 2024-01-31

Added

  • Runtime: Runtime and API for running user-created tasks. Tasks are JS scripts that are executed in worker threads and running on background. OPCB provides helper library, allowing user tasks communicate with OPCB runtime via Redis/Sqlite. Tasks project is initialized in user folder from the template by API request. Tasks project includes tools to compile JS from TypeScript and a set of helper function to interact with other OPCB runtime modules.
  • Runtime: Added Modbus library, allowing to easily encode/decode Modbus RTU/ASCII/TCP requests and responses. Useful for Modbus-related tasks.
  • Runtime: Reporting ttyUSB0 as available TTY if no interfaces were found, to provide a chance to set up TTY connection without an inserted USB device.
  • Runtime: Automatic filesystem check on boot. Helpful in cases when FS was corrupted due to power loss or incorrect shutdown. Can be disabled in config.

Changed

  • Runtime: Updated NodeJS to v20.9.0.
  • Runtime: Centralized schemas and sqlite procedures.
  • Runtime: RS-485 port open error log message moved to debug log.
  • UI: Since WiFi password is randomized and set after finalizing manufacture process, finalization UI doesn't attempt to connect browser to the API, and just displays a success message after receiving confirmation from API, losing the connection and waiting for 10s delay.
  • UI: Displaying LAN/WiFi IP addresses as links in "Internet" section.
  • UI: Additional information icons in form fields are now marked with blue color to accentuate the interactibility.
  • UI: Displaying a list of connected command files in the footer.
  • UI: Displaying username in the header for non-admin users.

Fixed

  • UI: Modbus TCP Server logs were not displayed properly.
  • UI: Cloud actions (unbind and access from the cloud) are hidden when UI is proxied through cloud.
  • UI: Fixed multiple "success" messages being displayed during firmware update process.
  • Runtime: RS-485 TTY stop and parity bit option "1N" was not working.
  • Runtime: RS-485 port was waiting forever to send a message if there is noise present on the TTY.
  • UI: Message about firmware version update was displayed incorrectly after factory settings reset and also for newly manufactured devices.
  • UI: Debug log interface was incorrectly resized for logs containing long lines.
  • Runtime: Runtime failed with error if the list of TTYs, available Wi-Fi's or timezones was empty during processing.
  • UI: Added non-caching headers to some static files (changelog, label) to fix the issue of displaying old version of the file after it was updated.

0.3.7 - 2023-11-09

Added

  • Runtime: WiFi password is automatically encoded in Base64 in configuration file.
  • Runtime: Default "admin" user password and WiFi Access Point password are randomised during the manufacturing.
  • Runtime: Printing default admin/AP password on the device label image.

Changed

  • Runtime: Removed ttyS* interfaces from RS-485 interfaces list.
  • Runtime: Internal refactoring of Redis/Sqlite communication code.
  • Runtime: During the manufacturing testing, OPCB sends API authentication token to the testing server, instead of relying on default password to be known.

Fixed

  • Runtime: Incorrect WiFi mode information in OPCB_INFO command file.

0.3.6 - 2023-09-14

Added

  • Runtime: Remote tests during the manufacturing process.
  • UI: Interface proxying through the Overvis server for the remote access.

Changed

  • Runtime: Remote test server configuration changes.

0.3.5 - 2023-09-11

Added

  • Runtime: New command file: insert USB stick with the file named SSH_AUTH_KEY and a public SSH key inside it, this file will be added to /root/.ssh/authorized_keys on the device.
  • Runtime: New command file: insert USB stick with the empty file named OPCB_INFO and wait 10 seconds. OPCB runtime will write basic information in that file in the JSON format. This information includes the device's IP address in the local network.
  • UI: After successful background update, notification is displayed after the next user login.
  • UI: Disablable auto-scrolling in Modbus debug logs.
  • Runtime: Automated manufacturing testing scaffolding and UI.

Changed

  • Runtime: Wi-Fi connection is established on the background, to reduce the time of device's settings changing procedure.
  • UI: Removed localhost IP address from the default value in the new Modbus TCP client creation form.
  • Runtime: Reordering in OPCB Modbus registers list, also some value multipliers were changed. OPCB Modbus registers table is still not frozen, and will probably be changed in the future updates.
  • Runtime: Code for the proxying the interface through the Overvis server, for the remote access from Overvis Cloud.
  • UI: Increased all requests timeouts to improve the usability for environment with slow network connections.

Fixed

  • Runtime: Several small fixes in Linux management procedures.
  • UI: Correctly displaying the debug log output for the case when several Modbus TCP requests are packed into one TCP packet.
  • UI: Automatically reconnecting debug log Websocket on disconnection, displaying socket connection/disconnection messages in log.
  • UI: Fixed the link to Overvis network for the device binded to the cloud.
  • Runtime: RS-485 interfaces restarted on any settings change.

0.3.4 - 2023-07-11

Added

  • UI: Added ability to unbind device from the cloud account.
  • Runtime: Communications API for OCP servers integration.

Changed

  • Runtime: Vaious performance and speed optimisations in RS-485 module.
  • Runtime: Performance and speed optimizations in Modbus TCP modules.
  • UI: New RS-485 connection is set to "RTU Master" by default.
  • UI: Log output performance optimization.

Fixed

  • Runtime: Some Modbus OPCB registers were incorrectly returning errors on read.
  • Runtime: Restore identity sometimes failed with timeout error. Increased timeout.
  • UI: Fixed page footer styling.

0.3.3 - 2023-06-28

Added

  • Runtime: Reporting runtime errors to Sentry.
  • Runtime: Storing last executed runtime version to config file.
  • Runtime: Subsystem to automatically migrate config and filesystem changes on start.
  • UI: Added label display on the manufacturing page.
  • Runtime: RS-485 time metrics logging and performance optimisations.
  • UI: Request generator form now restrict incorrect numbers on input.

Changed

  • Runtime: Reworked opcb-runner config schema. Specified defaults.
  • Runtime: Moved device label image to the user directory.

Fixed

  • Runtime: Fixed an issue where the RS-485 configuration was not fully synchronized.
  • UI: UI was incorrectly displaying restart/reboot procedure counters.
  • UI: Quick setup page was not redirecting to dashboard after submitting.
  • UI: Log output optimizations. Temporarily restricted logs length to 1000 items, until proper performance fix is implemented.
  • UI: Hex switch in request generator wasn't working correctly.

0.3.2 - 2023-06-20

Changed

  • UI: Device name is now saved on input focus lose.

Fixed

  • Runtime: MAC was not updating during runtime, only after restart.
  • Runtime: Runtime failed on start without internet connection, because git fetch command exited with error status code.
  • Runtime: Default config file should not contain any RS-485 connections.
  • UI: Bug that was constantly refreshing error display component during the connection loss.
  • UI: Quick setup was adding the ttyS0 RS-485 device instead of ttyUSB0.
  • UI: Expecting Failed to fetch error on all fetch requests.
  • UI: Wi-Fi password was not sent correctly to backend.
  • UI: Increased timeout on Wi-Fi settings saving.
  • UI: All dropdowns in forms were cut off by modal windows.
  • UI: Quick setup page was sending multiple slow requests, merged them into one.
  • UI: Increased timeout for all settings change requests.
  • Runtime: Runtime failed on start without internet connection, because wireguard service couldn't be started.

0.3.1 - 2023-06-19

Added

  • UI: Redirection to the Quick Setup interface when accessing OPCB through Wi-Fi Access Point.
  • UI: Additional information in the connection loss error messages.

Changed

  • UI: Updated Next.JS to the latest version.
  • UI: Updated Mantine UI to the latest version.
  • UI: General clean-up of the UI code.
  • Runtime: Automatically installing iputils-ping package instead of the default ping package. Since this package can receive the delay as a fractional value.
  • Runtime: Additional logging for debugging.

Fixed

  • UI: Copying Modbus log content to clipboard was broken.
  • Runtime: Error while saving factory configuration.
  • Runtime: Incorrect network mask was set for AP/station wifi which prevented the assignment of the IP address for the connected clients.
  • UI: Manufacturing interface displayed the incorrect message about the device being already registered for the unregistered device.
  • UI: Properly displaying errors on manufacturer's pages: restore / register.

0.3.0 - 2023-06-14

This is the initial version of the OPCB firmware. Version 0.2.0 was a pure C-based code that was rewritten from scratch in 0.3.0 release.

OPCB package in its current version supports the following:

  • LAN connection.
  • WiFi connection.
  • RS-485 Modbus connection through TTY
  • Modbus TCP client/server.
  • Wireguard VPN connection.
  • Communicating with OPCB using Modbus.
  • HTTP UI + API.
  • Simple Modbus debuging and logging UI tools.
  • User accounts and authentication.
  • Controlling execution (Linux) environment.
  • Manufacturing UI for registration of the device in the cloud.
  • Configuration is stored in JSON + Sqlite database.