Skip to main content

eldercare-multi-room

Mở rộng giám sát từ 1 phòng thành nhiều phòng (phòng ngủ, WC, phòng khách, nhà bếp). Theo dõi bà di chuyển giữa các phòng. Use cases quan trọng: - Bà đi WC quá lâu → alert (nguy cơ ngã trong WC) - Bà rời phòng ngủ ban đêm quá lâu → alert - Track thói quen di chuyển hàng ngày Yêu cầu: thêm sensor presence cho mỗi phòng. Disabled by default — bật khi có thêm sensors.

ソース情報

リポジトリ
nclamvn/bom-cham
ソースの最終更新活動
2026年2月19日 18:39
検出された SKILL.md の言語
ベトナム語
スター
26
フォーク
19

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

ファイルエクスプローラー
2 ファイル

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
eldercare-multi-room
description
Mở rộng giám sát từ 1 phòng thành nhiều phòng (phòng ngủ, WC, phòng khách, nhà bếp). Theo dõi bà di chuyển giữa các phòng. Use cases quan trọng: - Bà đi WC quá lâu → alert (nguy cơ ngã trong WC) - Bà rời phòng ngủ ban đêm quá lâu → alert - Track thói quen di chuyển hàng ngày Yêu cầu: thêm sensor presence cho mỗi phòng. Disabled by default — bật khi có thêm sensors.
metadata
{"openclaw":{"emoji":"🏠","requires":{"extensions":"[Truncated]"},"schedule":["[Truncated]"]}}
# Eldercare Multi-Room — Giám sát nhiều phòng Mở rộng giám sát từ 1 phòng ngủ thành nhiều phòng. Đặc biệt quan trọng cho an toàn WC — ngã trong nhà vệ sinh là tai nạn thường gặp nhất ở người cao tuổi. ## Phần cứng thêm (mỗi phòng) | Phòng | Sensor gợi ý | Giá ước tính | |-------|-------------|-------------| | WC | Aqara FP2 (mmWave, chính xác nhất) | ~1,200,000d | | Phòng khách | Aqara FP2 hoặc PIR motion sensor | ~200,000-1,200,000d | | Nhà bếp | PIR motion sensor (đủ) | ~200,000d | Aqara FP2 (mmWave) chính xác hơn — detect người đứng yên. PIR motion sensor rẻ hơn — chỉ detect khi có chuyển động. ## Config nhiều phòng Cấu hình trong memory `eldercare_multiroom_config` hoặc file `multiroom-config.json`: ```json { "rooms": [ { "id": "bedroom", "name_vi": "Phòng ngủ", "presence_entity": "binary_sensor.grandma_room_presence", "motion_entity": "sensor.grandma_room_motion_minutes", "is_primary": true, "max_absence_minutes": null }, { "id": "bathroom", "name_vi": "Nhà vệ sinh", "presence_entity": "binary_sensor.bathroom_presence", "motion_entity": null, "is_primary": false, "max_absence_minutes": 20 }, { "id": "living_room", "name_vi": "Phòng khách", "presence_entity": "binary_sensor.living_room_presence", "motion_entity": null, "is_primary": false, "max_absence_minutes": 60 }, { "id": "kitchen", "name_vi": "Nhà bếp", "presence_entity": "binary_sensor.kitchen_motion", "motion_entity": null, "is_primary": false, "max_absence_minutes": 30 } ] } ``` ## Cron handler (mỗi 5 phút) ### Bước 1: Check config 1. Read multiroom config → rooms[] list 2. Nếu chỉ có 1 room (bedroom) → hoạt động như monitor bình thường, skip multi-room logic 3. Nếu disabled → skip ### Bước 2: Query tất cả room sensors Với mỗi room trong config: ``` action: get_state entity_id: {presence_entity} ``` Ghi nhận: room X → presence ON/OFF. Nếu entity unavailable → ghi note, bỏ qua room đó. ### Bước 3: Xác định bà ở phòng nào **Logic xác định vị trí:** 1. Liệt kê phòng có presence ON 2. Nếu chỉ 1 phòng ON → bà ở đó 3. Nếu nhiều phòng ON → lấy phòng thay đổi gần nhất (query `last_changed` từ HA) 4. Nếu không phòng nào ON → "unknown" (có thể ngoài nhà hoặc sensor gap) **Lưu vị trí hiện tại:** Memory key `eldercare_location_current`: ```json { "room": "bathroom", "since": "2026-02-20T14:30:00+07:00", "previous_room": "bedroom" } ``` ### Bước 4: Check alerts **Alert 1: WC quá lâu (HIGH RISK)** Bà ở WC > `max_absence_minutes` (mặc định 20 phút): 1. Phút 20: TTS nhắc nhẹ: ``` TTS: "Bà ơi, bà ở nhà vệ sinh lâu rồi, bà có ổn không?" ``` 2. Phút 25 (vẫn ở WC): Zalo gia đình: "⚠️ Bà ở WC hơn 25 phút. Kiểm tra bà!" 3. Phút 30 (vẫn ở WC): Escalate tương tự SOS Level 1: "🚨 Bà ở WC hơn 30 phút — có thể cần hỗ trợ NGAY!" Lưu ý: Đây là HIGH RISK vì ngã trong WC rất nguy hiểm — sàn trơn, không gian hẹp, khó gọi giúp. **Alert 2: Rời phòng ngủ ban đêm quá lâu** Giữa 22h-6h, bà rời phòng ngủ > 15 phút: - "⚠️ Bà rời phòng ngủ lúc {giờ}, chưa quay lại sau 15 phút" - Bình thường đi WC đêm chỉ 5-10 phút **Alert 3: Không xác định vị trí** Tất cả rooms presence OFF > 30 phút: - "⚠️ Không phát hiện bà ở bất kỳ phòng nào trong 30 phút" - Có thể: sensor lỗi, bà ra ngoài (hiếm nếu nằm giường) ### Bước 5: Log di chuyển Mỗi khi phát hiện bà chuyển phòng (room thay đổi so với lần check trước): Memory key `eldercare_movement_{timestamp}`: ```json { "from": "bedroom", "to": "bathroom", "time": "2026-02-20T02:30:00+07:00" } ``` ### Bước 6: Pattern analysis (tích lũy) Tổng hợp movement log hàng ngày cho daily report: ``` Thời gian ở mỗi phòng: Phòng ngủ: 18h Phòng khách: 3h WC: 45 phút (6 lần) Nhà bếp: 0h Số lần đi WC: 6 (bình thường 4-8 cho người già) WC ban đêm: 2 lần (02:30, 04:15) Lâu nhất ở WC: 12 phút (bình thường) ``` ## Tích hợp với skills khác - **eldercare-monitor**: Khi multi-room active, monitor biết bà ở phòng nào → context tốt hơn - **eldercare-fall-detect**: Check fall pattern ở TẤT CẢ phòng (đặc biệt WC!) - **eldercare-sleep-tracker**: Biết bà đi WC đêm mấy lần (cross-reference) - **eldercare-daily-report**: Thêm section di chuyển ## Tích hợp daily report ``` 🏠 Di chuyển: Phòng ngủ: 18h | Phòng khách: 3h | WC: 45 phút (6 lần) Đi WC đêm: 2 lần (2:30, 4:15) Bất thường: Không ``` ## Graceful degradation - **Chưa có sensor phòng khác** → skill chỉ monitor phòng ngủ (như eldercare-monitor hiện tại) - **Thêm 1 sensor WC** → skill bật multi-room cho 2 phòng (bedroom + WC) - **Thêm nữa** → thêm room vào config → skill tự mở rộng - KHÔNG yêu cầu phải có tất cả sensors cùng lúc - Disabled by default — gia đình bật khi sẵn sàng ## Chat triggers - "bà ở đâu" / "bà ở phòng nào" → query eldercare_location_current - "bà đi WC mấy lần hôm nay" → query movement logs - "thêm phòng WC: binary_sensor.bathroom_presence" → add room to config ## 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` - Additional room sensors (bathroom, kitchen, living_room) → read from `eldercare_{elder.id}_multiroom_config` - Memory: `eldercare_multiroom_config` → `eldercare_{elder.id}_multiroom_config` - Memory: `eldercare_location_current` → `eldercare_{elder.id}_location_current` - Memory: `eldercare_movement_*` → `eldercare_{elder.id}_movement_*` - TTS: Dùng `elder.tts.*` for bathroom timeout alerts - Messages: "Bà ơi" → "{elder.name} ơi"
GitHubで見る