Git Product home page Git Product logo

docs's Introduction

openaps utility belt

These are the core utilities needed to develop a self-built open source artificial pancreas.

This is part of a series of tools to support a self-driven DIY implementation based on the OpenAPS reference design. The tools may be categorized as monitor (collecting data about environment, and operational status of devices and/or aggregating as much data as is relevant into one place), predict (make predictions about what should happen next), or control (enacting changes, and feeding more data back into the monitor).

By proceeding using these tools or any piece within, you agree to the copyright (see LICENSE.txt for more information) and release any contributors from liability.

Check out the OpenAPS documentation to help get you started.

Note: This is intended to be a set of tools to support a self-driven DIY implementation and any person choosing to use these tools is solely responsible for testing and implement these tools independently or together as a system. The DIY part of OpenAPS is important. While formal training or experience as an engineer or a developer is not required, what is required is a growth mindset to learn what are essentially "building blocks" to implement an OpenAPS instance. This is not a "set and forget" system; it requires diligent and consistent testing and monitoring to ensure each piece of the system is monitoring, predicting, and performing as desired. The performance and quality of your system lies solely with you.

Additionally, this community of contributors believes in "paying it forward", and individuals who are implementing these tools are asked to contribute by asking questions, helping improve documentation, and contribute in other ways.

openaps example rig hardware setup

This is not an artificial pancreas, but rather tools which independently allow:

  • monitor - Collect data about environment, and operational status of devices. Aggregate as much data relevant to therapy as possible into one place. We propose a tool, openaps-use as a proof of concept.

  • predict - Can make predictions about what should happen next.

  • control - Can enact changes in the world: emails, placing phone calls, SMS, issuing commands to pumps.

Install

There are two ways to install openaps, from source, and as a python package via setuptools.

