Nightscout Configuration

Nightscout configuration is held in variables , their content can be modified to change and customize the behavior (data source, security, alarms, …) and appearance (language, colors, visible items, …). When deploying your Nightscout, most are left with default values and with time you might want to tune your site.

Variables location will depend on the platform you use:


If you use a hosted service, open the vendor web interface to access your Nightcsout site variables configuration or contact support.



Hint

Only most used variables are explained below.
For the full list consult the main repository ReadMe.


Nightscout Config Vars


Required variables

MONGODB_URI (Database connection string)

The connection string required to access your Mongo database (where all your data is stored in the cloud).

Warning

MONGODB_URI is handled automatically if you use a hosted service or Google Cloud xDrip+ method. In these cases you don’t need to worry about it and can’t or shouldn’t change it.
This string is vital to your Nightscout functioning. A wrong connection string will prevent your site from opening and your data uploading in Nightscout.

An Atlas database string will look like this:

mongodb+svr://sally:sallypass@cluster0.abcdef.mongodb.net/nightscout?retryWrites=true&w=majority

A traditional MongoDB string will look like this:

mongodb://sally:sallypass@myhosteddb.fqd/nightscout

Hint

If you migrated from mLab, this variable might be MONGO_CONNECTION. Only one of these two variables must be present: MONGODB_URI or MONGO_CONNECTION.


API_SECRET (Nightscout password)

This is an important password

Knowing your site’s API Secret gives anybody full access to your Nightscout data, allows uploading to your site and uncontrolled access. Make sure you keep this password secret and avoid exposing it publicly.

A passphrase that must be at least 12 characters long, for example:

MyV3ry53cr37

Hint

Don’t make it too long and do not put special characters in it (better stick to letters and numbers).
It is case-sensitive.
If you need to share Nightscout access but control the access, use an admin token.


DISPLAY_UNITS (Units to use)

Preferred BG units for the site: mg/dl or mmol/L (or just mmol). Setting to mmol/L puts the entire server into mmol/L mode by default, no further settings needed. Make sure it matches you uploader and followers.



Features

ENABLE (Enable Plugins)

Hint

Select the right plugins! Better too many than not enough.

Select which Plugins to enable for your site, this is the current list:

  • careportal (Careportal)

  • boluscalc (Bolus Wizard)

  • food (Custom Foods)

  • rawbg (Raw BG)

  • iob (Insulin-on-Board)

  • cob (Carbs-on-Board)

  • bwp (Bolus Wizard Preview)

  • cage (Cannula Age)

  • sage (Sensor Age)

  • iage (Insulin Age)

  • bage (Battery Age)

  • treatmentnotify (Treatment Notifications)

  • basal (Basal Profile)

  • bolus (Bolus Rendering)

  • connect (Nightscout Connect) - Beta

  • bridge (Share2Nightscout bridge) - Deprecated

  • mmconnect (MiniMed Connect bridge) - Deprecated: not functional

  • pump (Pump Monitoring)

  • openaps (OpenAPS)

  • loop (Loop)

  • override (Override Mode)

  • xdripjs (xDrip-js)

  • alexa (Amazon Alexa)

  • googlehome (Google Home/DialogFLow)

  • speech (Speech)

  • cors (CORS)

Must be a space-delimited, lower-case list.

careportal basal dbsize

Include the word bridge here if you are receiving data from the Dexcom Share service.

careportal basal dbsize bridge

If you don’t want to decide now, add all the followings, you can disable them if you don’t need them:

careportal basal dbsize rawbg iob maker bridge cob bwp cage iage sage boluscalc pushover treatmentnotify mmconnect loop pump profile food openaps bage alexa override cors

Note: mmconnect is not functional with Heroku (if you wanted to bridge from the MiniMed CareLink service you will need another device to send data to Nightscout). If you are sending data to CareLink do NOT enable mmconnect.


DISABLE (Disable Plugins)

Used to disable default features, expects a space delimited list.

For example this will disable the direction arrow and uploader battery information:

direction upbat


AUTH_DEFAULT_ROLES (Authentication)

Possible values readable, denied, or any valid role name. When readable, anyone can view Nightscout without a token. Setting it to denied will require a token from every visit, using status-only will enable api-secret based login.

More information on how to setup tokens here.


Alarms

These alarm setting affect all delivery methods (browser, Pushover, IFTTT, etc.). Values and settings entered here will be the defaults for new browser views, but will be overridden if different choices are made in the settings UI.

ALARM_TYPES

TYPES

Keep the simple type if you want BG_ parameters (setup below) to be used.

simple and/or predict.

Simple alarms trigger when BG crosses the various thresholds set below.

Predict alarms uses highly tuned formula that forecasts where the BG is going based on its trend. You will not get warnings when crossing any of the BG_ thresholds set below when using only the predict type.

BG Thresholds

These values are the ones that will trigger simple alarms. They are expressed in the unit you selected with DISPLAY_UNITS.

BG_HIGH

Urgent High BG threshold, triggers the ALARM_URGENT_HIGH alarm.

BG_LOW

