Page 1 sur 1
IR avec MySensors
Publié : 04 avr. 2016, 18:54
par djam
Salut à tous,
Je suis entrain de finir ma box Domotique, tout est bien pris en charge par Domoticz.
Grâce à ce forum et à tout vos tuto o TOP !
Afin de vraiment terminer mon projet il me reste un protocole a gérer afin de vraiment "tout" contrôler

: Infra Rouge
J'ai récupéré le code On/Off de ma télécommande TV
Ensuite via un des Sketch de la librairie : IRLib, j'ai pu éteindre et allumer la TV via le Moniteur Série.
Par contre avec l'exemple IR Sensor, Impossible.
Le nœud est bien reconnue, Domoticz incrémente bien un bouton On/Off mais aucun effet.
Je voudrai bien avoir vos retours concernant la gestion de l'Ir.
Merci.
MySensors : 1.5.4
Domoticz : V3 4834 / Raspberry Pi
TV :LG
Re: IR avec MySensors
Publié : 08 mai 2016, 07:44
par djam
Bonjour a tous,
Je suis toujours entrain de chercher pour le contrôle de l'Infrarouge via Mysensors.
J'ai pu trouver des infos sur le site de Domoticz en Anglais mais aucun code ne fonctionne. Celui fournit avec les exemples aussi !!!
J'ai déjà recommencer plusieurs fois, sans aucun résultat , je suis a la limite du j’abandonne !!
Je teste une dernière fois pour avoir vos retours :
Voici mon code :
Code : Tout sélectionner
#include <MySensor.h>
#include <SPI.h>
#include <IRLib.h>
int RECV_PIN = 8;
#define CHILD1 1
MySensor gw;
MyMessage switchMsg(CHILD1, V_LIGHT);
// IR LED must be connexted to Arduino PWM pin 3
IRsend irsend;
#define switchOnIRcode 0x20DF10EF // On
#define switchOffIRcode 0x20DF10EF // Off
void setup()
{
gw.begin();
// Send the sketch version information to the gateway and Controller
gw.sendSketchInfo("IR Switch", "1.0");
// Register a sensors to gw. Use binary light for test purposes.
gw.present(CHILD1, S_LIGHT);
// Sync switch state to gateway state upon reset / power-up
gw.request(CHILD1, V_LIGHT);
}
void loop()
{
gw.process();
}
void incomingMessage(const MyMessage &message) {
// We only expect one type of message from controller. But we better check anyway.
if (message.type==V_LIGHT) {
int incomingRelayStatus = message.getInt();
// Emit the IR ON/OFF
irsend.send(NEC, (incomingRelayStatus == 1 ? switchOnIRcode : switchOffIRcode), 32);
// Sync gateway of the light switch state
gw.send(switchMsg.set(incomingRelayStatus));
}
}
Une fois lancé, DomoticZ reconnait bien le nœud et incrémente un bouton ON/OFF.
Mais quand on clique sur le bouton en question :
Erreur d'envoi de la commande , vérifier votre dispositif.
Ca rend FOU !!!!
Si une personne veut bien me donner un coup de main ou coup de pied !!
Merci d'avance
Re: IR avec MySensors
Publié : 08 mai 2016, 08:51
par scholes2705
Bonjour
Personnellement j'ai utilisé le sketch du site mysensors avec ma télé samsung
Tout fonctionne correctement.
quel led utilises tu ?
Re: IR avec MySensors
Publié : 08 mai 2016, 09:46
par djam
Merci de ton retour,
J'utilise une LED IR 5mm standard.
Le code IR fonctionne très bien en mode "test", le code est envoyé via le moniteur série.
Mais des que je veux l'incorporer à mysensors ça coince...
Re: IR avec MySensors
Publié : 08 mai 2016, 12:12
par vil1driver
Re: IR avec MySensors
Publié : 08 mai 2016, 13:01
par djam
Salut vil1driver,
Merci de passer par la
J'ai modifier le code en fonction de tes conseils.
Toujours pareil ... Le bouton en question et le nœud sont bien reconnue pourtant...
Mais dés que j'actionne ce fameux bouton :

