Italian EMMETI AC (protocol GREE)

Everything related to protocols and IR codes
ruirem
Posts: 9
Joined: Tue Nov 08, 2016 9:57 am
Location: Italy

Italian EMMETI AC (protocol GREE)

Post by ruirem »

Hi all,
I'm trying to decode my AC.
It's an EMMETi, AnalysisIR recognized it has GREE 37004 Hz.
I sent these code but it doesn't work. Furthermore, I'm not able to discover the checksum.

I attach the signal recorded as MSB original and LSB8 cleaned.

Could you help me to decode correctly these signals.

Thank you very much in advance.
You do not have the required permissions to view the files attached to this post.
User avatar
AnalysIR
Site Admin
Posts: 794
Joined: Sat Aug 31, 2013 3:51 pm
Location: Dublin, Ireland
Contact:

Re: Italian EMMETI AC (protocol GREE)

Post by AnalysIR »

Sorry -the Gree checksum has been very hard to figure out & we have not be able to determine it yet. None of our users have reported it solved yet.

I will cover other issues in the next post.

related discussion
viewtopic.php?f=5&t=534&p=9677

Other Notes:
- use LSB8 as the format for reverse engineering
- for signals beginning with 0x8 it seems that the checksum bit is twice the value of the second nibble (regardless of the other nibbles???)
- e.g. 80100084A00220080 .... 2*8 = 0x10..lower nibble is 0
- e.g. 8C100084A002200E0 .... 2*E = 0x1C..lower nibble is C

Unfortunately, the signals not beginning with 8, are less clear but the above may provide some hints or clues. It could be that there are 2 different checksums used (???)
User avatar
AnalysIR
Site Admin
Posts: 794
Joined: Sat Aug 31, 2013 3:51 pm
Location: Dublin, Ireland
Contact:

Re: Italian EMMETI AC (protocol GREE)

Post by AnalysIR »

Sending a gree signal, cleaned with AnalysIR should work OK - many users have reported success.

Search for Gree in this forum.

To help, you will need to post details about:

- your platform
- IR LED driver circuit
- sketch
- photo of your wiring
- etc
User avatar
AnalysIR
Site Admin
Posts: 794
Joined: Sat Aug 31, 2013 3:51 pm
Location: Dublin, Ireland
Contact:

Re: Italian EMMETI AC (protocol GREE)

Post by AnalysIR »

The signals starting with 0x8 are all on-hot-fan-auto.

so why not create a set of signals with just
on-cold-fan-auto ...with the temperature going from 16->30 degC

and another set with on-cold-fan3 ......with the temperature going from 16->30 degC

That might provide some further clues, provided only one parameter changes between each signal recorded (i.e. temperature)
ruirem
Posts: 9
Joined: Tue Nov 08, 2016 9:57 am
Location: Italy

Re: Italian EMMETI AC (protocol GREE)

Post by ruirem »

Thank you very much for your hints.
AnalysIR is the best software in this compound!
I will create two sets (hot and cold) with different temperature ;)
And I will try again to sent codes closer (I read that could be a distance issue between AC and sender).

I will let you know.
ruirem
Posts: 9
Joined: Tue Nov 08, 2016 9:57 am
Location: Italy

Re: Italian EMMETI AC (protocol GREE)

Post by ruirem »

I found this C code used to decode a Gree signal https://github.com/ToniA/Raw-IR-decoder-for-Arduino) .
It contains the checksum calculation.... I hope could help us to find, finally, the right algorithm.

Code: Select all

