These are chat archives for nightscout/intend-to-bolus

24th
Jan 2016
Scott Leibrand
@scottleibrand
Jan 24 2016 02:20
Ok, time to try out the new toys! :-)
Alin Artiom Kenibasov
@ktomy
Jan 24 2016 03:21
just enabled pump plugin in NS and can see remaining units colored in red. I have 44 units and voltage is 1.29 , which one is low? what voltages are considered normal and when low battery warning starts? Thank you.
Scott Leibrand
@scottleibrand
Jan 24 2016 03:21
1.29 is low
that's the voltage our lithiums usually die at
Alin Artiom Kenibasov
@ktomy
Jan 24 2016 03:22
aha, thank you.
Scott Leibrand
@scottleibrand
Jan 24 2016 03:23
are you using alkalines or lithiums? how many bars of battery does your pump show?
Alin Artiom Kenibasov
@ktomy
Jan 24 2016 03:24
alkaline, do't know how many bars as the pump is about 2000km away from me now :) but will ask tomorrow.
Scott Leibrand
@scottleibrand
Jan 24 2016 03:24
if it were lithium it wouldn't last until tomorrow. :)
Dana Lewis
@danamlewis
Jan 24 2016 03:26
My alerts show 1.32 as the first drop to 3 bars, eventually to 1.29 which is zero bars and RF comm turns off
Alin Artiom Kenibasov
@ktomy
Jan 24 2016 03:26
We'll switch to lithiums in a week when i'll get home, now a battery lasts a week because of rf activity
Dana Lewis
@danamlewis
Jan 24 2016 03:26
Usually have a have a handful of hours from first alert at 1.32 all the way to 1.29
Fwiw, my alkalines were only averaging 2-3 days; lithium has consistently been getting 8+ days
Alin Artiom Kenibasov
@ktomy
Jan 24 2016 03:27
yes, my battery lives longer because aps is working only during bedtime
Dana Lewis
@danamlewis
Jan 24 2016 04:20
::ponders the need to update our Troubleshooting page in the docs, which we haven't touched in a while:: what should we add, even if it's already documented elsewhere but just needs pointing to? https://github.com/openaps/docs/blob/master/docs/Resources/troubleshooting.md
Alin Artiom Kenibasov
@ktomy
Jan 24 2016 04:22
git repository broken fix
usb reset
Dana Lewis
@danamlewis
Jan 24 2016 04:23
ahhh, good ones. keep 'em coming :D (and/or PR them in later if you think of them after I submit mine)
Alin Artiom Kenibasov
@ktomy
Jan 24 2016 04:26
Also I have a very different "loop" command and maybe it would be good to add it to the documentation somewhere (without enact):
#!/bin/bash

