Skip to content

System Configuration

Page: [Gear Icon] -> Configure

The settings menu, accessed by selecting the gear icon in the top-right, then the Configure link, is a general area for various system-wide configuration options.

General Settings~

Page: [Gear Icon] -> Configure -> General

Setting Description
Language Set the language that will be displayed in the web user interface.
Force HTTPS Require web browsers to use SSL/HTTPS. Any request to http:// will be redirected to https://.
Hide success alerts Hide all success alert boxes that appear at the top of the page.
Hide info alerts Hide all info alert boxes that appear at the top of the page.
Hide warning alerts Hide all warning alert boxes that appear at the top of the page.
Opt-out of statistics Turn off sending anonymous usage statistics. Please consider that this helps the development to leave on.

Time Series Database Settings~

Page: [Gear Icon] -> Configure -> General

Measurements are stored in a time-series database. There are currently two options that can be used with Mycodo, InfluxDB 1.x and InfluxDB 2.x. InfluxDB 1.x works on both 32-bit and 64-bit operating systems, but 2.x only works on 64-bit operating systems. Therefore, if you are using a 32-bit operating system, you will need to use InfluxDB 1.x. During the Mycodo install, you can select to install influxDB 1.x, 2.x, or neither. If you don't install InfluxDB, you will need to specify the host and credentials to an alternate install for Mycodo to be able to store and query measurements.

If you are installing via Docker, you will need to change the hostname to "mycodo_influxdb" after the Mycodo install to be able to connect to the InfluxDB Docker container.

Setting Description
Database Select the time-series server type.
Hostname The hostname to connect to the time-series server.
Port The time-series database port.
Database Name The name of the database for Mycodo to store to and query from.
Username The username to access the database (if credentials are required).
Password The password to access the database (if credentials are required).

Dashboard Settings~

Page: [Gear Icon] -> Configure -> General

Setting Description
Grid Cell Height (px) The height of each widget cell, in pixels.

Upgrade Settings~

Page: [Gear Icon] -> Configure -> General

Setting Description
Internet Test IP Address The IP address to use to test for an active internet connection.
Internet Test Port The port to use to test for an active internet connection.
Internet Test Timeout The timeout period for testing for an active internet connection.
Check for Updates Automatically check for updates every 2 days and notify through the web interface. If there is a new update, the Configure (Gear Icon) as well as the Upgrade menu will turn the color red.

Energy Usage Settings~

Page: [Gear Icon] -> Configure -> General

In order to calculate accurate energy usage statistics, a few characteristics of your electrical system needs to be know. These variables should describe the characteristics of the electrical system being used by the relays to operate electrical devices.

Note

If not using a current sensor, proper energy usage calculations will rely on the correct current draw to be set for each output (see Output Settings).

Setting Description
Max Amps Set the maximum allowed amperage to be switched on at any given time. If a output that's instructed to turn on will cause the sum of active devices to exceed this amount, the output will not be allowed to turn on, to prevent any damage that may result from exceeding current limits.
Voltage Alternating current (AC) voltage that is switched by the outputs. This is usually 120 or 240.
Cost per kWh This is how much you pay per kWh.
Currency Unit This is the unit used for the currency that pays for electricity.
Day of Month This is the day of the month (1-30) that the electricity meter is read (which will correspond to the electrical bill).
Generate Usage/Cost Report These options define when an Energy Usage Report will be generated. Currently, these Only support the Output Duration calculation method.
Time Span to Generate How often to automatically generate a usage/cost report.
Day of Week/Month to Generate On which day of the week to generate the report. Daily: 1-7 (Monday = 1), Monthly: 1-28.
Hour of Day to Generate On which hour of the day to generate the report (0-23).

Controller Sample Rate Settings~

Page: [Gear Icon] -> Configure -> General

Each controller for Inputs, Outputs, and Functions operate periodically. The fastest these controllers can respond is determined by the sample rate of each. The looping function of each controller is paused for the specific duration. For instance, the Output controller can only have a resolution of 1 second if the sample rate is set to 1 second, meaning if you instruct an output to turn on or off, it will take a maximum of 1 second to respond to that request.

