Skip to content

Releases: kizniche/Mycodo

8.16.0

29 Sep 23:12
Compare
Choose a tag to compare

8.16.0 (2024.09.29)

This release updates several python packages that require Python >= 3.8. You can check your Python version prior to upgrading. If you do not have the required version, you should not upgrade, since this will likely break your system. To be able to use this and future Mycodo releases, ensure you are running an updated operating system that supports a modern Python version.

This release changes the Desktop grid width from 20 to 24, enabling the use of 3 column layouts that are evenly-spaced. You will need to resize/rearrange Dashboard Widgets after this update to correct for the new width. The update of Gridstack to 10.0.1 also now allows the ability to drag Desktop widgets on mobile devices. If you don't like this behavior, you should lock the desktop from the Dashboard Configuration menu to prevent widgets from being dragged/rearranged.

This release changes the install directory from ~/Mycodo to /opt/Mycodo. This necessitates deleting and regenerating the Python virtual environment. If you have any custom changes to the Mycodo venv, you will need to make those changes again after the upgrade. As a result of moving the install directory, following the upgrade, you will need to either run "sudo service mycodoflask restart" in a terminal or reboot your system for the web interface to become accessible again.

Bugfixes

  • Fix some Inputs potentially sending integers to influxdb when it should be float
  • Fix influxdb client install if server is already installed
  • Fix Select options of web UI not properly displaying the saved value
  • Fix note attachments not being copied during upgrade
  • Fix display of values <=0 in PID Widget (#1372)
  • Fix MCP23017 Pump Output KeyError
  • Fix displaying Tags on Highcharts Widget
  • Fix dependencies of Mijia LYWSD03MMC
  • Fix Restart Frontend returning an error
  • Fix PWM Outputs not recording values of 0 to database

Features

  • Add Action: Measurement (Single, Last, with Timestamp)
  • Add Input: DHT20
  • Add Input: MAX31855 CircuitPython
  • Add Output: GPIO On/Off using pinctrl (First Pi 5-compatible Output)
  • Add Output: PWM MQTT Publish
  • Add Output: GP8403 2-Channel DAC (0-10 VDC) (#1354)
  • Add Output: GP8XXX (8403) 2-Channel DAC (0-10 VDC) (#1354)
  • Add Output: XL9535 16-Channel On/Off IO-Expander
  • Add Widget: Measurement (2 Values)
  • Add ability to set custom layout.html
  • Add API Endpoint: /notes/create to create a Note (#1357)
  • Add ability to switch displaying hostname with custom text
  • Add Step Line Series Type to Graph (Synchronous) Widget
  • Add controller_restart as client endpoint
  • Add option for custom CSS
  • Add options for changing title and brand text
  • Add ability to edit Input and Input Measurement unique_id
  • Add "edge_input" Input option for use in Edge Trigger Functions
  • Add ability to use custom theme

Miscellaneous

  • Move install location from ~/Mycodo to /opt/Mycodo
  • Change Dashboard grid width from 20 to 24
  • Add endpoint option to RAM Input for when Mycodo is using a non-standard IP/port
  • Add self.control to the Python 3 Code Action
  • Run widget HTML regeneration in thread
  • Update InfluxDB 2.x to v2.7.8
  • Update adafruit-circuitpython-ads1x15 to 2.2.25
  • Update Gridstack to 10.0.1
  • Update alembic to 1.13.1
  • Update bcrypt to 1.4.2
  • Update distro to 1.9.0
  • Update email_validator to 2.0.0
  • Update filelock to 3.13.1
  • Update Flask to 3.0.0
  • Update Flask_Babel to 4.0.0
  • Update Flask_Compress to 1.14
  • Update Flask_Limiter to 3.5.0
  • Update Flask_Login to 0.6.3
  • Update Flask_RESTX to 1.3.0
  • Update Flask_SQLAlchemy to 3.1.1
  • Update Flask_WTF to 1.2.1
  • Update marshmallow_sqlalchemy to 0.30.0
  • Update pyro5 to 5.15
  • Update requests to 2.31.0
  • Update setuptools to 69.0.3
  • Update SQLAlchemy to 2.0.25
  • Update Werkzeug to 3.0.1
  • Update WTForms to 3.1.2

8.15.13

24 Dec 22:25
Compare
Choose a tag to compare

8.15.13 (2023.12.24)

Bugfixes

  • Fix inability to properly import settings backup
  • Fix Actions not executing for MQTT, TTN, and Python Code Inputs (#1336)
  • Fix running pylint
  • Fix display of data from Functions on the Live Page

Features

  • Add ability to use Actions in Custom Functions
  • Add Input Action: Execute Python 3 Code (#1334)
  • Add Function: Adafruit Neokey (Key Press Executes Actions) (#1353)
  • Add Action: Neopixel Flashing On
  • Add Action: Neopixel Flashing Off
  • Change deprecated threading.currentThread to threading.current_thread

8.15.12

28 Oct 14:46
Compare
Choose a tag to compare

8.15.12 (2023.10.28)

This is a bugfix release that updates pylint to fix an inability of some users to build a dependency.

Miscellaneous

  • Update pylint to 3.0.1

8.15.11

18 Oct 23:17
Compare
Choose a tag to compare

8.15.11 (2023.10.18)

This release fixes a bug that prevents installing some dependencies.

Bugfixes

  • Fix issue installing some dependencies
  • Fix automatically reloading the frontend when adding certain Widgets

8.15.10

15 Oct 23:36
Compare
Choose a tag to compare

8.15.10 (2023.10.15)

This release is a bugfix release to fix issues related to installing Mycodo on the latest Raspberry Pi OS (Debian 12, Bookworm).

Bugfixes

  • Fix missing netcat apt install candidate with package netcat-openbsd
  • Fix pip requiring --break-system-packages to install/update non-system packages
  • Fix install by replacing whiptail with dialog

Miscellaneous

  • Add timeout parameter to module_function()

8.15.9

21 Aug 17:41
Compare
Choose a tag to compare

8.15.9 (2023.08.21)

Bugfixes

  • Fix setting Camera timelapse duration to 0
  • Remove deprecated Raspberry Pi Enable Camera option
  • Fix no image when libcamera AWB turned off
  • Fix Rsync Backup Function (#1314)
  • Fix Activate/Deactivate Controller Widget not recognizing Custom Functions
  • Fix tags in Create Note Action
  • Fix saving Python Code Input when Pylint Analysis is disabled
  • Fix several Actions using incorrect calls to a function
  • Fix Mycodo login and influxdb login fields having the same web form ID
  • Fix Install issue selecting InfluxDB on 32-bit operating systems
  • Fix Install by setting python jsonschema version to 4.17.3 to avoid 4.18.x rust dependency
  • Fix deprecated parse_version with packaging.version.parse() (#1333)

Features

  • Add I2C interface for K30 Input
  • Add Day to unit conversion
  • Add ability to disable any Input/Output/Function/Widget option (user can view but not change)
  • Add ability to return Input/Output/Function object with module_function()
  • Add min_value and max_value parameters to query_flux()
  • Add ability to select Output measurements in Sum Functions
  • Add Input: Python 3 Code (v2.0) (#1297)
  • Add popup of Action UUID when hovering on its title

Miscellaneous

  • Add check for missing measurements/channels when an Input is saved
  • Update Python packages

8.15.8

06 Apr 16:20
Compare
Choose a tag to compare

8.15.8 (2023-04-06)

Bugfixes

  • Fix PID Controller startup status error
  • Fix PCF8574 Pump Output always saving output amount to channel 0 (#1281)
  • Fix numpy import error by installing libatlas-base-dev
  • Fix dependency install for bash-commands
  • Fix Custom Option display when no value in database
  • Fix Conditional Function pylint dependency install
  • Fix Conditional Function displaying code output when saved if pylint disabled (#1291)
  • Fix waiting for influxdb to start if installed without influxdb (#1293)
  • Fix WiringPi URLs (#1294)

Features

  • Improve RAM Input by adding System Free/Used RAM and Mycodo Frontend RAM
  • Add API endpoints to export Mycodo Configuration and Influxdb Database
  • Add Input: System Uptime

Miscellaneous

  • Update Python packages
  • Update the SCD-4x Input adafruit-circuitpython-scd4x version to 1.3.8

8.15.7

02 Mar 23:48
Compare
Choose a tag to compare

8.15.7 (2023-03-02)

This update fixes a few bugs and adds the new Input Equation Action, which can apply an equation to an Input measurements prior to being stored in the database. For instance, if you wanted to apply an offset of +10 to a particular measurement of an Input, you could use the equation "x+10".

In order for this new Action to be able to be created, there had to be a refactoring of the trigger_action() API function and run_action() Action module function.

All references your code previously made to:

trigger_action(action_id, value=None, message='', debug=False)

Will need to be changed to:

trigger_action(action_id, value=None, debug=False)

Additionally, custom Action modules previously with the Class function:

run_action(self, message, dict_vars)

Will need to be changed to:

run_action(self, dict_vars)

Since dict_vars will be a dictionary that contains the key "message". Any messages added in run_action() will need to be appended to dict_vars['message']. Additionally, dict_vars will need to be returned by run_action() rather than the variable messages.

Again, if you use any custom Actions, it is imperative that you make this second update to your modules for them to be able to properly work when upgrading to or beyond v8.15.7.

Bugfixes

  • Fix Regulate pH & EC Function not regulating pH when water needs to be added
  • Fix unit conversion of Python 3 Code Input
  • Fix influxdb warning text during install (does not affect the actual install) (#1276)
  • Fix MQTT JSON Input not storing values as float
  • Fix PID Controller Widget timestamps

Features

  • Add Input Equation Action
  • Add Search to Log Page

Miscellaneous

  • Update Python packages
  • Remove Daemonize as a requirement

8.15.6

30 Jan 23:22
Compare
Choose a tag to compare

8.15.6 (2023-01-30)

Bugfixes

  • Revert SQLAlchemy to 1.4.46 due to 2.0.0 causing high CPU load

8.15.5

30 Jan 18:51
Compare
Choose a tag to compare

8.15.5 (2023-01-30)

Bugfixes

  • Fix backend/frontend restart during Settings Import
  • Fix pumps not actuating with Regulate pH & Electrical Conductivity Function

Features

  • Add listener and do_not_run_periodically as Function module options
  • Add Settings Import Log
  • Add ability to delete influxdb database on Diagnostics page

Miscellaneous

  • Update Python packages
  • Update InfluxDB to 2.6.1
  • Switch from using libcamera-apps-lite to libcamera-apps (#1270)