SkillHub

living-room-smoke-detector

v1.0.0

Simple smoke/fire detector for living room. Queries Dirigera air sensor every 5 minutes, detects dangerous PM2.5 over 250 or CO2 over 2000 levels, and broadcasts emergency alert on Mac speaker continuously until air quality normalizes. Acts as backup to regular smoke alarms.

Sourced from ClawHub, Authored by Igor

Installation

Please help me install the skill `living-room-smoke-detector` from SkillHub official store. npx skills add maverick-2/living-room-smoke-detector

Living Room Smoke Detector

A simple, focused smoke and fire detection system that monitors the living room ALPSTUGA air sensor via the Dirigera hub.

What It Does

  • Queries Dirigera directly every 5 minutes (not from database)
  • Simple state only - keeps just the latest reading, no history
  • Detects danger: PM2.5 > 250 µg/m³ OR CO2 > 2000 ppm
  • Continuous alert - plays "Attention! Abnormal smoke level detected" on Mac speaker
  • Loops until cleared - keeps playing every 5 seconds until air quality normalizes
  • Backup smoke alarm - works alongside your regular smoke detector

Setup

1. Copy Alert Sound (optional)

If you already have the alert sound from the air monitor skill:

cp ~/.openclaw/workspace/skills/living-room-air-monitor/data/smoke_alert_message.mp3 
   ~/.openclaw/workspace/skills/living-room-smoke-detector/data/alert.mp3

Otherwise it will auto-generate on first run.

2. Cron Setup

Add to crontab to check every 5 minutes:

*/5 * * * * /opt/homebrew/bin/python3 /Users/macmini/.openclaw/workspace/skills/living-room-smoke-detector/scripts/smoke_detector.py >> /tmp/smoke_detector.log 2>&1

Usage

Manual Check

python3 ~/.openclaw/workspace/skills/living-room-smoke-detector/scripts/smoke_detector.py

View Status

# Latest reading
cat ~/.openclaw/workspace/skills/living-room-smoke-detector/data/detector_state.json

# Log
tail -f /tmp/smoke_detector.log

How It Works

  1. Cron triggers every 5 minutes
  2. Fetches data directly from Dirigera hub
  3. Checks thresholds:
  4. PM2.5 > 250 µg/m³ (smoke particles)
  5. CO2 > 2000 ppm (combustion byproduct)
  6. If danger detected:
  7. Saves state (alert_active = true)
  8. Enters alert loop
  9. Plays alert sound every 5 seconds
  10. Re-checks sensor between plays
  11. Exits loop when air clears
  12. If normal: Updates state and exits

State File

data/detector_state.json:

{
  "latest_reading": {
    "pm25": 3,
    "co2": 525,
    "time": "2026-02-25T20:30:00"
  },
  "alert_active": false,
  "last_check": "2026-02-25T20:30:00"
}

Alert Behavior

When danger is detected: - Mac speaker plays: "Attention! Abnormal smoke level detected" - Waits 5 seconds - Checks sensor again - Repeats until PM2.5 ≤ 250 AND CO2 ≤ 2000 - Press Ctrl+C to stop manually if needed

Files

File Purpose
scripts/smoke_detector.py Main detection script
data/alert.mp3 Alert sound file
data/detector_state.json Latest reading and status

Dependencies

  • Python 3.x
  • Dirigera hub access (192.168.1.100)
  • Auth token at ~/.openclaw/workspace/.dirigera_token
  • macOS afplay (built-in)
  • say and ffmpeg (for alert generation)

Differences from Air Monitor Skill

Feature Air Monitor Smoke Detector
Data storage Full SQLite database Latest reading only
Query source Database Dirigera directly
Frequency Every 2 min Every 5 min
Purpose History + charts Immediate alerting
Alert Single play Continuous loop
Complexity Multi-feature Single-purpose

Use both for complete coverage: air monitor for data logging, smoke detector for focused alerting.