echo "Cleaning up..."
rm -f monitor/*
rm -f settings/*
rm enact/suggested.json

echo "Getting BG..."
if openaps get-bg && [ -f monitor/glucose.json ]; then
    echo "Got BG";
    if openaps preflight; then
    echo "Pump is connected, getting pump data...";
    if openaps get-settings; then
        if openaps monitor-pump; then
        echo "Got pump data, let's determine possible temp-basal..."
        if openaps report invoke enact/suggested.json; then
            python -m json.tool enact/suggested.json
            if cat enact/suggested.json | grep -q duration enact/suggested.json; then
            echo "Received suggestion of temp basal, aplying..."
            if openaps report invoke enact/enacted.json; then
                echo "Temp basal enacted:"
                cat enact/enacted.json | grep duration
                cat enact/enacted.json | grep rate
                cat enact/enacted.json | grep reason
            else
                echo "Aplying temp-basal failed!!!"
            fi
            else
            echo "No action needed";
            fi

            echo "uploading data to Nightscout..."
            if openaps upload-stripped; then
            echo "Upload finished"
            else
            echo "Upload failed"
            fi

        else
            echo "Suggestion failed";
        fi
        else
        echo "Cannot connect to pump (2)"
        fi
    else
        echo "Cannot get pump data"
    fi
    else
    echo "Cannot connect to pump";
    fi
else
    echo "No CGM data"
fi
```
for me it is much more clear than inline logic in openaps.ini aliases
Scott Leibrand
@scottleibrand
Jan 24 2016 04:27
that's a lot like the loop.sh we used to have in openaps-js before oref0
Alin Artiom Kenibasov
@ktomy
Jan 24 2016 04:28
when I was setting up the loop it was very hard to understand what actually executes and for initial troubleshooting I made this script
and I don't use cron but a while-true loop of launching this file
and a systemd "service" which launches that "infinite-loop"
Scott Leibrand
@scottleibrand
Jan 24 2016 04:30
you could just as easily do the ps check at the beginning of that and do it in cron
Ben West
@bewest
Jan 24 2016 04:30
do call it oref0-loop or similar
no need for grep
json should be used there
Alin Artiom Kenibasov
@ktomy
Jan 24 2016 04:32
all this is due to troubleshouting. the synpthoms with loop alias in cron was "cannot read BG" and I spent a lot of time before understanding that it couldn't find env variable and when I understood it, I already had this script, so I left it in this way as the script already prooved to work :)
grep is only for logging less stuff as enacted.json is already indented
I mean greps after enact
and the first grep is to see if I should call enact (if there is a command in suggested.json , or it is just a reason there, so only looping witout enacting
JaysonEwer
@JaysonEwer
Jan 24 2016 04:41
I've broken my loop. :-/ I've been trying to get my nightscout openaps pill setup, but in the process have broken my monitor/clock.json. Is it absolutley necessary to use the clock-zoned.json ?
Alin Artiom Kenibasov
@ktomy
Jan 24 2016 04:43
@danamlewis definitly would be a good idea to put there something about environment variables, where to put them and what smpthoms you have if you don't have them set
Dana Lewis
@danamlewis
Jan 24 2016 04:47
Run into that recently enough to have it fresh on your brain? I don't have it fresh. But I just put some prelim notes into Dev if you want to add to it with another PR: https://github.com/openaps/docs/blob/dev/docs/Resources/troubleshooting.md
Alin Artiom Kenibasov
@ktomy
Jan 24 2016 04:48
yes, after you'll finish updating the page with things you already have in mind, I'll put mine too.
Just to not stick with merging
Dana Lewis
@danamlewis
Jan 24 2016 04:48
I'm done enough for now. Go for it!
:)
Alin Artiom Kenibasov
@ktomy
Jan 24 2016 04:48
aha, ok
Dana Lewis
@danamlewis
Jan 24 2016 04:49
Heh, yea. Hazards of being sick, attention span and energy level are gnat-like. Hard to be surrounded by new toys (TI stick, yardstick, edison/RL) and not feel like delving into them as much!
@JaysonEwer what did you change that seems to have broken it?
if time zones aren't correct, everything gets zonked
Dana Lewis
@danamlewis
Jan 24 2016 05:05
@JaysonEwer are you using the master version of the visualization guide, or @dm61's PR (that I'm currently looking through)? https://github.com/openaps/docs/pull/77/files?diff=split
JaysonEwer
@JaysonEwer
Jan 24 2016 05:06
Yeah, I've been interrupted too many times, with all this snow and kids and everything going on today. :-D, Is there a way to go back to where I was? :-) I was following the instructions here:https://github.com/dm61/docs/blob/dev/docs/Automate-system/vizualization.md And was making some progress but ran into a wall, but I'm not 100% positive where I went wrong.
Dana Lewis
@danamlewis
Jan 24 2016 05:07
Ok, check the above to view @dm61's PR
Nvm, you're in there
Ok, I'm not sure either, as I'm just walking through it now based on English, but not actually running it.
What step did you get to, do you remember?
Ben West
@bewest
Jan 24 2016 05:08
I think I would recommend delaying the opansps plugin
the first step in the roadmap is monitoring
that means first step in general should probably be using openaps to get pump records (and glucose if missing) and upload it all to NS
getting everything zoned can be tricky
hmm
JaysonEwer
@JaysonEwer
Jan 24 2016 05:10
@bewest Ok, that may make my head NOT expload. :-)
Dana Lewis
@danamlewis
Jan 24 2016 05:11
@bewest here's @dm61's openaps/docs#77 PR, the current visualization and monitoring section definitely needs some love, could you PR an alternative or provide some feedback to #77? current live page is confusing lots of folks.
and @JaysonEwer , just seeing @TC2013 's comment in the PR, something on the PR is turned around, if you swap per his suggestion, does that fix?
JaysonEwer
@JaysonEwer
Jan 24 2016 05:13
Yeah, that's part of my problem, I started down one path, I guess it was the older document, then @dm61 provided a bit more information, which seemed to be helpful, but I still had some cruft left over from my first failed attempt. I'm pretty sure I removed most, if not all of it, but something I did an hour or two ago, has broken my loop.
```
@danamlewis looking now, let me check on @TC2013's comment...
Dana Lewis
@danamlewis
Jan 24 2016 05:14
Ya, try that. And if you've been logging your sessions, that'll be helpful to scroll back & see what you did & if anything needs to be undone.
JaysonEwer
@JaysonEwer
Jan 24 2016 05:15
^@Jan 24 00:06:01 Ewer-Open-APS CRON[27361]: (pi) CMD (cd /home/pi/Documents/openaps && (openaps loop 2>&1 | logger -t openaps))
Jan 24 00:06:05 Ewer-Open-APS openaps: cgms://JSON/iter_glucose/monitor/glucose.json
Jan 24 00:06:05 Ewer-Open-APS openaps: reporting monitor/glucose.json
^@Jan 24 00:06:24 Ewer-Open-APS openaps: pump://JSON/model/model.json
Jan 24 00:06:24 Ewer-Open-APS openaps: reporting model.json
Jan 24 00:06:25 Ewer-Open-APS openaps: PREFLIGHT OK
Jan 24 00:06:29 Ewer-Open-APS openaps: cgms://JSON/iter_glucose/monitor/glucose.json
Jan 24 00:06:29 Ewer-Open-APS openaps: reporting monitor/glucose.json
Jan 24 00:06:32 Ewer-Open-APS openaps: monitor/clock-zoned.json  raised  can't open 'monitor/clock.json': [Errno 2] No such file or directory: 'monitor/clock.json'
Jan 24 00:06:32 Ewer-Open-APS openaps: tz://JSON/clock/monitor/clock-zoned.json
Jan 24 00:06:32 Ewer-Open-APS openaps: Traceback (most recent call last):
Jan 24 00:06:32 Ewer-Open-APS openaps:   File "/usr/local/bin/openaps-report", line 4, in <module>
Jan 24 00:06:32 Ewer-Open-APS openaps:     __import__('pkg_resources').run_script('openaps==0.0.9', 'openaps-report')
Jan 24 00:06:32 Ewer-Open-APS openaps:   File "build/bdist.linux-armv7l/egg/pkg_resources/__init__.py", line 745, in run_script
Jan 24 00:06:32 Ewer-Open-APS openaps:   File "build/bdist.linux-armv7l/egg/pkg_resources/__init__.py", line 1670, in run_script
Jan 24 00:06:32 Ewer-Open-APS openaps:   File "/usr/local/lib/python2.7/dist-packages/openaps-0.0.9-py2.7.egg/EGG-INFO/scripts/openaps-report", line 82, in <module>
Jan 24 00:06:32 Ewer-Open-APS openaps:     app( )
Jan 24 00:06:32 Ewer-Open-APS openaps:   File "/usr/local/lib/python2.7/dist-packages/openaps-0.0.9-py2.7.egg/openaps/cli/__init__.py", line 44, in __call__
Jan 24 00:06:32 Ewer-Open-APS openaps:     self.run(self.args)
Jan 24 00:06:32 Ewer-Open-APS openaps:   File "/usr/local/lib/python2.7/dist-packages/openaps-0.0.9-py2.7.egg/EGG-INFO/scripts/openaps-report", line 75, in run
Jan 24 00:06:32 Ewer-Open-APS openaps:     output = app(args, self)
Jan 24 00:06:32 Ewer-Open-APS openaps:   File "/usr/local/lib/python2.7/dist-packages/openaps-0.0.9-py2.7.egg/openaps/cli/subcommand.py", line 50, in __call__
Jan 24 00:06:32 Ewer-Open-APS openaps:     return self.method.main(args, app)
Jan 24 00:06:32 Ewer-Open-APS openaps:   File "/usr/local/lib/python2.7/dist-packages/openaps-0.0.9-py2.7.egg/openaps/reports/invoke.py", line 40, in main
Jan 24 00:06:32 Ewer-Open-APS openaps:     output = task.method(args, app)
Jan 24 00:06:32 Ewer-Open-APS openaps:   File "/usr/local/lib/python2.7/dist-packages/openaps-0.0.9-py2.7.egg/openaps/uses/use.py", line 45, in __call__
Jan 24 00:06:32 Ewer-Open-APS openaps:     output = self.main(args, app)
Jan 24 00:06:32 Ewer-Open-APS openaps:   File "/usr/local/lib/python2.7/dist-packages/openaps_contrib-0.0.5-py2.7.egg/openapscontrib/timezones/__init__.py", line 81, in main
Jan 24 00:06:32 Ewer-Open-APS openaps:     inputs = self.get_program(args)
Jan 24 00:06:32 Ewer-Open-APS openaps:   File "/usr/local/lib/python2.7/dist-packages/openaps_contrib-0.0.5-py2.7.egg/openapscontrib/timezones/__init__.py", line 53, in get_program
Jan 24 00:06:32 Ewer-Open-APS openaps:     program = json.load(argparse.FileType('r')(params.get('input')))
Jan 24 00:06:32 Ewer-Open-APS openaps:   File "/usr/lib/python2.7/argparse.py", line 1142, in __call__
Jan 24 00:06:32 Ewer-Open-APS openaps:     raise ArgumentTypeError(message % (string, e))
Jan 24 00:06:32 Ewer-Open-APS openaps: argparse.ArgumentTypeError: can't open 'monitor/clock.json': [Errno 2] No such file or directory: 'monitor/clock.json'
Jan 24 00:06:32 Ewer-Open-APS openaps: No CGM data.
so for some reason my monitor/clock.json is no longer being generated.
@danamlewis regarding @TC2013 comment, yes, I actually caught that myself and was about to open a PR, but realized he had already opened it. That's not my current problem. Thank you.
Dana Lewis
@danamlewis
Jan 24 2016 05:17
Heh k.
Can you try openaps report show | grep clock for troublshooting?
openaps alias show | grep clock also
JaysonEwer
@JaysonEwer
Jan 24 2016 05:23
Yes, I'll do that, but check this out. It appears to be working, but they are removed before I can use them by the gather alias, I think.
pi@Ewer-Open-APS:~/Documents/openaps $ openaps report add monitor/clock-zoned.json JSON tz clock monitor/clock.json
added tz://JSON/clock/monitor/clock-zoned.json
pi@Ewer-Open-APS:~/Documents/openaps $ openaps report invoke monitor/clock-zoned.json
tz://JSON/clock/monitor/clock-zoned.json
monitor/clock-zoned.json  raised  can't open 'monitor/clock.json': [Errno 2] No such file or directory: 'monitor/clock.json'
Traceback (most recent call last):
  File "/usr/local/bin/openaps-report", line 4, in <module>
    __import__('pkg_resources').run_script('openaps==0.0.9', 'openaps-report')
  File "build/bdist.linux-armv7l/egg/pkg_resources/__init__.py", line 745, in run_script
  File "build/bdist.linux-armv7l/egg/pkg_resources/__init__.py", line 1670, in run_script
  File "/usr/local/lib/python2.7/dist-packages/openaps-0.0.9-py2.7.egg/EGG-INFO/scripts/openaps-report", line 82, in <module>
    app( )
  File "/usr/local/lib/python2.7/dist-packages/openaps-0.0.9-py2.7.egg/openaps/cli/__init__.py", line 44, in __call__
    self.run(self.args)
  File "/usr/local/lib/python2.7/dist-packages/openaps-0.0.9-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.0.9-py2.7.egg/openaps/cli/subcommand.py", line 50, in __call__
    return self.method.main(args, app)
  File "/usr/local/lib/python2.7/dist-packages/openaps-0.0.9-py2.7.egg/openaps/reports/invoke.py", line 40, in main
    output = task.method(args, app)
  File "/usr/local/lib/python2.7/dist-packages/openaps-0.0.9-py2.7.egg/openaps/uses/use.py", line 45, in __call__
    output = self.main(args, app)
  File "/usr/local/lib/python2.7/dist-packages/openaps_contrib-0.0.5-py2.7.egg/openapscontrib/timezones/__init__.py", line 81, in main
    inputs = self.get_program(args)
  File "/usr/local/lib/python2.7/dist-packages/openaps_contrib-0.0.5-py2.7.egg/openapscontrib/timezones/__init__.py", line 53, in get_program
    program = json.load(argparse.FileType('r')(params.get('input')))
  File "/usr/lib/python2.7/argparse.py", line 1142, in __call__
    raise ArgumentTypeError(message % (string, e))
argparse.ArgumentTypeError: can't open 'monitor/clock.json': [Errno 2] No such file or directory: 'monitor/clock.json'
pi@Ewer-Open-APS:~/Documents/openaps $ openaps report invoke monitor/clock.json
pump://JSON/read_clock/monitor/clock.json
reporting monitor/clock.json
pi@Ewer-Open-APS:~/Documents/openaps $ openaps report invoke monitor/clock-zoned.json
tz://JSON/clock/monitor/clock-zoned.json
reporting monitor/clock-zoned.json
pi@Ewer-Open-APS:~/Documents/openaps $ cat monitor/clock.json
"2016-01-24T00:19:42"pi@Ewer-Open-APS:~/Documents/openaps $ cat monitor/clock-zoned.json
"2016-01-24T00:19:42-05:00"pi@Ewer-Open-APS:~/Documents/openaps $
I"m sorry for the long paste.
Dana Lewis
@danamlewis
Jan 24 2016 05:26
Long pastes when formatted are no problem :)
Scott Leibrand
@scottleibrand
Jan 24 2016 05:26
that looks good
so your loop needs to do the same thing
it has to run openaps report invoke monitor/clock.json monitor/clock-zoned.json
JaysonEwer
@JaysonEwer
Jan 24 2016 05:27
@scottleibrand Agreed, however, they are vapor, if I wait another 10 seconds and up arrow, both clock.json and clock-zoned.json are gone.
Scott Leibrand
@scottleibrand
Jan 24 2016 05:27
monitor/ gets cleared out by one of your loop aliases
JaysonEwer
@JaysonEwer
Jan 24 2016 05:27
right
Scott Leibrand
@scottleibrand
Jan 24 2016 05:27
it needs to run the clock.json report right before the clock-zoned.json report
if it doesn't run both, -zoned will have no input
JaysonEwer
@JaysonEwer
Jan 24 2016 05:28
right
Scott Leibrand
@scottleibrand
Jan 24 2016 05:28
so do the openaps alias show | grep clock command @danamlewis suggested
and let's see where those reports are getting called
JaysonEwer
@JaysonEwer
Jan 24 2016 05:28
pi@Ewer-Open-APS:~/Documents/openaps $ openaps report show | grep clock
pump://JSON/read_clock/monitor/clock.json
tz://JSON/clock/monitor/clock-zoned.json
pi@Ewer-Open-APS:~/Documents/openaps $
Scott Leibrand
@scottleibrand
Jan 24 2016 05:29
cool, and alias?
JaysonEwer
@JaysonEwer
Jan 24 2016 05:29
pi@Ewer-Open-APS:~/Documents/openaps $ openaps alias show | grep clock
monitor-pump report invoke monitor/clock-zoned.json monitor/temp_basal.json monitor/pumphistory.json monitor/iob.json monitor/reservoir.json monitor/battery.json monitor/status.json
pi@Ewer-Open-APS:~/Documents/openaps $
Scott Leibrand
@scottleibrand
Jan 24 2016 05:29
there you go
you changed clock.json to clock-zoned.json rather than adding it
JaysonEwer
@JaysonEwer
Jan 24 2016 05:30
:-)
Let me add that.
My pi has been up for 10 days straight. :-) I'm being pretty good about keeping it powered and haven't had any other crazy power events. I'm happy I have my history file to copy past from.
Scott Leibrand
@scottleibrand
Jan 24 2016 05:32
you'll love Ctrl-r then
it lets you search through your bash history
JaysonEwer
@JaysonEwer
Jan 24 2016 05:32
nice
I'm not sure I knew that one, thanks!
Scott Leibrand
@scottleibrand
Jan 24 2016 05:33
I used bash for 10 years before learning it. :)
JaysonEwer
@JaysonEwer
Jan 24 2016 05:34
Does order matter when you create an alias?
:-D
Scott Leibrand
@scottleibrand
Jan 24 2016 05:35
the order in which different aliases are created doesn't matter
the order of commands within an alias does
JaysonEwer
@JaysonEwer
Jan 24 2016 05:36
yeah, ok, that's what my problem is...I've got monitor/clock-zoned.json prior to monitor/clock.json
Dana Lewis
@danamlewis
Jan 24 2016 05:36
:+1:
JaysonEwer
@JaysonEwer
Jan 24 2016 05:36
silly question, how do I get out of ctrl+r
:-D
ctrl+c
Scott Leibrand
@scottleibrand
Jan 24 2016 05:37
or esc
or arrow keys
JaysonEwer
@JaysonEwer
Jan 24 2016 05:37
thanks
Scott Leibrand
@scottleibrand
Jan 24 2016 05:37
depending on what you want
Ben West
@bewest
Jan 24 2016 05:37
or ctr-e
JaysonEwer
@JaysonEwer
Jan 24 2016 05:37
nice, I like that
Ben West
@bewest
Jan 24 2016 05:37
:-D
Scott Leibrand
@scottleibrand
Jan 24 2016 05:37
or ctrl-a, or...
;-)
Alin Artiom Kenibasov
@ktomy
Jan 24 2016 05:38
openaps/docs#78 don't know why merge-conflicts exists on that text
Scott Leibrand
@scottleibrand
Jan 24 2016 05:39
did you pull the latest dev?
you can try a rebase...
Alin Artiom Kenibasov
@ktomy
Jan 24 2016 05:42
PULLED LAST DEV IN MY REPOSITORY, MERGED INTO MY MASTER, EDITED THE FILE, NOW TRYING TO MERGE WITH UPSTREAM/DEV
oops, excuse me for caps
Scott Leibrand
@scottleibrand
Jan 24 2016 05:43
:-)
Alin Artiom Kenibasov
@ktomy
Jan 24 2016 05:44
found the problem
will fix now
JaysonEwer
@JaysonEwer
Jan 24 2016 05:46
Sweet, the loop has resumed after that little problem. Thanks for the help everyone! Now back to the Openaps pill. I think I'm close @bewest :-D
BTW, I have been looping for another 24 hours, aside from that little 2ish hour mistake. @danamlewis Is it 3 consecutive nights looping, that I get my COVETED number ;-) or is just 3 nights?
Dana Lewis
@danamlewis
Jan 24 2016 05:49
3 consecutive, because that means you'll have worked out all the major bugs :)
JaysonEwer
@JaysonEwer
Jan 24 2016 05:49
yeah, I need to figure out why I woke up low.
I think because I need to back off my base basal rate
a bit
I set my targets to be 120-120, does that even make sense? It seems to be working, but i'm not sure if it's ideal.
Scott Leibrand
@scottleibrand
Jan 24 2016 05:50
that's good
we have 105-105 right now, but used to be 110-110
and before that 110-120
Dana Lewis
@danamlewis
Jan 24 2016 05:51
Start higher thoufh
JaysonEwer
@JaysonEwer
Jan 24 2016 05:51
I wasn't crazy low this morning, but I was 76ish or something like that.
Dana Lewis
@danamlewis
Jan 24 2016 05:51
Always tell newbies start higher, not perfect. So 120 is reasonable
Scott Leibrand
@scottleibrand
Jan 24 2016 05:51
yeah, if your basals might be off, a higher target will help. maybe even higher than 120
Dana Lewis
@danamlewis
Jan 24 2016 05:52
Yea. Very occasionally I'll touch 78-79 overnight. But that's usually mid night and not when I'm waking up, so would adjust basals and/or consider maybe 130 target for now
Alin Artiom Kenibasov
@ktomy
Jan 24 2016 05:52
@danamlewis now it was merged :) openaps/docs#78 please revise as my english is too bad for writing documentation :)
Dana Lewis
@danamlewis
Jan 24 2016 05:52
Will review :) Thx!
JaysonEwer
@JaysonEwer
Jan 24 2016 05:57
how do I paste an image into this chat?
Dragan Maksimovic
@dm61
Jan 24 2016 05:58
I think you can just drag and drop
Alin Artiom Kenibasov
@ktomy
Jan 24 2016 05:59
control+c, control+v :)
JaysonEwer
@JaysonEwer
Jan 24 2016 05:59
I was just going to show you a quick graph of what I did on the loop today. I think I cheated one too many times, but you can see where I woke up low.
NS.tiff
:-D
Alin Artiom Kenibasov
@ktomy
Jan 24 2016 06:00
just paste it in the line where you are typing, there will be thin horisontal uploading bar right above the typing line.
.tiff ...? :)
JaysonEwer
@JaysonEwer
Jan 24 2016 06:00
grab on the mac defaults to tiff
sorry
Dana Lewis
@danamlewis
Jan 24 2016 06:01
@JaysonEwer I think you can change the default to png
@ktomy your PR looks good! TY.
JaysonEwer
@JaysonEwer
Jan 24 2016 06:02
@danamlewis thanks, i'll try changing it to png.
Dana Lewis
@danamlewis
Jan 24 2016 06:08
and the Gitter phone app doesn't let you do images, unfortunately, unless their latest app upgrade changed something. So for on the go, you'll have to stick it in dropbox or the like (or tweet it, etc) and share the link
JaysonEwer
@JaysonEwer
Jan 24 2016 06:09
thanks for the heads up
Dana Lewis
@danamlewis
Jan 24 2016 06:10
yup. and let me know if you end up working your way through the rest of @dm61 's #77 and how that goes. You can be the additional +1 if the setup as described works.
JaysonEwer
@JaysonEwer
Jan 24 2016 06:14
well, there are a few little things.
I'll do my best to capture and report them.
Dragan Maksimovic
@dm61
Jan 24 2016 06:15
Great!
Dana Lewis
@danamlewis
Jan 24 2016 06:15
Cool.
And sorry again @dm61 For being slow :)
JaysonEwer
@JaysonEwer
Jan 24 2016 06:15
For example, there is a reference to a devicestatus.json, which I don't have defined anywhere.
Dana Lewis
@danamlewis
Jan 24 2016 06:16
That's in NS, probably worth explaining :D
Dragan Maksimovic
@dm61
Jan 24 2016 06:16
I was also very confused by devicestatus.json
JaysonEwer
@JaysonEwer
Jan 24 2016 06:16
Is that the same as upload-status.json?
Dragan Maksimovic
@dm61
Jan 24 2016 06:16
No
It is on NS. But you get the contents back once you upload
JaysonEwer
@JaysonEwer
Jan 24 2016 06:18
ah
Ok, Yes, i'm pretty sure I defined that DEVICESTATUS on my NS site. I'll double check that.
@dm61 , Is this command correct?
ns-upload $NIGHTSCOUT_HOST $API_SECRET devicestatus.json monitor/upload-status.json
Dragan Maksimovic
@dm61
Jan 24 2016 06:25
I think it is correct
you get errors?
JaysonEwer
@JaysonEwer
Jan 24 2016 06:33
Based on the issue I had earlier with my clock.json and clock-zoned.json being out of order, I was wonding if I needed to have the upload-status.json prior to the devicestatus.json.
I don't get any error, but it also seems like I don't get anything. :-)
Dragan Maksimovic
@dm61
Jan 24 2016 06:34
:)
Scott Leibrand
@scottleibrand
Jan 24 2016 06:34
devicestatus.json is a URL, not a local file.
Dragan Maksimovic
@dm61
Jan 24 2016 06:34
you do need to have upload-status.json generated
JaysonEwer
@JaysonEwer
Jan 24 2016 06:35
@scottleibrand Did i specify that url or is that built into openaps?
@dm61 Yes, when I run the upload-status.json manually, I see all the data.
Dragan Maksimovic
@dm61
Jan 24 2016 06:36
then, I would double-check the two env variables
e.g. I recall I had http instead of https and I was getting nothing back, no error, and nothing uploaded
JaysonEwer
@JaysonEwer
Jan 24 2016 06:40
checking...I remember you mentioning that.
Dragan Maksimovic
@dm61
Jan 24 2016 06:42
you can just echo $NIGHTSCOUT_HOST
JaysonEwer
@JaysonEwer
Jan 24 2016 06:43
Yep, its got the https.
Dragan Maksimovic
@dm61
Jan 24 2016 06:45
if your upload-status.json looks ok, then that ns-upload command should work
and API_SECRET is the hashed version?
Scott Leibrand
@scottleibrand
Jan 24 2016 06:47
go to $NIGHTSCOUT_HOST/api/v1/devicestatus.json in your web browser
JaysonEwer
@JaysonEwer
Jan 24 2016 06:47
Yes, it's the hashed version
Thanks @scottleibrand, i'm getting the square brackets.
Scott Leibrand
@scottleibrand
Jan 24 2016 06:48
that means your upload isn't uploading anything
Dragan Maksimovic
@dm61
Jan 24 2016 06:48
means nothing has been uploaded
typos in API_SECRET you used to generated the hashed version?
JaysonEwer
@JaysonEwer
Jan 24 2016 06:52
I don't think so, but I'll regenerate it.
JaysonEwer
@JaysonEwer
Jan 24 2016 06:59
I'll have to work on this some more another time. Thanks for the help everyone. Talk to you later.
Dragan Maksimovic
@dm61
Jan 24 2016 06:59
Have a good night
JaysonEwer
@JaysonEwer
Jan 24 2016 07:01
Thanks, oh, btw, I did find that I had the DEVICESTATUS_ADVANCED in my connection settings rather than the app settings.
I fixed that. Do I need to restart my site?
Dragan Maksimovic
@dm61
Jan 24 2016 07:03
I do not know how that works on Azure; on Heroku, I can just change these variables and it automatically takes the new values - no need to restart manually
JaysonEwer
@JaysonEwer
Jan 24 2016 07:05
ok, thanks, i'm really past my bedtime. :-D Its 2am EST and we have about 30ish inches of snow on the ground.
Dragan Maksimovic
@dm61
Jan 24 2016 07:06
:)
Aaron Michelson
@Aaybob
Jan 24 2016 07:12
i unplugged the memory card on RPi2 again. last time I started over. Is that neccessary? the text looks unchanged but openaps use <> glucose has errors AttributeError: 'NoneType' object has no attribute 'ReadRecords'
Scott Leibrand
@scottleibrand
Jan 24 2016 07:13
that usually just means your CGM isn't plugged in
Dragan Maksimovic
@dm61
Jan 24 2016 07:14
@scottleibrand, offline in determine-basal is just so one can see on the pump that openaps is doing something?
Scott Leibrand
@scottleibrand
Jan 24 2016 07:15
yeah. we probably should retire that
or make it work properly
Dana Lewis
@danamlewis
Jan 24 2016 07:15
:+1:
Scott Leibrand
@scottleibrand
Jan 24 2016 07:15
haven't used it since before oref0 (openaps-js)
Dragan Maksimovic
@dm61
Jan 24 2016 07:15
I am about to try meal assist, so I've noticed that offline thing
Aaron Michelson
@Aaybob
Jan 24 2016 08:10
if i reformat the memory, put on a new raspberry image, then I have github repositories. Why is github on C:\users\something. I'm running it on the RPi2 and I cloned it from http:/github/something? So to make this easier should I keep an image of the card and then just reformat and write the image? I'd like to make the memory card very difficult to make pop out. So that makes popping it out for an image save inconvienient.
Scott Leibrand
@scottleibrand
Jan 24 2016 08:11
You shouldn't have to reformat. Pretty much ever.
But yes, keeping a backup image of your Pi's SD card is a good idea in case of an actual hardware failure or file system corruption.
But most always you just have git corruption or something minor that's easier to fix than starting over.
Oskar Pearson
@oskarpearson
Jan 24 2016 11:25
Hey all. I'm busy testing out oref0 on a UK pump, where we use mmol/L instead of mg/dL
Insulin sensitivities looks like this:

  "units": "mmol/L",
  "sensitivities": [
    {
      "i": 0,
      "start": "00:00:00",
      "sensitivity": 2.2,
      "offset": 0,
      "x": 0
    }
  ],
  "first": 2
}
bg_targets looks like this:
{
  "units": "mmol/L",
  "raw": "0x02 0x00 0x3d 0x43 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00",
  "targets": [
    {
      "high": 6.7,
      "start": "00:00:00",
      "low": 6.1,
      "offset": 0,
      "i": 0,
      "x": 0
    }
  ],
  "first": 2
}
The profile.json contains this:
{"max_iob":2,"type":"current","dia":3,"current_basal":1.4,"max_daily_basal":1.4,"max_basal":2,"min_bg":110,"max_bg":121,"sens":2.2}
but it requires this hack:
--- a/bin/oref0-get-profile.js
+++ b/bin/oref0-get-profile.js
@@ -34,8 +34,19 @@ if (!module.parent) {
     var cwd = process.cwd()
     var pumpsettings_data = require(cwd + '/' + pumpsettings_input);
     var bgtargets_data = require(cwd + '/' + bgtargets_input);
+
+    if (bgtargets_data.units == 'mmol/L') {
+      /* Convert to mg/dL */
+      bgtargets_data.units = 'mg/dL'
+      for (a in bgtargets_data.targets) {
+         var targetarea = bgtargets_data.targets[a];
+         targetarea.high = Math.round(targetarea.high*18.0);
+         targetarea.low = Math.round(targetarea.low*18.0);
+      }
+    }
+
     if (bgtargets_data.units !== 'mg/dL') {
-      console.log('BG Target data is expected to be expressed in mg/dL.'
+      console.log('BG Target data was expected to be expressed in mg/dL.'
                  , 'Found', bgtargets_data.units, 'in', bgtargets_input, '.');
       process.exit(2);
     }
The sensitivity value is still going to be an issue though
I see @sulkaharo has hit part of this before. That's where I copied some of the above from
Is there a similar fix for the sensitivity value that anyone's had to deal with before?
Or should I be using the openaps unit converter to do this?
Oskar Pearson
@oskarpearson
Jan 24 2016 11:40
I'm still testing, but this seems to be a full fix:
--- a/bin/oref0-get-profile.js
+++ b/bin/oref0-get-profile.js
@@ -34,12 +34,37 @@ if (!module.parent) {
     var cwd = process.cwd()
     var pumpsettings_data = require(cwd + '/' + pumpsettings_input);
     var bgtargets_data = require(cwd + '/' + bgtargets_input);
+
+    if (bgtargets_data.units == 'mmol/L') {
+      /* Convert to mg/dL */
+      bgtargets_data.units = 'mg/dL'
+      for (a in bgtargets_data.targets) {
+         var targetarea = bgtargets_data.targets[a];
+         targetarea.high = Math.round(targetarea.high*18.0);
+         targetarea.low = Math.round(targetarea.low*18.0);
+      }
+    }
+
     if (bgtargets_data.units !== 'mg/dL') {
-      console.log('BG Target data is expected to be expressed in mg/dL.'
+      console.log('BG Target data was expected to be expressed in mg/dL.'
                  , 'Found', bgtargets_data.units, 'in', bgtargets_input, '.');
       process.exit(2);
     }
+
     var isf_data = require(cwd + '/' + isf_input);
+    if (isf_data.units == 'mmol/L') {
+       /* Convert to mg/dL */
+       isf_data.units = 'mg/dL'
+       for (a in isf_data.sensitivities) {
+       isf_data.sensitivities[a].sensitivity = Math.round(isf_data.sensitivities[a].sensitivity*18.0);
+       }
+    }
+    if (isf_data.units !== 'mg/dL') {
+        console.log('Insulin sensitivity data was expected to be expressed in mg/dL.'
+               , 'Found', isf_data.units, 'in', isf_input, '.');
+        process.exit(2);
+    }
+
     var basalprofile_data = require(cwd + '/' + basalprofile_input);

     var maxiob_data = { max_iob: 0 };
Scott Leibrand
@scottleibrand
Jan 24 2016 14:51
Others have been using the units tool to convert the files before calling get-profile.
If you mmol users prefer to just do it in get-profile, though, I'm also happy with that.
Tony Zarro
@tzarro
Jan 24 2016 16:12
I'm flying tomorrow, anyone have any hassles with TSA? Any recommendations on dealing with them?
Oskar Pearson
@oskarpearson
Jan 24 2016 16:46
Thanks Scott
@tzarro There've been quite a few people on here saying they haven't had problems... but I'm sure it's like anything - your (air) mileage may vary
Search for 'tsa flying' (July 04 2015) - Dana said she didn't have any issues
Scott Leibrand
@scottleibrand
Jan 24 2016 16:55
Correct. TSA doesn't care about Pi's. Considerations are the same as without the loop, re: scanners vs. pat down. We have TSA Pre-check, which simplifies that a lot: Dana usually goes through the metal detector with no questions.
Toby Canning
@TC2013
Jan 24 2016 16:58
Hi all, I'm using the very simple script recommended for wifi access in the openaps docs. Anyone know how to add a secondary network to that /etc/network/interfaces file so we can run off a hotspot? I know there are directions online, but I've tried a couple unsuccessfully, so I thought if someone could post an example file, that'd be most helpful.
Scott Leibrand
@scottleibrand
Jan 24 2016 17:00
You'll need to switch to using wpa_supplicant.
Toby Canning
@TC2013
Jan 24 2016 17:00
Roger
bummer
Scott Leibrand
@scottleibrand
Jan 24 2016 17:00
That method is only better for bootstrapping if you have no console cable.
(The interfaces one)
Toby Canning
@TC2013
Jan 24 2016 17:01
right, good to know
Scott Leibrand
@scottleibrand
Jan 24 2016 17:01
We perhaps should update docs to use wpa_supplicant even for headless setup.
Since we recommend home+hotspot
credit goes to @sulkaharo 😊
it works great on both Edison and RasPi i am runnning now
since I use our iPhone hotspot when go out or at school with the rig
Scott Leibrand
@scottleibrand
Jan 24 2016 17:05
Can you draft an update to the docs? That's actually pretty close to (one of) the recommended configs.
Ali Mazaheri
@amazaheri
Jan 24 2016 17:06
:+1:
JaysonEwer
@JaysonEwer
Jan 24 2016 17:35
@TC2013 I've got my Pi switching between my home wifi and my iPhone 6s AT&T hotspot mode. It works pretty well. I'm still working to the Nightscout OpenAPS uploads working, but otherwise, i'm able to monitor it while i'm on the road this way. I ended up having problems trying to get this to work using the wifi adapter that came with my KanaKit, but I ordered the following and its working great. Edimax Technology Co., Ltd EW-7811Un 802.11n Wireless Adapter [Realtek RTL8188CUS]
Peter Miller
@ochenmiller
Jan 24 2016 17:40
Quick update: So far having a pocket sized openaps implementation (RPiZero, wixel, hm-11, Carelink, 2,500mAH battery) has been very positive. Even without switching USB power on and off, I've gotten about 16 hours of run time at a stretch. It's been very gratifying to see hours at a stretch of error free logs. Connectivity is very dependent on body placement however. If the unit is located in such a way that Matt's body comes between the pump and the rig, then connectivity drops right off. So, he carries it in the pocket next to the pump. This leads me to think that with better power management and smaller components (read Edison, CC1111, 1,200 or maybe 500 mAH battery) this could be designed to ride along with the pump. Thinking a modified or custom designed clip that holds both pump and rig.
Scott Leibrand
@scottleibrand
Jan 24 2016 17:42
If you want an intermediate solution, the TI stick is quite small and works quite well with the Pi. Or you could probably go with the ERF or Slice of Radio options, though not sure how they work with the Pi Zero.
Peter Miller
@ochenmiller
Jan 24 2016 17:42
Would want to make them easily separable so that the rig could be swapped out for charging. The battery gets hot during charging cycles. Pretty cool under operation though.
Scott Leibrand
@scottleibrand
Jan 24 2016 17:43
TI stick is USB, so would be a direct replacement for Carelink.
Biggest challenge with it is flashing the firmware with a cc-debugger or goodfet or something. Someone else did that part for me on the one we got working yesterday. :-)
Peter Miller
@ochenmiller
Jan 24 2016 17:44
Will definitely be looking at the TI or other quite soon.
Scott Leibrand
@scottleibrand
Jan 24 2016 17:44
actually maybe bigger challenge is tuning: some pumps are just not compatible with the current settings.
Peter Miller
@ochenmiller
Jan 24 2016 17:44
:smile:
Scott Leibrand
@scottleibrand
Jan 24 2016 17:45
we are about to switch pumps to use the one that works with it. Both 522s.
Peter Miller
@ochenmiller
Jan 24 2016 17:45
So one worked well, and the other didn't?
Scott Leibrand
@scottleibrand
Jan 24 2016 17:46
@ps2 and @oskarpearson have been doing awesome work, and think they can get auto-tuning working though.
Right.
Peter Miller
@ochenmiller
Jan 24 2016 17:46
It's about frequency drift, tuning?
Scott Leibrand
@scottleibrand
Jan 24 2016 17:46
Or base frequency between different pumps, probably.
We're not sure yet why some don't work.
But we have seen detuning from a pump being in body contact.
Peter Miller
@ochenmiller
Jan 24 2016 17:47
Interesting. I've been following the chatter about all that, but not closely.
Scott Leibrand
@scottleibrand
Jan 24 2016 17:47
Where we = not me. ;-)
Peter Miller
@ochenmiller
Jan 24 2016 17:48
I've definitely seen that when Matt's been on top of the pump. It will connect for shorter commands, but not the complicated ones.
Ali Mazaheri
@amazaheri
Jan 24 2016 17:48
@scottleibrand admit it you love soldering :)
Peter Miller
@ochenmiller
Jan 24 2016 17:48
we = not me too!
Scott Leibrand
@scottleibrand
Jan 24 2016 17:49
Don't think I've ever tried soldering actually.
Ali Mazaheri
@amazaheri
Jan 24 2016 17:49
we can try some stuff next week :)
as long as smoke detector cooperates
Peter Miller
@ochenmiller
Jan 24 2016 17:49
Be sure to shake that big blob of solder off the iron AWAY from your face. Lessons learned.
Ali Mazaheri
@amazaheri
Jan 24 2016 17:50
lol, when I did mine at MS office the facility team went crazy lol
Peter Miller
@ochenmiller
Jan 24 2016 17:50
smoke?
smell?
Ali Mazaheri
@amazaheri
Jan 24 2016 17:51
both I told them Chill!
and had to get an approval :)
Peter Miller
@ochenmiller
Jan 24 2016 17:52
The face of engineering sure has changed! Approval to solder.
Ali Mazaheri
@amazaheri
Jan 24 2016 17:53
:)
well when a software dude try doing it is sure raises eye brows :)
I told them last time I did was back in college, knowing I am an old fart they were more concerend
Scott Leibrand
@scottleibrand
Jan 24 2016 17:54
Heh
JaysonEwer
@JaysonEwer
Jan 24 2016 18:00
Does anyone have a recommendation for a soldering iron? Or is a basic one I can pickup from Home Depot good enough?
Ali Mazaheri
@amazaheri
Jan 24 2016 18:10
@TC2013 had some recommendations
Scott Leibrand
@scottleibrand
Jan 24 2016 18:25

