All Projects → alphacentauri82 → scoutx

alphacentauri82 / scoutx

Licence: Apache-2.0 License
ScoutX: An SMS/Voice notifier for Nightscout, and now currently working on a Wisblock powered GPS tracker with Helium as well as an accessible DIY Libre CGM solution.

Programming Languages

python
139335 projects - #7 most used programming language
HTML
75241 projects
CSS
56736 projects

Projects that are alternatives of or similar to scoutx

sample-template-nodejs
A template repository serving as the base for new Twilio sample apps
Stars: ✭ 16 (-51.52%)
Mutual labels:  sms
fake-sms-notifier
Fake SMS (as email during development) Notifier Bridge
Stars: ✭ 16 (-51.52%)
Mutual labels:  sms
go sgip
This is an implementation of SGIP 1.2 for Go
Stars: ✭ 17 (-48.48%)
Mutual labels:  sms
mobizon-node
Biblioteca NodeJS para trabalhar com os serviços Mobizon API
Stars: ✭ 17 (-48.48%)
Mutual labels:  sms
slack-texts
SMS notifications for Slack groups
Stars: ✭ 19 (-42.42%)
Mutual labels:  sms
vonage-node-code-snippets
NodeJS code examples for using Nexmo
Stars: ✭ 46 (+39.39%)
Mutual labels:  sms
RomanceBreaker
Python script which sends a custom morning message to your significant other every morning at a given time range on Facebook Messenger, WhatsApp, Telegram or SMS, for lazy people
Stars: ✭ 36 (+9.09%)
Mutual labels:  sms
screeps notify
Send messages (SMS, Slack) from inside Screeps Scripts
Stars: ✭ 21 (-36.36%)
Mutual labels:  sms
jasmin-web-panel
📨 Jasmin Web Panel for Jasmin SMS Gateway
Stars: ✭ 33 (+0%)
Mutual labels:  sms
go-mitake
A Mitake SMS library for Golang
Stars: ✭ 15 (-54.55%)
Mutual labels:  sms
mimo-ce
MIMO Community Edition
Stars: ✭ 20 (-39.39%)
Mutual labels:  sms
laravel-sms-api
Laravel package to provide SMS API integration.
Stars: ✭ 84 (+154.55%)
Mutual labels:  sms
sms
高可用短信微服务
Stars: ✭ 57 (+72.73%)
Mutual labels:  sms
aliyun-sms
阿里云 SMS 短信 Java SDK 封装
Stars: ✭ 67 (+103.03%)
Mutual labels:  sms
owt
Update Version 3.1 added free SMS messaging.
Stars: ✭ 339 (+927.27%)
Mutual labels:  sms
totalvoice-php
Client em PHP para API da Totalvoice
Stars: ✭ 30 (-9.09%)
Mutual labels:  sms
SnorkTracker
GPS IoT tracker board for scanning gps and environment information and sending this to a MQTT server via GPRS.
Stars: ✭ 38 (+15.15%)
Mutual labels:  sms
GlucoseTray
Tray Icon for displaying current BG information in taskbar.
Stars: ✭ 18 (-45.45%)
Mutual labels:  nightscout
ionic-native-sms-retriever-plugin-master
Cross-platform plugin for Cordova / PhoneGap to Retrieve SMS. Available for Android.
Stars: ✭ 16 (-51.52%)
Mutual labels:  sms
sms
API server to send SMS using GSM modem. Written in Go
Stars: ✭ 26 (-21.21%)
Mutual labels:  sms

ScoutX

Deploy

Short Description

ScoutX is an app to notify your preferred emergency contacts in case your blood glucose values from Nightscout are out of range. ScoutX uses the Vonage messages and voice APIs and is written in Flask.

If your blood sugar values are out of range (significantly low or high), you will get a phone call alerting you and reading your blood glucose over the phone. In the event of not answering the call your preferred emergency contact(s) will receive an SMS notifying them you are out of range.

Context

I have type 1 diabetes. With all the amazing open source initiatives, this is a good way to notify my contacts should I become unresponsive due to my blood sugar being too high or too low. All the data comes from my Nightscout dasbhoard. If you want to check my blood glucose values in real time go to https://dianux.superdi.dev

