Zum Hauptinhalt springen

Foscam Smart-Home-Integration, kostenlos und Open Source

Foscam-Integration für Gladys Assistant

Foscam-IP-Kameras im Netzwerk: Bilder, Bewegungsalarme, PTZ und Presets.

Diese Integration verbindet Gladys mit deinen Foscam-IP-Kameras, direkt in deinem lokalen Netzwerk: Kamerabilder, Bewegungs-, Personen- und Geräuschalarme, Bewegungserkennung ein oder aus, Nachtsicht und bei motorisierten Modellen Schwenken / Neigen und gespeicherte Positionen.

Sie spricht mit jeder Kamera über deren eingebaute HTTP-API (die Foscam-„CGI“). Keine Foscam-Cloud, kein Foscam-Konto, keine Internetverbindung: Das Transport-Badge jeder Kamera zeigt lokal.

Kompatible Kameras​

Die Foscam-HD-Kameras, die alle dieselbe API haben: FI98xx und FI99xx, R2 / R4 / R5, C1 / C2 / C5, G2 / G4, SD2 / SD4, X1 / X2 / X5 und die meisten aktuellen Innen- und Außenmodelle.

Nicht unterstützt:

  • die alten MJPEG-Modelle (FI8xxx, Port 80): Ihre API ist eine andere;
  • die Modelle, die nur über die Foscam-App und -Cloud funktionieren (einige Akku-Kameras): Sie antworten nicht im lokalen Netzwerk.

Im Zweifel sagt dir die Schaltfläche Verbindung testen in Sekunden, ob eine Kamera antwortet.

Bevor du beginnst​

  1. Gib jeder Kamera eine feste IP-Adresse, im Router (DHCP-Reservierung) oder in der Kamera (Einstellungen → Netzwerk → IP-Konfiguration). Die Integration erkennt jede Kamera an ihrer MAC-Adresse: Eine neue Adresse lässt die Kamera nicht verloren gehen, muss aber in der Konfiguration neu eingetragen werden.
  2. Notiere den HTTP-Port der Kamera: Einstellungen → Netzwerk → Port, der HTTP-Port. Ab Werk ist er 88.
  3. Lege einen eigenen Benutzer an auf jeder Kamera (Einstellungen → System → Kontoverwaltung), möglichst mit demselben Namen und Passwort auf allen Kameras:
    • Rolle Administrator, wenn du die Bewegungserkennung und die Nachtsicht aus Gladys schalten willst;
    • sonst Rolle Bediener (Bilder, Alarme, PTZ).
  4. Richte die Erkennung in der Kamera ein: Einstellungen → Alarm → Bewegungserkennung (und Geräuscherkennung, Personenerkennung bei den Modellen, die sie haben). Die Kamera entscheidet, was eine Erkennung ist — Zonen, Empfindlichkeit, Zeitplan; die Integration liest ihre Alarme.

Konfiguration​

FeldWas hineingehört
KamerasDie Adresse jeder Kamera, siehe unten
BenutzernameDer Kamerabenutzer (standardmäßig admin)
PasswortSein Passwort
Bildaktualisierung (s)Sekunden zwischen zwei an Gladys gesendeten Bildern, standardmäßig 60, mindestens 5. 0 sendet von selbst keine
Alarmabfrage (s)Sekunden zwischen zwei Abfragen der Kameraalarme, standardmäßig 2
PTZ-Schritt (ms)Wie lange eine Bewegung dauert, bevor die Integration sie stoppt, standardmäßig 800, höchstens 5000

Die Kameraliste​

Trage die IP-Adressen ein, durch Kommas getrennt (oder Semikolons, oder eine pro Zeile):

192.168.1.20, 192.168.1.21

Füge :Port hinzu, wenn der HTTP-Port nicht 88 ist, und Name= davor, um den Namen der Kamera in Gladys festzulegen (sonst wird der in der Kamera gespeicherte Name verwendet):

Eingang=192.168.1.20, Garten=192.168.1.21:8080

Eine Kamera mit eigenem Benutzer oder Passwort, oder deren Fähigkeiten erzwungen werden müssen, kommt stattdessen in eine JSON-Liste (das ganze Feld ist dann diese Liste):

