8.15.0 (2023-01-13)
This release fixes several bugs and changes how measurement timestamps are returned from the time-series database.
InfluxDB Changes
Since support for InfluxDB 2.x was added, in order to make data that’s returned from the time-series database more consistent, all timestamps from internal Mycodo functions will be returned as a decimal epoch value. Please update any custom modules or code to incorporate this change.
Previous behavior: InfluxDB 1.x returned data as a date/time string value (e.g. 2022-10-31T14:49:25.034447Z).
New Behavior: InfluxDB 1.x returned data as an epoch float value (e.g. 1667228575.557).
Camera Changes
Cameras integration was initially built into the Mycodo system. This made it difficult for users to add new camera libraries or features unless they learned the codebase well enough to understand the many files needed to be modified. This release allows for camera functinality to be developed within a single Function module file. This enables users to more easily develop and implement their own Camera Functions or modify existing Camera Functions to add new features.
As this system is developed, the original camera system will be phased out, as it’s a lot of work to maintain two different camera systems. As of now, there is only one Camera Function (libcamera). This should be considered EXPERIMENTAL and only used to test the development of this new feature until it is considered stable.
Features
- Add Input: MCP3008 (adafruit-circuitpython-mcp3xxx library)
- Add Input: On/Off Output State
- Add Input: Senseair K96 (#1196)
- Add Input: VL53L4CD
- Add Input: ams AS7341 light spectrum sensor
- Add Output: Remote Mycodo Output: On/Off (API)
- Add Output: Remote Mycodo Output: PWM (API)
- Add Output: Sequent Microsystems 8-Relay HAT for Raspberry Pi
- Add Output: Sparkfun Relay Board (4 Relays)
- Add Function: Camera libcamera Image
- Add Function: Regulate pH and Electrical Conductivity
- Add Widget: Activate/Deactivate Controller
- Add ability to set each Graph Widget series type to either Line or Column
- Add Temperature Calibration for Atlas Scientific PT-1000 Input
- Add language selection to installer
- Add Turkish Translation
- Make Docs Translatable (Mycodo)
- Add language selection on Admin Creation and Login pages
- Add ability to select Outputs in Output Modules
- Add ability to average measurements in Verification Function
- Add ability to select Output Measurements in Equation Functions
- Add Analyse with Pylint option for Python Code in Inputs, Outputs, and Conditional Functions (#1249)
Bugfixes
- Fix Python Code Input logging Exceptions in the Daemon Log
- Fix inability to execute Function Commands
- Fix get_custom_option() not returning the latest value
- Fix potential Missing Attribute error on Live page
- Fix continuous bad checksum errors with MHZ-14 input
- Fix SI1145 Input dependency
- Fix Output/Measurement/Channel selection in Output Modules
- Fix channel state at initialization of Python and Shell Command Outputs
- Fix function_status() error-handling
- Fix function modules not using function_name_short option
- Fix Sense Hat Input dependency (#1233)
- Fix missing jq dependency if not installed from the install script
- Fix values set by set_custom_option() from being reset when an Input/Output/Function configuration is saved
- Fix Select Device option not populating controllers properly
- Fix deprecated opencv dependency (update opencv to 4.6.0.66)
- Fix urllib camera library not saving the correct file name
- Fix missing image for Camera Widget when “Acquire Image (and erase last file)” selected
- Fix issues with SCD4x Input calibration (#1234)
- Fix data type issue in PID Controller when using InfluxDB 2.x (#1232)
- Fix data type issue in LCD Functions when using InfluxDB 2.x (#1239)
- Fix various InfluxDB 2.x issues
- Fix SHT31 Smart Gadget Input initialization
- Fix MCP23017 Pump Output initialization
- Fix race condition with Kasa RGB Bulb that could sometimes turn it back on after turning off
- Fix digits not properly displaying on PID Controller Widget
- Fix determining improper influxdb host in Docker
- Fix flask and nginx logs appearing empty in Docker
- Fix Outputs displaying on Energy Usage Page
- Fix API Output POST when using a volume (#1245)
- Fix hiding Warning/Info/Success toast messages
- Fix timelapse error from entering too long duration (#1246)
- Fix Display Functions not properly changing line sets (and other Functions utilizing the same method)
- Fix typo in variable of Conditional Function example code (#1248)
- Fix Create Note Action typo preventing tags form woorking when passes as JSON
- Fix Atlas Pump not being able to turn on without duration (#1254)
Miscellaneous
- Improve verbosity of errors with Custom Modules
- Make Function Status errors appear in the Function Status area of the UI
- Update ruuvitag-sensor from 1.1.0 to 2.0.0
- Update Mycodo Python libraries
- Move toast popup messages from top-right to top-left
- Move buttons to the top of the Dashboard Configuration