Nach einigen Stunden, in denen ich mich mit Gladys, Node Red und RFXcom beschäftigt habe, versuche ich, ein Tutorial zu erstellen, um eine Prozedur zu bewahren und vielleicht einigen zu helfen ^^
Was benötigen wir?
- SOMFY RTS Jalousien (das Tutorial funktioniert auch mit jedem anderen RTS-Gerät)
- ein RFXcom, das RTS unterstützt (RFX433XL oder RFX433E)
- eine funktionierende Gladys- und Node-Red-Installation
- die offizielle RFXcom-Software: RFXmngr, verfügbar hier: Downloads — RFXCOM
Ich persönlich verwende den RFX433E:
Um zu beginnen, starten wir das Programm RFXmngr, um einen Code für die zu bedienenden Jalousien zuzuordnen.
Ich habe keine Lösung gefunden, um die bestehenden Codes abzurufen, daher müssen wir für jedes RTS-Gerät eine Zuordnung hinzufügen, was bedeutet, dass wir einen beliebigen Code den verschiedenen Geräten zuordnen. Dies unterbricht nicht die bestehende Verbindung mit einer Fernbedienung, zum Beispiel.
2 Möglichkeiten:
- den Dongle an einen PC mit Windows anschließen, auf dem die Anwendung RFXmngr läuft, sehr einfach
- sich remote verbinden, weniger einfach, aber praktischer für mich, da sich mein Server in meinem Dachboden befindet ^^
Hier ist die Prozedur, um sich remote mit dem Dongle zu verbinden, Manipulation, die auf Ihrer Gladys-Maschine (Raspberry Pi, Docker) im Konsolmodus durchgeführt werden muss:
cd
curl -LO https://github.com/andrew-d/static-binaries/raw/master/binaries/linux/x86_64/socat
chmod +x socat
./socat file:/dev/serial/by-id/usb-RFXCOM_RFXtrx433_A1K5N6B-if00-port0,raw,echo=0 tcp4-l:3007
Achtung, Ihr RFXcom hat wahrscheinlich eine andere Adresse, Sie können sie mit dem folgenden Befehl abrufen:
ls /dev/serial/by-id/usb-RFXCOM_RFXtrx433_*
und den Pfad Ihres RFXcom entsprechend ändern…
als nächstes, starten Sie das Programm RFXmngr
Klicken Sie auf die Schaltfläche „Verbinden“
Wählen Sie:
- den USB-Port, wenn der Dongle lokal ist
- die IP (Gladys-IP) und den Port (3007), wenn Sie remote darauf zugreifen
und klicken Sie auf OK, RFXmngr wird mit dem RFXcom verbunden
Sobald verbunden, klicken Sie auf die Registerkarte „RFY“, dann müssen Sie eine eindeutige ID in „ID“ und einen eindeutigen Code in „Unit Code“ für Ihr RTS-Gerät generieren, hier verwenden wir die ID „1 01 00“ und den Code „1“). (Verlassen Sie sich nicht nur auf den Screenshot, um die Oberfläche zu präsentieren
)
Es bleibt nur noch, Ihr Tor/Jalousie mit dem Dongle zu paaren, indem Sie Ihr Tor/Jalousie in den Lernmodus versetzen (konsultieren Sie die Dokumentation Ihres Motors) und in der Liste „command“ auf den Befehl „PROGRAMM“ der Anwendung und dann auf „transmit“ klicken, fertig, Ihr Motor ist einem Code zugeordnet, er kann nun gesteuert werden!
In Gladys:
Um zu beginnen, werden wir ein MQTT-Gerät in Gladys einrichten:
Mit einer Funktion „Zustand der Jalousie“ wie folgt konfiguriert:
Mit den Werten min -1 und max 1
Der Wert -1 senkt die Jalousie
Der Wert 0 stoppt die Jalousie
Der Wert 1 hebt die Jalousie
Der Rest wird in Node Red stattfinden:
Zuerst müssen Sie das Palette „node-red-contrib-rfxcom“ installieren, um über die notwendigen Knoten zu verfügen
Hier ist ein Export meines Garagentor-Flusses:
Es reicht, diesen Fluss zu importieren und in den MQTT-In-Einstellungen Ihren Server und das Gladys-Topic anzugeben
und im Knoten rfx-blinds-out das USB-Gerät, das Ihrem Dongle entspricht, und die RFY-Adresse, die über die RFXmngr-Anwendung gegeben wurde:
[
{
"id": "c58f505d143ae7e9",
"type": "tab",
"label": "Garagentore",
"disabled": false,
"info": "",
"env": []
},
{
"id": "a9ae1a361b44c464",
"type": "mqtt in",
"z": "c58f505d143ae7e9",
"name": "Motortor",n "topic": "gladys/device/mqtt:portegaragemoto2/feature/mqtt:porte-moto/state",
"qos": "2",
"datatype": "auto-detect",
"broker": "041d2917313dea6e",
"nl": false,
"rap": true,
"rh": 0,
"inputs": 0,
"x": 60,
"y": 120,
"wires": [
[
"cf1072ce938eb86b",
"ed1a6590de4a9312"
]
]
},
{
"id": "cf1072ce938eb86b",
"type": "switch",
"z": "c58f505d143ae7e9",
"name": "",
"property": "payload",
"propertyType": "msg",
"rules": [
{
"t": "eq",
"v": "-1",
"vt": "str"
},
{
"t": "eq",
"v": "0",
"vt": "str"
},
{
"t": "eq",
"v": "1",
"vt": "str"
}
],
"checkall": "false",
"repair": false,
"outputs": 3,
"x": 230,
"y": 260,
"wires": [
[
"f1c6dbe6146fde4e"
],
[
"f9cae6d5f71b1f74"
],
[
"1783b4006754428c"
]
]
},
{
"id": "ed1a6590de4a9312",
"type": "debug",
"z": "c58f505d143ae7e9",
"name": "gladys",
"active": false,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "payload",
"targetType": "msg",
"statusVal": "",
"statusType": "auto",
"x": 770,
"y": 120,
"wires": []
},
{
"id": "f1c6dbe6146fde4e",
"type": "change",
"z": "c58f505d143ae7e9",
"name": "schließen",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "Down",
"tot": "str"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 430,
"y": 180,
"wires": [
[
"8de8b0dc91284d7b"
]
]
},
{
"id": "8de8b0dc91284d7b",
"type": "rfx-blinds-out",
"z": "c58f505d143ae7e9",
"name": "Schließen",
"port": "16459ba880d0837b",
"topicSource": "node",
"topic": "RFY/0x10100/1",
"x": 780,
"y": 180,
"wires": []
},
{
"id": "f9cae6d5f71b1f74",
"type": "change",
"z": "c58f505d143ae7e9",
"name": "stoppen",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "Stop",
"tot": "str"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 440,
"y": 260,
"wires": [
[
"3079920a261a7a4d"
]
]
},
{
"id": "3079920a261a7a4d",
"type": "rfx-blinds-out",
"z": "c58f505d143ae7e9",
"name": "Stopp",
"port": "16459ba880d0837b",
"topicSource": "node",
"topic": "RFY/0x10100/1",
"x": 770,
"y": 260,
"wires": []
},
{
"id": "1783b4006754428c",
"type": "change",
"z": "c58f505d143ae7e9",
"name": "öffnen",
"rules": [
{
"t": "set",
"p": "payload",
"pt": "msg",
"to": "Up",
"tot": "str"
}
],
"action": "",
"property": "",
"from": "",
"to": "",
"reg": false,
"x": 430,
"y": 340,
"wires": [
[
"b67c7c98c5bcf352"
]
]
},
{
"id": "b67c7c98c5bcf352",
"type": "rfx-blinds-out",
"z": "c58f505d143ae7e9",
"name": "Öffnen",
"port": "16459ba880d0837b",
"topicSource": "node",
"topic": "RFY/0x10100/1",
"x": 780,
"y": 340,
"wires": []
},
{
"id": "041d2917313dea6e",
"type": "mqtt-broker",
"name": "",
"broker": "mqtt://192.168.0.1",
"port": "1883",
"clientid": "",
"autoConnect": true,
"usetls": false,
"protocolVersion": "4",
"keepalive": "60",
"cleansession": true,
"birthTopic": "",
"birthQos": "0",
"birthPayload": "",
"birthMsg": {},
"closeTopic": "",
"closeQos": "0",
"closePayload": "",
"closeMsg": {},
"willTopic": "",
"willQos": "0",
"willPayload": "",
"willMsg": {},
"userProps": "",
"sessionExpiry": ""
},
{
"id": "16459ba880d0837b",
"type": "rfxtrx-port",
"port": "/dev/ttyUSB0",
"enableDebug": true,
"rfyVenetianMode": "EU"
}
]
Im Prinzip haben Sie alles, was Sie brauchen. Zögern Sie nicht, mir Feedback zu geben. Jede Änderung ist willkommen, um diesen Tutoriel so klar und einfach wie möglich zu gestalten ![]()
Z.












