[RÉSOLU] - Gérer les lumières via Gladys


#62

Il est vrai que si j’avais expliqué depuis le début comme tu viens de le faire, ça aurait surement était plus simple !
C’est exactement ça
Pour être franc j’ai pensé à plusieurs solutions également mais aucune ne me convient autant que la liaison USB
J’ai en ma possession :

  • ESP8266
  • Arduino Nano (le vrai lol) avec un shield ethernet
  • Deux arduinos Uno (avec un shield ethernet)
  • Un second raspberry pi 3

La liaison usb est pour mon cas et mon projet la plus fiable

Si tu peux énoncer également tes solutions je suis évidemment preneur :slight_smile:
Un grand merci pour ta traduction de mes 50 pages avec ton unique post :smile:


#63

Alors ne met qu’un seul Arduino, et ce sera beaucoup plus simple, quitte à préparer l’autre en le flashant en cas de panne du premier :slight_smile:

(néanmoins, on devrait pouvoir gérer quand même plusieurs Arduino dans Gladys )


#64

L’arduino seul me dérange vraiment (je suis carrément chiant)

Dans ma “box” domotique je veux beaucoup de fonctionnalités.
Ne te moques pas trop de mon schéma please

Actuellement j’ai tout le matériel nécessaire (sauf caméra et home cinéma)
J’ai pu testé programme par programme :

  • Le DHT22 et l’Arduino sur Gladys --> :heavy_check_mark:
  • Eclairage via la carte relais et l’Arduino sur Gladys --> :heavy_check_mark:
  • Tout le set 433MHz/Arduino sur Gladys --> :heavy_check_mark:
  • Emetteur IR c’est un peu plus compliqué lol
  • Le PZEM-004T je ne l’ai reçu qu’ aujourd’hui donc pas eu le temps de tester
  • Pont philips et Lampe philips reçu également aujourd’hui

Je vais avoir plusieurs choses à gérer par la suite et ça m’embête de tout mettre sur un seul Arduino


#65

Salut @ForzAguanno !

Bon j’ai pas mal réfléchis à comment faire pour régler cette histoire sans pour autant tout casser n’y même avoir à tout refaire !

Donc je te propose une solution assez simple (à voir si elle pose problème avec le temps) j’ai modifié le module serial de base pour qu’il puisse tout simplement remplacer le module gladys-to-arduino car de toute façon il ne manquait vraiment pas grand chose et je comprend pas pourquoi j’y avais pas pensé plus tôt :stuck_out_tongue:

Donc ! Vire le module gladys-to-arduino ainsi que le module serial actuel et install celui si => https://github.com/MathieuAndrade/gladys-serial.git

Grâce à la même procédure que pour le module gladys-to-arduino.

Ensuite il suffit de créer des devicetypes sur le device qui correspond à ton Arduino comme tu l’as fais pour le module gladys-to-arduino ! Et noramlement tout devrais rouler !

Enfin j’espère :sweat_smile:
Si tu as des question ou des doutes n’hésite pas ! Je crois que mon message est un peu flou XD

Il est sympa ton schéma sinon :slightly_smiling_face:


#66

Merci pour ta réponse @MathieuA
Bon pour ce qui suit je te souhaite une bonne lecture :joy:

Je te fais ma procédure pas à pas parce que je suis pas sur de faire ça comme il faut lol
1-) Dans l’onglet avancé des modules :

Je réinstalle également le module radioemitter (j’avais tout désinstallé pour le test)
Après l’installation des deux modules je redémarre, jusque là tout va bien !

2-) Je retourne dans module, et je configure ton module, aucun problème !

3-) Puis j’ajoute une prise connectée (fer a souder)

et le deviceType :

4-) Ensuite j’ajoute ma lampe

et mon deviceType :

Et la ça commence à merdouiller, j’ai bien les deux boutons qui sont la

Mais lorsque j’appui sur le bouton lampe j’ai ça qui s’affiche dans les logs :

