DeskamiМаленький друг на твоєму столі

Формат експорту

Експорт, частина Deskami Plus, вивантажує той самий похвилинний запис, який Deskami веде на твоєму Mac. Нічого не додається, не оцінюється і не дописується. На цій сторінці описано, що лежить у файлі.

Домовленості

  • Порожня клітинка в CSV або null у JSON означає не виміряно. 0 означає виміряно, і це був нуль.
  • Назви стовпців усіма мовами англійські й незмінні; вони змінюються лише разом із новим значенням export_version.
  • Файли в кодуванні UTF-8. У CSV значення розділено комами, перший рядок — заголовки.
  • Час указано в UTC у форматі ISO 8601, наприклад 2026-09-28T07:41:00Z. Дати записано як YYYY-MM-DD: це календарний день, під яким записано хвилину.
  • У дробових числах стоїть крапка, роздільника тисяч немає ніколи. Логічні значення — true і false.
  • На кожну хвилину, у яку Deskami щось записав, припадає один рядок; для хвилин, коли він нічого не записав, рядка немає.

Стовпці хвилин

У CSV ці стовпці йдуть у такому порядку; у JSON ті самі поля складають кожну хвилину. Назва в дужках — це стовпець у вихідному файлі бази даних.

  • minute_utc — час. Початок хвилини, в UTC. (minute_utc, у секундах Unix-часу)
  • local_day — дата. Календарний день, до якого належить хвилина, у часовому поясі, в якому тоді був Mac. Фіксується під час запису; пізніша зміна часового поясу його не зсуває. (day_key)
  • setup_id — ціле число. Робоче місце, що використовується: камера плюс розташування екранів. У JSON робочі місця перелічено в setups. (profile_id)
  • seconds_at_desk — від 0 до 60. Секунди, у які камера бачила тебе в цю хвилину. Якщо camera_off дорівнює false, 0 означає, що камеру було ввімкнено і вона тебе не бачила. (present_s)
  • posture_deviation — число, 0 або більше. Наскільки голова і плечі були нижче за твій власний орієнтир, у середньому за хвилину, в одиницях порога нагадування, що діяв у той момент: 0 на рівні орієнтира, 1 на порозі. Порожньо, якщо поставу не вимірювали. (posture_dev)
  • posture_peak — число, 0 або більше. Найбільше значення тієї самої величини за хвилину. (posture_peak)
  • distance_deviation — число, 0 або більше. Наскільки ближче до екрана було твоє обличчя, ніж під час знімання орієнтира, у тій самій шкалі, за відстанню між очима в кадрі. (distance_dev)
  • blinks — ціле число. Кліпання, підраховані, поки очі вдавалося вимірювати. Порожньо, якщо не вдавалося. (blinks)
  • incomplete_blinks — ціле число. Кліпання, у яких найвужча мить не підійшла достатньо близько до закриття. Порожньо, якщо оцінити не було змоги. (incomplete_blinks)
  • head_pitch_degrees — число. Середній нахил голови вперед-назад у градусах, як його повідомляє камера: відносно камери, а не твого орієнтира. (head_pitch)
  • confidence — від 0 до 1. Середня впевненість виявлення обличчя. (confidence)
  • light — від 0 до 1. Середня яскравість ділянки обличчя, від 0 (темно) до 1 (світло). Не яскравість кімнати. (light)
  • eyes_measured — логічне значення. Очі хоча б раз вдалося виміряти в цю хвилину. Якщо значення false, blinks, incomplete_blinks і eye_observed_seconds порожні. (eye_valid)
  • eye_observed_seconds — від 0 до 60. Секунди, у які за очима справді вдавалося стежити. Кліпань за хвилину: blinks × 60 ÷ eye_observed_seconds. (eye_observed_s)
  • look_aways — ціле число. Завершені погляди вдалину, звичка 20-20-20. Порожньо, якщо погляд удалину не вимірювався. (gaze_breaks)
  • camera_off — логічне значення. Камеру в цю хвилину було вимкнено: ти вимкнув її сам, її займав інший застосунок або дозвіл було відкликано. Стовпці камери тоді порожні; стовпці застосунків і активності все одно можуть бути заповнені. (camera_off)
  • declared_break — логічне значення. Перерва за твоїми словами: ти сказав Deskami, що в тебе перерва. Хвилина рахується як час поза столом, хоч би що бачила камера. (declared_break)
  • front_app — текст. Ідентифікатор пакета (bundle identifier) застосунку, який був попереду більшу частину хвилини, наприклад com.apple.Safari. Порожньо, якщо цей показник було вимкнено, екран було заблоковано або попереду нічого не було. Ніколи не заголовок вікна. (app_id)
  • app_switches — ціле число. Скільки разів у цю хвилину змінився застосунок попереду. (app_switches)
  • active_seconds — від 0 до 60. Секунди, у які клавіатури або миші торкалися протягом останніх 15 секунд. Читається лише час від останньої події, ніколи не клавіші. Порожньо, якщо цей показник було вимкнено. (active_s)
  • call_seconds — від 0 до 60. Секунди, у які попереду був застосунок для дзвінків або один застосунок одночасно тримав відкритими мікрофон і динамік. Порожньо, якщо не вимірювалося, зокрема в усіх хвилинах, записаних до того, як Deskami почав це вимірювати. (meeting_s)

JSON

Файл JSON — один об’єкт. Він починається із заголовка: export_version, app_version, exported_at, time_zone (на момент експорту), database_schema_version, range (kind, from, to) і setups (id, camera_name, created_at).

Далі йде days — по об’єкту на кожен записаний день у діапазоні. Кожен день несе своє зведення, хвилини й нагадування:

  • local_day і minutes_at_desk — сума seconds_at_desk, поділена на 60.
  • breaks: відрізки поза столом тривалістю від 5 хвилин, але коротші за 2 години, між двома відрізками за столом. Час із вимкненою камерою не зараховується ні туди, ні сюди.
  • posture_fine_minutes (posture_deviation нижче 1) і posture_attention_minutes (1 і вище).
  • blink_rate: кліпання за хвилину за час, поки за очима стежили; null, якщо стежили менше хвилини.
  • incomplete_blink_ratio: null, якщо оцінити вдалося надто мало кліпань.
  • reminders_by_signal: показані нагадування, підраховані за сигналами.
  • minutes: стовпці хвилин, описані вище, по об’єкту на хвилину.
  • reminders: по об’єкту на кожне нагадування, з полями time_utc, local_day, setup_id, signal (posture, distance, blink, incompleteBlink або gaze), build_up_seconds (час вище порога до нагадування), recover_seconds (час до повернення нижче порога; null, якщо вимірювання зупинилося раніше), asked (чи було показано запитання про твій орієнтир) і answer (null, якщо запитання не ставили, інакше true або false).

PDF

PDF — не таблиця: це саме зведення — зведення дня, тиждень чи місяць, — надруковане на одній сторінці точно так, як воно виглядає на екрані. Кожне число в ньому — те саме, що на екрані.

Вихідний файл

Налаштування › Основні › Дані › Показати у Finder виділяє history.sqlite, поруч із яким лежать history.sqlite-wal і history.sqlite-shm. Поки Deskami працює, найсвіжіші хвилини можуть ще лежати у файлі -wal; скопіюй усі три файли або спершу заверши Deskami. Якщо ти їх видалиш, поки Deskami працює, він за кілька секунд почне вести новий, порожній запис. Експорт завжди записує повний зріз даних. Що зберігається в базі даних, перелічено на сторінці про приватність.