Note (2026-07): Active development has moved to the successor project zeus-herald. This repository is in maintenance-only mode (security/critical fixes may still apply). Prefer Telegram Bot + ntfy via zeus-herald; WhatsApp/Puppeteer paths are discontinued for new work. See the discontinuation notice in the zeus-herald repository (
docs/DISCONTINUATION.md).
Bewegungsbewertung und optionale WhatsApp-Benachrichtigung für lokal gespeicherte Kamera-Snapshots.
Motion evaluation and optional WhatsApp notification for locally stored camera snapshots.
Aus lokalen Kamerabildern werden gefilterte Ereignisse – optional mit Benachrichtigung per WhatsApp.
Local camera frames become filtered events – optionally delivered via WhatsApp.
SnapShotter ist ein privates Open-Source-Projekt für technisch versierte Nutzerinnen und Nutzer.
Das Projekt steht in keiner Verbindung zu WhatsApp, Meta, UpCam, Reolink oder deren Herstellern, Markeninhabern, Tochterunternehmen oder Vertriebspartnern.
WhatsApp, UpCam und Reolink sind Marken beziehungsweise Produktnamen ihrer jeweiligen Rechteinhaber. Die Nennung dient ausschließlich der technischen Beschreibung der verwendeten beziehungsweise kompatiblen Schnittstellen und Geräte.
Produktiver Einsatz kann möglich sein, erfolgt aber immer eigenverantwortlich.
Konfiguration, Betrieb, Datenschutz, Nachrichtenziele, Versandhäufigkeit, WhatsApp-Nutzung, Monitoring und Bewertung der automatisierten Benachrichtigungen liegen beim jeweiligen Betreiber.
SnapShotter darf nicht für Spam, Massenversand, unerwünschte Nachrichten, Werbenachrichten oder sonstige missbräuchliche Kommunikation verwendet werden.
Der Betreiber ist selbst dafür verantwortlich, die jeweils gültigen WhatsApp-Regeln, Nutzungsbedingungen und Plattformrichtlinien einzuhalten.
Insbesondere gilt:
- keine unerwünschten Nachrichten
- kein Spam
- kein Marketingversand
- kein Bulk-Messaging
- keine Belästigung anderer Nutzerinnen und Nutzer
- keine automatisierte Kommunikation ohne legitimen Zweck und Zustimmung
- keine Nutzung gegen die WhatsApp-Nutzungsbedingungen
Dieses Projekt ist für private, kontrollierte Benachrichtigungen an eigene Geräte oder eigene Gruppen gedacht – nicht für Reichweite, Werbung oder Massenkommunikation.
Bei Verstößen können WhatsApp-Konten eingeschränkt oder gesperrt werden. Die Verantwortung liegt vollständig beim Betreiber.
SnapShotter ist eine Node.js-Anwendung, die lokal gespeicherte Kamerabilder überwacht, bewertet und verarbeitet.
Die Anwendung kann neue Bilder aus einem Eingangsordner erkennen, einfache Bewegungs- und Änderungslogik anwenden und relevante Bilder optional an eine definierte WhatsApp-Gruppe oder einen definierten WhatsApp-Chat senden.
Kurz gesagt:
upcam-client holt die Bilder von der Kamera.
SnapShotter entscheidet, ob daraus eine Benachrichtigung werden soll.
SnapShotter ist der zweite Baustein einer zweistufigen Pipeline:
IP-Kamera
↓
upcam-client
↓
./images/received/
↓
SnapShotter
↓
Filterung / Entscheidung / WhatsApp-Benachrichtigung
upcam-client ruft Snapshots von einer Kamera ab und speichert sie lokal.
SnapShotter verarbeitet diese lokalen Bilder:
- Eingangsordner überwachen
- neue Frames erkennen
- Bewegungs-/Änderungslogik anwenden
- irrelevante Bilder aussortieren
- relevante Bilder optional per WhatsApp versenden
- Entscheidungen und Laufzeitstatus protokollieren
Beide Projekte können getrennt betrachtet werden, sind im praktischen Betrieb aber als gemeinsame Pipeline gedacht.
SnapShotter richtet sich an Nutzerinnen und Nutzer, die:
- lokale Kamerabilder automatisiert auswerten möchten
- einfache Ereignisbenachrichtigungen aufbauen möchten
- Snapshots nicht ungefiltert weiterleiten wollen
- technische Konfigurationen selbst prüfen können
- WhatsApp nur verantwortungsvoll und regelkonform einsetzen
- Betrieb, Datenschutz und Benachrichtigungen aktiv überwachen
Nicht geeignet ist das Projekt für Personen, die eine zertifizierte Alarmanlage, eine kommerzielle Sicherheitslösung, eine garantierte Bewegungserkennung oder ein WhatsApp-Marketing-Tool erwarten.
SnapShotter ist kein vollständiges Sicherheitssystem.
Die Anwendung:
- ersetzt keine Alarmanlage
- ersetzt keine professionelle Videoüberwachung
- garantiert keine Bewegungserkennung
- garantiert keine Zustellung per WhatsApp
- darf nicht für Spam oder Massenversand verwendet werden
- prüft nicht automatisch, ob der WhatsApp-Einsatz erlaubt ist
- prüft nicht automatisch Datenschutz- oder Persönlichkeitsrechte
- ist keine offizielle WhatsApp-, Meta-, UpCam- oder Reolink-Software
- ist nicht für sicherheitskritische, medizinische oder behördliche Einsätze gedacht
Die Verantwortung für Betrieb, Datenschutz, Empfänger, Versandhäufigkeit und rechtmäßige Nutzung liegt beim Betreiber.
./images/received/
↓
neues Bild erkannt
↓
Bewegungs-/Signalbewertung
↓
Entscheidung
├── relevant → ./images/sent/ oder WhatsApp-Versand
└── nicht relevant → ./images/filtered/
↓
Status / Logs / Telemetrie
Typischer Ablauf:
upcam-clientschreibt Bilddateien nach./images/received/- SnapShotter erkennt neue Bilder
- SnapShotter bewertet Helligkeit, Änderung und Ereignislogik
- relevante Bilder werden optional per WhatsApp gesendet
- verworfene Bilder werden abgelegt
- Entscheidungen und Laufzeitstatus werden protokolliert
- Überwachung eines lokalen Bildordners
- Verarbeitung neuer Kamera-Snapshots
- einfache Bewegungs- und Änderungsbewertung
- Helligkeits-/Signalfilter
- Ereignislogik gegen unnötige Mehrfachmeldungen
- optionale WhatsApp-Benachrichtigung
- Archivierung gesendeter Bilder
- Ablage gefilterter Bilder
- Laufzeitstatus über
.state - Log-Ausgaben für Betrieb und Fehlersuche
- Tests per npm
- Node.js 20 oder höher
- npm
- lokale Bildquelle, typischerweise
upcam-client - konfigurierter Eingangsordner
- optional: WhatsApp Web Session
- aktives Monitoring durch den Betreiber
git clone https://github.com/gzeuner/SnapShotter.git
cd SnapShotter
npm cinode src/SnapShotter.jsnpm testDie Hauptkonfiguration liegt hier:
src/config.js
Wichtige Bereiche:
imageFilter.nativeSignal.*
imageFilter.delta.*
imageFilter.brightnessGuard.*
imageFilter.event.*
runtime.*
whatsapp.*
logging.*
Die konkreten Werte müssen zur eigenen Kamera, Bildfrequenz, Umgebung, Beleuchtung, Speicherstruktur und gewünschten Benachrichtigungslogik passen.
images/
received/ neue Bilder von upcam-client
sent/ akzeptierte / versendete Bilder
filtered/ verworfene Bilder
.state/
runtime-health.json
decisions.ndjson
notifications.ndjson
logs/
SnapShotter kann WhatsApp Web technisch zur Benachrichtigung verwenden.
Wichtig:
- nur eigene oder ausdrücklich gewünschte Benachrichtigungen verwenden
- Empfänger bewusst auswählen
- Versandfrequenz begrenzen
- keine fremden Personen ungefragt anschreiben
- keine Werbung versenden
- keine Massenkommunikation aufbauen
- WhatsApp-Regeln regelmäßig prüfen
- Konto-Sperrungen einkalkulieren, wenn WhatsApp Nutzung als missbräuchlich bewertet
Empfohlen ist ein sehr enger, privater Einsatz, zum Beispiel:
Kameraereignis → eigene private WhatsApp-Gruppe → Betreiber erhält Bild
Nicht empfohlen und nicht Zweck dieses Projekts:
Kameraereignis → viele Empfänger
Kameraereignis → Marketing-Verteiler
Kameraereignis → ungefragte Kontakte
Kameraereignis → dauerhafte Nachrichtenflut
Beim Betrieb einer Kamera-Pipeline entstehen Bilddaten. Diese können Personen, Fahrzeuge, Grundstücke oder andere sensible Informationen enthalten.
Der Betreiber ist verantwortlich für:
- rechtmäßige Kameraausrichtung
- Datenschutz und Persönlichkeitsrechte
- sichere Speicherung der Bilder
- sichere WhatsApp-Nutzung
- Zugriffsschutz auf Laufzeitordner
- Löschung alter Bilddaten
- Protokollierung und Monitoring
- Prüfung, ob Benachrichtigungen rechtmäßig und angemessen sind
Dieses Projekt liefert nur technische Bausteine. Es ersetzt keine rechtliche oder fachliche Prüfung.
.state/runtime-health.json Laufzeitstatus
.state/decisions.ndjson Bewertungsentscheidungen
.state/notifications.ndjson Benachrichtigungsereignisse
logs/ Logdateien
images/received/ Eingangsbilder
images/sent/ akzeptierte / gesendete Bilder
images/filtered/ verworfene Bilder
Nicht committen:
.wwebjs_auth/
.wwebjs_cache/
.state/
images/
logs/
*.local.*
Optionaler Check vor dem Commit:
git diff --cached --name-only
git diff --cached | rg -n --pcre2 "(?i)(password|secret|token|api[_-]?key|authorization|bearer|BEGIN [A-Z ]*PRIVATE KEY|\b(10\.|192\.168\.|172\.(1[6-9]|2[0-9]|3[0-1])\.)\b)"upcam-client ist das passende Schwesterprojekt zu SnapShotter.
upcam-client übernimmt den Kamera-Ingest: Es ruft Snapshots von der IP-Kamera ab und speichert sie lokal.
SnapShotter übernimmt die nachgelagerte Verarbeitung: Es überwacht den Bildordner, bewertet neue Bilder und kann relevante Ereignisse optional per WhatsApp weiterleiten.
Für einen stabilen Betrieb sollten beide Projekte gemeinsam konfiguriert und getestet werden.
MIT License
SnapShotter is a private open-source project for technically experienced users.
This project is not affiliated with WhatsApp, Meta, UpCam, Reolink or their manufacturers, trademark owners, subsidiaries or distributors.
WhatsApp, UpCam and Reolink are trademarks or product names of their respective owners. They are mentioned only to describe used or compatible interfaces and devices.
Production use may be possible, but always at your own responsibility.
The operator is responsible for configuration, operation, data protection, message targets, sending frequency, WhatsApp usage, monitoring and evaluation of automated notifications.
SnapShotter must not be used for spam, bulk messaging, unwanted messages, advertising or abusive communication.
The operator is responsible for complying with the current WhatsApp rules, terms and platform policies.
This project is intended for private, controlled notifications to your own devices or own groups – not for reach, advertising or mass communication.
SnapShotter is a Node.js application that monitors, evaluates and processes locally stored camera images.
It can detect new images in an input directory, apply simple motion/change logic and optionally send relevant images to a defined WhatsApp group or chat.
In short:
upcam-client fetches the images from the camera.
SnapShotter decides whether a notification should be created.
IP camera
↓
upcam-client
↓
./images/received/
↓
SnapShotter
↓
filtering / decision / WhatsApp notification
upcam-client is the matching ingest project.
upcam-client retrieves snapshots from the camera and stores them locally.
SnapShotter watches that local image folder, evaluates new images and may forward relevant events.
MIT License