Urgent Low BG threshold, triggers the ALARM_URGENT_LOW alarm.

BG_TARGET_BOTTOM

Low BG threshold, triggers the ALARM_LOW alarm.

BG_TARGET_TOP

High BG threshold, triggers the ALARM_HIGH alarm.


ALARM_* and ALARM_URGENT_*

You can setup alarms, so that when your Nightscout page is open and the alarm enabled, above (HIGH) or below (LOW) a certain threshold, a sound might play.

ALARM_URGENT_HIGH

Default setting for new browser views, for the Urgent High alarm (triggered when BG crosses BG_HIGH). (on or off)

ALARM_HIGH

Default setting for new browser views, for the High alarm (triggered when BG crosses BG_TARGET_TOP). (on or off)

ALARM_LOW

Default setting for new browser views, for the Low alarm (triggered when BG crosses BG_TARGET_BOTTOM). (on or off)

ALARM_URGENT_LOW

Default setting for new browser views, for the Urgent Low alarm (triggered when BG crosses BG_LOW). (on or off)

Other Alarms on by Default

These other two alarms are on by default, so set them to ‘off’ if you prefer no alarms.

  • ALARM_TIMEAGO_WARN

  • ALARM_TIMEAGO_URGENT


Pushover

ALARM_*_MINS: Only the first value of the space separated list, for options in browser, will be used for pushover.

ALARM_URGENT_HIGH_MINS

Number of minutes to snooze urgent high alarms.

ALARM_HIGH_MINS

Number of minutes to snooze high alarms.

ALARM_LOW_MINS

Number of minutes to snooze low alarms.

ALARM_URGENT_LOW_MINS

Number of minutes to snooze urgent low alarms.

ALARM_URGENT_MINS

Number of minutes to snooze urgent alarms (that aren’t tagged as high or low).

ALARM_WARN_MINS

Number of minutes to snooze warning alarms (that aren’t tagged as high or low).


TIMEAGO

Missing data alarms can also be setup, so that when your Nightscout page is open and the alarm enabled, after a certain time without receiving BG, a sound might play.

ALARM_TIMEAGO_URGENT

Default setting for new browser views, for an urgent alarm when CGM data hasn’t been received in the number of minutes set in ALARM_TIMEAGO_URGENT_MINS. (on or off)

ALARM_TIMEAGO_URGENT_MINS

Default setting for new browser views, for the number of minutes since the last CGM reading to trigger an ALARM_TIMEAGO_URGENT alarm.

ALARM_TIMEAGO_WARN

Default setting for new browser views, for a warning alarm when CGM data hasn’t been received in the number of minutes set in ALARM_TIMEAGO_WARN_MINS. (on or off)

ALARM_TIMEAGO_WARN_MINS

Default setting for new browser views, for the number of minutes since the last CGM reading to trigger an ALARM_TIMEAGO_WARN alarm.



Predefined values for your browser settings (default)

TIME_FORMAT (12)

Possible values 12 or 24. This defines the horizontal timeline expressed as AM/PM or 0-24.


NIGHT_MODE (off)

Possible values on or off. Night mode has a lower brightness and contrast.


SHOW_RAWBG (never)

Display of raw CGM data (this is a legacy feature). (always, never, or noise)

../../_images/SetupNS35.png

CUSTOM_TITLE (Nightscout)

The display name for the Nightscout site. Appears in the upper left of the main view. Often set to the name of the CGM wearer.

../../_images/SetupNS05.png

THEME (colors)

Color theme of the CGM graph.

default

../../_images/SetupNS06.png

colors

../../_images/SetupNS07.png

colorblindfriendly

../../_images/SetupNS08.png

SHOW_PLUGINS

Default setting for whether or not these plugins are checked (active) by default, not merely enabled. Include plugins here as in the ENABLE line; space-separated and lower-case.

When you ENABLE a plugin, it will be used by Nightscout but might not be visible unless you select it in the drawer menu. If you want a plugin to display by default you need to add it to the SHOW_PLUGINS list.

More details below.


SHOW_FORECAST (ar2)

Plugin forecasts that should be shown by default, supports space delimited values such as: ar2 openaps loop false

Note the ar2 forecast is selected by default so if no value is set, it will be AR2. AR2 is an early attempt at forecasting BG and you should not base any medical decisions on it’s predictions.

If you are looping, you can chose instead to use either loop or openaps which will use the appropriate algorithm.

You should also add the parameter to the SHOW_PLUGINS and ENABLE variables.

For example, if you are using the Loop app for iPhone, you should have the following settings (In addition to any others outlined in the docs):

ENABLE=loop
SHOW_PLUGINS=loop
SHOW_FORECAST=loop

LANGUAGE (en)

Language of Nightscout. If not available English is used.

Currently supported language codes are: bg (Български), cs (Čeština), de (Deutsch), dk (Dansk), el (Ελληνικά), en (English), es (Español), fi (Suomi), fr (Français), he (עברית), hr (Hrvatski), it (Italiano), ko (한국어), nb (Norsk (Bokmål)), nl (Nederlands), pl (Polski), pt (Português (Brasil)), ro (Română), ru (Русский), sk (Slovenčina), sv (Svenska), tr (Turkish), zh_cn (中文(简体)), zh_tw (中文(繁體))


