Releases: tum-esm/pyra
v4.1.4
🧵 Refactoring and Updates
- Update the upload library
circadian_scp_upload
fromv0.4.6
tov0.5.0
because this update brought a lot of stability improvements (#229)
v4.1.3
📦 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
v4.1.1
v4.1.0
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
fromreact-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
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
.
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.
- Closes #165
Miscellaneous:
- Removed the git commit SHA from emails since this is redundant now
- Closes #156
v4.0.7
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
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
- Upload
- Debugging
- Full static typing
- Rebranding "VBDSD" -> "Helios"
v4.0.4
- Debug PYRA on all of our stations
- Replace VBDSD by a new implementation of the sunlight-classification