Tapo L530E, Home Assistant und die Cloud: mein Erfahrungsbericht

Ich habe die WLAN-LED-Lampe Tapo L530E getestet, die Amazon gelegentlich für unter 8 Euro anbietet.

Inhaltsverzeichnis

Meine Ziele mit der Tapo L530E

  • Einbinden in Home Assistant, der mächtigen Open-Source-Software für Home Automation.
  • Ein Betrieb im eigenen LAN/WLAN, ohne Cloud-Anbindung.
    (Ich halte mich fern von jeglicher „Cloud“, will weder meine Daten noch Geräte dort haben bzw. von dort erreichbar haben!)

Zwischenfazit: Eines der beiden Ziele habe ich nicht erreicht!

Mein Setup für das Einbinden der Tapo L530E

Home Assistant hat eine ausführliche Dokumentation, auf der Tapo-Integration-Unterseite wird zum TP-Link Smart Home-Bereich verlinkt.

Dort heißt es:

(…) You need to provision your newly purchased device to connect to your network before it can be added via the integration. This can be done either by using kasa command-line tool or by adding it to the official Kasa or Tapo app before trying to add them to Home Assistant. (…)

Weil ich die offizielle Tapo-App nicht verwenden will (die mir die LED-Lampe womöglich in die Cloud „hängt“), bin ich dem Link kasa command-line tool gefolgt.

Dort wird python-kasa angeboten, eine Dritt-Open-Source-Python-API für Produkte von TP-Link.

Python-Umgebung für python-kasa vorbereiten

Um python-kasa auszuführen, habe ich mir ein portables Python organisiert.

Die Datei WinPython Command Prompt.exe öffnet eine für Python angepasste Command-Line-Umgebung.

Dort habe ich den Befehl gemäß Dokumentation abgesetzt:

pip install python-kasa

Sobald das abgeschlossen ist, ist python-kasa installiert und einsatzbereit.

Tapo L530E und das WLAN

Die Tapo L530E erzeugt ein offenes Access-Point-WLAN:

Ich habe mich damit verbunden, und erhielt dann die IP-Adresse 192.168.0.100.

Achtung: Windows zeigt an, dass das WLAN „kein Internet“ hat. Das ist ja auch so weit richtig – kann jedoch irritieren.

Der in der Dokumentation erwähnte Prozess kasa discover zur Auffindung des Geräts hat bei mir nicht funktioniert. Stattdessen habe ich zusätzlich die Broadcast-IP-Adresse mit dem Parameter --target angegeben:

kasa --target 192.168.0.255 discover

Das führte zu folgender Ausgabe:

No host name given, trying discovery..
Discovering devices on 192.168.0.255 for 10 seconds
== Tapo smart bulb - L530 ==
Host: 192.168.0.1
Port: 80
Device state: True
Time:         2000-01-02 00:12:40+00:00 (tz: GMT)
Hardware:     (hier steht die Hardware-Version, aus Sicherheitsgründen entfernt)
Software:     (hier steht die Software-Version, aus Sicherheitsgründen entfernt)
MAC (rssi):   (hier steht die MAC-Adresse, aus Sicherheitsgründen entfernt) (-47)

== Primary features ==
State (state): True
Brightness (brightness): 100 (range: 0-100)
Color temperature (color_temperature): 2700 (range: 2500-6500)
Light effect (light_effect): *Off* Party Relax

== Information ==
Signal Level (signal_level): 3
Overheated (overheated): False
Cloud connection (cloud_connection): False
Update available (update_available): None
Check latest firmware (check_latest_firmware): <Action>

== Configuration ==
HSV (hsv): HSV(hue=0, saturation=100, value=100)
Auto update enabled (auto_update_enabled): True
Light preset (light_preset): *Not set* Light preset 1 Light preset 2 Light preset 3 Light preset 4 Light preset 5 Light preset 6 Light preset 7
Smooth transition on (smooth_transition_on): 0 (range: 0-60)
Smooth transition off (smooth_transition_off): 0 (range: 0-60)

== Debug ==
Device ID (device_id): (hier steht die Device-ID, aus Sicherheitsgründen entfernt)
RSSI (rssi): -47 dBm
SSID (ssid): No SSID
Reboot (reboot): <Action>
Current firmware version (current_firmware_version): (Sotware-Version)
Available firmware version (available_firmware_version): None
Device time (device_time): 2000-01-02 00:12:40+00:00

