github kizniche/Mycodo v5.5.0
5.5.0

latest releases: v8.15.13, v8.15.12, v8.15.11...
6 years ago

5.5.0 (2017-12-25)

Merry Christmas!

With the release of 5.5.0, Mycodo becomes modern by migrating from Python 2.7.9 to Python 3 (3.5.3 if on Raspbian Stretch, 3.4.2 if on Raspbian Jessie). This release also brings a big switch from apache2+mod_wsgi to nginx+gunicorn as the web server.

Issues

You may experience an error during the upgrade that doesn't allow it to complete

It will no longer be possible to restore pre-5.5.0 backups

All users will be logged out of the web UI during the upgrade

All Conditionals will be deactivated and need reconfiguring

OpenCV has been removed as a camera module

If you rely on your system to work, it is highly recommended that you DO NOT UPGRADE. Wait until your system is no longer performing critical tasks to upgrade, in order to allow yourself the ability to thoroughly test your particular configuration works as expected, and to perform a fresh install if the upgrade fails. Although most parts of the system have been tested to work, there is, as always, the potential for unforeseen issues (for instance, not every sensor that Mycodo supports has physically been tested). Read the following notes carefully to determine if you want to upgrade to 5.5.0 and newer versions.

Failure during the upgrade to >= 5.5.0

I found that occasionally the upgrade will spontaneously stop without an indication of the issue. I've seen it happen during an apt-get install and during a pip upgrade. It does not seem consistent, and there were no erorrs, therefore it wasn't able to be fixed. If you experience an error during the upgrade that doesn't allow the upgrade to complete, issue the following commands to attempt to resume and complete the upgrade. If that doesn't fix it, you may have to install Mycodo from scratch.

sudo dpkg --configure -a
sudo /bin/bash ~/Mycodo/mycodo/scripts/upgrade_post.sh

No restoring of pre-5.5.0 backups

Restoring pre-5.5.0 backups will not work. This is due to the moving of the pip virtual environments during the restore, the post-5.5.0 (python3) virtualenv not being compatible with the pre-5.5.0 virtualenv (python2), and moving from the apache2 web server to nginx. If you absolutely need to restore a backup, it must be done manually. Create a new github issue to get asistance with this.

Also with this release, exporting and importing both the Mycodo settings database and InfluxDB measurement database has been added. These may be imported back into Mycodo at a later timer. Currently, the InfluxDB (measurement) database may be imported into any other version of Mycodo, and the Mycodo (settings) database may only be imported to the same version of Mycodo. Automatic upgrading or downgrading of the Mycodo database to allow cross-version compatibility will be included in a future release. For the meantime, if you need to restore Mycodo settings to a particular Mycodo version, you can do the following: download the tar.gz of the particular Mycodo Release compatible with your database backup, extract, install normally, import the Mycodo settings database, then perform an upgrade of Mycodo to the latest release.

All users will be logged out during the upgrade

Another consequence of changing from Python 2 to 3 is current browser cookies will cause an error with the web user interface. Therefore, all users will be logged out after upgrading to >= 5.5.0. This will cause some strange behavior that may be misconstrued as a failed upgrade:

  1. The upgrade log will not update during the upgrade. Give the upgrade ample time to finish, or monitor the upgrade log from the command line.

  2. After the upgrade is successful, the upgrade log box on the Upgrade page will redirect to the login page. Do not log in through the log box, but rather refresh the entire page to be redirected to the login page.

All Conditionals will be deactivated

The Conditional code has been refactored to make them more modular. Because some conditionals will need to be reconfigured before they will operate corectly, all conditionals have been deactivated. Therefore, after the upgrade, reconfigure them appropriately, then reactivate. Additionally, conditionals (for all controllers) have been moved to a new 'Function' page.

OpenCV has been disabled

A Python 3 compatible binary version of opencv, whoch doesn't require an extremely long (hours) compiling process, is unfortunately unavailable. Therefore, if you know of a library or module that can successfully acquire an image from your webcam (you have tested to work), create a new issue with the details of how you acquired the image and we can determine if the method can be integrated into Mycddo.

Features

  • Migrate from Python 2 to Python 3 (#253)
  • Migrate from apache2 (+mod_wsgi) to nginx (+gunicorn) (#352)
  • Add ability to export and import Mycodo (settings) database (#348)
  • Add ability to export and import Influxdb (measurements) database (#348)
  • Add size of each backup (in MB) on Backup Restore page
  • Add check to make sure there is enough free space before performing a backup/upgrade
  • Add dedicated, modular Conditional controller (#346)
  • Add PID and Math to input options of Conditionals

Bugfixes

  • Fix deleting Inputs (#250)
  • Fix 500 error if 1-wire support isn't enabled
  • Fix Edge Detection Input callback function missing required parameter
  • Fix LCD display of Output duty cycle
  • Fix email notification
  • Make Conditional email notification send after last Action to include all Actions in message

Miscellaneous

  • Disable the use of the opencv camera library
  • Update translations
  • Combine Input and Math pages to a new 'Data' page
  • Move Conditionals and PIDs to a new 'Function' page
  • Show tooltips by default

Don't miss a new Mycodo release

NewReleases is sending notifications on new releases.