Releases: tum-esm/hermes
Releases · tum-esm/hermes
v0.1.0-beta.2
🚀 Features
- Update README: Describe the update and release cycle, describe how to run the code on the RasPi, add information about used Raspi OS
- On upgrades, wait to finish the message-sending before upgrading: #81
- Add
restart
command: #80 - Simplify and use calibration procedure: We implemented it before but never used it. Now it is run daily and works great: #71
- Send heartbeats: Heartbeats are now sent on success/failure of a config update and every 5 minutes: #67, #29
- Communicate with new air inlet sensor: Now using the SHT45 and BME280 instead of the SHT21 only: #61
- Copy
state.json
file on upgrades
🔧 Refactoring
- Simplify Config: Make calibration config simpler, rename properties
- Improve validation: Use
pydantic.Field()
instead of custom validator functions (8dc0710). I didn't know about this feature before because the Pydantic docs are hard to read. This style of validating fields is not found under "validators" and is hard to find using DuckDuckGo/Google; you must go toschema
to find anything about this method. My old way is how they recommended in the "validators" section, but they do not advertise thispydantic.Field()
method even though the notation is so much cleaner and can do the same in ~95% of use cases. - Class Renaming:
MessagingAgent
->MQTTAgent
,ActiveMQTTQueue
->MessageQueue
- Improve CLI functionality: Now the
hermes-cli
kills the process with SIGTERM and force-kills it if it has not terminated on its own after 10 seconds. - Simplify MQTT messaging: Messages will now be written to the archive on arrival instead of after a successful send. With this, we could remove the entire archiving mechanism
- Simplify Logging: Now the messages will be written to the archive directly instead of keeping the last hour of logs in a
current-logs.log
file
🐛 Bugfixes
- Debug teardown procedure: In the teardown function of the main thread and the communication loop, the graceful teardown was sometimes observed to take very long. It was probably one of the reasons for the scaling issues I observed. I added a timeout to this graceful teardown, so the process will be terminated immediately if the graceful teardown takes more than 10 seconds: #70, #60.
- Fix wrong valve specification: #62
- Fix bug in tests where both local and utc time were used: I was lucky to spot this one because I ran the messaging tests while the local time was on a different date than the utc time: code wrote into
2023-05-24
, test were expecting2023-05-23
. Now everything is using local time for filenames.
v0.1.0-beta.1
🚀 Features
- Implement integration tests for all hardware interfaces: #19
- Raise
TimeoutError
when setup takes too long: #57 - Raise
TimeoutError
when mainloop iteration takes too long: #54 - Reboot when an error persists for more than 12 hours: #56
- Add repairing routing for communication threads: #49
- Test cutting of very long log messages: Subjects will be cut to 256 characters and details to 16384 characters. In case the message gets cut, the last few characters indicate how much has been cut: " ... CUT (20249 -> 16384)"
🔧 Refactoring
🐛 Bugfixes
- Debug config procedure on parameter change
- Fix too short interval between measurement cycles: #53
v0.1.0-alpha.13
🐛 Bugfixes
- Debug enclosure Arduino system checks: Not blocking anymore, every time the communication breaks for a while
- Debug wind sensor system checks: Not blocking anymore, every time the communication breaks for a while
- Debug config restoring on upgrades
v0.1.0-alpha.12
v0.1.0-alpha.9
🚀 Features
- Remove old virtual envs after successful upgrade
🔧 Refactoring
- When code version doesn't change, only test
config.json
- Do not send empty details on log messages
- Reduce dependency install time: from 5 to 1.5 minutes for new versions
- Improve log message format sent to MQTT: #40
v0.1.0-alpha.11
All future releases will be done with software updates
🚀 Features
- Add alias for
hermes-cli
to raspi-setup - Extend raspi setup to use this release
🐛 Bugfixes
- Fix bug in param change routine
v0.1.0-alpha.10
🚀 Features
- Add new test for CLI startup
- Add pytest tracebacks on config upgrade fail
- Exit if hardware blocks config update
🔧 Refactoring
- Move system checks after upgrade routine
🐛 Bugfixes
- Fix bug in dependencies
v0.1.0-alpha.8
feat(sensor): reduce log count from messaging agent
v0.1.0-alpha.7
feat(sensor): debug config routine (8) check for length of mqtt subject and details
v0.1.0-alpha.6
bug(sensor): fix github workflow