- Capture.PNG (1.75 Kio) Consulté 10998 fois
Re: IR avec MySensors
Publié : 08 mai 2016, 13:18
par vil1driver
a mon avis cela n'est pas dépendant du sketch.
car avec le tien je n'ai pas cette erreur..
problème de liaison radio peut être ?
dans matériels, sur ton mysensors, clic sur réglages,
développes le node IR et passe la 'confirmation' à 'false' pour ce node.
puis lorsque tu fais tes essais, ouvre le moniteur série sur ton node pour voir ce qu'il se passe lorsqu'il démarre ou reçoit des messages..
ton sketch fonctionne chez moi (après la modif annoncée biensure)
Re: IR avec MySensors
Publié : 08 mai 2016, 13:46
par djam
Merci de ton retour cela confirme que le code fonctionne bien ...
Le nœud est dans confirmation "false"
Dans le moniteur série j'ai ce code seulement au démarrage du Nano :
Code : Tout sélectionner
send: 200-200-0-0 s=255,c=3,t=15,pt=2,l=2,sg=0,st=ok:0
send: 200-200-0-0 s=255,c=0,t=18,pt=0,l=5,sg=0,st=ok:1.5.4
send: 200-200-0-0 s=255,c=3,t=6,pt=1,l=1,sg=0,st=ok:0
repeater started, id=200, parent=0, distance=0
send: 200-200-0-0 s=255,c=3,t=11,pt=0,l=9,sg=0,st=ok:IR Switch
send: 200-200-0-0 s=255,c=3,t=12,pt=0,l=3,sg=0,st=ok:1.0
send: 200-200-0-0 s=1,c=0,t=3,pt=0,l=0,sg=0,st=ok:
send: 200-200-0-0 s=1,c=2,t=2,pt=0,l=0,sg=0,st=ok:
Ensuite plus rien ...
J'ai changé le NRF pour être sur, et vérifié le câblage .
IDEM
J'ai toujours le message d'erreur.
Re: IR avec MySensors
Publié : 09 mai 2016, 18:43
par djam
Bonjour à tous
Je revient encore avec mon histoire d'infrarouge, après plusieurs tentative et bien ....
Ça marche toujours PAS
J'ai changé le NRF pour être sur, mais rien n'y fait. Toujours aucune communication avec la GW...
Domoticz indique :

- Capture.PNG (1.75 Kio) Consulté 10942 fois
Je vais encore essayer ... mais je vais commencer à essayer de trouver un autre moyen afin de contrôler l'IR.
Je laisse le code qui est pourtant fonctionnel (Encore merci vil1driver) si cela peut intéresser d'autres personnes
Seulement remplacer le code par celui de votre télécommande.
Code : Tout sélectionner
#include <MySensor.h>
#include <SPI.h>
#include <IRLib.h>
int RECV_PIN = 8;
#define CHILD1 1
MySensor gw;
MyMessage switchMsg(CHILD1, V_LIGHT);
// IR LED must be connexted to Arduino PWM pin 3
IRsend irsend;
#define switchOnIRcode 0x20DF10EF // On --> (Valeur NEC à changer selon votre appareil)
#define switchOffIRcode 0x20DF10EF // Off --> (Valeur NEC à changer selon votre appareil)
void setup()
{
gw.begin(incomingMessage);
// Send the sketch version information to the gateway and Controller
gw.sendSketchInfo("IR Switch", "1.0");
// Register a sensors to gw. Use binary light for test purposes.
gw.present(CHILD1, S_LIGHT);
// Sync switch state to gateway state upon reset / power-up
gw.request(CHILD1, V_LIGHT);
}
void loop()
{
gw.process();
}
void incomingMessage(const MyMessage &message) {
//We only expect one type of message from controller. But we better check anyway.
if (message.type==V_LIGHT) {
//Incoming on/off command sent from controller ("1" or "0")
int incomingRelayStatus = message.getString()[0] == '1';
//Emit the IR ON/OFF
irsend.send(NEC, (incomingRelayStatus == 1 ? switchOnIRcode : switchOffIRcode), 32);
// Sync gateway of the light switch state
gw.send(switchMsg.set(incomingRelayStatus));
}
}