0|gladys   | Sending 500 ("Server Error") response:
0|gladys   |  ReferenceError: code is not defined
0|gladys   |     at Hook.module.exports (/home/pi/gladys/api/hooks/serial/lib/sendCode.js:11:16)
0|gladys   |     at Hook.wrapper [as sendCode] (/home/pi/gladys/node_modules/@sailshq/lodash/lib/index.js:3275:19)
0|gladys   |     at Hook.exec (/home/pi/gladys/api/hooks/serial/lib/exec.js:9:27)
0|gladys   |     at Hook.wrapper [as exec] (/home/pi/gladys/node_modules/@sailshq/lodash/lib/index.js:3275:19)
0|gladys   |     at /home/pi/gladys/api/core/devicetype/deviceType.exec.js:60:47
0|gladys   |     at tryCatcher (/home/pi/gladys/node_modules/bluebird/js/release/util.js:16:23)
0|gladys   |     at Promise._settlePromiseFromHandler (/home/pi/gladys/node_modules/bluebird/js/release/promise.js:512:31)
0|gladys   |     at Promise._settlePromise (/home/pi/gladys/node_modules/bluebird/js/release/promise.js:569:18)
0|gladys   |     at Promise._settlePromise0 (/home/pi/gladys/node_modules/bluebird/js/release/promise.js:614:10)
0|gladys   |     at Promise._settlePromises (/home/pi/gladys/node_modules/bluebird/js/release/promise.js:693:18)
0|gladys   |     at Promise._fulfill (/home/pi/gladys/node_modules/bluebird/js/release/promise.js:638:18)
0|gladys   |     at /home/pi/gladys/node_modules/bluebird/js/release/nodeback.js:42:21
0|gladys   |     at /home/pi/gladys/node_modules/sails-mysql/lib/connections/spawn.js:120:16
0|gladys   |     at Object.poolfully [as releaseConnection] (/home/pi/gladys/node_modules/sails-mysql/lib/connections/release.js:28:12)
0|gladys   |     at Query._callback (/home/pi/gladys/node_modules/sails-mysql/lib/connections/spawn.js:105:35)
0|gladys   |     at Query.Sequence.end (/home/pi/gladys/node_modules/mysql/lib/protocol/sequences/Sequence.js:96:24)
0|gladys   |     at Query._handleFinalResultPacket (/home/pi/gladys/node_modules/mysql/lib/protocol/sequences/Query.js:144:8)
0|gladys   |     at Query.EofPacket (/home/pi/gladys/node_modules/mysql/lib/protocol/sequences/Query.js:128:8)
0|gladys   |     at Protocol._parsePacket (/home/pi/gladys/node_modules/mysql/lib/protocol/Protocol.js:280:23)
0|gladys   |     at Parser.write (/home/pi/gladys/node_modules/mysql/lib/protocol/Parser.js:73:12)
0|gladys   |     at Protocol.write (/home/pi/gladys/node_modules/mysql/lib/protocol/Protocol.js:39:16)
0|gladys   |     at Socket.<anonymous> (/home/pi/gladys/node_modules/mysql/lib/Connection.js:96:28)
0|gladys   | Server Error:
0|gladys   | ReferenceError: code is not defined
0|gladys   |     at Hook.module.exports (/home/pi/gladys/api/hooks/serial/lib/sendCode.js:11:16)
0|gladys   |     at Hook.wrapper [as sendCode] (/home/pi/gladys/node_modules/@sailshq/lodash/lib/index.js:3275:19)
0|gladys   |     at Hook.exec (/home/pi/gladys/api/hooks/serial/lib/exec.js:9:27)
0|gladys   |     at Hook.wrapper [as exec] (/home/pi/gladys/node_modules/@sailshq/lodash/lib/index.js:3275:19)
0|gladys   |     at /home/pi/gladys/api/core/devicetype/deviceType.exec.js:60:47
0|gladys   |     at tryCatcher (/home/pi/gladys/node_modules/bluebird/js/release/util.js:16:23)
0|gladys   |     at Promise._settlePromiseFromHandler (/home/pi/gladys/node_modules/bluebird/js/release/promise.js:512:31)
0|gladys   |     at Promise._settlePromise (/home/pi/gladys/node_modules/bluebird/js/release/promise.js:569:18)
0|gladys   |     at Promise._settlePromise0 (/home/pi/gladys/node_modules/bluebird/js/release/promise.js:614:10)
0|gladys   |     at Promise._settlePromises (/home/pi/gladys/node_modules/bluebird/js/release/promise.js:693:18)
0|gladys   |     at Promise._fulfill (/home/pi/gladys/node_modules/bluebird/js/release/promise.js:638:18)
0|gladys   |     at /home/pi/gladys/node_modules/bluebird/js/release/nodeback.js:42:21
0|gladys   |     at /home/pi/gladys/node_modules/sails-mysql/lib/connections/spawn.js:120:16
0|gladys   |     at Object.poolfully [as releaseConnection] (/home/pi/gladys/node_modules/sails-mysql/lib/connections/release.js:28:12)
0|gladys   |     at Query._callback (/home/pi/gladys/node_modules/sails-mysql/lib/connections/spawn.js:105:35)
0|gladys   |     at Query.Sequence.end (/home/pi/gladys/node_modules/mysql/lib/protocol/sequences/Sequence.js:96:24)
0|gladys   |     at Query._handleFinalResultPacket (/home/pi/gladys/node_modules/mysql/lib/protocol/sequences/Query.js:144:8)
0|gladys   |     at Query.EofPacket (/home/pi/gladys/node_modules/mysql/lib/protocol/sequences/Query.js:128:8)
0|gladys   |     at Protocol._parsePacket (/home/pi/gladys/node_modules/mysql/lib/protocol/Protocol.js:280:23)
0|gladys   |     at Parser.write (/home/pi/gladys/node_modules/mysql/lib/protocol/Parser.js:73:12)
0|gladys   |     at Protocol.write (/home/pi/gladys/node_modules/mysql/lib/protocol/Protocol.js:39:16)
0|gladys   |     at Socket.<anonymous> (/home/pi/gladys/node_modules/mysql/lib/Connection.js:96:28)