Setting Description
Max Amps Set the maximum allowed amperage to be switched on at any given time. If a output that's instructed to turn on will cause the sum of active devices to exceed this amount, the output will not be allowed to turn on, to prevent any damage that may result from exceeding current limits.
Voltage Alternating current (AC) voltage that is switched by the outputs. This is usually 120 or 240.
Cost per kWh This is how much you pay per kWh.
Currency Unit This is the unit used for the currency that pays for electricity.
Day of Month This is the day of the month (1-30) that the electricity meter is read (which will correspond to the electrical bill).
Generate Usage/Cost Report These options define when an Energy Usage Report will be generated. Currently, these Only support the Output Duration calculation method.

Input Settings~

Page: [Gear Icon] -> Configure -> Custom Inputs

Input modules may be imported and used within Mycodo. These modules must follow a specific format. See Custom Inputs for more details.

Setting Description
Import Input Module Select your input module file, then click this button to begin the import.

Output Settings~

Page: [Gear Icon] -> Configure -> Custom Outputs

Output modules may be imported and used within Mycodo. These modules must follow a specific format. See Custom Outputs for more details.

Setting Description
Import Output Module Select your output module file, then click this button to begin the import.

Function Settings~

Page: [Gear Icon] -> Configure -> Custom Functions

Function modules may be imported and used within Mycodo. These modules must follow a specific format. See Custom Functions for more details.

Setting Description
Import Function Module Select your function module file, then click this button to begin the import.

Action Settings~

Page: [Gear Icon] -> Configure -> Custom Actions

Action modules may be imported and used within Mycodo. These modules must follow a specific format. See Custom Actions for more details.

Setting Description
Import Action Module Select your action module file, then click this button to begin the import.

Widget Settings~

Page: [Gear Icon] -> Configure -> Custom Widgets

Widget modules may be imported and used within Mycodo. These modules must follow a specific format. See Custom Widgets for more details.

Setting Description
Import Widget Module Select your widget module file, then click this button to begin the import.

Measurement Settings~

Page: [Gear Icon] -> Configure -> Measurements

New measurements, units, and conversions can be created that can extend functionality of Mycodo beyond the built-in types and equations. Be sure to create units before measurements, as units need to be selected when creating a measurement. A measurement can be created that already exists, allowing additional units to be added to a pre-existing measurement. For example, the measurement 'altitude' already exists, however if you wanted to add the unit 'fathom', first create the unit 'fathom', then create the measurement 'altitude' with the 'fathom' unit selected. It is okay to create a custom measurement for a measurement that already exist (this is how new units for a currently-installed measurement is added).

Setting Description
Measurement ID ID for the measurement to use in the measurements_dict of input modules (e.g. "length", "width", "speed").
Measurement Name Common name for the measurement (e.g. "Length", "Weight", "Speed").
Measurement Units Select all the units that are associated with the measurement.
Unit ID ID for the unit to use in the measurements_dict of input modules (e.g. "K", "g", "m").
Unit Name Common name for the unit (e.g. "Kilogram", "Meter").
Unit Abbreviation Abbreviation for the unit (e.g. "kg", "m").
Convert From Unit The unit that will be converted from.
Convert To Unit The unit that will be converted to.
Equation The equation used to convert one unit to another. The lowercase letter "x" must be included in the equation (e.g. "x/1000+20", "250*(x/3)"). This "x" will be replaced with the actual measurement being converted.

User Settings~

Page: [Gear Icon] -> Configure -> Users

Mycodo requires at least one Admin user for the login system to be enabled. If there isn't an Admin user, the web server will redirect to an Admin Creation Form. This is the first page you see when starting Mycodo for the first time. After an Admin user has been created, additional users may be created from the User Settings page.

Setting Description
Username Choose a user name that is between 2 and 64 characters. The user name is case insensitive (all user names are converted to lower-case).
Email The email associated with the new account.
Password/Repeat Choose a password that is between 6 and 64 characters and only contains letters, numbers, and symbols.
Keypad Code Set an optional numeric code that is at least 4 digits for logging in using a keypad.
Role Roles are a way of imposing access restrictions on users, to either allow or deny actions. See the table below for explanations of the four default Roles.
Theme The web user interface theme to apply, including colors, themes, and other design elements.

Roles~

Roles define the permissions of each user. There are 4 default roles that determine if a user can view or edit particular areas of Mycodo. Four roles are provided by default, but custom roles may be created.

Role Admin Editor Monitor Guest
Edit Users X
Edit Controllers X X
Edit Settings X X
View Settings X X X
View Camera X X X
View Stats X X X
View Logs X X X

The Edit Controllers permission protects the editing of Conditionals, Graphs, LCDs, Methods, PIDs, Outputs, and Inputs.

