Mycodo

An environmental monitoring and regulation system

GPL-3.0 License

Stars
3K
Committers
59

Bot releases are visible (Hide)

Mycodo - 8.15.13 Latest Release

Published by kizniche 10 months ago

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
Mycodo - 8.15.12

Published by kizniche 12 months ago

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
Mycodo - 8.15.11

Published by kizniche about 1 year ago

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
Mycodo - 8.15.10

Published by kizniche about 1 year ago

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()
Mycodo - 8.15.9

Published by kizniche about 1 year ago

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
Mycodo - 8.15.8

Published by kizniche over 1 year ago

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
Mycodo - 8.15.7

Published by kizniche over 1 year ago

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
Mycodo - 8.15.6

Published by kizniche over 1 year ago

8.15.6 (2023-01-30)

Bugfixes

  • Revert SQLAlchemy to 1.4.46 due to 2.0.0 causing high CPU load
Mycodo - 8.15.5

Published by kizniche over 1 year ago

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)
Mycodo - 8.15.4

Published by kizniche over 1 year ago

8.15.4 (2023-01-19)

Bugfixes

  • Fix potential issues with MycodoRelease Class
  • Fix library version typo in VL53L1X Input
Mycodo - 8.15.3

Published by kizniche almost 2 years ago

8.15.3 (2023-01-18)

Bugfixes

  • Fix regex to properly parse latest Mycodo release

Miscellaneous

  • Update Python packages
Mycodo - 8.15.2

Published by kizniche almost 2 years ago

8.15.2 (2023-01-18)

Bugfixes

  • Fix PCF8574 Pump Output not properly determining channel states
  • Fix MQTT Subscribe Inputs resubscribing to MQTT topics after reconnect

Features

  • Add feedback about why a Python package dependency was unmet when adding an Input/Output/Function

Miscellaneous

  • Add library name to the title when multiple Inputs of the same name exist in the manual
Mycodo - 8.15.1

Published by kizniche almost 2 years ago

8.15.1 (2023-01-14)

Bugfixes

  • Fix endpoints of Widgets not able to be created until a frontend restart (#1260)
Mycodo - 8.15.0

Published by kizniche almost 2 years ago

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 (https://kizniche.github.io/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
Mycodo - 8.14.2

Published by kizniche about 2 years ago

8.14.2 (2022-08-20)

Bugfixes

  • Fix Kasa Plug Output (#1221)
  • Fix Conditional Function not saving Import and Initialize Python Code
Mycodo - 8.14.1

Published by kizniche about 2 years ago

8.14.1 (2022-08-14)

Bugfixes

  • Fix Conditional Function 'timeout' undefined error (#1220)
Mycodo - 8.14.0

Published by kizniche about 2 years ago

Bugfixes

  • Fix inability to resume timelapses (#1163)
  • Fix "Could not determine measurement from returned value" error for Atlas Scientific inputs
  • Only increment the timelapse count when an image is captured
  • Fix generating timelapse with custom file path (#1205)
  • Fix timelapse filenames when using libcamera
  • Fix printing lines on 2-line 128x32 SSD1306 Functions
  • Fix PWM Slider Widget issues when Output signal is inverted and setting duty cycle
  • Fix MCP3008 Input python library version number

Features

  • Add ability to use Influxdb 2.x or Influxdb 1.x
  • Add ability to set influxdb host and credentials in configuration
  • Add Input: Raspberry Pi Power Monitor
  • Add Input: MH-Z14 CO2
  • Add Output: Non-SPI Neopixel
  • Add ability to set Chirp Input I2C address (#1197)
  • Add UI feedback for Atlas Scientific calibration commands (#1198)
  • Add ability to use non-standard condition/action ID strings in Conditional Functions
  • Add Websocket support to MQTT Outputs (#1219)
  • Add Import and Initialize options to Conditional Functions (#1203)
  • Add Input: MCP3208 Analog-to-Digital Converter (#1215)

Miscellaneous

  • Add username/password requirements to Admin Creation page
  • Move Conditional Condition text (#1204)
Mycodo - 8.13.10

Published by kizniche over 2 years ago

8.13.10 (2022-05-19)

Bugfixes

  • Fix Test Value Input throwing constant but benign errors
  • Fix pybluez dependency install (#1178)
  • Remove deprecated jinja2 extensions
  • Fix loading dependency page (#1180)
  • Fix missing smbus2 dependency for several LCD Functions
  • Fix Input/Output Custom Commands showing correct value
  • Fix fswebcam Camera custom options not being applied
  • Fix consistency of Time Span Trigger Function execution times
  • Fix inability to use decimal values in float input fields for some browsers
  • Fix executing actions when no message passed to function
  • Fix calculating next sunrise/sunset

Features

  • Add API endpoint: cameras/capture_image
  • Add Headers option to URL (requests) camera library
  • Add Input: MAX30155 PT100 I2C Temperature Sensor (by DFRobot)
  • Add Input: Kasa Energy Meter (Strips/Plugs)
  • Add Inout: Atlas Scientific O2 (Oxygen Gas)
  • Add Outputs: Kasa Wifi RGB Light Bulbs
  • Add Outputs: Kasa Wifi Power Plugs
  • Add Output: Neopixel RGB LED Strip
  • Add Function Action: Change Neopixel LED Strip Color
  • Add Function Action: Change Kasa RGB Bulb Color
  • Add Function Action: Clear Total kWh
  • Add Function Action: Add Line to Daemon Log
Mycodo - 8.13.9

Published by kizniche over 2 years ago

8.13.9 (2022-04-21)

Bugfixes

  • Fix PID Controller Widget
Mycodo - 8.13.8

Published by kizniche over 2 years ago

8.13.8 (2022-04-19)

Bugfixes

  • Fix timestamp argument having no affect in value_set()
  • Revert changes to PCF8574 Output (#1175)
  • Fix Edge Detection Input storing measurements (#1171)
  • Fix Bang-Bang Hysteretic (On/Off) (Lower/Raise/Both) Function when set to Both

Features

  • Add API endpoint: cameras/get_last_image
  • Add Input: Signal (Revolutions) (Alternative pigpio method)
  • Add Input: Test Save Any Value as a Measurement
  • Add Outputs: Kasa KP303 and HS300 with latest python-kasa

Miscellaneous

  • Update requirements.txt
  • Add short name for input display
Package Rankings
Top 6.64% on Proxy.golang.org