Skip to content

Releases: tum-esm/hermes

v0.1.0-beta.2

24 May 01:00
Compare
Choose a tag to compare
v0.1.0-beta.2 Pre-release
Pre-release

🚀 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 to schema to find anything about this method. My old way is how they recommended in the "validators" section, but they do not advertise this pydantic.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 expecting 2023-05-23. Now everything is using local time for filenames.

v0.1.0-beta.1

13 Mar 17:07
Compare
Choose a tag to compare
v0.1.0-beta.1 Pre-release
Pre-release

⚠️ This is the release for the master's thesis of Moritz Makowski ⚠️


🚀 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

  • Move Arduino communication into a thread: #48
  • Make sure, valves close after the new one opens: #55

🐛 Bugfixes

  • Debug config procedure on parameter change
  • Fix too short interval between measurement cycles: #53

v0.1.0-alpha.13

15 Feb 19:15
Compare
Choose a tag to compare
v0.1.0-alpha.13 Pre-release
Pre-release

🐛 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

15 Feb 18:20
Compare
Choose a tag to compare
v0.1.0-alpha.12 Pre-release
Pre-release

🚀 Features

  • Send wind sensor data via MQTT: #44
  • Fetch gas chamber temperature: #45

🔧 Refactoring

  • Adjust sensor averaging values to data rate: #46

v0.1.0-alpha.9

08 Feb 14:00
Compare
Choose a tag to compare
v0.1.0-alpha.9 Pre-release
Pre-release

🚀 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

08 Feb 17:36
Compare
Choose a tag to compare
v0.1.0-alpha.11 Pre-release
Pre-release

⚠️ This is the release deployed to all 20 stations ⚠️
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

08 Feb 16:43
Compare
Choose a tag to compare
v0.1.0-alpha.10 Pre-release
Pre-release

🚀 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

06 Feb 17:25
Compare
Choose a tag to compare
v0.1.0-alpha.8 Pre-release
Pre-release
feat(sensor): reduce log count from messaging agent

v0.1.0-alpha.7

06 Feb 17:07
Compare
Choose a tag to compare
v0.1.0-alpha.7 Pre-release
Pre-release
feat(sensor): debug config routine (8)

check for length of mqtt subject and details

v0.1.0-alpha.6

04 Feb 00:01
Compare
Choose a tag to compare
v0.1.0-alpha.6 Pre-release
Pre-release
bug(sensor): fix github workflow