Skip to content

Releases: tum-esm/pyra

v4.1.4

20 Sep 09:07
Compare
Choose a tag to compare

🧵  Refactoring and Updates

  • Update the upload library circadian_scp_upload from v0.4.6 to v0.5.0 because this update brought a lot of stability improvements (#229)

v4.1.3

09 Jun 15:33
Compare
Choose a tag to compare

📦  New Features

  • Add option upload.only_upload_when_not_measuring - before this was set to true by default (#219)

🧵  Refactoring and Updates

  • Migrate from Poetry to PDM - now the installation does not require Poetry anymore, but only pip (#214)
  • Migrate the UI from Yarn to Bun
  • Add more logs from Helios thread (#218)

🪲  Bugfixes

v4.1.2

09 Jan 16:17
Compare
Choose a tag to compare

🧵  Refactoring and Updates

  • Update the overview tab state variables (#212) - Replace "reset needed" and "motor failed" with "heater power" and "helios edge pixels"

v4.1.1

08 Jan 12:48
Compare
Choose a tag to compare

📦  New Features

  • Add option to only run uploads during night (#210)

🪲  Bugfixes

  • Bugfixes and improvements after big update 4.1.0 (#209)

v4.1.0

06 Dec 00:17
Compare
Choose a tag to compare

Overview: A ton of tiny improvements and bug fixes over 4.0.8. A new upload that works for arbitrary directories. A completely redesigned UI. Many explanations inside the configuration tab. More user-friendly logs tab. Error email with any SMTP provider (not just Gmail). Buttons to test Pyra parts from the UI. Enriched activity history. Links to issue tracker and docs in UI.


Details

Code Quality Improvements:

  • Now using Pydantic objects instead of TypedDicts and stricter types: #174, #122
  • Refactor Helios code #194
  • Merge persistent and temporary state into one object: #190
  • No longer keep info logs (just the debug logs). Write log lines to archive right away. Only keep the last 5-10 minutes of logs in the debug log file to decrease system load and UI parsing logic: #189
  • The UI now parses the loaded state and config using zod (https://zod.dev) for better runtime type safety. It sends error notifications if the parsing is unsuccessful but can display logs, nevertheless.
  • Remove many UI loading states in favor of using toast.promise from react-hot-toast (https://react-hot-toast.com/docs/toast#advanced)
  • Add a central UI hook that prevents multiple CLI commands from being run at the same time

Core Improvements:

  • Prevent failing modules from blocking other modules from executing when there is no dependency between them: #173
  • Add more links to PLC documentation: #172
  • Add power cycle for the camera at midnight: #179
  • Make the error email server configurable (still supports the Gmail one): #191
  • Store GPS and Sun Elevation in state and render them in UI: #26
  • Log current sun angle: #192
  • In error emails, send debug-logs instead of info-logs: #183
  • Save data from TUM PLC in files: #201
  • Do not start measurements when PLC indicates rain: #203
  • Fix bug in CLI when force-closing cover: #207

Opus Improvements:

  • If we have the info about the cover angle, only run the Opus Macro when the cover is open: #198
  • Fix Pyra launching multiple Opus windows: #202
  • Possibly fix DDE errors due to multiple OPUS windows: #155

Helios Improvements:

  • Showing the current Helios images in the UI: #199
  • Add a minimum time between Helios decision changes: #195
  • Add more log lines to clarify buffer logic: #178
  • Make Canny filter threshold and target pixel brightness configurable: #200

Upload Improvements:

  • Refactor the Upload: Now supports arbitrary directories: #193
  • Do not run upload when measuring: #177
  • Make upload work for datalogger files: #92
  • Improve the observability of the upload process: the UI now has a dedicated logs filter for upload logs, and the logs are more verbose now: #116

CamTracker Improvements:

  • Deal with large CamTracker files by only reading the last few lines: #107
  • Add two more checks for a possible restart to detect whether CamTracker is stuck at initialization: #184

UI Improvements:

  • The UI can now be used when the core is not running
  • Divide logs into four categories: main, helios, upload, ui
  • On file text inputs, add a button to show the parent directory in the File Explorer: #171
  • Add button to copy config.json: #182
  • Show long error messages in UI instead of printing "details in console": #196
  • Add buttons to test upload and emailing: #120, #109
  • Add buttons to test OPUS and CamTracker connectivity: #204, #205
  • Fix the "config has changed" popup: #106
  • Add links to documentation and issue tracker: #163
  • Improve the activity history: #188
  • Improve the design of everything: #175
  • Debug notifications: #34

Sneak Peek

The two tabs, "overview" and "automation" from 4.0.8, have been merged into one overview tab. The new activity history and system status show more information. The measurement status is more apparent now (big green/gray bars).

Before:

After:


The config now explains all non-obvious settings. OPUS, CamTracker, Upload, and Error Emails have a self-test that can be run from the UI. The navigation bar has links to the issue tracker and the documentation (top right).

Before:

After:


The logs tab navigation has been improved so that each thread's logs can be seen separately.

Before:

After:

v4.0.8

14 Jun 10:15
Compare
Choose a tag to compare

Overview: Many tiny improvements and bug fixes over 4.0.7. Now, also usable offline. Migrated from astropy to skyfield. Removed local utility implementations in favor of the better tested tum-esm-utils. Improve reliability of Helios camera connection.


Details

Fix issues with PLC communication:

The underlying library (snap7) changed their internal error types from the custom Snap7Exception to the built-in RuntimeError. We had a logic built into Pyra to only report PLC errors if they persist for more than 10 minutes, but this was only considering any Snap7Exception.

  • Closes #151
  • Freeze the poetry dependencies to the one used in 4.0.7
  • Closes #157

Fix astronomy utilities:

The previously used Astronomy library (astropy) does not work offline. It also has a lot of side effects (weird errors from internal logging) and bad types annotations and documentation. So we switched to the Skyfield library (https://rhodesmill.org/skyfield/) and included the astronomical dataset to be downloaded directly in the repository (~ 16 MB, but would have to be downloaded anyway).


Helios Improvements:

We made the Helios implementation more resilient to camera issues - e.g. when changing the exposure or other settings frequently.


More use of tum-esm-utils:

We have merged utility functions of many of our projects into a utility library (https://github.com/tum-esm/utils). We removed some of the utility classes/functions from the Pyra codebase and use the better tested tum-esm-utils library.


Miscellaneous:

  • Removed the git commit SHA from emails since this is redundant now
  • Closes #156

v4.0.7

14 Feb 13:16
Compare
Choose a tag to compare

Overview: This release improves and refines Helios - our system of detecting direct vs. indirect sunlight. It also improves Pyra's utility functions and tests.


Details

Helios Improvements:

Refactor the decision circle buffer. Refactor the Ringlist datastructure and add elaborate tests. Reduce the number of quickly alternating Helios decisions. Add a script to determine optimal Helios parameters. Refactor the Helios code a bit. Simplify the Helios config.


Miscellaneous:

Refactor the dependency groups and add caching to Tauri CI workflow.

v4.0.6

19 Oct 10:13
9a3d714
Compare
Choose a tag to compare

Overview: This release adds a lot of final touches to our first non-prerelease version. This includes a lot of improvements to the documentation, bugfixes and tiny features making it easier to use Pyra.

v4.0.5

02 Sep 02:58
410af7b
Compare
Choose a tag to compare
v4.0.5 Pre-release
Pre-release
  • Upload
  • Debugging
  • Full static typing
  • Rebranding "VBDSD" -> "Helios"

v4.0.4

10 Aug 15:55
0a08b06
Compare
Choose a tag to compare
v4.0.4 Pre-release
Pre-release
  • Debug PYRA on all of our stations
  • Replace VBDSD by a new implementation of the sunlight-classification