SCALE_Y (log)

The type of scaling used for the Y axis of the charts system wide.

The default log (logarithmic) option will let you see more detail towards the lower range, while still showing the full CGM range.

../../_images/SetupNS40.png

The linear option has equidistant tick marks; the range used is dynamic so that space at the top of chart isn’t wasted.

../../_images/SetupNS39.png

The log-dynamic is similar to the default log options, but uses the same dynamic range and the linear scale.

../../_images/SetupNS41.png

EDIT_MODE (on)

Possible values on or off. Enables the icon allowing for editing of treatments in the main view. More about edit here.

../../_images/SetupNS42.png

BOLUS_RENDER

Settings to configure Bolus rendering

BOLUS_RENDER_OVER (0) - U value over which the bolus labels use the format defined in BOLUS_RENDER_FORMAT. This value can be an integer or a float, e.g. 0.3, 1.5, 2, etc.

BOLUS_RENDER_FORMAT (default) - Possible values are hidden, default (with leading zero and U), concise (with U, without leading zero), and minimal (without leading zero and U).

BOLUS_RENDER_FORMAT_SMALL (default) - Possible values are hidden, default (with leading zero and U), concise (with U, without leading zero), and minimal (without leading zero and U).

../../_images/SetupNS43.png

Split View

Some users will need easy access to multiple Nightscout views at the same time. We have a special view for this case, accessed on /split path on your Nightscout URL. The view supports any number of sites between 1 to 8 way split, where the content for the screen can be loaded from multiple Nightscout instances. Note you still need to host separate instances for each Nightscout being monitored including the one that hosts the split view page - these variables only add the ability to load multiple views into one browser page. To set the URLs from which the content is loaded, set:

FRAME_URL_1 - URL where content is loaded, for the first view (increment the number up to 8 to get more views)

FRAME_NAME_1 - Name for the first split view portion of the screen (increment the number to name more views)


For example:

FRAME_URL_1 https://janecgm.myurl.fqd

FRAME_NAME_1 Jane

FRAME_URL_2 https://joecgm.myurl.fqd

FRAME_NAME_2 Joe


To display the split view browse to:

https://myAppName.myurl.fqd/split


8 split view example:

../../_images/SetupNS30.png

Plugins

Plugins are used to extend the way information is displayed, how notifications are sent, alarms are triggered, and more.

If you want the ENABLE’d plugins to show by default on any browser, you should put them in the SHOW_PLUGINS variable.

If you want to specifically disable a plugin (mainly a default plugin) you should place it in the DISABLE variable.

You also can decide to visualize them or not on your Nightscout view with the drawer menu. Authenticate and Save the settings on your browser. Your site variables will not be modified and only default view will be seen on a new browser window.

../../_images/SetupNS09.png

Default Plugins

Below some default plugins: timeago, upbat, direction and delta.

../../_images/SetupNS11.png

Hovering the mouse on (computer) or touching (touch screen) some plugins will give you additional information.

delta (BG Delta)

Calculates and displays the change between the last 2 BG values. Delta shows a * if time difference is more than 5 minutes.

direction (BG Direction)

Displays the trend direction, the arrow change is only based on the difference from the current to the latest measurement.

upbat (Uploader Battery)

Displays the most recent battery status from the uploader phone(s) and bridge. Use these extended setting to adjust behavior:

UPBAT_ENABLE_ALERTS (false) - Set to true to enable uploader battery alarms via Pushover and IFTTT.

UPBAT_WARN (30) - Minimum battery percent to trigger warning.

UPBAT_URGENT (20) - Minimum battery percent to trigger urgent alarm.


timeago (Time Ago)

Displays the time since last CGM entry. Use these extended setting to adjust behavior:

TIMEAGO_ENABLE_ALERTS (false) - Set to true to enable stale data alarms via Pushover and IFTTT.

ALARM_TIMEAGO_WARN (on) - possible values on or off

ALARM_TIMEAGO_WARN_MINS (15) - minutes since the last reading to trigger a warning

ALARM_TIMEAGO_URGENT (on) - possible values on or off

ALARM_TIMEAGO_URGENT_MINS (30) - minutes since the last reading to trigger a urgent alarm


devicestatus (Device Status)

Used by upbat and other plugins to display device status info. Supports the DEVICESTATUS_ADVANCED="true" extended setting to send all device statuses to the client for retrospective use and to support other plugins.

Example: upbat information using devicestatus.

../../_images/SetupNS20.png

errorcodes (CGM Error Codes)

Generates alarms for CGM codes 9 (hourglass) and 10 (???).

Use extended settings to adjust what errorcodes trigger notifications and alarms:

  • ERRORCODES_INFO (1 2 3 4 5 6 7 8) - By default the needs calibration (blood drop) and other codes below 9 generate an info level notification, set to a space separate list of number or off to disable

  • ERRORCODES_WARN (off) - By default there are no warning configured, set to a space separate list of numbers or off to disable

  • ERRORCODES_URGENT (9 10) - By default the hourglass and ??? generate an urgent alarm, set to a space separate list of numbers or off to disable


