Giter Club home page Giter Club logo

arduino-heatpumpir's People

Contributors

aattww avatar abmantis avatar bjacobse avatar cmroche avatar ericvb avatar fabiankunkel avatar geonux avatar h31p avatar ikilledmypc avatar jaatuli avatar jeroenterheerdt avatar karllinder avatar lekv avatar matthias882 avatar maxx-ukoo avatar memiks avatar mlesniew avatar mlesniewski-camlin avatar mmanza avatar n-storm avatar nateonas avatar nelgi avatar nick1802 avatar rasyid7 avatar rob-deutsch avatar sateetje avatar tonhuisman avatar tonia avatar vpaeder avatar x-ryl669 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

arduino-heatpumpir's Issues

Frequency accuracy

I was looking for a library to control my AC from an ESP8266 and this one worked on the first try. Thank you for this! (I have a Carrier compatible AC)

However, I noticed that with this library I have to point my IR led directly to the AC, otherwise the signal was ignored. I would have assumed I didn't have enough power in my circuit but I noticed something strange: while trying another library (https://github.com/markszabo/IRremoteESP8266) and sending raw codes, even though I couldn't get my AC to work properly, the AC was beeping even with my IR led pointing somewhere else.

So I did a little research and it seems that library makes a better effort with the accuracy of the signal frequency. The authors improved that some time ago to take into account rounding and the time the instructions affects the carrier periods: crankyoldgit/IRremoteESP8266@178b09d

I tested then your library but using a new implementation of the IRSender that forwards the calls to mark and space to the IRremoteESP8266 implementation:

class IRsendSender : public IRSender {
public:
  IRsendSender(uint8_t pin);
  void setFrequency(int frequency);
  void space(int spaceLength);
  void mark(int markLength);

private:
  IRsend ir;
};

IRsendSender::IRsendSender(uint8_t pin) : IRSender(pin), ir(pin) {
  ir.begin();
}

void IRsendSender::setFrequency(int frequency) {
  ir.enableIROut(frequency);
}

void IRsendSender::space(int spaceLength) {
  ir.space(spaceLength);
}

void IRsendSender::mark(int markLength) {
  ir.mark(markLength);
}

And the result was amazing :-). I was able to control my AC without having to point my IR led directly.

So, I wonder what's the best approach to improve this in your library as well. Should be shamelessly copy the implementation from IRremoteESP8266?. Should we include the wrapper I just created in your library instead?

Cannot compile

Took your example from https://github.com/mysensors/MySensorsArduinoExamples/blob/master/examples/HeatpumpIRController/HeatpumpIRController.ino

But seems cannot compile. I have already redone several clean installations of arduiono IDE 1.06 and 1.8.3 but failed with the same error. Always complains on "is protected" Can be different libraries but error always the same

libraries\HeatpumpIR/CarrierHeatpumpIR.h:63:5: error: 'CarrierHeatpumpIR::CarrierHeatpumpIR()' is protected

Libraries used
Using library HeatpumpIR at version 1.0.7 in folder:
Using library Wire at version 1.0 in folder:
Using library SI7021 in folder:
Using library Timer in folder:
Using library SPI at version 1.0 in folder:
Using library MySensors at version 2.1.1 in folder:

Any luck with Demos D1 mini or other ESP8266?

Has anybody any working samples of a HeatpumpIR interface running on ESP8266?

I've had great success with arduino+ethernet (using the webduino library), but I can't say the same when I try to port my code on Wemos/ESP8266.
I tried to simplify things a lot (just on/off for the AC unit), but I get an exception when I try to send an IR command.

Code:

//This example will set up a static IP - in this case 192.168.2.3

#include <ESP8266WiFi.h>

const char* ssid = "";
const char* password = "";

WiFiServer server(80);
IPAddress ip(192, 168, 2, 3); // where xx is the desired IP Address
IPAddress gateway(192, 168, 2, 1); // set gateway to match your network

// Daiseikai IR
#include <Arduino.h>
#include <ToshibaDaiseikaiHeatpumpIR.h>
// Support for WemosD1
#ifndef ESP8266
IRSenderPWM irSender(9);       // IR led on Arduino digital pin 9, using Arduino PWM
//IRSenderBlaster irSender(3); // IR led on Arduino digital pin 3, using IR Blaster (generates the 38 kHz carrier)
#else
IRSenderBitBang irSender(1);   // IR led on ESP8266 GPIO pin 1
#endif

ToshibaDaiseikaiHeatpumpIR *heatpumpIR;


void setup() {
  Serial.begin(115200);
  delay(10);


  Serial.print(F("Setting static ip to : "));
  Serial.println(ip);

  // Connect to WiFi network
  Serial.println();
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);
  IPAddress subnet(255, 255, 255, 0); // set subnet mask to match your network
  WiFi.config(ip, gateway, subnet);
  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected");

  // Start the server
  server.begin();
  Serial.println("Server started");

  // Print the IP address
  Serial.print("Use this URL : ");
  Serial.print("http://");
  Serial.print(WiFi.localIP());
  Serial.println("/");

}

void loop() {
  // Check if a client has connected
  WiFiClient client = server.available();
  if (!client) {
    return;
  }

  // Wait until the client sends some data
  Serial.println("new client");
  while (!client.available()) {
    delay(1);
  }

  // Read the first line of the request
  String request = client.readStringUntil('\r');
  Serial.println(request);
  client.flush();

  // Match the request

  int value = LOW;
  if (request.indexOf("/LED=ON") != -1) {
    heatpumpIR->send(irSender, POWER_ON, MODE_AUTO, FAN_AUTO, 24, VDIR_AUTO, HDIR_AUTO);
    value = HIGH;
  }
  if (request.indexOf("/LED=OFF") != -1) {
    heatpumpIR->send(irSender, POWER_OFF, MODE_AUTO, FAN_AUTO, 24, VDIR_AUTO, HDIR_AUTO);
    value = LOW;
  }



  // Return the response
  client.println("HTTP/1.1 200 OK");
  client.println("Content-Type: text/html");
  client.println(""); //  do not forget this one
  client.println("<!DOCTYPE HTML>");
  client.println("<html>");

  client.print("Last command: ");

  if (value == HIGH) {
    client.print("On");
  } else {
    client.print("Off");
  }
  client.println("<br><br>");
  client.println("Click <a href=\"/LED=ON\">here</a> to turn ON<br>");
  client.println("Click <a href=\"/LED=OFF\">here</a> to turn OFF<br>");
  client.println("</html>");

  delay(1);
  Serial.println("Client disconnected");
  Serial.println("");

}

Exception:

WiFi connected
Server started
Use this URL : http://192.168.2.3/
new client
GET /LED=OFF HTTP/1.1

Exception (28):
epc1=0x40202170 epc2=0x00000000 epc3=0x00000000 excvaddr=0x00000000 depc=0x00000000

ctx: cont 
sp: 3ffefc40 end: 3ffefe50 offset: 01a0

>>>stack>>>
3ffefde0:  3fffdad0 3ffeedfc 00000000 40202164  
3ffefdf0:  3ffe8df2 3ffeec0c 3ffeedfc 4020200c  
3ffefe00:  3ffe8c50 00000000 000003e8 000077f8  
3ffefe10:  00000000 3fff1104 00000000 00000000  
3ffefe20:  00000000 3fff11dc 0000001f 00000015  
3ffefe30:  3fffdad0 00000000 3ffeee20 40203a28  
3ffefe40:  feefeffe feefeffe 3ffeee30 40100718  
<<<stack<<<

 ets Jan  8 2013,rst cause:2, boot mode:(3,6)

load 0x4010f000, len 1384, room 16 
tail 8
chksum 0x2d
csum 0x2d
v0291a6e3
~ld

Checksum for SHARP Air Conditioner

Hi, i am Hoang

I google sharp AC infrared protocol and found this repository.
this is the data i get from my Sharp remote:

85 90 243 8 211 140 74 0 80 1 32 7 134

85 90 243 8 222 140 74 0 80 1 32 7 139

85 90 243 8 51 140 74 0 80 1 32 7 136

85 90 243 8 62 140 74 0 80 1 32 7 133

85 90 243 8 179 140 74 0 80 1 32 7 128

i used checksum method of Sharp like SharpHeatpumpIR.cpp but can not calculate the checksum byte.

`// Calculate the checksum
for (int i=0; i<12; i++) {
checksum ^= SharpTemplate[i];
}

checksum ^= SharpTemplate[12] & 0x0F;
checksum ^= (checksum >> 4);
checksum &= 0x0F;

SharpTemplate[12] |= (checksum << 4);`

how can i calculate the checksum byte??

(sorry for my bad english)

How to add more models?

I just found this repo, and the idea looks amazing.

I have two Toshiba AC split type Units (RAS-10G2KVP-E RAS-10G2AVP-E and RAS-13G2KVP-E RAS-13G2AVP-E) that I would like to control.
With the simple.ino sketch provided by this library they do not seem to react, so I guess I'll probably need to add support for them.

I have successfully managed to decode other remotes (amplifiers, tvs) with https://github.com/z3t0/Arduino-IRremote library. It reads the codes sent out by the Toshiba remote two (WH-TA01EE, first one here http://www.toshiba-aircon.co.uk/assets/uploads/product_assets/EU_Wireless_Remote_controller_20150120.pdf) but when I try to send them the AC does nothing.

How can I proceed so that I improve this library to support the afforementioned models?
I have an IR receiver and transmitter, I do not have the adafruit shield.
Maybe I could help decode the remote and/or unit.

Thanks

PS: Here is what I get when I press the on/off button (first for on, second for off):

