[RESOLU] Pilotage lève TV avec Gladys + arduino + émetteur 433Mhz


#1

Alors voila, j’ai un lève TV avec une télécommande 433Mhz.
Je voudrais commander mon lève TV avec une puce NFC et envoyer l’info par l’émetteur 433Mhz.
Lorsque je pose mon téléphone dessus, le lève TV descend la TV, l’empli s’allume, (pour l’allumage de la TV “vielle Philips” et de la Box SFR on verra après.
Pour cela j’ai un Raspberry PI 3 avec un Arduino Uno, et un émetteur 433Mhz.

J’ai pu récupérer les code binaire envoyé par la télécommande grâce à un récepteur 433Mhz branché à mon Arduino:

Up: Decimal: 89105 (24Bit) Binary: 000000010101110000010001 Tri-State: 000FFF100F0F PulseLength: 348 microseconds Protocol: 1
Raw data: 10872,356,1052,356,1048,356,1052,352,1052,356,1052,352,1052,356,1052,1056,352,352,1052,1060,356,80,1056,1056,356,1056,352,1060,352,352,1056,348,1056,352,1056,352,1056,348,1056,1056,356,348,1056,352,1056,348,1056,1060,352,

Up pause: Decimal: 89105 (24Bit) Binary: 000000010101110000010001 Tri-State: 000FFF100F0F PulseLength: 350 microseconds Protocol: 1
Raw data: 10876,352,1052,356,1052,352,1052,356,1052,352,1052,352,1056,352,1052,1060,352,352,1052,1060,360,64,1056,1056,356,1056,352,1056,356,348,1056,352,1056,352,1052,352,1056,352,1052,1060,352,352,1052,360,1048,352,1052,1060,352,

Down: Decimal: 89106 (24Bit) Binary: 000000010101110000010010 Tri-State: not applicable PulseLength: 347 microseconds Protocol: 1
Raw data: 10864,360,1044,364,1048,360,1044,360,1048,356,1048,356,1048,360,1048,1060,352,352,1052,1060,348,356,1052,1060,348,1060,352,1056,352,352,1052,352,1056,352,1052,352,1056,352,1052,1056,352,352,1056,352,1052,1060,352,352,1052,

Down pause: Decimal: 89106 (24Bit) Binary: 000000010101110000010010 Tri-State: not applicable PulseLength: 347 microseconds Protocol: 1
Raw data: 10864,364,1044,360,1048,356,1048,360,1048,356,1048,356,1048,360,1048,1060,348,356,1048,1060,348,356,1052,1060,348,1060,352,1056,352,352,1052,356,1052,352,1052,356,1052,352,1052,1060,348,352,1056,352,1052,1060,348,352,1056,

J’ai installé les deux modules: Serial et Radioemitter.
J’ai téléversé ce code arduino sur votre arduino.
J’ai mi en place le device dans Gladys.

Mais là je suis bloqué, je n’ai rien dans “contrôler mes devices”

J’ai trouvé le nouveau module Gladys-Radio; mais je ne sais pas si avec celui-ci je pourrais faire ce que je veux. Et comme il n’est pas encore dans le store est il stable? (en plus je ne sais pas encore mettre un fichier télécharger dans Gladys)

GitHub

GladysAssistant / Gladys-radio

Avez vous des idées et une solution pour moi?
Merci.


Contrôle de prise avec Arduino - Rien sur le moniteur pour réception 433mhz
#2

Hello!

Alors normalement le module le plus récent est Gladys-radio effectivement.

As tu essayé ce code sur ton Arduino ? https://github.com/GladysAssistant/gladys-radio/blob/master/new_433_gladys.ino

Pour utiliser le module, il faut que tu l’installes, lances la configuration en cliquant sur le bouton Configuration du module. ( Dans l’onglet “Modules” puis le bouton “Configuration” du module )

Ce module marchait bien, à voir si il fonctionne dans ton cas avec ta télécommande!

Tiens moi au courant ici,


#3

Bonjour,
As tu bien mis ton périphérique comme ceci :


Moi je pilote une prise mais ca doit être le même principe.
Il faut que tu rentres le Decimal le plus bas soit 89105 qui correspondra à l’état OFF binary 0


#4

Merci à tous les deux.
J’ai bien mis Gladys-radio dans Gladys, le modules est bien configuré.
Par contre impossible de téléverser le code sur mon arduino, j’ai un message d’erreur:

Arduino : 1.8.8 (Windows Store 1.8.19.0) (Windows 10), Carte : “Arduino/Genuino Uno”

Les options de compilation ont été modifiées, tout sera recompilé
sketch_mar03a:28:28: error: RemoteReceiver.h: No such file or directory

compilation terminated.

exit status 1
RemoteReceiver.h: No such file or directory.

Je ne comprend pas, il faut que je crée un fichier?

@Spouet, c’est bon j’ai bien mon périphérique maintenant.
Merci.


#5

Lis le README du module Gladys-radio, il y a deux dépendances à installer avant de téléverser le code!


#6

Merci @pierre-gilles, je débute dans la configuration avec un raspberry et un arduino.
J’ai maintenant compris un peu plus de chose avec les bibliothèque sur le arduine IDE.

C’est bon, j’ai le bon code maintenant sur le Arduino et Gladys est bien configuré avec
Gladys-radio
Serial
Radioemitter.

Il me reste à comprendre un peu mieux le paramétrage des périphériques,
pour l’instant j’ai ça, je ne suis pas sûre des réglages, car il ne se passe rien.

Capture%201-3

J’ai branché l’émetteur sur le arduino
data sur la borne 10
vcc sur 5V
gnd sur gnd


#7

As tu ajouté la clé Serial_tty en paramètre ?

Sinon sur ton émetteur as tu bien cablé l’antenne ? Si oui est elle bien droite ?

As tu un autre arduino pour vérifier que la commande est bien envoyée ?


#8

@Spouet, oui j’ai bien Serial_tty dans les paramètres avec la même valeur que toi.
l’antenne est relié et je ne suis même pas à un mètre du récepteur du lève TV.
Non, je n’ai pas un autre Arduino.
j’ai plusieurs interrogations:

  • Est ce que tu penses que mon périphériques est bien paramétré avec les fonctionnalités qui va avec? (1-1 et 2-2).
  • Je me retrouve avec 2 périphériques est ce que c’est normal?
  • J’ai 2 boutons sur ma télécommande, un pour monter et un pour descendre; est ce que ça change quelque chose sur le paramétrage?
  • Est qu’il y a un moyen de voir ce qui se passe lorsque j’actionne le bouton?

#9

En fait je ne vois pas trop à quoi correspond ton 2ième périphérique.
Si j’ai bien compris :
1 fois 89105 ca up
1 autre 89105 fois ca met en pause
1 fois 89106 ca down
1 autre 89106 fois ca met en pause

Du coup ça n’est pas exactement un interrupteur on/off cependant j’étais parti du principe que un simple On/off suffisait.
Donc en gros comme un interrupteur avec off 89105 qui monte et on 89106 qui descente. Pas de pause pris en compte.
Au cas ou essaye d’enlever ton 433mh fonctionnalités je ne sais pas trop ce que ça fait là.
Essaye sans pour voir.

De mon coté je n’utilise pas gladys-radio, n’ayant que des interrupteurs à commander je n’en ai pas besoin et pour le moment et j’avoue ne pas avoir compris l’utilité de ce module par rapport à ceux déjà existant.

De mon coté j’ai :

Installé le module serial d’isokar version 1.1 ([isokar-pacth-1](https://github.com/isokar/gladys-serial/tree/isokar-patch-1)) 
Installé le module RadioEmitter (celui du store)
Redémarré Gladys
Connecté ton arduino
Dans module, et cliquer sur le bouton bleu “configuration” du module serial d’isokar.

Ensuite sur l’arduino j’utilise ce qui est décrit dans le module radioemitter

Avec la librairie RCSwicth.
Tu peux tester aussi l’émission directement dans le code arduino en ajoutant dans le loop() par exemple :

SendRadioCode(89105);
delay(20000);
SendRadioCode(89106);
delay(20000);


#10

BlockquoteSi j’ai bien compris :
1 fois 89105 ça up
1 autre 89105 fois ça met en pause
1 fois 89106 ça down
1 autre 89106 fois ça met en pause

C’est tout à fait ça.

J’ai essayé vite fait ce matin de mettre en place le module d’Isokar via les options avancés dans module de Gladys mais celui-ci reste en téléchargement.

  • Je n’ai pas attendu assez longtemps (plus de 5 mins)
  • Y a t’il un bug avec le module?
  • Faut il que je nettoie quelque chose dans Gladys?

Pour le code à rajouter dans le loop:

  • Je le rajoute à un endroit précis?
  • Avec des balises ou autres ( je ne suis pas un expert en codage).

merci.


#11

Hum a priori ca va vite à installer, as tu désinstallé l’ancien module serial ?

Pour le code à rajouter dans le loop:

Ce que je te propose c’est d’y aller par étape pour être sur de trouver d’où vient le problème.

  1. Tester l’envoi de la commande avec l’arduino et la reception par ton lève TV
    Tu connectes l’emmeteur sur l’arduino 5V/GND et PIN 10 pour le signal.
    Sous l’ide Arduino tu ajoutes la librairie RCSwicth.
    Tu as des exemples de code avec la librairie tu vas utiliser l’exemple SendDemo

Dans le loop() fonction qui est exécutée en boucle tu dois avoir ca :

void loop() {

/* See Example: TypeA_WithDIPSwitches */
mySwitch.switchOn(“11111”, “00010”);
delay(1000);
mySwitch.switchOff(“11111”, “00010”);
delay(1000);

/* Same switch as above, but using decimal code */
mySwitch.send(5393, 24);
delay(1000);
mySwitch.send(5396, 24);
delay(1000);

/* Same switch as above, but using binary code */
mySwitch.send(“000000000001010100010001”);
delay(1000);
mySwitch.send(“000000000001010100010100”);
delay(1000);

/* Same switch as above, but tri-state code */
mySwitch.sendTriState(“00000FFF0F0F”);
delay(1000);
mySwitch.sendTriState(“00000FFF0FF0”);
delay(1000);

delay(20000);
}

Tu peux supprimer toutes les lignes sauf celles-ci et remplacer :

/* Same switch as above, but using decimal code */
mySwitch.send(5393, 24);
delay(1000);
mySwitch.send(5396, 24);
delay(1000);

Par

/* Same switch as above, but using decimal code */
mySwitch.send(89105, 24);
delay(10000);
mySwitch.send(89106, 24);
delay(10000);

Ce morceau de code va faire en boucle : envoyer le code 89105 attendre 10 secondes envoyer 89106 attendre 10s

Comme ça tu seras sûre que tu envoies bien les commandes et qu’elle sont bien reçues.


#12

C’est top ça fonctionne.
Avec le code en boucle, mon lève écran monte et descend sans problème.

Pour le module dont il ne voulais pas se télécharger, je copiais le lien dans ton message et non le lien dans le github.

Maintenant, reste à savoir quel code je dois téléverser dans mon Arduino afin de le faire fonctionner à la demande.

merci à toi @Spouet.


#13

Le code mis en lien dans le module radioemitter code arduino devrait fonctionner.

Une fois uploadé tu pourras tester si l’envoi direct marche avant de passer par un périphérique en faisant un script et en ne mettant que ceci :
gladys.modules.serial.sendCode(’{“function_name”:“SendRadioCode”,“code”:“89105”}%’);

change la valeur 89105 dans le script par 89106 (enfin tu t’en doutais ^^)
Et si ca marche, mettre le device comme je l’avais decrit plus haut devrait marcher.
Par contre pas de gestion du mode “pause”

De rien ! :slight_smile:


#14
  • Alors, j’ai mis le code dans le Arduino en modifiant juste:
    Capture%2011-3
    Est ce que c’est bon? Faut il que je rajoute:
    mySwitch.send(89106,24);

  • Après j’ai paramétré le périphérique:

  • et les fonctionnalités:

  • Pour le scripte, j’ai fais comme ça:
    Capture%2011-2
    Est ce que c’est bon?

  • Car pour le moment, mon lève écran ne bouge plus, même en actionnant le périphérique.


#15

hum nop c’est pas trop ca :slight_smile:
En fait le code arduino tu n’as pas besoin de le toucher et il ne faut pas le toucher. Il va juste servir de passerelle 433MHz entre Gladys et tes actionneurs (ici ton lève TV).
Toi ce que tu as fait c’est lui dire envoie toujours le code pour monter. Donc tu as juste à le retélécharger et l’uploader dans ton arduino.

Normalement vu comment tu as configuré ton périphérique ça devrait marcher.
En gros en utilisant le bouton on/off associé sur ta page “contrôler mes périphériques” tu devrais le piloter.

Le script n’est pas bon tu n’as pas besoin de deux lignes. En fait ces deux lignes sont exécutées à la suite donc c’est comme si tu envoyais lève puis juste après baisse. Si tu veux tester enlève une ligne et quand tu veux faire une action ou l’autre change juste le code 89105 en 89106.


#16

Ah bon, ok.
Je suis un boulet.
Je comprends vite mais il faut m’expliquer longtemps! :wink:
C’est bon j’ai tout remis en ordre.
Par contre il y a deux problèmes:
Avec le script, j’ai un message d’erreur
Capture%20script

Et lorsque je clique sur mon bouton lève écran dans mes périphériques, Gladys plante et j’ai une erreur 502.

J’ai essayé de refaire mon périphérique mais c’est pareil.
Encore le boulet en action (moi)?
Même en déconnectant mon Arduino c’est pareil.


#17

Je viens de trouver une de mes erreurs:
Je n’avais pas fait entrer à la fin de la ligne du script pour valider la ligne. Ça c’est fait!
Je n’est plus de plantage mais ça ne fonctionne quand même pas.

Par contre, est il possible de commander avec 2 boutons (en périphérique) un pour “UP” et un pour “DOWN” avec 2 scripts indépendant?


#18

Normalement avec le bouton on/off il devrait envoyer les codes 89105 et89106.

Les scripts en théorie tu n’en as pas besoin c’était juste pour tester.

Peux tu remettre un screen de tes périphériques ?

Par contre quand tu deconnectes/reconnectes ton arduino il te faut redémarrer gladys.


#19

Alors voici ce que j’ai pour l’instant dans mes périphériques

Pour les fonctionnalités:

D’après ce que j’ai fait, ça ne va pas c’est sûr.
Ce que je ne comprend pas, c’est comment le même bouton peux envoyer deux infos différentes?


#20

En fait seul ton premier bouton devrait suffire.
quand tu le mets à ON il envoie 89105 quand tu le mets à OFF il envoie 89106 (ou vice versa) Gladys le fait tout seul.