DeskamiMột người bạn nhỏ trên bàn làm việc

Định dạng xuất

Xuất dữ liệu, một phần của Deskami Plus, ghi ra đúng bản ghi từng phút mà Deskami giữ trên chiếc Mac của bạn. Không có gì được thêm vào, ước tính hay điền vào chỗ trống. Trang này mô tả những gì có trong tệp.

Quy ước

  • Một ô trống trong CSV, hay null trong JSON, nghĩa là không đo được. Số 0 nghĩa là đã đo, và kết quả bằng không.
  • Tên cột là tiếng Anh trong mọi ngôn ngữ và cố định; chúng chỉ đổi cùng với một export_version mới.
  • Các tệp dùng UTF-8. CSV phân tách bằng dấu phẩy và có một dòng tiêu đề.
  • Thời gian là UTC theo ISO 8601, ví dụ 2026-09-28T07:41:00Z. Ngày có dạng YYYY-MM-DD, là ngày lịch mà phút đó được ghi vào.
  • Số thập phân dùng dấu chấm, không bao giờ có dấu phân cách hàng nghìn. Giá trị boolean là true và false.
  • Mỗi phút mà Deskami có ghi lại điều gì đó có một dòng; phút nào nó không ghi thì không có dòng.

Các cột theo phút

CSV có các cột sau, theo đúng thứ tự này; trong JSON, cũng chính các trường đó tạo thành mỗi phút. Tên trong ngoặc là cột tương ứng trong tệp cơ sở dữ liệu gốc.

  • minute_utc — thời gian. Thời điểm bắt đầu phút đó, theo UTC. (minute_utc, tính bằng giây Unix)
  • local_day — ngày. Ngày lịch mà phút này thuộc về, theo múi giờ chiếc Mac đang ở lúc đó. Giá trị được cố định khi ghi; đổi múi giờ sau đó cũng không làm nó dịch đi. (day_key)
  • setup_id — số nguyên. Chỗ làm việc đang dùng: một camera cộng với một cách bố trí màn hình. Trong JSON, các chỗ làm việc được liệt kê dưới setups. (profile_id)
  • seconds_at_desk — 0 đến 60. Số giây camera thấy bạn trong phút này. Khi camera_off là false, 0 nghĩa là camera đang bật nhưng không thấy bạn. (present_s)
  • posture_deviation — số, từ 0 trở lên. Đầu và vai bạn thấp hơn mốc chuẩn của chính bạn bao nhiêu, lấy trung bình trong phút, tính theo bội số của ngưỡng cảnh báo đang áp dụng lúc đó: 0 ở mốc chuẩn, 1 ở ngưỡng. Để trống khi dáng ngồi không được đo. (posture_dev)
  • posture_peak — số, từ 0 trở lên. Giá trị lớn nhất của cùng số đo đó trong phút. (posture_peak)
  • distance_deviation — số, từ 0 trở lên. Mặt bạn gần màn hình hơn lúc lấy mốc chuẩn bao nhiêu, trên cùng thang đo, đọc từ khoảng cách giữa hai mắt trong khung hình. (distance_dev)
  • blinks — số nguyên. Số lần chớp mắt đếm được trong lúc đo được mắt. Để trống khi không đo được. (blinks)
  • incomplete_blinks — số nguyên. Những lần chớp mắt mà lúc khép nhất vẫn chưa đủ gần với nhắm hẳn. Để trống khi không thể đánh giá. (incomplete_blinks)
  • head_pitch_degrees — số. Góc cúi ngẩng trung bình của đầu, tính bằng độ, theo camera báo: so với camera, không phải so với mốc chuẩn của bạn. (head_pitch)
  • confidence — 0 đến 1. Độ tin cậy trung bình của việc phát hiện khuôn mặt. (confidence)
  • light — 0 đến 1. Độ sáng trung bình của vùng khuôn mặt, từ 0 là tối đến 1 là sáng. Không phải độ sáng của căn phòng. (light)
  • eyes_measured — boolean. Mắt đo được ít nhất một lần trong phút này. Khi là false, blinks, incomplete_blinks và eye_observed_seconds để trống. (eye_valid)
  • eye_observed_seconds — 0 đến 60. Số giây mắt thật sự được quan sát. Số lần chớp mắt mỗi phút là blinks × 60 ÷ eye_observed_seconds. (eye_observed_s)
  • look_aways — số nguyên. Số lần nhìn ra xa trọn vẹn, theo thói quen 20-20-20. Để trống khi việc nhìn ra xa không được đo. (gaze_breaks)
  • camera_off — boolean. Camera tắt trong phút này: bạn đã tắt nó, một ứng dụng khác đang giữ nó, hoặc quyền đã bị gỡ. Khi đó các cột camera để trống; các cột ứng dụng và hoạt động vẫn có thể có giá trị. (camera_off)
  • declared_break — boolean. Bạn đã báo với Deskami là đang nghỉ. Phút đó được tính là không ở bàn, bất kể camera thấy gì. (declared_break)
  • front_app — văn bản. Mã định danh gói của ứng dụng ở phía trước trong phần lớn phút đó, ví dụ com.apple.Safari. Để trống khi số đo đó bị tắt, màn hình bị khoá hoặc không có gì ở phía trước. Không bao giờ là tiêu đề cửa sổ. (app_id)
  • app_switches — số nguyên. Số lần ứng dụng ở phía trước thay đổi trong phút này. (app_switches)
  • active_seconds — 0 đến 60. Số giây mà bàn phím hoặc chuột đã được chạm tới trong vòng 15 giây trước đó. Chỉ đọc thời gian kể từ lần thao tác cuối, không bao giờ đọc phím nào. Để trống khi số đo đó bị tắt. (active_s)
  • call_seconds — 0 đến 60. Số giây có một ứng dụng gọi điện ở phía trước, hoặc một ứng dụng mở cả micro lẫn loa cùng lúc. Để trống khi không được đo, kể cả mọi phút được ghi trước khi Deskami bắt đầu đo mục này. (meeting_s)

