Supported Functions
- Deutsche: Deze pagina is niet vertaald naar het Duits.
- Español: Esta página no está traducida al castellano.
- Français: Cette page n'est pas traduite en français.
- Bahasa Indonesia: Halaman ini tidak diterjemahkan ke bahasa Indonesia.
- Italiano: Questa pagina non è tradotta in italiano.
- Norsk: Denne siden er ikke oversatt til norsk.
- Polski: Ta strona nie jest przetłumaczona na język polski.
- Português: Esta página não está traduzida para o português.
- русский язык: Эта страница не переведена на русский язык.
- српски: Ова страница није преведена на српски.
- Svenska: Denna sida är inte översatt till svenska.
- Türkçe: Bu sayfa Türkçe'ye çevrilmemiştir.
- 中文: 此页面未翻译成中文.
Built-In Functions~
Average (Last, Multiple)~
This function acquires the last measurement of those that are selected, averages them, then stores the resulting value as the selected measurement and unit.
Option | Type | Description |
---|---|---|
Period (Seconds) | Decimal - Default Value: 60 | The duration between measurements or actions |
Start Offset (Seconds) | Integer - Default Value: 10 | The duration to wait before the first operation |
Max Age (Seconds) | Integer - Default Value: 360 | The maximum age of the measurement to use |
Measurement | Measurement to replace "x" in the equation |
Average (Past, Single)~
This function acquires the past measurements (within Max Age) for the selected measurement, averages them, then stores the resulting value as the selected measurement and unit. Note: There is a bug in InfluxDB 1.8.10 that prevents the mean() function from working properly. Therefore, if you are using Influxdb v1.x, the median() function will be used. InfluxDB 2.x is unaffected and uses mean(). To get the true mean, upgrade to InfluxDB 2.x.
Option | Type | Description |
---|---|---|
Period (Seconds) | Decimal - Default Value: 60 | The duration between measurements or actions |
Start Offset (Seconds) | Integer - Default Value: 10 | The duration to wait before the first operation |
Measurement | Select Measurement (Input, Function) | Measurement to replace "x" in the equation |
Max Age (Seconds) | Integer - Default Value: 360 | The maximum age of the measurement to use |
Backup to Remote Host (rsync)~
- Dependencies: rsync
This function will use rsync to back up assets on this system to a remote system. Your remote system needs to have an SSH server running and rsync installed. This system will need rsync installed and be able to access your remote system via SSH keyfile (login without a password). You can do this by creating an SSH key on this system running Mycodo with "ssh-keygen" (leave the password field empty), then run "ssh-copy-id -i ~/.ssh/id_rsa.pub pi@REMOTE_HOST_IP" to transfer your public SSH key to your remote system (changing pi and REMOTE_HOST_IP to the appropriate user and host of your remote system). You can test if this worked by trying to connect to your remote system with "ssh pi@REMOTE_HOST_IP" and you should log in without being asked for a password. Be careful not to set the Period too low, which could cause the function to begin running before the previous operation(s) complete. Therefore, it is recommended to set a relatively long Period (greater than 10 minutes). The default Period is 15 days. Note that the Period will reset if the system or the Mycodo daemon restarts and the Function will run, generating new settings and measurement archives that will be synced. There are two common ways to use this Function: 1) A short period (1 hour), only have Backup Camera Directories enabled, and use the Backup Settings Now and Backup Measurements Now buttons manually to perform a backup, and 2) A long period (15 days), only have Backup Settings and Backup Measurements enabled. You can even create two of these Functions with one set up to perform long-Period settings and measurement backups and the other set up to perform short-Period camera backups.
Option | Type | Description |
---|---|---|
Period (Seconds) | Decimal - Default Value: 1296000 | The duration between measurements or actions |
Start Offset (Seconds) | Integer - Default Value: 300 | The duration to wait before the first operation |
Local User | Text - Default Value: pi | The user on this system that will run rsync |
Remote User | Text - Default Value: pi | The user to log in to the remote host |
Remote Host | Text - Default Value: 192.168.0.50 | The IP or host address to send the backup to |
Remote Backup Path | Text - Default Value: /home/pi/backup_mycodo | The path to backup to on the remote host |
Rsync Timeout (Seconds) | Integer - Default Value: 3600 | How long to allow rsync to complete |
Local Backup Path | Text | A local path to backup (leave blank to disable) |
Backup Settings Export File | Boolean - Default Value: True | Create and backup exported settings file |
Remove Local Settings Backups | Boolean | Remove local settings backups after successful transfer to remote host |
Backup Measurements | Boolean - Default Value: True | Backup all influxdb measurements |
Remove Local Measurements Backups | Boolean | Remove local measurements backups after successful transfer to remote host |
Backup Camera Directories | Boolean - Default Value: True | Backup all camera directories |
Remove Local Camera Images | Boolean | Remove local camera images after successful transfer to remote host |
SSH Port | Integer - Default Value: 22 | Specify a nonstandard SSH port |
Commands | ||
Backup of settings are only created if the Mycodo version or database versions change. This is due to this Function running periodically- if it created a new backup every Period, there would soon be many identical backups. Therefore, if you want to induce the backup of settings, measurements, or camera directories and sync them to your remote system, use the buttons below. | ||
Backup Settings Now | Button | |
Backup Measurements Now | Button | |
Backup Camera Directories Now | Button |
Bang-Bang Hysteretic (On/Off) (Raise/Lower)~
A simple bang-bang control for controlling one output from one input. Select an input, an output, enter a setpoint and a hysteresis, and select a direction. The output will turn on when the input is below (lower = setpoint - hysteresis) and turn off when the input is above (higher = setpoint + hysteresis). This is the behavior when Raise is selected, such as when heating. Lower direction has the opposite behavior - it will try to turn the output on in order to drive the input lower.
Option | Type | Description |
---|---|---|
Measurement | Select Measurement (Input, Function) | Select a measurement the selected output will affect |
Measurement: Max Age (Seconds) | Integer - Default Value: 360 | The maximum age of the measurement to use |
Output | Select Device, Measurement, and Channel (Output) | Select an output to control that will affect the measurement |
Setpoint | Decimal - Default Value: 50 | The desired setpoint |
Hysteresis | Decimal - Default Value: 1 | The amount above and below the setpoint that defines the control band |
Direction | Select(Options: [Raise | Lower] (Default in bold) | Raise means the measurement will increase when the control is on (heating). Lower means the measurement will decrease when the output is on (cooling) |
Period (Seconds) | Decimal - Default Value: 5 | The duration between measurements or actions |
Bang-Bang Hysteretic (On/Off) (Raise/Lower/Both)~
A simple bang-bang control for controlling one or two outputs from one input. Select an input, a raise and/or lower output, enter a setpoint and a hysteresis, and select a direction. The output will turn on when the input is below (lower = setpoint - hysteresis) and turn off when the input is above (higher = setpoint + hysteresis). This is the behavior when Raise is selected, such as when heating. Lower direction has the opposite behavior - it will try to turn the output on in order to drive the input lower. The Both option will raise and lower. Note: This output will only work with On/Off Outputs.
Option | Type | Description |
---|---|---|
Measurement | Select Measurement (Input, Function) | Select a measurement the selected output will affect |
Measurement: Max Age (Seconds) | Integer - Default Value: 360 | The maximum age of the measurement to use |
Output (Raise) | Select Device, Measurement, and Channel (Output) | Select an output to control that will raise the measurement |
Output (Lower) | Select Device, Measurement, and Channel (Output) | Select an output to control that will lower the measurement |
Setpoint | Decimal - Default Value: 50 | The desired setpoint |
Hysteresis | Decimal - Default Value: 1 | The amount above and below the setpoint that defines the control band |
Direction | Select(Options: [Raise | Lower | Both] (Default in bold) | Raise means the measurement will increase when the control is on (heating). Lower means the measurement will decrease when the output is on (cooling) |
Period (Seconds) | Decimal - Default Value: 5 | The duration between measurements or actions |
Bang-Bang Hysteretic (PWM) (Raise/Lower/Both)~
A simple bang-bang control for controlling one PWM output from one input. Select an input, a PWM output, enter a setpoint and a hysteresis, and select a direction. The output will turn on when the input is below below (lower = setpoint - hysteresis) and turn off when the input is above (higher = setpoint + hysteresis). This is the behavior when Raise is selected, such as when heating. Lower direction has the opposite behavior - it will try to turn the output on in order to drive the input lower. The Both option will raise and lower. Note: This output will only work with PWM Outputs.
Option | Type | Description |
---|---|---|
Measurement | Select Measurement (Input, Function) | Select a measurement the selected output will affect |
Measurement: Max Age (Seconds) | Integer - Default Value: 360 | The maximum age of the measurement to use |
Output | Select Device, Measurement, and Channel (Output) | Select an output to control that will affect the measurement |
Setpoint | Decimal - Default Value: 50 | The desired setpoint |
Hysteresis | Decimal - Default Value: 1 | The amount above and below the setpoint that defines the control band |
Direction | Select(Options: [Raise | Lower | Both] (Default in bold) | Raise means the measurement will increase when the control is on (heating). Lower means the measurement will decrease when the output is on (cooling) |
Period (Seconds) | Decimal - Default Value: 5 | The duration between measurements or actions |
Duty Cycle (increase) | Decimal - Default Value: 90 | The duty cycle to increase the measurement |
Duty Cycle (maintain) | Decimal - Default Value: 55 | The duty cycle to maintain the measurement |
Duty Cycle (decrease) | Decimal - Default Value: 20 | The duty cycle to decrease the measurement |
Duty Cycle (shutdown) | Decimal | The duty cycle to set when the function shuts down |
Camera: libcamera: Image/Video~
- Dependencies: libcamera-apps, ffmpeg
NOTE: THIS IS CURRENTLY EXPERIMENTAL - USE AT YOUR OWN RISK UNTIL THIS NOTICE IS REMOVED. Capture images and videos from a camera using libcamera-still and libcamera-vid. The Function must be activated in order to capture still and timelapse images and use the Camera Widget.
Option | Type | Description |
---|---|---|
Status Period (seconds) | Integer - Default Value: 60 | The duration (seconds) to update the Function status on the UI |
Image options. | ||
Custom Image Path | Text | Set a non-default path for still images to be saved |
Custom Timelapse Path | Text | Set a non-default path for timelapse images to be saved |
Image Extension | Select(Options: [JPG | PNG | BMP | RGB | YUV420] (Default in bold) | The file type/format to save images |
Image: Resolution: Width | Integer - Default Value: 720 | The width of still images |
Image: Resolution: Height | Integer - Default Value: 480 | The height of still images |
Brightness | Decimal | The brightness of still images (-1 to 1) |
Image: Contrast | Decimal - Default Value: 1.0 | The contrast of still images. Larger values produce images with more contrast. |
Saturation | Decimal - Default Value: 1.0 | The saturation of still images. Larger values produce more saturated colours; 0.0 produces a greyscale image. |
Sharpness | Decimal | The sharpness of still images. Larger values produce more saturated colours; 0.0 produces a greyscale image. |
Shutter Speed (Microseconds) | Integer | The shutter speed, in microseconds. 0 disables and returns to auto exposure. |
Gain | Decimal - Default Value: 1.0 | The gain of still images. |
White Balance: Auto | Select(Options: [Auto | Incandescent | Tungsten | Fluorescent | Indoor | Daylight | Cloudy | Custom] (Default in bold) | The white balance of images |
White Balance: Red Gain | Decimal | The red gain of white balance for still images (disabled Auto White Balance if red and blue are not set to 0) |
White Balance: Blue Gain | Decimal | The red gain of white balance for still images (disabled Auto White Balance if red and blue are not set to 0) |
Flip Horizontally | Boolean | Flip the image horizontally. |
Flip Vertically | Boolean | Flip the image vertically. |
Rotate (Degrees) | Integer | Rotate the image. |
Custom libcamera-still Options | Text | Pass custom options to the libcamera-still command. |
Video options. | ||
Custom Video Path | Text | Set a non-default path for videos to be saved |
Video Extension | Select(Options: [H264 -> MP4 (with ffmpeg) | H264 | MJPEG | YUV420] (Default in bold) | The file type/format to save videos |
Video: Resolution: Width | Integer - Default Value: 720 | The width of videos |
Video: Resolution: Height | Integer - Default Value: 480 | The height of videos |
Custom libcamera-vid Options | Text | Pass custom options to the libcamera-vid command. |
Commands | ||
Capture Image | Button | |
To capture a video, enter the duration and press Capture Video. | ||
Video Duration (Seconds) | Integer - Default Value: 5 | How long to record the video |
Capture Video | Button | |
To start a timelapse, enter the duration and period and press Start Timelapse. | ||
Timelapse Duration (Seconds) | Integer - Default Value: 2592000 | How long the timelapse will run |
Timelapse Period (Seconds) | Integer - Default Value: 600 | How often to take a timelapse photo |
Start Timelapse | Button | |
To stop an active timelapse, press Stop Timelapse. | ||
Stop Timelapse | Button | |
To pause or resume an active timelapse, press Pause Timelapse or Resume Timelapse. | ||
Pause Timelapse | Button | |
Resume Timelapse | Button |
Difference~
This function acquires 2 measurements, calculates the difference, and stores the resulting value as the selected measurement and unit.
Option | Type | Description |
---|---|---|
Period (Seconds) | Decimal - Default Value: 60 | The duration between measurements or actions |
Measurement: A | Select Measurement (Input, Function) | |
Measurement A: Max Age (Seconds) | Integer - Default Value: 360 | The maximum age of the measurement to use |
Measurement: B | Select Measurement (Input, Function) | |
Measurement B: Max Age (Seconds) | Integer - Default Value: 360 | The maximum age of the measurement to use |
Reverse Order | Boolean | Reverse the order in the calculation |
Absolute Difference | Boolean | Return the absolute value of the difference |
Display: Generic LCD 16x2 (I2C)~
- Dependencies: smbus2
This Function outputs to a generic 16x2 LCD display via I2C. Since this display can show 2 lines at a time, channels are added in sets of 2 when Number of Line Sets is modified. Every Period, the LCD will refresh and display the next set of lines. Therefore, the first 2 lines that are displayed are channels 0 and 1, then 2 and 3, and so on. After all channels have been displayed, it will cycle back to the beginning.
Option | Type | Description |
---|---|---|
Period (Seconds) | Decimal - Default Value: 10 | The duration between measurements or actions |
I2C Address | Text - Default Value: 0x20 | |
I2C Bus | Integer - Default Value: 1 | |
Number of Line Sets | Integer - Default Value: 1 | How many sets of lines to cycle on the LCD |
Channel Options | ||
Line Display Type | Select | What to display on the line |
Measurement | Select Measurement (Input, Function, Output, PID) | Measurement to display on the line |
Max Age (Seconds) | Integer - Default Value: 360 | The maximum age of the measurement to use |
Measurement Label | Text | Set to overwrite the default measurement label |
Measurement Decimal | Integer - Default Value: 1 | The number of digits after the decimal |
Text | Text - Default Value: Text | Text to display |
Display Unit | Boolean - Default Value: True | Display the measurement unit (if available) |
Commands | ||
Backlight On | Button | |
Backlight Off | Button | |
Backlight Flashing On | Button | |
Backlight Flashing Off | Button |
Display: Generic LCD 20x4 (I2C)~
- Dependencies: smbus2
This Function outputs to a generic 20x4 LCD display via I2C. Since this display can show 4 lines at a time, channels are added in sets of 4 when Number of Line Sets is modified. Every Period, the LCD will refresh and display the next set of lines. Therefore, the first 4 lines that are displayed are channels 0, 1, 2, and 3, then 4, 5, 6, and 7, and so on. After all channels have been displayed, it will cycle back to the beginning.
Option | Type | Description |
---|---|---|
Period (Seconds) | Decimal - Default Value: 10 | The duration between measurements or actions |
I2C Address | Text - Default Value: 0x20 | |
I2C Bus | Integer - Default Value: 1 | |
Number of Line Sets | Integer - Default Value: 1 | How many sets of lines to cycle on the LCD |
Channel Options | ||
Line Display Type | Select | What to display on the line |
Measurement | Select Measurement (Input, Function, Output, PID) | Measurement to display on the line |
Max Age (Seconds) | Integer - Default Value: 360 | The maximum age of the measurement to use |
Measurement Label | Text | Set to overwrite the default measurement label |
Measurement Decimal | Integer - Default Value: 1 | The number of digits after the decimal |
Text | Text - Default Value: Text | Text to display |
Display Unit | Boolean - Default Value: True | Display the measurement unit (if available) |
Commands | ||
Backlight On | Button | |
Backlight Off | Button |
Display: Grove LCD 16x2 (I2C)~
- Dependencies: smbus2
This Function outputs to the Grove 16x2 LCD display via I2C. Since this display can show 2 lines at a time, channels are added in sets of 2 when Number of Line Sets is modified. Every Period, the LCD will refresh and display the next set of lines. Therefore, the first 2 lines that are displayed are channels 0 and 1, then 2 and 3, and so on. After all channels have been displayed, it will cycle back to the beginning.
Option | Type | Description |
---|---|---|
Period (Seconds) | Decimal - Default Value: 10 | The duration between measurements or actions |
I2C Address | Text - Default Value: 0x3e | |
I2C Bus | Integer - Default Value: 1 | |
Backlight I2C Address | Text - Default Value: 0x62 | I2C address to control the backlight |
Number of Line Sets | Integer - Default Value: 1 | How many sets of lines to cycle on the LCD |
Backlight Red (0 - 255) | Integer - Default Value: 255 | Set the red color value of the backlight on startup. |
Backlight Green (0 - 255) | Integer - Default Value: 255 | Set the green color value of the backlight on startup. |
Backlight Blue (0 - 255) | Integer - Default Value: 255 | Set the blue color value of the backlight on startup. |
Channel Options | ||
Line Display Type | Select | What to display on the line |
Measurement | Select Measurement (Input, Function, Output, PID) | Measurement to display on the line |
Max Age (Seconds) | Integer - Default Value: 360 | The maximum age of the measurement to use |
Measurement Label | Text | Set to overwrite the default measurement label |
Measurement Decimal | Integer - Default Value: 1 | The number of digits after the decimal |
Text | Text - Default Value: Text | Text to display |
Display Unit | Boolean - Default Value: True | Display the measurement unit (if available) |
Commands | ||
Backlight On | Button | |
Backlight Off | Button | |
Color (RGB) | Text - Default Value: 255,0,0 | Color as R,G,B values (e.g. "255,0,0" without quotes) |
Set Backlight Color | Button |
Display: SSD1306 OLED 128x32 [2 Lines] (I2C)~
- Dependencies: libjpeg-dev, Pillow, pyusb, Adafruit-extended-bus, adafruit-circuitpython-framebuf, adafruit-circuitpython-ssd1306
This Function outputs to a 128x32 SSD1306 OLED display via I2C. This display Function will show 2 lines at a time, so channels are added in sets of 2 when Number of Line Sets is modified. Every Period, the LCD will refresh and display the next set of lines. Therefore, the first set of lines that are displayed are channels 0 - 1, then 2 - 3, and so on. After all channels have been displayed, it will cycle back to the beginning.
Option | Type | Description |
---|---|---|
Period (Seconds) | Decimal - Default Value: 10 | The duration between measurements or actions |
I2C Address | Text - Default Value: 0x3c | |
I2C Bus | Integer - Default Value: 1 | |
Number of Line Sets | Integer - Default Value: 1 | How many sets of lines to cycle on the LCD |
Reset Pin | Integer - Default Value: 17 | The pin (BCM numbering) connected to RST of the display |
Characters Per Line | Integer - Default Value: 17 | The maximum number of characters to display per line |
Use Non-Default Font | Boolean | Don't use the default font. Enable to specify the path to a font to use. |
Non-Default Font Path | Text - Default Value: /usr/share/fonts/truetype/dejavu//DejaVuSans.ttf | The path to the non-default font to use |
Font Size (pt) | Integer - Default Value: 12 | The size of the font, in points |
Channel Options | ||
Line Display Type | Select | What to display on the line |
Measurement | Select Measurement (Input, Function, Output, PID) | Measurement to display on the line |
Max Age (Seconds) | Integer - Default Value: 360 | The maximum age of the measurement to use |
Measurement Label | Text | Set to overwrite the default measurement label |
Measurement Decimal | Integer - Default Value: 1 | The number of digits after the decimal |
Text | Text - Default Value: Text | Text to display |
Display Unit | Boolean - Default Value: True | Display the measurement unit (if available) |
Display: SSD1306 OLED 128x32 [2 Lines] (SPI)~
- Dependencies: libjpeg-dev, Pillow, pyusb, Adafruit-GPIO, Adafruit-extended-bus, adafruit-circuitpython-framebuf, adafruit-circuitpython-ssd1306
This Function outputs to a 128x32 SSD1306 OLED display via SPI. This display Function will show 2 lines at a time, so channels are added in sets of 2 when Number of Line Sets is modified. Every Period, the LCD will refresh and display the next set of lines. Therefore, the first set of lines that are displayed are channels 0 - 1, then 2 - 3, and so on. After all channels have been displayed, it will cycle back to the beginning.
Option | Type | Description |
---|---|---|
Period (Seconds) | Decimal - Default Value: 10 | The duration between measurements or actions |
Number of Line Sets | Integer - Default Value: 1 | How many sets of lines to cycle on the LCD |
SPI Device | Integer | The SPI device |
SPI Bus | Integer | The SPI bus |
DC Pin | Integer - Default Value: 16 | The pin (BCM numbering) connected to DC of the display |
Reset Pin | Integer - Default Value: 19 | The pin (BCM numbering) connected to RST of the display |
CS Pin | Integer - Default Value: 17 | The pin (BCM numbering) connected to CS of the display |
Characters Per Line | Integer - Default Value: 17 | The maximum number of characters to display per line |
Use Non-Default Font | Boolean | Don't use the default font. Enable to specify the path to a font to use. |
Non-Default Font Path | Text - Default Value: /usr/share/fonts/truetype/dejavu//DejaVuSans.ttf | The path to the non-default font to use |
Font Size (pt) | Integer - Default Value: 12 | The size of the font, in points |
Channel Options | ||
Line Display Type | Select | What to display on the line |
Measurement | Select Measurement (Input, Function, Output, PID) | Measurement to display on the line |
Max Age (Seconds) | Integer - Default Value: 360 | The maximum age of the measurement to use |
Measurement Label | Text | Set to overwrite the default measurement label |
Measurement Decimal | Integer - Default Value: 1 | The number of digits after the decimal |
Text | Text - Default Value: Text | Text to display |
Display Unit | Boolean - Default Value: True | Display the measurement unit (if available) |
Display: SSD1306 OLED 128x32 [4 Lines] (I2C)~
- Dependencies: libjpeg-dev, Pillow, pyusb, Adafruit-extended-bus, adafruit-circuitpython-framebuf, adafruit-circuitpython-ssd1306
This Function outputs to a 128x32 SSD1306 OLED display via I2C. This display Function will show 4 lines at a time, so channels are added in sets of 4 when Number of Line Sets is modified. Every Period, the LCD will refresh and display the next set of lines. Therefore, the first set of lines that are displayed are channels 0 - 3, then 4 - 7, and so on. After all channels have been displayed, it will cycle back to the beginning.
Option | Type | Description |
---|---|---|
Period (Seconds) | Decimal - Default Value: 10 | The duration between measurements or actions |
I2C Address | Text - Default Value: 0x3c | |
I2C Bus | Integer - Default Value: 1 | |
Number of Line Sets | Integer - Default Value: 1 | How many sets of lines to cycle on the LCD |
Reset Pin | Integer - Default Value: 17 | The pin (BCM numbering) connected to RST of the display |
Characters Per Line | Integer - Default Value: 21 | The maximum number of characters to display per line |
Use Non-Default Font | Boolean | Don't use the default font. Enable to specify the path to a font to use. |
Non-Default Font Path | Text - Default Value: /usr/share/fonts/truetype/dejavu//DejaVuSans.ttf | The path to the non-default font to use |
Font Size (pt) | Integer - Default Value: 10 | The size of the font, in points |
Channel Options | ||
Line Display Type | Select | What to display on the line |
Measurement | Select Measurement (Input, Function, Output, PID) | Measurement to display on the line |
Max Age (Seconds) | Integer - Default Value: 360 | The maximum age of the measurement to use |
Measurement Label | Text | Set to overwrite the default measurement label |
Measurement Decimal | Integer - Default Value: 1 | The number of digits after the decimal |
Text | Text - Default Value: Text | Text to display |
Display Unit | Boolean - Default Value: True | Display the measurement unit (if available) |
Display: SSD1306 OLED 128x32 [4 Lines] (SPI)~
- Dependencies: libjpeg-dev, Pillow, pyusb, Adafruit-GPIO, Adafruit-extended-bus, adafruit-circuitpython-framebuf, adafruit-circuitpython-ssd1306
This Function outputs to a 128x32 SSD1306 OLED display via SPI. This display Function will show 4 lines at a time, so channels are added in sets of 4 when Number of Line Sets is modified. Every Period, the LCD will refresh and display the next set of lines. Therefore, the first set of lines that are displayed are channels 0 - 3, then 4 - 7, and so on. After all channels have been displayed, it will cycle back to the beginning.
Option | Type | Description |
---|---|---|
Period (Seconds) | Decimal - Default Value: 10 | The duration between measurements or actions |
Number of Line Sets | Integer - Default Value: 1 | How many sets of lines to cycle on the LCD |
SPI Device | Integer | The SPI device |
SPI Bus | Integer | The SPI bus |
DC Pin | Integer - Default Value: 16 | The pin (BCM numbering) connected to DC of the display |
Reset Pin | Integer - Default Value: 19 | The pin (BCM numbering) connected to RST of the display |
CS Pin | Integer - Default Value: 17 | The pin (BCM numbering) connected to CS of the display |
Characters Per Line | Integer - Default Value: 21 | The maximum number of characters to display per line |
Use Non-Default Font | Boolean | Don't use the default font. Enable to specify the path to a font to use. |
Non-Default Font Path | Text - Default Value: /usr/share/fonts/truetype/dejavu//DejaVuSans.ttf | The path to the non-default font to use |
Font Size (pt) | Integer - Default Value: 10 | The size of the font, in points |
Display Unit | Boolean - Default Value: True | Display the measurement unit (if available) |
Channel Options | ||
Line Display Type | Select | What to display on the line |
Measurement | Select Measurement (Input, Function, Output, PID) | Measurement to display on the line |
Max Age (Seconds) | Integer - Default Value: 360 | The maximum age of the measurement to use |
Measurement Label | Text | Set to overwrite the default measurement label |
Measurement Decimal | Integer - Default Value: 1 | The number of digits after the decimal |
Text | Text - Default Value: Text | Text to display |
Display Unit | Boolean - Default Value: True | Display the measurement unit (if available) |
Display: SSD1306 OLED 128x64 [4 Lines] (I2C)~
- Dependencies: libjpeg-dev, Pillow, pyusb, Adafruit-extended-bus, adafruit-circuitpython-framebuf, adafruit-circuitpython-ssd1306
This Function outputs to a 128x64 SSD1306 OLED display via I2C. This display Function will show 4 lines at a time, so channels are added in sets of 4 when Number of Line Sets is modified. Every Period, the LCD will refresh and display the next set of lines. Therefore, the first set of lines that are displayed are channels 0 - 3, then 4 - 7, and so on. After all channels have been displayed, it will cycle back to the beginning.
Option | Type | Description |
---|---|---|
Period (Seconds) | Decimal - Default Value: 10 | The duration between measurements or actions |
I2C Address | Text - Default Value: 0x3c | |
I2C Bus | Integer - Default Value: 1 | |
Number of Line Sets | Integer - Default Value: 1 | How many sets of lines to cycle on the LCD |
Reset Pin | Integer - Default Value: 17 | The pin (BCM numbering) connected to RST of the display |
Characters Per Line | Integer - Default Value: 17 | The maximum number of characters to display per line |
Use Non-Default Font | Boolean | Don't use the default font. Enable to specify the path to a font to use. |
Non-Default Font Path | Text - Default Value: /usr/share/fonts/truetype/dejavu//DejaVuSans.ttf | The path to the non-default font to use |
Font Size (pt) | Integer - Default Value: 12 | The size of the font, in points |
Channel Options | ||
Line Display Type | Select | What to display on the line |
Measurement | Select Measurement (Input, Function, Output, PID) | Measurement to display on the line |
Max Age (Seconds) | Integer - Default Value: 360 | The maximum age of the measurement to use |
Measurement Label | Text | Set to overwrite the default measurement label |
Measurement Decimal | Integer - Default Value: 1 | The number of digits after the decimal |
Text | Text - Default Value: Text | Text to display |
Display Unit | Boolean - Default Value: True | Display the measurement unit (if available) |
Display: SSD1306 OLED 128x64 [4 Lines] (SPI)~
- Dependencies: libjpeg-dev, Pillow, pyusb, Adafruit-GPIO, Adafruit-extended-bus, adafruit-circuitpython-framebuf, adafruit-circuitpython-ssd1306
This Function outputs to a 128x64 SSD1306 OLED display via SPI. This display Function will show 4 lines at a time, so channels are added in sets of 4 when Number of Line Sets is modified. Every Period, the LCD will refresh and display the next set of lines. Therefore, the first set of lines that are displayed are channels 0 - 3, then 4 - 7, and so on. After all channels have been displayed, it will cycle back to the beginning.
Option | Type | Description |
---|---|---|
Period (Seconds) | Decimal - Default Value: 10 | The duration between measurements or actions |
Number of Line Sets | Integer - Default Value: 1 | How many sets of lines to cycle on the LCD |
SPI Device | Integer | The SPI device |
SPI Bus | Integer | The SPI bus |
DC Pin | Integer - Default Value: 16 | The pin (BCM numbering) connected to DC of the display |
Reset Pin | Integer - Default Value: 19 | The pin (BCM numbering) connected to RST of the display |
CS Pin | Integer - Default Value: 17 | The pin (BCM numbering) connected to CS of the display |
Characters Per Line | Integer - Default Value: 17 | The maximum number of characters to display per line |
Use Non-Default Font | Boolean | Don't use the default font. Enable to specify the path to a font to use. |
Non-Default Font Path | Text - Default Value: /usr/share/fonts/truetype/dejavu//DejaVuSans.ttf | The path to the non-default font to use |
Font Size (pt) | Integer - Default Value: 12 | The size of the font, in points |
Channel Options | ||
Line Display Type | Select | What to display on the line |
Measurement | Select Measurement (Input, Function, Output, PID) | Measurement to display on the line |
Max Age (Seconds) | Integer - Default Value: 360 | The maximum age of the measurement to use |
Measurement Label | Text | Set to overwrite the default measurement label |
Measurement Decimal | Integer - Default Value: 1 | The number of digits after the decimal |
Text | Text - Default Value: Text | Text to display |
Display Unit | Boolean - Default Value: True | Display the measurement unit (if available) |
Display: SSD1306 OLED 128x64 [8 Lines] (I2C)~
- Dependencies: libjpeg-dev, Pillow, pyusb, Adafruit-extended-bus, adafruit-circuitpython-framebuf, adafruit-circuitpython-ssd1306
This Function outputs to a 128x64 SSD1306 OLED display via I2C. This display Function will show 8 lines at a time, so channels are added in sets of 8 when Number of Line Sets is modified. Every Period, the LCD will refresh and display the next set of lines. Therefore, the first set of lines that are displayed are channels 0 - 7, then 8 - 15, and so on. After all channels have been displayed, it will cycle back to the beginning.
Option | Type | Description |
---|---|---|
Period (Seconds) | Decimal - Default Value: 10 | The duration between measurements or actions |
I2C Address | Text - Default Value: 0x3c | |
I2C Bus | Integer - Default Value: 1 | |
Number of Line Sets | Integer - Default Value: 1 | How many sets of lines to cycle on the LCD |
Reset Pin | Integer - Default Value: 17 | The pin (BCM numbering) connected to RST of the display |
Characters Per Line | Integer - Default Value: 21 | The maximum number of characters to display per line |
Use Non-Default Font | Boolean | Don't use the default font. Enable to specify the path to a font to use. |
Non-Default Font Path | Text - Default Value: /usr/share/fonts/truetype/dejavu//DejaVuSans.ttf | The path to the non-default font to use |
Font Size (pt) | Integer - Default Value: 10 | The size of the font, in points |
Channel Options | ||
Line Display Type | Select | What to display on the line |
Measurement | Select Measurement (Input, Function, Output, PID) | Measurement to display on the line |
Max Age (Seconds) | Integer - Default Value: 360 | The maximum age of the measurement to use |
Measurement Label | Text | Set to overwrite the default measurement label |
Measurement Decimal | Integer - Default Value: 1 | The number of digits after the decimal |
Text | Text - Default Value: Text | Text to display |
Display Unit | Boolean - Default Value: True | Display the measurement unit (if available) |
Display: SSD1306 OLED 128x64 [8 Lines] (SPI)~
- Dependencies: libjpeg-dev, Pillow, pyusb, Adafruit-GPIO, Adafruit-extended-bus, adafruit-circuitpython-framebuf, adafruit-circuitpython-ssd1306
This Function outputs to a 128x64 SSD1306 OLED display via SPI. This display Function will show 8 lines at a time, so channels are added in sets of 8 when Number of Line Sets is modified. Every Period, the LCD will refresh and display the next set of lines. Therefore, the first set of lines that are displayed are channels 0 - 7, then 8 - 15, and so on. After all channels have been displayed, it will cycle back to the beginning.
Option | Type | Description |
---|---|---|
Period (Seconds) | Decimal - Default Value: 10 | The duration between measurements or actions |
Number of Line Sets | Integer - Default Value: 1 | How many sets of lines to cycle on the LCD |
SPI Device | Integer | The SPI device |
SPI Bus | Integer | The SPI bus |
DC Pin | Integer - Default Value: 16 | The pin (BCM numbering) connected to DC of the display |
Reset Pin | Integer - Default Value: 19 | The pin (BCM numbering) connected to RST of the display |
CS Pin | Integer - Default Value: 17 | The pin (BCM numbering) connected to CS of the display |
Characters Per Line | Integer - Default Value: 21 | The maximum number of characters to display per line |
Use Non-Default Font | Boolean | Don't use the default font. Enable to specify the path to a font to use. |
Non-Default Font Path | Text - Default Value: /usr/share/fonts/truetype/dejavu//DejaVuSans.ttf | The path to the non-default font to use |
Font Size (pt) | Integer - Default Value: 10 | The size of the font, in points |
Channel Options | ||
Line Display Type | Select | What to display on the line |
Measurement | Select Measurement (Input, Function, Output, PID) | Measurement to display on the line |
Max Age (Seconds) | Integer - Default Value: 360 | The maximum age of the measurement to use |
Measurement Label | Text | Set to overwrite the default measurement label |
Measurement Decimal | Integer - Default Value: 1 | The number of digits after the decimal |
Text | Text - Default Value: Text | Text to display |
Display Unit | Boolean - Default Value: True | Display the measurement unit (if available) |
Display: SSD1309 OLED 128x64 [8 Lines] (I2C)~
- Dependencies: pyusb, luma.oled, Pillow, libjpeg-dev, zlib1g-dev, libfreetype6-dev, liblcms2-dev, libopenjp2-7, libtiff5
This Function outputs to a 128x64 SSD1309 OLED display via I2C. This display Function will show 8 lines at a time, so channels are added in sets of 8 when Number of Line Sets is modified. Every Period, the LCD will refresh and display the next set of lines. Therefore, the first set of lines that are displayed are channels 0 - 7, then 8 - 15, and so on. After all channels have been displayed, it will cycle back to the beginning.
Option | Type | Description |
---|---|---|
Period (Seconds) | Decimal - Default Value: 10 | The duration between measurements or actions |
I2C Address | Text - Default Value: 0x3c | |
I2C Bus | Integer - Default Value: 1 | |
Number of Line Sets | Integer - Default Value: 1 | How many sets of lines to cycle on the LCD |
Reset Pin | Integer - Default Value: 17 | The pin (BCM numbering) connected to RST of the display |
Channel Options | ||
Line Display Type | Select | What to display on the line |
Measurement | Select Measurement (Input, Function, Output, PID) | Measurement to display on the line |
Max Age (Seconds) | Integer - Default Value: 360 | The maximum age of the measurement to use |
Measurement Label | Text | Set to overwrite the default measurement label |
Measurement Decimal | Integer - Default Value: 1 | The number of digits after the decimal |
Text | Text - Default Value: Text | Text to display |
Display Unit | Boolean - Default Value: True | Display the measurement unit (if available) |
Equation (Multi-Measure)~
This function acquires two measurements and uses them within a user-set equation and stores the resulting value as the selected measurement and unit.
Option | Type | Description |
---|---|---|
Period (Seconds) | Decimal - Default Value: 60 | The duration between measurements or actions |
Measurement: A | Select Measurement (Input, Output, Function) | Measurement to replace a |
Measurement A: Max Age (Seconds) | Integer - Default Value: 360 | The maximum age of the measurement to use |
Measurement: B | Select Measurement (Input, Output, Function) | Measurement to replace b |
Measurement B: Max Age (Seconds) | Integer - Default Value: 360 | The maximum age of the measurement to use |
Equation | Text - Default Value: a*(2+b) | Equation using measurements a and b |
Equation (Single-Measure)~
This function acquires a measurement and uses it within a user-set equation and stores the resulting value as the selected measurement and unit.
Option | Type | Description |
---|---|---|
Period (Seconds) | Decimal - Default Value: 60 | The duration between measurements or actions |
Measurement | Select Measurement (Input, Output, Function) | Measurement to replace "x" in the equation |
Max Age (Seconds) | Integer - Default Value: 360 | The maximum age of the measurement to use |
Equation | Text - Default Value: x*5+2 | Equation using the measurement |
Example: Generic~
- Dependencies: build-essential
This is an example Function Module that showcases all the different type of UI options. It is not useful beyond showing how to develop new custom Function modules.This message will appear above the Function options. It will retrieve the last selected measurement, turn the selected output on for 15 seconds, then deactivate itself. Study the code to develop your own Function Module that can be imported on the Function Import page.
Option | Type | Description |
---|---|---|
Period (Seconds) | Decimal - Default Value: 60 | The duration between measurements or actions |
The following fields are for text, integers, and decimal inputs. This message will automatically create a new line for the options that come after it. Alternatively, a new line can be created instead without a message, which are what separates each of the following three inputs. | ||
Text Input | Text - Default Value: Text_1 | Type in text |
Integer Input | Integer - Default Value: 100 | Type in an Integer |
Devimal Input | Decimal - Default Value: 50.2 | Type in a decimal value |
A boolean value can be made using a checkbox. | ||
Boolean Value | Boolean - Default Value: True | Set to either True (checked) or False (Unchecked) |
A dropdown selection can be made of any user-defined options, with any of the options selected by default when the Function is added by the user. | ||
Select Option | Select(Options: [First Option Selected | Second Option Selected | Third Option Selected] (Default in bold) | Select an option from the dropdown |
A specific measurement from an Input, Function, or PID Controller can be selected. The following dropdown will be populated if at least one Input, Function, or PID Controller has been created (as long as the Function has measurements, e.g. Statistics Function). | ||
Controller Measurement | Select Measurement (Input, Function, PID) | Select a controller Measurement |
An output channel measurement can be selected that will return the Output ID, Channel ID, and Measurement ID. This is useful if you need more than just the Output and Channel IDs and require the user to select the specific Measurement of a channel. | ||
Output Channel Measurement | Select Device, Measurement, and Channel (Output) | Select an output channel and measurement |
An output can be selected that will return the Output ID if only the output ID is needed. | ||
Output Device | Select Device | Select an Output device |
An Input, Output, Function, PID, or Trigger can be selected that will return the ID if only the controller ID is needed (e.g. for activating/deactivating a controller) | ||
Controller Device | Select Device | Select an Input/Output/Function/PID/Trigger controller |
Commands | ||
Button One will pass the Button One Value to the button_one() function of this module. This allows functions to be executed with user-specified inputs. These can be text, integers, decimals, or boolean values. | ||
Button One Value | Integer - Default Value: 650 | Value for button one. |
Button One | Button | |
Here is another action with another user input that will be passed to the function. Note that Button One Value will also be passed to this second function, so be sure to use unique ids for each input. | ||
Button Two Value | Integer - Default Value: 1500 | Value for button two. |
Button Two | Button |
Humidity (Wet/Dry-Bulb)~
This function calculates the humidity based on wet and dry bulb temperature measurements.
Option | Type | Description |
---|---|---|
Measurements Enabled | Multi-Select | The measurements to record |
Period (Seconds) | Decimal - Default Value: 60 | The duration between measurements or actions |
Start Offset (Seconds) | Integer - Default Value: 10 | The duration to wait before the first operation |
Dry Bulb Temperature | Select Measurement (Input, Function) | Dry Bulb temperature measurement |
Dry Bulb: Max Age (Seconds) | Integer - Default Value: 360 | The maximum age of the measurement to use |
Wet Bulb Temperature | Select Measurement (Input, Function) | Wet Bulb temperature measurement |
Wet Bulb: Max Age (Seconds) | Integer - Default Value: 360 | The maximum age of the measurement to use |
Pressure | Select Measurement (Input, Function) | Pressure measurement |
Pressure: Max Age (Seconds) | Integer - Default Value: 360 | The maximum age of the measurement to use |
Neokey 4x1 Neopixel Keyboard (Execute Actions)~
- Dependencies: pyusb, Adafruit-extended-bus, adafruit-circuitpython-neokey
This Function executes actions when a key is pressed. Add actions at the bottom of this module, then enter one or more short action IDs for each key, separated by commas. The Action ID is found next to the Action (for example, the Action "[Action 0559689e] Controller: Activate" has an Action ID of 0559689e. When entering Action ID(s), separate multiple IDs by commas (for example, "asdf1234" or "asdf1234,qwer5678,zxcv0987"). Actions will be executed in the order they are entered in the text string. Enter Action IDs to execute those actions when the key is pressed. If enable Toggling Actions, every other key press will execute Actions listed in Toggled Action IDs. The LED color of the key before being pressed, after being pressed, and while the last action is running. Color is an RGB string, with 0-255 for each color. For example, red is "255, 0, 0" and blue is "0, 0, 255".
Option | Type | Description |
---|---|---|
I2C Address | Text - Default Value: 0x30 | |
I2C Bus | Integer - Default Value: 1 | |
LED Brightness (0.0-1.0) | Decimal - Default Value: 0.2 | The brightness of the LEDs |
LED Flash Period (Seconds) | Decimal - Default Value: 1.0 | Set the period if the LED begins flashing |
Channel Options | ||
Name | Text | A name to distinguish this from others |
LED Delay (Seconds) | Decimal - Default Value: 1.5 | How long to leave the LED on after the last action executes. |
Action ID(s) | Text | Set which action(s) execute when the key is pressed. Enter one or more Action IDs, separated by commas |
Enable Toggling Actions | Boolean | Alternate between executing two sets of Actions |
Toggled Action ID(s) | Text | Set which action(s) execute when the key is pressed on even presses. Enter one or more Action IDs, separated by commas |
Resting LED Color (RGB) | Text - Default Value: 0, 0, 0 | The RGB color while no actions are running (e.g 10, 0, 0) |
Actions Running LED Color: (RGB) | Text - Default Value: 0, 255, 0 | The RGB color while all but the last action is running (e.g 10, 0, 0) |
Last Action LED Color (RGB) | Text - Default Value: 0, 0, 255 | The RGB color while the last action is running (e.g 10, 0, 0) |
Shutdown LED Color (RGB) | Text - Default Value: 0, 0, 0 | The RGB color when the Function is disabled (e.g 10, 0, 0) |
PID Autotune~
This function will attempt to perform a PID controller autotune. That is, an output will be powered and the response measured from a sensor several times to calculate the P, I, and D gains. Updates about the operation will be sent to the Daemon log. If the autotune successfully completes, a summary will be sent to the Daemon log as well. Currently, only raising a Measurement is supported, but lowering should be possible with some modification to the function controller code. It is recommended to create a graph on a dashboard with the Measurement and Output to monitor that the Output is successfully raising the Measurement beyond the Setpoint. Note: Autotune is an experimental feature, it is not well-developed, and it has a high likelihood of failing to generate PID gains. Do not rely on it for accurately tuning your PID controller.
Option | Type | Description |
---|---|---|
Measurement | Select Measurement (Input, Function) | Select a measurement the selected output will affect |
Output | Select Device, Measurement, and Channel (Output) | Select an output to modulate that will affect the measurement |
Period | Integer - Default Value: 30 | The period between powering the output |
Setpoint | Decimal - Default Value: 50 | A value sufficiently far from the current measured value that the output is capable of pushing the measurement toward |
Noise Band | Decimal - Default Value: 0.5 | The amount above the setpoint the measurement must reach |
Outstep | Decimal - Default Value: 10 | How many seconds the output will turn on every Period |
Currently, only autotuning to raise a condition (measurement) is supported. | ||
Direction | Select(Options: [Raise] (Default in bold) | The direction the Output will push the Measurement |
Redundancy~
This function stores the first available measurement. This is useful if you have multiple sensors that you want to serve as backups in case one stops working, you can set them up in the order of importance. This function will check if a measurement exits, starting with the first measurement. If it doesn't, the next is checked, until a measurement is found. Once a measurement is found, it is stored in the database with the user-set measurement and unit. The output of this function can be used as an input throughout Mycodo. If you need more than 3 measurements to be checked, you can string multiple Redundancy Functions by creating a second Function and setting the first Function's output as the second Function's input.
Option | Type | Description |
---|---|---|
Period (Seconds) | Decimal - Default Value: 60 | The duration between measurements or actions |
Measurement A | Select Measurement (Input, Function) | Measurement to replace a |
Measurement A: Max Age (Seconds) | Integer - Default Value: 360 | The maximum age of the measurement to use |
Measurement B | Select Measurement (Input, Function) | Measurement to replace b |
Measurement B: Max Age (Seconds) | Integer - Default Value: 360 | The maximum age of the measurement to use |
Measurement C | Select Measurement (Input, Function) | Measurement to replace C |
Measurement C: Max Age (Seconds) | Integer - Default Value: 360 | The maximum age of the measurement to use |
Regulate pH and Electrical Conductivity~
This function regulates pH with 2 pumps (acid and base solutions) and electrical conductivity (EC) with up to 4 pumps (nutrient solutions A, B, C, and D). Set only the nutrient solution outputs you want to use. Any outputs not set will not dispense when EC is being adjusted, allowing as few as 1 pump or as many as 4 pumps. Outputs can be instructed to turn on for durations (seconds) or volumes (ml). Set each Output Type to the correct type for each selected Output Channel (only select on/off Output Channels for durations and volume Output Channels for volumes). The ratio of nutrient solutions being dispensed is defined by the duration or volume set for each EC output.
If an e-mail address (or multiple addresses separated by commas) is entered into the E-Mail Notification field, a notification e-mail will be sent if 1) pH is outside the set danger range, 2) EC is too high and water needs to be added to the reservoir, or 3) a measurement could not be found in the database for the specific Max Age. Each e-mail notification type has its own timer that prevents e-mail spam, and will only allow sending for each notification type every set E-Mail Timer Duration. After this duration, the timer will automatically reset to allow new notifications to be sent. You may also manually reset e-mail timers at any time with the Custom Commands, below.
When the Function is active, Status text will appear below indicating the regulation information and total duration/volume for each output.
Option | Type | Description |
---|---|---|
Period (Seconds) | Decimal - Default Value: 300 | The duration between measurements or actions |
Start Offset (Seconds) | Integer - Default Value: 10 | The duration to wait before the first operation |
Status Period (seconds) | Integer - Default Value: 60 | The duration (seconds) to update the Function status on the UI |
Measurement Options | ||
pH Measurement | Select Measurement (Input, Function) | Measurement from the pH input |
pH: Max Age (Seconds) | Integer - Default Value: 360 | The maximum age of the measurement to use |
EC Measurement | Select Measurement (Input, Function) | Measurement from the EC input |
Electrical Conductivity: Max Age (Seconds) | Integer - Default Value: 360 | The maximum age of the measurement to use |
Output Options | ||
Output: pH Dose Raise (Base) | Select Channel (Output_Channels) | Select an output to raise the pH |
Output: pH Dose Lower (Acid) | Select Channel (Output_Channels) | Select an output to lower the pH |
pH Output Type | Select(Options: [Duration (seconds) | Volume (ml)] (Default in bold) | Select the output type for the selected Output Channel |
pH Output Amount | Decimal - Default Value: 2.0 | The amount to send to the pH dosing pumps (duration or volume) |
Output: EC Dose Nutrient A | Select Channel (Output_Channels) | Select an output to dose nutrient A |
Nutrient A Output Type | Select(Options: [Duration (seconds) | Volume (ml)] (Default in bold) | Select the output type for the selected Output Channel |
Nutrient A Output Amount | Decimal - Default Value: 2.0 | The amount to send to the Nutrient A dosing pump (duration or volume) |
Output: EC Dose Nutrient B | Select Channel (Output_Channels) | Select an output to dose nutrient B |
Nutrient B Output Type | Select(Options: [Duration (seconds) | Volume (ml)] (Default in bold) | Select the output type for the selected Output Channel |
Nutrient B Output Amount | Decimal - Default Value: 2.0 | The amount to send to the Nutrient B dosing pump (duration or volume) |
Output: EC Dose Nutrient C | Select Channel (Output_Channels) | Select an output to dose nutrient C |
Nutrient C Output Type | Select(Options: [Duration (seconds) | Volume (ml)] (Default in bold) | Select the output type for the selected Output Channel |
Nutrient C Output Amount | Decimal - Default Value: 2.0 | The amount to send to the Nutrient C dosing pump (duration or volume) |
Output: EC Dose Nutrient D | Select Channel (Output_Channels) | Select an output to dose nutrient D |
Nutrient D Output Type | Select(Options: [Duration (seconds) | Volume (ml)] (Default in bold) | Select the output type for the selected Output Channel |
Nutrient D Output Amount | Decimal - Default Value: 2.0 | The amount to send to the Nutrient D dosing pump (duration or volume) |
Setpoint Options | ||
pH Setpoint | Decimal - Default Value: 5.85 | The desired pH setpoint |
pH Hysteresis | Decimal - Default Value: 0.35 | The hysteresis to determine the pH range |
EC Setpoint | Decimal - Default Value: 150.0 | The desired electrical conductivity setpoint |
EC Hysteresis | Decimal - Default Value: 50.0 | The hysteresis to determine the EC range |
pH Danger Range (High Value) | Decimal - Default Value: 7.0 | This high pH value for the danger range |
pH Danger Range (Low Value) | Decimal - Default Value: 5.0 | This low pH value for the danger range |
Alert Notification Options | ||
Notification E-Mail | Text | E-mail to notify when there is an issue (blank to disable) |
E-Mail Timer Duration (Hours) | Decimal - Default Value: 12.0 | How long to wait between sending e-mail notifications |
Commands | ||
Each e-mail notification timer can be manually reset before the expiration. | ||
Reset EC E-mail Timer | Button | |
Reset pH E-mail Timer | Button | |
Reset Measurement Issue E-mail Timer | Button | |
Reset All E-Mail Timers | Button | |
Each total duration and volume can be manually reset. | ||
Reset All Totals | Button | |
Reset Total Raise pH Duration | Button | |
Reset Total Lower pH Duration | Button | |
Reset Total Raise pH Volume | Button | |
Reset Total Lower pH Volume | Button | |
Reset Total EC A Duration | Button | |
Reset Total EC A Volume | Button | |
Reset Total EC B Duration | Button | |
Reset Total EC B Volume | Button | |
Reset Total EC C Duration | Button | |
Reset Total EC C Volume | Button | |
Reset Total EC D Duration | Button | |
Reset Total EC D Volume | Button |
Spacer~
A spacer to organize Functions.
Option | Type | Description |
---|---|---|
Color | Text - Default Value: #000000 | The color of the name text |
Statistics (Last, Multiple)~
This function acquires multiple measurements, calculates statistics, and stores the resulting values as the selected unit.
Option | Type | Description |
---|---|---|
Measurements Enabled | Multi-Select | The measurements to record |
Period (Seconds) | Decimal - Default Value: 60 | The duration between measurements or actions |
Max Age (Seconds) | Integer - Default Value: 360 | The maximum age of the measurement to use |
Measurement | Measurements to perform statistics on | |
Halt on Missing Measurement | Boolean | Don't calculate statistics if >= 1 measurement is not found within Max Age |
Statistics (Past, Single)~
This function acquires multiple values from a single measurement, calculates statistics, and stores the resulting values as the selected unit.
Option | Type | Description |
---|---|---|
Measurements Enabled | Multi-Select | The measurements to record |
Period (Seconds) | Decimal - Default Value: 60 | The duration between measurements or actions |
Max Age (Seconds) | Integer - Default Value: 360 | The maximum age of the measurement to use |
Measurement | Select Measurement (Input, Function) | Measurement to perform statistics on |
Sum (Last, Multiple)~
This function acquires the last measurement of those that are selected, sums them, then stores the resulting value as the selected measurement and unit.
Option | Type | Description |
---|---|---|
Period (Seconds) | Decimal - Default Value: 60 | The duration between measurements or actions |
Start Offset (Seconds) | Integer - Default Value: 10 | The duration to wait before the first operation |
Max Age (Seconds) | Integer - Default Value: 360 | The maximum age of the measurement to use |
Measurement | Measurement to replace "x" in the equation |
Sum (Past, Single)~
This function acquires the past measurements (within Max Age) for the selected measurement, sums them, then stores the resulting value as the selected measurement and unit.
Option | Type | Description |
---|---|---|
Period (Seconds) | Decimal - Default Value: 60 | The duration between measurements or actions |
Start Offset (Seconds) | Integer - Default Value: 10 | The duration to wait before the first operation |
Measurement | Select Measurement (Input, Function, Output) | Measurement to replace "x" in the equation |
Max Age (Seconds) | Integer - Default Value: 360 | The maximum age of the measurement to use |
Vapor Pressure Deficit~
This function calculates the vapor pressure deficit based on leaf temperature and humidity.
Option | Type | Description |
---|---|---|
Period (Seconds) | Decimal - Default Value: 60 | The duration between measurements or actions |
Start Offset (Seconds) | Integer - Default Value: 10 | The duration to wait before the first operation |
Temperature | Select Measurement (Input, Function) | Temperature measurement |
Temperature: Max Age (Seconds) | Integer - Default Value: 360 | The maximum age of the measurement to use |
Humidity | Select Measurement (Input, Function) | Humidity measurement |
Humidity: Max Age (Seconds) | Integer - Default Value: 360 | The maximum age of the measurement to use |
Verification~
This function acquires 2 measurements, calculates the difference, and if the difference is not larger than the set threshold, the Measurement A value is stored. This enables verifying one sensor's measurement with another sensor's measurement. Only when they are both in agreement is a measurement stored. This stored measurement can be used in functions such as Conditional Functions that will notify the user if no measurement is available to indicate there may be an issue with a sensor.
Option | Type | Description |
---|---|---|
Period (Seconds) | Decimal - Default Value: 60 | The duration between measurements or actions |
Measurement A | Select Measurement (Input, Function) | Measurement A |
Measurement A: Max Age (Seconds) | Integer - Default Value: 360 | The maximum age of the measurement to use |
Measurement B | Select Measurement (Input, Function) | Measurement B |
Measurement B: Max Age (Seconds) | Integer - Default Value: 360 | The maximum age of the measurement to use |
Maximum Difference | Decimal - Default Value: 10.0 | The maximum allowed difference between the measurements |
Average Measurements | Boolean | Store the average of the measurements in the database |