1
0
Fork 0
BangleApps/apps/sleeplog
storm64 a3efd32981
[sleeplog] Update README.md
2022-05-20 20:20:13 +02:00
..
ChangeLog [sleeplog] Complete rework, BETA v01 2022-05-20 17:17:30 +02:00
README.md [sleeplog] Update README.md 2022-05-20 20:20:13 +02:00
app-icon.js sleeplog: Add Sleep Log App 2022-02-11 09:29:02 +01:00
app.js [sleeplog] Complete rework, BETA v01 2022-05-20 17:17:30 +02:00
app.png sleeplog: Add Sleep Log App 2022-02-11 09:29:02 +01:00
boot.js [sleeplog] Complete rework, BETA v01 2022-05-20 17:17:30 +02:00
conf_20x20.png [sleeplog] Replace old icons 2022-05-20 20:14:05 +02:00
debug_20x20.png [sleeplog] Replace old icons 2022-05-20 20:14:05 +02:00
file_20x20.png [sleeplog] Replace old icons 2022-05-20 20:14:05 +02:00
lib.js [sleeplog] Complete rework, BETA v01 2022-05-20 17:17:30 +02:00
metadata.json [sleeplog] Remove emulator tag 2022-05-20 17:29:33 +02:00
off_20x20.png [sleeplog] Replace old icons 2022-05-20 20:14:05 +02:00
screenshot1.png sleeplog: Update screenshots 2022-02-16 13:21:00 +01:00
screenshot2.png sleeplog: Update screenshots 2022-02-16 13:21:00 +01:00
screenshot3.png sleeplog: Update screenshots 2022-02-16 13:21:00 +01:00
settings.js [sleeplog] Add todo entry + rename options 2022-05-20 18:28:05 +02:00

README.md

Sleep Log

This app logs and displays the following states:

  • sleepling status: unknown, not worn, awake, light sleep, deep sleep
  • consecutive sleep status: unknown, not consecutive, consecutive

It is using the built in movement calculation to decide your sleeping state. While charging it is assumed that you are not wearing the watch and if the status changes to deep sleep the internal heartrate sensor is used to detect if you are wearing the watch.

-+-                       -+-
-+-     BETA Version      -+-
-+-                       -+-

Introduction


I am proud to present the new sleeplog app: version 0.10 🎉 🎊

Sorry that it took so long but hopefully most of the early bugs are sorted out and the app should be ready to be use and get tested!

I would love to hear about your impressions and like to know your choice of thresholds, to set the default values as optimized as possible.

The last piece of work is to rewrite the README.md to show how to use it and show the restrictions and possibilities. But here are some explanations how to use the app and settings:

  • On the app screen:

    • swipe left & right to change the displayed day
    • touch on the "title" (e.g. Night to Fri 20/05/2022) to enter a day selection prompt
    • touch on the info area (by default displaying consecutive and true sleeping) to change the displayed information
    • touch on the wrench (upper right corner) to enter the settings
    • exit the app with the UI back button widget on the upper left corner
  • Inside the settings:

    • the threshold values are accessible through a submenu
    • app timeout lets you specify a separate lockTimeout and backlightTimeout only for the sleeplog app
    • debug settings are available in a submenu down at the end:
      • display log is not implemented yet
      • options Enable and write File should be self explaining
      • the Duration specifies how long data should be written into the .csv file
      • the .csv file loggs the following data (timestamps are in days since 30.12.1899 as used by office software):
        timestamp, movement, status, consecutive, asleepSince, awakeSince, bpm, bpmConfidence
  • Timestamps and files:

    1. externally visible/usable timestamps (in global.sleeplog) are formatted as UNIX timestamps:
      seconds since 1970-01-01 00:00 UTC
    2. internally used and logged (to sleeplog.log (StorageFile)) is within the highest available resolution:
      10 minutes since 1970-01-01 00:00 UTC (UNIX / (10 * 60 * 1000))
    3. debug .csv file ID (sleeplog_123456.csv) has a hourly resolution: hours since 1970-01-01 00:00 UTC (UNIX / (60 * 60 * 1000))
    4. logged timestamps inside the debug .csv file are formatted for office calculation software: days since 1899-12-30 00:00 UTC (UNIX / (24 * 60 * 60 * 1000) + 25569)
    5. every 14 days the sleeplog.log (StorageFile) is reduced and old entries are moved into separat files for each fortnight (sleeplog_1234.log) but still accessible though the app:
      fortnights since 1970-01-04 12:00 UTC (converted with require("sleeplog").msToFn(UNIX) and require("sleeplog").fnToMs(fortnight))
  • Logfiles from before 0.10:
    timestamps and sleeping status of old logfiles are automatically converted on your first consecutive sleep or manually by require("sleeplog").convertOldLog()

  • View logged data: if you'd like to view your logged data in the IDE, you can access it with require("sleeplog").printLog(since, until) or require("sleeplog").readLog(since, until) to view the raw data
    since & until in UNIX timestamp, e.g. require("sleeplog").printLog(Date()-24*60*60*1000, Date()) for the last 24h


Temporarily removed logfiles from metadata.json to prevent removal on un-/reinstall:

"data": [
  {"name": "sleeplog.log", "storageFile": true},
  {"wildcard": "sleeplog_????.log"},
  {"wildcard": "sleeplog_??????.csv"}
],

Worth Mentioning


To do list

  • Edit/complete README.md.
  • Update screenshots.
  • Add display debugging log functionality.
  • Add custom interface.html to view, down- and upload logged data via App Loader.
  • Send the logged information to Gadgetbridge. (For now I have no idea how to achieve this, help is appreciated.)

Requests, Bugs and Feedback

Please leave requests and bug reports by raising an issue at github.com/storm64/BangleApps (or send me a mail).

Creator

Storm64 (Mail, github)

Contributors

myxor (github)

Attributions

The app icon is downloaded from https://icons8.com.

License

MIT License