FHEM-Integration von Tapo Kameras

Begonnen von Prof. Dr. Peter Henning, 18 März 2026, 11:39:03

Vorheriges Thema - Nächstes Thema

Prof. Dr. Peter Henning

Die Kameras des Herstellers Tapo sind recht gut und preiswert. Zwar normalerweise auch an eine chinesische Cloud angebunden, können aber mit relativ geringem Aufwand auch ohne diese betrieben werden.

Mit der FHEM-Integration bin ich schon relativ weit: Stream, Snapshots, Bewegung etc. funktionieren schon sehr gut. Derzeit arbeitet das mit ein paar Python-Skripten, prinzipiell sollte es aber auch ohne diesen Umweg komplett mit HTTPMOD gehen.

Ob ich das nur für mich mache, oder ein allgemein nutzbares System zusammenbaue, hängt vom Interesse hier im Forum ab.

Ich habe das Modell hier: https://www.amazon.de/dp/B0DY94MCLN?ref=fed_asin_title
und bin sehr zufrieden.

LG

pah

DeeSPe

Ich bekunde mal Interesse, habe zwei C222 im Einsatz.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Gisbert

Hallo pah,

dito hier. Ich überlege, mit welchen Kameras ich aufrüsten möchte. Das Problem bei meinen jetzigen Kameras (Foscam) sind entweder Spinnennetze vor der Linse (nachts) und/oder zu wenig (d.h. ausbleibende Alarmierungen) oder zu viele Fehlalarme.

Viele Grüße Gisbert
Proxmox | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome | Panasonic Heishamon

CQuadrat

Ebenfalls dito.
Kameraüberwachung ist das nächste Thema, was ich angehen wollte.
Bisher schwankte ich noch zwischen Eufy und Reolink.
Cloud-Anbindung ist für mich ein No-Go.
Tapo hatte ich bisher nicht auf dem Schirm. Sieht aber echt preiswert aus.
FHEM auf Mini-ITX-Server mit Intel Quad-Core J1900:
+ HM: HM-LAN, HM-USB, HM-MOD-UART mit div. HM-Komponenten
+ RFXtrx: Funkwetterstation Bresser mit ext. Thermometer, Regenmesser und Windmesser
+ TUL (KNX-Anbindung), MQTT, SONOS (div. Gimmicks), OneWire, Hue

Prof. Dr. Peter Henning

#4
Die Cloud ist nötig, um das Ding zu installieren. Dabei wird u.a. das Cloud-Passwort auf die Kamera übertragen, das braucht sie hinterher für Zugriffe aus dem Netz.

Ich mache mal ein Wiki dazu auf: https://wiki.fhem.de/wiki/Tapo_Kameras

@DeeSPee: Würde mich interessieren, was die Ausgabe des tapo_testmethod bei der C222 ergibt.
Bei mir zeigt die Kamera zwar an, dass sie die Methoden zum manuellen Auslösen des Alarms und zum Schalten des Lichts akzeptiert - steigt dann aber bei der Anwendung aus.

LG

pah

enno

Moin pah,

ich klinke mich hier mal mit ein. Bei mir liegt eine Tapo C510W in der Schublade und wartet auf ihren Einsatz in der Ferienwohnung. Zum Testen, kann ich sie aber hier zu Hause schon mal anschließen.

Gruss
  Enno
Einfacher FHEM Anwender auf Intel®NUC mit Proxmox und Debian

CQuadrat

Zitat von: Prof. Dr. Peter Henning am 18 März 2026, 15:11:07Die Cloud ist nötig, um das Ding zu installieren. Dabei wird u.a. das Cloud-Passwort auf die Kamera übertragen, das braucht sie hinterher für Zugriffe aus dem Netz.
(...)
Das würde ich lieber mit meinem eigenen VPN realisieren.

Erstmalige Installation per Cloud: okay. Aber dann darf die Kamera nur noch im eigenen Netz bleiben.
FHEM auf Mini-ITX-Server mit Intel Quad-Core J1900:
+ HM: HM-LAN, HM-USB, HM-MOD-UART mit div. HM-Komponenten
+ RFXtrx: Funkwetterstation Bresser mit ext. Thermometer, Regenmesser und Windmesser
+ TUL (KNX-Anbindung), MQTT, SONOS (div. Gimmicks), OneWire, Hue