// If this looks like a Gree code...
 +  if ( pulseCount == 71 ) {
 +    Serial.println(F("Looks like a Gree protocol"));
 +
 +    // Check if the checksum matches
 +    uint8_t checksum = (
 +      (bytes[0] & 0x0F) +
 +      (bytes[1] & 0x0F) +
 +      (bytes[2] & 0x0F) +
 +      (bytes[3] & 0x0F) +
 +      (bytes[5] & 0xF0) >> 4 +
 +      (bytes[6] & 0xF0) >> 4 +
 +      (bytes[7] & 0xF0) >> 4 +
 +      0x0A) & 0xF0;
 +
 +    if (checksum == bytes[8]) {
 +      Serial.println(F("Checksum matches"));
 +    } else {
 +      Serial.println(F("Checksum does not match"));
 +    }
 +
 +    // Power mode
 +    switch (bytes[0] & 0x08) {
 +      case 0x00:
 +        Serial.println(F("POWER OFF"));
 +        break;
 +      case 0x08:
 +        Serial.println(F("POWER ON"));
 +        break;
 +    }
 +
 +    // Operating mode
 +    switch (bytes[0] & 0x07) {
 +      case 0x00:
 +        Serial.println(F("MODE AUTO"));
 +        break;
 +      case 0x04:
 +        Serial.println(F("MODE HEAT"));
 +        break;
 +      case 0x01:
 +        Serial.println(F("MODE COOL"));
 +        break;
 +      case 0x02:
 +        Serial.println(F("MODE DRY"));
 +        break;
 +      case 0x03:
 +        Serial.println(F("MODE FAN"));
 +        break;
 +      }
 +
 +    // Temperature
 +    Serial.print(F("Temperature: "));
 +    Serial.println((bytes[1] & 0x0F) + 16);
 +
 +    // Fan speed
 +    switch (bytes[0] & 0x30) {
 +      case 0x00:
 +        Serial.println(F("FAN: AUTO"));
 +        break;
 +      case 0x10:
 +        Serial.println(F("FAN: 1"));
 +        break;
 +      case 0x20:
 +        Serial.println(F("FAN: 2"));
 +        break;
 +      case 0x30:
 +        Serial.println(F("FAN: 3"));
 +        break;
 +    }
 +
 +    // Sleep mode
 +    switch (bytes[0] & 0x80) {
 +      case 0x80:
 +        Serial.println(F("SLEEP: ON"));
 +        break;
 +      case 0x00:
 +        Serial.println(F("SLEEP: OFF"));
 +        break;
 +    }
 +
 +    // Air direction
 +    switch (bytes[0] & 0x40) {
 +      case 0x40:
 +        Serial.println(F("SWING: ON"));
 +        break;
 +      case 0x00:
 +        Serial.println(F("SWING: OFF"));
 +        break;
 +    }
 +
Last edited by ruirem on Thu Nov 10, 2016 10:39 am, edited 1 time in total.
User avatar
AnalysIR
Site Admin
Posts: 794
Joined: Sat Aug 31, 2013 3:51 pm
Location: Dublin, Ireland
Contact:

Re: Italian EMMETI AC (protocol GREE)

Post by AnalysIR »

super...I will look into this later...it would explain why it is so difficult to guess...tnx
ruirem
Posts: 9
Joined: Tue Nov 08, 2016 9:57 am
Location: Italy

Re: Italian EMMETI AC (protocol GREE)

Post by ruirem »

I confirm you that this algorithm recognizes correctly ALL my codes, saying me that checksum calculated from itself is ok... We are closer to the true...
ruirem
Posts: 9
Joined: Tue Nov 08, 2016 9:57 am
Location: Italy

Re: Italian EMMETI AC (protocol GREE)

Post by ruirem »

A thing I noticed....

Reading with the library I posted on heat, 22°, fan auto I receive:


Code: 0C,06,40,50,00,20,00,E0
Timings (in us):
PAUSE SPACE: 20460
HEADER MARK: 9300
HEADER SPACE: 4520
BIT MARK: 660
ZERO SPACE: 470
ONE SPACE: 1605

reading with AnalysIR:
Code: 18300105200440007 (MSB) or 8C100084A002200E0(LSB8)


Hexs are different...how is it possible...? :o
Post Reply