hmm, just flashed my edison with ubilinus, and now it's in a reboot loop. at one point in the boot process I get:

[    0.768934] pca953x 1-0020: failed reading register
[    0.769344] pca953x 1-0021: failed reading register
[    0.779219] pca953x 1-0022: failed reading register
[    0.779613] pca953x 1-0023: failed reading register
[    1.646457] pmic_ccsm pmic_ccsm: Error reading battery profile from battid frmwrk
[    1.655176] pmic_ccsm pmic_ccsm: Battery Over heat exception
[    1.655263] pmic_ccsm pmic_ccsm: Battery0 temperature inside boundary

and the last thing it does before dropping back to bootloader is:

[  OK  ] Mounted Configuration File System.
[  OK  ] Mounted FUSE Control File System.
[  OK  ] Started Create Static Device Nodes in /dev.
[  OK  ] Started Load/Save Random Seed.
         Starting udev Kernel Device Manager...
[  OK  ] Reached target Local File Systems (Pre).
         Mounting /var/volatile...
[  OK  ] Started udev Kernel Device Manager.
[  OK  ] Mounted /var/volatile.
[  OK  ] Reached target Local File Systems.
         Starting Trigger Flushing of Journal to Persistent Storage...
         Starting Create Volatile Files and Directories...
[  OK  ] Started Create Volatile Files and Directories.
[  OK  ] Started Trigger Flushing of Journal to Persistent Storage.