Et quand j’appui sur le bouton fer a souder, ça me redémarre carrément Gladys !

0|gladys   | ReferenceError: code is not defined
0|gladys   |     at Hook.module.exports (/home/pi/gladys/api/hooks/serial/lib/sendCode.js:11:16)
0|gladys   |     at Hook.wrapper [as sendCode] (/home/pi/gladys/node_modules/@sailshq/lodash/lib/index.js:3275:19)
0|gladys   |     at Timeout._onTimeout (/home/pi/gladys/api/hooks/radioemitter/lib/exec.js:21:26)
0|gladys   |     at ontimeout (timers.js:475:11)
0|gladys   |     at tryOnTimeout (timers.js:310:5)
0|gladys   |     at Timer.listOnTimeout (timers.js:270:5)
PM2        | App [gladys] with id [0] and pid [2696], exited with code [1] via signal [SIGINT]
PM2        | Starting execution sequence in -fork mode- for app name:gladys id:0
PM2        | App name:gladys id:0 online

Désolé c’est très long mais comme ça tu peux voir


#67

@ForzAguanno t’es encore la ? ^^

Bon j’ai fais une petite coquille dans mon code ! Ce qui provoque cette erreur et aussi ton redémarrage de Gladys mais j’ai corrigé du coup. Merci pour tout tes logs c’est impeccable ça m’a permis de voir le problème tout de suite !

Par contre tu as fais une petite erreur (en même temps j’ai un peu mal expliqué la chose) pour piloter ta lampe tu n’as plus besoin de créer un nouveau device, il suffit juste de créer un devicetype sur un des deux device Arduino (celui qui correspond à l’Arduino qui pilote ta lampe).

Peux-tu recommencer ? :slightly_smiling_face:


#68

Ok je réessaie ça de suite !
Laisse moi 10 minutes :slight_smile:


#69

Alors le bouton correspondant au fer a souder(la prise connectée) fonctionne bien ça allume bien ma prise !
Par contre pour le bouton de la lampe je ne suis pas sur de l’avoir fais correctement
J’ai cliqué sur “voir plus” de l’Arduino /dev/ttyACM1 qui est le bon :slight_smile:
et j’ai ajouté un deviceType.
Quand j’actionne le bouton ça me met ça :

