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 ทำงานอยู่ ภายในไม่กี่วินาที Deskami จะเริ่มสมุดบันทึกเล่มใหม่ที่ว่างเปล่า การส่งออกจะเขียนสแนปช็อตที่ครบถ้วนเสมอ สิ่งที่ฐานข้อมูลเก็บไว้มีรายการอยู่ที่ หน้าความเป็นส่วนตัว