ar2 (AR2 Forecasting)

Generates alarms based on forecasted values.

  • Enabled by default if no thresholds are set OR ALARM_TYPES includes predict.

    • You can permanently disable AR2 setting the SHOW_FORECAST variable to false (or removing ar2 if you use it for openaps or loop).

  • AR2 forecasting display can be enabled/disabled from ...

  • Use extended settings to adjust AR2 behavior:

    • AR2_CONE_FACTOR (2) - to adjust size of cone, use 0 for a single line.

../../_images/SetupNS10.png

simplealarms (Simple BG Alarms)

  • Uses BG_HIGH, BG_TARGET_TOP, BG_TARGET_BOTTOM, BG_LOW thresholds to generate alarms.

    Simple alarms are enabled by default if one of the BG_HIGH, BG_TARGET_TOP, BG_TARGET_BOTTOM, BG_LOW thresholds is set or ALARM_TYPES includes simple.

    You’ll find the plugin in the drawer menu. You can change thresholds in Profile editor.

    You can click the loudspeaker icon to test the alarms volume or to snooze an active alarm. If you want to use sound alarms, you should click the icon to enable playback at least once after opening your Nightscout page in order to allow the browser to play it.

../../_images/SetupNS12.png

profile (Treatment Profile)

Add a link in the drawer menu to Profile Editor and allows to enter treatment profile settings. Also uses the extended setting:

  • PROFILE_HISTORY (off) - possible values on or off. Enable/disable NS ability to keep history of your profiles (still experimental)

  • PROFILE_MULTIPLE (off) - possible values on or off. Enable/disable NS ability to handle and switch between multiple treatment profiles

More variables of your profile will be used by Nightscout plugins like treatments, see below or here.

../../_images/SetupNS13.png

dbsize (Database Size)

Show size of Nightscout Database, as a percentage of declared available space or in MiB.

../../_images/SetupNS15.png

Many deployments of Nightscout use free tier of MongoDB Atlas on Heroku, which is limited in size to 512MiB. After some time, as volume of stored data grows, it may happen that this limit is reached and system is unable to store new data. This plugin provides pill that indicates size of Database and shows (when configured) alarms regarding reaching space limit.

IMPORTANT

This plugin can only check how much space database already takes, but cannot infer max size available on server for it. To have correct alarms and realistic percentage, DBSIZE_MAX need to be properly set - according to your own mongoDB hosting configuration.

NOTE: This plugin rely on db.stats() for reporting logical size of database, which may be different than physical size of database on server. It may work for free tier of MongoDB on Atlas, since it calculate quota according to logical size too, but may fail for other hostings or self-hosted database with quota based on physical size.

NOTE: MongoDB Atlas quota is for all databases in cluster, while each instance will get only size of its own database only. It is ok when you only have one database in cluster (most common scenario) but will not work for multiple parallel databases. In such case, spliting known quota equally beetween databases and setting DBSIZE_MAX to that fraction may help, but wont be precise.

All sizes are expressed as integers, in Mebibytes 1 MiB == 1024 KiB == 1024*1024 B

Extended settings available:

  • DBSIZE_MAX (496) - Maximal allowed size of database on your mongoDB server, in MiB. You need to adjust that value to match your database hosting limits - default value is for standard Heroku mongoDB free tier.

  • DBSIZE_WARN_PERCENTAGE (60) - Threshold to show first warning about database size. When database reach this percentage of DBSIZE_MAX size - pill will show size in yellow.

  • DBSIZE_URGENT_PERCENTAGE (75) - Threshold to show urgent warning about database size. When database reach this percentage of DBSIZE_MAX size, it is urgent to do backup and clean up old data. At this percentage info pill turns red.

  • DBSIZE_ENABLE_ALERTS (false) - Set to true to enable notifications about database size.

  • DBSIZE_IN_MIB (false) - Set to true to display size of database in MiB-s instead of default percentage.



Advanced Plugins:

careportal (Careportal)

An optional form to enter treatments.

Care Portal is an important plugin that gives access to the Log a treatment interface. Unlock it entering your API secret with the lock icon top right, then use the + icon to log a treatment. More information here.

../../_images/SetupNS14.png

boluscalc (Bolus Wizard)

Bolus Wizard plugin gives access to the Bolus Wizard interface. You can access it with the calculator icon top right.

../../_images/SetupNS16.png

food (Custom Foods)

Custom Foods enabled by the variable food allows to to customize your food database and adds a Food Editor entry in the menu.

../../_images/SetupNS17.png

rawbg (Raw BG)