The View Stats permission protects the viewing of usage statistics and the System Information and Energy Usage pages.

Raspberry Pi Settings~

Page: [Gear Icon] -> Configure -> Raspberry Pi

Pi settings configure parts of the linux system that Mycodo runs on.

pigpiod is required if you wish to use PWM Outputs, as well as PWM, RPM, DHT22, DHT11, HTU21D Inputs.

Setting Description
Enable/Disable Feature These are system interfaces that can be enabled and disabled from the web UI via the raspi-config command.
pigpiod Sample Rate This is the sample rate the pigpiod service will operate at. The lower number enables faster PWM frequencies, but may significantly increase processor load on the Pi Zeros. pigpiod may als be disabled completely if it's not required (see note, above).

Alert Settings~

Page: [Gear Icon] -> Configure -> Alerts

Alert settings set up the credentials for sending email notifications.

Setting Description
SMTP Host The SMTP server to use to send emails from.
SMTP Port Port to communicate with the SMTP server (465 for SSL, 587 for TSL).
Enable SSL Check to enable SSL, uncheck to enable TSL.
SMTP User The user name to send the email from. This can be just a name or the entire email address.
SMTP Password The password for the user.
From Email What the from email address be set as. This should be the actual email address for this user.
Max emails (per hour) Set the maximum number of emails that can be sent per hour. If more notifications are triggered within the hour and this number has been reached, the notifications will be discarded.
Send Test Email Test the email configuration by sending a test email.

Camera Settings~

Page: [Gear Icon] -> Configure -> Camera

Many cameras can be used simultaneously with Mycodo. Each camera needs to be set up in the camera settings, then may be used throughout the software.

Note

Not every option (such as Hue or White Balance) may be able to be used with your particular camera, due to manufacturer differences in hardware and software.

Setting Description
Type Select whether the camera is a Raspberry Pi Camera or a USB camera.
Library Select which library to use to communicate with the camera. The Raspberry Pi Camera uses picamera, and USB cameras should be set to fswebcam.
Device The device to use to connect to the camera. fswebcam is the only library that uses this option.
Output This output will turn on during the capture of any still image (which includes timelapses).
Output Duration Turn output on for this duration of time before the image is captured.
Rotate Image The number of degrees to rotate the image.
... Image Width, Image Height, Brightness, Contrast, Exposure, Gain, Hue, Saturation, White Balance. These options are self-explanatory. Not all options will work with all cameras.
Pre Command A command to execute (as user 'root') before a still image is captured.
Post Command A command to execute (as user 'root') after a still image is captured.
Flip horizontally Flip, or mirror, the image horizontally.
Flip vertically Flip, or mirror, the image vertically.

Diagnostic Settings~

Page: [Gear Icon] -> Configure -> Diagnostics

Sometimes issues arise in the system as a result of incompatible configurations, either the result of a misconfigured part of the system (Input, Output, etc.) or an update that didn't properly handle a database upgrade, or other unforeseen issue. Sometimes it is necessary to perform diagnostic actions that can determine the cause of the issue or fix the issue itself. The options below are meant to alleviate issues, such as a misconfigured dashboard element causing an error on the Data -> Dashboard page, which may cause an inability to access the Data -> Dashboard page to correct the issue. Deleting all Dashboard Elements may be the most economical method to enable access to the Data -> Dashboard page again, at the cost of having to readd all the Dashboard Elements that were once there.

Setting Description
Delete All Dashboards Delete all saved Dashboards on the Data - Dashboard page.
Delete All Inputs Delete all Inputs on the Setup -> Input page.
Delete all Note and Note Tags Delete all notes and tags from the More -> Note page.
Delete all Outputs Delete all Outputs from the Setup -> Output page.
Delete Settings Database Delete the mycodo.db settings database (WARNING: This will delete all settings and users).
Delete File: .dependency Delete the .dependency file. If you are having an issue accessing the dependency install page, try this.
Delete File: .upgrade Delete the .upgrade file. If you are having an issue accessing the upgrade page or running an upgrade, try this.
Reset Email Counter Reset the email/hour email counter.
Install Dependencies Start the dependency install script that will install all needed dependencies for the entire Mycodo system.
Set to Upgrade to Master This will change FORCE_UPGRADE_MASTER to True in config.py. This is a way to instruct the upgrade system to upgrade to the master branch on GitHub without having to log in and manually edit the config.py file.