[
{ "host": "192.168.1.20", "name": "Eingang" },
{ "host": "192.168.1.22", "port": 88, "name": "Garage", "username": "gladys", "password": "…" },
{ "host": "192.168.1.23", "name": "Wohnzimmer", "ptz": true, "zoom": true }
]
SchlüsselBedeutung
hostIP-Adresse oder Hostname (Pflicht)
portHTTP-Port, standardmäßig 88
nameName in Gladys
usernameBenutzer dieser Kamera, statt dem der Konfiguration
passwordSein Passwort. Nutze lieber das Feld Passwort: Dieses hier ist im Formular nicht verborgen
ptztrue / false, um die Schwenk- und Neigesteuerung zu erzwingen (sonst erkannt)
zoomtrue für die seltenen Modelle mit Motorzoom: fügt Zoom rein / raus zur Steuerung hinzu

Ein unlesbarer Eintrag (Tippfehler in der Adresse, ungültiger Port, dieselbe Kamera zweimal) wird ignoriert, und Verbindung testen sagt, welcher und warum.

In Gladys​

Eine Kamera erscheint in der Geräteerkennung, sobald sie einmal geantwortet hat. Ihre Funktionen (beim Anlegen englisch benannt; du kannst sie in Gladys umbenennen):

FunktionWas sie tut
Image (Bild)Das Kamerabild, alle Bildaktualisierung Sekunden erneuert und immer dann, wenn Gladys eines anfragt
Enabled in Gladys (aktiviert)Aus: Gladys zeigt die Kamera nicht mehr, und die Integration sendet keine Bilder und Erkennungen mehr
Motion (Bewegung)1, solange die Kamera Bewegung (oder eine Person) meldet, sonst 0
Motion detection (Erkennung)Die Bewegungserkennung der Kamera, aktiv (1) oder nicht (0). Aus Gladys schaltbar
Night vision (Nachtsicht)Die Infrarot-LEDs, an oder aus. Aus Gladys geschaltet, werden sie erzwungen; set_night_vision stellt auf Auto
Move (motorisiert)Links / rechts schwenken, hoch / runter neigen (und Zoom, wenn angegeben)
Preset (motorisiert)Die in der Kamera gespeicherten Positionen, nach Namen

Enabled in Gladys ist ein Datenschutzschalter auf Gladys-Seite: Die Kamera selbst läuft weiter, nimmt auf ihre SD-Karte auf und sendet ihre eigenen Benachrichtigungen.

Bilder​

Gladys nimmt Bilder bis 150 KB an. Ein Foscam-Schnappschuss ist ein Bild des Hauptstreams (in 1080p oft 200 bis 400 KB): Die Integration verkleinert es vor dem Senden, mit gleichem Seitenverhältnis.

Jede Erkennung sendet außerdem sofort ein frisches Bild: Eine Szene, die bei einer Erkennung das Kamerabild sendet, sendet das Bild dieser Erkennung.

Motorisierte Kameras​

Die Foscam-API kennt keine Bewegung „um einen Schritt“: Eine Bewegung läuft, bis sie gestoppt wird. Die Integration stoppt daher jede Bewegung nach PTZ-Schritt Millisekunden (höchstens 5 s), damit ein verlorener Stopp die Kamera nie gegen ihren Anschlag laufen lässt. Verlängere den Schritt für eine größere Bewegung.

Die Presets werden beim Erkennen der Kamera gelesen. Nachdem du eines in der Kamera hinzugefügt oder umbenannt hast, starte eine neue Suche in der Geräteerkennung: Die Liste wird aktualisiert, ohne die Kamera neu anzulegen.

Verbindung testen​

Die Schaltfläche Verbindung testen im Konfigurationsbildschirm fragt jede Kamera sofort ab. Für jede bekommst du das Modell, die Firmware und ob sie motorisiert ist — oder den genauen Grund, warum sie nicht antwortet:

