[V4] Dev service RFlink

Je t’avoue que j’ai du mal à voir ce qui ne va pas d’ici (sans faire la review complète des 200 fichiers), tu as fais des modifications liés à CircleCI ?

Hey!
Merci pour ce travail @joeypic .
J’ai un rflink qui fonctionne avec GladysV3 (Chacon et Milight). J’ai testé avec l’image de @peb (Merci à lui)

Je ne suis pas expert donc j’ai probablement fait de travers la plupart des trucs, voici où j’en suis :

Dans mon docker-compose j’ai partagé l’USB :
devices:
- /dev/ttyAMA0:/dev/ttyAMA0
- /dev/ttyACM0:/dev/ttyA

Ensuite pour ce qui est de la configuration je ne vois pas trop si c’est fonctionnel :
1/ J’ai de base le message Rflink Gateway connected with success. que je change le connecteur USB ou pas ou que je clique sur Connect cela ne change rien (ni dans les logs)
2/ Si je disconnect … le message change par contre je n’arrive plus à me connecter
3/ L’apparairage MiLight me donne l’erreur suivante : 2020-03-23T21:43:40.784397145Z 2020-03-23T22:43:40+0100 <warn> functionsWrapper. - Pastebin.com

Idéalement, j’ai tenté de faire fonctionner la branche rflink via les sources mais j’ai un soucis avec les libellés de l’interface. (j’ai clone la v4 de gladys et j’ai pull ta branche par dessus, j’ai un conflit avec l’i18n que j’ai du péter j’imagine que c’est pour ça que les label n’apparaissent pas).
EDIT : j’ai corrigé mon problème de label, du coup l’instance de dev à partir des sources a le même comportement que l’image docker (mais au moins je pourrais faire des modifications)

Si quelqu’un a des astuces ou me dire ce que je peut mettre comme config pour tester, je suis preneur.
Si je progresse, je vous tiens au courant.

Voici ma prise, une ZAP.
1fc648ea-7429-4896-a5c8-f9c2dadc62a9 (2)
Pour la contrôler avec RFlink :
Je crée un device avec

  • model : “Tristate”
    Puis j’ajoute une feature “Switch” :
  • Je lui donne un nom (d’ailleurs à quoi sert ce nom, où est-ce que je le retrouve ?)
  • ID : 0312
  • Channel : 1
  • Minimum Value : 0 ?
  • Maximum value : 1 ?
    Je sauvegarde et quand j’appuis sur le bouton dans Gladys, on ou off, rien ne se passe. :sob:
    J’ai loupé un truc ? Mal configuré ?

Petite précision : pour l’instant j’ai juste les petits émetteurs/récepteurs chinois connecté à un arduino mega. Ils fonctionnaient fort bien sous Gladys 3 avec un arduino nano.
Je les changerai dès que j’aurai reçu le matos du nodo shop.

Non je ne sais meme pas vraiment ce que c’est Circle CI , je n’ai modifié que les fichiers :

  • Constant.js
  • Les fichier du service
  • app.jsx
  • les fichier i18n

Pour ton premier problème c’est vraiment étrange , sur ma config les messages fonctionnent parfaitement , pour l’instant il faut que tu reboot gladys apres avoir cliqué sur connect.

Je suis en train de rédiger une doc pour le service

C’est corrigé , j’avais oublié d’ajouter une valeur dans les constantes :wink:
je vais demander de l’aide a @isokar car il me semble que c’est lui qui avait dev le module pour la v3 et j’ai du mal avec le Milight.

Je pense que tu te trompe d’ID (sur la plupart des prises vendue j’arrive pas a savoir laquelle c’est)

Si tu as une télécommande avec ta prise , ne créer pas de device (debut de la doc)
Tu appuie juste sur le bouton de cette prise et le device apparait !

Si ça ne marche pas regarde déjà si la led de ton Arduino Mega clignote quand tu essayes d’allumer ta prise dans Gladys.

Merci pour tous vos retours :grin: , ça occupe un peut mes vacances de coronavirus :mask: et si vous avez des d’autre question hésitez pas

1 « J'aime »

Ah de la doc ! :smiley: Pourrais-tu ajouter un lien vers la doc (même si celle-ci n’est pas finie) dans la page de paramétrage de l’intégration ?

Hmmm… la LED n’a pas l’air de s’allumer quand j’utilise la télécommande, je vais enquêter sur le sujet dans la journée.

J’ai la LED TX qui s’allume quand j’appuie sur la télécommande. :raised_hands:
Mais rien ne s’ajoute dans Gladys

Histoire d’être sûr du branchement :

Direction VCC DATA GND
Réception D16/TX2 D19/RX1 GND
Émission D15/RX3 D14/TX3 GND

A priori rien dans les logs Gladys ou depuis le la console de debug

Je viens de changer le code pour rendre les tests plus faciles . La console donnera plus d’infos sur les erreurs normalement

