[V4] Dev service RFlink

Je veux afficher les 2 champs uniquement si le device feature est un switch

Bonjour à tous,

J’étais en stage depuis janvier donc je n’ai aps suivi le dévelloppement. Pour cause de corona je me retrouve à la maison.
Je voudrais savoir si rflink était bientot dispo pour migrer et utiliser mes relais 433 ?

Merci d avance

Le module est fonctionnel mais je revois encore l’UI , j’ai besoin de testeurs pour finir le module

J’ai changé le mode de creation des devices pour les switchs ça ressemble a ça :

L’onglet setup affiche maintenant le derniere commande reçue :

@pierre-gilles je voulais savoir si je suis obligé de mettre beaucoup de tests pour mon service ou pas parce que je trouve ça long , je peux faire comme pour les autres services et juste tester fonctions events et command?

Je cherche toujours des testeurs , si vous avez un arduino Mega avec Rflink , vous pouvez tester le 433mhz , le 2.4 Ghz et Le Milight en partie

Oui, la PR doit être testée intégralement.

Je sais, ça demande un peu plus de travail, mais l’objectif de la v4 est de proposer aux utilisateurs un produit de qualité, qui est testé et stable. La barre est plus haute, mais c’est pour avoir un produit maintenable et dont la stabilité est garanti sur le long terme.

Sans tests, sur un produit open-source aux contributeurs multiples, petit à petit, au fur et à mesure des développements la qualité du logiciel va se dégrader, des régressions vont apparaitre et personne ne saura d’où elles viennent et qui les a introduites.

Les tests permettent de garantir que si une fonctionnalité fonctionne à un instant t, alors elle fonctionnera à l’avenir.

D’ailleurs, si tu te mets à écrire les tests en dernier, peut-être que quelque chose ne va pas dans ton process de développement :stuck_out_tongue: Je te conseille décrire les tests en même temps/voir avant de coder ton service (en mode TDD), ça t’aidera lorsque tu développe !

J’espère que tu comprends la nécessité des tests dans un produit qui est utilisé par autant d’utilisateurs :slight_smile:

N’hésite pas si tu as des questions sur cette partie, et encore merci pour ce service :pray:

Sur mes derniers commit j’ai des erreurs de ESlint concernant le module serialport alors que je les ai pas sur mon pc.

  2:28  error  Unable to resolve path to module 'serialport'                   import/no-unresolved
  3:26  error  Unable to resolve path to module '@serialport/parser-readline'  import/no-unresolved

Faut que je mette le dossier node modules sur github?

C’est le problème que je t’avais remonté, si tu le downgrades en 8.0.6 ça passe il me semble

Je comprend toujours pas pourquoi mais c’est corrigé merci

@pierre-gilles est ce que ces erreurs sont normales sur les tests du serveur :

    /home/circleci/gladys-test/server/services/usb/api/usb.controller.js
  13:17  warning  Unexpected unnamed function  func-names

/home/circleci/gladys-test/server/test/benchmark/triggers.js
  68:8  warning  Unexpected constant condition  no-constant-condition

/home/circleci/gladys-test/server/test/lib/gateway/GladysGatewayClientMock.test.js
  4:33  warning  Unexpected unnamed function  func-names

✖ 3 problems (0 errors, 3 warnings)


> gladys-server@ test /home/circleci/gladys-test/server
> cross-env SQLITE_FILE_PATH=/tmp/gladys-test.db NODE_ENV=test ./node_modules/mocha/bin/mocha --recursive ./test/bootstrap.test.js "./test/**/*.test.js" --exit

