Intégration - RFplayer

Bonjour à tous,

Je travaille sur une intégration externe Gladys pour la clé RFPlayer RFP1000 (Ziblue / GCE Electronics, 433 et 868 MHz).

:backhand_index_pointing_right: Code : GitHub - prohand/gladys-rfplayer: Gladys external integration to connect rfplayer devices in Gladys · GitHub

Ce qu’elle fait

  • Capteurs entendus, proposés dans l’onglet Découverte : sondes Oregon (température, humidité, pression, vent, pluie, UV) et compteurs OWL.
  • Détecteurs Visonic, X2D et KD101 : alarme, autoprotection, pile faible.
  • Télécommandes : Chacon/DiO, X10, Somfy RTS, Blyss, X2D, porte-clés Visonic…
  • Actionneurs pilotés par la clé : prises, interrupteurs, lampes variables, volets Somfy RTS (le « my » sert de stop) et portails.
  • Appairage en un clic : le bouton « Appairer un actionneur » envoie la trame d’appairage et ajoute l’appareil à la configuration.
  • Détection de brouillage radio de la clé, utile pour une alarme sans fil.
  • Déclencheurs de scène (Gladys 5.1) : télécommande appuyée, détecteur déclenché, pile faible, brouillage.
  • Actions de scène (Gladys 5.1) : envoyer un ordre radio, simuler un brouillage.
  • Widget « Radio RFPlayer » sur le tableau de bord.
  • 100 % local, aucun cloud.

:warning: Le problème : l’intégration ne peut pas accéder à l’USB

Les intégrations externes tournent dans un conteneur isolé, et ce conteneur ne reçoit aucun port série : ni /dev/ttyUSB*, ni /dev/ttyACM*.

Dans le manifeste, les seules classes de matériel qu’on peut demander sont coral-usb, coral-pcie, gpu et video. Et encore : uniquement pour les sous-conteneurs, pas pour le conteneur principal.

Résultat : impossible de brancher une clé USB série directement sur une intégration externe.

J’ai eu le même problème avec une intégration Téléinfo. Il touchera aussi les clés Zigbee et Z-Wave, RFXtrx, EnOcean, Arduino…

Le contournement actuel

On expose le port série de la clé en TCP avec ser2net (ou socat) sur la machine où elle est branchée. L’intégration se connecte ensuite à IP:port.

Exemple de /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

Puis, dans la configuration de l’intégration : hôte = IP locale de la machine (pas localhost), port = 4000.

Ça marche, mais ce n’est pas idéal :

  • Une étape technique de plus pour l’utilisateur : installer et configurer ser2net. Ce n’est pas l’esprit « un clic » du store.
  • Pas de mot de passe sur le port TCP : n’importe qui sur le réseau local peut piloter les appareils radio. Il faut limiter l’écoute à une IP ou filtrer avec le pare-feu.
  • Un service de plus à surveiller sur la machine hôte.

La demande est faite :bullseye:

J’ai proposé une classe de matériel serial : l’intégration la demande, l’utilisateur choisit quelle clé lui donner, et Gladys monte uniquement ce port dans le conteneur. Le bac à sable reste sûr.

Il faut des changements à 3 endroits, une issue pour chacun :

:backhand_index_pointing_right: Si vous êtes concernés (RFPlayer, Téléinfo, Zigbee, Z-Wave…), mettez un :+1: sur ces issues ou ajoutez votre cas en commentaire. Ça aide à prioriser.

@pierre-gilles, je peux aider à tester dès qu’il y a quelque chose.

Appel aux testeurs

L’intégration suit la spécification officielle de l’API RFPlayer et elle est couverte par des tests automatiques. Par contre, je ne l’ai pas encore testée sur une vraie clé.

Si vous avez un RFPlayer, vos retours m’aident beaucoup, surtout sur :

  • les volets Somfy RTS : la fonction « my » et l’appairage ;
  • les prises Chacon/DiO : l’appairage ;
  • les sondes Oregon et les détecteurs Visonic.

La doc d’installation complète est en français, ser2net compris : gladys-rfplayer/docs/fr.md at main · prohand/gladys-rfplayer · GitHub

Merci ! :slightly_smiling_face:

@prohand je pense que le message est tronqué, ou alors je ne capte vraiment rien ^^

Merci :slight_smile:
C’est corrigé