<< All versions

Skill v1.0.0

currentLLM-judged scan90/100
devvgwardo/openclaw-ruview-presence/ruview-presence
──Details
PublishedOctober 24, 2026 at 10:33 AM
Content Hashsha256:fc2e9a84338bb3f0...
Git SHAfb70cbdb40e2
──Files
Files (1 file, 2.5 KB)
SKILL.md2.5 KBactive
SKILL.md · 49 lines · 2.5 KB

version: "1.0.0" name: ruview-presence description: "Answer questions about whether the user is physically present, which room or zone they're in, or their breathing and heart rate, using RuView WiFi sensing. The ruview-presence plugin already tracks presence automatically; use this skill only when the user asks or when you need fresh sensor data." metadata: { "openclaw": { "emoji": "📡" } }


RuView Presence

The ruview-presence plugin handles presence for you. Before each turn it polls RuView and tracks whether the user is present or away. It holds non-urgent events while they're away, and when they come back it adds a digest to your context that starts with "Welcome back!".

What you should do

  • Don't poll RuView on every turn or heartbeat. The plugin already does that.
  • If a "Welcome back!" digest is in your context, open your reply with a short, friendly version of it. Mention the queued items, then carry on with what the user asked.
  • Use the commands below only when they're needed: the user asks about presence, their room, their vitals, or whether sensing is working; or you need current data to answer.

Querying RuView

bash
RUVIEW_URL="${RUVIEW_API_URL:-http://localhost:3000}"
# If RuView auth is on, add: -H "Authorization: Bearer $RUVIEW_API_KEY"
QuestionCommandLook at
Is anyone there?curl -s "$RUVIEW_URL/api/v1/pose/current"persons[].confidence (≥ 0.3 counts as present), persons[].zone, source
Which zones are occupied?curl -s "$RUVIEW_URL/api/v1/pose/zones/summary"zones.<name>.person_count
Breathing and heart ratecurl -s "$RUVIEW_URL/api/v1/vital-signs"vital_signs.breathing_rate_bpm, heart_rate_bpm and their *_confidence
Motion and signal detailcurl -s "$RUVIEW_URL/api/v1/sensing/latest"classification.motion_level, features.mean_rssi
Is RuView up?curl -s "$RUVIEW_URL/health/live"{"status":"alive"}

Example pose/current response:

json
{
"timestamp": 1773088911.824,
"source": "esp32",
"total_persons": 1,
"persons": [{ "id": 1, "confidence": 0.78, "zone": "zone_1" }]
}

Things to be honest about

  • `source` is `"simulated"`: the data is synthetic, so don't tell the user they are or aren't present based on it. Say that RuView is in simulation mode.
  • Low vital-sign confidence (below ~0.5): present the readings as rough estimates, not measurements.
  • RuView unreachable: say so briefly and carry on with the user's request. Never block on it.
All versions