/home/circleci/gladys-test/server/lib/scene/scene.actions.js:1
var cov_1nc0kv0to6=function(){var path="/home/circleci/gladys-test/server/lib/scene/scene.actions.js";var hash="de307e1c7bbeaca9c7449b14f4b6ca64b54a4a14";var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"/home/circleci/gladys-test/server/lib/scene/scene.actions.js",statementMap:{"0":{start:{line:1,column:20},end:{line:1,column:52}},"1":{start:{line:2,column:29},end:{line:2,column:58}},"2":{start:{line:3,column:15},end:{line:3,column:44}},"3":{start:{line:5,column:20},end:{line:42,column:1}},"4":{start:{line:9,column:4},end:{line:15,column:5}},"5":{start:{line:10,column:6},end:{line:10,column:84}},"6":{start:{line:11,column:6},end:{line:11,column:76}},"7":{start:{line:13,column:6},end:{line:13,column:62}},"8":{start:{line:14,column:6},end:{line:14,column:93}},"9":{start:{line:16,column:4},end:{line:16,column:69}},"10":{start:{line:19,column:18},end:{line:19,column:64}},"11":{start:{line:20,column:4},end:{line

j’ai aussi une vrai erreur (pas un warning) :

TypeError: Cannot read property 'SEND' of undefined
    at Object.<anonymous> (/home/circleci/gladys-test/server/lib/scene/scene.actions.js:1:7066)
    at Module._compile (internal/modules/cjs/loader.js:1158:30)

J’aurais besoin de retours sur le service mais la grosse partie des utilisateurs de la v4 utilise pas un environnement de dev donc ils ne peuvent pas tester.
mon service donc j’aimerai pouvoir le sortir rapidemment pour savoir quels devices marchent ou pas et corriger

Hello,

S’il y a une doc qui explique comment monter l’environnement de dev avec ce que tu as développé, je suis preneur.

Je n’ai que des détecteurs de mouvements donc ça ne pourra pas couvrir tous les tests que tu souhaites faire.

Oui c’est dans la doc

Ce sont des warnings, donc c’est bon :slight_smile:

Certains développeurs de services build une image Docker spéciale avec le service en cours de développement, ça permet aux utilisateurs de tester plus facilement. Après je suis d’accord, on a pas encore mis en place les process pour que ça soit facile à mettre en place. Si tu n’es pas très à l’aise avec Docker/CircleCI, c’est pas simple pour l’instant.

Deux options:

  • Soit tu demandes à ceux qui sont intéressés pour tester d’installer en dev Gladys
  • Soit tu arrives à builder une image Docker et tu la distribue aux intéressés

Déjà au vu du message de @PhilippeMA, tu as déjà un testeur intéressé qui va installer en dev Gladys :slight_smile:

De mon côté, je te ferais une review de ta PR quand la PR sera prête :slight_smile:

Je pensais en avoir fini avec le service mais les test donnent ça :

gladys-server@ test /home/circleci/gladys-test/server
> cross-env SQLITE_FILE_PATH=/tmp/gladys-test.db NODE_ENV=test ./node_modules/mocha/bin/mocha --recursive ./test/bootstrap.test.js "./test/**/*.test.js" --exit

Initialising OpenZWave 1.5.0 binary addon for Node.JS.
	OpenZWave Security API is ENABLED
	ZWave device db    : /etc/openzwave
	User settings path : /home/circleci/gladys-test/server/services/zwave/node_modules/openzwave-shared/build/Release/../../
	Option Overrides : --Logging false --ConsoleOutput false --SaveConfiguration true


2020-03-21T11:57:57+0000 <trace> bootstrap.test.js:30 (Context.before) DatabaseError [SequelizeDatabaseError]: SQLITE_ERROR: no such table: t_trigger_scene
at Query.formatError (/home/circleci/gladys-test/server/node_modules/sequelize/lib/dialects/sqlite/query.js:423:16)
at afterExecute (/home/circleci/gladys-test/server/node_modules/sequelize/lib/dialects/sqlite/query.js:119:32)
at Statement.errBack (/home/circleci/gladys-test/server/node_modules/sqlite3/lib/sqlite3.js:16:21) {
  name: 'SequelizeDatabaseError',
  parent: [Error: SQLITE_ERROR: no such table: t_trigger_scene] {
errno: 1,
code: 'SQLITE_ERROR',
sql: 'DELETE FROM `t_trigger_scene`'
  },
  original: [Error: SQLITE_ERROR: no such table: t_trigger_scene] {
errno: 1,
code: 'SQLITE_ERROR',
sql: 'DELETE FROM `t_trigger_scene`'
  },
  sql: 'DELETE FROM `t_trigger_scene`'
}
  1) "before all" hook: before

  0 passing (130ms)
  1 failing

  1) "before all" hook: before:
 SequelizeDatabaseError: SQLITE_ERROR: no such table: t_trigger_scene
  at Query.formatError (node_modules/sequelize/lib/dialects/sqlite/query.js:423:16)
  at afterExecute (node_modules/sequelize/lib/dialects/sqlite/query.js:119:32)
  at Statement.errBack (node_modules/sqlite3/lib/sqlite3.js:16:21)

J’ai pas l’impression que l’erreur vienne du service

@joeypic C’est tes tests en local ou sur Circle? Ici visiblement problème de concordance DB / tests, donc à mon avis il manque soit un petit rebase du code par rapport à master, soit ta DB de tests a été migrée sur une autre branche que celle que tu run actuellement et donc les deux ne correspondent plus

Si c’est un problème que tu as en local:

Dans le dossier server, run:

npm run clean:test

(ça supprime la DB de tests, elle sera re-crée lors des prochaines tests)

Dans tous les cas, je t’incite à faire un rebase de master car ta PR est outdated par rapport à master

@pierre-gilles C’est les tests de Circle , je t’avoue que je sais pas comment rebase , j’ai essayé

git rebase Gladys/master

Mais ça me dit que j’ai des changements a commit alors que je n’en ai pas, même si je commit ces changements , des que je refais la commande de rebase , il me redemande de commit ces même fichiers (ceux de mon service )

Salut

J’ai un arduino avec émission réception en 433
Si je eux aider c’est avec plaisir !

C’est gentil de vouloir aider par contre pour utiliser le Rflink , il faut un Arduino Mega car c’est un gros programme, si tu en as 1 tu peux déjà installer le service et continuer a me parler en message privés

@pierre-gilles est ce que tu saurais comment corriger cette erreur :

gladys-server@ postinstall /home/circleci/gladys-test
node ./cli/install_service_dependencies.js

internal/modules/cjs/loader.js:985
  throw err;
  ^

Error: Cannot find module '/home/circleci/gladys-test/cli/install_service_dependencies.js'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:982:15)
    at Function.Module._load (internal/modules/cjs/loader.js:864:27)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:74:12)
    at internal/main/run_main_module.js:18:47 {
  code: 'MODULE_NOT_FOUND',
  requireStack: []
}
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! gladys-server@ postinstall: `node ./cli/install_service_dependencies.js`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the gladys-server@ postinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/circleci/.npm/_logs/2020-03-23T09_43_26_526Z-debug.log

J’ai cette erreur dans le test push coverage sur github

Bonjour à tous,

J’ai publié des images :whale: sur DockerHub pour celles et ceux qui souhaitent tester l’intégration rflink.
Je les mettrai à jour une à deux fois par jour :wink:

1 « J'aime »

C’est vraiment énorme ça merci @peb !!! :bowing_man: :bowing_man: :bowing_man: :bowing_man: