Je me suis mal exprimé , dans gladys switch et motion sont des types de devices utilisés pour savoir comment communiquer avec le device. Pour détecter le type d’un device je me base sur les champs présents dans le message Rflink.
Par exemple si le message contient « RGBW=… » alors le type seras détecté comme Light .
si le message contient « HUM=… » alors ça sera détecté comme un capteur d’humidité
Sauf que pour certains type de devices , je trouve pas de moyen dans le message transmis par Rflink de savoir par exemple si c’est une prise ou un capteur d’ouverture de porte. c’est pour ça que je t’ai demandé si tu pensais que tous les capteurs de mouvements envoyait une propriété CHIME .
(node:32) UnhandledPromiseRejectionWarning: TypeError: Cannot read property ‹ includes › of undefined
at RFlinkManager.message (/src/server/services/rflink/lib/events/rflink.message.js:248:47)
at ReadLineParser. (/src/server/services/rflink/lib/commands/rflink.listen.js:9:10)
at ReadLineParser.emit (events.js:311:20)
at addChunk (_stream_readable.js:294:12)
at readableAddChunk (_stream_readable.js:271:13)
at ReadLineParser.Readable.push (_stream_readable.js:209:10)
at ReadLineParser.Transform.push (_stream_transform.js:152:32)
at ReadLineParser._transform (/src/server/services/rflink/node_modules/@serialport/parser-delimiter/lib/index.js:35:12)
at ReadLineParser.Transform._read (_stream_transform.js:191:10)
at ReadLineParser.Transform._write (_stream_transform.js:179:12)
at doWrite (_stream_writable.js:441:12)
at writeOrBuffer (_stream_writable.js:425:5)
at ReadLineParser.Writable.write (_stream_writable.js:316:11)
at SerialPort.ondata (_stream_readable.js:714:22)
at SerialPort.emit (events.js:311:20)
at addChunk (_stream_readable.js:294:12)
at readableAddChunk (_stream_readable.js:275:11)
at SerialPort.Readable.push (_stream_readable.js:209:10)
at /src/server/services/rflink/node_modules/@serialport/stream/lib/index.js:385:12
(node:32) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict (see Command-line API | Node.js v21.6.1 Documentation). (rejection id: 6)
(node:32) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
ça fonctionne ! Mon détecteur d’ouverture est détecté maintenant (toujours en tant que switch en revanche, mais normal vu notre échange récent)
Je vois maintenant les messages.
Je constate un comportement étrange. Aujourd’hui, quand un nouveau device est détecté, le clic sur le bouton Connect/Reconnect ne fonctionne pas ; je dois rafraîchir la page manuellement pour le voir apparaître en haut.
A noter : j’ai abandonné les tests avec Docker sinon je n’aurais pas pu voir les dernières corrections que tu as faites.
@joeypic, après l’après-midi de fonctionnement de Gladys, la liste des devices à créer est énorme. Même si j’ai ajouté le device dans Gladys (Connect/Reconnect), il est listé de multiples fois
j’arrive pas a comprendre ça me le faisait pas avant et j’ai ça aussi d’un coup alors que j’ai pas touché au front depuis 2 semaines pourtant dans mon code il devrait actualiser la liste quand tu clique sur connect
J’avance dans mes tests. Je me permets d’ajouter les devices de mes voisins
Après avoir ajouté les devices sur le dashboard, ils restent sans valeur (No value recorded). Pour une station météo LaCrosse qui transmet un message 20;05;LaCrosse;ID=0c06;TEMP=0116; (température en hexadécimal au passage, je ne sais pas si tu as prévu la conversion en décimal ?), je constate qu’il n’y a pas de feature associé (aucune icône non plus dans la partie Integrations).
Du coup, le message d’erreur ci-dessous, explique peut-être pourquoi je n’ai pas de valeur affichée sur le dashboard :
2020-04-12T14:19:45+0200 rflink.newValue.js:12 (RFlinkManager.newValue) RFlink : value temperature of device rflink:0c06:temperature:undefined changed to 0114
2020-04-12T14:19:45+0200 device.newStateEvent.js:20 (DeviceManager.newStateEvent) NotFoundError: DeviceFeature not found
at DeviceManager.newStateEvent (/home/philippe/gladys-rflink/server/lib/device/device.newStateEvent.js:16:13)
at EventEmitter.emit (events.js:311:20)
at Event.emit (/home/philippe/gladys-rflink/server/lib/event/index.js:8:16)
at RFlinkManager.newValue (/home/philippe/gladys-rflink/server/services/rflink/lib/events/rflink.newValue.js:33:23)
at RFlinkManager.message (/home/philippe/gladys-rflink/server/services/rflink/lib/events/rflink.message.js:350:16)
at ReadLineParser. (/home/philippe/gladys-rflink/server/services/rflink/lib/commands/rflink.listen.js:9:10)
at ReadLineParser.emit (events.js:311:20)
at addChunk (_stream_readable.js:294:12)
at readableAddChunk (_stream_readable.js:271:13)
at ReadLineParser.Readable.push (_stream_readable.js:209:10)
at ReadLineParser.Transform.push (_stream_transform.js:152:32)
at ReadLineParser._transform (/home/philippe/gladys-rflink/server/services/rflink/node_modules/@serialport/parser-delimiter/lib/index.js:35:12)
at ReadLineParser.Transform._read (_stream_transform.js:191:10)
at ReadLineParser.Transform._write (_stream_transform.js:179:12)
at doWrite (_stream_writable.js:441:12)
at writeOrBuffer (_stream_writable.js:425:5)
at ReadLineParser.Writable.write (_stream_writable.js:316:11)
at SerialPort.ondata (_stream_readable.js:714:22)
at SerialPort.emit (events.js:311:20)
at addChunk (_stream_readable.js:294:12)
at readableAddChunk (_stream_readable.js:275:11)
at SerialPort.Readable.push (_stream_readable.js:209:10)
at /home/philippe/gladys-rflink/server/services/rflink/node_modules/@serialport/stream/lib/index.js:385:12 {
message: ‹ DeviceFeature not found ›
J’ai un autre message d’erreur dans les logs :
(node:6791) UnhandledPromiseRejectionWarning: TypeError: Cannot read property ‹ includes › of undefined
at RFlinkManager.message (/home/philippe/gladys-rflink/server/services/rflink/lib/events/rflink.message.js:380:21)
at ReadLineParser. (/home/philippe/gladys-rflink/server/services/rflink/lib/commands/rflink.listen.js:9:10)
at ReadLineParser.emit (events.js:311:20)
at addChunk (_stream_readable.js:294:12)
at readableAddChunk (_stream_readable.js:271:13)
at ReadLineParser.Readable.push (_stream_readable.js:209:10)
at ReadLineParser.Transform.push (_stream_transform.js:152:32)
at ReadLineParser._transform (/home/philippe/gladys-rflink/server/services/rflink/node_modules/@serialport/parser-delimiter/lib/index.js:35:12)
at ReadLineParser.Transform._read (_stream_transform.js:191:10)
at ReadLineParser.Transform._write (_stream_transform.js:179:12)
at doWrite (_stream_writable.js:441:12)
at writeOrBuffer (_stream_writable.js:425:5)
at ReadLineParser.Writable.write (_stream_writable.js:316:11)
at SerialPort.ondata (_stream_readable.js:714:22)
at SerialPort.emit (events.js:311:20)
at addChunk (_stream_readable.js:294:12)
at readableAddChunk (_stream_readable.js:275:11)
at SerialPort.Readable.push (_stream_readable.js:209:10)
at /home/philippe/gladys-rflink/server/services/rflink/node_modules/@serialport/stream/lib/index.js:385:12
(node:6791) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict (see Command-line API | Node.js v21.6.1 Documentation). (rejection id: 6)
(node:6791) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
Bonjour @joeypic et merci pour le dev de ce module
Je souhaite de plus en plus remplacer mon install domotique en V3 sur un RPI3 qui est plus que surchargé et montre des ralentissements a cause du système RFlink et de ses trop nombreuses requettes par minutes. Donc j’ai tenté today d’installer l’image docker @peb qui date d’il y a 4h sur un RPI4 pour tester ton module.
Alors c’est mon premier jour avec docker, j’ai installé l’image de peb de la même manière que la beta officielle en remplaçant juste la ligne gladysassistant/gladys:4.0.0-beta-arm par pebou/gladys:4.0.0-beta-integration-rflink. C’est bien ce que je suis censé faire ?
Suite à ça j’ai un serveur qui tourne rond donc j’ai l’impression d’avoir bon, mais je rencontre plusieurs soucis concernant l’ajout de mes devices 433MHz, qui me font croire que je ne suis peut être pas sur la dernière version du module (j’ai vu des pb similaires résolus plus haut) ?
La connexion a mon Ardu MEGA ne pose pas de soucis, choix du port et reboot de gladys et roule.
Directement j’ai plusieurs capteurs qui ont été reconnus et je les ait ajoutés sans souci. Dans le dashboard ils ne prennent par contre aucune valeur, tout reste à No value recorded sauf un capteur qui affiche son humidité (pourquoi ? )
Par la suite, j’ai essayé d’ajouter ma télécommande 5 prises, qui est en protocole TriState. Impossible de la détecter automatiquement, elle n’apparaît pas. J’ai alors essayé un ajout manuel, en mettant plusieurs boutons dans un seul device, mais je n’ai pas réussi car “conflit d’ID”. J’en conclus qu’il faut créer chaque bouton ON/OFF séparément ?
Voici ce que j’ai tenté :
Et a ce moment je ne sais par quelle magie je vois dans les devices détectées un de mes boutons TriState qui est apparu. Et avec lui je commande bien ma prise. En revanche impossible d’ajouter les 9 autres via la détection Dans le debug, la ligne concerne tjr des capteurs de températures (enfin je n’ai rien vu d’autre même quand j’appuie sur mes boutons)
Du coup, si je me trompe quelque part je suit tout ouïe pour vos corrections
Je t’avoue que docker je sais pas du tout comment ça fonctionne mais y’a des specialistes sur le forum.
Je viens de corriger le problème en ajoutant (j’ai ajouté capteurs d’humidité , de luminosité et de pression)
Ce qui serait utile c’est de regarder si le RFlink reçois un message. Dans l’onglet settings du service tu vois le dernier message reçu , appuie sur ta télécommande (refresh la page car j’ai pas mis ça en auto) ,
Si ton RFLINK recois un message mais que ta pas de device ajouté alors envoie moi les logs , Si Ton RFLINK détecte même pas le message (led de l’arduino clignotte pas) alors le problème ne vient pas du service (ça m’étonnerait beaucoup )
Encore merci de tes retours je commençait a tourner en rond a force d’en avoir aucun (si t’as le temps tu pourrais m’envoyer en mp la listes de tes devices et le code Rflink qui leur correspond stp?)
Pas de soucis, alors ma Box RFLink est rodée puisque je l’utilise depuis plus d’un an et demi. La réception et l’émission fonctionnent plutôt bien (la réception 4 fois sur 5 mais ça reste bon).
Du coup quand j’essaie de détecter ma télécommande via le logiciel RFLink ça fonctionne, ils apparaissent a chaque appui sur ma télécommande :
En revanche côté module de gladys, presque impossible de les faire apparaître. L’onglet debug n’aide pas non plus, la dernière ligne reçue est 20;13;Alecto V4;ID=57d8;TEMP=00c2;HUM=79; mais ne change pas lorsque j’appuie sur mes inter TriState. Je remarque la même chose avec un détecteur de présence en EV1527 qui a bien mis du temps avant que je le retrouve finalement dans la liste des devices détectés.
J’ai eu un brin de magie ou deux inter TriState sont apparus subitement dans la liste… je n’explique pas ils sont comme « apparus 30 minutes après mon appui sur les boutons » lol. Mais les autres ne sont pas détectés.
Je vois aussi que pour les capteurs de températures ils s’appellent presque tous « XXX XXX undefined ». C’est peut être normal mais je préfère le signaler
Initialising OpenZWave 1.6.974 binary addon for Node.JS.
OpenZWave Security API is ENABLED
ZWave device db : /etc/openzwave
User settings path : /src/server/services/zwave/node_modules/openzwave-shared/build/Release/…/…/
Option Overrides : --Logging false --ConsoleOutput false --SaveConfiguration true
2020-05-02T16:52:36+0200 index.js:16 (Object.start) Starting zwave service
2020-05-02T16:52:36+0200 index.js:20 (Object.start) Starting Dark Sky service
2020-05-02T16:52:36+0200 index.js:19 (Object.start) Starting telegram service
2020-05-02T16:52:36+0200 index.js:13 (Object.start) Starting usb service
2020-05-02T16:52:36+0200 service.start.js:16 (Service.start) Service zwave is not configured, so it was not started.
2020-05-02T16:52:36+0200 service.start.js:16 (Service.start) Service telegram is not configured, so it was not started.
2020-05-02T16:52:36+0200 service.start.js:16 (Service.start) Service mqtt is not configured, so it was not started.
2020-05-02T16:52:36+0200 index.js:63 (Server.) Server listening on port 90
(node:31) UnhandledPromiseRejectionWarning: TypeError: Cannot read property ‹ includes › of undefined
at RFlinkManager.message (/src/server/services/rflink/lib/events/rflink.message.js:377:21)
at ReadLineParser. (/src/server/services/rflink/lib/commands/rflink.listen.js:9:10)
at ReadLineParser.emit (events.js:310:20)
at addChunk (_stream_readable.js:286:12)
at readableAddChunk (_stream_readable.js:264:11)
at ReadLineParser.Readable.push (_stream_readable.js:209:10)
at ReadLineParser.Transform.push (_stream_transform.js:152:32)
at ReadLineParser._transform (/src/server/services/rflink/node_modules/@serialport/parser-delimiter/lib/index.js:35:12)
at ReadLineParser.Transform._read (_stream_transform.js:191:10)
at ReadLineParser.Transform._write (_stream_transform.js:179:12)
at doWrite (_stream_writable.js:403:12)
at writeOrBuffer (_stream_writable.js:387:5)
at ReadLineParser.Writable.write (_stream_writable.js:318:11)
at SerialPort.ondata (_stream_readable.js:695:22)
at SerialPort.emit (events.js:310:20)
at addChunk (_stream_readable.js:286:12)
at readableAddChunk (_stream_readable.js:268:9)
at SerialPort.Readable.push (_stream_readable.js:209:10)
at /src/server/services/rflink/node_modules/@serialport/stream/lib/index.js:385:12
(node:31) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict (see Command-line API | Node.js v21.6.1 Documentation). (rejection id: 3)
(node:31) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
rflink:57d8:undefined
rflink:5718:undefined
Je n’ai pas bien compris ce que tu veux savoir en MP mais je serais ravi de te donner les infos
PS : J’ai fait la mise a jour avec l’image Docker de Peb du début d’aprem. Et je vais tout recommencer avec un gladys tout neuf histoire de voir si les comportement sont bien identiques
Les logs me laissent penser que ta version n’est pas a jour
J’espère vraiment que c’est juste ton setup qui n’est pas a jour parce que je commence a avoir peur , tout ça fonctionne parfaitement chez moi (le undefined dans le nom j’ai corrigé y’a pas longtemps).
J’ai repris des tests ce dimanche 3 mai avec un git pull de ton repos vers 11h30.
As-tu pris connaissance de mon message du 12 avril dernier, plus haut dans ce thread ? N’ayant pas vu de réponse, je ne suis pas sûr que tu l’ai remarqué^^
Voici ce que j’ai constaté aujourd’hui :
La détection de nouveaux devices remonte des devices déjà ajoutés ; du coup, on essaie d’ajouter le device en cliquant sur “Connect/Reconnect” ça supprime de la liste les autres devices que j’aurais pu ajouter (?) et surtout, ça écrase le paramétrage du device qui était déjà ajouté.
Lors de l’identification d’un nouveau device, la log retourne [object Object] systématiquement : rflink.addNewDevice.js:11 (RFlinkManager.addNewDevice) ajout du device : [object Object]
La mise à jour des états ne semble pas fonctionner tout le temps : cf. logs ci-dessous + un autre cas avec mon détecteur de porte décrit dans le point après les logs
voici les logs :
2020-05-03T11:31:09+0200 rflink.listen.js:10 (ReadLineParser.) Rflink : message reçu : 20;02;X2D;ID=100cdb3;SWITCH=00;CMD=ON;RC=0000;S=83;EXT=Tybox;BAT=OK;
rflink:0e28a0:0e
2020-05-03T11:31:39+0200 gateway.forwardWebsockets.js:14 (Gateway.forwardWebsockets) Gateway: not connected. Prevent forwarding event.
2020-05-03T11:31:39+0200 rflink.message.js:28 () d.external_id: rflink:100cdb3:00
2020-05-03T11:31:39+0200 rflink.message.js:29 () msg.id: 100cdb3
2020-05-03T11:31:39+0200 rflink.newValue.js:12 (RFlinkManager.newValue) RFlink : value battery of device rflink:100cdb3:battery:00 changed to OK
2020-05-03T11:31:39+0200 device.newStateEvent.js:20 (DeviceManager.newStateEvent) NotFoundError: DeviceFeature not found
at DeviceManager.newStateEvent (/home/philippe/gladys-rflink/server/lib/device/device.newStateEvent.js:16:13)
at EventEmitter.emit (events.js:311:20)
at Event.emit (/home/philippe/gladys-rflink/server/lib/event/index.js:8:16)
at RFlinkManager.newValue (/home/philippe/gladys-rflink/server/services/rflink/lib/events/rflink.newValue.js:52:21)
at RFlinkManager.message (/home/philippe/gladys-rflink/server/services/rflink/lib/events/rflink.message.js:347:16)
at ReadLineParser. (/home/philippe/gladys-rflink/server/services/rflink/lib/commands/rflink.listen.js:9:10)
at ReadLineParser.emit (events.js:311:20)
at addChunk (_stream_readable.js:294:12)
at readableAddChunk (_stream_readable.js:271:13)
at ReadLineParser.Readable.push (_stream_readable.js:209:10)
at ReadLineParser.Transform.push (_stream_transform.js:152:32)
at ReadLineParser._transform (/home/philippe/gladys-rflink/server/services/rflink/node_modules/@serialport/parser-delimiter/lib/index.js:35:12)
at ReadLineParser.Transform._read (_stream_transform.js:191:10)
at ReadLineParser.Transform._write (_stream_transform.js:179:12)
at doWrite (_stream_writable.js:441:12)
at writeOrBuffer (_stream_writable.js:425:5)
at ReadLineParser.Writable.write (_stream_writable.js:316:11)
at SerialPort.ondata (_stream_readable.js:714:22)
at SerialPort.emit (events.js:311:20)
at addChunk (_stream_readable.js:294:12)
at readableAddChunk (_stream_readable.js:275:11)
at SerialPort.Readable.push (_stream_readable.js:209:10)
at /home/philippe/gladys-rflink/server/services/rflink/node_modules/@serialport/stream/lib/index.js:385:12 {
message: ‘DeviceFeature not found’
}
2020-05-03T11:31:39+0200 rflink.newValue.js:12 (RFlinkManager.newValue) RFlink : value switch of device rflink:100cdb3:switch:00 changed to ON
2020-05-03T11:31:39+0200 device.newStateEvent.js:20 (DeviceManager.newStateEvent) NotFoundError: DeviceFeature not found
at DeviceManager.newStateEvent (/home/philippe/gladys-rflink/server/lib/device/device.newStateEvent.js:16:13)
at EventEmitter.emit (events.js:311:20)
at Event.emit (/home/philippe/gladys-rflink/server/lib/event/index.js:8:16)
at RFlinkManager.newValue (/home/philippe/gladys-rflink/server/services/rflink/lib/events/rflink.newValue.js:52:21)
at RFlinkManager.message (/home/philippe/gladys-rflink/server/services/rflink/lib/events/rflink.message.js:377:16)
at ReadLineParser. (/home/philippe/gladys-rflink/server/services/rflink/lib/commands/rflink.listen.js:9:10)
at ReadLineParser.emit (events.js:311:20)
at addChunk (_stream_readable.js:294:12)
at readableAddChunk (_stream_readable.js:271:13)
at ReadLineParser.Readable.push (_stream_readable.js:209:10)
at ReadLineParser.Transform.push (_stream_transform.js:152:32)
at ReadLineParser._transform (/home/philippe/gladys-rflink/server/services/rflink/node_modules/@serialport/parser-delimiter/lib/index.js:35:12)
at ReadLineParser.Transform._read (_stream_transform.js:191:10)
at ReadLineParser.Transform._write (_stream_transform.js:179:12)
at doWrite (_stream_writable.js:441:12)
at writeOrBuffer (_stream_writable.js:425:5)
at ReadLineParser.Writable.write (_stream_writable.js:316:11)
at SerialPort.ondata (_stream_readable.js:714:22)
at SerialPort.emit (events.js:311:20)
at addChunk (_stream_readable.js:294:12)
at readableAddChunk (_stream_readable.js:275:11)
at SerialPort.Readable.push (_stream_readable.js:209:10)
at /home/philippe/gladys-rflink/server/services/rflink/node_modules/@serialport/stream/lib/index.js:385:12 {
message: ‘DeviceFeature not found’
}
Les états de mon détecteur de porte ne sont pas enregistrés : Atlantic;ID=3e6835;SWITCH=01;CMD=ON; et 20;10;Atlantic;ID=3e6835;SWITCH=01;CMD=OFF;
Le message 20;17;Warema;ID=ffd5;SWITCH=03;CMD=UP; conduit à créer un device sans feature.
Pour les détecteurs de mouvement, il faudrait à mon sens enregistrer tous les états envoyés (si ce n’est pas déjà fait). En effet, ils n’envoient que des CMD=ON (jamais de OFF)
Si ça peut aider, voici une après-midi de réception :
Ah oui , J’ai corrigé le probleme de "no value " pour presque tous les capteurs mais j’ai toujours pas le logo de la feature qui s’affiche a coté (pourtant je donne bien tout ce qu’il faut a Gladys)
Pour la détection des devices j’ai corrigé presque tout mais je continue de temps en temps a avoir un device qui passe alors qu’il est deja ajouté donc je continue .
Pour les logs c’est vrai que c’est pas hyper utile . Je vais enlever ça
Pour la mise a jour d’état le code est simple et fonctionne tout le temps pour moi , par contre mon RFLINK ne détecte pas toujours tout (je pense que je vais ajouter une alim externe pour les modules parce que j’ai 2 récepteurs et un émetteur sur mon Arduino , Le USB fourni peut être pas assez).
Pour ton détecteur je vais regarder .
Le problème c’est pas que mon service gère pas le OFF c’est que les capteurs pas cher n’envoie pas de messages OFF.
Il faut peut être que j’ajoute directement dans le service une option qui remet a 0 régulièrement la valeur des détecteurs d’ouverture de porte vu que ceux qui sont pas cher envoi un message lors d’une ouverture mais pas lorsque tu referme une porte .
Pareil pour les capteurs de mouvement (pas de message quand plus de mouvement)
En tout cas merci pour tes retours et pour les commandes , j’aimerais bien des infos sur ton peripherique X2D (c’est quoi les champs : RC= , S= , EXT = )
Je fais ce que je peux pour créer un service stable et pour l’instant c’est pas encore parfait c’est le seul point négatif parce que y’a beaucoup de fonctionnalités .
Si ça intéresse quelqu’un je suis en même temps en train de modéliser un boitier pour RPI + RFLINK que j’imprimerai en 3D .