JSON

Tệp JSON là một đối tượng. Nó bắt đầu bằng một phần đầu: export_version, app_version, exported_at, time_zone (tại thời điểm xuất), database_schema_version, range (kind, from, to) và setups (id, camera_name, created_at).

Tiếp theo là days, mỗi ngày có ghi lại trong khoảng thời gian là một đối tượng. Mỗi ngày mang phần tóm tắt, các phút và các cảnh báo của riêng nó:

  • local_day và minutes_at_desk; giá trị sau là tổng seconds_at_desk chia cho 60.
  • breaks: những quãng rời bàn từ 5 phút trở lên và dưới 2 giờ, nằm giữa hai quãng ở bàn. Thời gian camera tắt không được tính về phía nào.
  • posture_fine_minutes (posture_deviation dưới 1) và posture_attention_minutes (từ 1 trở lên).
  • blink_rate: số lần chớp mắt mỗi phút trong thời gian mắt được quan sát; null nếu quan sát chưa được một phút.
  • incomplete_blink_ratio: null khi có quá ít lần chớp mắt đánh giá được.
  • reminders_by_signal: số cảnh báo đã hiện, đếm theo tín hiệu.
  • minutes: các cột theo phút ở trên, mỗi phút một đối tượng.
  • reminders: mỗi cảnh báo một đối tượng, gồm time_utc, local_day, setup_id, signal (posture, distance, blink, incompleteBlink hoặc gaze), build_up_seconds (thời gian vượt ngưỡng trước khi cảnh báo), recover_seconds (thời gian cho tới khi xuống lại dưới ngưỡng; null khi việc đo dừng trước), asked (câu hỏi về mốc chuẩn của bạn có được hiện hay không) và answer (null khi không hỏi, còn lại là true hoặc false).

PDF

PDF không phải là một bảng: nó chính là bản tóm tắt — tóm tắt ngày, tuần hay tháng — được in lên một trang, đúng y như trên màn hình. Mọi con số trong đó đều là con số trên màn hình.

Tệp gốc

Cài đặt › Chung › Dữ liệu › Hiện trong Finder sẽ cho thấy history.sqlite, nằm cạnh history.sqlite-wal và history.sqlite-shm. Khi Deskami đang chạy, những phút mới nhất có thể vẫn còn trong tệp -wal; hãy sao chép cả ba tệp, hoặc thoát Deskami trước. Nếu bạn xoá các tệp này trong lúc Deskami đang chạy, chỉ trong vài giây nó sẽ bắt đầu một sổ ghi mới, còn trống. Xuất dữ liệu luôn ghi ra một bản chụp đầy đủ. Những gì cơ sở dữ liệu chứa được liệt kê trên trang quyền riêng tư.