******************************
PSH KERNEL VERSION: b0182727
                WR: 20104000
******************************

SCU IPC: 0x800000d0  0xfffce92c

PSH miaHOB version: TNG.B0.VVBD.0000000c

microkernel built 23:15:13 Apr 24 2014

******* PSH loader *******
PCM page cache size = 192 KB
Cache Constraint = 0 Pages
Arming IPC driver ..
Adding page store pool ..
PagestoreAddr(IMR Start Address) = 0x04899000
pageStoreSize(IMR Size)          = 0x00080000

*** Ready to receive application ***
trying it on wall power, and looks like it's getting further
guess the Pi only provides enough power for basic bootloader functions, not for it to boot up completely
JaysonEwer
@JaysonEwer
Jan 24 2016 19:26
@amazaheri Thank you, i'll look back for @TC2013 recommendations.
John Males
@johnmales
Jan 24 2016 19:38

Hey @oskarpearson, as @scottleibrand mentioned there are unit conversions in oref0, in vendor “units", device “units". I have an intermediate step after reading targets and sensitivities to convert values to mg/dl - the following is in my openaps.ini:

[vendor "units"]
vendor = openaps.vendors.units

[device "units"]
vendor = units
extra = units.ini

[report "read_bg_targets_mgdl.json"]
device = units
to = mg/dL
use = bg_targets
input = read_bg_targets.json
reporter = JSON