I have learned so much throughout this year and it’s definitely a privilege to be able to help the DIY diabetes community. This is the community that saved me from having to wake up everyday at 2am, the people who helped me handle calculating ratios etc.

When a person is diagnosed, doctors just give you a sliding scale and you have to figure out your ratios through a trial and error basis. This can cause a lot of horrible lows, until you figure out the right amount of insulin to take. And even then, this constantly changes so we are never in full control. Now with all these monitoring tools we can prevent lows/highs which are dangerous (you can die) and stay within range for most of the time.

Nightscout Dashboard

Although the initial state of this app is very basic, it's work in progress and you're more than welcome to contribute. The idea is to add more configuration options and improve the UI.

Scout Dashboard

Roadmap

This project has evolved a lot since it was first developed. The current roadmap includes the following:

Available

🚧 Work in progress

  • ScoutX: A Python app that reads data from users CGM dashboard (an OSS solution called Nightscout receiving data from CGM sensors). In here you configure your own number, an emergency contact and up to 5 additional emergency contact numbers. If blood sugar levels are out of norm, it will call you first. Most people can get warning of a low like that — and if you don’t pick up, it will call your emergency contact. If the first one doesn’t pick up, it goes through all of them. Should no one pick up, they will all get a text message alerting them about the situation.

  • ScoutX Mobile: Mobile version of ScoutX. Built on Ionic Angular. It gathers location data from your mobile device and sends alert messages with exact location in case of emergency.

  • 🚧 ScoutX Tracker: GPS LoRa tracker with a WisBlock. I can pair the data from my monitoring app and broadcast through LoRaWan. Removing the dependency on mobile internet. If I’m out of range or in a remote area I can keep broadcasting my blood glucose data, which works with the Python app but also adds GPS tracking. If levels are out of norm, the calls will happen but all contacts will get a message with precise location in case of emergency.

Send SMS to get BG Data

The endpoint defined to manage the SMS Webhook is: /webhooks/inbound-messages

To guarantee the functionality of the integration, users have to send the following message to the number associated with the application -> "Nightscout return the latest blood glucose level entry"

Deploying to Heroku

Before you start deploying your App using the Heroku Deploy Button, you need to get the following:

Two of these credentials could be filepaths, but this is not useful at the moment of deploying the application from a repository because of security reasons. That's why we are going to pass the nexmo application private key in a single line as a environment variable and the firebase database secrets also as a JSON string in a single line.

Download your private key file from the communications dashboard and run the following command in your terminal:

awk 'NF {sub(/\r/, ""); printf "%s\\n",$0;}' ./private.key

This command is going to retrieve the private key in a single line.

For the firebase secrets json file just put the content in a single line. Copy and paste it in the FIREBASE_PRIVATE_KEY field. The content sould look like this:

{
  "type": "xxxxx",
  "project_id": "xxxxx",
  "private_key_id": "xxxxx",
  "private_key": "xxxxx",
  "client_email": "xxxxx",
  "client_id": "xxxxx",
  "auth_uri": "xxxxx",
  "token_uri": "xxxxx",
  "auth_provider_x509_cert_url": "xxxxx",
  "client_x509_cert_url": "xxxxx"
}

You may configure whether you want to use the Vonage API or the Twilio API using the USE_TWILIO field.

When clicking on the the deploy button:

Deploy

You will see something like this:

Heroku deploy

Giving Thanks

Thanks to @melveg for his continued support and contributions to this project 💜

Thanks to @mariacarlinahernandez for the SMS to get BG Data feature 💜

Thanks to @vmalepati1 for adding Twilio support and Whatsapp messages 💜

Thanks to @whitep4nth3r for the awesome website and all her support. Follow her on twitch and twitter 💜

I'm super honoured for all the support and help from The Nightscout Foundation, Parley Labs and Helium - Making it possible to get the necessary equipment to assemble more trackers and test connectivity with #ThePeoplesNetwork. From the bottom of my heart: thank you!

Contributing

All contributions are welcome. Make sure you follow the code of conduct in this repository.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].