MeldungWas zu tun ist
unter dieser Adresse antwortet nichtsPrüfe IP-Adresse und HTTP-Port; die Kamera muss im selben Netzwerk wie Gladys sein
keine rechtzeitige AntwortDie Kamera ist aus, startet neu, oder ihr WLAN ist zu schwach
falscher Benutzername oder falsches PasswortPrüfe sie an der Kamera. Nach einigen Fehlversuchen sperrt die Kamera das Konto einige Minuten
dieses Konto darf das nichtGib dem Benutzer die Rolle Administrator oder Bediener
keine Foscam-Kamera-APIAuf diesem Port antwortet etwas anderes: prüfe den HTTP-Port

Nach einem falschen Passwort fragt die Integration diese Kamera fünf Minuten lang nicht mehr ab: Weiteres Probieren würde das Konto sperren.

Szenen und Dashboard (Gladys 5.1+)​

Szenen-Auslöser​

  • Kamera-Erkennung (detection): Eine Kamera hat Alarm ausgelöst. Filtere nach Kamera und nach dem Erkannten: motion (Bewegung), person (Person), sound (Geräusch), io (der Alarmeingang der Kamera). Die Szene liest {{triggerEvent.data.kind}} und {{triggerEvent.data.camera_name}}. Ein Ereignis pro Alarm, nie eines pro Abfrage.
  • Kamera offline oder zurück (camera_connection): Eine Kamera antwortet nicht mehr (dreimal in Folge, oder ein falsches Passwort), oder wieder. Die Szene liest {{triggerEvent.data.state}} (offline / online), {{triggerEvent.data.camera_name}} und {{triggerEvent.data.reason}}.

Die Funktion Motion speist außerdem den Standard-Auslöser „Gerätezustand“ von Gladys.

Szenen-Aktionen​

Jede Aktion liefert ein Ergebnis, das die folgenden Aktionen prüfen können; eine Kamera, die sie nicht ausführen kann, liefert false, statt die Szene anzuhalten.

AktionFelderErgebnis
Kamerabild aufnehmen (take_snapshot)Kameracaptured
Kamera auf Preset fahren (goto_preset)Kamera, Name des Presetsmoved
Bewegungserkennung schalten (set_motion_detection)Kamera, aktivapplied
Nachtsicht einstellen (set_night_vision)Kamera, automatisch / an / ausapplied
Kamera neu starten (reboot_camera)Kamerarebooted

take_snapshot gefolgt von der Gladys-Aktion Kamerabild senden schickt ein genau in diesem Moment aufgenommenes Bild. Typische Szenen: die Bewegungserkennung aller Kameras einschalten, wenn das Haus leer ist; die Kamera auf ihr Preset „Tür“ fahren, wenn es klingelt.

Widgets​

  • Foscam-Kamera: eine Kamera, in den Widget-Einstellungen gewählt: ihr letztes Bild, die Live-Kachel Bewegung, Verbindung, Bewegungserkennung, Nachtsicht, letzte Erkennung, und Schaltflächen, um das Bild zu aktualisieren und die Erkennung ein- oder auszuschalten.
  • Foscam-Kameras: alle Kameras auf einen Blick (online, offline, im Alarm), mit einer Schaltfläche, die alle Bilder aktualisiert.

Sicherheit​

  • Die Foscam-API bekommt Benutzername und Passwort in der Adresse jeder Anfrage, über einfaches HTTP: Sie gehen im Klartext durch dein lokales Netzwerk. Verwende einen eigenen Benutzer, nicht das Hauptkonto der Kamera, und halte die Kameras in einem vertrauenswürdigen Netzwerk.
  • Stelle die Kameras nicht ins Internet (Portweiterleitung, UPnP): Die Integration braucht das nicht. Schalte UPnP und P2P in der Kamera aus, wenn du die Foscam-App nicht nutzt.
  • Halte die Firmware der Kameras aktuell.
  • Das Passwort wird von Gladys in einem geheimen Feld gespeichert; die Integration schreibt es nie in ihre Logs oder eigenen Dateien.

