🧪 Skills

Living Room Smoke Detector

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 broadc...

v1.0.0
❤️ 0
⬇️ 239
👁 2
Share

Description


name: living-room-smoke-detector description: 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.

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:
    • PM2.5 > 250 µg/m³ (smoke particles)
    • CO2 > 2000 ppm (combustion byproduct)
  4. If danger detected:
    • Saves state (alert_active = true)
    • Enters alert loop
    • Plays alert sound every 5 seconds
    • Re-checks sensor between plays
    • Exits loop when air clears
  5. 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.

Reviews (0)

Sign in to write a review.

No reviews yet. Be the first to review!

Comments (0)

Sign in to join the discussion.

No comments yet. Be the first to share your thoughts!

Compatible Platforms

Pricing

Free

Related Configs