Bonjour,
J'ai en projet de télécommander un appareil de chauffage de marque Délonghi, lui même fonctionnant avec une télécommande standard à tous les appareils Délonghi.
En premier lieu j'ai décodé les messages de la télécommande avec les sketchs de décodage issu du site.
Le sketch utilisé est celui-çi :
#include <IRremote.h>
const int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;
IRsend irsend;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn();
irrecv.blink13(true);
}
void loop(){
if (irrecv.decode(&results)){
if(results.decode_type == NEC){
Serial.print("NEC: ");
} else if (results.decode_type == SONY){
Serial.print("Sonny: ");
} else if (results.decode_type == RC5){
Serial.print("RC5: ");
} else if (results.decode_type == RC6){
Serial.print("RC6: ");
} else if (results.decode_type == UNKNOWN){
Serial.print("UNKNOWN: ");
}
Serial.println(results.value,HEX);
Le résultat obtenu est celui-çi:
NEC: F042C
NEC: 12186BE
NEC: 87F01C0
NEC: 97F01C0
NEC: A7F01C0
NEC: B7F01C0
NEC: C7F01C0
NEC: D7FFF80
NEC: E7FFF80
NEC: 2000200
Pour comprendre ce code:
Avec comme informations :
F042C étant l'heure F=15h - 04=04mn- 2C=44s => 15h 04' 44"
12186BE consigne de température 121 = mode Hors gel - 862B = 19.5°C en mode confort
Consigne du programme (ici P1)
87F01C0 8 = Lundi 0h=>6h Mode éco - 6h=>9h Mode confort - 9h=>16 Monde éco - 16h=>23h Mode confort - 23=>0h Mode éco
97F01C0 9 = Mardi 0h=>6h Mode éco - 6h=>9h Mode confort - 9h=>16 Monde éco - 16h=>23h Mode confort - 23=>0h Mode éco
A7F01C0 A = Mercredi 0h=>6h Mode éco - 6h=>9h Mode confort - 9h=>16 Monde éco - 16h=>23h Mode confort - 23=>0h Mode éco
B7F01C0 B = Jeudi 0h=>6h Mode éco - 6h=>9h Mode confort - 9h=>16 Monde éco - 16h=>23h Mode confort - 23=>0h Mode éco
C7F01C0 C = Vendredi 0h=>6h Mode éco - 6h=>9h Mode confort - 9h=>16 Monde éco - 16h=>23h Mode confort - 23=>0h Mode éco
D7FFF80 D = Samedi 0h=>7h Mode éco - 7h=>23h Mode confort - 23=>0h Mode éco
E7FFF80 E = Dimanche 0h=>7h Mode éco - 7h=>23h Mode confort - 23=>0h Mode éco
du Lundi au Vendredi
7F01C0 en binaire = 0111 1111 0000 0001 1100 0000
0h étant le bit le plus à droite valeur 0 mode éco
1h étant le deuxième bit en partant de la droite valeur 0 mode éco
etc
etc
7h étant 7ème bit en partant de la droite valeur 1 mode confort
etc
etc
du Samedi au Dimanche
7FFF80 en binaire = 0111 1111 1111 1111 1000 0000
Selon le même principe la valeur 1 étant le mode confort de l'heure 7 à l'heure 22 le rest mode éco
La deuxième trame étant la consigne température, pour une programmation de 19.5°C en mode confort la trame est :10586BE
10586BE étant 19.5°C en mode confort (valeurs s'étalant de 1048CBE = 7°C à 10680BE = 32°C)
2000200 la dernière trame "non encore élucidée"
Le protocole reconnu est NEC
Le problème que je rencontre est celui-çi:
Avec ce sketch j'envoie cette série de trames mais l'appareil de chauffage ne le réagit pas.
/*
- IRremote: IRsendDemo - demonstrates sending IR codes with IRsend
- An IR LED must be connected to Arduino PWM pin 3.
- Version 0.1 July, 2009
- Copyright 2009 Ken Shirriff
-
http://arcfn.com
*/
#include <IRremote.h>
const int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;
IRsend irsend;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn();
irrecv.blink13(true);
}
void loop() {
if (Serial.read() != -1) {
for (int i = 0; i < 1; i++) {
irsend.sendNEC(0xF042C, 32); // info date heure
delay(80);
irsend.sendNEC(0x12186BE, 32); // codage temp Hors Gel
delay(80);
irsend.sendNEC(0x87F01C0, 32); // programme du lundi
delay(80);
irsend.sendNEC(0x97F01C0, 32); //programme du mardi
delay(80);
irsend.sendNEC(0xA7F01C0, 32); // programme du mercredi
delay(80);
irsend.sendNEC(0xB7F01C0, 32); // programme du jeudi
delay(80);
irsend.sendNEC(0xC7F01C0, 32); //programme du vendredi
delay(80);
irsend.sendNEC(0xD7FFF80, 32); // programme du samedi
delay(80);
irsend.sendNEC(0xE7FFF80, 32); // programme du dimanche
delay(80);
irsend.sendNEC(0x2000200, 32); // fin de trame
delay(80);
}
}
}
Le delay(80) a été mis pour avoir les mêmes délais entre les trames mesurées.
le sketch fonctionne bien si j'envoie la trame NEC pour allumage de ma TV : ma TV s'allume et s’éteint avec le code NEC " irsend.sendNEC(0x20DF30CF, 32); // code de la télécommande " donc pas de problème matériel....
Quelqu'un a-t-il réussi à télécommander un appareil de marque Délonghi avec un envoi de trame correspondant à leur télécommande standard ?
Je vous remercie de toute aide.