nclamvn/openclawvn/eldercare-sos

Claude Code and agent skill by nclamvn/openclawvn

Trust tier 2
  • community
  • ext:[{"type":"config","description":"Configuration overrides"}]
LLM review pending
Source check pending

Checking that the SKILL.md file is still in the repository.

Hệ thống SOS khẩn cấp cho bà nội. Nhận trigger từ: nút vật lý Zigbee (qua Home Assistant), AI detection (từ eldercare-monitor), hoặc gia đình gõ "SOS" trong Zalo/Telegram. Escalation chain tự động: Level 1 (Zalo) → Level 2 (Phone) → Level 3 (gọi tất cả). Gửi kèm camera snapshot. Có cancel mechanism.

Install

npx vskill@latest install nclamvn/openclawvn/eldercare-sos

Semi-extensibleMentions customization, but needs skill-specific knowledge. Read the extensible skills standard

SKILL.md

Eldercare SOS — Hệ thống khẩn cấp

Skill này xử lý tình huống khẩn cấp cho bà nội. Khi được trigger, nó thực hiện escalation chain tự động: Zalo → Phone → gọi tất cả gia đình.

Khi nào skill này được trigger

1. Nút SOS vật lý (qua Home Assistant)

Bà hoặc ông bấm nút Zigbee. Kiểm tra entity sensor.sos_button_action:

Hành độngGiá trị sensorXử lý
Bấm 1 lầnsingleBắt đầu từ Level 1 (Zalo trước)
Bấm 2 lầndoubleSkip Level 1, vào thẳng Level 2 (gọi điện)
Giữ 3 giâylongSkip Level 1+2, vào thẳng Level 3 (gọi TẤT CẢ)
2. AI auto-detect (từ eldercare-monitor)

Khi skill eldercare-monitor phân loại mức KHẨN CẤP → trigger SOS bắt đầu từ Level 2 (vì AI đã xác nhận nghiêm trọng).

2b. Fall Detection (từ eldercare-fall-detect)

Khi skill eldercare-fall-detect phát hiện ngã VÀ bà không phản hồi TTS xác nhận (2 lần, tổng 45 giây) → trigger SOS bắt đầu từ Level 2. Source = "fall_detect". Kèm theo 2 ảnh camera snapshot (trước và sau TTS).

3. Manual (gia đình gõ chat)

Khi ai đó gõ "SOS", "cứu", "khẩn cấp" trong Zalo hoặc Telegram → trigger từ Level 1.

QUAN TRỌNG: Kiểm tra duplicate

Trước khi bắt đầu SOS mới, kiểm tra memory eldercare_sos_active:

  • Nếu đã có SOS active (resolved = false) → KHÔNG tạo SOS mới
  • Log: "SOS đã active từ {triggered_at}. Không tạo duplicate."
  • Nếu SOS cũ đã resolve → tiếp tục tạo mới

Hành động tức thì (T+0, MỌI level)

Ngay khi SOS trigger, thực hiện ĐỒNG THỜI:

1. Bật đèn phòng bà sáng tối đa

Dùng tool home_assistant:

action: call_service
domain: light
service: turn_on
target_entity_id: light.grandma_room
service_data: { "brightness": 255 }
2. TTS thông báo cho bà qua loa (VOLUME CAO)

Dùng tool home_assistant:

action: call_service
domain: tts
service: speak
target_entity_id: media_player.grandma_room
service_data: {
"message": "Bà ơi, đã gửi tín hiệu cho người nhà rồi ạ. Người nhà sẽ liên lạc ngay!",
"language": "vi"
}

Nếu TTS service không available, dùng media_player.volume_set với volume 1.0 trước, rồi phát audio.

3. Chụp camera snapshot

Dùng tool camsnap hoặc home_assistant:

action: call_service
domain: camera
service: snapshot
target_entity_id: camera.grandma_room
service_data: { "filename": "/config/www/sos_snapshot.jpg" }

Lưu path ảnh để gửi kèm message.

4. Lưu trạng thái SOS vào memory
eldercare_sos_active: {
"triggered_at": "{ISO timestamp}",
"source": "button_single | button_double | button_long | ai_detect | manual",
"start_level": 1 | 2 | 3,
"current_level": 1,
"resolved": false
}

Level 1: Zalo Alert (T+3 giây)

Gửi tin nhắn Zalo cho contact ưu tiên #1 (đọc từ memory eldercare_contacts):

🆘 SOS — BÀ NỘI CẦN HỖ TRỢ!
📍 Thời gian: {giờ:phút ngày/tháng}
📸 [Ảnh camera phòng bà]
🔊 Nguồn: {nút bấm / AI phát hiện / manual}
Reply "OK" hoặc "đã xử lý" để xác nhận.
⏰ Nếu không phản hồi trong 3 phút → hệ thống sẽ tự gọi điện.

Đồng thời gửi Zalo group gia đình cùng nội dung.

Chờ 3 phút (180 giây). Trong thời gian chờ, kiểm tra reply:

  • Nếu ai đó reply "OK", "đã xử lý", "ổn rồi", "cancel" → Chuyển đến phần Cancel SOS bên dưới
  • Nếu không ai reply → Tiếp tục Level 2

Level 2: Phone Call (T+180 giây)