Somit wusste ich, dass das Erkennen mit kasa-python funktioniert, und dessen (interne) IP-Adresse 192.168.0.1 lautet (… was aber auch schon anhand des Gateways der DHCP-Antwort ersichtlich war).

Als nächstes habe ich testweise die Tapo L530E aus- bzw. wieder eingeschaltet:

Ausschalten der Tapo L530E:

kasa --host 192.168.0.1 off

Einschalten der Tapo L530E:

kasa --host 192.168.0.1 on

Auch das funktionierte super!

Jetzt wird es Zeit, die Tapo L530E in mein WLAN zu bringen.

Tapo L530E in mein IoT-WLAN bringen

Ich verwende für meine IoT-Geräte ein eigenes WLAN, um meine Produktivgeräte von IoT-Geräten zu separieren (bzw. zu schützen).

Mein Ziel in diesem Schritt ist es, die Tapo L530E in dieses IoT-WLAN zu bringen.

Zunächst scanne ich alle WLANs, die die L530E empfängt:

kasa --host 192.168.0.1 wifi scan

Als Antwort erhalte ich in etwa das (Anm: manche Angaben sind aus Sicherheitsgründen entfernt):

Discovering device 192.168.0.1 for 10 seconds
Scanning for wifi networks, wait a second..
Found 2 wifi networks!
         WifiNetwork(ssid='Mein-IoT-Netzwerk', key_type='wpa2_psk', cipher_type=2, bssid='ABCDEFFFFF', channel=8, rssi=None, signal_level=3)
         WifiNetwork(ssid='Anderes_WLAN', key_type='wpa2_psk', cipher_type=2, bssid='ABCDEFGDDD', channel=8, rssi=None, signal_level=2)

Somit habe ich auch hier die Bestätigung, dass die Tapo L530E das WLAN Mein-IoT-Netzwerk findet.

Ich gebe nun den join-Befehl an:

kasa --host 192.168.0.1 wifi join Mein-IoT-Netzwerk

Ich werde dann nach der WLAN-Verschlüsselung (in meinem Fall wpa2_psk) und dem WLAN-Passwort gefragt:

Discovering device 192.168.0.1 for 10 seconds
Keytype: wpa2_psk
Password: (hier das WLAN-Passwort)
Asking the device to connect to Mein-IoT-Netzwerk..
Response: {'set_qs_info': {'device_id': '(hier die device id)'}} - if the device is not able to join the network, it will revert back to its previous state.

Daraufhin hat die LED-Lampe verschiedene Leuchtsignale abgegeben. Ein gutes Zeichen!

Ich habe daraufhin in Mein-IoT-Netzwerk gewechselt, und wieder kasa discover aufgerufen:

kasa --target (mein IP-Range).255 discover

Daraufhin wurde dort die LED-Lampe ebenfalls gefunden, nun mit einer IP-Adresse aus dem IoT-Netzwerk:

No host name given, trying discovery..
Discovering devices on (mein IP-Range).255 for 10 seconds
== Tapo smart bulb - L530 ==
Host: (IP-Adresse in meinem IoT-WLAN-IP-Range)
Port: 80
Device state: True

Die Tapo L530E ist somit erfolgreich in mein IoT-Netzwerk eingewählt – und das ganz ohne offizielle Tapo-App bzw. Cloud-Anbindung 🥳!

Einbindung der Tapo L530E in Home Assistant

Die Erkennung der Tapo L530E hat in Home Assistant automatisch funktioniert. Ich klicke auf Hinzufügen.

Nach ein paar Klicks war die L530E auch schon eingebunden:

Tapo L530E: Steuerung in Home Assistant

So weit, so gut!

Die Probleme beginnen

Nach der Einrichtung der Tapo L530E in Home Assistant hat alles reibungslos funktioniert.

Nach einer Weile fiel mir jedoch auf, dass die L530E nicht mehr erreichbar ist – und dann plötzlich doch wieder, ohne dass ich etwas geändert hätte. 🤔

Flüchtige Fehler, noch dazu ohne Fehlermeldung, sind immer mühsam zu debuggen.

Und so recherchierte ich weiter, woran das liegen könnte.

Die Tapo L530E hat einen Cloud-Watchdog. Seufz.

Ich bin dann in der Python-Kasa-Dokumentation auf folgenden Abschnitt gestoßen (Fett-Markerungen durch mich):