Encoding  : SAMSUNG
Code      : F20D05FA (32 bits)
Timing[179]: 
     +4300, -4350     + 550, -1550     + 600, -1550     + 600, -1550
     + 550, -1600     + 550, - 550     + 550, - 500     + 550, -1600
     + 600, - 450     + 600, - 500     + 550, - 500     + 600, - 450
     + 600, - 500     + 550, -1600     + 550, -1600     + 550, - 500
     + 600, -1550     + 600, - 450     + 600, - 500     + 550, - 500
     + 600, - 500     + 550, - 500     + 600, -1550     + 600, - 450
     + 600, -1550     + 600, -1550     + 600, -1550     + 600, -1550
     + 550, -1550     + 600, -1550     + 600, - 500     + 600, -1550
     + 550, - 500     + 600, - 450     + 600, - 500     + 600, - 450
     + 600, - 500     + 600, - 450     + 600, - 500     + 550, - 500
     + 600, -1550     + 600, - 450     + 600, -1550     + 600, -1550
     + 600, -1550     + 600, - 450     + 600, - 500     + 550, - 500
     + 600, - 500     + 550, - 500     + 600, - 450     + 600, - 500
     + 600, - 450     + 600, - 500     + 550, - 500     + 600, - 500
     + 550, - 500     + 600, - 450     + 600, - 500     + 600, - 450
     + 600, - 500     + 550, - 500     + 600, - 500     + 550, - 500
     + 600, - 500     + 550, - 500     + 600, - 450     + 600, -1550
     + 600, - 500     + 550, - 500     + 600, - 500     + 550, - 500
     + 600, -1550     + 600, - 450     + 600, - 500     + 550, - 500
     + 600, -1550     + 600, -1550     + 550, - 500     + 600, -1550
     + 600, - 450     + 600, - 500     + 600, -1550     + 550, - 500
     + 600, - 500     + 550, -1550     + 600, - 500     + 600, -1550
     + 550, - 500     + 550
unsigned int  rawData[179] = {4300,4350, 550,1550, 600,1550, 600,1550, 550,1600, 550,550, 550,500, 550,1600, 600,450, 600,500, 550,500, 600,450, 600,500, 550,1600, 550,1600, 550,500, 600,1550, 600,450, 600,500, 550,500, 600,500, 550,500, 600,1550, 600,450, 600,1550, 600,1550, 600,1550, 600,1550, 550,1550, 600,1550, 600,500, 600,1550, 550,500, 600,450, 600,500, 600,450, 600,500, 600,450, 600,500, 550,500, 600,1550, 600,450, 600,1550, 600,1550, 600,1550, 600,450, 600,500, 550,500, 600,500, 550,500, 600,450, 600,500, 600,450, 600,500, 550,500, 600,500, 550,500, 600,450, 600,500, 600,450, 600,500, 550,500, 600,500, 550,500, 600,500, 550,500, 600,450, 600,1550, 600,500, 550,500, 600,500, 550,500, 600,1550, 600,450, 600,500, 550,500, 600,1550, 600,1550, 550,500, 600,1550, 600,450, 600,500, 600,1550, 550,500, 600,500, 550,1550, 600,500, 600,1550, 550,500, 550};  // SAMSUNG F20D05FA
unsigned int  data = 0xF20D05FA;

Encoding  : SAMSUNG
Code      : F20D05FA (32 bits)
Timing[179]: 
     +4350, -4300     + 600, -1550     + 550, -1600     + 550, -1600
     + 550, -1500     + 700, - 450     + 600, - 500     + 550, -1500
     + 650, - 500     + 600, - 450     + 600, - 500     + 550, - 500
     + 600, - 500     + 550, -1550     + 600, -1550     + 600, - 500
     + 550, -1600     + 550, - 500     + 600, - 450     + 600, - 500
     + 600, - 450     + 600, - 500     + 550, -1600     + 550, - 500
     + 600, -1550     + 600, -1550     + 550, -1550     + 600, -1550
     + 600, -1550     + 600, -1550     + 600, - 450     + 600, -1550
     + 600, - 500     + 550, - 500     + 600, - 500     + 550, - 500
     + 600, - 450     + 600, - 500     + 600, - 450     + 600, - 500
     + 550, -1600     + 550, - 500     + 600, -1550     + 600, -1550
     + 550, -1600     + 550, - 500     + 600, - 450     + 600, - 500
     + 600, - 450     + 600, - 500     + 550, - 500     + 600, - 500
     + 550, - 500     + 600, - 450     + 600, -1550     + 600, -1550
     + 600, -1550     + 600, - 450     + 600, - 500     + 600, - 450
     + 600, - 500     + 550, - 500     + 600, - 500     + 550, - 500
     + 600, - 450     + 600, - 500     + 600, - 450     + 600, -1550
     + 600, - 450     + 600, - 500     + 600, - 450     + 600, - 500
     + 600, -1550     + 550, - 500     + 600, - 450     + 600, - 500
     + 600, -1550     + 550, -1600     + 550, - 500     + 600, -1550
     + 600, - 450     + 600, - 500     + 550, -1550     + 600, - 500
     + 600, - 450     + 600, -1550     + 600, -1550     + 600, - 500
     + 550, -1550     + 600
unsigned int  rawData[179] = {4350,4300, 600,1550, 550,1600, 550,1600, 550,1500, 700,450, 600,500, 550,1500, 650,500, 600,450, 600,500, 550,500, 600,500, 550,1550, 600,1550, 600,500, 550,1600, 550,500, 600,450, 600,500, 600,450, 600,500, 550,1600, 550,500, 600,1550, 600,1550, 550,1550, 600,1550, 600,1550, 600,1550, 600,450, 600,1550, 600,500, 550,500, 600,500, 550,500, 600,450, 600,500, 600,450, 600,500, 550,1600, 550,500, 600,1550, 600,1550, 550,1600, 550,500, 600,450, 600,500, 600,450, 600,500, 550,500, 600,500, 550,500, 600,450, 600,1550, 600,1550, 600,1550, 600,450, 600,500, 600,450, 600,500, 550,500, 600,500, 550,500, 600,450, 600,500, 600,450, 600,1550, 600,450, 600,500, 600,450, 600,500, 600,1550, 550,500, 600,450, 600,500, 600,1550, 550,1600, 550,500, 600,1550, 600,450, 600,500, 550,1550, 600,500, 600,450, 600,1550, 600,1550, 600,500, 550,1550, 600};  // SAMSUNG F20D05FA
unsigned int  data = 0xF20D05FA;

Powerful and quiet mode seems have no action on the ESPeasy fork

Hello @ToniA
Big thanks for that great project. I was able to "burn" your ESPeasy fork on an ESP01 (ESP8266 with 1M rom), as I've never been able to compile ESPeasy with your project, I had each time error durring the compilation (I'm a beginner).

I owned a TKE model, and get good result with DKE commands but in your ESPeasy firmware the byte 21 didn't change when I try to swicth powerful or quiet mode by a web command like this:

http://192.168.1.xxx/control?cmd=heatpumpir,panasonic_dke,1,2,0,24,2,0,0,1
or
http://192.168.1.xxx/control?cmd=heatpumpir,panasonic_dke,1,2,0,24,2,0,1,0

My test plateform is ESP01 with your fork in front of your Raw-IR-decoder-for-Arduino project.

Is there a bug or something I'm doing wrong ?
Thank you for your help.

I made a simple WebUI

I made a simple WebUI for this library:
https://github.com/bserem/arduino-home-automation

At the moment it doesn't really provide the means to control the temperature from the UI, but
it is a start. I will work more on this, as I'd like to add Lamp controls and an LCD screen.

Maybe you'd like to link to this repo.
I could even make a simpler version of it and add it to this repo if you like the idea.

Vertical direction for CarrierMCA

Hi, while trying to decode the protocol for my AC appliances (branded Olimpia-Splendid) I found out that the protocol used is the same of the CarrierMCA.
I've had some issues with the the decoding because the message seems to be cut at 99 chars while reading from the remote control marked "R07B/BGE" and in the meanwhile I found this site with a partial reverse-engineering of the protocol which seems to be the same used by some midea appliances: http://veillard.com/embedded/midea.html

The only useful decoding result i got reading from the remote is the vertical direction signal which moves the blades of about 20 degrees on each activation, which could be useful for inclusion:

unsigned int direct[99] = {4350,4300, 500,1650, 500,600, 500,1650, 500,1650, 500,600, 500,550, 500,1650, 500,600, 500,600, 500,1650, 500,550, 500,600, 500,1650, 500,1650, 500,600, 500,1650, 500,600, 450,600, 500,600, 500,550, 500,1650, 500,1700, 500,1650, 500,1650, 500,1650, 500,1650, 500,1650, 500,1650, 500,600, 500,550, 500,600, 500,600, 500,1650, 500,1650, 500,1650, 500,600, 450,600, 500,600, 500,550, 500,600, 500,600, 500,550, 500,600, 500,1650, 500,1650, 500,1650, 500,1650, 500,1650, 500}; // SAMSUNG B24D0FF0

Let me know if there's anything else I can do.

Best regards and thanks for your work on this library.

Gree module not working as expected

I have a Delonghi 5kw Aircon using rawdecode I get the following output from the original remote pressing the power button also using timing 4

Number of symbols: 71
Symbols:
Hh10010010011010111101010010100000000100000000000101100100000001011010
Bytes:
49,D6,2B,05,08,80,26,A0
Timings (in us): 
PAUSE SPACE:  0
HEADER MARK:  9240
HEADER SPACE: 4560
BIT MARK:     567
ZERO SPACE:   498
ONE SPACE:    1652
Decoding known protocols...
Looks like a Gree protocol
Checksum matches
POWER ON
MODE COOL
Temperature: 22
FAN: AUTO
SLEEP: OFF
SWING: ON

So I tried the Gree protocol in a test application but the air con does not respond and raw decode shows the following output

Number of symbols: 71
Symbols:
Hh00100000000100000000000000000000010W00000000000001000000000000000000
Bytes:
04,08,00,00,00,20,00,00
Timings (in us): 
PAUSE SPACE:  19480
HEADER MARK:  9340
HEADER SPACE: 4000
BIT MARK:     655
ZERO SPACE:   448
ONE SPACE:    1539
Decoding known protocols...
Looks like a Gree protocol
Checksum matches
POWER OFF
MODE HEAT
Temperature: 24
FAN: AUTO
SLEEP: OFF
SWING: OFF

