Metainformationen zur Seite
TP-Link HS110 Integration mit MQTT auf Docker Basis
Mit dieser Anleitung richtest du ein Docker-basiertes Setup ein, um Echtzeitdaten von deinem TP-Link HS110 Smart Plug abzurufen und über MQTT zu veröffentlichen.
Voraussetzungen
- Docker: Ein Containerdienst, der das Skript in einer isolierten Umgebung ausführt.
- Docker Compose: Ein Tool, das die Konfiguration und Verwaltung des Containers vereinfacht.
Schritt 1: Docker installieren
Installation unter Linux
Führe folgende Befehle aus, um Docker zu installieren:
sudo apt update sudo apt install -y docker.io
Prüfe anschließend, ob Docker korrekt installiert wurde:
docker --version
Installation von Docker Compose
Installiere Docker Compose:
sudo apt install -y docker-compose
Prüfe die Installation mit:
docker-compose --version
Hinweis: Auf anderen Systemen wie Windows oder macOS kannst du Docker Desktop installieren, das Docker und Docker Compose kombiniert.
Schritt 2: Projekt bereitstellen
Ordner erstellen
Erstelle einen Ordner für das Projekt:
mkdir tplink-mqtt cd tplink-mqtt
`docker-compose.yml` erstellen
Erstelle eine `docker-compose.yml`-Datei mit folgendem Inhalt:
version: '3.9' services: tplink-mqtt: image: nano94/tplink-hs110-mqtt:latest container_name: tplink-mqtt environment: MQTT_SERVER: "xxx.xxx.xxx.xxx" # MQTT-Broker-Adresse MQTT_PORT: 1883 # MQTT-Broker-Port MQTT_USER: "loxberry" # Benutzername für den MQTT-Broker MQTT_PASSWORD: "XXXXXXX" # Passwort für den MQTT-Broker MQTT_TOPIC: "tplink/kasa/<Name des Gerätes vergeben>" # MQTT-Topic für Sensordaten MQTT_CONTROL_TOPIC: "tplink/kasa/<Name des Gerätes vergeben>/control" # MQTT-Topic für Steuerung TARGET_IP: "xxx.xxx.xxx.xxx" # Ziel-IP des TP-Link-Geräts INTERVAL: 5 # Intervall für Datenabfragen (Sekunden) restart: always
Projekt starten
Führe den folgenden Befehl aus, um das Projekt zu starten:
docker-compose up -d
Schritt 3: MQTT-Daten überprüfen
Wenn das Setup erfolgreich ist, werden die Daten deines TP-Link HS110 über das angegebene MQTT-Topic veröffentlicht. Du kannst diese Daten mit einem MQTT-Client wie MQTT Explorer oder mosquitto_sub überprüfen.
Beispiel für die ausgegebenen Daten:
{ "voltage_mv": 231500, "current_ma": 500, "power_mw": 115000, "total_wh": 150, "err_code": 0, "voltage_v": 231.5, "current_a": 0.5, "power_w": 115.0, "relay_state": 1, "timestamp": "2024-12-03 12:34:56+0100" }
Schritt 4: MQTT-Einbindung in Loxone Config
Wenn die vorherigen Schritte erfolgreich sind kann nun MQTT im Miniserver konfiguriert werden. Die Anleitung basiert auf einem Release Stand > 15.3.0.
Hierfür muss MQTT unter "Miniserver"→"Netzwerkperipherie" eigerichtet werden.
Anschließend kann die Subscription und Publish angelegt werden.
Subscription Topic: tplink/kasa/<Vergebener Name des Gerätes>
Publish Topic: tplink/kasa/<Vergebener Name des Gerätes>/control
Schritt 5: Befehl per Loxone senden
Im finalen Schritt kann man nun über einen EIB-Taster den HS-110 ansteuern, sowie den aktuellen Status abgreifen.
Hierfür bindet man die MQTT Subscription an einen "Befehlserkennung"-Baustein an.
- Befehlserkennung
\i"relay_state": \i\v
Am Ausgang des EIB-Tasters fügt man einen "Status"-Baustein am Input "I1" an, dessen "Txt" Output an den MQTT Publish geht.
Status-Baustein Konfiguration:
- Status-Baustein
{"command": "off"} {"command": "on"}
—
Viel Erfolg beim Einrichten! Falls du Fragen hast, melde dich gern!