Prof. Dr. Peter Henning

#7
Die Kamera gefällt mir immer besser. Ich hab damit wirklich einen ganzen Tag lang herumgespielt, jetzt kann ich alles Mögliche setzen.
Wie man die entsprechende Python-Umgebung einrichtet, steht schon im Wiki. Anbei eine Zahl von Python-Skripten, um Detektion, Motorsteuerung, Licht und Privatmodus zu steuern. Wichtig ist tapo_credentials.py, dort muss natürlich die eigene IP-Adresse der Kamera und das Cloud-Passwort hinein.

Das bash-Skript für die Snapshots steht komplett im Wiki.

Die Integration in FHEM ist eigentlich ganz easy, ich muss nur noch überlegen, wie ich die Readings sinnvoll benenne.

Ein Skript für Alarm etc. kommt noch

Na, und wenn dann alles läuft und ausgetestet ist, kann ich aus dem Python-Zeug die passenden Methoden abgreifen und direkt über HTTPMOD gehen. Das sind nämlich alles nur REST-Calls. Dafür muss nur jeweils spätestens all 10 Minuten eine neue login-Prozedur auf der Kamera ausgeführt werden, um ein aktuelles Token zu holen, das bei den REST-Calls mit übergeben wird.

LG

pah

Zitat von: CQuadrat am 19 März 2026, 08:41:42Aber dann darf die Kamera nur noch im eigenen Netz bleiben.
Das "darf" kannst Du ja mit den chinesischen Herstellern besprechen...

Gisbert

Hallo pah,

kann man Bilder und ggf. Videos bei Alarmierung/Personen-/Bewegungserkennung im lokalen Netzwerk speichern?

Viele Grüße Gisbert
Proxmox | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome | Panasonic Heishamon

DeeSPe