Calculates BG using sensor and calibration records from and displays an alternate BG values and noise levels. Defaults that can be adjusted with extended setting. Raw BG will only display if your sensor provides this data, your bridge device transfers it and your uploader sends it to Nightscout.

  • DISPLAY(unsmoothed) - Allows the user to control which algorithm is used to calculate the displayed raw BG values using the most recent calibration record.

    • unfiltered - Raw BG is calculated by applying the calibration to the glucose record’s unfiltered value.

    • filtered - Raw BG is calculated by applying the calibration to the glucose record’s filtered value. The glucose record’s filtered values are generally produced by the CGM by a running average of the unfiltered values to produce a smoothed value when the sensor noise is high.

    • unsmoothed - Raw BG is calculated by first finding the ratio of the calculated filtered value (the same value calculated by the filtered setting) to the reported glucose value. The displayed raw BG value is calculated by dividing the calculated unfiltered value (the same value calculated by the unfiltered setting) by the ratio. The effect is to exaggerate changes in trend direction so the trend changes are more noticeable to the user. This is the legacy raw BG calculation algorithm.

../../_images/SetupNS21.png

iob (Insulin-on-Board) - cob (Carbs-on-Board)

../../_images/SetupNS18.png

iob (Insulin-on-Board)

Adds the IOB pill visualization in the client and calculates values that used by other plugins. Uses treatments with insulin doses and the dia and sens fields from the treatment profile.

cob (Carbs-on-Board)

Adds the COB pill visualization in the client and calculates values that used by other plugins. Uses treatments with carb doses and the carbs_hr, carbratio, and sens fields from the treatment profile.

When you enter the information with the Care Portal or Nightscout receives if from the uploader, you can see remaining insulin on board and carbs.


bwp (Bolus Wizard Preview)

This plugin in intended for the purpose of automatically snoozing alarms when the CGM indicates high blood sugar but there is also insulin on board (IOB) and secondly, alerting to user that it might be beneficial to measure the blood sugar using a glucometer and dosing insulin as calculated by the pump or instructed by trained medicare professionals. The values provided by the plugin are provided as a reference based on CGM data and insulin sensitivity you have configured, and are not intended to be used as a reference for bolus calculation. The plugin calculates the bolus amount when above your target, generates alarms when you should consider checking and bolusing, and snoozes alarms when there is enough IOB to cover a high BG. Uses the results of the iob plugin and sens, target_high, and target_low fields from the treatment profile. Defaults that can be adjusted with extended settings

  • BWP_WARN (0.50) - If BWP is > BWP_WARN a warning alarm will be triggered.

  • BWP_URGENT (1.00) - If BWP is > BWP_URGENT an urgent alarm will be triggered.

  • BWP_SNOOZE_MINS (10) - minutes to snooze when there is enough IOB to cover a high BG.

  • BWP_SNOOZE - (0.10) If BG is higher then the target_high and BWP < BWP_SNOOZE alarms will be snoozed for BWP_SNOOZE_MINS.

../../_images/SetupNS19.png

Age pills

../../_images/SetupNS23.png

cage (Cannula Age)

Calculates the number of hours since the last Site Change treatment that was recorded.

  • CAGE_ENABLE_ALERTS (false) - Set to true to enable notifications to remind you of upcoming cannula change.

  • CAGE_INFO (44) - If time since last Site Change matches CAGE_INFO, user will be warned of upcoming cannula change

  • CAGE_WARN (48) - If time since last Site Change matches CAGE_WARN, user will be alarmed to to change the cannula

  • CAGE_URGENT (72) - If time since last Site Change matches CAGE_URGENT, user will be issued a persistent warning of overdue change.

  • CAGE_DISPLAY (hours) - Possible values are hours or days. If days is selected and age of canula is greater than 24h number is displayed in days and hours

sage (Sensor Age)

Calculates the number of days and hours since the last Sensor Start and Sensor Change treatment that was recorded.

  • SAGE_ENABLE_ALERTS (false) - Set to true to enable notifications to remind you of upcoming sensor change.

  • SAGE_INFO (144) - If time since last sensor event matches SAGE_INFO, user will be warned of upcoming sensor change

  • SAGE_WARN (164) - If time since last sensor event matches SAGE_WARN, user will be alarmed to to change/restart the sensor

  • SAGE_URGENT (166) - If time since last sensor event matches SAGE_URGENT, user will be issued a persistent warning of overdue change.

iage (Insulin Age)

Calculates the number of days and hours since the last Insulin Change treatment that was recorded.

  • IAGE_ENABLE_ALERTS (false) - Set to true to enable notifications to remind you of upcoming insulin reservoir change.

  • IAGE_INFO (44) - If time since last Insulin Change matches IAGE_INFO, user will be warned of upcoming insulin reservoir change

  • IAGE_WARN (48) - If time since last Insulin Change matches IAGE_WARN, user will be alarmed to to change the insulin reservoir

  • IAGE_URGENT (72) - If time since last Insulin Change matches IAGE_URGENT, user will be issued a persistent warning of overdue change.

bage (Battery Age)

Calculates the number of days and hours since the last Pump Battery Change treatment that was recorded.

  • BAGE_ENABLE_ALERTS (false) - Set to true to enable notifications to remind you of upcoming pump battery change.

  • BAGE_DISPLAY (days) - Set to hours to display time since last Pump Battery Change in hours only.

  • BAGE_INFO (312) - If time since last Pump Battery Change matches BAGE_INFO hours, user will be warned of upcoming pump battery change (default of 312 hours is 13 days).

  • BAGE_WARN (336) - If time since last Pump Battery Change matches BAGE_WARN hours, user will be alarmed to to change the pump battery (default of 336 hours is 14 days).

  • BAGE_URGENT (360) - If time since last Pump Battery Change matches BAGE_URGENT hours, user will be issued a persistent warning of overdue change (default of 360 hours is 15 days).