The following apt-get dependencies are required (they can be installed through variety of means, in debian/ubuntu and apt based systems the following packages are recommended/required:

sudo apt-get install python python-dev python-setuptools python-software-properties python-numpy

From source

To install from source clone this repo, and issue:

sudo python setup.py develop

From pypi

To install from pypi:

sudo pip install -U openaps

This installs openaps system wide. Do not use openaps commands in the the openaps repo. Only use the openaps directory for hacking on the core library, or for managing upgrades through git. Running openaps inside of the openaps source directory will error in the best case, and mess up your openaps install in the worst case.

Updating
sudo easy_install -ZU openaps

Usage

usage: openaps [-h] [-c C C] [-C CONFIG] [--version] [command] ...

openaps - openaps: a toolkit for DIY artificial pancreas system

positional arguments:
  • command
  • args

optional arguments:

-h, --help            show this help message and exit
-c C C
-C CONFIG, --config CONFIG
--version             show program's version number and exit

Utilities for developing an artificial pancreas system. openaps helps you manage and structure reports for various devices.

All of the device and report add and show commands modify openaps.ini in the current working directory, which is assumed to be a git repo explicitily dedicated to helping develop and configure a DIY artificial pancreas system. This means openaps is an SDK for an artificial pancreas system, not an artificial pancreas system.

See openaps init for setting up a brand new instance of your own openaps, or see the notes below for details on how to convert an existing git repo into an instance of openaps.

Common workflows:

openaps init
openaps device <cmd>
  
  Device commands allow you to match a device driver, with a name
  and a configuration.
  
  add     - add device config to `openaps.ini`
  remove  - remove device from `openaps.ini`
  show    - print device uri, list all by default

openaps use [--format <json,stdout,text>]
            [--output <filename>]
        <device>
        <use>
        [use-args...]

  For each device registered, the vendor implementation provides a
  number of uses.  This allows users to experiment with reports.

openaps report <cmd>

  Reports match a device use to a format and filename.

  add     - add report config to `openaps.ini`
  remove  - remove report from `openaps.ini`
  show    - print report uri, list all by default
  invoke  - run and save report in file

Init new openaps environment

Do not use openaps commands in the the openaps repo. Only use the openaps directory for hacking on the core library, or for managing upgrades through git. Instead change to a new directory, not managed by git: cd ~/Documents.

Setup of new instance:

openaps init myopenaps    - this creates an instance of openaps in a new
                            directory, called myopenaps


cd myopenaps - change directory to root of new repo

A valid instance of openaps is a git repo with a file called openaps.ini present.

openaps will track configuration and some status information inside of openaps.ini.

Init existing git repo as openaps-environment

If you already have a git repo which you would like to become a valid openaps environent, in the root of your repo, run:

touch openaps.ini
git add openaps.ini
git commit -avm 'init openaps'

Now, wth a valid openaps environment, you can register devices for use. A device is implemented by a vendor. openaps provides a modular, language and process independent environment for creating vendors and devices.

Managing devices

To register devices for use, see openaps device commands:

openaps device -h
openaps device add <name> <vendor> [opts...]
eg:
# register a medtronic device named pump
openaps device add pump medtronic 665455
# register a dexcom device named cgm
openaps device add cgm dexcom

Using devices

Now that devices are known, and we have a variety of commands available. We can explore how to produce reports by using devices with the openaps use command:

openaps use <device-name> <use-name> [opts]

openaps use commands can only be used after devices have been added to the openaps.ini config using openaps device add. Eg:

openaps use pump -h        - show available commands for the
                             device known as "pump"
openaps use pump iter_pump 100 - get last 100 pump history records
                             from the device called pump
openaps use cgm -h         - show available commands for the
                             device known as "cgm"
openaps use cgm glucose

Save reports

After experimenting with openaps use commands, users can save reports using the openaps report commands. openaps report commands map openaps use commands to filenames:

openaps report add

Adding a report means configuring a use command with a format and a output, most commonly, a filename is used as the output.

openaps report add <report-name> <report-formatter> <device> <use> [opts]

# add a report, saved in a file called pump-history.json, which is
# JSON format, from device pump using use iter_pump.
openaps report add pump-history.json JSON pump iter_pump 100

# add a report, saved in a file called glucose.json, which is
# JSON format, from device cgm using use glucose.
openaps report add glucose.json JSON cgm glucose

invoke reports to run and save the results of the use

openaps report invoke

Invoking a report means running a use command according to it's configuration.

# invoke the report to create glucose.json
openaps report invoke glucose.json

# invoke the report to create pump-history.json
openaps report invoke pump-history.json

All commands support tab completion, and -h help options to help explore the live help system.

Sample use commands

medtronic

Assuming device is named pump:

usage: openaps-use pump [-h]
                        {Session, bolus, iter_glucose, iter_pump,
                        model, mytest, read_basal_profile_A,
                        read_basal_profile_B,
                        read_basal_profile_std, read_carb_ratios,
                        read_clock, read_current_glucose_pages,
                        read_current_history_pages,
                        read_glucose_data, read_history_data,
                        read_selected_basal_profile,
                        read_settings, read_status,
                        read_temp_basal, reservoir, resume_pump,
                        scan, set_temp_basal, settings, status,
                        suspend_pump}
                        ...

positional arguments:
  {Session, bolus, iter_glucose, iter_pump, model, mytest,
  read_basal_profile_A, read_basal_profile_B,
  read_basal_profile_std, read_carb_ratios, read_clock,
  read_current_glucose_pages, read_current_history_pages,
  read_glucose_data, read_history_data,
  read_selected_basal_profile, read_settings, read_status,
  read_temp_basal, reservoir, resume_pump, scan, set_temp_basal,
  settings, status, suspend_pump}
                        Operation
    Session             session for pump
    bolus               Send bolus.
    iter_glucose        Read latest 100 glucose records
    iter_pump           Read latest 100 pump records
    model               Get model number
    mytest              Testing read_settings
    read_basal_profile_A
                        Read basal profile A.
    read_basal_profile_B
                        Read basal profile B.
    read_basal_profile_std
                        Read default basal profile.
    read_carb_ratios    Read carb_ratios.
    read_clock          Read date/time of pump
    read_current_glucose_pages
                        Read current glucose pages.
    read_current_history_pages
                        Read current history pages.
    read_glucose_data   Read pump glucose page
    read_history_data   Read pump history page
    read_selected_basal_profile
                        Fetch the currently selected basal profile.
    read_settings       Read settings.
    read_status         Get pump status
    read_temp_basal     Read temporary basal rates.
    reservoir           Get pump remaining insulin
    resume_pump         resume pumping.
    scan                scan for usb stick
    set_temp_basal      Set temporary basal rates.
    settings            Get pump settings
    status              Get pump status (alias for read_status)
    suspend_pump        Suspend pumping.

optional arguments:
  -h, --help            show this help message and exit

Some commands like read_glucose_data, read_history_data take a page parameter, describing which page to fetch.

Some commands like bolus, set_temp_basal, take an input parameter which may be - for stdin or a filename containing a json data structure which represents the request.

All commands support -h and --help output.

dexcom

usage: openaps-use cgm [-h] {glucose,iter_glucose,scan} ...

positional arguments:
  {glucose,iter_glucose,scan}
                        Operation
    glucose             glucose (will pull all records)
    iter_glucose <n>       glucose ('n' for the number of records you want)
    scan                scan for usb stick

optional arguments:
  -h, --help            show this help message and exit

License

MIT License

Copyright (c) 2016 Ben West Copyright (c) 2015 Ben West

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

docs's People

Contributors

aaybob avatar bannedfromfun avatar bender1061 avatar bewest avatar bfaloona avatar channemann avatar cluckj avatar danamlewis avatar dduugg avatar dirkgastaldo avatar dm61 avatar emsamom avatar garykidd avatar gregtcm avatar jauntyserpent avatar jdhigh avatar jmatheson avatar kdisimone avatar logichammer avatar parenthetic avatar philipgo avatar rickwarren avatar rkresha avatar sarahspins avatar scottleibrand avatar spazholio avatar tghoward avatar tim2000s avatar tzachi-dar avatar wgs4 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

docs's Issues

Suggestion for flowcharts/visuals/diagrams/images moving forward

One of the challenges with images in the docs is that the source of the image is usually not editable except by the original creator.

Potential solution: use draw.io (open source tool, free for all, available as desktop or web client app) and save/export both the raw .xml and the image itself (.jpg, .png, etc) and upload both to the images folder of the docs. That way, when text edits are needed to update the images, they can easily be edited by anyone, including multiple people.

Example:
rig-ns_troubleshooting
Raw .xml file, zipped: Rig-NS_troubleshooting.xml.zip

consider using pip to install

I think I'm now recommending to use pip install -U openaps to install/update openaps. Fingers crossed, it should pull in everything else appropriately, let me know if any problems.

Tips using pip: the install argument will also take an url to a tarball, or with a little extra keyword, can even take arbitrary urls, here are examples to install dev branches:

  • pip install git+git://github.com/openaps/openaps.git'#dev'
  • `pip install git+git://github.com/bewest/decoding-carelink.git'#dev'``

advocacy language for talking to MiniMed

What language to use when talking to MiniMed so that they are getting feedback at all different levels that users need access to their devices? What are the key words to say, points to make, etc. so that there is a consistent message?

Installing from source fails

The script on installing from source from this page doesn't work:

https://openaps.gitbooks.io/building-an-open-artificial-pancreas-system/content/docs/getting-started/openaps.html

curl -s https://raw.githubusercontent.com/openaps/docs/master/scripts/quick-src.sh | bash -

Here are the error messages I received:

Get:1 http://mirrordirector.raspbian.org/raspbian/ jessie/main libpython2.7-dev armhf 2.7.9-2 [17.9 MB]
Err http://mirrordirector.raspbian.org/raspbian/ jessie/main libssl-dev armhf 1. 0.1k-3+deb8u1
404 Not Found [IP: 5.153.225.207 80]
Err http://mirrordirector.raspbian.org/raspbian/ jessie/main libssl-doc all 1.0. 1k-3+deb8u1
404 Not Found [IP: 5.153.225.207 80]
Get:2 http://mirrordirector.raspbian.org/raspbian/ jessie/main python-dev armhf 2.7.9-1 [1,188 B]
Get:3 http://mirrordirector.raspbian.org/raspbian/ jessie/main python-apt armhf 0.9.3.12 [156 kB]
Get:4 http://mirrordirector.raspbian.org/raspbian/ jessie/main gyp all 0.1svn17 29-3 [201 kB]
Get:5 http://mirrordirector.raspbian.org/raspbian/ jessie/main libjs-node-uuid a ll 1.4.0-1 [12.6 kB]
Get:6 http://mirrordirector.raspbian.org/raspbian/ jessie/main libjs-underscore all 1.7.0
dfsg-1 [49.9 kB]
Get:7 http://mirrordirector.raspbian.org/raspbian/ jessie/main libpython-dev arm hf 2.7.9-1 [19.6 kB]
Get:8 http://mirrordirector.raspbian.org/raspbian/ jessie/main libv8-3.14-dev ar mhf 3.14.5.8-8.1+rpi1 [108 kB]
Get:9 http://mirrordirector.raspbian.org/raspbian/ jessie/main node-async all 0. 8.0-1 [24.6 kB]
Get:10 http://mirrordirector.raspbian.org/raspbian/ jessie/main node-node-uuid a ll 1.4.0-1 [9,194 B]
Get:11 http://mirrordirector.raspbian.org/raspbian/ jessie/main node-underscore all 1.7.0dfsg-1 [34.2 kB]
Get:12 http://mirrordirector.raspbian.org/raspbian/ jessie/main python2.7-dev ar mhf 2.7.9-2 [281 kB]
Get:13 http://mirrordirector.raspbian.org/raspbian/ jessie/main unattended-upgra des all 0.81+rpi1 [45.7 kB]
Get:14 http://mirrordirector.raspbian.org/raspbian/ jessie/main python-software- properties all 0.92.25debian1 [42.1 kB]
Get:15 http://mirrordirector.raspbian.org/raspbian/ jessie/main libc-ares-dev ar mhf 1.10.0-2 [140 kB]
Get:16 http://mirrordirector.raspbian.org/raspbian/ jessie/main node-abbrev all 1.0.5-2 [3,540 B]
Get:17 http://mirrordirector.raspbian.org/raspbian/ jessie/main node-ansi all 0. 3.0-2 [8,608 B]
Get:18 http://mirrordirector.raspbian.org/raspbian/ jessie/main node-ansi-color- table all 1.0.0-1 [4,408 B]
Get:19 http://mirrordirector.raspbian.org/raspbian/ jessie/main node-archy all 0 .0.2-1 [3,620 B]
Get:20 http://mirrordirector.raspbian.org/raspbian/ jessie/main node-inherits al l 2.0.1-1 [3,230 B]
Get:21 http://mirrordirector.raspbian.org/raspbian/ jessie/main node-block-strea m all 0.0.7-1 [4,550 B]
Get:22 http://mirrordirector.raspbian.org/raspbian/ jessie/main node-delayed-str eam all 0.0.5-1 [4,482 B]
Get:23 http://mirrordirector.raspbian.org/raspbian/ jessie/main node-combined-st ream all 0.0.5-1 [4,918 B]
Get:24 http://mirrordirector.raspbian.org/raspbian/ jessie/main node-cookie-jar all 0.3.1-1 [3,570 B]
Get:25 http://mirrordirector.raspbian.org/raspbian/ jessie/main node-forever-age nt all 0.5.1-1 [3,066 B]
Get:26 http://mirrordirector.raspbian.org/raspbian/ jessie/main node-mime all 1. 2.11-1 [18.1 kB]
Get:27 http://mirrordirector.raspbian.org/raspbian/ jessie/main node-form-data a ll 0.1.0-1 [6,084 B]
Get:28 http://mirrordirector.raspbian.org/raspbian/ jessie/main node-rimraf all 2.2.8-1 [5,668 B]
Get:29 http://mirrordirector.raspbian.org/raspbian/ jessie/main node-mkdirp all 0.5.0-1 [4,634 B]
Get:30 http://mirrordirector.raspbian.org/raspbian/ jessie/main node-graceful-fs all 3.0.2-1 [7,070 B]
Get:31 http://mirrordirector.raspbian.org/raspbian/ jessie/main node-fstream all 0.1.24-1 [17.5 kB]
Get:32 http://mirrordirector.raspbian.org/raspbian/ jessie/main node-lru-cache a ll 2.3.1-1 [5,344 B]
Get:33 http://mirrordirector.raspbian.org/raspbian/ jessie/main node-sigmund all 1.0.0-1 [3,750 B]
Get:34 http://mirrordirector.raspbian.org/raspbian/ jessie/main node-minimatch a ll 1.0.0-1 [13.9 kB]
Get:35 http://mirrordirector.raspbian.org/raspbian/ jessie/main node-fstream-ign ore all 0.0.6-2 [5,536 B]
Get:36 http://mirrordirector.raspbian.org/raspbian/ jessie/main node-github-url- from-git all 1.1.1-1 [2,986 B]
Get:37 http://mirrordirector.raspbian.org/raspbian/ jessie/main node-once all 1. 1.1-1 [2,552 B]
Get:38 http://mirrordirector.raspbian.org/raspbian/ jessie/main node-glob all 4. 0.5-1 [13.1 kB]
Get:39 http://mirrordirector.raspbian.org/raspbian/ jessie/main nodejs-dev armhf 0.10.29
dfsg-2 [247 kB]
Get:40 http://mirrordirector.raspbian.org/raspbian/ jessie/main node-nopt all 3. 0.1-1 [9,484 B]
Get:41 http://mirrordirector.raspbian.org/raspbian/ jessie/main node-npmlog all 0.0.4-1 [5,516 B]
Get:42 http://mirrordirector.raspbian.org/raspbian/ jessie/main node-osenv all 0 .1.0-1 [3,734 B]
Get:43 http://mirrordirector.raspbian.org/raspbian/ jessie/main node-tunnel-agen t all 0.3.1-1 [3,840 B]
Get:44 http://mirrordirector.raspbian.org/raspbian/ jessie/main node-json-string ify-safe all 5.0.0-1 [3,356 B]
Get:45 http://mirrordirector.raspbian.org/raspbian/ jessie/main node-qs all 2.2. 4-1 [8,474 B]
Get:46 http://mirrordirector.raspbian.org/raspbian/ jessie/main node-request all 2.26.1-1 [15.7 kB]
Get:47 http://mirrordirector.raspbian.org/raspbian/ jessie/main node-semver all 2.1.0-2 [14.9 kB]
Get:48 http://mirrordirector.raspbian.org/raspbian/ jessie/main node-tar all 0.1.18-1 [16.9 kB]
Get:49 http://mirrordirector.raspbian.org/raspbian/ jessie/main node-which all 1.0.5-2 [3,610 B]
Get:50 http://mirrordirector.raspbian.org/raspbian/ jessie/main node-gyp all 0.12.2+ds-1 [19.4 kB]
Get:51 http://mirrordirector.raspbian.org/raspbian/ jessie/main node-ini all 1.1.0-1 [4,720 B]
Get:52 http://mirrordirector.raspbian.org/raspbian/ jessie/main node-lockfile all 0.4.1-1 [5,150 B]
Get:53 http://mirrordirector.raspbian.org/raspbian/ jessie/main node-mute-stream all 0.0.4-1 [4,056 B]
Get:54 http://mirrordirector.raspbian.org/raspbian/ jessie/main node-normalize-package-data all 0.2.2-1 [8,604 B]
Get:55 http://mirrordirector.raspbian.org/raspbian/ jessie/main node-read all 1.0.5-1 [4,262 B]
Get:56 http://mirrordirector.raspbian.org/raspbian/ jessie/main node-read-package-json all 1.2.4-1 [7,740 B]
Get:57 http://mirrordirector.raspbian.org/raspbian/ jessie/main node-retry all 0.6.0-1 [6,124 B]
Get:58 http://mirrordirector.raspbian.org/raspbian/ jessie/main node-sha all 1.2.3-1 [4,064 B]
Get:59 http://mirrordirector.raspbian.org/raspbian/ jessie/main node-slide all 1.1.4-1 [6,078 B]
Get:60 http://mirrordirector.raspbian.org/raspbian/ jessie/main npm all 1.4.21+ds-2 [354 kB]
Get:61 http://mirrordirector.raspbian.org/raspbian/ jessie/main watchdog armhf 5.14-3 [78.1 kB]
Fetched 20.0 MB in 18s (1,094 kB/s)
E: Failed to fetch http://mirrordirector.raspbian.org/raspbian/pool/main/o/openssl/libssl-dev_1.0.1k-3+deb8u1_armhf.deb 404 Not Found [IP: 5.153.225.207 80]

E: Failed to fetch http://mirrordirector.raspbian.org/raspbian/pool/main/o/openssl/libssl-doc_1.0.1k-3+deb8u1_all.deb 404 Not Found [IP: 5.153.225.207 80]

E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
bash: line 8: cd: src: No such file or directory
sudo: openaps-install-udev-rules: command not found

suggestion making requirements for rig more clear (especially explorer HAT)

Hello dear makers,

as most people posting here, I've started building my own rig. However, I ran into a few problems. Most of them where my fault of course, but I'd like to prevent other people from making the same mistakes.

The mistake: ordering an "explorer HAT".
why: because it's called an explorer hat on the openaps.org site.
what to do: make it more clear, avoid calling it a thing that actually exists (and people might order).
how: replacing "explorer HAT" with "Pi radio 868MHz/915MHz HAT" or something alike.

thank you for your time,
I hope after this mistake I will be able to finish making the rig 👍 ,
Anja

Add instructions on how to "open loop"

Given that:

  • my CGM is not yet reliable (FreeStyle Libre > Sony SmartWatch3 downgraded to allow NFC > LibreAlarm(+) on an old android phone > xDrip+ (on same phone) > Nightscout) which might work but I don't have a good setup yet, and,
  • that I am still learning how to interpret the OpenAPS pill on Nightscout, and,
  • that I don't (yet) have Papertrail setup on my rig

it would be good to be able to "open loop" for a while (i'm thinking of a few days, or until I learn howt to interpret the OpenAPS pill). On gitter @danamlewis recommended setting the pump's temp basal setting to % - it seems like this idea warrants a paragraph somewhere in these docs.

Local markdown links break on readthedocs.io

Local links in markdown files are broken. For example:

source: https://github.com/openaps/docs/blob/master/docs/reference/openaps/openaps-report-settings-auto-sens.md

redered by sphinx/readthedocs: http://openaps.readthedocs.io/en/latest/reference/openaps/openaps-report-settings-auto-sens.html

The link target for 'monitor/glucose.json' is openaps-report-monitor-glucose.md in markdown, which fails to link properly to:
http://openaps.readthedocs.io/en/latest/reference/openaps/openaps-report-monitor-glucose.html

Even preceeding the target with dot slash ( ./openaps-report-monitor-glucose.md ) does not work.

It is unclear to me which sphinx extensions are in use. See: https://github.com/openaps/docs/blob/master/docs/conf.py

Don't use a dev branch for docs

I think we all share the goal of making it easier for more people to contribute to the docs. Removing the dev branch, and using only master, would do a lot to further this goal.

  • Immediate feedback after merging: "Hey, my edit is on the live docs now! That was easy! I can do this!" (as opposed to, "Hmm, it says merged, but the docs look the same... something about a different branch... oh well, I guess I just don't get this Git thing yet. I sure have a lot to learn!")
  • Not discouraging people: Let's say you see an opportunity for improvement while reading the docs, so you check out/update the repo and start working, only to find the issue was already fixed on dev. Well, that was a waste of time. The duplicated effort and extra reasoning about staging/live versions can be frustrating to would-be contributors. This isn't a hypothetical: I've personally had this happen a couple of times, and it really put me off from contributing.
  • Staging doesn’t make sense for docs: Who’s “testing” the dev branch, and how? By definition, if you’re making use of the docs, you’re reading master. If dev is truly the latest documentation, why is the live version out of date?
  • Staging is extra reasoning for new contributors: The dev/master distinction introduces new contributors to an idiosyncratic workflow which is not easy to reason about. Using dev to stage a release of software makes intuitive sense. Using dev to stage static documentation adds one more stumbling block for someone building an understanding of version control.

There are instances where branching off from master makes sense (e.g. to collect documentation for a new feature before it’s been released), but those are called feature branches. Their release need not be coupled to all the other changes in the next “version” of the docs.

structure of outline overall

I. Introduction (with BIG PICTURE which I will start a PR on)

II. General Setup
Consider eliminating the concept of "Walkthrough" which discourages people from reading the intro and skipping to the "Walkthrough", it also suggests that these instructions are complete and perfect which discourages people submitting PRs (it must be something I'm doing wrong, not the instructions)
Phases are nice to show progression however this requires a lot outside of the phases and if PRs are integral to this process, they should be a part of the process rather than "outside" the phases

III. Nightscout part 1 here
Since folks who come here are mainly familiar with this, it's a nice way to ease into it

IV. OpenAPS
What is OpenAPS first before how to set it up

V. Creating an open loop

VI. Closing the loop
NS part 2 somewhere between the last part and this one

VII. Turning the closed loop

VIII. Iterate and improve

IX. Resources

X. References

use templates to ease setup:

Please see:

oref0 template

$ oref0 template -h
/usr/local/bin/oref0-template <cmd> <type> [args]

Commands:
  mint <type>  generate template for import
  completion   generate bash completion script

Options:
  -h, --help  Show help                          [boolean]


$ oref0 template mint
/usr/local/bin/oref0-template mint <type>

Commands:
  device <type>    generate devices
  reports <shape>  generate reports

Options:
  -h, --help  Show help                          [boolean]

This can add the needed oref0 devices:

$ oref0 template mint device oref0
[{"extra":{"fields":"","cmd":"oref0","args":""},"type":"device","name":"oref0","oref0":{"vendor":"openaps.vendors.process","extra":"oref0.ini"}},{"extra":{"fields":"settings bg-targets insulin-sensitivities basal-profile max-iob","cmd":"oref0","args":"get-profile"},"type":"device","name":"get-profile","get-profile":{"vendor":"openaps.vendors.process","extra":"get-profile.ini"}},{"type":"device","calculate-iob":{"vendor":"openaps.vendors.process","extra":"calculate-iob.ini"},"name":"calculate-iob","extra":{"fields":"pump-history oref0-profile clock","cmd":"oref0","args":"calculate-iob"}},{"determine-basal":{"vendor":"openaps.vendors.process","extra":"determine-basal.ini"},"type":"device","name":"determine-basal","extra":{"fields":"oref0-iob temp-basal glucose oref0-profile","cmd":"oref0","args":"determine-basal"}}]

# to import the devices:
$ oref0 template mint device oref0 | openaps import

To manage common reports:

oref0 template mint reports medtronic-pump

Generates all the needed pump handling reports.

oref0 template mint reports oref0-inputs

Setup needed oref0 reports

Nightscout back fill configs

Nightscout doesn't automatically back fill CGM data even when Share does. If your routine includes gaps in transmitter connectivity and data uploads, this may affect your calculations.

I suggest that we include instructions on best practices in configuring NS to backfill. Opening issue to discuss what the best practice recommendations would be.

broken TOC

hmmm, the table of contents is broken online. Will try to sleuth it out but may not be able to.

Document setup of (advanced) meal assist

https://github.com/openaps/docs/blob/wip/ama-docs/docs/docs/walkthrough/phase-6/Configure-Automatic-Sensitivity-Mode.md is fairly comprehensive on setting up Automatic-Sensitivity-Mode, but despite a title change, doesn't yet provide all the necessary details for setting up Meal Assist.

@logichammer has created https://github.com/openaps/docs/blob/wip/ama-docs/docs/docs/walkthrough/phase-6/Configure-Automatic-Sensitivity-Mode-and-Advanced-Meal-Assist.md for details on setting up (advanced) meal assist. Per #176, we need to add
openaps device add meal process --require "pumphistory profile clock glucose basal carbs" oref0 meal and
openaps report add monitor/meal.json text meal shell monitor/pumphistory-zoned.json settings/profile.json monitor/clock-zoned.json monitor/glucose.json settings/basal_profile.json monitor/carbhistory.json
and also break them out into 3 separate pages: Configuring Meal Assist; Configuring Advanced Meal Assist; and Configuring Automatic Sensitivity Mode (all under phase 6 section).

I created the wip/ama-docs branch to allow the multiple people working on these related docs to collaborate a bit better. Please submit PRs to there for now on this particular issue, and then we can merge them to dev once things are cleaned up and no longer conflicting.

Thanks!

Max IOB example is misleading

In the AndroidAPS documentation, when dealing with maxIoB the example used as a starting point says : max daily basal...
This can be understood as total daily basal ...
Could be rephrased with something like max hourly basal rate...
Issue raised also in AndroidAPS GitHub

Using xDrip

Needs documentation: pulling in xdrip data to a standard openaps setup.

SD Card Writing

I have used terminal and written rasbian jessie to my SD card but I'm not sure how to tell when it has successfully finished writing. I tried using the command CTRL+T but I'm don't know what the information it is showing means or how to tell if it has completed the process. 😬

Watchdog

When setting up watchdog, i keep getting an error message saying watchdog failed to load and invalid argument when I enter the commands: 'sudo systemctl start watchdog' and 'sudo systemctl status watchdog'

I want Help. Try Installing OpenAps - Problems.

login as: pi
[email protected]'s password:

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sun Oct 2 19:17:21 2016
pi@raspberrypi:~ $ sudo easy_install -Z openaps
Processing openaps
Writing /home/pi/openaps/setup.cfg
Running setup.py -q bdist_egg --dist-dir /home/pi/openaps/egg-dist-tmp-z6tJYA
openaps 0.1.6-dev is already the active version in easy-install.pth
Installing openaps-use script to /usr/local/bin
Installing openaps-install-udev-rules script to /usr/local/bin
Installing openaps script to /usr/local/bin
Installing git-openaps-init script to /usr/local/bin
Installing openaps-import script to /usr/local/bin
Installing openaps-alias script to /usr/local/bin
Installing openaps-report script to /usr/local/bin
Installing openaps-vendor script to /usr/local/bin
Installing openaps-device script to /usr/local/bin

Installed /usr/local/lib/python2.7/dist-packages/openaps-0.1.6_dev-py2.7.egg
Processing dependencies for openaps==0.1.6-dev
Searching for mock
Reading https://pypi.python.org/simple/mock/
Best match: mock 2.0.0
Downloading https://pypi.python.org/packages/0c/53/014354fc93c591ccc4abff12c473ad565a2eb24dcd82490fae33dbf2539f/mock-2.0.0.tar.gz#md5=0febfafd14330c9dcaa40de2d82d40ad
Processing mock-2.0.0.tar.gz
Writing /tmp/easy_install-SpnVfK/mock-2.0.0/setup.cfg
Running mock-2.0.0/setup.py -q bdist_egg --dist-dir /tmp/easy_install-SpnVfK/mock-2.0.0/egg-dist-tmp-cIKocf
Searching for setuptools>=17.1
Reading https://pypi.python.org/simple/setuptools/
Best match: setuptools 28.2.0
Downloading https://pypi.python.org/packages/fa/dd/e310aaaf1702516e12451d2d5eb78175587edc7fbeb1afd58263171e9384/setuptools-28.2.0.tar.gz#md5=b2031092dcf317cdd140c6c200957c26
Processing setuptools-28.2.0.tar.gz
Writing /tmp/easy_install-SpnVfK/mock-2.0.0/temp/easy_install-Wo461v/setuptools-28.2.0/setup.cfg
Running setuptools-28.2.0/setup.py -q bdist_egg --dist-dir /tmp/easy_install-SpnVfK/mock-2.0.0/temp/easy_install-Wo461v/setuptools-28.2.0/egg-dist-tmp-EeX7MB
warning: no files found matching '*' under directory 'setuptools/_vendor'

Installed /tmp/easy_install-SpnVfK/mock-2.0.0/setuptools-28.2.0-py2.7.egg
Searching for pbr>=1.3
Reading https://pypi.python.org/simple/pbr/
Best match: pbr 1.10.0
Downloading https://pypi.python.org/packages/c3/2c/63275fab26a0fd8cadafca71a3623e4d0f0ee8ed7124a5bb128853d178a7/pbr-1.10.0.tar.gz#md5=8e4968c587268f030e38329feb9c8f17
Processing pbr-1.10.0.tar.gz
Writing /tmp/easy_install-SpnVfK/mock-2.0.0/temp/easy_install-XaD6bx/pbr-1.10.0/setup.cfg
Running pbr-1.10.0/setup.py -q bdist_egg --dist-dir /tmp/easy_install-SpnVfK/mock-2.0.0/temp/easy_install-XaD6bx/pbr-1.10.0/egg-dist-tmp-DNprPt

Installed /tmp/easy_install-SpnVfK/mock-2.0.0/pbr-1.10.0-py2.7.egg
Marker evaluation failed, see the following error. For more information see: http://docs.openstack.org/developer/pbr/compatibility.html#evaluate-marker
ERROR:root:Error parsing
Traceback (most recent call last):
File "/tmp/easy_install-SpnVfK/mock-2.0.0/pbr-1.10.0-py2.7.egg/pbr/core.py", line 111, in pbr
attrs = util.cfg_to_args(path, dist.script_args)
File "/tmp/easy_install-SpnVfK/mock-2.0.0/pbr-1.10.0-py2.7.egg/pbr/util.py", line 248, in cfg_to_args
kwargs = setup_cfg_to_setup_kwargs(config, script_args)
File "/tmp/easy_install-SpnVfK/mock-2.0.0/pbr-1.10.0-py2.7.egg/pbr/util.py", line 431, in setup_cfg_to_setup_kwargs
if pkg_resources.evaluate_marker('(%s)' % env_marker):
File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 1306, in evaluate_marker
return cls.interpret(parser.expr(text).totuple(1)[1])
File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 1341, in interpret
return op(nodelist)
File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 1254, in atom
return cls.interpret(nodelist[2])
File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 1341, in interpret
return op(nodelist)
File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 1275, in comparison
raise SyntaxError(msg)
SyntaxError: '<' operator not allowed in environment markers
error: Setup script exited with error in setup command: Error parsing /tmp/easy_install-SpnVfK/mock-2.0.0/setup.cfg: SyntaxError: '<' operator not allowed in environment markers
pi@raspberrypi:~ $

easier way to setup devices and aliases

  oref0 device-helper - <name> <spec>: create/template a device from bash commands easily
  oref0 alias-helper - <name> <spec>: create/template a alias from bash commands easily

oref0 device-helper

Takes, the name of the device, and a bash snippet to run.

$ oref0 device-helper speak-laugh 'echo hahaha: $1'
{"speak-laugh": {"vendor": "openaps.vendors.process", "extra": "speak-laugh.ini"}, "type": "device", "name": "speak-laugh", "extra": {"fields": "", "cmd": "bash", "args": "-c \"echo hahaha: $1\" -- "}}

This example prints hahaha along with whatever is fed through the arguments:

$ oref0 device-helper speak-laugh 'echo hahaha: $1' | openaps import
process://speak-laugh/bash/-c "echo hahaha: $1" -- 
$ openaps use --format text speak-laugh shell --not-json-default 'THIS WORKS!'
hahaha: THIS

Ah, notice the $1 will only print the first argument.
Let's try that again:

$ oref0 device-helper speak-laugh 'echo hahaha: $*' | openaps import
process://speak-laugh/bash/-c "echo hahaha: $*" -- 
$ openaps use --format text speak-laugh shell --not-json-default 'THIS WORKS!'
hahaha: THIS WORKS!

oref0 alias-helper

Works pretty much the same way, but to help create aliases:

$ oref0 alias-helper ping echo 'PONG! $*'
{"type": "alias", "name": "ping", "ping": {"command": "! bash -c \"echo PONG! $*\" --"}}
$ oref0 alias-helper ping echo 'PONG! $*' | openaps import
ping ! bash -c "echo PONG! $*" --
$ openaps ping wow
PONG! wow

512/712 disclaimer

Can we add a note that for 512/712 certain commands like Read Settings, BG Targets and certain Read Basal Profile not available, and requires creating a static json for needed info missing to successfully run the loop.

We can either add a sample of jsons as gist or as @bewest suggested add a new command to generate the base files and have the user updating per their pump settings.

ubuntu linux based install

I'm using a ubuntu linux desktop system (command line only),
I also have an 8 Gig SD card I'd like to use.
Can you add information on how to burn the SD card so the intel edison boots from that?

Interacting with the APS

I feel for new people to this experience and too the technology that the instructions may warrant something referencing interaction with the system when in open and closed, ie how to enter data such as carbs, bgl, manual bolus, temp basal etc and on which platform, Xdrip+, NS, pump etc.
As I read somewhere that entering data in one of those systems will not apply it to the algorithm and as such the data will not be collected.
There are references through out the docs for things such as IFTTT which could be hyperlinked within this instruction.
Happy to be involved in the construction of this.

Phase 2 naming conflicts

There are currently a number of differences between the names used in the newer oref0 templates and the current walkthrough which I believe has caused some confusion. For example: bg_targets_raw.json in the docs is bg-targets-raw.json in the templates as well as things like settings/insulin_sensitivities_raw.json in the docs is raw-pump/insulin-sensitivities-raw.json in the templates. I was thinking about doing a PR to try to straighten things out a bit but will it even be necessary with the new style walkthrough that uses templates? Is this section going to be reduced to templates or still have explanations on how everything works and how to create it? Seems like it is kind of important for the DIY part of it but the templates are nice! At the very least maybe just adding a warning that the names don't match and will have to be altered?

The CareLink stick

I've found this neccessary:
*/4 * * * * cd /home/pi/myopenaps && ( ps aux | grep -v grep | grep -q 'openaps pump-loop' || openaps pump-loop ) 2>&1 | tee -a /var/log/openaps/pump-loop.log
2-59/4 * * * * cd /home/pi/myopenaps && openaps preflight | tee -a /var/log/openaps/pump-loop.log

preflight can't run unless isolated
we could do
4-59 * * * * cd /.....loop and all other
2 * * * * cd /.....preflight
for preflight once per hour
it fails after 3 to 7 hours...

nodejs-legacy broken -- breaks npm

there is this line in the instructions script.

sudo apt-get install -y git python python-dev python-software-properties python-numpy python-pip nodejs-legacy npm watchdog

This script breaks when trying to install nodejs-legacy.
In additon, that break, causes the rest of the line, including installation of npm and watchdog to fail.
This causes openaps installation to fail.

document how to set up Nightscout

Per updates to http://openaps.readthedocs.org/en/latest/docs/walkthrough/phase-1/visualization.html

Once Nightscout is running how do we send data into it?

Let's try nightscout:

$ nightscout -h
  Usage:
nightscout <cmd>

* latest-openaps-treatment
* cull-latest-openaps-treatments

* get
* upload
* dedupe-treatments
* hash-api-secret
* status
* upload-entries
* autoconfigure-device-crud


The autoconfigure-device-crud feature will allow us to create an easy to use ns device:

$ nightscout autoconfigure-device-crud https://my.nightscout.host averylongplainsecret
added process://ns/nightscout/ns NIGHTSCOUT_HOST API_SECRET
process://ns/nightscout/ns https://my.nightscout.host e6fc892e8e88235a476d197de3dfbef3f2db53d0

It added a new ns device to our uses menu:

openaps use ns shell get entries.json 'count=10'
openaps use ns shell upload treatments.json recently/combined-treatments.json

So we now have various uses for ns: get, upload, latest-treatment-time, format-recent-history-treatments, upload-non-empty-treatments.

Get records from Nightscout

Use the get feature which takes two arguments: the name of the endpoint (entries, devicestatus, treatments, profiles) and any query arguments to append to the argument string. 'count=10' is a reasonable debugging value.

openaps use ns shell get $endpoint $query-params

Unifying pump treatments in Nightscout

To upload treatments data to Nightscout, prepare you zoned glucose, and pump model reports, and use the following two reports:

openaps report add nightscout/recent-treatments.json JSON ns shell  format-recent-history-treatments monitor/pump-history.json model.json
openaps report add nightscout/uploaded.json JSON  ns shell upload-non-empty-treatments  nightscout/recent-treatments.json

Here are the equivalent uses:

openaps use ns shell format-recent-history-treatments monitor/pump-history.json model.json
openaps use ns shell upload-non-empty-treatments nightscout/recent-treatments.json

The first report runs the format-recent-history-treatments use, which fetches data from Nightscout and determines which of the latest deltas from openaps need to be sent. The second one uses the upload-non-empty-treatments use to upload treatments to Nightscout, if there is any data to upload.

Dexcom share instead of nightscout

Hi, I use a dexcom G5 sensor and the dexcom share app to view my bg on my phone, would it be possible to use this with openaps setup instead of nightscout?

Broken link to wifi troubleshooting

The 'wifi troubleshooting page' link on this page is broken:
http://openaps.readthedocs.io/en/latest/docs/Resources/troubleshooting.html
The link is: https://openaps.readthedocs.io/en/latest/docs/Resources/wifi.md.html
It should be: http://openaps.readthedocs.io/en/latest/Resources/wifi.html

Notes:

  • Should the file in question be moved to the other Resources folder at /en/latest/docs/Resources/wifi instead of the current location at /en/latest/Resources/wifi ?
  • I often get 'This page does not exist yet' when browsing the docs, so I think there may be a few of these link issues.

A Cleaner Interface and a Convention for Formatting OpenAPS Docs

I have these issues regarding OpenAPS Docs, as a person with a print-related disability. Making these changes will lead to a more readable document for everyone:

  1. The default typeface and theme on ReadTheDocs, for the OpenAPS Docs, can be hard to read and sort through, especially for people with print-related disabilities. The default font being used is not a Sans Serif font, and makes reading difficult, even for people without print disabilities. There is a cleaner theme out there, with a better default font, that supports our needs as editors and readers in OpenAPS Docs. The theme is through MkDocs, and is called ReadTheDocs. Please consider changing the theme on ReadTheDocs.

  2. To improve readability, we need to refer individual editors of OpenAPS Docs to this 10 Minute Introduction to Markdown. I will try to add a new document via a Pull Request, cleanly embedded into OpenAPS Docs, to encourage individual editors to follow CommonMark editing specifications. I also intend on making full edits, page by page, for OpenAPS Docs, following Commonmark editing specifications. Expect several Pull Requests to be generated over the next week or so.

Possible hiccup during jubilinux flashing

While flashing my Edison from Ubilinux to Jubilinux it timed out waiting for the reboot after repartitioning
Rebooting to apply partition changes
Now waiting for dfu device 8087:0a99
Timed out while waiting for dfu device 8087:0a99

Running it again, successfully flashed the device.

Intel Edison recommended in docs, but device is discontinued! (Last buy September 16, 2017)

It appears that the documentation and software(?) will need revision - and a new hardware home

https://communities.intel.com/docs/DOC-112093
Intel will support last time orders of Intel Edison products through September 16, 2017 and will fulfill those orders through December 16, 2017.

Intel® Edison Discontinuation Notice: Version 1
Created by MTaylor on Jul 5, 2017 3:46 PM. Last modified by MTaylor on Jul 5, 2017 3:46 PM.
Intel is discontinuing Intel® Edison compute modules and developer kits. To help customers manage through the Intel Edison discontinuance, Intel will support last time orders of Intel Edison products through September 16, 2017 and will fulfill those orders through December 16, 2017. The current level of community forum-based support for Intel Edison will continue to be available through September 15, 2017. There are no further software releases planned for the Intel Edison platform. After September 15, 2017, Intel will archive its online resources and maintain availability to the Intel Edison community until June 15, 2020. Files licensed under open source licenses will continue to be generally available in binary and source code on GitHub.

setting up openaps.. stuck trying to upload data to Nightscout

hello...

After two months of finding the right used pump, getting my daughter to change from injections tu pump, get the CGM sensor, etc... finally I am trying to make progress with the actual implementation of the openaps system.

I am stuck right now in the process to update data to Nightscout, could somebody please help me?

below
is the reponse when I do "openaps do-everything"

thsnk a lot for any help!
Luis


pi@raspberrypi:~/my_openaps $ openaps do-everything
PREFLIGHT
PREFLIGHT OK
usage: openaps-report invoke [-h]
{model.json,monitor/battery.json,monitor/clock.json,monitor/pump-history.json,monitor/reservoir.json,monitor/status.json,monitor/temp-basal-status.json,nightscout/openaps-status.json,nightscout/preflight.json,nightscout/recent-missing-entries.json,nightscout/recent-treatments.json,nightscout/uploaded-entries.json,nightscout/uploaded-recent-devicestatus.json,nightscout/uploaded.json,oref0-enacted/enacted-temp-basal.json,oref0-predict/oref0.json,raw-pump/battery.json,raw-pump/bg-targets-raw.json,raw-pump/clock-raw.json,raw-pump/insulin-sensitivities-raw.json,raw-pump/pump-history-raw.json,raw-pump/reservoir.json,raw-pump/selected-basal-profile.json,raw-pump/settings.json,raw-pump/status.json,raw-pump/temp-basal-status.json,settings/bg-targets.json,settings/insulin-sensitivities.json,settings/selected-basal-profile.json,settings/settings.json}
[{model.json,monitor/battery.json,monitor/clock.json,monitor/pump-history.json,monitor/reservoir.json,monitor/status.json,monitor/temp-basal-status.json,nightscout/openaps-status.json,nightscout/preflight.json,nightscout/recent-missing-entries.json,nightscout/recent-treatments.json,nightscout/uploaded-entries.json,nightscout/uploaded-recent-devicestatus.json,nightscout/uploaded.json,oref0-enacted/enacted-temp-basal.json,oref0-predict/oref0.json,raw-pump/battery.json,raw-pump/bg-targets-raw.json,raw-pump/clock-raw.json,raw-pump/insulin-sensitivities-raw.json,raw-pump/pump-history-raw.json,raw-pump/reservoir.json,raw-pump/selected-basal-profile.json,raw-pump/settings.json,raw-pump/status.json,raw-pump/temp-basal-status.json,settings/bg-targets.json,settings/insulin-sensitivities.json,settings/selected-basal-profile.json,settings/settings.json} ...]
openaps-report invoke: error: argument report: invalid choice: 'raw-cgm/glucose-raw.json' (choose from u'model.json', u'monitor/battery.json', u'monitor/clock.json', u'monitor/pump-history.json', u'monitor/reservoir.json', u'monitor/status.json', u'monitor/temp-basal-status.json', u'nightscout/openaps-status.json', u'nightscout/preflight.json', u'nightscout/recent-missing-entries.json', u'nightscout/recent-treatments.json', u'nightscout/uploaded-entries.json', u'nightscout/uploaded-recent-devicestatus.json', u'nightscout/uploaded.json', u'oref0-enacted/enacted-temp-basal.json', u'oref0-predict/oref0.json', u'raw-pump/battery.json', u'raw-pump/bg-targets-raw.json', u'raw-pump/clock-raw.json', u'raw-pump/insulin-sensitivities-raw.json', u'raw-pump/pump-history-raw.json', u'raw-pump/reservoir.json', u'raw-pump/selected-basal-profile.json', u'raw-pump/settings.json', u'raw-pump/status.json', u'raw-pump/temp-basal-status.json', u'settings/bg-targets.json', u'settings/insulin-sensitivities.json', u'settings/selected-basal-profile.json', u'settings/settings.json')
ns://JSON/shell/nightscout/recent-treatments.json
Could not parse pumphistory: { [Error: Cannot find module '/home/pi/my_openaps/monitor/pump-history.json'] code: 'MODULE_NOT_FOUND' }
No JSON object could be decoded

Traceback (most recent call last):
File "/usr/local/bin/openaps-report", line 4, in
import('pkg_resources').run_script('openaps==0.1.5', 'openaps-report')
File "build/bdist.linux-armv7l/egg/pkg_resources/init.py", line 719, in run_script
File "build/bdist.linux-armv7l/egg/pkg_resources/init.py", line 1504, in run_script
File "/usr/local/lib/python2.7/dist-packages/openaps-0.1.5-py2.7.egg/EGG-INFO/scripts/openaps-report", line 82, in
app( )
File "/usr/local/lib/python2.7/dist-packages/openaps-0.1.5-py2.7.egg/openaps/cli/init.py", line 51, in call
self.run(self.args)
File "/usr/local/lib/python2.7/dist-packages/openaps-0.1.5-py2.7.egg/EGG-INFO/scripts/openaps-report", line 75, in run
output = app(args, self)
File "/usr/local/lib/python2.7/dist-packages/openaps-0.1.5-py2.7.egg/openaps/cli/subcommand.py", line 52, in call
return self.method.main(args, app)
File "/usr/local/lib/python2.7/dist-packages/openaps-0.1.5-py2.7.egg/openaps/reports/invoke.py", line 48, in main
reporters.Reporter(report, device, task)(output)
File "/usr/local/lib/python2.7/dist-packages/openaps-0.1.5-py2.7.egg/openaps/reports/reporters/init.py", line 33, in call
self.blob = self.serialize(data)
File "/usr/local/lib/python2.7/dist-packages/openaps-0.1.5-py2.7.egg/openaps/reports/reporters/init.py", line 31, in serialize
return self.method.serialize(render(data), self)
File "/usr/local/lib/python2.7/dist-packages/openaps-0.1.5-py2.7.egg/openaps/vendors/process.py", line 56, in prerender_json
return json.loads(data)
File "/usr/lib/python2.7/json/init.py", line 338, in loads
return _default_decoder.decode(s)
File "/usr/lib/python2.7/json/decoder.py", line 366, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python2.7/json/decoder.py", line 384, in raw_decode
raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded
pi@raspberrypi:~/my_openaps $


Documenting G5

Needs further documentation - and is dependent on decoding-dexcom - someone needs to update it to detect which version receiver you have plugged in. Once this is done, openaps docs will need to be updated to note that G5 works.

Troubleshooting and help about unix commands is quite scattered

Yesterday with my pull request #772 I noticed that the troubleshooting and help about unix commands is quite scattered in multiple pages in the docs.

Wouldn't it be a good idea to organize the troubleshooting more based on the interfaces, e.g.

  • General troubleshooting
  • Troubleshooting pump-rig communication
  • Troubleshooting cgm-rig communication
  • Troubleshooting rig-nightscout communication
    etc.

Before I start, I first wanted a discussion, because I think this is quite some refactoring work to make it good.

@scottleibrand and @danamlewis : what's your take on this?

Openaps Writing Rasbian Jessie Lite to SD Card

Hi,
I am in the process of setting up openaps and at the stage of writing rasbian jessie to my SD card on a mac. However, when I use terminal to type in my image path: 2017-01-11-raspbian-jessie-lite.img , it says the file/directory doesn't exist. When I go to the finder and type in the path, rasbian jessie pops up, showing me it has the same pathway I was typing in the terminal. If anyone could give some suggestions that would be of great help!

Walkthrough invokes oref0 tools too early (before explained or mentioned)

In Phase 1 of the walkthrough, in file using-openaps-tools.md, there is a line that says:

Create bunch of reports:
oref0 template mint reports medtronic-pump | openaps import

If the user runs that command (which it seems like he/she is supposed to), this adds about 25 reports to the user's openaps.ini, including with subdirectories that aren't created yet, devices (units) that don't exist yet, etc.

So then it's confusing later in that file when the walkthrough implies that openaps.ini should be relatively empty, that you should know what each report does when you add it, and so on. Should this command just be cut? oref0 hasn't even been mentioned previously at this point, I don't think.

This same command (along with a few other oref0 invocations) occurs in a pretty confusing section at the beginning of phase-2/Using-oref0-tools.md. There at least there is a note that says that this part of the docs is out of date and that the usage in different parts of the file doesn't match. But as a new user going through it I had little idea what to do or not to do at this point. It seems like skipping those oref0 invocations at the top makes the most sense, in the context of the walkthrough as it stands, but having the user have to guess which commands to skip isn't ideal.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.