Fehlerbehebung​

  • Die Kamera erscheint nicht in der Geräteerkennung: Sie hat nie geantwortet. Starte Verbindung testen.
  • Motion bleibt auf 0: Die Bewegungserkennung muss in der Kamera eingeschaltet und eingerichtet sein (Zonen, Zeitplan). Die Funktion Motion detection zeigt, ob sie aktiv ist.
  • „Motion detection“ lässt sich nicht schalten: Der Benutzer braucht die Rolle Administrator.
  • Das Bild ist verspätet: Senke Bildaktualisierung; Gladys nimmt höchstens 12 Bilder pro Minute und Kamera an, 5 s ist also das Minimum.
  • Ausführliche Logs: Sie stehen in den Logs der Integration (Gladys, Integrationen, Foscam, Logs).

Konfigurationseinstellungen​

Diese Einstellungen fragt Foscam in seinem Konfigurationsbildschirm in Gladys ab.

EinstellungTypPflichtfeldBeschreibung
Erste SchrittesectionNeinDie Integration spricht direkt im lokalen Netzwerk mit deinen Foscam-Kameras, über ihre HTTP-API (CGI): keine Foscam-Cloud, kein Konto, kein Internet. Gib jeder Kamera in deinem Router eine feste IP-Adresse und trage diese Adressen unten ein. Lege auf jeder Kamera einen eigenen Benutzer an (Rolle Bediener), statt das Admin-Konto zu verwenden.
KamerasstringJaIP-Adressen deiner Kameras, durch Kommas getrennt. Füge :Port hinzu, wenn er nicht 88 ist, und Name= davor, um eine Kamera zu benennen, z. B. Eingang=192.168.1.20, Garten=192.168.1.21:8080. Ein JSON-Array wird ebenfalls akzeptiert, für eine Kamera mit eigenen Zugangsdaten (siehe Dokumentation).
BenutzernamestringJaBenutzer der Kameras (auf allen gleich, außer er ist in einer JSON-Liste pro Kamera angegeben).
PasswortsecretNeinPasswort dieses Benutzers. Achtung: Nach einigen falschen Passwörtern sperrt eine Foscam-Kamera das Konto eine Weile.
Bildaktualisierung (s)numberNeinSekunden zwischen zwei an Gladys gesendeten Bildern (mindestens 5). 0 sendet keine: Gladys fragt dann nur ein Bild an, wenn du die Kamera öffnest.
Alarmabfrage (s)numberNeinSekunden zwischen zwei Abfragen der Kameraalarme (Bewegung, Person, Geräusch). 2 erfasst jeden Alarm.
PTZ-Schritt (ms)numberNeinMotorisierte Kameras: wie lange eine Bewegung dauert, bevor die Integration sie stoppt, in Millisekunden (höchstens 5000).

So installierst du Foscam in Gladys​

  1. Öffne in Gladys Integrationen: Foscam erscheint im Katalog neben den nativen Integrationen, mit einem Community-Badge.
  2. Klicke auf Installieren. Gladys lädt das Docker-Image (ghcr.io/prohand/gladys-foscam:0.0.1) herunter, startet es in einer vom Kern isolierten Sandbox und erzeugt die Oberfläche der Integration (Geräte, Erkennung und Konfiguration).
  3. Öffne den Bildschirm Konfiguration der Integration, fülle die Einstellungen aus und speichere.
  4. Du kannst sie auch direkt über die URL ihres Repositorys installieren: https://github.com/prohand/gladys-foscam.

Foscam benötigt Gladys >=5.1.0. Der Katalog in Gladys wird stündlich aktualisiert, eine neue Version ist also spätestens eine Stunde nach ihrer Veröffentlichung verfügbar.

Du nutzt Gladys noch nicht? Es ist kostenlos und Open Source: folge der Installationsanleitung, um loszulegen.

Über externe Integrationen​

Foscam ist eine externe Integration: eine Community-Integration, die als Docker-Container verpackt und auf GitHub veröffentlicht wird. Gladys installiert sie mit einem Klick und führt sie in einer vom Kern isolierten Sandbox aus. Sie wird von prohand veröffentlicht und gepflegt, nicht vom Gladys-Kernteam.

Abonniere den Newsletter von Gladys Assistant

Ein paar E-Mails im Monat zu neuen Releases und Neuigkeiten aus dem Projekt. Verschickt von Pierre-Gilles Leymarie, dem Gründer des Projekts. Jederzeit abbestellbar 🙂