maintenant regarde la console quand tu appui sur ta télécommande et envoi moi ce que tu as

Je viens de mettre l’image à jour et ça marche Wouhouuuu :star_struck: J’ai réussi à connecter 3 prises, je ferai des tests plus approfondis demain :wink:

Alors à chaud, voici les problèmes que je peux te remonter :

  • Parfois après quelques minutes d’inactivité, quand j’actualise la page /dashboard/integration/device/rflink/device j’ai une page blanche
  • Quand je supprime un device, il reste en place (ne disparait pas de l’ihm) jusqu’à ce que j’actualise la page
    EDIT :
  • Quand je veux renseigner une nouvelle prise, j’appuie sur ON puis OFF et il me crée bien la prise comme il faut. Cependant, après avoir appuyé sur ON, il crée déjà un device, en général de type RingBell. C’est peut-être lié à la mauvaise qualité du recepteur 433Mhz « chinois »

Génial :grin:

Ces deux problèmes sembles être liés a Gladys car je les ai sur tous les services , la page blanche c’est un problème d’authentification (token invalid ou un truc comme ça).

J’ai aussi l’impression de devoir souvent refresh la page pour voir les modifs (sur toutes les pages de services)

@pierre-gilles C’est des problèmes normaux?

Je pense que si tu utilise les récepteurs les moins chez tu va probablement avoir des soucis de temps en temps . Sur le blog de rflink , ils conseillent d’utiliser des récepteurs super-hétérodynes type RXB6. Ca coûte 1 ou 2 € plus chez mais depuis que j’en ai un je reçois tous les messages même a 50m.

Je vais quand même regarder le code pour les Ringbell , de toute façon avec le coronavirus , tu va pas avoir de récepteur avant 2 mois :mask: .

C’est ce que je me disais aussi

Yup, c’est pour ça que j’ai fait une commande du circuit imprimé rflink, je devrai le recevoir la semaine prochaine et je pourrais retester avec.

J’ai réussi à connecter mes 7 prises Zap, le On/Off marche bien. :+1:
J’ai également un détecteur d’ouverture Chacon, je vais voir s’il est reconnu, et je te tiens au courant

Je suis en train de réfléchir a une fonction utile et j’aimerai votre avis:

Est ce que vous pensez que c’est une bonne idée d’ajouter un bouton pour blacklister un device (ce device ne peux plus s’ajouter tout seul a votre liste de device )?

Ca peut être utile si par exemple votre voisin ouvre son portail tout le temps et qu’il apparait dans glayds



Autre demande d’avis :

Pour certains device chinois en 433mhz on ne peut pas détecter si c’est un juste un capteur ou si c’est un objet qui peut recevoir des commandes
Ducoup ça me donne une question pour tout le monde :

Est ce que vous préferez que par défaut , ces devices soient considérer comme des capteurs ou des actionneurs (peuvent recevoir des commandes) ? sachant que l’on peu changer ça après

En gros vous préferez vous retrouvez dans certains cas avec des capteurs dont on peut changer qui on un bouton permettant de changer leur état sans editer le device ou plutot des actionneurs dont vous ne pouvez pas changer l’état sans éditer le device

Je pense qu’il faudrait séparer en 3 catégories les devices :

  • Les nouveaux : ils ont été découverts depuis le dernier accès à la page, ou tout simplement ceux qio ne sont pas encore affecté à une pièce.
  • Les paramétrés et fonctionnels
  • La liste noire

On pourrait voir 2 organisations possibles : soit une page unique avec les 3 catégories séparées, soit 3 pages dans le menu de gauche.

Par défaut, je pense qu’il faudrait qu’ils soient considéré comme des capteurs, c’est pour moi le cas le plus “neutre”. Idéalement il faudrait une info-bulle en haut de la page précisant que certains appareils peuvent être mal reconnu et donc oui, proposer le bouton de changement d’état, uniquement sur ces devices (en tout cas de manière visible).

Mmm non c’est pas normal ^^

Tout devrait fonctionner… Si tu as plus d’informations, ça m’intéresse :slight_smile: Il faut fixer ça.

Effectivement, dans Gladys 4, la directive c’est que les devices ne doivent être jamais ajouté automatiquement: c’est toujours le choix de l’utilisateur, et ce choix doit être fait dans l’UI.

Tu peux voir comment font les autres services comme Philips Hue par exemple:

  1. Le service détecte automatiquement des devices, il les stocke dans une liste de devices en RAM.

  2. Lorsque l’utilisateur arrive sur la page du service, il voit que de nouveaux périphériques ont été détecté, et il a le choix de les ajouter à Gladys, ou non.

  3. Lorsque l’utilisateur clique sur « créer » le device, c’est l’UI qui envoie la requête au backend de créer le device. Ainsi, l’utilisateur a un retour visuel si quelque chose se passe mal. (un device existe déjà avec ce nom par exemple)

