Hallo zusammen,
Ich arbeite an einer externen Gladys-Integration für den RFPlayer RFP1000 (Ziblue / GCE Electronics, 433 und 868 MHz).
Was sie kann
- Empfangene Sensoren, die im Entdeckungs-Tab vorgeschlagen werden: Oregon-Sonden (Temperatur, Luftfeuchtigkeit, Druck, Wind, Regen, UV) und OWL-Zähler.
- Detektoren von Visonic, X2D und KD101: Alarm, Selbstschutz, schwacher Akku.
- Fernbedienungen: Chacon/DiO, X10, Somfy RTS, Blyss, X2D, Visonic-Funkschlüssel…
- Aktoren, die über den Schlüssel gesteuert werden: Steckdosen, Schalter, dimmbare Lampen, Somfy-RTS-Rolladen (der „my“-Knopf dient als Stopp) und Tore.
- Ein-Klick-Pairing: Der „Aktor paarweise verbinden“-Knopf sendet den Pairing-Rahmen und fügt das Gerät der Konfiguration hinzu.
- Erkennung von Funkstörungen des Schlüssels, nützlich für einen kabellosen Alarm.
- Szenenauslöser (Gladys 5.1): Fernbedienung gedrückt, Detektor ausgelöst, schwacher Akku, Störung.
- Szenenaktionen (Gladys 5.1): Funksignal senden, Störung simulieren.
- Widget „RFPlayer-Funk“ auf dem Dashboard.
- 100 % lokal, kein Cloud.
Das Problem: Die Integration kann nicht auf den USB zugreifen
Externe Integrationen laufen in einem isolierten Container, und dieser Container erhält keine seriellen Ports: weder /dev/ttyUSB*, noch /dev/ttyACM*.
Im Manifest sind die einzigen Hardwareklassen, die man anfordern kann, coral-usb, coral-pcie, gpu und video. Und das auch nur für Sub-Container, nicht für den Hauptcontainer.
Ergebnis: Es ist unmöglich, einen USB-Serienschlüssel direkt an eine externe Integration anzuschließen.
Ich hatte dasselbe Problem mit einer Téléinfo-Integration. Es wird auch Zigbee- und Z-Wave-Schlüssel, RFXtrx, EnOcean, Arduino… betreffen.
Die aktuelle Umgehung
Man stellt den seriellen Port des Schlüssels mit ser2net (oder socat) auf der Maschine, an der er angeschlossen ist, als TCP bereit. Die Integration verbindet sich dann mit IP:port.
Beispiel für /etc/ser2net.yaml:
connection: &rfplayer
accepter: tcp,4000
enable: on
options:
kickolduser: true
connector: serialdev,/dev/serial/by-id/usb-XXXX-if00-port0,115200n81,local
Dann, in der Konfiguration der Integration: Host = lokale IP der Maschine (nicht localhost), Port = 4000.
Es funktioniert, aber es ist nicht ideal:
- Ein zusätzlicher technischer Schritt für den Benutzer: ser2net installieren und konfigurieren. Das ist nicht der „Ein-Klick“-Geist des Stores.
- Kein Passwort auf dem TCP-Port: Jeder im lokalen Netzwerk kann die Funkgeräte steuern. Man muss die Abhörung auf eine IP beschränken oder mit der Firewall filtern.
- Ein zusätzlicher Dienst, der auf der Host-Maschine überwacht werden muss.
Die Anforderung ist gestellt 
Ich habe eine Hardwareklasse serial vorgeschlagen: Die Integration fordert sie an, der Benutzer wählt aus, welchen Schlüssel er ihr geben möchte, und Gladys bindet nur diesen Port in den Container ein. Der Sandbox bleibt sicher.
Es sind Änderungen an drei Stellen erforderlich, ein Issue für jede:
- Gladys-Kern (Mounten des Ports im Container): External integrations: allow access to a USB serial device · Issue #3194 · GladysAssistant/Gladys · GitHub
- Manifest / Store (Deklarieren der Klasse
serial): External integrations: allow access to a USB serial device · Issue #18 · GladysAssistant/integration-store · GitHub - SDK (Lesen des zugewiesenen Ports, Benachrichtigung über ein Abziehen): External integrations: allow access to a USB serial device · Issue #39 · GladysAssistant/integration-sdk-js · GitHub
Wenn Sie betroffen sind (RFPlayer, Téléinfo, Zigbee, Z-Wave…), geben Sie diesen Issues einen
oder fügen Sie Ihren Fall als Kommentar hinzu. Das hilft bei der Priorisierung.
@pierre-gilles, ich kann helfen, sobald etwas zum Testen da ist.
Aufruf an Tester
Die Integration folgt der offiziellen RFPlayer-API-Spezifikation und ist durch automatische Tests abgedeckt. Allerdings habe ich sie noch nicht an einem echten Schlüssel getestet.
Wenn Sie einen RFPlayer haben, helfen mir Ihre Rückmeldungen, besonders zu:
- den Somfy-RTS-Rolladen: die „my“-Funktion und das Pairing;
- den Chacon/DiO-Steckdosen: das Pairing;
- den Oregon-Sonden und den Visonic-Detektoren.
Die vollständige Installationsdokumentation ist auf Französisch, inklusive ser2net: gladys-rfplayer/docs/fr.md at main · prohand/gladys-rfplayer · GitHub
Danke! ![]()