I'm not really sure where to go from here

NOT an ISSUE! Mitsubishi MSZ-FD25VA List of IR code available?

Hi All,
I have Mitsubishi MSZ-FD25VA.

To capture IR code sent from original remote (code KM09D 0314438) I'm using this windows software https://sourceforge.net/projects/broadlink-manager/ with BROADLINK MINI 3.

Capturing a lot of times, the IR code only for POWER ON, 24°C, COOL, fan auto etc.... and all the settings always the same, I obtain always different codes!!!

So Im'm asking you if exist a library/file.JSON or list of IR code for my Mitsubishi MSZ-FD25VA ??.
(I'm afraid to don't send all the code needed... including PLASMA,CLEAN,AREA,WideVane... that my AC has and are not standard options for an AC!)

What happen if I don't send all the command??
If I don't send the special feature above (PLASMA, AREA etc.) what heppen???

Many thanks in advance!

ESP8266 support

I have used your library before and it worked very well so thank you for that.

I was wondering if you would consider implementing support for the ESP8266 on Arduino?

Thank you for your hard work.

Zenith AC brand

I have a zenith ac unit. HeatpumpIR does not show any compatible devices. So I put the RAW IR decoder for arduino on my uno and connected a ir receiver.
I was able to capture something, however I dont know what exactly to do with it.
This is the serial output under option 4 (Hyundai). Option 5, Samsung, will output similar data. The output shown is when I press the power button 'on' from the remote. How do I create a decoder module?

18:58:18.883 -> Enter choice: 4
18:58:27.753 ->
18:58:27.753 -> Ready to decode IR for choice '4'
18:58:27.786 ->
18:58:27.786 ->
18:58:33.663 ->
18:58:33.663 -> Number of symbols: 31
18:58:33.663 -> Symbols:
18:58:33.698 -> Hh1000100000000000001101000111
18:58:33.732 -> Bytes:
18:58:33.732 -> 00: 1000|1000 | 11 | 00010001
18:58:33.767 -> 01: 0000|0000 | 00 | 00000000
18:58:33.801 -> 02: 0011|0100 | 2C | 00101100
18:58:33.837 -> 03: 0111|11,00,2C
18:58:33.837 -> Timings (in us):
18:58:33.871 -> PAUSE SPACE: 0
18:58:33.871 -> HEADER MARK: 8580
18:58:33.904 -> HEADER SPACE: 4320
18:58:33.938 -> BIT MARK: 462
18:58:33.938 -> ZERO SPACE: 516
18:58:33.973 -> ONE SPACE: 1603
18:58:33.973 -> Decoding known protocols...
18:58:34.008 -> Unknown protocol
18:58:34.042 -> Bytecount: 3

Timer led turned on

I can make my Panasonic CS-HE9JKE model react on requests made by this fine heatpump library. However, it starts blinking the Timer led for a few min. When timer led turns of the heatpump starts swinging vertical and horisontial without much fan or heat production. What happens? Can I overcome this problem somehow or reaction working as designed by the library?

Decode air komeco

I have a komeco air "control model ZH / KZ-01" tested with "Raw-IR-decoder-for-Arduino" but did not decode. Some solution??

Telefunken airconditioner - Remote control GZ01-BEJ0-000

Hi, I'm trying to get the library working with my Air Conditioner.
Exploring the heatpumpir code I notice that the Fuego Heat Pump has a remote control similar to my HVAC

https://github.com/ToniA/arduino-heatpumpir/blob/master/FuegoHeatpumpIR.h#L13

Fuego etc. (Vivax, Classe, NEO, Galanz, Simbio, Beko, Sintech) heatpump control (remote control P/N GZ-1002B-E3)

