AtmovioAtmovio

Open source · Raspberry Pi 5 · MIT

Your cameras record. Atmovio watches the sky.

A home video recorder for IP cameras on a Raspberry Pi 5 – plus an AI that alerts you to red sunsets, shelf clouds, mammatus, rainbows or lightning while they are happening.

Free. Recording works offline. AI runs on the free tier of Google Gemini.

Atmovio dashboard
Atmovio dashboard
Five questions, then a web page

The installer asks what it needs. Everything else is one admin page in plain language.

Video stays home

Recordings never leave the Pi. Only single snapshots go to the AI.

API · Home Assistant · webhook

Everything Atmovio knows is available as JSON. Ready-made YAML for Home Assistant, PHP examples, push to your own website.

One-click updates

New releases appear in the admin. Backup and rollback are automatic.

What it does

Records without re-encoding

H.264/H.265 from any RTSP camera, stored as sent. Retention in days. Playback and export via Frigate.

Finds your cameras

ONVIF discovery and port scan. Every stream is verified for real frames before it is saved. Remote cameras over WireGuard.

Watches the sky

A snapshot goes to a vision model every few minutes. Score 0–10 and the phenomena it sees. Dark and unchanged frames are skipped.

Alerts, not spam

E-mail or webhook with the picture. One alert per episode – a 40-minute sunset is one message. Outages are reported too.

Cuts the clip for you

Automatically after an alert, or by hand around any detection. Browser playback up to 120×, MP4 download, timelapse.

Looks after itself

Disk health in plain words. Storage guard when the drive disappears. Logs with search.

How the AI sky watching works

Nothing runs on the Pi. One JPEG goes to a hosted vision model with one question: how interesting is this sky, and which of these phenomena do you see?

  1. 1

    Dawn to dusk

    One frame per camera every few minutes, more often around sunrise and sunset.

  2. 2

    Only useful frames

    Dark or unchanged frames never reach the model.

  3. 3

    Score and phenomena

    The model answers with a 0–10 score, what it sees and one sentence why.

  4. 4

    One alert per episode

    Above your threshold you get one message, not ten.

Providers

  • Google Geminifree tier, default
  • Groq · OpenRouterfree models
  • OpenAI · Anthropicpaid, most accurate
  • Ollama on the Pioffline, slower
Detection detail in Atmovio
Detection detail in Atmovio

Phenomena

  • Red sky
  • Shelf cloud
  • Mammatus
  • Altocumulus
  • Thunderstorm
  • Lightning
  • Rainbow
  • Halo
  • Crepuscular rays
  • Lenticular clouds
  • Fog
  • Funnel cloud
  • Wall cloud
  • Roll cloud
  • Asperitas
  • Hail core
  • Shower
  • Virga
  • Heavy rain
  • Snowfall
  • Other

The admin

Cameras
Cameras
One camera – everything in one place
One camera – everything in one place
Videos
Videos
Updates
Updates

Hardware

Raspberry Pi 5 only. Four to six cameras are fine.

Hardware guide →
BoardRaspberry Pi 5, 4 GB min., 8 GB recommended
SystemRaspberry Pi OS Lite 64-bit on SSD or SD card
RecordingsUSB 3 hard drive. Mbit/s of all cameras × 10.8 ≈ GB per day
PowerOfficial 27 W supply, active cooler
NetworkWired Ethernet. Remote cameras over WireGuard
CamerasAny RTSP camera (H.264/H.265), ONVIF preferred

Install

Flash Raspberry Pi OS Lite, plug in the drive, run the two lines on the right on the Pi (over SSH). The installer downloads from the latest GitHub release, asks for a password, retention, time zone and the disk – and never touches the system disk.

  1. Download install.sh from the latest release and run it as root.
  2. Open http://<pi-ip>: cameras → disk → alerts → AI key.
  3. Updates arrive in the admin. One click.

Plain HTTP by design: keep it in your LAN or behind a VPN. Never expose port 80 to the internet.

Installation guide →
Raspberry Pi 5 · Raspberry Pi OS Lite
curl -fsSL -o install.sh https://github.com/VladimirVecera/atmovio/releases/latest/download/install.sh
sudo bash install.sh
Prefer git? Clone the repository – install.sh is in its root:
git clone https://github.com/VladimirVecera/atmovio.git
cd atmovio
sudo bash install.sh

♥ Support the project

Atmovio is free – keep it that way

Server, cameras and AI credits cost money. Any amount helps – QR payment or bank transfer, no registration.

API & Home Assistant

Atmovio is not a closed box. Status, cameras, snapshots, detections and videos are one GET away – and Home Assistant needs no custom component.

Home Assistant

Sensors, camera entity and a phone notification with the picture – built-in REST integration, copy the YAML.

rest:
  - resource: http://pi/api/v1/status
    sensor:
      - name: Atmovio disk used
        value_template: "{{ value_json.storage.disk_pct }}"
Home Assistant YAML →

REST API

Status, cameras, snapshots, detections, videos and events as JSON with API keys. PHP scripts included.

GET /api/v1/status
GET /api/v1/cameras/zahrada/snapshot.jpg
GET /api/v1/detections?limit=5
GET /api/v1/videos
Authorization: Bearer at_…
API reference →

Webhook

Atmovio pushes status every minute and every alert with its picture to your website. PHP receiver included.

POST https://your-site/webhook.php
{"kind": "sky", "score": 9,
 "phenomena": ["cervanky"],
 "image": "<base64 jpeg>"}
Webhook docs →

Open source

Made by Vladimír Večeřa for his own roof. MIT license. The admin is in Czech for now, the docs are in English and Czech – contributions welcome.

FAQ

Does it need the internet?

Recording: no. AI and alerts: yes, unless you run Ollama on the Pi.

Does it detect people or cars?

No. Atmovio is about the sky. Object detection can be enabled in Frigate at the cost of CPU.

How much disk?

Mbit/s of all cameras × 10.8 ≈ GB per day. Four 4 Mbit/s cameras ≈ 1.2 TB a week.

Is my video sent anywhere?

No. Only single snapshots go to the AI provider and to your own webhook if enabled.

Raspberry Pi 4?

Not supported. Previews and AI snapshots are CPU-bound.

Why no HTTPS?

It runs in your LAN. Use a VPN for remote access, never port-forward.