Skip to main content

eldercare-videocall

Quản lý video call giữa gia đình và bà nội. Gia đình nhắn "gọi bà" qua Zalo → OpenClaw kiểm tra bà đang thức → chuẩn bị phòng (đèn, loa, tablet) → hướng dẫn gia đình gọi Zalo video trực tiếp → bà thấy trên tablet. Hỗ trợ lịch gọi cố định nhắc gia đình mỗi sáng. Cả bà và ông đều nặng tai → mọi audio phải VOLUME CAO. Tablet chạy Fully Kiosk Browser ở chế độ kiosk.

Quellinformationen

Repository
nclamvn/bom-cham
Letzte Quellaktivität
19. Februar 2026 um 18:39
Erkannte Sprache von SKILL.md
Vietnamesisch
Sterne
26
Forks
19

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

Datei-Explorer
2 Dateien

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
eldercare-videocall
description
Quản lý video call giữa gia đình và bà nội. Gia đình nhắn "gọi bà" qua Zalo → OpenClaw kiểm tra bà đang thức → chuẩn bị phòng (đèn, loa, tablet) → hướng dẫn gia đình gọi Zalo video trực tiếp → bà thấy trên tablet. Hỗ trợ lịch gọi cố định nhắc gia đình mỗi sáng. Cả bà và ông đều nặng tai → mọi audio phải VOLUME CAO. Tablet chạy Fully Kiosk Browser ở chế độ kiosk.
metadata
{"openclaw":{"emoji":"📞","requires":{"extensions":"[Truncated]"},"schedule":["[Truncated]","[Truncated]"]}}
# Eldercare Video Call — Kết nối gia đình với bà ## Tổng quan Video call đi qua **Zalo video call trực tiếp** (KHÔNG dùng SIP/WebRTC/Twilio). OpenClaw đóng vai trò **điều phối**: kiểm tra bà sẵn sàng, chuẩn bị phòng, và hướng dẫn gia đình thời điểm gọi. Tablet đặt cạnh giường bà chạy Zalo đăng nhập sẵn (tài khoản Zalo bà/ông). Fully Kiosk Browser giữ Zalo foreground, màn hình luôn sẵn sàng. ## Flow A: Gia đình chủ động gọi bà (on-demand) ### Bước 1: Nhận intent gọi bà Gia đình nhắn vào Zalo group hoặc chat Bờm bot: - "gọi bà", "gọi bà nội", "video call bà", "gọi cho bà", "muốn gọi bà" ### Bước 2: Check trạng thái bà Dùng tool `home_assistant` đọc sensors: - `get_state` entity `binary_sensor.grandma_room_presence` → có người? - `get_state` entity `sensor.grandma_room_motion_minutes` → phút từ cử động cuối **Quy tắc phân loại:** **Bà ĐANG THỨC** (motion < 15 phút): → Tiếp tục chuẩn bị phòng (Bước 3) **Bà có thể ĐANG NGỦ TRƯA** (motion > 15 phút VÀ giờ 13:00-15:00): → Reply: "Bà có vẻ đang nghỉ trưa 😴 Gọi sau 15h nhé? Hay bạn muốn gọi ngay?" → Nếu gia đình reply "gọi ngay" / "gọi luôn" → tiếp tục Bước 3 → Nếu không reply → dừng **Bà ĐANG NGỦ ĐÊM** (motion > 30 phút VÀ giờ 22:00-06:00): → Reply: "Bà đang ngủ rồi 🌙 Sáng mai gọi nhé?" → Chỉ tiếp tục nếu gia đình nói "khẩn cấp" / "gọi ngay" **Bà KHÔNG TRONG PHÒNG** (presence = off): → Reply: "⚠️ Sensor không phát hiện người trong phòng bà. Kiểm tra lại nhé." ### Bước 3: Chuẩn bị phòng bà Nếu OK để gọi, dùng tool `home_assistant` thực hiện tuần tự: **3a. Bật đèn sáng vừa (không chói):** ``` action: call_service domain: light service: turn_on target_entity_id: light.grandma_room service_data: { "brightness": 150, "color_temp_kelvin": 3000 } ``` **3b. Tablet: Bật màn hình + mở Zalo:** Nếu có Fully Kiosk Browser REST API qua HA shell_command hoặc REST command: ``` action: call_service domain: shell_command service: tablet_screen_on ``` Hoặc ghi chú cho gia đình tự setup HA automation để bật tablet khi trigger. **3c. TTS thông báo cho bà (VOLUME CAO):** Trước TTS, set volume MAX: ``` action: call_service domain: media_player service: volume_set target_entity_id: media_player.grandma_room service_data: { "volume_level": 1.0 } ``` Rồi TTS: ``` action: call_service domain: tts service: speak target_entity_id: media_player.grandma_room service_data: { "message": "Bà ơi, {tên người gọi} muốn gọi video cho bà nè! Bà nhìn màn hình nha!", "language": "vi" } ``` **3d. Chờ 5 giây** (để bà nghe thông báo) ### Bước 4: Hướng dẫn gia đình gọi Reply cho gia đình trong Zalo: ``` ✅ Phòng bà đã sẵn sàng! 📱 Bà đã được thông báo rồi. 📞 Bạn gọi Zalo video cho bà ngay nhé! Zalo bà: {thông tin Zalo bà từ config} 💡 Đèn đã bật, loa đã thông báo. 🔊 Nhớ nói TO và RÕ — cả bà và ông đều nặng tai. ``` ### Bước 5: Logging Lưu memory sau khi trigger thành công: ``` eldercare_call_{timestamp}: { "caller": "{tên người yêu cầu}", "triggered_at": "{ISO timestamp}", "status": "room_prepared", "note": "Zalo video call directed" } ``` Dữ liệu này dùng cho eldercare-daily-report skill. ## Flow B: Lịch gọi cố định (Cron) ### 8:00 sáng — Nhắc lần 1 Gửi Zalo group gia đình: ``` 🌅 Chào buổi sáng! Nhắc mọi người gọi chào bà nội nha. Reply "gọi bà" để Bờm chuẩn bị phòng bà sẵn sàng! ``` ### 9:00 sáng — Nhắc lần 2 (nếu cần) Kiểm tra memory: có `eldercare_call_*` nào có timestamp NGÀY HÔM NAY chưa? - Nếu **CHƯA CÓ** cuộc gọi hôm nay → nhắc lại: ``` ☀️ Chưa ai gọi bà sáng nay. Bà đang thức rồi đó! Reply "gọi bà" nhé~ ``` - Nếu **ĐÃ CÓ** cuộc gọi hôm nay → không nhắc nữa ## Whitelist & Security Chỉ contacts trong whitelist mới trigger được flow gọi bà. Đọc whitelist từ memory `eldercare_videocall_whitelist` hoặc videocall-config.json. Khi người KHÔNG trong whitelist nhắn "gọi bà": → Reply: "Bạn không có quyền thực hiện lệnh này. Liên hệ admin gia đình." ## Quiet Hours - Giờ 22:00-06:00: Từ chối gọi trừ khi gia đình nói rõ "khẩn cấp" - Reply: "Bà đang ngủ rồi 🌙 Sáng mai gọi nhé? (Nếu khẩn cấp, reply 'khẩn cấp')" ## Config Đọc từ videocall-config.json hoặc memory `eldercare_videocall_config`: - `tablet.ip` — IP tablet trong mạng local - `tablet.fully_kiosk_password` — Fully Kiosk password - `grandma_zalo_contact` — Thông tin Zalo bà để gia đình gọi - `whitelist` — Danh sách người được phép gọi - `schedule.morning_reminder` — Bật/tắt nhắc sáng - `schedule.quiet_hours_start/end` — Giờ yên lặng ## Config Override (đọc từ memory) Trước khi dùng giá trị mặc định, **PHẢI** kiểm tra memory: 1. Dùng memory search query `eldercare_videocall_config` 2. Nếu tìm thấy → parse JSON, dùng config từ memory 3. Nếu KHÔNG tìm thấy → dùng defaults từ videocall-config.json Các field có thể override: - `tablet.ip` — IP tablet - `tablet.fully_kiosk_password` - `grandma_zalo_contact` — Zalo bà - `whitelist` — người được phép gọi - `schedule.morning_reminder` — bật/tắt nhắc sáng - `schedule.quiet_hours_start` / `quiet_hours_end` - `tts.volume` (mặc định: 1.0) ## Phụ đề (Phase 2 — ghi nhận) Phụ đề realtime chưa khả thi qua Zalo video call (Zalo không có API overlay). Ghi nhận cho tương lai: - Option A: App phụ đề overlay Android chạy song song Zalo - Option B: Micro riêng → Whisper STT → text trên second screen Hiện tại: Gia đình nói TO + RÕ, kết hợp nhắn text Zalo chat song song. ## Multi-Elder Support Skill này hỗ trợ nhiều người thân: 1. Đọc `eldercare_profiles` từ memory 2. Nếu không tồn tại → auto-migrate default profile "ba_noi" (xem skill eldercare-profiles) 3. Loop qua tất cả active elders 4. Với mỗi elder: - Dùng `elder.ha_entities.*` thay vì hardcoded entity names - Dùng `eldercare_{elder.id}_*` làm memory key prefix - Dùng `elder.name` trong messages/TTS - Dùng `elder.contacts` cho alert recipients (fallback global contacts) - Dùng `elder.tts.*` cho TTS settings ### Thay đổi cụ thể - `binary_sensor.grandma_room_presence` → `elder.ha_entities.presence` - `sensor.grandma_room_motion_minutes` → `elder.ha_entities.motion` - `light.grandma_room` → `elder.ha_entities.light` - `media_player.grandma_room` → `elder.ha_entities.media_player` - Memory: `eldercare_call_*` → `eldercare_{elder.id}_call_*` - Memory: `eldercare_videocall_config` → `eldercare_{elder.id}_videocall_config` - TTS: Dùng `elder.tts.*`
Auf GitHub ansehen