Owlet is a cross-platform Electron widget application designed to display real-time sensor glucose values (SGV) from a Nightscout API. It serves as a lightweight tool for individuals managing Type 1 Diabetes or their caregivers, providing continuous blood sugar monitoring without the need to keep a browser open.
Key Features:
Real-time SGV display with trend arrows to indicate glucose direction.
Customizable alert levels to notify users of high or low blood sugar readings.
Always-on-top display ensures visibility without interruption.
Cross-platform support for Linux and other operating systems via winget installation.
Audience & Benefit: Ideal for individuals managing Type 1 Diabetes, Owlet offers a convenient solution for continuous glucose monitoring. It empowers users to track their health metrics in real time, ensuring timely interventions and better management of blood sugar levels.
README
Owlet
The cross-platform application, that uses the Nightscout API. The aim is to provide a lightweight interface for your T1D measurement visualization (blood sugar levels).
The app's name is "Owlet", which means baby owl and is chosen because of the Nightscout project logo.
README Translation
Project Description
The widget will stay on top of your screen, so you don't need to keep your Nightscout site in the browser opened to see your/your relative's or kid's measurements in real-time anymore.
The widget is packed in an AppImage package due to the following reasons:
It runs on all common Linux distributions
It supports an auto-update feature (but doesn't support notification about it)
AppImage usage simplifies the development process and testing on many different Linux distributions
I recommend using AppImageLauncher to properly integrate the AppImage into the OS and create all the necessary .desktop files to launch it as an installed application. However, this decision is entirely up to you. You can launch the application immediately after downloading from the folder you choose to download and create the .desktop file manually.
Please install the listed dependencies using the OS package manager:
wmctrl
xdg-utils
Without these listed dependencies, the widget will still work, but it might be difficult to manage the window states properly (wmctrl is used to hide the app from the application panel and tray) and to open other applications (xdg-open is used to open the browser for redirecting to the Nightscout site and open the file manager to navigate to the logs folder).
Without these packages, the widget will alert you about the missing dependencies once a day on every launch.
Auto-update may cause freezing. The application starts checking for updates right after the launch, but only once a day. If it finds a new version in the latest releases, it will begin downloading and replacing the AppImage on your drive, which usually takes about 1-2 minutes. If the application freezes, you need to wait until it awakens, or alternatively, you can kill the process using the ps command and restart it.
The issue is related to the lack of usability of the notification-daemon. Sometimes, the D-Bus service doesn't configure properly, and as a result, the notify-send command cannot be executed. If the notify-send command works fine on your distribution, then it is not your issue, and everything should function properly.
Please note that the AppImage doesn't have yet a built-in mechanism to notify about the updates. If you are knowledgeable about how to implement this feature, you are welcome to contribute by submitting a pull request; I would sincerely appreciate it.
⚠️ Before start
> ‼️ THIS IS VERY IMPORTANT: You have to be sure that all steps are done before you make the first launch!
NIGHTSCOUT TOKEN - the access token you've created on the previous steps
NIGHTSCOUT REQUEST INTERVAL (SEC.) - (default: 60) the interval of the getting information from the Nightscout site to display in the widget
2. Widget preferences
AGE LIMIT (MIN.) - (default: 20) the timeout of data requesting interval, after that interval widget will change its appearance to a "frozen" state. This typically indicates that the reader is offline, detached from the sensor, or the smartphone's battery is drained. If you prefer the widget not to freeze, you can set this property to 0. The maximum allowable value for this field, as well as the maximum value shown, is 999 minutes.
SHOW AGE - (default: enabled) that option displays additional information about how old the shown data is
UNITS IN MMOL/L - (default: enabled) that option allows to display sensor glucose values in mmol/l instead of mg/d. If you decide to modify this setting, please verify the blood sugar level preferences based on the selected units of measurement after making changes. Remember to save the settings after adjusting the measurement unit system.
CALC TREND - (default: disabled) This option allows to calculate the direction of the trend using the last six received (for the last half an hour) SGV values. You may find it useful when your sensor doesn't have built-in option (e.g., Dexcom, Medtronic) and the Nightscout API doesn't store this value. In such cases, you will see a - symbol in the bottom right corner of the widget all the time instead of a trend arrow.
The app uses the following Abbot™ FreeStyle Libre™ sensors algorithm to recognize the trend pattern.
Set the blood sugar tracking parameters using the following guides:
Above the HIGH LEVEL TRESHOLD (default: 10) and below th LOW LEVEL THRESHOLD (default: 3.5) the last value will be colored in red
Above the TARGET TOP LEVEL (default: 8.5) and below the TARGET BOTTOM LEVEL (default: 4) the last value will be colored in orange
By default, the last value will be colored in green
You may test the entered connection parameters by clicking the TEST button to verify the Nightscout site is accessible and the token is correct
If everything is ok, press the SAVE button to save settings and restart the application
4. Settings language and localization
You can choose the settings language by clicking on the top left EN icon and selecting your preferred language.
Currently, the application offers the following languages:
English
Hebrew
Italian
Polish
Russian
Slovak
Spanish
If you feel confident and have a good grasp of a foreign language, you can contribute to the translation of the application by becoming a project contributor on POEditor.
Using the widget
After restarting, the widget will always stay on top of the screen until you close it by clicking the top left corner with the X sign.
If you need to change the settings you can click by the gear symbol in the bottom left corner.
If you want to fast navigate to the Nightscout site, you can click the middle button with the graph symbol.
Auto updates
The widget has a built-in implementation of the update system.
The widget will check for the latest release availability every time it starts, but only once a day.
If the latest release is available, the widget will automatically download and install it right after exiting.
On Mac and Windows operating systems, users will receive a notification about the newly downloaded version.
On Linux, the notification doesn't work properly yet.
If you feel desire to improve it or help.
You can suggest any ideas or detected bugs to the project board.
To build it from source code
To clone and run this repository, you'll need Git and Node.js (which comes with npm) installed on your computer. From your command line do:
# Clone this repository
git clone https://github.com/kashamalasha/nightscout-widget-electron
# Go into the repository
cd nightscout-widget-electron
# Install dependencies
npm install
# Run the app
npm start
# Or run in developer mode for deeper logging and debugging
npm run dev
Operating systems compatibility
Compatible with:
Apple MacOS (10.10+)
Microsoft Windows (10+)
Linux (tested on Ubuntu, Fedora, CentOS, Alma on GNOME Desktop and XFCE)