Hello! I’m on pat-leave, but most of this work was done prior. I want to get it out since there are some nice additions and bug fixes.
24.10.29
We recommend being on version 24.9.19 or above before updating.
Download 24.10.29 release zip file
Enhancements
dosing_automation.vial_volume
replaced withdosing_automation.liquid_volume
. You can see the values by watchingpio mqtt -t "pioreactor/+/+/dosing_automation/liquid_volume"
after starting a dosing automation.- Adding a SQL table for tracking
liquid_volume
. - Because we are now storing
liquid_volume
in the database, you can add charts in the UI that track the volume over time:- Add the following yaml contents to
~/.pioreactor/plugins/ui/contrib/charts/liquid_volume.yaml
: liquid_volume.yaml · GitHub - In your config.ini, under
ui.overview.charts
, add the lineliquid_volume=1
.
- Add the following yaml contents to
- New dataset exports from the Export data page in the UI: calibrations and liquid-volumes.
- Added a “partition by unit” option to the Export data page that will create a csv per Pioreactor in the export, instead of grouping them all together.
- od calibrations can use the
--json-file
to edit calibration polynomial coefficients. In the json file, specifycurve_data_
fields with values of the curve’s polynomial coefficients (leading term first), and setcurve_type
as"poly"
. The routine will begin with that calibration curve displayed. - faster UI response times when starting jobs.
- faster syncing configs.
- faster copying files across cluster via
pio cp
. - faster clean up of jobs using PWMs.
- new installs only: updated base RPiOS to 2024-10-22.
- new database table in
/tmp/local_intermittent_pioreactor_metadata.sqlite
calledpio_job_published_settings
that stores the published settings for each job. This powers the next API endpoints: - New API endpoints for getting the current settings of a running job:
- Per pioreactor:
- GET:
/unit_api/jobs/settings/job_name/<job_name>
- GET:
/unit_api/jobs/settings/job_name/<job_name>/setting/<setting>
- GET:
- Across the cluster:
- GET:
/api/jobs/settings/job_name/<job_name>/setting/<setting>
- GET:
/api/jobs/settings/job_name/<job_name>/experiments/<experiment>
- GET:
/api/jobs/settings/job_name/<job_name>/experiments/<experiment>/setting/<setting>
- GET:
/api/jobs/settings/workers/<pioreactor_unit>/job_name/<job_name>
- GET:
/api/jobs/settings/workers/<pioreactor_unit>/job_name/<job_name>/setting/<setting>
Ex: query the temperature of a Pioreactor:curl http://pio01.local/unit_api/jobs/settings/job_name/temperature_automation/setting/temperature
- GET:
- Per pioreactor:
Breaking changes
pio kill --name x
is nowpio kill --job-name x
- removed publishing published_settings metadata to mqtt. Ex
$properties
,$settable
,$unit
,$datatype
are no longer being sent mqtt. This was never used, and just a bandwidth suck.
Bug fixes
- fix for OD calibration graph showing “two lines” in the terminal display
- fix for updating over the internet when a Pioreactor is on a
A.devX
orB.rcY
release pio kill --all-jobs
will no longer kill long-running jobs from plugins (specifically,logs2x
jobs.)- updating the UI software won’t prematurely stop any currently running activities
- correct ethernet mac address on RPi5s
- We weren’t passing all the OS environment variables when jobs were started from the UI. This is fixed now.
- Fixed circulate media / alt. media in the UI.
- Fixed manual dosing updates in the UI.