0|gladys   | Sending 500 ("Server Error") response:
0|gladys   |  TypeError: port.write is not a function
0|gladys   |     at Hook.module.exports (/home/pi/gladys/api/hooks/serial/lib/sendCode.js:15:10)
0|gladys   |     at Hook.wrapper [as sendCode] (/home/pi/gladys/node_modules/@sailshq/lodash/lib/index.js:3275:19)
0|gladys   |     at Hook.exec (/home/pi/gladys/api/hooks/serial/lib/exec.js:9:27)
0|gladys   |     at Hook.wrapper [as exec] (/home/pi/gladys/node_modules/@sailshq/lodash/lib/index.js:3275:19)
0|gladys   |     at /home/pi/gladys/api/core/devicetype/deviceType.exec.js:60:47
0|gladys   |     at tryCatcher (/home/pi/gladys/node_modules/bluebird/js/release/util.js:16:23)
0|gladys   |     at Promise._settlePromiseFromHandler (/home/pi/gladys/node_modules/bluebird/js/release/promise.js:512:31)
0|gladys   |     at Promise._settlePromise (/home/pi/gladys/node_modules/bluebird/js/release/promise.js:569:18)
0|gladys   |     at Promise._settlePromise0 (/home/pi/gladys/node_modules/bluebird/js/release/promise.js:614:10)
0|gladys   |     at Promise._settlePromises (/home/pi/gladys/node_modules/bluebird/js/release/promise.js:693:18)
0|gladys   |     at Promise._fulfill (/home/pi/gladys/node_modules/bluebird/js/release/promise.js:638:18)
0|gladys   |     at /home/pi/gladys/node_modules/bluebird/js/release/nodeback.js:42:21
0|gladys   |     at /home/pi/gladys/node_modules/sails-mysql/lib/connections/spawn.js:120:16
0|gladys   |     at Object.poolfully [as releaseConnection] (/home/pi/gladys/node_modules/sails-mysql/lib/connections/release.js:28:12)
0|gladys   |     at Query._callback (/home/pi/gladys/node_modules/sails-mysql/lib/connections/spawn.js:105:35)
0|gladys   |     at Query.Sequence.end (/home/pi/gladys/node_modules/mysql/lib/protocol/sequences/Sequence.js:96:24)
0|gladys   |     at Query._handleFinalResultPacket (/home/pi/gladys/node_modules/mysql/lib/protocol/sequences/Query.js:144:8)
0|gladys   |     at Query.EofPacket (/home/pi/gladys/node_modules/mysql/lib/protocol/sequences/Query.js:128:8)
0|gladys   |     at Protocol._parsePacket (/home/pi/gladys/node_modules/mysql/lib/protocol/Protocol.js:280:23)
0|gladys   |     at Parser.write (/home/pi/gladys/node_modules/mysql/lib/protocol/Parser.js:73:12)
0|gladys   |     at Protocol.write (/home/pi/gladys/node_modules/mysql/lib/protocol/Protocol.js:39:16)
0|gladys   |     at Socket.<anonymous> (/home/pi/gladys/node_modules/mysql/lib/Connection.js:96:28)
0|gladys   | Server Error:
0|gladys   | TypeError: port.write is not a function
0|gladys   |     at Hook.module.exports (/home/pi/gladys/api/hooks/serial/lib/sendCode.js:15:10)
0|gladys   |     at Hook.wrapper [as sendCode] (/home/pi/gladys/node_modules/@sailshq/lodash/lib/index.js:3275:19)
0|gladys   |     at Hook.exec (/home/pi/gladys/api/hooks/serial/lib/exec.js:9:27)
0|gladys   |     at Hook.wrapper [as exec] (/home/pi/gladys/node_modules/@sailshq/lodash/lib/index.js:3275:19)
0|gladys   |     at /home/pi/gladys/api/core/devicetype/deviceType.exec.js:60:47
0|gladys   |     at tryCatcher (/home/pi/gladys/node_modules/bluebird/js/release/util.js:16:23)
0|gladys   |     at Promise._settlePromiseFromHandler (/home/pi/gladys/node_modules/bluebird/js/release/promise.js:512:31)
0|gladys   |     at Promise._settlePromise (/home/pi/gladys/node_modules/bluebird/js/release/promise.js:569:18)
0|gladys   |     at Promise._settlePromise0 (/home/pi/gladys/node_modules/bluebird/js/release/promise.js:614:10)
0|gladys   |     at Promise._settlePromises (/home/pi/gladys/node_modules/bluebird/js/release/promise.js:693:18)
0|gladys   |     at Promise._fulfill (/home/pi/gladys/node_modules/bluebird/js/release/promise.js:638:18)
0|gladys   |     at /home/pi/gladys/node_modules/bluebird/js/release/nodeback.js:42:21
0|gladys   |     at /home/pi/gladys/node_modules/sails-mysql/lib/connections/spawn.js:120:16
0|gladys   |     at Object.poolfully [as releaseConnection] (/home/pi/gladys/node_modules/sails-mysql/lib/connections/release.js:28:12)
0|gladys   |     at Query._callback (/home/pi/gladys/node_modules/sails-mysql/lib/connections/spawn.js:105:35)
0|gladys   |     at Query.Sequence.end (/home/pi/gladys/node_modules/mysql/lib/protocol/sequences/Sequence.js:96:24)
0|gladys   |     at Query._handleFinalResultPacket (/home/pi/gladys/node_modules/mysql/lib/protocol/sequences/Query.js:144:8)
0|gladys   |     at Query.EofPacket (/home/pi/gladys/node_modules/mysql/lib/protocol/sequences/Query.js:128:8)
0|gladys   |     at Protocol._parsePacket (/home/pi/gladys/node_modules/mysql/lib/protocol/Protocol.js:280:23)
0|gladys   |     at Parser.write (/home/pi/gladys/node_modules/mysql/lib/protocol/Parser.js:73:12)
0|gladys   |     at Protocol.write (/home/pi/gladys/node_modules/mysql/lib/protocol/Protocol.js:39:16)
0|gladys   |     at Socket.<anonymous> (/home/pi/gladys/node_modules/mysql/lib/Connection.js:96:28)

