Open
Description
I'm trying to get a 715 working with OpenAPS and it's clear the decocare history page parsing doesn't actually support this pump. Some of the events do parse correctly but not all. The two stack traces I've seen so far are:
settings/pumphistory-24h.json raised month must be in 1..12
Traceback (most recent call last):
File "/usr/local/bin/openaps-report", line 6, in <module>
exec(compile(open(__file__).read(), __file__, 'exec'))
File "/home/edison/src/openaps/bin/openaps-report", line 82, in <module>
app( )
File "/home/edison/src/openaps/openaps/cli/__init__.py", line 51, in __call__
self.run(self.args)
File "/home/edison/src/openaps/bin/openaps-report", line 75, in run
output = app(args, self)
File "/home/edison/src/openaps/openaps/cli/subcommand.py", line 52, in __call__
return self.method.main(args, app)
File "/home/edison/src/openaps/openaps/reports/invoke.py", line 40, in main
output = task.method(args, app)
File "/home/edison/src/openaps/openaps/uses/use.py", line 45, in __call__
output = self.main(args, app)
File "/home/edison/src/openaps/openaps/vendors/medtronic.py", line 639, in main
for rec in self.range( ):
File "/usr/local/lib/python2.7/dist-packages/decocare/models/__init__.py", line 67, in __call__
for record in page:
File "/usr/local/lib/python2.7/dist-packages/decocare/models/__init__.py", line 46, in download_page
for record in self.find_records(page):
File "/usr/local/lib/python2.7/dist-packages/decocare/models/__init__.py", line 158, in find_records
records = decoder.decode( )
File "/usr/local/lib/python2.7/dist-packages/decocare/history.py", line 851, in decode
record = parse_record(self.stream, B, larger=larger, model=self.model)
File "/usr/local/lib/python2.7/dist-packages/decocare/history.py", line 782, in parse_record
record.parse( head + date + body )
File "/usr/local/lib/python2.7/dist-packages/decocare/records/base.py", line 66, in parse
return self.decode( )
File "/usr/local/lib/python2.7/dist-packages/decocare/history.py", line 73, in decode
return (dict(valid_date=date(*mid).isoformat()))
ValueError: month must be in 1..12
and
Traceback (most recent call last):
File "/usr/local/bin/openaps-report", line 6, in <module>
exec(compile(open(__file__).read(), __file__, 'exec'))
File "/home/edison/src/openaps/bin/openaps-report", line 82, in <module>
app( )
File "/home/edison/src/openaps/openaps/cli/__init__.py", line 51, in __call__
self.run(self.args)
File "/home/edison/src/openaps/bin/openaps-report", line 75, in run
output = app(args, self)
File "/home/edison/src/openaps/openaps/cli/subcommand.py", line 52, in __call__
return self.method.main(args, app)
File "/home/edison/src/openaps/openaps/reports/invoke.py", line 40, in main
output = task.method(args, app)
File "/home/edison/src/openaps/openaps/uses/use.py", line 45, in __call__
output = self.main(args, app)
File "/home/edison/src/openaps/openaps/vendors/medtronic.py", line 639, in main
for rec in self.range( ):
File "/home/edison/src/decocare/decocare/models/__init__.py", line 67, in __call__
for record in page:
File "/home/edison/src/decocare/decocare/models/__init__.py", line 46, in download_page
for record in self.find_records(page):
File "/home/edison/src/decocare/decocare/models/__init__.py", line 158, in find_records
records = decoder.decode( )
File "/home/edison/src/decocare/decocare/history.py", line 855, in decode
record = parse_record(self.stream, B, larger=larger, model=self.model)
File "/home/edison/src/decocare/decocare/history.py", line 786, in parse_record
record.parse( head + date + body )
File "/home/edison/src/decocare/decocare/records/base.py", line 66, in parse
return self.decode( )
File "/home/edison/src/decocare/decocare/history.py", line 598, in decode
temp = { 0: 'absolute', 1: 'percent' }[self.head[1]]
KeyError: 81
I logged some of the packets and the date error seems to be caused by the date parser being handled bytes that cannot possibly be a date, resulting in the parsing completely failing or the date being bogus (year deciphered anywhere between 1970 to 2056).
Metadata
Metadata
Assignees
Labels
No labels