My HVAC remote control has the code GZ01-BEJ0-000 (on some internet store they sell a remote compatible with both codes so I suppose there is some reasons to be compatible with Fuego. e.g. https://www.amazon.co.uk/Secure-Vending-Sweden-Westinghouse-GZ01-BEJ0-000/dp/B01JGA54LO)

I tried the library on my sonoff device where I installed the ToniA / ESPEasy fork (https://github.com/ToniA/ESPEasy) that include the heatpumpir library but unfortunately the FuegoHeatpumpIR does not work for me.

I started to investigate on my remote and I try to decode the raw data of my IR, I haven't an Arduino board so I used my Sonoff device with a modified tasmota firmware to debug the IR codes.
The Tasmota firmware uses the lib IRremoteESP8266 to receive/send ir commands so I just made a little modification in the Tasmota firmware to print out the rawbuf of IRrecv::decode method.
Simply I used the sprintf to format the rawbuf in a readable way:
sprintf(outputPointer, "0x%04hX,",rawbuf[cnt]);

Here below the output that I logged.
         1      2      3      4      5      6      7      8      9      10     11     12     13     14     15     16     17     18     19     20     21     22     23     24     25     26     27     28     29     30     31     32     33     34     35     36     37     38     39     40     41     42     43     44     45     46     47     48     49     50     51     52     53     54     55     56     57     58     59     60     61     62     63     64     65     66     67     68     69     70     71     72     73    
15:38:34 0x0001,0x0788,0x02BD,0x0116,0x025F,0x0116,0x025F,0x0115,0x00FE,0x0109,0x00FE,0x0109,0x00FF,0x0107,0x0260,0x0115,0x00FE,0x0109,0x00FE,0x0109,0x0260,0x0115,0x025F,0x0115,0x00FE,0x0109,0x025F,0x0116,0x00FD,0x0109,0x00FE,0x0109,0x0260,0x0115,0x025F,0x0117,0x00FD,0x0109,0x025F,0x0116,0x025F,0x0116,0x00FD,0x0109,0x00FE,0x0109,0x025F,0x0115,0x00FE,0x0109,0x00FE,0x0109,0x025F,0x0116,0x00FD,0x0109,0x00F3,0x0114,0x00FE,0x0109,0x00FE,0x0109,0x00FD,0x0109,0x00FE,0x0109,0x00FE,0x0109,0x00FD,0x010B,0x00FC,0x0109,0x00FE,
15:38:39 0x0001,0x077E,0x02C7,0x010B,0x026A,0x010A,0x026B,0x010A,0x00FD,0x010A,0x00FD,0x010A,0x00FD,0x0109,0x026B,0x0116,0x00F1,0x010A,0x00FE,0x010B,0x0269,0x010A,0x026B,0x010A,0x00FD,0x010A,0x026A,0x010B,0x00FC,0x010A,0x00FE,0x0108,0x026B,0x010B,0x026A,0x010A,0x00FC,0x010A,0x026B,0x010A,0x026B,0x0109,0x00FD,0x010A,0x00FD,0x010A,0x026A,0x010A,0x00FD,0x0109,0x00FD,0x010A,0x026B,0x0109,0x00FE,0x010A,0x00FC,0x010A,0x00FC,0x0116,0x00F1,0x0116,0x00F1,0x010A,0x00FD,0x0115,0x00F1,0x010B,0x00FC,0x010A,0x00FD,0x0109,0x00FD,
15:38:46 0x0001,0x0789,0x02BC,0x0115,0x0260,0x0108,0x026C,0x0109,0x00FE,0x0114,0x00F3,0x0117,0x00F0,0x0109,0x026B,0x010C,0x00FD,0x0113,0x00F2,0x0108,0x026C,0x0109,0x026B,0x0115,0x00F3,0x0115,0x0260,0x0114,0x00F2,0x0109,0x00FE,0x0109,0x026B,0x0109,0x026C,0x0114,0x00F3,0x0109,0x026C,0x0108,0x026C,0x0114,0x00F2,0x0115,0x00F2,0x0109,0x026B,0x0115,0x00F2,0x010A,0x00FD,0x0115,0x0260,0x0109,0x00FE,0x0115,0x00F2,0x0109,0x00FE,0x0115,0x00F1,0x0109,0x00FD,0x0115,0x00F2,0x0115,0x00F1,0x0115,0x00F1,0x0115,0x00F2,0x0109,0x00FE,
15:38:48 0x0001,0x078C,0x02BB,0x010A,0x026A,0x010A,0x026A,0x0109,0x010C,0x00FB,0x010B,0x00FC,0x0101,0x0106,0x026D,0x0106,0x010C,0x00FB,0x010C,0x00FB,0x026C,0x0109,0x026C,0x0108,0x010C,0x00FB,0x026C,0x0109,0x010B,0x00FB,0x010B,0x00FB,0x026C,0x0109,0x026B,0x0115,0x0100,0x0106,0x0262,0x0112,0x0263,0x0113,0x0100,0x0107,0x0100,0x0107,0x0261,0x0114,0x0100,0x0106,0x0100,0x0107,0x0260,0x0115,0x00FF,0x0107,0x0100,0x0111,0x00F5,0x0108,0x00FF,0x0107,0x0100,0x0106,0x0100,0x0107,0x0100,0x0107,0x00FF,0x0107,0x0100,0x0107,0x0100,
15:38:50 0x0001,0x078B,0x02BB,0x0116,0x025F,0x010A,0x026C,0x0108,0x00FD,0x0114,0x00F2,0x0115,0x00F2,0x0115,0x025F,0x010A,0x00FD,0x0109,0x00FD,0x010A,0x026A,0x010C,0x0269,0x010A,0x00FD,0x010A,0x026B,0x010A,0x00FD,0x010A,0x00FD,0x010A,0x026B,0x010A,0x026B,0x010A,0x00FD,0x0109,0x026B,0x010B,0x026A,0x010A,0x00FD,0x010A,0x00FD,0x0109,0x026B,0x0109,0x00FE,0x010A,0x00FC,0x0109,0x026C,0x0109,0x00FE,0x0109,0x00FE,0x0109,0x00FE,0x0109,0x00FD,0x0109,0x00FF,0x0108,0x00FE,0x0109,0x00FD,0x0109,0x00FE,0x0109,0x00FE,0x0109,0x00FD,
15:38:52 0x0001,0x078D,0x02B9,0x010A,0x026B,0x0109,0x026B,0x0109,0x010B,0x0107,0x0102,0x0104,0x0100,0x0106,0x0260,0x0116,0x00FF,0x0107,0x00FF,0x0108,0x025F,0x0116,0x025F,0x0120,0x00F3,0x0108,0x0260,0x0116,0x00FE,0x0108,0x00FE,0x0109,0x025F,0x0115,0x0260,0x0116,0x00FE,0x0109,0x025F,0x0116,0x025F,0x0115,0x00FE,0x0109,0x00FE,0x0114,0x0254,0x0115,0x00FE,0x0108,0x00FF,0x0109,0x025E,0x0116,0x00FE,0x0109,0x00FE,0x0108,0x00FF,0x0109,0x00FE,0x010A,0x00FD,0x0108,0x00FE,0x0109,0x00FE,0x0108,0x00FF,0x0108,0x00FF,0x0108,0x00FE,
15:38:54 0x0001,0x077D,0x02C9,0x0115,0x025F,0x0116,0x025F,0x0115,0x00FF,0x0108,0x00FF,0x0107,0x00FF,0x0108,0x025F,0x0115,0x00FF,0x0108,0x00FF,0x0108,0x025F,0x0115,0x025F,0x0116,0x00FE,0x0108,0x025F,0x0115,0x00FE,0x0108,0x00FF,0x0115,0x0252,0x0115,0x025F,0x0116,0x00FE,0x0109,0x025F,0x0115,0x025F,0x0115,0x00FE,0x0108,0x00FF,0x0108,0x025F,0x0117,0x00FD,0x0109,0x00FE,0x0114,0x0253,0x0115,0x00FF,0x0108,0x00FE,0x0108,0x00FE,0x0108,0x00FE,0x0108,0x00FF,0x0108,0x00FF,0x010A,0x00FC,0x0108,0x0100,0x0113,0x00F2,0x0108,0x00FE,
15:38:57 0x0001,0x077D,0x02C9,0x0115,0x0260,0x0115,0x0260,0x0109,0x010B,0x0108,0x00FF,0x0108,0x00FF,0x0108,0x025F,0x0116,0x00FF,0x0108,0x00FF,0x0108,0x025F,0x0115,0x0260,0x0108,0x010B,0x00FE,0x0269,0x0114,0x0100,0x0108,0x00FF,0x0108,0x025F,0x0115,0x025F,0x0116,0x00FF,0x0108,0x0260,0x0121,0x0253,0x0116,0x00FF,0x0107,0x00FF,0x0108,0x0260,0x0115,0x00FF,0x0108,0x00FF,0x0109,0x0260,0x0115,0x00FF,0x0108,0x00FF,0x0108,0x00FF,0x0108,0x00FF,0x0108,0x00FF,0x0108,0x00FE,0x0108,0x00FF,0x0108,0x00FE,0x0108,0x00FF,0x0108,0x00FE,


15:38:34 IRR: RawLen 228, Bits 114, Value 3FFF64D4, Decode -39821610
15:38:39 IRR: RawLen 228, Bits 114, Value 3FFF64D4, Decode -1674830522
15:38:46 IRR: RawLen 228, Bits 114, Value 3FFF64D4, Decode 2085124178
15:38:48 IRR: RawLen 228, Bits 114, Value 3FFF64D4, Decode -541808092
15:38:50 IRR: RawLen 228, Bits 114, Value 3FFF64D4, Decode 1212834680
15:38:52 IRR: RawLen 228, Bits 114, Value 3FFF64D4, Decode 2038024676
15:38:54 IRR: RawLen 228, Bits 114, Value 3FFF64D4, Decode -743135188
15:38:57 IRR: RawLen 228, Bits 114, Value 3FFF64D4, Decode -401392496

I am not an expert of IR protocols, can someone help me understand the codes above?

Able to support Mitsubishi MSY-GE10VA remote control P/N KM09G 0116667?

Hi,

I tried this code, but no reaction from the AC.
I have confirmed that the IR LED is indeed blinking (using smartphone camera)

Below are the RAW codes for my on and off. Any tips on the best way to get started? Thank you.

//aircon  ON Raw: (583) 3436, -1724, 440, -1284, 408, -1316, 444, -424, 440, -424, 440, -428, 436, -1288, 436, -428, 440, -424, 412, -1316, 440, -1280, 436, -436, 440, -1284, 440, -428, 436, -424, 412, -1316, 444, -1280, 436, -428, 440, -1280, 416, -1308, 440, -428, 408, -460, 412, -1316, 436, -424, 412, -456, 440, -1288, 412, -456, 412, -456, 412, -456, 436, -432, 412, -460, 412, -456, 440, -428, 440, -428, 440, -424, 436, -432, 412, -460, 436, -424, 440, -424, 440, -436, 436, -428, 440, -432, 436, -428, 440, -424, 440, -432, 436, -428, 440, -1280, 412, -456, 440, -428, 436, -432, 412, -452, 440, -428, 440, -1284, 440, -1276, 468, -412, 436, -424, 436, -444, 408, -460, 440, -1288, 412, -452, 440, -1284, 440, -436, 412, -460, 440, -424, 412, -456, 436, -428, 468, -1264, 412, -1316, 440, -424, 468, -1264, 412, -1312, 408, -456, 440, -432, 412, -460, 436, -424, 440, -428, 444, -420, 412, -456, 440, -428, 436, -1288, 440, -424, 440, -1280, 440, -1280, 440, -432, 408, -460, 440, -428, 440, -424, 412, -456, 412, -456, 412, -456, 412, -456, 412, -456, 412, -456, 412, -460, 432, -440, 408, -460, 436, -432, 436, -428, 440, -424, 440, -428, 412, -460, 440, -424, 440, -420, 440, -440, 436, -424, 444, -428, 444, -420, 440, -424, 444, -428, 412, -452, 412, -456, 436, -440, 436, -432, 440, -428, 412, -460, 436, -428, 412, -452, 440, -428, 440, -1284, 412, -456, 412, -456, 440, -424, 440, -428, 440, -420, 408, -456, 412, -460, 436, -424, 412, -456, 440, -432, 436, -432, 440, -424, 412, -456, 440, -424, 412, -456, 412, -456, 408, -456, 440, -424, 412, -456, 440, -428, 440, -424, 412, -456, 412, -1312, 440, -1292, 416, -1308, 412, -1316, 440, -17200, 3512, -1744, 444, -1280, 412, -1312, 440, -428, 436, -428, 444, -424, 440, -1280, 440, -424, 444, -424, 408, -1316, 440, -1280, 440, -424, 436, -1288, 440, -424, 408, -464, 408, -1312, 436, -1288, 440, -432, 408, -1316, 440, -1288, 440, -432, 440, -428, 440, -1280, 436, -428, 440, -428, 436, -1284, 440, -424, 440, -424, 440, -428, 440, -428, 440, -424, 440, -424, 440, -424, 476, -404, 440, -424, 412, -464, 436, -424, 440, -424, 412, -456, 412, -456, 436, -428, 436, -432, 440, -424, 436, -428, 436, -428, 436, -432, 440, -1288, 412, -448, 436, -436, 440, -424, 408, -460, 436, -432, 436, -1292, 412, -1316, 412, -452, 408, -456, 424, -444, 436, -432, 440, -1284, 440, -420, 412, -1320, 436, -424, 412, -456, 436, -428, 412, -452, 436, -436, 440, -1284, 440, -1280, 412, -460, 440, -1280, 412, -1316, 412, -456, 436, -428, 440, -428, 440, -428, 440, -424, 440, -428, 412, -460, 436, -428, 412, -1316, 436, -432, 436, -1280, 436, -1284, 444, -424, 408, -460, 412, -484, 412, -428, 436, -428, 444, -420, 444, -420, 412, -456, 412, -456, 412, -456, 412, -456, 412, -464, 412, -456, 440, -428, 440, -424, 440, -424, 440, -432, 408, -460, 440, -424, 440, -420, 444, -436, 440, -424, 440, -428, 440, -424, 440, -428, 440, -428, 412, -456, 408, -460, 436, -436, 440, -428, 440, -428, 412, -460, 440, -424, 412, -452, 416, -452, 440, -1284, 436, -428, 436, -428, 440, -428, 412, -456, 440, -428, 412, -460, 440, -424, 440, -428, 436, -428, 440, -424, 436, -432, 408, -464, 440, -424, 412, -460, 436, -432, 468, -408, 436, -428, 412, -464, 444, -424, 412, -452, 440, -428, 440, -428, 440, -1276, 412, -1316, 440, -1284, 444, -1276, 440, 

//aircon OFF Raw: (583) 3412, -1748, 416, -1312, 436, -1284, 408, -460, 436, -428, 408, -464, 412, -1308, 412, -456, 412, -456, 436, -1284, 412, -1312, 440, -424, 408, -1316, 440, -424, 408, -460, 412, -1312, 412, -1316, 440, -428, 412, -1312, 412, -1312, 412, -456, 444, -424, 440, -1276, 416, -464, 440, -424, 440, -1284, 440, -424, 408, -460, 408, -460, 436, -428, 412, -460, 412, -452, 408, -464, 408, -456, 412, -456, 412, -448, 412, -456, 408, -456, 412, -456, 440, -424, 408, -460, 408, -456, 412, -456, 440, -428, 440, -420, 412, -456, 476, -404, 440, -424, 408, -468, 412, -456, 440, -424, 440, -428, 440, -1280, 440, -1284, 412, -456, 440, -428, 440, -428, 436, -432, 412, -1312, 412, -456, 440, -1284, 412, -456, 412, -452, 412, -456, 412, -456, 444, -420, 440, -1284, 408, -1320, 412, -452, 412, -1312, 440, -1284, 412, -452, 436, -428, 436, -436, 412, -452, 436, -436, 436, -428, 440, -424, 408, -460, 440, -1280, 412, -460, 412, -1316, 412, -1316, 408, -456, 412, -452, 412, -456, 408, -460, 408, -456, 440, -428, 412, -456, 440, -424, 412, -456, 412, -460, 408, -460, 472, -404, 436, -428, 408, -468, 412, -460, 436, -428, 440, -424, 440, -424, 412, -456, 412, -456, 408, -456, 412, -452, 412, -460, 420, -444, 412, -452, 412, -456, 432, -444, 412, -460, 440, -424, 408, -456, 444, -424, 412, -452, 436, -432, 440, -424, 412, -460, 412, -1312, 412, -456, 412, -456, 444, -420, 436, -432, 412, -460, 440, -424, 412, -456, 408, -460, 472, -408, 412, -452, 412, -456, 444, -420, 412, -452, 436, -432, 412, -456, 444, -424, 408, -456, 412, -456, 436, -428, 408, -460, 408, -460, 412, -456, 432, -1292, 412, -456, 468, -1264, 412, -1312, 412, -17096, 3536, -1724, 472, -1264, 412, -1312, 412, -456, 408, -456, 408, -460, 412, -1312, 412, -452, 412, -456, 436, -1284, 412, -1312, 408, -456, 412, -1308, 440, -432, 412, -452, 444, -1280, 412, -1316, 440, -428, 436, -1284, 416, -1312, 412, -456, 412, -456, 412, -1316, 440, -428, 440, -428, 408, -1312, 412, -456, 440, -424, 440, -428, 440, -424, 440, -424, 408, -468, 440, -424, 436, -432, 440, -424, 440, -428, 440, -428, 412, -456, 408, -456, 436, -440, 440, -428, 436, -432, 412, -460, 440, -424, 408, -460, 436, -428, 412, -452, 436, -432, 436, -428, 440, -424, 408, -456, 412, -456, 436, -1284, 412, -1312, 412, -456, 440, -424, 412, -456, 440, -424, 436, -1288, 412, -456, 412, -1312, 408, -460, 408, -456, 440, -424, 440, -428, 412, -460, 412, -1312, 440, -1284, 412, -456, 436, -1284, 412, -1312, 440, -428, 408, -460, 440, -420, 440, -428, 436, -432, 412, -452, 412, -456, 408, -456, 408, -1316, 436, -424, 412, -1316, 436, -1284, 440, -420, 440, -428, 436, -424, 412, -452, 412, -460, 412, -456, 440, -424, 440, -424, 440, -428, 440, -428, 440, -424, 440, -424, 412, -456, 440, -428, 412, -452, 412, -464, 436, -424, 412, -456, 440, -428, 436, -424, 440, -428, 440, -424, 440, -424, 412, -456, 408, -456, 440, -424, 440, -432, 412, -460, 440, -424, 412, -452, 412, -456, 464, -416, 436, -436, 412, -452, 440, -428, 408, -1316, 440, -432, 440, -428, 436, -428, 440, -428, 408, -460, 440, -424, 436, -432, 440, -424, 440, -424, 440, -428, 440, -420, 468, -408, 436, -436, 408, -456, 436, -436, 412, -452, 440, -428, 436, -432, 436, -428, 436, -428, 436, -428, 416, -452, 412, -1312, 412, -456, 436, -1288, 440, -1284, 412, 

Gree Generic/YAA remotes checksum

Gree Generic/Yaa checksum is not calculated correctly. Here is the corrected checksum code.

GreeTemplate[7] = (((
(GreeTemplate[0] & 0x0F) +
(GreeTemplate[1] & 0x0F) +
(GreeTemplate[2] & 0x0F) +
(GreeTemplate[3] & 0x0F) +
((GreeTemplate[5] & 0xF0) >> 4) +
((GreeTemplate[6] & 0xF0) >> 4) +
((GreeTemplate[7] & 0xF0) >> 4) +
0x0A) & 0x0F) << 4) | (GreeTemplate[7] & 0x0F);

Senville AURA HF/Z Remote

Great work! Id started to add support for this heat pump but well, my solution is using interrupts and would work better on ESP8266. It is soo different too and the CRC still isn't right so frankly it isnt ready for this project. If your looking for this unit too check https://github.com/kpishere/GetRawIRData

Support for ESP32

Is it possible to get support for ESP32 modules? Attempts to compile the examples fail with multiple errors (below). Using this library on an ESP32 allows for other libraries and modules to be integrated on the same MCU (i.e. support for more IO and resources).

Even though the following line was used IRSenderBitBang irSender(9);, there are still clear references to PWM and Arduino-specific (AVR MCU) registers.

Arduino: 1.8.5 (Linux), Board: "WEMOS LOLIN32, 80MHz, Default, 921600"

./Arduino/libraries/arduino-heatpumpir-master/IRSenderPWM.cpp: In member function 'virtual void IRSenderPWM::setFrequency(int)':
./Arduino/libraries/arduino-heatpumpir-master/IRSenderPWM.cpp:60:7: error: 'TCCR2A' was not declared in this scope
TCCR2A = _BV(WGM20);
^
In file included from ./Arduino/libraries/arduino-heatpumpir-master/IRSenderPWM.cpp:1:0:
./Arduino/libraries/arduino-heatpumpir-master/IRSenderPWM.cpp:60:20: error: 'WGM20' was not declared in this scope
TCCR2A = _BV(WGM20);
^
./Arduino/hardware/espressif/esp32/cores/esp32/Arduino.h:106:25: note: in definition of macro '_BV'
#define _BV(b) (1UL << (b))
^
./Arduino/libraries/arduino-heatpumpir-master/IRSenderPWM.cpp:61:7: error: 'TCCR2B' was not declared in this scope
TCCR2B = _BV(WGM22) | _BV(CS20);
^
In file included from ./Arduino/libraries/arduino-heatpumpir-master/IRSenderPWM.cpp:1:0:
./Arduino/libraries/arduino-heatpumpir-master/IRSenderPWM.cpp:61:20: error: 'WGM22' was not declared in this scope
TCCR2B = _BV(WGM22) | _BV(CS20);
^
./Arduino/hardware/espressif/esp32/cores/esp32/Arduino.h:106:25: note: in definition of macro '_BV'
#define _BV(b) (1UL << (b))
^
./Arduino/libraries/arduino-heatpumpir-master/IRSenderPWM.cpp:61:33: error: 'CS20' was not declared in this scope
TCCR2B = _BV(WGM22) | _BV(CS20);
^
./Arduino/hardware/espressif/esp32/cores/esp32/Arduino.h:106:25: note: in definition of macro '_BV'
#define _BV(b) (1UL << (b))
^
./Arduino/libraries/arduino-heatpumpir-master/IRSenderPWM.cpp:62:7: error: 'OCR2A' was not declared in this scope
OCR2A = pwmval8;
^
./Arduino/libraries/arduino-heatpumpir-master/IRSenderPWM.cpp:63:7: error: 'OCR2B' was not declared in this scope
OCR2B = pwmval8 / 3;
^
./Arduino/libraries/arduino-heatpumpir-master/IRSenderPWM.cpp:68:7: error: 'TCCR1A' was not declared in this scope
TCCR1A = _BV(WGM11);
^
In file included from ./Arduino/libraries/arduino-heatpumpir-master/IRSenderPWM.cpp:1:0:
./Arduino/libraries/arduino-heatpumpir-master/IRSenderPWM.cpp:68:20: error: 'WGM11' was not declared in this scope
TCCR1A = _BV(WGM11);
^
./Arduino/hardware/espressif/esp32/cores/esp32/Arduino.h:106:25: note: in definition of macro '_BV'
#define _BV(b) (1UL << (b))
^
./Arduino/libraries/arduino-heatpumpir-master/IRSenderPWM.cpp:69:7: error: 'TCCR1B' was not declared in this scope
TCCR1B = _BV(WGM13) | _BV(CS10);
^
In file included from ./Arduino/libraries/arduino-heatpumpir-master/IRSenderPWM.cpp:1:0:
./Arduino/libraries/arduino-heatpumpir-master/IRSenderPWM.cpp:69:20: error: 'WGM13' was not declared in this scope
TCCR1B = _BV(WGM13) | _BV(CS10);
^
./Arduino/hardware/espressif/esp32/cores/esp32/Arduino.h:106:25: note: in definition of macro '_BV'
#define _BV(b) (1UL << (b))
^
./Arduino/libraries/arduino-heatpumpir-master/IRSenderPWM.cpp:69:33: error: 'CS10' was not declared in this scope
TCCR1B = _BV(WGM13) | _BV(CS10);
^
./Arduino/hardware/espressif/esp32/cores/esp32/Arduino.h:106:25: note: in definition of macro '_BV'
#define _BV(b) (1UL << (b))
^
./Arduino/libraries/arduino-heatpumpir-master/IRSenderPWM.cpp:70:7: error: 'ICR1' was not declared in this scope
ICR1 = pwmval16;
^
./Arduino/libraries/arduino-heatpumpir-master/IRSenderPWM.cpp:71:7: error: 'OCR1A' was not declared in this scope
OCR1A = pwmval16 / 3;
^
./Arduino/libraries/arduino-heatpumpir-master/IRSenderPWM.cpp:72:7: error: 'OCR1B' was not declared in this scope
OCR1B = pwmval16 / 3;
^
./Arduino/libraries/arduino-heatpumpir-master/IRSenderPWM.cpp: In member function 'virtual void IRSenderPWM::mark(int)':
./Arduino/libraries/arduino-heatpumpir-master/IRSenderPWM.cpp:110:8: error: 'TCCR2A' was not declared in this scope
(TCCR2A |= _BV(COM2B1)); // Enable pin 3 PWM output
^
In file included from ./Arduino/libraries/arduino-heatpumpir-master/IRSenderPWM.cpp:1:0:
./Arduino/libraries/arduino-heatpumpir-master/IRSenderPWM.cpp:110:22: error: 'COM2B1' was not declared in this scope
(TCCR2A |= _BV(COM2B1)); // Enable pin 3 PWM output
^
./Arduino/hardware/espressif/esp32/cores/esp32/Arduino.h:106:25: note: in definition of macro '_BV'
#define _BV(b) (1UL << (b))
^
./Arduino/libraries/arduino-heatpumpir-master/IRSenderPWM.cpp:113:8: error: 'TCCR1A' was not declared in this scope
(TCCR1A |= _BV(COM1A1)); // Enable pin 9 PWM output
^
In file included from ./Arduino/libraries/arduino-heatpumpir-master/IRSenderPWM.cpp:1:0:
./Arduino/libraries/arduino-heatpumpir-master/IRSenderPWM.cpp:113:22: error: 'COM1A1' was not declared in this scope
(TCCR1A |= _BV(COM1A1)); // Enable pin 9 PWM output
^
./Arduino/hardware/espressif/esp32/cores/esp32/Arduino.h:106:25: note: in definition of macro '_BV'
#define _BV(b) (1UL << (b))
^
./Arduino/libraries/arduino-heatpumpir-master/IRSenderPWM.cpp:116:22: error: 'COM1B1' was not declared in this scope
(TCCR1A |= _BV(COM1B1)); // Enable pin 10 PWM output
^
./Arduino/hardware/espressif/esp32/cores/esp32/Arduino.h:106:25: note: in definition of macro '_BV'
#define _BV(b) (1UL << (b))
^
./Arduino/libraries/arduino-heatpumpir-master/IRSenderPWM.cpp:119:22: error: 'COM2A1' was not declared in this scope
(TCCR2A |= _BV(COM2A1)); // Enable pin 11 PWM output
^
./Arduino/hardware/espressif/esp32/cores/esp32/Arduino.h:106:25: note: in definition of macro '_BV'
#define _BV(b) (1UL << (b))
^
./Arduino/libraries/arduino-heatpumpir-master/IRSenderPWM.cpp: In member function 'virtual void IRSenderPWM::space(int)':
./Arduino/libraries/arduino-heatpumpir-master/IRSenderPWM.cpp:156:8: error: 'TCCR2A' was not declared in this scope
(TCCR2A &= ~(_BV(COM2B1))); // Disable pin 3 PWM output
^
In file included from ./Arduino/libraries/arduino-heatpumpir-master/IRSenderPWM.cpp:1:0:
./Arduino/libraries/arduino-heatpumpir-master/IRSenderPWM.cpp:156:24: error: 'COM2B1' was not declared in this scope
(TCCR2A &= ~(_BV(COM2B1))); // Disable pin 3 PWM output
^
./Arduino/hardware/espressif/esp32/cores/esp32/Arduino.h:106:25: note: in definition of macro '_BV'
#define _BV(b) (1UL << (b))
^
./Arduino/libraries/arduino-heatpumpir-master/IRSenderPWM.cpp:159:8: error: 'TCCR1A' was not declared in this scope
(TCCR1A &= ~(_BV(COM1A1))); // Disable pin 9 PWM output
^
In file included from ./Arduino/libraries/arduino-heatpumpir-master/IRSenderPWM.cpp:1:0:
./Arduino/libraries/arduino-heatpumpir-master/IRSenderPWM.cpp:159:24: error: 'COM1A1' was not declared in this scope
(TCCR1A &= ~(_BV(COM1A1))); // Disable pin 9 PWM output
^
./Arduino/hardware/espressif/esp32/cores/esp32/Arduino.h:106:25: note: in definition of macro '_BV'
#define _BV(b) (1UL << (b))
^
./Arduino/libraries/arduino-heatpumpir-master/IRSenderPWM.cpp:162:24: error: 'COM1B1' was not declared in this scope
(TCCR1A &= ~(_BV(COM1B1))); // Disable pin 10 PWM output
^
./Arduino/hardware/espressif/esp32/cores/esp32/Arduino.h:106:25: note: in definition of macro '_BV'
#define _BV(b) (1UL << (b))
^
./Arduino/libraries/arduino-heatpumpir-master/IRSenderPWM.cpp:165:24: error: 'COM2A1' was not declared in this scope
(TCCR2A &= ~(_BV(COM2A1))); // Disable pin 11 PWM output
^
./Arduino/hardware/espressif/esp32/cores/esp32/Arduino.h:106:25: note: in definition of macro '_BV'
#define _BV(b) (1UL << (b))
^
exit status 1
Error compiling for board WEMOS LOLIN32.

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

Request of infos

I am very impressed with your work.
I done an application using php + mysql to manage 100+ IR protocols in IRP format (and using Arduino for IN/OUT), for remote simulation etc.
see https://github.com/msillano/remoteDBdiscovery.
I wold like to extend the collection: do you have some IRP for heatpumps ?
Or you can send me your protocol infos, so I can try to create the IRP formulas?

I have only 'Fujitsu_Aircon IRP', it looks so:
'{38.4k,413}<1,-1|1,-3>(8,-4,20:8,99:8,0:8,16:8,16:8,254:8,9:8,48:8,H:8,J:8, K:8, L:8, M:8,N:8,32:8,Z:8,1,-104.3m)+ {H=16A + wOn, J=16C + B, K=16E:4 + D:4, L=tOff:8, M=tOff:3:8+fOff8+16tOn:4, N=tOn:7:4+128fOn,Z=256-(H+J+K+L+M+N+80)%256, A=H:4:4,wOn=H:1,B=J:4,C=J:4:4,D=K:4,E=K:4:4,tOff=L+256M:3, tOn=M:4:4+16N:7,fOn=N:1:7,fOff=M:1:3}'

Best regards
Marco Sillano (marco.sillano(at)gmail.com)

New IR controller

I have modified the code to be compatible with the control of the Daikin brand model ARC480A11.
This is the result
The problem is with the header, right now I got this:

Number of symbols: 156
Symbols:
WHh10001000010110111110010000000000000000001000110000010100000000000000101000000000000000000000000000000000000000000000000010100011000000100000000000000011
Bytes:
11,DA,27,00,00,31,28,00,50,00,00,00,00,00,00,C5,40,00,C0
Timings (in us): 
PAUSE SPACE:  25720
HEADER MARK:  3600
HEADER SPACE: 1360
BIT MARK:     320
ZERO SPACE:   356
ONE SPACE:    1363
Decoding known protocols...
Looks like a Daikin protocol
POWER OFF
MODE COOL
Temperature: 20
FAN: 3
FLAGS: 
Checksum match

But the original shows this:

Number of symbols: 161
Symbols:
00000WHh10001000010110111110010000000000000000001000000001101100000000000000010100000000000000000000000000000000000000000000000010100011010000000000000000001101
Bytes:
11,DA,27,00,00,01,36,00,A0,00,00,00,00,00,00,C5,02,00,B0
Timings (in us): 
PAUSE SPACE:  25660
HEADER MARK:  3580
HEADER SPACE: 1700
BIT MARK:     425
ZERO SPACE:   286
ONE SPACE:    1275
Decoding known protocols...
Looks like a Daikin protocol
POWER ON
MODE AUTO
Temperature: 27
FAN: AUTO
FLAGS: COMFORT 
Checksum match

I need help to get the binary header: 00000WHh

Timing constant for Fujitsu AR-RY3

First of all thank you for the work you have done, I would like to know if you knew the time constants for the remote control AR-RY3 for a fujitsu air conditioning?
I have tested with the Fujitsu Nocria (AWYZ14) (remote control P / N AR-PZ2) constants this does not seem to work.
Best regards

typo in "FujitsuHeatpumpIR.cpp"

Thanks for a sharing such a nice library. Shouldn’t there be “==” on the line 79 in a FujitsuHeatpumpIR.cpp instead of “!=” ?

Some more Fujitsu Nocria codes (all in hex):
“ECO mode on” (limits compressor RPM to 70% max, could be useful for a low temperature “hold heat”):
14,63,00,10,10,FE,09,30,00,04,01,00,00,00,00,CB (byte 14 0x00, normal mode 0x20)
Hi-Power:
14,63,00,10,10,39,C6
Filter cleaning:
14,63,00,10,10,3F,C0
Super quiet:
14,63,00,10,10,2D,D2
Test run:
14,63,00,10,10,03,FC

Kalle

Lennox Mini-Split Heatpump Support

I have a Lennox heat pump (Model number MS8-HI-18P1A). It doesn't look like this library supports Lennox, but I would be potentially interested in helping to add support for it (at least the one I have).

My remote for the heat pump is model YT1FF (photo below). I think this remote is used by some other heat pumps as well. Do you know if any other modules in this library use the same protocols as this remote? If so, I assume that it would work with my heat pump.

img_0445

If not, what is the best place to get started in figuring out how to build in support? I'm a web developer and have some C/C++ experience, but haven't done any Arduino coding yet. Although I've been wanting to get into it, and this seems like a great project to start with! 🙂

Nibe

Hi Toni
Is there any progress about Nibe? (checksum).
How can I help? I´ve got 3 Nibe Aria installed.
I will soon have the raw decoder up and running.

Error (maybe!) in Raw-IR-Decoder

Hi,
I'm trying to decode my heatpump BEKO but I'can't compile your decoder sketch ( https://github.com/ToniA/Raw-IR-decoder-for-Arduino/blob/master/rawirdecode.ino ) because return me an error : 'undentfined reference to decodeMitsubishiElectric(unsigned char*, int)' .
I report only first line of error, every reference to bool declared at the top of the sketch give the ame error.
Please if I'm wrong, tell me the correct way to compile this sketch.

I solved changing this part:
if ( ! (decodeMitsubishiElectric(bytes, byteCount) || decodeFujitsu(bytes, byteCount) || decodeMitsubishiHeavy(bytes, byteCount) || decodeSharp(bytes, byteCount) || decodeDaikin(bytes, byteCount) || decodeCarrier(bytes, byteCount) || decodeCarrier(bytes, byteCount) || decodePanasonicCKP(bytes, byteCount) || decodePanasonicCS(bytes, byteCount) || decodeHyundai(bytes, currentpulse) || decodeGree(bytes, currentpulse) || decodeGree_YAC(bytes, currentpulse) || decodeFuego(bytes, byteCount) || decodeToshiba(bytes, byteCount) || decodeNibe(bytes, symbols, currentpulse) || decodeAirwell(symbols, currentpulse) || decodeHitachi(bytes, byteCount) || decodeSamsung(bytes, byteCount) || decodeBallu(bytes, byteCount) || decodeAUX(bytes, byteCount) || decodeZHLT01remote(bytes, byteCount) ))

with this:
if ( ! decodeMitsubishiElectric || decodeFujitsu || decodeMitsubishiHeavy || decodeSharp || decodeDaikin || decodeCarrier || decodeCarrier || decodePanasonicCKP || decodePanasonicCS || decodeHyundai || decodeGree || decodeGree_YAC || decodeFuego || decodeToshiba || decodeNibe || decodeAirwell || decodeHitachi || decodeSamsung || decodeBallu || decodeAUX || decodeZHLT01remote )

now I don't know if is correct for the sketch, I'm not a 'professional' programmer, but now compile and I can get result when I try to decode IR.
Seems that BEKO cmd can be decoded with selction '4' , now I try to send command and verify.

Panasoic DKE (A75C2616) e-ion mode

Hi, the remote A75C2616 i have has an extra button to switch on/off the e-ion mode of my HVAC. By looking into the raw dump of the protocol, it seems the byte 22 is responsible for controlling it, ie the value of 0x00 means e-ion OFF while the value of 0x01 means e-ion ON.
Would appreciate a kind soul implementing it into the already excellent library!
Cheers

INCLUDING VIVAX AC - BASED ON ELECTROLUX96 PROTOCOL

Hi Guys ,
I have reversed engineered the protocol for VIVAX AC which is based on ELECTROLUX 96 bits AC PROTOCOL and had it reproduced in Raspberry Pi running Codesys PLC Software.
Is it possible to integrate it in your Library ? I'm not good enough to write the code for it in C+.
If yes , let me know how and where to send the data that I have .

Codes for Panasonic CS-KE35TKE

I do't have remote available, how can i find codes for Panasonic inverter CS-KE35TKE ?

Could it be that current Panasonic codes in this lib is appropriate for CS-KE35TKE?

Compile error with ESP8266 (ESP-01)

I'm trying to make the DaiseikaiTest.ino sketch on a ESP-01 flavor of ESP8266 with no luck. I made it work on an Arduino Nano earlier, but after switching the board to "Generic ESP8266 Module" it won't compile anymore.

I first installed HeatpumpIR via the Library Manager, which was v1.0.8. Later I moved to the version in GitHub. I had the error below in both cases:

Here's the error. Why might this be happening?

In file included from C:\Users\gazihan\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.0-beta2/tools/sdk/libc/xtensa-lx106-elf/include/sys/stdio.h:6:0,

                 from C:\Users\gazihan\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.0-beta2/tools/sdk/libc/xtensa-lx106-elf/include/stdio.h:63,

                 from C:\Users\gazihan\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.0-beta2\cores\esp8266/Arduino.h:32,

                 from C:\Users\gazihan\Documents\Arduino\libraries\HeatpumpIR/HeatpumpIR.h:10,

                 from C:\Users\gazihan\Documents\Arduino\libraries\HeatpumpIR/AIRWAYHeatpumpIR.h:8,

                 from C:\Users\gazihan\Documents\Arduino\libraries\HeatpumpIR\AIRWAYHeatpumpIR.cpp:1:

C:\Users\gazihan\Documents\Arduino\libraries\HeatpumpIR\AIRWAYHeatpumpIR.cpp: In constructor 'AIRWAYHeatpumpIR::AIRWAYHeatpumpIR()':

C:\Users\gazihan\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.0-beta2/tools/sdk/libc/xtensa-lx106-elf/include/sys/pgmspace.h:25:130: error: section of 'model' conflicts with previous declaration

   #define PROGMEM __attribute__((section( "\".irom.text." __FILE__ "." __STRINGIZE(__LINE__) "."  __STRINGIZE(__COUNTER__) "\"")))

                                                                                                                                  ^

C:\Users\gazihan\Documents\Arduino\libraries\HeatpumpIR\AIRWAYHeatpumpIR.cpp:6:37: note: in expansion of macro 'PROGMEM'

   static const char PROGMEM model[] PROGMEM = "AIRWAY";

                                     ^

C:\Users\gazihan\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.0-beta2/tools/sdk/libc/xtensa-lx106-elf/include/sys/pgmspace.h:25:130: error: section of 'info' conflicts with previous declaration

   #define PROGMEM __attribute__((section( "\".irom.text." __FILE__ "." __STRINGIZE(__LINE__) "."  __STRINGIZE(__COUNTER__) "\"")))

                                                                                                                                  ^

C:\Users\gazihan\Documents\Arduino\libraries\HeatpumpIR\AIRWAYHeatpumpIR.cpp:7:37: note: in expansion of macro 'PROGMEM'

   static const char PROGMEM info[]  PROGMEM = "{\"mdl\":\"AIRWAY\",\"dn\":\"AIRWAY\",\"mT\":18,\"xT\":31,\"fs\":3}";

                                     ^

Using library HeatpumpIR at version 1.0.8 in folder: C:\Users\gazihan\Documents\Arduino\libraries\HeatpumpIR 
Using library IRremoteESP8266 at version 2.5.3 in folder: C:\Users\gazihan\Documents\Arduino\libraries\IRremoteESP8266 
exit status 1
Error compiling for board Generic ESP8266 Module.

ESPeasy crashes

There is no issue tab for the espeasy project, so I try here:

The compile fails, as there are two classes with protected constructor used:
GreeHeatpumpIR.h
and
SamsungHeatpumpIR.h

Moved constructor to public: fixed this.

The P0115 plugin crashes looking thru the heatpumpIR array after MitsubishiMSYHeatpumpIR has been tested for the name inside the do...while loop. I use a hyundai AC.

Workaround for me was to only keep PanasonicCKPHeatpumpIR and HyundaiHeatpumpIR in the heatpumpIR array:

HeatpumpIR heatpumpIR[] = {new PanasonicCKPHeatpumpIR(),
/
new PanasonicDKEHeatpumpIR(), new PanasonicJKEHeatpumpIR(),
new PanasonicNKEHeatpumpIR(), new CarrierNQVHeatpumpIR(), new CarrierMCAHeatpumpIR(),
new MideaHeatpumpIR(), new FujitsuHeatpumpIR(),
new MitsubishiFDHeatpumpIR(), new MitsubishiFEHeatpumpIR(), new MitsubishiMSYHeatpumpIR(),
new SamsungHeatpumpIR(), new SharpHeatpumpIR(), new DaikinHeatpumpIR(),
new MitsubishiHeavyZJHeatpumpIR(), new MitsubishiHeavyZMHeatpumpIR(),
/ new HyundaiHeatpumpIR(),
/
new HisenseHeatpumpIR(), new GreeHeatpumpIR(),
new FuegoHeatpumpIR(), new ToshibaHeatpumpIR(),
*/ NULL};

I had to change the platformio.ini to be able to upload a working flash image.

With Arduino 1.8.9 I had to go back to ESP8266 2.4.0-rc2 and use nodemcu v1.0 to be able to compile successfully.

It took me three days to get all this outdated stuff working.

Anyway, the code made my days. I am using the HyundaiHeatpumpIR with a HomeLiving SAC 12010QC, equal to Alaska SAC12010QC. I found the compatibilty using the AirConditionerTest.

Well done with some pitfalls for newbies

PanasonicAltDKEHeatpumpIR compilation issue (pull request #68)

Pull request #68 gives compilation errors:

/home/nstorm/sketchbook/libraries/HeatpumpIR/PanasonicAltDKEHeatpumpIR.cpp: In constructor 'PanasonicAltDKEHeatpumpIR::PanasonicAltDKEHeatpumpIR()':
/home/nstorm/sketchbook/libraries/HeatpumpIR/PanasonicAltDKEHeatpumpIR.cpp:12:3: error: '_panasonicModel' was not declared in this scope
   _panasonicModel = PANASONIC_DKE;
   ^
/home/nstorm/sketchbook/libraries/HeatpumpIR/PanasonicAltDKEHeatpumpIR.cpp: In member function 'void PanasonicAltDKEHeatpumpIR::sendPanasonicLong(IRSender&, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t)':
/home/nstorm/sketchbook/libraries/HeatpumpIR/PanasonicAltDKEHeatpumpIR.cpp:164:10: error: '_panasonicModel' was not declared in this scope
   switch(_panasonicModel)
          ^
/home/nstorm/sketchbook/libraries/HeatpumpIR/PanasonicAltDKEHeatpumpIR.cpp:171:10: error: 'PANASONIC_JKE' was not declared in this scope
     case PANASONIC_JKE:
          ^
/home/nstorm/sketchbook/libraries/HeatpumpIR/PanasonicAltDKEHeatpumpIR.cpp:173:10: error: 'PANASONIC_NKE' was not declared in this scope
     case PANASONIC_NKE:
          ^
/home/nstorm/sketchbook/libraries/HeatpumpIR/PanasonicAltDKEHeatpumpIR.cpp:176:10: error: 'PANASONIC_LKE' was not declared in this scope
     case PANASONIC_LKE:
          ^
exit status 1

Didn't checked this further.

How do add new model to FujitsuIR Protocol

Hi ToniA,
Thanks for the effort you have gone to writing this library. I am trying to use your code to emulate a Fujitsu AR-RY3 split system remote and feel like I am close to a solution but my lack of experience with arduino is causing me some grief. I have spent a few hours trying to debug and can't quiet work it out.

Using another arduino sketch similar to ladyada's work I have been able to pull the signal from my remote and analyse it in excel and was able to see a 16 word string of data. I was also able to modify your code so that it was sending default values at 24 C. The problem I am having is that no matter what I change I made on line 90 and 93 of FujitsuHeatpumpIR.cpp I could not change the result model address in the 16 word string. I have analysed the output from the arduino and still get 0x14 0x63.... rather than 0x26 0x6C...

The two lines bellow are the data string I collected. The first is from the actual remote, the second is from the arduino.
image

Thanks in advance,
Joel

Gree ac

Is there any way to control Gree AC. I tried Hyundai (Remote Control P/N Y512F2) on arduino Uno. But it doesn't work.

AUXHeatPumpIR (YKR-P/002E) Power On/Off Command issue

Hi,
I was searching for IR protocol for my A/C with remote controller no. YKR-P/002E and got your library. I tried to verify your code using analysIR. Except the following minor bugs everything works just fine:

  1. Byte[9] which is used for Power On/Off is 0x30 for Power On, but your library says it's 0x20.
  2. Byte[11] is set as 0x08 in your code but my decoder says it's 0x05.

Though I haven't tested the code directly on my A/C as my A/C Unit is in maintenance stage. Can anyone confirm if it's ToniA's library or my decoder which is wrong?

kind regards,

Daikin ARC480A6 - FTXN18NMVJU Decode

Hello,

First I would like to let you know that my FTXN18NMVJU, which uses the ARC480A6 remote, works great with the DaikinHeatpumpIR library. All the modes, temp, and fan are working fine for me. Thanks for putting this together!

I would like to get vswing working. My model does not have an hswing. I only have a single swing button on my remote to start or stop swing.

I am new to this IR decoding stuff so let me know if more information is needed.

I have built your decoder as described, but do not know how to decode the data and was hoping to get some help. My remote is currently set to Temp: 76F, Fan: Auto, Mode: Cool.

When I hit the swing button to start swing I get the following information:

Number of symbols: 161
Symbols:
00000WHh10001000010110111110010000000000000000001000110010001100000000001111010100000000000000000000000000000000000000000000000010100011000000000000000000010111
Bytes:
11,DA,27,00,00,31,31,00,AF,00,00,00,00,00,00,C5,00,00,E8
Timings (in us): 
PAUSE SPACE:  25900
HEADER MARK:  3500
HEADER SPACE: 1780
BIT MARK:     360
ZERO SPACE:   408
ONE SPACE:    1310
Decoding known protocols...
Unknown protocol

And when I hit the button again to turn it off I get the following:

Number of symbols: 161
Symbols:
00000WHh10001000010110111110010000000000000000001000110010001100000000000000010100000000000000000000000000000000000000000000000010100011000000000000000010011011
Bytes:
11,DA,27,00,00,31,31,00,A0,00,00,00,00,00,00,C5,00,00,D9
Timings (in us): 
PAUSE SPACE:  25820
HEADER MARK:  3580
HEADER SPACE: 1700
BIT MARK:     440
ZERO SPACE:   340
ONE SPACE:    1241
Decoding known protocols...
Unknown protocol

Hope this helps! If there is anything else you need (or if I am totally off base) just let me know.

Dan

PanasonicHeatpumpIR.cpp

Hi,

I'm Paul, after some research I found this repository. I have had some success with it today for a Panasonic HeatPump.

I did have to make one modification to the code to enable power off functionality.

I added this into PanasonicHeatpumpIR.cpp

case POWER_OFF:
operatingMode |= PANASONIC_AIRCON2_MODE_OFF;
break;

Into the code at this location.

switch (powerModeCmd)
{
case POWER_ON:
operatingMode |= PANASONIC_AIRCON2_MODE_ON;
break;
case POWER_OFF:
operatingMode |= PANASONIC_AIRCON2_MODE_OFF;
break;
}

I've not made any repositories of my own and I am very new to the programming environment, my main interest is to integrate this library into tasmota

https://github.com/arendst/Sonoff-Tasmota

This is becoming a very versatile mqtt firmware for the sonoff device D1 mini and many more.

Any advice on who and how to ask nicely would be appreciated.

Thanks
Paul

Mitsubishi Heavy SRKxxZJ-S heatpump control (remote control P/N RKX502A001C)

Hi.
Trying to get it working, but device received one command of 10 sended.
After a while, i am uderstand: we need send TWO identical packet to get it works stable.
I mean:
heatpumpIR->send(irSender,....);
delay(...);
heatpumpIR->send(irSender,....);
I tested delays 200millis between 20, all works fine and stable.
WBR, Andrew.
PS. Can you explain how can i send special codes to this device like HEAVY_ZJ_HIPOWER or MITSUBISHI_HEAVY_ZJ_ECONO for example?

samsung windfree AC

Hello,

is plugin working with this type of AC?
I tryed to add plugin to espeasy but no success..

Is *.bin file with plugin available?

Mitsubishi MSZ DM-25

How to check that Mitsubishi MSZ DM-25 is supported . Given that you report Mitsubishi MSZ FD-25 to be supported may be there is a chance but ... how to know ?
thanks

Additional Fujitsu codes

Not an issue as such, but some additional data points using a Fujitsu AR-RAH2E remote to fill in the blanks. Data from your Raw IR Decode project.

Test mode button:
Number of symbols: 59
Symbols:
Hh00101000110001100000000000001000000010001100000000111111
Bytes:
14,63,00,10,10,03,FC
Timings (in us):
PAUSE SPACE: 0
HEADER MARK: 3440
HEADER SPACE: 1560
BIT MARK: 420
ZERO SPACE: 314
ONE SPACE: 1154

Economy Mode button:
Number of symbols: 59
Symbols:
Hh00101000110001100000000000001000000010001001000001101111
Bytes:
14,63,00,10,10,09,F6
Timings (in us):
PAUSE SPACE: 0
HEADER MARK: 3420
HEADER SPACE: 1560
BIT MARK: 420
ZERO SPACE: 317
ONE SPACE: 1160

10degrees C Heat button: (Heat, 10degrees, no fan information on remote, changes operating mode byte (9) to 0B)
Number of symbols: 131
Symbols:
Hh00101000110001100000000000001000000010000111111110010000000011000000010011010000001000000000000000000000000000000000010010000001
Bytes:
14,63,00,10,10,FE,09,30,20,0B,04,00,00,00,20,81
Timings (in us):
PAUSE SPACE: 0
HEADER MARK: 3440
HEADER SPACE: 1560
BIT MARK: 420
ZERO SPACE: 300
ONE SPACE: 1143

Auto swing off:
14,63,00,10,10,FE,09,30,20,20,04,E0,0A,00,20,82

Vertical auto swing:
14,63,00,10,10,FE,09,30,20,20,14,DF,0A,00,20,73

Horizontal auto swing:
14,63,00,10,10,FE,09,30,20,20,24,DE,0A,00,20,64

Both Auto
14,63,00,10,10,FE,09,30,20,20,34,DD,0A,00,20,55

Can also provide information regarding the timer if necessary, though given the nature of the library, that's probably not required. At a glance though, i think the remote sends the timer on/off as offsets from the current time, which is then absolute time independant, ie no actual clock information is ever sent from remote to main unit. The code i get when setting the On Timer to 2:30 AM was different from one 5-minute period to the next. (Initially EA in byte 11, and then E4 5 minutes later)

FuegoHeatpumpIR compatibility with Einhell SKA-5000 C+H Heatpump / Komeco

Just want to add the information that i succesfully got a Einhell AC/Heatpump working by using the Fuego settings.

Only thing to change was Line 65 in FuegoHeatpumpIR.cpp:

if ( temperatureCmd > 17 && temperatureCmd < 32)

to

if ( temperatureCmd > 15 && temperatureCmd < 32)

as the Einhells temp-range is 16°C-31°C.

Maybe this is usefull for someone looking for this AC or the identical unit sold by Komeco.

Carrier checksum is not calculated correctly in some cases

Certain temperature/fan speed combinations do not produce the same checksum as the real Carrier remote. And of course the heatpump ignores all commands with invalid checksums. Generally fan speeds AUTO, FAN3 and FAN4 seem to work.

IVT (SHARP) ON command seems wrong, was 0x31 and I must use 0x11

Hi, I have an IVT heatpump, and use Sharp codes, however I can't switch ON my heatpump with existing code. But if I edit SharpHeatpumpIR.h and change 0x31 to 0x11 as below codesnippet then it is working:
//define SHARP_AIRCON1_MODE_ON 0x31 // Power ON
#define SHARP_AIRCON1_MODE_ON 0x11 // Power ON IVT

I have attached below power off and power on from my IVT remote control CRMC-A673JBEZ, that shows to use 0x11 for switch ON command
I'm not sure if this is for IVT only? or also Sharp, and then switch on command was a type when originally created by ToniA? does anyon have a real SHARP heatpump and can confirm it's a typo, or shall there be cloning of SHARP and then create a separate IVT?

Select model to decode (this affects the IR signal timings detection):

  • '1' for Panasonic DKE>, Mitsubishi Electric, Fujitsu etc. codes
  • '2' for Panasonic CKP, Midea etc. codes
  • '3' for Mitsubishi Heavy etc. codes
  • '4' for Hyyndai etc. codes
  • '9' for entering the bit sequence on the serial monitor (instead of the IR receiver)

Enter choice: 1

Ready to decode IR for choice '1'

Number of symbols: 107
Symbols:
Hh01010101010110101111001100001000011000001000010010001100010010000001000000000001000000000000111110001110
Bytes:
AA,5A,CF,10,06,21,31,12,08,80,00,F0,71
Timings (in us):
PAUSE SPACE: 0
HEADER MARK: 3660
HEADER SPACE: 1780
BIT MARK: 388
ZERO SPACE: 419
ONE SPACE: 1315
Decoding known protocols...
Looks like a Sharp protocol
POWER OFF
MODE HEAT
Temperature: 23
FAN: 1
Checksum '0x7' matches

Number of symbols: 107
Symbols:
Hh01010101010110101111001100001000011000001000100010001100010010000001000000000001000000000000111110000010
Bytes:
AA,5A,CF,10,06,11,31,12,08,80,00,F0,41
Timings (in us):
PAUSE SPACE: 0
HEADER MARK: 3660
HEADER SPACE: 1780
BIT MARK: 394
ZERO SPACE: 415
ONE SPACE: 1314
Decoding known protocols...
Looks like a Sharp protocol
MODE HEAT
Temperature: 23
FAN: 1
Checksum '0x4' matches

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.