Nếu Level 1 không có phản hồi, hoặc SOS bắt đầu từ Level 2:

  1. Gửi Zalo: ⚠️ Không ai phản hồi Zalo. Đang gọi điện cho {contact #1}...
  2. Dùng tool voice_call (skill voice-call):

`` action: initiate_call to: "{phone contact #1}" message: "Khẩn cấp! Bà nội cần hỗ trợ. Vui lòng kiểm tra ngay. Bấm phím bất kỳ để xác nhận." ``

  1. Nếu contact #1 không nghe (30 giây timeout) → gọi contact #2
  2. Chờ 3 phút (180 giây)
  3. Nếu không ai phản hồi → Tiếp tục Level 3

Level 3: ALL (T+360 giây)

Nếu Level 2 không có phản hồi, hoặc SOS bắt đầu từ Level 3 (nút giữ 3s):

  1. Gọi điện ĐỒNG THỜI tất cả contacts trong danh sách
  2. Chụp thêm 1 camera snapshot mới
  3. Gửi Zalo + Telegram cho TẤT CẢ:

`` 🚨 KHẨN CẤP: CHƯA AI PHẢN HỒI SAU 6 PHÚT! 📸 [Ảnh camera mới nhất] 📞 Đang gọi tất cả người thân. Vui lòng liên hệ ngay! ``

  1. Log: eldercare_sos_level3: {timestamp} — no response after 6 minutes, calling all contacts

Cancel SOS

Khi ai đó phản hồi (Zalo/Telegram) với các từ: "OK", "đã xử lý", "ổn rồi", "cancel", "hủy":

  1. Cancel ngay mọi timer/escalation đang chờ
  2. Gửi cho TẤT CẢ contacts:

`` ✅ SOS đã được xử lý bởi {tên người reply}. 🕐 Lúc: {giờ:phút} ⏱️ Thời gian phản hồi: {số phút} phút 📊 Mức escalation cao nhất: Level {X} ``

  1. HA: Đèn về bình thường

`` action: call_service domain: light service: turn_on target_entity_id: light.grandma_room service_data: { "brightness": 100 } ``

  1. Cập nhật memory:

`` eldercare_sos_active: { ...previous, "resolved": true, "resolved_by": "{tên}", "resolved_at": "{timestamp}", "max_level_reached": {1|2|3}, "response_time_seconds": {số giây từ trigger đến resolve} } ``

Nút SOS mapping tóm tắt

Bấm 1 lần (single):
T+0s → Đèn + TTS + Snapshot
T+3s → Zalo Level 1
T+183s → Phone Level 2 (nếu chưa OK)
T+363s → ALL Level 3 (nếu chưa OK)
Bấm 2 lần (double):
T+0s → Đèn + TTS + Snapshot
T+3s → Zalo + Phone Level 2 ngay
T+183s → ALL Level 3 (nếu chưa OK)
Giữ 3 giây (long):
T+0s → Đèn + TTS + Snapshot
T+3s → Gọi TẤT CẢ + Zalo + Telegram Level 3 ngay

Quy tắc an toàn

  • KHÔNG tự động gọi 115 (cấp cứu) — chỉ gia đình tự quyết định
  • KHÔNG tạo SOS mới khi đã có SOS active
  • PHẢI có cancel mechanism
  • PHẢI log đầy đủ cho daily report
  • PHẢI gửi camera snapshot kèm mọi message cảnh báo
  • TTS cho bà phải CHẬM, RÕ RÀNG, VOLUME CAO

Contacts

Đọc từ memory eldercare_contacts. Sắp xếp theo priority (1 = cao nhất).

Nếu chưa có contacts, gửi message cảnh báo vào channel hiện tại: "⚠️ SOS triggered nhưng chưa có contacts! Cần config eldercare_contacts trong memory."

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_sos_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 trong SKILL.md này

Các field có thể override:

  • escalation.level1_wait_seconds (mặc định: 180)
  • escalation.level2_wait_seconds (mặc định: 180)
  • tts.message (custom message TTS cho bà)
  • tts.volume (mặc định: 1.0)

Offline Queue Integration

Khi gửi alert thất bại (Zalo hoặc Telegram error):

  1. Lưu message vào memory với key: eldercare_queue_{timestamp}
  2. Format:

``json { "id": "queue_{timestamp}_{random}", "created_at": "ISO timestamp", "source_skill": "eldercare-sos", "priority": "EMERGENCY", "channels": ["zalo", "telegram"], "message": "Nội dung SOS alert gốc", "target": "all", "retry_count": 0, "max_retries": 10, "last_retry_at": null, "status": "pending", "metadata": { "sos_level": 1, "source": "button_single | ai_detect | manual" } } ``

  1. Skill eldercare-offline-queue sẽ retry mỗi phút
  2. EMERGENCY messages retry không backoff 3 lần đầu
  3. Nếu Zalo fail → tự động thử Telegram
  4. Nếu mất mạng > 30 phút → TTS local + đèn flash qua HA LAN

QUAN TRỌNG: Mỗi level escalation (Level 1, 2, 3) nếu gửi thất bại đều tạo queue entry riêng. Ví dụ Level 1 fail → queue entry priority EMERGENCY. Level 2 fail → thêm 1 queue entry nữa.

Security

  • Security scanPassed, 100 of 100Pattern checks on the skill's files.
  • Model reviewNot runA model review is scheduled for the next rescan.

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
55
Repository forks
27
7-day trend score
20

Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 8 Apr 2026, 7 months ago.

Extension points

  • configConfiguration overrides

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/nclamvn/openclawvn/eldercare-sos/badge)](https://verified-skill.com/skills/nclamvn/openclawvn/eldercare-sos)

Something wrong with this skill or its page? Tell us.