1. Geräteübersicht
Dieses Relais-Platine habe ich bereits 2018 mehrfach erstanden und für verschiedene Zwecke eingesetzt (Lichtsteuerung, IP-Neuzuteilung,Adaption LAN zu RF-Fernbedienung usw.).
Es handelt sich um eine Relais-Platine, die über 5V (Stecker, altes Handy-Netzteil?) oder 9V bis 24V über die Schraubklemme betrieben wird und 8 Ausgänge steuern kann.
2 Ausgänge sind bereits mit 2 Relais ausgestattet und die restlichen 6 Ausgänge sind an der Pfostenstecker-Leiste abgreifbar. Der Zustand der beiden Relais wird über 2 LED’s signalisiert.
Die Relais-Platine kostet in der “eBucht” ca. 18€ (suche “lan relais 2”). Ich habe noch die vorherige Version mit USB-Anschluss und kann, nach 7J und Betrieb von 3 Platinen, diese als sehr zuverlässig bezeichnen.
2. Anschluss und Zugriff
Zunächst habe ich über PC eine Verbindung hergestellt (PC Netzwerkkonfiguration anpassen) und das mitgelieferte Programm zur Konfiguration der IP-Adresse der Relaisplatine auf mein Netzwerksegment umgestellt. Nach dem Zurückstellen der Netzwerkeinstellungen auf mein privates Netzwerk ist die Relais-Platine erreichbar (anpingen).
Es gab dazu auch eine Handy-App, die das Ein-Ausschalten aller 8 Ch im eigenen Netzwerk erlaubt.
Dann habe ich über Python die TCP/IP-Steuerung am PC realisiert.
# -*- coding: iso-8859-1 -*-
# 5/2017 bis 03/2025 R. Hsm
# angepasst f. HASS 1/2026
def SendTcp(MESSAGE,debug):
if debug:
print (MESSAGE)
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((TCP_IP, TCP_PORT))
s.send(MESSAGE.encode('utf-8'))
daten = s.recv(BUFFER_SIZE)
s.close()
return daten
#________________ MAIN ___________________
import socket,time
TCP_IP = '192.168.207.92'
TCP_PORT = 6722
BUFFER_SIZE = 1024
debug=True
cmd="11*:0"
print(SendTcp(cmd,debug))
exit()
Wenn das Skript gestartet wird (IP anpassen nicht vergessen), dann sollte das Relais Ch1 kurz anziehen und abfallen und liefert die folgende Antwort.
11*:0
b'10000000'
Wenn das geklappt hat, dann ist das Relais vom PC steuerbar. Wer will, kann durch Veränderung des Skripts, jetzt auch andere Kommandos ausprobieren.
3. Einbindung in Homeassistant
3.1 Über die Configuration.yaml
In der /homeassistant/configuration.yaml habe ich folgendes ergänzt
command_line:
- switch:
name: relais3_ch1
unique_id: switch_relais3_ch1
command_on: "echo -n 11:0 | nc 192.168.207.92 6722"
command_off: "echo -n 21:0 | nc 192.168.207.92 6722"
command_state: "echo -n 00:0 | nc 192.168.207.92 6722"
value_template: '{{ value[0:1] == "1" }}'
- switch:
name: relais3_ch2
unique_id: switch_relais3_ch2
command_on: "echo -n 12:0 | nc 192.168.207.92 6722"
command_off: "echo -n 22:0 | nc 192.168.207.92 6722"
command_state: "echo -n 00:0 | nc 192.168.207.92 6722"
value_template: '{{ value[1:2] == "1" }}'
Nach einem Neustart erscheint in der HA-Übersicht der u.a. Schalter. Damit sind die Relais auch manuell leicht zugänglich und können natürlich auch in Automationen verwendet werden.
Wer auch die anderen 6 Channels braucht, kann im oben aufgezeigten Style,
die anderen Kanäle ergänzen.
3.1.1 Als Aktion ausführen
In einer Automation oder Scene lässt sich das Relais als Typ “Schalter” - wie üblich - steuern.
3.2. Über Python
Zunächst habe ich “Pyscript” in HA installiert, da “Python Scripts” zu stark eingeschränkt ist.
Das Py-Skript für den PC habe ich leicht abgeändert ( exit() raus, debug aus und @service rein)
und als folgendes Script unter /homeassistant/pyscript/TCP_IP_Relais.py abgelegt.
# -*- coding: iso-8859-1 -*-
# 5/2017 bis 03/2025 R. Hsm
# angepasst f. HASS 1/2026
@service
def SendTcp(MESSAGE,debug):
if debug:
print (MESSAGE)
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((TCP_IP, TCP_PORT))
s.send(MESSAGE.encode('utf-8'))
daten = s.recv(BUFFER_SIZE)
s.close()
return daten
#________________ MAIN ___________________
import socket,time
TCP_IP = '192.168.207.92'
TCP_PORT = 6722
BUFFER_SIZE = 1024
debug=False
cmd="11*:0"
print(SendTcp(cmd,debug))
Wenn Pyscript die Datei ohne Fehler ausführen konnte, dann zieht ein Relais kurz an und fällt wieder ab.
3.2.1 Skript als Aktion ausfürhren
Unter Entwickler/Aktion wird nun die Funktion “sendtcp” ausgewählt und im Yaml-Modus eingefügt
action: pyscript.sendtcp
data:
MESSAGE: "11:0"
debug: false
Der Button “Aktion ausführen” sollte grün werden und das Relais Ch1 anziehen.
Die folgende Aktion schaltet das Relais Ch1 wieder aus.
action: pyscript.sendtcp
data:
MESSAGE: "21:0"
debug: false
“12:0”, “22:0” schaltet Ch2 ein und danach wieder aus.
Anmerkung:
Den “debug” habe ich absichtlich noch drin gelassen. Wer den nicht haben will kann diesen ja selbst entfernen und die Ansteuerung anpassen.
4. Abschluss
Das Beispiel zeigt wie leicht es ist, über TCP/IP Geräte in HA zur Verfügung zu stellen. Die aufgezeigten Wege können deshalb auch dazu dienen, andere Geräte, die nicht für HA vorgesehen sind, einzubinden.
Ich würde mich freuen, wen die Anleitung jemandem weitergeholfen hat.
R. Hsm