At least some devices (e.g., Tapo lights L530 and L900) are known to have a watchdog that reboots them every 10 minutes if they are unable to connect to the cloud. Although the communications are done locally, this will make these devices unavailable for a minute every time the device restarts. This does not affect other devices to our current knowledge, but you have been warned.

Das bedeutet: Es gibt einen internen Watchdog (= eine Art Sicherheitsprogramm, das regelmäßig ausgeführt wird), der prüft, ob die Tapo L530E mit der Cloud verbunden ist. Wenn das nicht der Fall ist, erfolgt ein Reboot. Das Gerät verbindet sich dann zwar wieder mit dem IoT-WLAN, es dauert jedoch, bis die Verbindung zustande kommt. Währenddessen ist die Tapo L530E nicht erreichbar.

Für meinen Anwendungsfall, in dem ich eine Event-basierte Steuerung auf die Tapo L530E anwende, ist das daher ein großes Problem.

Der Gegencheck: Die Tapo L530E in die Cloud hängen

Ich will ganz sicher gehen, und etwaige Netzwerk-Probleme ausschließen. Ich habe daher zunächst die Tapo L530E auf Werkseinstellungen zurückgesetzt.

Nachdem das Zurücksetzen erfolgreich war, habe ich mir die offizielle Tapo-App installiert.

Die Einrichtung erfolgte – wie erwartet – problemlos.

Tapo-App im Startzustand

Die Tapo L530E kann dann ausgewählt:

Tapo-App: Auswahl der Tapo L530E-LED-Lampe

Nach dem Verbinden mit meinem IoT-WLAN war die Tapo L530E auch schon eingebunden:

Tapo-App: Die Tapo L530E-LED-Lampe ist eingebunden

Und so befindet sich die Tapo L530E in der Cloud:

  • Das funktioniert wirklich großartig: Das Ein- Ausschalten erfolgt ohne Verzögerung, genauso wie das Einstellen von Lichtintensitität, -wärme und -farbe.
  • Auch das Hinzufügen in Home Assistant hat wieder tadelos funktioniert.
  • Die Tapo L530E bleibt dauerhaft online! Der „Ausfall-alle-10-Minuten“ trat nicht mehr auf!
  • Eine tolle Leistung von Tapo. Für die Cloud-Lösung.

Ich wollte nun den „Gegenbeweis“ antreten, und habe die Tapo L530E wieder aus der App entfernt.

Tapo-App: Entfernen der Tapo L530E

Dieser Vorgang wird von einer Info-Seite begleitet:

Tapo-App: Das Entfernen der Tapo L530 bestätigen

Sobald ich Entfernen geklickt habe, begann die Tapo L530 zu blinken, und setzte sich auf die Werkseinstellungen zurück. 😱

Das Cloud-Entfernen erfolgt also ziemlich konsequent; meine Hoffnung, dass damit „nur“ die Cloud-Verbindung getrennt wird, aber die lokale WLAN-Verbindung bestehen bleibt, blieb unerfüllt. Ich habe jetzt wieder eine Tapo L530 im Werkszustand.

Fazit zur Tapo L530E

  • Die Tapo L530E ist eine großartige WLAN-LED-Lampe: Leuchtfarben, -hellligkeit und -intensität sind top!
  • Das Preis-Leistungs-Verhältnis empfinde ich sehr gut.
  • In die Tapo-Cloud eingebunden, funktioniert diese ebenfalls hervorragend – sowohl über die offizielle Tapo-App, wie auch in Home Assistant.
  • Ein Betrieb der Tapo L530E ohne Cloud-Anbindung ist mir nicht gelungen.
  • Ich werde mir das Netzwerk-seitig noch einmal anschauen, versuche den Traffic auf der Firewall entsprechend einzuschränken. Vielleicht gelingt es mir, die Tapo L530E im Glauben zu lassen, mit der Cloud verbunden zu sein, ohne jedoch den Zugriff „von der Cloud“ zu erlauben.
  • Falls mir das nicht gelingt, werde ich die Tapo L530E als „gewöhnliche LED-Lampe“ einsetzen, ohne Cloud-Anbindung. Das funktioniert gut.
  • Als Nächstes werde ich mir die Shelly Duo RGBW anschauen. Die Shelly-Geräte haben ja den Ruf, ohne Cloud super zu funktionieren – was ich zumindest bei der Shelly Plug Plus S schon bestätigen kann.

Fragen/Feedback – gerne mich anschreiben!

Image Credits: Idea icons created by Freepik – Flaticon