[report "read_insulin_sensitivities_mgdl.json"]
device = units
to = mg/dL
use = insulin_sensitivities
input = read_insulin_sensitivities.json
reporter = JSON

I think as @bewest mentioned, even if the units are in mg/dl to start with this won’t cause any issues, the units will just stay the same.

Dana Lewis
@danamlewis
Jan 24 2016 20:07
@tzarro still no issues flying with TSA. My Pis, etc go through the X-ray in my carry on bag and never get a second look. The one time (before I had precheck) when I got a pat down + bag search because I opted out of body scanners, no problem or even questions when they saw all 4 Pis & batteries & cords.
Ben West
@bewest
Jan 24 2016 20:18
right, @johnmales
I'm going to recommend doing read_foo-raw.json
then use units and timezone tools
btw, this is what I mean by we are still discovering what an AP needs to do
Scott Leibrand
@scottleibrand
Jan 24 2016 20:19
should we put the raw stuff into the normal docs even for mg/dL users?
Ben West
@bewest
Jan 24 2016 20:19
yeah
for units we should just always do it
same pattern for timezone
might come up with new "device" for openaps that knows about both these things
or knows how to append list of things to do
Scott Leibrand
@scottleibrand
Jan 24 2016 20:20
for now, we just need a volunteer to update the docs to use -raw and units
Ben West
@bewest
Jan 24 2016 20:20
so you can run various filters inline, maybe
oref0-manage maybe, but in python
maybe new name
mungerific
orefify
0refify, haha
oreificator
Scott Leibrand
@scottleibrand
Jan 24 2016 20:22
obrother
John Males
@johnmales
Jan 24 2016 20:23
omg?
Scott Leibrand
@scottleibrand
Jan 24 2016 20:23
;-)
Dana Lewis
@danamlewis
Jan 24 2016 20:23
Oi vey
John Males
@johnmales
Jan 24 2016 20:24
I'll try and get the docs updated for the unit conversion today as a starting point
Scott Leibrand
@scottleibrand
Jan 24 2016 20:25
thx
Ben West
@bewest
Jan 24 2016 20:26
oivey could work
would be fun to type openaps use oivey bg_targets --in-place settings/bg-targets.json
John Males
@johnmales
Jan 24 2016 20:28
@scottleibrand I'm trying to modify your https://github.com/openaps/oref0/blob/master/bin/ns-uploader-setup.sh script to work with a medtronic CGM. I need to add a step to use the mm-format-glucose for the glucose values coming from the pump and am trying to figure out where to add this, after the monitor/glucose.json report is run. My understanding of shell scripting is not great
Dana Lewis
@danamlewis
Jan 24 2016 20:28
FWIw I was being snarky @bewest :)
Scott Leibrand
@scottleibrand
Jan 24 2016 20:30
A shell script is just a bunch of individual shell commands. So figure out what works on the command line, and then put that into the script.
Scott Leibrand
@scottleibrand
Jan 24 2016 20:51
@bewest you have openaps running on an edison, right?
did you upgrade from wheezy to jessie? what did you decide on reasons to do so vs. not?
Ben West
@bewest
Jan 24 2016 21:25
I have both jessie and wheezy running
actually, I have a working build system where I can compile working debs for both
I've compiled debs for bluez that work for both jessie and wheezy
launchpad's PPA system won't let me host non-ubuntu debs
so if someone could help me set up and maintain a deb repo online, we could make this whole thing a lot easier pretty quickly
:-D
I'm not using edison currently
I have four standing by, but been too busy debugging/developing on other stuff to set them up
edison uses a different build system; I've used it before but it's a little more complicated/involved
btw, pbuilder is a wonderful wonderful tool :-D
Ben West
@bewest
Jan 24 2016 21:31
kI need another laptop I thin
the trackpad on this one keeps messing up the typing
very sensitive/hot
also want to run jessie on my laptop
maybe I'll risk an actual upgrade
I'm running jessie on half my rpi now
JaysonEwer
@JaysonEwer
Jan 24 2016 21:43
@bewest, Regarding your comment yesterday about making sure all reports related to the NS openaps plugin are zoned correctly, I"m working on doing that, but I'm wondering if there is any guidance on this matter? I was able to create the monitor/clock-zoned.json and was able to figure out how to create monitor/pumphistory-zoned.json using the rezone option, rather than the clock option, but when I run my monitor/upload-status.json report, I can see that some of the timestamps are NOT zoned. I'm wondering if I'm approaching this the correct way or not. :-)
pi@Ewer-Open-APS:~/Documents/openaps $ openaps report invoke monitor/upload-status.json
ns-status://JSON/shell/monitor/upload-status.json
reporting monitor/upload-status.json
pi@Ewer-Open-APS:~/Documents/openaps $ cat monitor/upload-status.json
{
  "pump": {
    "battery": {
      "status": "normal",
      "voltage": 1.3
    },
    "status": {
      "status": "normal",
      "timestamp": "2016-01-24T21:38:30.000Z",
      "bolusing": false,
      "suspended": false
    },
    "reservoir": 96.2,
    "clock": "2016-01-24T16:37:26-05:00"
  },
  "openaps": {
    "suggested": {
      "bg": 130,
      "temp": "absolute",
      "snoozeBG": 146,
      "timestamp": "2016-01-24T21:38:43.000Z",
      "reason": "Eventual BG 146>110, adj. req. rate:3.3 to maxSafeBasal:3.0, temp 3 >~ req 3U/hr",
      "eventualBG": 146,
      "tick": "+5"
    },
    "iob": {
      "timestamp": "2016-01-24T21:38:27.000Z",
      "activity": 0.023354643308080833,
      "iob": 0.31894302041187506,
      "bolusiob": 0
    },
    "enacted": {
      "bg": 114,
      "temp": "absolute",
      "snoozeBG": 141,
      "recieved": true,
      "reason": "Eventual BG 141>110, adj. req. rate:3.1 to maxSafeBasal:3.0, temp 2.875<3U/hr",
      "rate": 3,
      "eventualBG": 141,
      "timestamp": "2016-01-24T21:16:47.000Z",
      "duration": 30,
      "tick": "+3"
    }
  }
}
Ben West
@bewest
Jan 24 2016 21:43
ah, I did last in wrong channel
@JaysonEwer let's dissect the report
let's run it manually using the openaps use tool
JaysonEwer
@JaysonEwer
Jan 24 2016 21:49

