Skip to main content

Linux daemon that detects camera usage and notifies Home Assistant via webhooks.

Project description

onair-monitor

A tiny Linux daemon that detects camera usage and notifies Home Assistant via webhooks. Optionally shows a system-tray icon that turns red when a camera is active.

Install

uv tool install onair-monitor

Tray icon support

To enable the system-tray icon, install the tray extra and the required system libraries:

1. System libraries (needed to build PyGObject):

Debian / Ubuntu:

sudo apt install libgirepository-2.0-dev libcairo2-dev

Fedora:

sudo dnf install gobject-introspection-devel cairo-devel

Arch Linux:

sudo pacman -S gobject-introspection cairo

2. Install with the tray extra:

uv tool install "onair-monitor[tray]"

GNOME users: the tray icon requires the AppIndicator extension.

Configure

On first run, a default config is created at ~/.config/onair-monitor/config.json. Edit it to point at your Home Assistant instance:

{
  "ha_url": "http://homeassistant.local:8123",
  "webhook_on": "camera_on",
  "webhook_off": "camera_off",
  "poll_interval": 2
}

The monitor POSTs to {ha_url}/api/webhook/{webhook_on|off}.

Setting up webhooks in Home Assistant

  1. Go to Settings > Automations & Scenes > Create Automation.
  2. Add a Webhook trigger and note the webhook ID.
  3. Create one automation for camera_on and one for camera_off.
  4. Use the webhook IDs in your config file.

Run

# run directly (tray icon if available, otherwise headless)
onair-monitor

# force headless mode
onair-monitor --headless

Autostart (desktop session)

onair-monitor --install-autostart

Systemd user service

onair-monitor --install-service
systemctl --user start onair-monitor.service

Uninstall

onair-monitor --uninstall
uv tool uninstall onair-monitor

The config file at ~/.config/onair-monitor/config.json is kept — remove it manually if you no longer need it.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

onair_monitor-0.1.2.tar.gz (54.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

onair_monitor-0.1.2-py3-none-any.whl (7.8 kB view details)

Uploaded Python 3

File details

Details for the file onair_monitor-0.1.2.tar.gz.

File metadata

  • Download URL: onair_monitor-0.1.2.tar.gz
  • Upload date:
  • Size: 54.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for onair_monitor-0.1.2.tar.gz
Algorithm Hash digest
SHA256 f50687e913dd725d2e2898e0651ddd0b8b83dc19c6df4822ce33c4c5753e0d25
MD5 a2543690821a48b02a07c43fec1c9273
BLAKE2b-256 7af6aac2265c19b65133124197ad73bad68dcf07b93e5a92354f59d7956787e6

See more details on using hashes here.

Provenance

The following attestation bundles were made for onair_monitor-0.1.2.tar.gz:

Publisher: publish.yaml on mariushelf/onair_monitor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file onair_monitor-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: onair_monitor-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 7.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for onair_monitor-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 c9d87772c32c090e8b0443d7389776866cc8658fa42d2d81c0f7376d37cd6ba6
MD5 5a1c4f779de2533c77983e34a2cd4d81
BLAKE2b-256 d334a5ad78d21dd49ee6da3c13d6b8f1cff162fdc94a1ff7ea0183e370a1391f

See more details on using hashes here.

Provenance

The following attestation bundles were made for onair_monitor-0.1.2-py3-none-any.whl:

Publisher: publish.yaml on mariushelf/onair_monitor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page