treatmentnotify (Treatment Notifications)

Generates notifications when a treatment has been entered and snoozes alarms minutes after a treatment. Default snooze is 10 minutes, and can be set using the TREATMENTNOTIFY_SNOOZE_MINS extended setting.


basal (Basal Profile)

../../_images/SetupNS26.png

Adds the Basal pill visualization to display the basal rate for the current time. Also enables the bwp plugin to calculate correction temp basal suggestions. Uses the basal field from the treatment profile. Also uses the extended settings:

  • BASAL_RENDER (none)

Possible values are none,

default,

../../_images/SetupNS29.png

or icicle (inverted)

../../_images/SetupNS28.png

bridge (Share2Nightscout bridge)

Glucose reading directly from the Dexcom Share service, uses these extended settings (***** mandatory):

  • BRIDGE_USER_NAME - Your username for the Share service. *****

  • BRIDGE_PASSWORD - Your password for the Share service. *****

  • BRIDGE_INTERVAL (150000 2.5 minutes) - The time (in milliseconds) to wait between each update.

  • BRIDGE_MAX_COUNT (1) - The number of records to attempt to fetch per update.

  • BRIDGE_FIRST_FETCH_COUNT (3) - Changes max count during the very first update only.

  • BRIDGE_MAX_FAILURES (3) - How many failures before giving up.

  • BRIDGE_MINUTES (1400) - The time window to search for new data per update (the default value is one day in minutes).

  • BRIDGE_SERVER (US) - Set to US to fetch data from Dexcom servers in the US. Set to (EU) to fetch from non US servers instead. *****

  • OBSCURED (bridge) - Obscure data source when using bridge uploader.

  • OBSCURE_DEVICE_PROVENANCE (dexcom-dont-own-my-body-data) - Self explanatory.


mmconnect (MiniMed Connect bridge)

Warning

This plugin is NOT functional with 7xx pumps do not enable it.

Transfer real-time MiniMed Connect data from the Medtronic CareLink server into Nightscout (read more) (***** mandatory) with the following extended settings:

  • MMCONNECT_USER_NAME - Your user name for CareLink Connect. *****

  • MMCONNECT_PASSWORD - Your password for CareLink Connect. *****

  • MMCONNECT_INTERVAL (60000 1 minute) - Number of milliseconds to wait between requests to the CareLink server.

  • MMCONNECT_MAX_RETRY_DURATION (32) - Maximum number of total seconds to spend retrying failed requests before giving up.

  • MMCONNECT_SGV_LIMIT (24) - Maximum number of recent sensor glucose values to send to Nightscout on each request.

  • MMCONNECT_VERBOSE - Set this to “true” to log CareLink request information to the console.

  • MMCONNECT_STORE_RAW_DATA - Set this to “true” to store raw data returned from CareLink as type: "carelink_raw" database entries (useful for development).

  • MMCONNECT_SERVER - Set this to EU if you’re using the European Medtronic services *****


pump (Pump Monitoring)

../../_images/SetupNS24.png

Generic Pump Monitoring for OpenAPS, MiniMed Connect, RileyLink, t:slim, …

  • Requires DEVICESTATUS_ADVANCED="true" to be set

  • PUMP_ENABLE_ALERTS (false) - Set to true to enable notifications for Pump battery and reservoir.

  • PUMP_WARN_ON_SUSPEND (false) - Set to true to get an alarm when the pump is suspended.

  • PUMP_FIELDS (reservoir battery) - The fields to display by default. Any of the following fields: reservoir, battery, clock, status, and device

  • PUMP_RETRO_FIELDS (reservoir battery clock) - The fields to display in retro mode. Any of the above fields.

  • PUMP_WARN_CLOCK (30) - The number of minutes ago that needs to be exceed before an alert is triggered.

  • PUMP_URGENT_CLOCK (60) - The number of minutes ago that needs to be exceed before an urgent alarm is triggered.

  • PUMP_WARN_RES (10) - The number of units remaining, a warning will be triggered when dropping below this threshold.

  • PUMP_URGENT_RES (5) - The number of units remaining, an urgent alarm will be triggered when dropping below this threshold.

  • PUMP_WARN_BATT_P (30) - The % of the pump battery remaining, a warning will be triggered when dropping below this threshold.

  • PUMP_URGENT_BATT_P (20) - The % of the pump battery remaining, an urgent alarm will be triggered when dropping below this threshold.

  • PUMP_WARN_BATT_V (1.35) - The voltage (if percent isn’t available) of the pump battery, a warning will be triggered when dropping below this threshold.

  • PUMP_URGENT_BATT_V (1.30) - The voltage (if percent isn’t available) of the pump battery, an urgent alarm will be triggered when dropping below this threshold.