J’ai par contre créer un Device pour le fer à souder c’était bien ce qu’il fallait faire ?


#70

Arf la c’est plus embêtant :thinking:

Oui c’est parfait comme tu as fais !
Bon laisse moi quelques minutes que je fasse un essai pour vérifier un truc et je reviens !


#71

Ça marche,

Je vais essayer de comprendre tes modifs sur exec.js et sendCode.js pendant ce temps, ça te laisse un sacré long moment :joy::joy:


#72

@ForzAguanno !

Normalement c’est bon ! Chez moi ça fonctionne en tout cas !
Tu peux essayer chez toi voir ce que ça donne ? :slightly_smiling_face:

Désolé j’ai été un peu long :joy:


#73

Désolé pour l’attente @MathieuA je n’était plus chez moi.
J’ai réinstaller le module et la prise connectée fonctionne toujours mais pas la lampe

Gladys me dit ça :

0|gladys   | Scenario : Trigger : Found 0 launchers with code gladys-launched.
0|gladys   | New User connected : Axel
0|gladys   | Received data from Arduino JSON invalid
0|gladys   | Gladys serial : cannot parse JSON received from arduino : SyntaxError: Unexpected token J in JSON at position 0
0|gladys   | Received data from Arduino JSON invalid
0|gladys   | Gladys serial : cannot parse JSON received from arduino : SyntaxError: Unexpected token J in JSON at position 0
0|gladys   | Received data from Arduino JSON invalid
0|gladys   | Gladys serial : cannot parse JSON received from arduino : SyntaxError: Unexpected token J in JSON at position 0
0|gladys   | Received data from Arduino JSON invalid
0|gladys   | Gladys serial : cannot parse JSON received from arduino : SyntaxError: Unexpected token J in JSON at position 0
0|gladys   | Received data from Arduino JSON invalid
0|gladys   | Gladys serial : cannot parse JSON received from arduino : SyntaxError: Unexpected token J in JSON at position 0
0|gladys   | Received data from Arduino JSON invalid
0|gladys   | Gladys serial : cannot parse JSON received from arduino : SyntaxError: Unexpected token J in JSON at position 0

PS : J’utilise mes propres codes, j’ai vu que tu avais mis un code sur github ça n’a rien a voir ? (Mes codes sont fonctionnels)


#74

Salut @ForzAguanno,

Comme tu peux le voir sur github, l’ino a été modifié il y a 4h. A ta place, je prendrais le sien :wink:


#75

Autant pour moi les gars !

Avec ton code @MathieuA
Ça fonctionne à merveille !
UN VRAI GRAND MERCI à vous les gars !
Je ferais peut être un tuto histoire d’aider d’autre personnes dans le même besoin qu’en dites vous ?

En espérant vous rendre l’appareil un de ces 4 !
Encore un grand merci !
Mon projet repart de plus belle grâce à vous !


#76

Super ! tu peux mettre un beau “[RESOLU]” alors en premier dans le titre initial de ton post ? tu peux le faire en cliquant sur le crayon. Merci :slight_smile: