IR avec MySensors

Forum dédie aux capteurs et gateway mysensors.org
djam
Messages : 51
Inscription : 09 déc. 2015, 19:33

IR avec MySensors

Message 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
Z600 Ubuntu server --> Domoticz V3.8153 // Raspberry Pi --> Openelec
RFLink --> HomeEasy // Mysensors 2.0 --> Arduino Nano (x5) : T°C/H, Mouvement,Lux, Gaz
LMS --> "Squeezbox" (x5) // MiLight
Google HOME
djam
Messages : 51
Inscription : 09 déc. 2015, 19:33

Re: IR avec MySensors

Message 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 !! :cry: :cry:

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
Z600 Ubuntu server --> Domoticz V3.8153 // Raspberry Pi --> Openelec
RFLink --> HomeEasy // Mysensors 2.0 --> Arduino Nano (x5) : T°C/H, Mouvement,Lux, Gaz
LMS --> "Squeezbox" (x5) // MiLight
Google HOME
scholes2705
Messages : 10
Inscription : 13 nov. 2015, 11:53

Re: IR avec MySensors

Message par scholes2705 »

Bonjour

Personnellement j'ai utilisé le sketch du site mysensors avec ma télé samsung
Tout fonctionne correctement.

quel led utilises tu ?
djam
Messages : 51
Inscription : 09 déc. 2015, 19:33

Re: IR avec MySensors

Message 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...
Z600 Ubuntu server --> Domoticz V3.8153 // Raspberry Pi --> Openelec
RFLink --> HomeEasy // Mysensors 2.0 --> Arduino Nano (x5) : T°C/H, Mouvement,Lux, Gaz
LMS --> "Squeezbox" (x5) // MiLight
Google HOME
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: IR avec MySensors

Message par vil1driver »

salut,

et avec ceci ?

Code : Tout sélectionner

gw.begin(incomingMessage, AUTO);
Dernière modification par vil1driver le 08 mai 2016, 13:26, modifié 2 fois.
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
djam
Messages : 51
Inscription : 09 déc. 2015, 19:33

Re: IR avec MySensors

Message 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
Capture.PNG (1.75 Kio) Consulté 10994 fois
Z600 Ubuntu server --> Domoticz V3.8153 // Raspberry Pi --> Openelec
RFLink --> HomeEasy // Mysensors 2.0 --> Arduino Nano (x5) : T°C/H, Mouvement,Lux, Gaz
LMS --> "Squeezbox" (x5) // MiLight
Google HOME
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: IR avec MySensors

Message 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)
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
djam
Messages : 51
Inscription : 09 déc. 2015, 19:33

Re: IR avec MySensors

Message 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.
Z600 Ubuntu server --> Domoticz V3.8153 // Raspberry Pi --> Openelec
RFLink --> HomeEasy // Mysensors 2.0 --> Arduino Nano (x5) : T°C/H, Mouvement,Lux, Gaz
LMS --> "Squeezbox" (x5) // MiLight
Google HOME
djam
Messages : 51
Inscription : 09 déc. 2015, 19:33

Re: IR avec MySensors

Message par djam »

Bonjour à tous

Je revient encore avec mon histoire d'infrarouge, après plusieurs tentative et bien ....

Ça marche toujours PAS :x
J'ai changé le NRF pour être sur, mais rien n'y fait. Toujours aucune communication avec la GW...
Domoticz indique :
Capture.PNG
Capture.PNG (1.75 Kio) Consulté 10938 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));
  }
}

Z600 Ubuntu server --> Domoticz V3.8153 // Raspberry Pi --> Openelec
RFLink --> HomeEasy // Mysensors 2.0 --> Arduino Nano (x5) : T°C/H, Mouvement,Lux, Gaz
LMS --> "Squeezbox" (x5) // MiLight
Google HOME
Répondre