From e678a270543e5bd766919cbed3e4550348b6ee64 Mon Sep 17 00:00:00 2001 From: Stephen Brown II Date: Tue, 4 Feb 2020 16:33:15 -0700 Subject: [PATCH 1/3] Convert HTML tables to Markdown tables Using python-markdown syntax via sphinx-markdown-tables extension --- .gitignore | 1 + Makefile | 2 +- docs/conf.py | 1 + .../bluetooth-tethering-edison.md | 55 +++--- .../offline-looping-and-monitoring.md | 127 +++--------- .../switching-between-DIY-systems.md | 30 +-- .../nightscout-setup.md | 180 ++++-------------- requirements.txt | 1 + 8 files changed, 95 insertions(+), 302 deletions(-) diff --git a/.gitignore b/.gitignore index 95a36d069..4a31df57b 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,4 @@ _book *.mobi *.pdf .*.sw[op] +build/ diff --git a/Makefile b/Makefile index cd56958a6..17f835c27 100644 --- a/Makefile +++ b/Makefile @@ -220,6 +220,6 @@ pseudoxml: .PHONY: serve serve: @echo - make clean build html + make clean html (cd $(BUILDDIR)/html/; python -m SimpleHTTPServer 8000 ) diff --git a/docs/conf.py b/docs/conf.py index a21419c34..e718624c7 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -40,6 +40,7 @@ 'sphinx.ext.ifconfig', 'sphinx.ext.autodoc', 'sphinx.ext.todo', + 'sphinx_markdown_tables', # 'alabaster', ] diff --git a/docs/docs/Customize-Iterate/bluetooth-tethering-edison.md b/docs/docs/Customize-Iterate/bluetooth-tethering-edison.md index 9400ae9bf..8948c6bd4 100644 --- a/docs/docs/Customize-Iterate/bluetooth-tethering-edison.md +++ b/docs/docs/Customize-Iterate/bluetooth-tethering-edison.md @@ -32,35 +32,32 @@ Below is an image that shows how a rig automatically switches from a known wifi Certain phones don't work well using bluetooth tethering with OpenAPS. Various users have experimented, and the list below shows those that have been found to work okay, those that don't and those with variable effectiveness. If you have something that is not on the list, please feel free to add it. - -
CellphoneWorks with Bluetooth Tethering?Issues/Experiences with BTUse with xDrip/xDripAPS and Dexcom G5 -
Google Pixel 3XL with Android 9YesSupports tethering to both Wifi and Cellular network. No issues switching. -
Google Pixel 2 with Android 8YesSupports tethering to both Wifi and Cellular network. No issues switching. -
LG Nexus 5X with Android 7YesSupports tethering to both Wifi and Cellular network. No issues switching.Works well with Dexcom G5 and xDrip. No issues with compatibility. 90%+ capture rate. -
Google Pixel with Android 7YesSupports tethering to both Wifi and Cellular network. No issues switching.Works well with Dexcom G5 and xDrip. No issues with compatibility. 90%+ capture rate. -
Sony Xperia Z5 Compact with Android 7YesWorks with tethering for network access. It regularly disconnects from the rig (which doesn't seem to affect data flow) and roughly every 24-36 hours this results in complete loss of connectivity and requires a full reboot of the rig and the phone. Doesn't work well with phone swapping between Wifi and mobile - causes BT dropouts that require a reboot of the rig.No issues running xDrip/xDripAPS alongside the tethered connection. Achieves 90%+ packet collection from Dexcom G5. -
Xiaomi Redmi 4 with MIUI 8 (Android 6)NoTethering can be set up, but it drops regularly requiring rig reboots. When phone switches between Wifi and cellular signal requires rig to be rebooted.Significant packet drops and data becomes almost unusable. -
Xiaomi Redmi Note 4(X) -Snapdragon SoC version!!!YesTethering works in same time with Blukon(Nightrider) and SW3 connected. Also, read Notes for MIUI below*Excellent coverage. -
Xiaomi Redmi 3 with MIUI 6 (Android 5)YesNo issues seen when tethered to cellular network. Doesn't allow tethering to wifi.Works fine with Dexcom G5 - 90% collection rate. -
Xiaomi Mi A1 with AndroidOne (vanilla Android 8.0)YesOpenAPS bluetooth tethering works fine with Blue Car Autotether.Not tested with Dexcom. -
Samsung Galaxy S6 (Android 7)YesTethering to rig and cellular works okay. No data on swapping between cellular and wifi connections.Use with Dexcom G5 and rig not effective. Significant packet loss. -
Samsung Galaxy JuniorYesPhone tethering switching between wifi and mobile not elegant and causes some issuesDifficulties found when using xDrip with the OpenAPS tethering. Packet loss occurs. -
iPhoneYesUsers have experienced various levels of success with the iPhone bluetooth tethering and when the rig switches between wifi and BTNot Applicable. Experimental version of Loop to do something similar doesn't yet have feedback. -
Acer PhoneNoMany data drops on the bluetooth connection for rig. Recommended to avoid.xDrip compatibility is poor - numerous drops throughout the day. -
Samsumg Galaxy S7 Edge (G935F) Android 7.0YesExcellent BT tether using apps 'Bt AutoTether' and 'BT Tether'xDrip+ with G5 > 95% capture. -
Samsung Galaxy A3 (2016) Android 6YesExcellent BT tether using app 'Blue Car Tethering'xDrip+ with G4, reliable capture using xDrip+ and using normal tether when running with Dexcom in G4-upload mode -
Elephone P9000 Android 7YesSeems to work well, switching on/off BT tehethering as expected. Using 'Blue Car Tethering' with rig selected. Tested with phone screen off, works fine. -
Samsung Galaxy A5 (2017) Android 7.0YesExcellent BT tether, intermitent disconnecting when the area is flooded with other bluetooth devices. Use 'BT AutoTether' app along side to maintain connectionxDrip+ with G5, works really well with G5 transmitter directly, no compatibility issues and 95%+ consistent capture rate. -
Samsung Galaxy S8 Android 7.0YesExcellent BT tether, no need for 3rd party app to keep BT teter alive, can be set in settingsxDrip+ with Libre/RFDuino transmitter, 99%+ capture rate, -
Motorolo Moto Z PlayYesExcellent BT tethering; highly reliable using Blue Car Tethering.Not tested (using Enlite sensor). -
Wiko Wim LiteIntermittentWorks most of the time. Note, several issues with this phone: 1) NSClient has a tendency to crash on this phone and 2) Bluetooth tethering works intermittently with Blue Car Autotether and not at all with BT AutoTether. Note that this phone has a tendency to freeze and reboot on its own, so I think the phone itself is the issue.Not tested (using Enlite sensor). -
Xiaomi Mi Mix 2 with LineageOS 15.1YesExcellent connectivity - has worked almost flawlessly with tethering. Battery life has also been very good.Works brilliantly with xDrip+ and G6 - capture rate typically more than 95%. -
Nokia 2.1 with Android 8.1 Oreo Go EditionYesExcellent bluetooth tethering to cellular network. No noted network drops. Works excellent as an offline option with XDripAPS. Awesome battery life(4000mAH)Works well with Dexcom G5 and xDrip. No issues with compatibility. Generally 95%+ capture rate. -
OnePlus 6 (A6003) with OxygenOS 9.0 YesExcellent connectivity - Tethering has been good and picks up right away. Battery life very good and really fast charge.xDrip+ w/ G5 - capture rates generally better than 98% on current nightlies. -
Samsung S10/S10e with Android PieNot on TMobile NativeBoth the S10 and S10e are fully capable of bluetooth pairing and tethering, but unlike Verizon, T-Mobile deprovisions bluetooth tethering for unknown and inexplicable reasons. On all of their phones as far as we know.Verizon and OEM Unlocked phones may work. - -
+| **Cellphone** | Works with Bluetooth Tethering? | Issues/Experiences with BT | Use with xDrip/xDripAPS and Dexcom G5 | +| ------------- | ------------------------------- | -------------------------- | ------------------------------------- | +| **Google Pixel 3XL with Android 9** | Yes | Supports tethering to both Wifi and Cellular network. No issues switching. | +| **Google Pixel 2 with Android 8** | Yes | Supports tethering to both Wifi and Cellular network. No issues switching. | +| **LG Nexus 5X with Android 7** | Yes | Supports tethering to both Wifi and Cellular network. No issues switching. | Works well with Dexcom G5 and xDrip. No issues with compatibility. 90%+ capture rate. | +| **Google Pixel with Android 7** | Yes | Supports tethering to both Wifi and Cellular network. No issues switching. | Works well with Dexcom G5 and xDrip. No issues with compatibility. 90%+ capture rate. | +| **Sony Xperia Z5 Compact with Android 7** | Yes | Works with tethering for network access. It regularly disconnects from the rig (which doesn't seem to affect data flow) and roughly every 24-36 hours this results in complete loss of connectivity and requires a full reboot of the rig and the phone. Doesn't work well with phone swapping between Wifi and mobile - causes BT dropouts that require a reboot of the rig. | No issues running xDrip/xDripAPS alongside the tethered connection. Achieves 90%+ packet collection from Dexcom G5. | +| **Xiaomi Redmi 4 with MIUI 8 (Android 6)** | No | Tethering can be set up, but it drops regularly requiring rig reboots. When phone switches between Wifi and cellular signal requires rig to be rebooted. | Significant packet drops and data becomes almost unusable. | +| **Xiaomi Redmi Note 4(X) -Snapdragon SoC version!!!** | Yes | Tethering works in same time with Blukon(Nightrider) and SW3 connected. Also, read Notes for MIUI below* | Excellent coverage. | +| **Xiaomi Redmi 3 with MIUI 6 (Android 5)** | Yes | No issues seen when tethered to cellular network. Doesn't allow tethering to wifi. | Works fine with Dexcom G5 - 90% collection rate. | +| **Xiaomi Mi A1 with AndroidOne (vanilla Android 8.0)** | Yes | OpenAPS bluetooth tethering works fine with Blue Car Autotether. | Not tested with Dexcom. | +| **Samsung Galaxy S6 (Android 7)** | Yes | Tethering to rig and cellular works okay. No data on swapping between cellular and wifi connections. | Use with Dexcom G5 and rig not effective. Significant packet loss. | +| **Samsung Galaxy Junior** | Yes | Phone tethering switching between wifi and mobile not elegant and causes some issues | Difficulties found when using xDrip with the OpenAPS tethering. Packet loss occurs. | +| **iPhone** | Yes | Users have experienced various levels of success with the iPhone bluetooth tethering and when the rig switches between wifi and BT | Not Applicable. Experimental version of Loop to do something similar doesn't yet have feedback. | +| **Acer Phone** | No | Many data drops on the bluetooth connection for rig. Recommended to avoid. | xDrip compatibility is poor - numerous drops throughout the day. | +| **Samsumg Galaxy S7 Edge (G935F) Android 7.0** | Yes | Excellent BT tether using apps 'Bt AutoTether' and 'BT Tether' | xDrip+ with G5 > 95% capture. | +| **Samsung Galaxy A3 (2016) Android 6** | Yes | Excellent BT tether using app 'Blue Car Tethering' | xDrip+ with G4, reliable capture using xDrip+ and using normal tether when running with Dexcom in G4-upload mode | +| **Elephone P9000 Android 7** | Yes | Seems to work well, switching on/off BT tethering as expected. Using 'Blue Car Tethering' with rig selected. Tested with phone screen off, works fine. | +| **Samsung Galaxy A5 (2017) Android 7.0** | Yes | Excellent BT tether, intermittent disconnecting when the area is flooded with other bluetooth devices. Use 'BT AutoTether' app along side to maintain connection | xDrip+ with G5, works really well with G5 transmitter directly, no compatibility issues and 95%+ consistent capture rate. | +| **Samsung Galaxy S8 Android 7.0** | Yes | Excellent BT tether, no need for 3rd party app to keep BT tether alive, can be set in settings | xDrip+ with Libre/RFDuino transmitter, 99%+ capture rate, | +| **Motorolo Moto Z Play** | Yes | Excellent BT tethering; highly reliable using Blue Car Tethering. | Not tested (using Enlite sensor). | +| **Wiko Wim Lite** | Intermittent | Works most of the time. Note, several issues with this phone: 1) NSClient has a tendency to crash on this phone and 2) Bluetooth tethering works intermittently with Blue Car Autotether and not at all with BT AutoTether. Note that this phone has a tendency to freeze and reboot on its own, so I think the phone itself is the issue. | Not tested (using Enlite sensor). | +| **Xiaomi Mi Mix 2 with LineageOS 15.1** | Yes | Excellent connectivity - has worked almost flawlessly with tethering. Battery life has also been very good. | Works brilliantly with xDrip+ and G6 - capture rate typically more than 95%. | +| **Nokia 2.1 with Android 8.1 Oreo Go Edition** | Yes | Excellent bluetooth tethering to cellular network. No noted network drops. Works excellent as an offline option with XDripAPS. Awesome battery life(4000mAH) | Works well with Dexcom G5 and xDrip. No issues with compatibility. Generally 95%+ capture rate. | +| **OnePlus 6 (A6003) with OxygenOS 9.0** | Yes | Excellent connectivity - Tethering has been good and picks up right away. Battery life very good and really fast charge. | xDrip+ w/ G5 - capture rates generally better than 98% on current nightlies. | +| **Samsung S10/S10e with Android Pie** | Not on TMobile Native | Both the S10 and S10e are fully capable of bluetooth pairing and tethering, but unlike Verizon, T-Mobile deprovisions bluetooth tethering for unknown and inexplicable reasons. On all of their phones as far as we know. | Verizon and OEM Unlocked phones may work. | ********************************************************************************************** *Notes for MIUI users. MIUI kills processes in background to save battery. To get best results: diff --git a/docs/docs/Customize-Iterate/offline-looping-and-monitoring.md b/docs/docs/Customize-Iterate/offline-looping-and-monitoring.md index 90d97c91a..daf09e885 100644 --- a/docs/docs/Customize-Iterate/offline-looping-and-monitoring.md +++ b/docs/docs/Customize-Iterate/offline-looping-and-monitoring.md @@ -88,110 +88,29 @@ The oref0-setup option for `xdrip-js` installs Logger by default. > NOTE: Lookout, Logger (xdrip-js-logger), and xdrip-js library should be considered a WIP (Work In Progress), i.e., do not use if you cannot watch your BG and loop very carefully, and tolerate issues, failures, idiosynchrosies. Also please plan on contributing either through testing and feedback, updates, documentation, etc. A summary of their features: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FeatureLookoutLogger
Still unfinished, i.e., a work-in-progress?YesYes
Rig continues updating BG and looping while offline using xdripAPS?YesYes
Offline (network) mode supports backfill to Nightscout?YesYes
Offline (away from transmitter times) supports backfill?YesYes
Uses Dexcom official calibration?YesYes
Can use with expired/battery replaced transmitter?YesYes
Can interact with rig-hosted web page? (e.g., for calibration, start/stop sensor)YesNo, can use rig cmd line while offline
Also able to calibrate and start/stop sensor thru receiver?YesYes, for non-expired transmitter/session
Calibrate through Web/Nightscout?Yes (local rig Web UI)Yes
Calibrate through pump-connected meter (e.g., Contour Next Link)?NoYes
Calibrate from command line?YesYes
Linear Squared Regression CalibrationYes, for > 7 day extensionYes
Single Point Linear CalibrationYes, for > 7 day extensionYes
Calculate and send Noise with entriesYesYes
Calculate glucose trendingYesYes
Start Stop SensorYes via UIYes via NS/cmd line
Reset Expired TransmitterYes via UIYes via cmd line
Support mmolYesYes, in NS and for Meter-Pump Calibration
View transmitter battery/resistance levelsYes via NS CGM pillYes
- + +| Feature | Lookout | Logger | +| ------- | ------- | ------ | +| Still unfinished, i.e., a work-in-progress? | Yes | Yes | +| Rig continues updating BG and looping while offline using xdripAPS? | Yes | Yes | +| Offline (network) mode supports backfill to Nightscout? | Yes | Yes | +| Offline (away from transmitter times) supports backfill? | Yes | Yes | +| Uses Dexcom official calibration? | Yes | Yes | +| Can use with expired/battery replaced transmitter? | Yes | Yes | +| Can interact with rig-hosted web page? (e.g., for calibration, start/stop sensor) | Yes | No, can use rig cmd line while offline | +| Also able to calibrate and start/stop sensor thru receiver? | Yes | Yes, for non-expired transmitter/session | +| Calibrate through Web/Nightscout? | Yes (local rig Web UI) | Yes | +| Calibrate through pump-connected meter (e.g., Contour Next Link)? | No | Yes | +| Calibrate from command line? | Yes | Yes | +| Linear Squared Regression Calibration | Yes, for > 7 day extension | Yes | +| Single Point Linear Calibration | Yes, for > 7 day extension | Yes | +| Calculate and send Noise with entries | Yes | Yes | +| Calculate glucose trending | Yes | Yes | +| Start Stop Sensor | Yes via UI | Yes via NS/cmd line | +| Reset Expired Transmitter | Yes via UI | Yes via cmd line | +| Support mmol | Yes | Yes, in NS and for Meter-Pump Calibration | +| View transmitter battery/resistance levels | Yes via NS CGM pill | Yes | + * Lookout and Logger (xdrip-js-logger) are documented separately: * Lookout: [https://github.com/xdrip-js/Lookout/blob/dev/README.md](https://github.com/xdrip-js/Lookout/blob/dev/README.md) * Logger: [https://github.com/xdrip-js/Logger/blob/dev/README.md](https://github.com/xdrip-js/Logger/blob/dev/README.md) diff --git a/docs/docs/Resources/switching-between-DIY-systems.md b/docs/docs/Resources/switching-between-DIY-systems.md index b050764e3..566ad3689 100644 --- a/docs/docs/Resources/switching-between-DIY-systems.md +++ b/docs/docs/Resources/switching-between-DIY-systems.md @@ -16,31 +16,11 @@ If you’re coming to try OpenAPS from a Loop system, there’s going to be some ### Main Hardware Differences: - - - - - - - - - - - - - - - - - - - - - - - - -
Built usingBrains sitCommunications reside
LoopxCode on an Apple computeron your iPhoneon the Rileylink
OpenAPSany computeron the “rig” (can be multiple kinds of rigs)on the rig (usually with a built-in radio stick)
+| System | Built using | Brains sit | Communications reside | +| ------ | ----------- | ---------- | --------------------- | +| Loop | xCode on an Apple computer | on your iPhone | on the Rileylink | +| OpenAPS | any computer | on the "rig" (can be multiple kinds of rigs) | on the rig (usually with a built-in radio stick) | + **Loop** is built using XCode app on an Apple computer. The brains of the system sit on your iPhone. The communications reside in the RileyLink, acting as a communicator between the iPhone and pump. diff --git a/docs/docs/While You Wait For Gear/nightscout-setup.md b/docs/docs/While You Wait For Gear/nightscout-setup.md index 9464509b7..5815de6e1 100644 --- a/docs/docs/While You Wait For Gear/nightscout-setup.md +++ b/docs/docs/While You Wait For Gear/nightscout-setup.md @@ -51,89 +51,33 @@ your data, customized watchfaces with your OpenAPS data, and integration with IF Click here to expand the list of the `Config Variables` you need to enter:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
KEYVALUE
API_SECRETCreate your own API_SECRET. This is like the password to your NS site. Please write it down somewhere safe or commit it to memory, you will be using it in the future. It needs to be at least 12 characters long and should NOT use the `@` or `&` symbols.
AUTH_DEFAULT_ROLESWhen `readable`, anyone can view Nightscout without a token. Setting it to `denied` will require authentication. Setting it to `denied` requires oref 0.5.0-dev.
DISPLAY_UNITSenter either mg/dl or mmol
ENABLEbridge openaps pump iob basal careportal sage cage maker

(Enter all of the words without commas. Just a single space between each word. Make sure autocorrect does not add space between careportal.
**Notice we are not including cob here.**
If you are use Lookout or Logger, add xdrip-js to enable the CGM status pill
If you have other plugins that you would like to enable, please add them here.)
DISABLELeave blank
ALARM_TYPESsimple
BG_HIGHEnter the numeric value of BG you’d like as an urgent high alarm. (Note: For users outside the US, this needs to be set in mgdl. Take your desired mmol number and multiply it by 18).
BG_TARGET_TOPEnter the numeric value of the top of your target BG.(Note: For users outside the US, this needs to be set in mgdl. Take your desired mmol number and multiply it by 18).
BG_TARGET_BOTTOMEnter the numeric value of the bottom of your target BG.(Note: For users outside the US, this needs to be set in mgdl. Take your desired mmol number and multiply it by 18).
BG_LOWEnter the numeric value of the BG you’d like as an urgent low alarm.(Note: For users outside the US, this needs to be set in mgdl. Take your desired mmol number and multiply it by 18).
PUSHOVER linesCan be left blank for now. If you decide to use Pushover later, you can come back and add your info to these lines.
CUSTOM_TITLEThis will be the text displayed in the upper left part of the NS website.
THEMEchange from default to colors
BRIDGE_USER_NAMEEnter your Dexcom Share Account login name. This should be the same account name used in the Share2 or G5 Mobile app.
BRIDGE_PASSWORDEnter your Dexcom Share Account password.
BRIDGE_MAX_COUNTDefault value is 1. Setting this to 7 will update the last 35 minutes of data.
+| KEY | VALUE | +| --- | ----- | +| **API_SECRET** | Create your own API_SECRET. This is like the password to your NS site. Please write it down somewhere safe or commit it to memory, you will be using it in the future. It needs to be at least 12 characters long and should NOT use the `@` or `&` symbols. | +| **AUTH_DEFAULT_ROLES** | When `readable`, anyone can view Nightscout without a token. Setting it to `denied` will require authentication. Setting it to `denied` requires oref 0.5.0-dev. | +| **DISPLAY_UNITS** | Units will be mg/dL by default. If you want mmol/L, enter `mmol` or `mmol/L` here. | +| **ENABLE** | `bridge openaps pump iob basal careportal sage cage maker`

(Enter all of the words without commas. Just a single space between each word. Make sure autocorrect does not add space between `careportal`.
**Notice we are not including `cob` here.**
If you are use Lookout or Logger, add `xdrip-js` to enable the CGM status pill.
If you have other plugins that you would like to enable, please add them here.) | +| **DISABLE** | Leave blank | +| **ALARM_TYPES** | `simple` | +| **BG_HIGH** | Enter the numeric value of BG you'd like as an urgent high alarm.
(Note: For users outside the US, this needs to be set in mg/dL. Take your desired mmol number and multiply it by 18). | +| **BG_TARGET_TOP** | Enter the numeric value of the top of your target BG.
(Note: For users outside the US, this needs to be set in mg/dL. Take your desired mmol number and multiply it by 18). | +| **BG_TARGET_BOTTOM** | Enter the numeric value of the bottom of your target BG.
(Note: For users outside the US, this needs to be set in mg/dL. Take your desired mmol number and multiply it by 18). | +| **BG_LOW** | Enter the numeric value of the BG you’d like as an urgent low alarm.
(Note: For users outside the US, this needs to be set in mg/dL. Take your desired mmol number and multiply it by 18). | +| **PUSHOVER_\*** lines | Can be left blank for now. If you decide to use Pushover later, you can come back and add your info to these lines. | +| **CUSTOM_TITLE** | This will be the text displayed in the upper left part of the NS website. | +| **THEME** | Change from `default` to `colors` | +| **BRIDGE_USER_NAME** | Enter your Dexcom Share Account login name. This should be the same account name used in the Share2 or G5 Mobile app. | +| **BRIDGE_PASSWORD** | Enter your Dexcom Share Account password. | +| **BRIDGE_MAX_COUNT** | Default value is 1. Setting this to 7 will update the last 35 minutes of data. |
**The remaining variables can be left at their default values.**

***************** -**Note:** for BRIDGE_MAX_COUNT: This value sets the number of BG values to pull from Share per update. Each Dexcom BG value represent 5 minutes. Nightscout defaults to BRIDGE_MAX_COUNT=1. If you lose connectivity with your Dexcom transmitter, your Share app will automatically backfill data points when you regain connectivity. Nightscount does not do this and you will have gaps in the data for when you were out of range. More information [here](https://github.com/nightscout/cgm-remote-monitor#bridge-share2nightscout-bridge). +**Note:** for `BRIDGE_MAX_COUNT`: This value sets the number of BG values to pull from Share per update. Each Dexcom BG value represent 5 minutes. Nightscout defaults to `BRIDGE_MAX_COUNT=1`. If you lose connectivity with your Dexcom transmitter, your Share app will automatically backfill data points when you regain connectivity. Nightscount does not do this and you will have gaps in the data for when you were out of range. More information [here](https://github.com/nightscout/cgm-remote-monitor#bridge-share2nightscout-bridge). -You can change the BRIDGE_MAX_COUNT value to pull more samples per query, which will backfill BRIDGE_MAX_COUNT values for you. This change increases your data usage and may affect your Nightscout billing tier. Setting BRIDGE_MAX_COUNT to 7 will update the previous 35 minutes of data and will keep OpenAPS up to date on your current BG trends. If you frequently have larger data gaps and you use autotune, you may consider increasing this number more to backfill data more aggressively. +You can change the `BRIDGE_MAX_COUNT` value to pull more samples per query, which will backfill BRIDGE_MAX_COUNT values for you. This change increases your data usage and may affect your Nightscout billing tier. Setting BRIDGE_MAX_COUNT to 7 will update the previous 35 minutes of data and will keep OpenAPS up to date on your current BG trends. If you frequently have larger data gaps and you use autotune, you may consider increasing this number more to backfill data more aggressively. ***************** * Click the purple `Deploy` button at the bottom of screen. @@ -160,72 +104,22 @@ You do not have to enter all the information in the profile if you are using Ope ![Add vars](../Images/nightscout/add_vars.jpg) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
KEYVALUE
DEVICESTATUS_ADVANCEDtrue
PUMP_FIELDSbattery reservoir clock status
PUMP_RETRO_FIELDSbattery reservoir clock status
SHOW_FORECASTopenaps
SHOW_PLUGINSopenaps pump iob sage cage careportal
PUMP_ENABLE_ALERTStrue
PUMP_URGENT_BATT_V1.3

(This is the pump battery voltage that will trigger a red, urgent alert in NS.)
PUMP_URGENT_RES10

(This is the reservoir volume that will trigger a red, urgent alert in NS.)
PUMP_URGENT_CLOCK30
OPENAPS_ENABLE_ALERTStrue
OPENAPS_FIELDSstatus-symbol status-label iob meal-assist rssi
OPENAPS_RETRO_FIELDSstatus-symbol status-label iob meal-assist rssi
OPENAPS_WARN20

(This is the minutes since OpenAPS last successfully looped. This will be a yellow alert in NS.)
OPENAPS_URGENT60

(Same as the alert above, but will be red in color and have a shorter snooze option.)
+| KEY | VALUE | +| --- | ----- | +| **DEVICESTATUS_ADVANCED** | `true` | +| **SHOW_FORECAST** | `openaps` | +| **SHOW_PLUGINS** | `openaps pump iob sage cage careportal` | +| **PUMP_ENABLE_ALERTS** | `true` | +| **PUMP_FIELDS** | `battery reservoir clock status` | +| **PUMP_RETRO_FIELDS** | `battery reservoir clock status` | +| **PUMP_URGENT_BATT_V** | `1.3`

(This is the pump battery voltage that will trigger a red, urgent alert in NS.) | +| **PUMP_URGENT_CLOCK** | `30` | +| **PUMP_URGENT_RES** | `10`

(This is the reservoir volume that will trigger a red, urgent alert in NS.) | +| **OPENAPS_ENABLE_ALERTS** | `true` | +| **OPENAPS_FIELDS** | `status-symbol status-label iob meal-assist rssi` | +| **OPENAPS_RETRO_FIELDS** | `status-symbol status-label iob meal-assist rssi` | +| **OPENAPS_WARN** | `20`

(This is the minutes since OpenAPS last successfully looped. This will be a yellow alert in NS.) | +| **OPENAPS_URGENT** | `60`

(Same as the alert above, but will be red in color and have a shorter snooze option.) | If you are using the Nightscout Bridge to bring in CGM data from Dexcom servers (G4 Share2 app or G5 Mobile app) and are outside the US, you will need to add a setting for `BRIDGE_SERVER` and set the value to `EU`. @@ -245,7 +139,7 @@ Your NIGHTSCOUT site is now all set-up. Congrats! ## Nightscout Migrations -### Switching from API_SECRET to token based authentication for your rig +### Switching from `API_SECRET` to token based authentication for your rig You can secure your Nightscout and CGM data with [token based authentication](http://www.nightscout.info/wiki/welcome/website-features/0-9-features/authentication-roles). This requires Nightscout 0.9 (Grilled Cheese) and oref0 0.5.0 or later. diff --git a/requirements.txt b/requirements.txt index 96cb917bd..0c9b4cd3e 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,5 @@ recommonmark==0.4.0 sphinx==1.5.6 +sphinx-markdown-tables==0.0.12 git+git://github.com/bewest/decoding-carelink.git@dev openaps From f46aa4fc736ccce4faef64718d4b584b2ac8596d Mon Sep 17 00:00:00 2001 From: Stephen Brown II Date: Tue, 4 Feb 2020 17:06:26 -0700 Subject: [PATCH 2/3] Fix RPi pinout table --- docs/docs/Gear Up/edison.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/docs/Gear Up/edison.md b/docs/docs/Gear Up/edison.md index d1bf3ff9e..c27013675 100644 --- a/docs/docs/Gear Up/edison.md +++ b/docs/docs/Gear Up/edison.md @@ -106,11 +106,11 @@ Solder it to the board. It's the hole near the "o" from Radio. Make sure to not This is your connection scheme for the RPi to RFM69HCW. Stick the RFM69HCW on a bread board, and connect: -Board | Connect | Connect | Connect | Connect | Connect | Connect | Connect | Connect -------|------|------|------|------|------|------|------|------ -RPi | 3.3V | GND | MOSI | MISO | SCLK | | CE1_N || -RPi PIN | 17 | 25 | 19 | 21 | 23 | 15 | 26 | 22 -RFM69HCW | VIN or 3.3V | GND | MOSI | MISO | SCK or CLK | G0 or DIO0 | CS or NSS | RST or RESET +| Board | Connect | Connect | Connect | Connect | Connect | Connect | Connect | Connect | +| ----- | ------- | ------- | ------- | ------- | ------- | ------- | ------- | ------- | +| RPi | 3.3V | GND | MOSI | MISO | SCLK | | CE1_N | | +| RPi PIN | 17 | 25 | 19 | 21 | 23 | 15 | 26 | 22 | +| RFM69HCW | VIN or 3.3V | GND | MOSI | MISO | SCK or CLK | G0 or DIO0 | CS or NSS | RST or RESET | ![Picture of RPI0WH with FM69HCW connection diagram](../Images/build-your-rig/rpii2RFM69HCW.JPG) From c56a0981c7b7f614e3e981a19d190d1931f5399c Mon Sep 17 00:00:00 2001 From: Stephen Brown II Date: Wed, 5 Feb 2020 09:55:04 -0700 Subject: [PATCH 3/3] Fix example safety caps table --- .../example-max-safety-chart.md | 12 ------------ .../examples_safety_caps_in_play.png | Bin 56928 -> 0 bytes .../While You Wait For Gear/nightscout-setup.md | 6 +++--- .../preferences-and-safety-settings.md | 10 +++++++++- 4 files changed, 12 insertions(+), 16 deletions(-) delete mode 100644 docs/docs/While You Wait For Gear/example-max-safety-chart.md delete mode 100644 docs/docs/While You Wait For Gear/examples_safety_caps_in_play.png diff --git a/docs/docs/While You Wait For Gear/example-max-safety-chart.md b/docs/docs/While You Wait For Gear/example-max-safety-chart.md deleted file mode 100644 index 3e6e92150..000000000 --- a/docs/docs/While You Wait For Gear/example-max-safety-chart.md +++ /dev/null @@ -1,12 +0,0 @@ -(This chart is what the image in the preferences page is. This renders in MarkDown but not ReadTheDocs, so leaving a copy here in case we want to modify in future. ) - - ->| | Example 1 | Example 2 | Example 3 | Example 4 | ->|------------------------------------------------------------|---------------|--------------|--------------|--------------| ->| user's max basal safety setting (in pump) | 2 .0 | 2.0 | 3.0 | 2.5 | ->|`max_daily_safety_multiplier` | 3 | 3 | 3 | 3 | ->|`current_basal_safety_multiplier` | 4 | 4 | 4 | 4 | ->| user's current basal rate | 1.0 | 0.4 | 1.2 | 0.7 | ->|user's highest programmed basal rate | 1.5 | 1.0 | 1.2 | 0.8 | ->|OpenAPS recommended temp basal rate | 3.0 | 1.8 | 2.4 | 2.6 | ->|Actual temp basal rate allowed | 2.0 | 1.6 | 2.4 | 2.4 | diff --git a/docs/docs/While You Wait For Gear/examples_safety_caps_in_play.png b/docs/docs/While You Wait For Gear/examples_safety_caps_in_play.png deleted file mode 100644 index 2d9f5902c84885456edf91011160cf1a8d6de11c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56928 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 Fe*jk1Mb-cS diff --git a/docs/docs/While You Wait For Gear/nightscout-setup.md b/docs/docs/While You Wait For Gear/nightscout-setup.md index 5815de6e1..aa46fccfb 100644 --- a/docs/docs/While You Wait For Gear/nightscout-setup.md +++ b/docs/docs/While You Wait For Gear/nightscout-setup.md @@ -75,9 +75,9 @@ your data, customized watchfaces with your OpenAPS data, and integration with IF **The remaining variables can be left at their default values.**

***************** -**Note:** for `BRIDGE_MAX_COUNT`: This value sets the number of BG values to pull from Share per update. Each Dexcom BG value represent 5 minutes. Nightscout defaults to `BRIDGE_MAX_COUNT=1`. If you lose connectivity with your Dexcom transmitter, your Share app will automatically backfill data points when you regain connectivity. Nightscount does not do this and you will have gaps in the data for when you were out of range. More information [here](https://github.com/nightscout/cgm-remote-monitor#bridge-share2nightscout-bridge). +**Note:** for BRIDGE_MAX_COUNT: This value sets the number of BG values to pull from Share per update. Each Dexcom BG value represent 5 minutes. Nightscout defaults to BRIDGE_MAX_COUNT=1. If you lose connectivity with your Dexcom transmitter, your Share app will automatically backfill data points when you regain connectivity. Nightscount does not do this and you will have gaps in the data for when you were out of range. More information [here](https://github.com/nightscout/cgm-remote-monitor#bridge-share2nightscout-bridge). -You can change the `BRIDGE_MAX_COUNT` value to pull more samples per query, which will backfill BRIDGE_MAX_COUNT values for you. This change increases your data usage and may affect your Nightscout billing tier. Setting BRIDGE_MAX_COUNT to 7 will update the previous 35 minutes of data and will keep OpenAPS up to date on your current BG trends. If you frequently have larger data gaps and you use autotune, you may consider increasing this number more to backfill data more aggressively. +You can change the BRIDGE_MAX_COUNT value to pull more samples per query, which will backfill BRIDGE_MAX_COUNT values for you. This change increases your data usage and may affect your Nightscout billing tier. Setting BRIDGE_MAX_COUNT to 7 will update the previous 35 minutes of data and will keep OpenAPS up to date on your current BG trends. If you frequently have larger data gaps and you use autotune, you may consider increasing this number more to backfill data more aggressively. ***************** * Click the purple `Deploy` button at the bottom of screen. @@ -139,7 +139,7 @@ Your NIGHTSCOUT site is now all set-up. Congrats! ## Nightscout Migrations -### Switching from `API_SECRET` to token based authentication for your rig +### Switching from API_SECRET to token based authentication for your rig You can secure your Nightscout and CGM data with [token based authentication](http://www.nightscout.info/wiki/welcome/website-features/0-9-features/authentication-roles). This requires Nightscout 0.9 (Grilled Cheese) and oref0 0.5.0 or later. diff --git a/docs/docs/While You Wait For Gear/preferences-and-safety-settings.md b/docs/docs/While You Wait For Gear/preferences-and-safety-settings.md index 5fcbfc9cd..afd67ef28 100644 --- a/docs/docs/While You Wait For Gear/preferences-and-safety-settings.md +++ b/docs/docs/While You Wait For Gear/preferences-and-safety-settings.md @@ -138,7 +138,15 @@ You can also view this message in the Nightscout OpenAPS pill (which pops up a d #### A few examples: -![Example safety cap image - see raw file in the same folder of docs if needs editing](examples_safety_caps_in_play.png) +| | Example 1 | Example 2 | Example 3 | Example 4 | +| --- | --------- | --------- | --------- | --------- | +| user's max basal safety setting (in pump) | 2.0 | 2.0 | 3.0 | 2.5 | +| `max_daily_safety_multiplier` | 3 | 3 | 3 | 3 | +| `current_basal_safety_multiplier` | 4 | 4 | 4 | 4 | +| user's current basal rate | 1.0 | 0.4 | 1.2 | 0.7 | +| user's highest programmed basal rate | 1.5 | 1.0 | 1.2 | 0.8 | +| OpenAPS recommended temp basal rate | 3.0 | 1.8 | 2.4 | 2.6 | +| Actual temp basal rate allowed | 2.0 | 1.6 | 2.4 | 2.4 | * In **Example 1**, the user's max basal safety setting is the constraining limit on the OpenAPS recommended temp basal rate. * In **Example 2**, 4x the user's current basal rate is the constraining limit on the OpenAPS recommended temp basal rate.