Zitat von: Prof. Dr. Peter Henning am 18 März 2026, 15:11:07@DeeSPee: Würde mich interessieren, was die Ausgabe des tapo_testmethod bei der C222 ergibt.
Bei mir kommt leider ein Authentifikationsproblem:
root@fhem-test:/opt/fhem/tapo# ./tapo_testmethod.py
Traceback (most recent call last):
  File "/opt/fhem/tapo/./tapo_testmethod.py", line 4, in <module>
    tapo = Tapo("192.168.107.78", "name", "password")
  File "/opt/fhem/tapo/.venv/lib/python3.13/site-packages/pytapo/__init__.py", line 108, in __init__
    self.basicInfo = self.getBasicInfo()
                     ~~~~~~~~~~~~~~~~~^^
  File "/opt/fhem/tapo/.venv/lib/python3.13/site-packages/pytapo/__init__.py", line 1161, in getBasicInfo
    return self.executeFunction(
           ~~~~~~~~~~~~~~~~~~~~^
        "getDeviceInfo", {"device_info": {"name": ["basic_info"]}}
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File "/opt/fhem/tapo/.venv/lib/python3.13/site-packages/pytapo/__init__.py", line 171, in executeFunction
    data = self.performRequest(
           ~~~~~~~~~~~~~~~~~~~^
        {
        ^
    ...<2 lines>...
        }
        ^
    )["result"]["responses"][0]
    ^
  File "/opt/fhem/tapo/.venv/lib/python3.13/site-packages/pytapo/__init__.py", line 214, in performRequest
    self.asyncHandler.executeAsyncExecutorJob(self.transport.authenticate)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/fhem/tapo/.venv/lib/python3.13/site-packages/pytapo/asyncHandler.py", line 21, in executeAsyncExecutorJob
    return self._loop.run_until_complete(job(*args))
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
  File "/usr/lib/python3.13/asyncio/base_events.py", line 725, in run_until_complete
    return future.result()
           ~~~~~~~~~~~~~^^
  File "/opt/fhem/tapo/.venv/lib/python3.13/site-packages/pytapo/transport/transport.py", line 43, in authenticate
    return await self.transport.authenticate(self, retry)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/fhem/tapo/.venv/lib/python3.13/site-packages/pytapo/transport/pytapo/pytapo.py", line 185, in authenticate
    await self._run_blocking(self._refreshStok)
  File "/opt/fhem/tapo/.venv/lib/python3.13/site-packages/pytapo/transport/pytapo/pytapo.py", line 176, in _run_blocking
    return func(*args, **kwargs)
  File "/opt/fhem/tapo/.venv/lib/python3.13/site-packages/pytapo/transport/pytapo/pytapo.py", line 710, in _refreshStok
    return self._refreshStok(loginRetryCount)
           ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
  File "/opt/fhem/tapo/.venv/lib/python3.13/site-packages/pytapo/transport/pytapo/pytapo.py", line 715, in _refreshStok
    raise Exception("Invalid authentication data")
Exception: Invalid authentication data

Ansonsten klappt es aber mit takePhoto bereits.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Prof. Dr. Peter Henning

Zitat von: Gisbert am 19 März 2026, 14:37:26Hallo pah,

kann man Bilder und ggf. Videos bei Alarmierung/Personen-/Bewegungserkennung im lokalen Netzwerk speichern?

Viele Grüße Gisbert

Bilder und Videos kannst Du natürlich im lokalen Netz abspeichern. "Erkennung" ist noch offen, weil ich noch nicht ganz durchblicke, wie ich die AKTIVE Signalisierung der Kamera an FHEM hinbekomme. Es sollte aber möglich sein, bei Bewegungserkennung eine Aufnahme zu starten, diese auf der SD-Karte in der Kamera abzulegen und später herunterzuladen.

Zitat von: DeeSPe am 19 März 2026, 15:20:17Bei mir kommt leider ein Authentifikationsproblem:
Ich hoffe mal, dass Du als Username "admin" und als Passwort Dein Cloudpasswort angegeben hast. Es könnte sein, dass Du eine ältere Firmware hast. In dem Fall musst Du als Username den angeben, den Du bei der Einrichtung des Kamerakontos auf der Kamera verwendet hast, sowie das zugehörige Passwort.

LG

pah

DeeSPe

Zitat von: Prof. Dr. Peter Henning am 19 März 2026, 15:29:45Ich hoffe mal, dass Du als Username "admin" und als Passwort Dein Cloudpasswort angegeben hast. Es könnte sein, dass Du eine ältere Firmware hast. In dem Fall musst Du als Username den angeben, den Du bei der Einrichtung des Kamerakontos auf der Kamera verwendet hast, sowie das zugehörige Passwort.

Ich habe es mit "admin" und jetzt auch mit meiner Mailadresse, die zur Anmeldung verwendet wurde, versucht. Es klappt mit keinem von beiden.
Jetzt kommt erst einmal:
Exception: Temporary Suspension: Try again in 1800 seconds
Gruß
Dan

P.S. Firmware is the latest.
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Prof. Dr. Peter Henning

Zitat von: DeeSPe am 19 März 2026, 16:03:35Exception: Temporary Suspension: Try again in 1800 seconds
Tja, hatte ich auch schon mal ...

Nochmal, es gibt m.e. 2 Möglichkeiten

a.) Username und passwort des _in der kamera_ eingerichteten kontos
b.) admin und cloud-passwort für das Tapo-System

LG

pah

mi.ke

Hi,

ich bestell mir auf mal eine, weil der Arlo Dinger zwar Sack teuer waren, aber schon seit ewig bei mir nicht mehr unter FHEM funktionieren.

Danke für den Tipp und die schon geleistete Arbeit
cheers
mi.ke
FHEM 5.9 | RPi4 + 5 x RPi(Z) + FB7590 + FB 6890 LTE via LAN und WAN (VPN) verbunden.
2 x CUL868 + 3 x RFXTRX(e) + 6 x HMwLanGW + 4 x z2tGw + 5 x LGW + 2 x IRBlast + CO2 +++
FS20, FHT, FMS, Elro(mod), CM160, Revolt, LGTV, STV, AVR, withings, HM-sec-*, HM-CC-RT-DN, AMAD, PCA301, arlo, Aqara

Prof. Dr. Peter Henning

So, die tapo_control_light.py habe ich noch um die beleuchtung für nachtaufnahmen ergänzt - ir, white, oder auto.

Und neu dazu tapo_control_alarm.py.

Was ich noch nicht ohne die App hinbekomme ist, den Alarmmodus auf tagsüber, nachtsüber oder ein Zeitintervall zu setzen.

Als nächstes kommt jetzt die FHEM-Anbindung dran, teilweise habe ich die ja schon im Wiki.

LG

pah