Dans Gladys 4, on évite tout ce qui est en arrière plan et qui pourrait mal se passer, car si une erreur intervient, l’utilisateur n’a aucun retour. (Et non, « regarder les logs », n’est pas une solution, dans la v4 on considère que l’utilisateur n’a pas a regarder les logs, comme tout produit)

J’ai l’impression que ça vient des dépendances mais je sais pas lesquelles j’ai résolu le problème en bidouillant les versions de react-compat et d’autre modules

C’est bon , c’est ajouté!

J’ai trouvé, c’est un bug du à la façon dont les services sont traduit dans le front, c’est super con.

En gros, dans certains services (genre le z-wave, un des premiers services que j’ai développé), j’utilise le fichier JSON qui contient la liste des intégrations comme source de traduction, et je fais souvent:

<ZwavePage integration={integrationConfig[props.user.language].zwave}>
      <NetworkTab {...props} />
 </ZwavePage>

Hors, si le props.user.language n’est pas défini, ça pète.

On va arrêter de faire ça pour l’i18, et utiliser partout la lib d’i18n qui gère tout ça tout seul, et virer les traductions des fichiers device.en.json.

J’ai créé une issue github pour référencer le développement:

Bonjour,

Tout d’abord merci de développer ce module :wink:

Je viens de faire quelques tests sachant que je dispose de 2 capteurs :

A noter : j’ai testé en utilisant l’image créée par @peb qui date d’il y a 14 jours comme le repo Github (Images 🐳 pour tester des services en développement)

Voici les messages transmis par RFlink avec mes 2 devices :

  • EV1527 : 20;01;EV1527;ID=0e28a0;SWITCH=0e;CMD=ON;
  • Selectplus : 20;02;SelectPlus;ID=0575f1;SWITCH=02;CMD=ON;CHIME=01;
  • MD-210 : 20;09;Atlantic;ID=3e6835;SWITCH=01;CMD=ON; ou 20;0A;Atlantic;ID=3e6835;SWITCH=01;CMD=OFF;

Constats :

  1. La carte RFlink (sur arduino Mega) est détectée et utilisée sans aucune manipulation nécessaire :slight_smile:
  2. Le capteur de mouvement est bien détecté
  3. Le capteur de mouvement est détecté comme un switch. Il ne devrait pas être motion ?
  4. Le détecteur d’ouverture de porte ne l’est pas. Est-ce que c’est parce que le model “Atlantic” n’a pas encore été implémenté ?
  5. Les devices apparaissent en doublons dans la partie " Devices detected by the gateway"
  6. Quand j’ajoute un premier device à Gladys, tout se passe bien mais quand j’ajoute un device supplémentaire celui que j’ai créé juste avant est duppliqué (juste un problème d’affichage ?)
  7. Comportement étrange de Gladys, il est impossible de refresh la page d’intégrations (la page devient blanche)
  8. Rflink debug console : j’ai une valeur mais c’est toujours la même alors que je capte pléthore de modules 433MHz

A ta dispo pour tous les détails nécessaires.

2 « J'aime »

Merci des retours ,

pour les bugs d’affichage c’est parce que je me suis basé sur le code du service zwave qui avait un défaut , je vais voir comment corriger.

Le capteur de mouvement envoi le message SelectPlus ou EV1527?

J’arrive pas a trouver quelques chose qui différencie les switch des motions pour dans le message Rflink , je bloque un peu :grin: . Si les capteurs on tous la proprieté CHIME , ça m’aiderait.

Pour le détecteur d’ouverture je pensais qu’il serais détecté , t’aurais les logs? je cherche de mon coté en attendant.

Tu veux dire que tu vois toujours le même message affiché dans le rectangle gris mais que dans les logs tu vois les bons?

Les problèmes dont je n’ai pas parlé c’est ceux qui sont sensé être corrigé mais que tu as peut être pas a cause de l’image Docker

Merci de m’aider , j’ai pas énormément de retour du cou je sais pas ou j’en suis dans le service , y’a beaucoup de choses a gérer avec le Rflink :crazy_face:

Je ne sais pas afficher les logs lorsque c’est sur docker. Un peu d’aide, c’est quoi la commande ?

Le capteur envoie l’un ou l’autre fonction du type de mouvement.

docker logs gladys

:wink:

1 « J'aime »

Je pense que la distinction en automatique est impossible. Le Switch semble être utilisé pour tous les modules qui ont un état binaire ? RFLink Gateway - HomeAutomation

A mon sens, il est préférable de laisser la création des devices à l’utilisateur sinon, quand t’es en ville (comme c’est mon cas), tu te retrouves à avoir tous les détecteurs qui vont être ajoutés automatiquement. J’aime bien l’idée de la blacklist que tu évoques ; ça permettra de distinguer les nouveaux devices détectés des devices qu’on a déjà détectés par le passé mais qu’on ne souhaite pas ajouter :slight_smile: