====== 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/" # MQTT-Topic für Sensordaten
MQTT_CONTROL_TOPIC: "tplink/kasa//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.
{{modifikationen_hacks:pasted:20241205-090402.png}}
{{modifikationen_hacks:pasted:20241205-090311.png}}
Anschließend kann die Subscription und Publish angelegt werden.
Subscription Topic: tplink/kasa/
Publish Topic: tplink/kasa//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.
{{modifikationen_hacks:pasted:20241205-090713.png}}
Hierfür bindet man die MQTT Subscription an einen "Befehlserkennung"-Baustein an.
\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:
{{modifikationen_hacks:pasted:20241205-090938.png}}
{"command": "off"}
{"command": "on"}
---
Viel Erfolg beim Einrichten! Falls du Fragen hast, melde dich gern!