openaps (OpenAPS)

../../_images/SetupNS36.png

Integrated OpenAPS loop monitoring, uses these extended setting:

  • Requires DEVICESTATUS_ADVANCED="true" to be set

  • OPENAPS_ENABLE_ALERTS (false) - Set to true to enable notifications when OpenAPS isn’t looping. If OpenAPS is going to offline for a period of time, you can add an OpenAPS Offline event for the expected duration from Careportal to avoid getting alerts.

  • OPENAPS_WARN (30) - The number of minutes since the last loop that needs to be exceed before an alert is triggered

  • OPENAPS_URGENT (60) - The number of minutes since the last loop that needs to be exceed before an urgent alarm is triggered

  • OPENAPS_FIELDS (status-symbol status-label iob meal-assist rssi) - The fields to display by default. Any of the following fields: status-symbol, status-label, iob, meal-assist, freq, and rssi

  • OPENAPS_RETRO_FIELDS (status-symbol status-label iob meal-assist rssi) - The fields to display in retro mode. Any of the above fields.

  • OPENAPS_PRED_IOB_COLOR (#1e88e5) - The color to use for IOB prediction lines. Colors can be in #RRGGBB format, but other CSS color units may be used as well.

  • OPENAPS_PRED_COB_COLOR (#FB8C00) - The color to use for COB prediction lines. Same format as above.

  • OPENAPS_PRED_ACOB_COLOR (#FB8C00) - The color to use for ACOB prediction lines. Same format as above.

  • OPENAPS_PRED_ZT_COLOR (#00d2d2) - The color to use for ZT prediction lines. Same format as above.

  • OPENAPS_PRED_UAM_COLOR (#c9bd60) - The color to use for UAM prediction lines. Same format as above.

  • OPENAPS_COLOR_PREDICTION_LINES (true) - Enables / disables the colored lines vs the classic purple color.

Also see Pushover and IFTTT Maker.



loop (Loop)

../../_images/SetupNS25.png

iOS Loop app monitoring, uses these extended settings:

  • Requires DEVICESTATUS_ADVANCED="true" to be set

  • LOOP_ENABLE_ALERTS (false) - Set to true to enable notifications when Loop isn’t looping.

  • LOOP_WARN (30) - The number of minutes since the last loop that needs to be exceeded before an alert is triggered

  • LOOP_URGENT (60) - The number of minutes since the last loop that needs to be exceeded before an urgent alarm is triggered

  • Add loop to SHOW_FORECAST to show forecasted BG.

For remote overrides, the following extended settings must be configured:

  • LOOP_APNS_KEY - Apple Push Notifications service (APNs) Key, created in the Apple Developer website.

  • LOOP_APNS_KEY_ID - The Key ID for the above key.

  • LOOP_DEVELOPER_TEAM_ID - Your Apple developer team ID.

  • LOOP_PUSH_SERVER_ENVIRONMENT - (optional) Set this to production if you are using a provisioning profile that specifies production aps-environment, such as when distributing builds via TestFlight.


override (Override Mode)

Additional monitoring for DIY automated insulin delivery systems to display real-time overrides such as Eating Soon or Exercise Mode:

  • Requires DEVICESTATUS_ADVANCED="true" to be set


xdripjs (xDrip-js)

Integrated xDrip-js monitoring, uses these extended settings:

  • Requires DEVICESTATUS_ADVANCED="true" to be set

  • XDRIPJS_ENABLE_ALERTS (false) - Set to true to enable notifications when CGM state is not OK or battery voltages fall below threshold.

  • XDRIPJS_STATE_NOTIFY_INTRVL (0.5) - Set to number of hours between CGM state notifications

  • XDRIPJS_WARN_BAT_V (300) - The voltage of either transmitter battery, a warning will be triggered when dropping below this threshold.


alexa (Amazon Alexa)

Integration with Amazon Alexa, detailed setup instructions


googlehome (Google Home/DialogFlow)

Integration with Google Home (via DialogFlow), detailed setup instructions


speech (Speech)

Speech synthesis plugin. When enabled, speaks out the blood glucose values, IOB and alarms. Note you have to set the LANGUAGE setting on the server to get all translated alarms.


cors (CORS)

Enabled CORS so other websites can make request to your Nightscout site, uses these extended settings:

  • CORS_ALLOW_ORIGIN (*) - The list of sites that are allow to make requests



Extended Settings

Some plugins support additional configuration using extra environment variables. These are prefixed with the name of the plugin and a _. For example setting MYPLUGIN_EXAMPLE_VALUE=1234 would make extendedSettings.exampleValue available to the MYPLUGIN plugin.

Plugins only have access to their own extended settings, all the extended settings of client plugins will be sent to the browser.

  • DEVICESTATUS_ADVANCED (true) - Defaults to true. Users who only have a single device uploading data to Nightscout can set this to false to reduce the data use of the site.

  • DEVICESTATUS_DAYS (1) - Defaults to 1, can optionally be set to 2. Users can use this to show 48 hours of device status data for in retro mode, rather than the default 24 hours. Setting this value to 2 will roughly double the bandwidth usage of nightscout, so users with a data cap may not want to update this setting.


Pushover

In addition to the normal web based alarms, there is also support for Pushover based alarms and notifications.

To get started install the Pushover application on your iOS or Android device and create an account.

Using that account login to Pushover, in the top left you’ll see your User Key, you’ll need this plus an application API Token/Key to complete this setup.

You’ll need to Create a Pushover Application. You only need to set the Application name, you can ignore all the other settings, but setting an Icon is a nice touch. Maybe you’d like to use this one?

Pushover is configured using the following Environment Variables:

* `ENABLE` - `pushover` should be added to the list of plugin, for example: `ENABLE="pushover"`.
* `PUSHOVER_API_TOKEN` - Used to enable pushover notifications, this token is specific to the application you create from in [Pushover](https://pushover.net/), ***[additional pushover information](#pushover)*** below.
* `PUSHOVER_USER_KEY` - Your Pushover user key, can be found in the top left of the [Pushover](https://pushover.net/) site, this can also be a pushover delivery group key to send to a group rather than just a single user.  This also supports a space delimited list of keys.  To disable `INFO` level pushes set this to `off`.
* `PUSHOVER_ALARM_KEY` - An optional Pushover user/group key, will be used for system wide alarms (level > `WARN`).  If not defined this will fallback to `PUSHOVER_USER_KEY`.  A possible use for this is sending important messages and alarms to a CWD that you don't want to send all notification too.  This also support a space delimited list of keys.  To disable Alarm pushes set this to `off`.
* `PUSHOVER_ANNOUNCEMENT_KEY` - An optional Pushover user/group key, will be used for system wide user generated announcements.  If not defined this will fallback to `PUSHOVER_USER_KEY` or `PUSHOVER_ALARM_KEY`.  This also support a space delimited list of keys. To disable Announcement pushes set this to `off`.
* `BASE_URL` - Used for pushover callbacks, usually the URL of your Nightscout site, use https when possible.
* `API_SECRET` - Used for signing the pushover callback request for acknowledgments.

If you never want to get info level notifications (treatments) use `PUSHOVER_USER_KEY="off"`
If you never want to get an alarm via pushover use `PUSHOVER_ALARM_KEY="off"`
If you never want to get an announcement via pushover use `PUSHOVER_ANNOUNCEMENT_KEY="off"`

If only `PUSHOVER_USER_KEY` is set it will be used for all info notifications, alarms, and announcements

For testing/development try [localtunnel](http://localtunnel.me/).

IFTTT Maker

In addition to the normal web based alarms, and pushover, there is also integration for IFTTT Webhooks.

With Maker you are able to integrate with all the other IFTTT Services. For example you can send a tweet when there is an alarm, change the color of hue light, send an email, send and sms, and so much more.

  1. Setup IFTTT account: login or create an account

  2. Follow the Detailed IFTTT setup Instructions

  3. Configure Nightscout by setting these webpage environment variables:

  • ENABLE - maker should be added to the list of plugins, for example: ENABLE="maker".

  • MAKER_KEY - Set this to your secret key (see [Detailed Instructions ) MAKER_KEY="abcMyExampleabc123defjt1DeNSiftttmak-XQb69p" This also supports a space delimited list of keys.

  • MAKER_ANNOUNCEMENT_KEY - An optional Maker key, will be used for system wide user generated announcements. If not defined this will fallback to MAKER_KEY. A possible use for this is sending important messages and alarms to another device that you don’t want to send all notification too. This also support a space delimited list of keys.

Plugins can create custom events, but all events sent to IFTTT webhooks will be prefixed with ns-. The core events are:

  • ns-event - This event is sent to the maker service for all alarms and notifications. This is good catch all event for general logging.

  • ns-allclear - This event is sent to the maker service when an alarm has been acknowledged or when the server starts up without triggering any alarms. For example, you could use this event to turn a light to green.

  • ns-info - Plugins that generate notifications at the info level will cause this event to also be triggered. It will be sent in addition to ns-event.

  • ns-warning - Alarms at the warning level with cause this event to also be triggered. It will be sent in addition to ns-event.

  • ns-urgent - Alarms at the urgent level with cause this event to also be triggered. It will be sent in addition to ns-event.

  • see the full list of events


Treatment Profile

Some of the plugins make use of a treatment profile that can be edited using the Profile Editor.

Treatment Profile Fields:

  • timezone (Time Zone) - time zone local to the patient. Should be set.

  • units (Profile Units) - blood glucose units used in the profile, either “mg/dl” or “mmol”

  • dia (Insulin duration) - value should be the duration of insulin action to use in calculating how much insulin is left active. Defaults to 3 hours.

  • carbs_hr (Carbs per Hour) - The number of carbs that are processed per hour, for more information see #DIYPS.

  • carbratio (Carb Ratio) - grams per unit of insulin.

  • sens (Insulin sensitivity) How much one unit of insulin will normally lower blood glucose.

  • basal The basal rate set on the pump.

  • target_high - Upper target for correction boluses.

  • target_low - Lower target for correction boluses.