Ok, so, I guess that's where one of my questions comes in. :-D

pi@Ewer-Open-APS:~/Documents/openaps $ openaps use pump read_status
{
  "status": "normal",
  "bolusing": false,
  "suspended": false
}pi@Ewer-Open-APS:~/Documents/openaps $

When I check the pump status, I don't see where the upload-status.json is deriving the timestamp associated with the status stanza.

JaysonEwer
@JaysonEwer
Jan 24 2016 21:58
How do I get all of the included reports in the monitor/upload-status report to use the same zoned information? It seems to be hit or miss at the moment. Is there a global setting of any sort?
[report "monitor/upload-status.json"]
suggested = enact/suggested.json
status = monitor/status.json
use = shell
reservoir = monitor/reservoir.json
reporter = JSON
battery = monitor/battery.json
clock = monitor/clock-zoned.json
json_default = True
device = ns-status
remainder = []
iob = monitor/iob.json
enacted = enact/enacted.json
Ah, do I need to update my ns-status to use clock-zoned?
Well, it appears it is using clock-zoned, but its called "clock" Is that going to call clock.json, rather than clock-zoned.json, due to the name of my positional argument being called "clock", rather than clock-zoned?
Sulka Haro
@sulkaharo
Jan 24 2016 22:03
Hey @scottleibrand / @danamlewis what's the conditions for Meal Assists triggering? Looks like it's suddenly never activating and I can't figure out why.
JaysonEwer
@JaysonEwer
Jan 24 2016 22:13
@bewest, did you see my response to your "lets dissect the report"? I'll be back in a bit, I need to run outside for a few minutes before the sun goes down. brb
Dana Lewis
@danamlewis
Jan 24 2016 22:15
@sulkaharo If you have carbs you haven't bolused for; or if you're rising more than 7 points every 5 min and have been for a while. If either of those are met, it'll ignore bolus iob and do meal assist and change target to be something like 95 (changes min to 80, target changes as a result). It'll also trigger if you're above 180 if you're rising (regardless of carbs), it also lowers min which results in lowered target.
Are you still entering carbs in? That would be the main thing. Or maybe you're doing bolus to cover all the carbs? I often don't trigger it because of the way I meal bolus.
Scott Leibrand
@scottleibrand
Jan 24 2016 22:19
@JaysonEwer the "clock" argument name doesn't matter. It could be called "Fred" as long as it's consistent in both places. ;-)
what matters is that you are providing clock-zoned.json as the "clock" input.
Jim Matheson
@jmatheson
Jan 24 2016 22:29
I can’t seem to get OpenAPS pill to show up in NS. i have openaps enabled and DEVICESTATUS_ADVANCED set up as a Custom configration value. Any ideas?
Dana Lewis
@danamlewis
Jan 24 2016 22:31
Check @dm61's PR #77 to dev docs to see if any of that helps
Jim Matheson
@jmatheson
Jan 24 2016 22:31
I reviewed that as well, no dice.
it does not show up as a plugin tickbox in settings
Ben West
@bewest
Jan 24 2016 22:39
the positional parameter should not be renamed
let's try using the openaps use
so the device is ns-status
so it'll start with openaps use ns-status shell ....
Dana Lewis
@danamlewis
Jan 24 2016 22:39
Do you have the dev branch of Ns?
Jim Matheson
@jmatheson
Jan 24 2016 22:39
yes, on dev
Ben West
@bewest
Jan 24 2016 22:40
so we can start filling it in...
usage: [ 'node', '/usr/local/bin/ns-status' ] <clock.json> <iob.json> <suggested.json> <enacted.json> <battery.json> <reservoir.json> <status.json>
given tehse:
This message was deleted
do you have a monitor/iob.json or is it enact/iob.json?
from the output prior, it looks like the output from oref0 tools is not zoned?
gah
Rachel Sandlain
@audiefile
Jan 24 2016 22:43
@jmatheson
Ben West
@bewest
Jan 24 2016 22:43
suggested = enact/suggested.json
status = monitor/status.json
use = shell
reservoir = monitor/reservoir.json
reporter = JSON
battery = monitor/battery.json
clock = monitor/clock-zoned.json
json_default = True
device = ns-status
remainder = []
iob = monitor/iob.json
enacted = enact/enacted.json
Rachel Sandlain
@audiefile
Jan 24 2016 22:43
Did you add openaps to your enable car?
Jim Matheson
@jmatheson
Jan 24 2016 22:43
yes
Ben West
@bewest
Jan 24 2016 22:45
openaps use ns-status shell monitor/clock-zoned.json monitor/iob.json enact/suggested.json enact/enacted.json monitor/battery.json monitor/reservoir.json monitor/status.json
Jim Matheson
@jmatheson
Jan 24 2016 22:46
i tried setting up DEVICESTATUS_ADVANCED in app settings and connection strings. neither worked. (I am on Azure)
Ben West
@bewest
Jan 24 2016 22:46
@bewest @JaysonEwer ^^
Rachel Sandlain
@audiefile
Jan 24 2016 22:48
Oh so you should know you will blow through the free tier on azure. I suggest switching to hobby tier heroku. That could be (part of) the problem
Jim Matheson
@jmatheson
Jan 24 2016 22:50
not sure why that would have to do with this issue.
Sulka Haro
@sulkaharo
Jan 24 2016 22:52
@danamlewis yeah we're using the wizard, with carbs marked down
Jim Matheson
@jmatheson
Jan 24 2016 22:53
i have verified that i am not near the limit, so i am going to assume that is a non issue.
Jason Curry
@mccgm
Jan 24 2016 22:53
I'm just running all my oref0 reports...all the reports run fine and the iob is calculating just fine...now, the suggested calculations are not happening because I'm getting a "BG data is too old or clock is not set correctly" I just set the clocks on my cgm and pump to match the computer and RP, but still getting the error. What am I overlooking?
Rachel Sandlain
@audiefile
Jan 24 2016 22:54
They changed you make to the config might not be saving properly. Although probably not If you aren't near the cap.
Jim Matheson
@jmatheson
Jan 24 2016 22:54
I am also assuming that if i follow this document top to bottm I can assume i will see the pill before doing the items below it on the page https://github.com/dm61/docs/blob/dev/docs/Automate-system/vizualization.md
Rachel Sandlain
@audiefile
Jan 24 2016 22:58
I would think so. Its been a while since I set it up so I don't remember what I did.
Maybe Not though. You could try sending the data to see if it needs data to show up
tazitoo
@tazitoo
Jan 24 2016 23:04
@mccgm - had similar issues...did not realize my CGM receiver was set to 2015 <slaps forehead>. But probably not your issue...
@mccgm - double checked your reports are getting created correctly? (i.e. remove all reports, then regenerate them again)
Jason Curry
@mccgm
Jan 24 2016 23:11
@tazitoo Thanks, I have cleared the directories and re-run the reports 3x now. I'll keep checking
Scott Leibrand
@scottleibrand
Jan 24 2016 23:13
dig in a little deeper then
look at the contents of your most recent entry in glucose.json
tazitoo
@tazitoo
Jan 24 2016 23:16
And OMG - have never been so happy to see a little circle appear on an LCD before...just successfully set a temp basal on my 715 using openaps!
Scott Leibrand
@scottleibrand
Jan 24 2016 23:16
:-D :+1:
@mccgm if you'd like, paste your most recent glucose.json entry here, with ``` (three backticks) on a line by itself before and after the paste
tazitoo
@tazitoo
Jan 24 2016 23:17
I think I tripped myself up by setting the temp basal to be percentage, rather than absolute. I've been using a t:slim - so I could relate to the percentage better...
Scott Leibrand
@scottleibrand
Jan 24 2016 23:17
yeah, absolute is an absolute requirement
tazitoo
@tazitoo
Jan 24 2016 23:18
Did I miss that in the docs?
Scott Leibrand
@scottleibrand
Jan 24 2016 23:18
you can't set a new temp over top of a percentage temp without canceling the old one first, so we'd have to change quite a few things to support percentage temps
not sure. if you could find the most logical place to document that, and if it's not documented there, add it to your own fork of the docs, you can then submit a pull request to add it to the main docs
Dana Lewis
@danamlewis
Jan 24 2016 23:20
Congrats @tazitoo !
tazitoo
@tazitoo
Jan 24 2016 23:20
Okay - I've got some other notes I should add to the docs as well.
Scott Leibrand
@scottleibrand
Jan 24 2016 23:20
that's the only way these docs get improved: people who run through the process update them with what they learned. :)
Dana Lewis
@danamlewis
Jan 24 2016 23:20
Excellent. Make sure to pull a fresh copy from dev!
tazitoo
@tazitoo
Jan 24 2016 23:21
Troubleshooting has been interesting - I'm open looping to a pump that's not connected to me. Still using the t:slim. Have to get used to the medtronic (getting there...but the weekends seem too short), then open loop for real...
Has openaps been installed on os x? I'm thinking of ways to extend my loop bubble. I've only got one USB stick...but multiple computes I can plug it into (pi for sleep, macbook laptop at work)...
Scott Leibrand
@scottleibrand
Jan 24 2016 23:24
most people just carry their Pi around. Not sure if anyone has gotten it working on OS X yet: I think @bewest is running Linux on his mac...
Tecknet batteries make it easy to take the Pi with you without worrying about it getting turned off and causing git corruption
JaysonEwer
@JaysonEwer
Jan 24 2016 23:27
@bewest Thank you for the assistance. I'll check into getting the oref0 stuff zoned. Here is the output of the openaps use command.
pi@Ewer-Open-APS:~/Documents/openaps $ openaps use ns-status shell monitor/clock-zoned.json monitor/iob.json enact/suggested.json enact/enacted.json monitor/battery.json monitor/reservoir.json monitor/status.json
{
  "pump": {
    "battery": {
      "status": "normal",
      "voltage": 1.26
    },
    "status": {
      "status": "normal",
      "timestamp": "2016-01-24T23:26:30.000Z",
      "bolusing": false,
      "suspended": false
    },
    "reservoir": 91.8,
    "clock": "2016-01-24T18:25:26-05:00"
  },
  "openaps": {
    "suggested": {
      "bg": 122,
      "temp": "absolute",
      "snoozeBG": 119,
      "timestamp": "2016-01-24T23:26:43.000Z",
      "reason": "Eventual BG 105<120, temp 0.05 <~ req 2U/hr",
      "eventualBG": 105,
      "tick": "+2"
    },
    "iob": {
      "timestamp": "2016-01-24T23:26:27.000Z",
      "activity": 0.008633542821969696,
      "iob": 0.44111836627833934,
      "bolusiob": 0.18469111110750003
    },
    "enacted": {
      "bg": 123,
      "temp": "absolute",
      "snoozeBG": 71,
      "recieved": true,
      "reason": "Eventual BG 45<120, no temp, setting 0.04U/hr",
      "rate": 0.05,
      "eventualBG": 45,
      "timestamp": "2016-01-24T23:11:47.000Z",
      "duration": 30,
      "tick": -13
    }
  }
}pi@Ewer-Open-APS:~/Documents/openaps $
Scott Leibrand
@scottleibrand
Jan 24 2016 23:29
what do you mean by "getting the oref0 stuff zoned"?
all of those timestamps are absolute already: most of them have a Z at the end, indicating zulu (UTC) time
what is the problem you're actually trying to troubleshoot? timezone mismatches shouldn't prevent things from uploading, they'll just mean things get timestamped wrong
JaysonEwer
@JaysonEwer
Jan 24 2016 23:31
@scottleibrand So, I think @bewest was indicating my lack of zoning on some of the output was related to oref0 not being zoned? Did I misunderstand what he was saying?
bewest
17:40
so we can start filling it in...
usage: [ 'node', '/usr/local/bin/ns-status' ] <clock.json> <iob.json> <suggested.json> <enacted.json> <battery.json> <reservoir.json> <status.json>
given tehse:
This message was deleted
do you have a monitor/iob.json or is it enact/iob.json?
from the output prior, it looks like the output from oref0 tools is not zoned?
gah
Scott Leibrand
@scottleibrand
Jan 24 2016 23:31
not sure what he meant
JaysonEwer
@JaysonEwer
Jan 24 2016 23:31
@scottleibrand Yeah, I guess that's a very good point. The zoning will need to be fixed, but its not what is preventing me from uploading.
Scott Leibrand
@scottleibrand
Jan 24 2016 23:32
I think you are probably set up correctly for timezones now
what happens when you run ns-status manually with all the right arguments?
tazitoo
@tazitoo
Jan 24 2016 23:34
@scottleibrand - the Teknet battery can power the pi and recharge simultaneously? If so seems like a simple solution. :smile:
Scott Leibrand
@scottleibrand
Jan 24 2016 23:34
yep
tazitoo
@tazitoo
Jan 24 2016 23:35
Sweet. Any experience with longevity? (...assuming the 15000 would be the more desirable...)
Scott Leibrand
@scottleibrand
Jan 24 2016 23:36
yeah, that one lasts up to 24h
you can get away with the smaller ones if you're good about charging when you're near power
they'll last most of the day between charges
we use the 15000, but also have two smaller ones
Jason Curry
@mccgm
Jan 24 2016 23:38
@scottleibrand ``` $ cat monitor/glucose.json
[
{
"trend_arrow": "45_DOWN",
"system_time": "2016-01-25T00:19:14",
"display_time": "2016-01-24T16:22:34",
"glucose": 143
},
{
"trend_arrow": "45_DOWN",
"system_time": "2016-01-25T00:14:14",
"display_time": "2016-01-24T16:17:34",
"glucose": 151
},
{
"trend_arrow": "45_DOWN",
"system_time": "2016-01-25T00:09:15",
"display_time": "2016-01-24T16:12:35",
"glucose": 161
},
{
"trend_arrow": "45_DOWN",
"system_time": "2016-01-25T00:04:14",
"display_time": "2016-01-24T16:07:34",
"glucose": 171
},
{
"trend_arrow": "FLAT",
"system_time": "2016-01-24T23:59:14",
"display_time": "2016-01-24T16:02:34",
"glucose": 181
}
JaysonEwer
@JaysonEwer
Jan 24 2016 23:38

Well, I'm pretty sure I've got that piece working. ns-status is being used by the monitor/upload-status.json report, right?

openaps report add monitor/upload-status.json JSON shell ns-status monitor/clock-zoned.json monitor/iob.json enact/suggested.json enact/enacted.json monitor/battery.json monitor/reservoir.json monitor/status.json

And the output of my monitor/upload-status.json report is:

pi@Ewer-Open-APS:~/Documents/openaps $ openaps report invoke monitor/upload-status.json
ns-status://JSON/shell/monitor/upload-status.json
reporting monitor/upload-status.json
pi@Ewer-Open-APS:~/Documents/openaps $ cat monitor/upload-status.json
{
  "pump": {
    "battery": {
      "status": "normal",
      "voltage": 1.26
    },
    "status": {
      "status": "normal",
      "timestamp": "2016-01-24T23:37:29.000Z",
      "bolusing": false,
      "suspended": false
    },
    "reservoir": 91.5,
    "clock": "2016-01-24T18:36:26-05:00"
  },
  "openaps": {
    "suggested": {
      "bg": 129,
      "temp": "absolute",
      "snoozeBG": 138,
      "timestamp": "2016-01-24T23:37:55.000Z",
      "reason": "Eventual BG 131>120, temp 2.5 >~ req 2.44U/hr",
      "eventualBG": 131,
      "tick": "+5"
    },
    "iob": {
      "timestamp": "2016-01-24T23:37:26.000Z",
      "activity": 0.011487799526515158,
      "iob": 0.31274838268595917,
      "bolusiob": 0.09972983580749999
    },
    "enacted": {
      "bg": 129,
      "temp": "absolute",
      "snoozeBG": 141,
      "recieved": true,
      "reason": "Eventual BG 133>120, temp 2<2.52U/hr",
      "rate": 2.5,
      "eventualBG": 133,
      "timestamp": "2016-01-24T23:36:50.000Z",
      "duration": 30,
      "tick": "+5"
    }
  }
}pi@Ewer-Open-APS:~/Documents/openaps $
scottleibrand @scottleibrand idly wonders why everyone has trouble with putting backticks on their own line
tazitoo
@tazitoo
Jan 24 2016 23:39
Thanks - </me shuttles off to convenient on-line shopping experience>
Scott Leibrand
@scottleibrand
Jan 24 2016 23:39
@mccgm and what about date and cat monitor/clock.json?
@JaysonEwer so looks like upload-status.json is being successfully created
JaysonEwer
@JaysonEwer
Jan 24 2016 23:40
@scottleibrand yep
Scott Leibrand
@scottleibrand
Jan 24 2016 23:41
how are you uploading that to NS?
Daniel Bjørnbakk
@danibjor
Jan 24 2016 23:42
anyone know if the medtronic enlite sensor could be used with the 715 pump?
Scott Leibrand
@scottleibrand
Jan 24 2016 23:42
I vaguely recall that being added in the 722. could be wrong though
Daniel Bjørnbakk
@danibjor
Jan 24 2016 23:42
cannot find sensor stuff in the menus like on the "write protected" 745
JaysonEwer
@JaysonEwer
Jan 24 2016 23:42
Well, i've tried the manual approach using @dm61's document here: https://github.com/dm61/docs/blob/dev/docs/Automate-system/vizualization.md
ns-upload $NIGHTSCOUT_HOST $API_SECRET devicestatus.json monitor/upload-status.json
But that doesn't seem to work.
Scott Leibrand
@scottleibrand
Jan 24 2016 23:43
do echo $NIGHTSCOUT_HOST $API_SECRET and make sure those are set in your shell. (don't paste them here though) :)
JaysonEwer
@JaysonEwer
Jan 24 2016 23:43
k
Scott Leibrand
@scottleibrand
Jan 24 2016 23:44
and then, once they are, run the ns-upload command you pasted, and paste its output
JaysonEwer
@JaysonEwer
Jan 24 2016 23:44
They are set in my shell.
That's the thing, there has never been any output to that command.
Scott Leibrand
@scottleibrand
Jan 24 2016 23:44
k...
JaysonEwer
@JaysonEwer
Jan 24 2016 23:44
but let me do it now, just to make sure
Jason Curry
@mccgm
Jan 24 2016 23:46
@scottleibrand wow. You're awesome. I now have a real life suggested.json. ?? No idea what happened, but I'll take it
Scott Leibrand
@scottleibrand
Jan 24 2016 23:48
when I run ns-upload, I get output like this: [{"openaps":{"iob":{"iob": ... "tick":"+9"}},"pump":{"clock":"2016-01-24T15:44:03-08:00","battery":{"status":"normal","voltage":1.28},"reservoir":129.8,"status":{"status":"normal","bolusing":false,"suspended":false,"timestamp":"2016-01-24T23:44:50.000Z"}},"created_at":"2016-01-24T23:46:59.115Z","_id":"56a5627388f00ec0772ade02"}]
JaysonEwer
@JaysonEwer
Jan 24 2016 23:49
@scottleibrand I wait for my loop to complete, i've got it running every minute for my testing. Then I issue the following two commands and when I issue the ns-upload command It just goes to the next line.
pi@Ewer-Open-APS:~/Documents/openaps $ openaps report invoke monitor/upload-status.json
ns-status://JSON/shell/monitor/upload-status.json
reporting monitor/upload-status.json
pi@Ewer-Open-APS:~/Documents/openaps $ ns-upload $NIGHTSCOUT_HOST $API_SECRET devicestatus.json monitor/upload-status.json
pi@Ewer-Open-APS:~/Documents/openaps $
ah, cool
Scott Leibrand
@scottleibrand
Jan 24 2016 23:50
basically it should be the contents of your upload-status.json with [] around it
JaysonEwer
@JaysonEwer
Jan 24 2016 23:50
So, I definitely don't have that piece working properly. That would be a good "expected output" to add to that document. ;-)
Scott Leibrand
@scottleibrand
Jan 24 2016 23:50
you should try running it manually
JaysonEwer
@JaysonEwer
Jan 24 2016 23:51
try running what manually? I thought that's what I was doing?
Scott Leibrand
@scottleibrand
Jan 24 2016 23:51
ok. thought you were gonna let your loop do it
that's a different environment though
so also good to do it manually, that's all
but I'm preaching to the choir it sounds like :)
JaysonEwer
@JaysonEwer
Jan 24 2016 23:52
well, in order to populate some of the per-requisite reports, I need to run these manual commands in close proximity to when the loop runs.
Scott Leibrand
@scottleibrand
Jan 24 2016 23:52
you should be able to pause the loop and run the prerequisite commands manually
JaysonEwer
@JaysonEwer
Jan 24 2016 23:52
sure
Scott Leibrand
@scottleibrand
Jan 24 2016 23:53
that's the reason they're all discrete commands and not one big loop.sh :)
JaysonEwer
@JaysonEwer
Jan 24 2016 23:53
remind me how to pause the loop? :-D Do I just command out my cronjob?
comment
Scott Leibrand
@scottleibrand
Jan 24 2016 23:53
yeah, just comment it out
JaysonEwer
@JaysonEwer
Jan 24 2016 23:53
ok
I may have found my problem. What does your ns-upload.ini look like?
I don't have anything in my fields= line, is that correct?
Scott Leibrand
@scottleibrand
Jan 24 2016 23:57
I don't have an ns-upload.ini
you only get that if you make it a device
mine is just an alias: openaps alias add upload-ns-status '! bash -c "grep -q iob monitor/iob.json && grep -q absolute enact/suggested.json && openaps format-ns-status && grep -q iob upload/ns-status.json && ns-upload $NIGHTSCOUT_HOST $API_SECRET devicestatus.json upload/ns-status.json"'