IR Transmitter ?
Moderators: grovkillen, Stuntteam, TD-er
Re: IR Transmitter ?
Try using 1250 for pulse and 400 for space.
It seems there's only 3 values there. The other one ~7500.
That should reduce the b32 length.
It seems there's only 3 values there. The other one ~7500.
That should reduce the b32 length.
Re: IR Transmitter ?
Sorry.... 400 and 400 for both. I've replied too fast.
Re: IR Transmitter ?
Thank you GusPS for your fast response, I have try the IRrecvDump for Arduino. And with one IR tx on power button pressed receive this message:GusPS wrote: ↑29 May 2017, 01:30Hi angelusb,angelosub wrote: ↑28 May 2017, 21:32 I have don't understand extrapolate a RAW data from IR transmitter.
I have try to receive a IR code with a P016 plugin "Infrared Receiv - TSOP4838". In house I have TSOP4136 ad I have used this, the difference is the IR frequencies. TSOP4838 38kHz TSOP4136 36kHz. I hope isn't a problem.
When I push the on/off button of the IR transmitter the ESPEasy receive 2 codes HEX:
800ff and ffffffff
I don't understand how convert this HEX values to a RAW for sending the code with a ESPEasy.
http://<ip address>/control?cmd=IRSEND,RAW,code,kHZ,Pulse Len, Blank Len
kHZ = 38 It's correct?
thanks for help.
You need to grab the PULSE and BLANK timings to be able to generate the RAW data.
To do this, I use the http://dangerousprototypes.com/docs/USB_Infrared_Toy
Other people use IRrecvDump for Arduino.
The P016 is not good to get the timings for unkown protocols.
After you have those values, you can use the Python script or the Excel sheet to generate de Base32 chars.
Let me know about any doubts.
Gustavo.
Encoding : NEC
Code : 800FF (32 bits)
Timing[67]:
+9000, -4400 + 600, - 550 + 600, - 500 + 600, - 550
+ 550, - 600 + 550, - 550 + 600, - 500 + 600, - 550
+ 600, - 550 + 600, - 500 + 600, - 550 + 600, - 550
+ 600, - 500 + 600, -1650 + 600, - 550 + 600, - 500
+ 600, - 550 + 600, - 550 + 600, - 500 + 600, - 550
+ 600, - 500 + 600, - 550 + 600, - 550 + 600, - 500
+ 600, - 550 + 600, -1650 + 600, -1650 + 600, -1600
+ 600, -1650 + 600, -1650 + 600, -1650 + 550, -1650
+ 600, -1650 + 600
unsigned int rawData[67] = {9000,4400, 600,550, 600,500, 600,550, 550,600, 550,550, 600,500, 600,550, 600,550, 600,500, 600,550, 600,550, 600,500, 600,1650, 600,550, 600,500, 600,550, 600,550, 600,500, 600,550, 600,500, 600,550, 600,550, 600,500, 600,550, 600,1650, 600,1650, 600,1600, 600,1650, 600,1650, 600,1650, 550,1650, 600,1650, 600}; // NEC 800FF
unsigned int data = 0x800FF;
I suppose the code for IR transmitter with ESPEasy is NEC 800FF -> http://<ip address>/control?cmd=IRSEND,NEC,800FF
It's correct?
another question:
I have tried whit a DAIKIN conditioner IR TX and the message received is:
Encoding : UNKNOWN
Code : B3E2CB06 (32 bits)
Timing[11]:
+ 500, - 400 + 450, - 400 + 450, - 400 + 450, - 400
+ 450, - 400 + 450
unsigned int rawData[11] = {500,400, 450,400, 450,400, 450,400, 450,400, 450}; // UNKNOWN B3E2CB06
IR code too long. Edit IRremoteInt.h and increase RAWLEN
Timing[100]:
+3450, -1700 + 450, -1250 + 450, - 400 + 450, - 400
+ 450, - 400 + 450, -1250 + 500, - 350 + 500, - 350
+ 500, - 350 + 500, - 350 + 500, -1250 + 450, - 400
+ 450, -1250 + 450, -1250 + 450, - 400 + 500, -1200
+ 500, -1250 + 450, -1250 + 450, -1250 + 450, -1250
+ 450, - 400 + 500, - 350 + 500, -1200 + 500, - 400
+ 450, - 400 + 450, - 400 + 450, - 400 + 450, - 400
+ 450, - 400 + 450, - 400 + 450, - 400 + 500, - 350
+ 500, - 350 + 500, - 350 + 500, - 400 + 450, - 400
+ 450, - 400 + 450, - 400 + 450, - 400 + 450, - 400
+ 450, - 400 + 450, -1250 + 500, - 350 + 500, - 350
+ 500, -1250 + 450, -1250 + 450, -1250 + 450, - 400
+ 450, - 400 + 450, - 400
unsigned int rawData[100] = {3450,1700, 450,1250, 450,400, 450,400, 450,400, 450,1250, 500,350, 500,350, 500,350, 500,350, 500,1250, 450,400, 450,1250, 450,1250, 450,400, 500,1200, 500,1250, 450,1250, 450,1250, 450,1250, 450,400, 500,350, 500,1200, 500,400, 450,400, 450,400, 450,400, 450,400, 450,400, 450,400, 450,400, 500,350, 500,350, 500,350, 500,400, 450,400, 450,400, 450,400, 450,400, 450,400, 450,400, 450,1250, 500,350, 500,350, 500,1250, 450,1250, 450,1250, 450,400, 450,400, 450,400 }; // SANYO FFFFFFFF
unsigned int data = 0xFFFFFFFF;
The 32bits code is B3E2CB06? -> http://<ip address>/control?cmd=IRSEND,RAW,B3E2CB06 ... and how punt in the KHz, in the Pulse Len and in the Blank Len?
thanks
Angelo
Re: IR Transmitter ?
Yup okay, 400 works for both... So I guess the at the receiving end the signal is being processed as roughly a multiple of the pulse length (~ the min value)... that makes sense.
Thanks for your help.
Thanks for your help.
Re: IR Transmitter ?
So... did it work? Your device is working using the ESPEasy? I hope so!...
Re: IR Transmitter ?
Gustavo helped me, let me see if I can help you a bit...
Make a copy of the spreadsheet I posted, paste your rawData over mine, mess with the pulse/blank values and you'll see the binary string and base32 strings get generated.
Then its a good idea to emit the payload back into your receiver and see if you get the same UNKNOWN code value.
The syntax as documented suggests you need to provide the number of bits on the end of that.I suppose the code for IR transmitter with ESPEasy is NEC 800FF -> http://<ip address>/control?cmd=IRSEND,NEC,800FF
It's correct?
I'm guessing you are holding the button down for a while and triggering a repeat (or your doing it while someone else is messing with a different remote in the same room). 0xFFFFFF in NEC means repeat last command. Try tapping the once button quickly, wait for a bit and do it again. Do that a couple of times until you see an UNKNOWN code that is corresponding to your taps.another question:
I have tried whit a DAIKIN conditioner IR TX and the message received is:
Encoding : UNKNOWN
Code : B3E2CB06 (32 bits)
Timing[11]:
+ 500, - 400 + 450, - 400 + 450, - 400 + 450, - 400
+ 450, - 400 + 450
unsigned int rawData[11] = {500,400, 450,400, 450,400, 450,400, 450,400, 450}; // UNKNOWN B3E2CB06
IR code too long. Edit IRremoteInt.h and increase RAWLEN
Timing[100]:
+3450, -1700 + 450, -1250 + 450, - 400 + 450, - 400
+ 450, - 400 + 450, -1250 + 500, - 350 + 500, - 350
+ 500, - 350 + 500, - 350 + 500, -1250 + 450, - 400
+ 450, -1250 + 450, -1250 + 450, - 400 + 500, -1200
+ 500, -1250 + 450, -1250 + 450, -1250 + 450, -1250
+ 450, - 400 + 500, - 350 + 500, -1200 + 500, - 400
+ 450, - 400 + 450, - 400 + 450, - 400 + 450, - 400
+ 450, - 400 + 450, - 400 + 450, - 400 + 500, - 350
+ 500, - 350 + 500, - 350 + 500, - 400 + 450, - 400
+ 450, - 400 + 450, - 400 + 450, - 400 + 450, - 400
+ 450, - 400 + 450, -1250 + 500, - 350 + 500, - 350
+ 500, -1250 + 450, -1250 + 450, -1250 + 450, - 400
+ 450, - 400 + 450, - 400
unsigned int rawData[100] = {3450,1700, 450,1250, 450,400, 450,400, 450,400, 450,1250, 500,350, 500,350, 500,350, 500,350, 500,1250, 450,400, 450,1250, 450,1250, 450,400, 500,1200, 500,1250, 450,1250, 450,1250, 450,1250, 450,400, 500,350, 500,1200, 500,400, 450,400, 450,400, 450,400, 450,400, 450,400, 450,400, 450,400, 500,350, 500,350, 500,350, 500,400, 450,400, 450,400, 450,400, 450,400, 450,400, 450,400, 450,1250, 500,350, 500,350, 500,1250, 450,1250, 450,1250, 450,400, 450,400, 450,400 }; // SANYO FFFFFFFF
unsigned int data = 0xFFFFFFFF;
The 32bits code is B3E2CB06? -> http://<ip address>/control?cmd=IRSEND,RAW,B3E2CB06 ... and how punt in the KHz, in the Pulse Len and in the Blank Len?
Make a copy of the spreadsheet I posted, paste your rawData over mine, mess with the pulse/blank values and you'll see the binary string and base32 strings get generated.
Then its a good idea to emit the payload back into your receiver and see if you get the same UNKNOWN code value.
Re: IR Transmitter ?
Yup it does indeed... The range is only about 3 ft, so I'll have to figure out if I can boost it a bit for what I want to do, but if I hold it dead on and send the url "http://esp/control?cmd=IRSEND,RAW,ET3N8 ... 38,400,400", power toggles on.
-
- Normal user
- Posts: 119
- Joined: 26 Feb 2017, 17:30
Re: IR Transmitter ?
Gus
Thanks for the wonderful detailed explanation that all makes sense now (i believe)
so just one clarification, the two numbers you get are the end of it, are the averages of the pulse /blanks just to help shorten it?
I have looked at both the spreadsheet and the new one created on page 8 and both seem fairly consistent however no luck
I looked into the IRremoteInt.h and i can't find RAWLEN or rawlen. I find one reference to it being "uint8_t rawlen; // counter of entries in rawbuf"
Edit ermm... not sure maybe i read that wrong
Thanks for the wonderful detailed explanation that all makes sense now (i believe)
so just one clarification, the two numbers you get are the end of it, are the averages of the pulse /blanks just to help shorten it?
I have looked at both the spreadsheet and the new one created on page 8 and both seem fairly consistent however no luck
i am getting similar short lengths that you described. based on what you found here are you suggesting i should increase the rawlen? as this might be why mine is not working because it seems very very short comparatively to everyone elsesangelosub wrote: ↑30 May 2017, 19:54
IR code too long. Edit IRremoteInt.h and increase RAWLEN
Timing[100]:
+3450, -1700 + 450, -1250 + 450, - 400 + 450, - 400
+ 450, - 400 + 450, -1250 + 500, - 350 + 500, - 350
+ 500, - 350 + 500, - 350 + 500, -1250 + 450, - 400
+ 450, -1250 + 450, -1250 + 450, - 400 + 500, -1200
+ 500, -1250 + 450, -1250 + 450, -1250 + 450, -1250
+ 450, - 400 + 500, - 350 + 500, -1200 + 500, - 400
+ 450, - 400 + 450, - 400 + 450, - 400 + 450, - 400
+ 450, - 400 + 450, - 400 + 450, - 400 + 500, - 350
+ 500, - 350 + 500, - 350 + 500, - 400 + 450, - 400
+ 450, - 400 + 450, - 400 + 450, - 400 + 450, - 400
+ 450, - 400 + 450, -1250 + 500, - 350 + 500, - 350
+ 500, -1250 + 450, -1250 + 450, -1250 + 450, - 400
+ 450, - 400 + 450, - 400
unsigned int rawData[100] = {3450,1700, 450,1250, 450,400, 450,400, 450,400, 450,1250, 500,350, 500,350, 500,350, 500,350, 500,1250, 450,400, 450,1250, 450,1250, 450,400, 500,1200, 500,1250, 450,1250, 450,1250, 450,1250, 450,400, 500,350, 500,1200, 500,400, 450,400, 450,400, 450,400, 450,400, 450,400, 450,400, 450,400, 500,350, 500,350, 500,350, 500,400, 450,400, 450,400, 450,400, 450,400, 450,400, 450,400, 450,1250, 500,350, 500,350, 500,1250, 450,1250, 450,1250, 450,400, 450,400, 450,400 }; // SANYO FFFFFFFF
unsigned int data = 0xFFFFFFFF;
The 32bits code is B3E2CB06? -> http://<ip address>/control?cmd=IRSEND,RAW,B3E2CB06 ... and how punt in the KHz, in the Pulse Len and in the Blank Len?
thanks
Angelo
I looked into the IRremoteInt.h and i can't find RAWLEN or rawlen. I find one reference to it being "uint8_t rawlen; // counter of entries in rawbuf"
Edit ermm... not sure maybe i read that wrong
Re: IR Transmitter ?
thanks ged, I have try and this is the result:ged wrote: ↑30 May 2017, 20:10 Gustavo helped me, let me see if I can help you a bit...
The syntax as documented suggests you need to provide the number of bits on the end of that.I suppose the code for IR transmitter with ESPEasy is NEC 800FF -> http://<ip address>/control?cmd=IRSEND,NEC,800FF
It's correct?
I'm guessing you are holding the button down for a while and triggering a repeat (or your doing it while someone else is messing with a different remote in the same room). 0xFFFFFF in NEC means repeat last command. Try tapping the once button quickly, wait for a bit and do it again. Do that a couple of times until you see an UNKNOWN code that is corresponding to your taps.another question:
I have tried whit a DAIKIN conditioner IR TX and the message received is:
Encoding : UNKNOWN
Code : B3E2CB06 (32 bits)
Timing[11]:
+ 500, - 400 + 450, - 400 + 450, - 400 + 450, - 400
+ 450, - 400 + 450
unsigned int rawData[11] = {500,400, 450,400, 450,400, 450,400, 450,400, 450}; // UNKNOWN B3E2CB06
IR code too long. Edit IRremoteInt.h and increase RAWLEN
Timing[100]:
+3450, -1700 + 450, -1250 + 450, - 400 + 450, - 400
+ 450, - 400 + 450, -1250 + 500, - 350 + 500, - 350
+ 500, - 350 + 500, - 350 + 500, -1250 + 450, - 400
+ 450, -1250 + 450, -1250 + 450, - 400 + 500, -1200
+ 500, -1250 + 450, -1250 + 450, -1250 + 450, -1250
+ 450, - 400 + 500, - 350 + 500, -1200 + 500, - 400
+ 450, - 400 + 450, - 400 + 450, - 400 + 450, - 400
+ 450, - 400 + 450, - 400 + 450, - 400 + 500, - 350
+ 500, - 350 + 500, - 350 + 500, - 400 + 450, - 400
+ 450, - 400 + 450, - 400 + 450, - 400 + 450, - 400
+ 450, - 400 + 450, -1250 + 500, - 350 + 500, - 350
+ 500, -1250 + 450, -1250 + 450, -1250 + 450, - 400
+ 450, - 400 + 450, - 400
unsigned int rawData[100] = {3450,1700, 450,1250, 450,400, 450,400, 450,400, 450,1250, 500,350, 500,350, 500,350, 500,350, 500,1250, 450,400, 450,1250, 450,1250, 450,400, 500,1200, 500,1250, 450,1250, 450,1250, 450,1250, 450,400, 500,350, 500,1200, 500,400, 450,400, 450,400, 450,400, 450,400, 450,400, 450,400, 450,400, 500,350, 500,350, 500,350, 500,400, 450,400, 450,400, 450,400, 450,400, 450,400, 450,400, 450,1250, 500,350, 500,350, 500,1250, 450,1250, 450,1250, 450,400, 450,400, 450,400 }; // SANYO FFFFFFFF
unsigned int data = 0xFFFFFFFF;
The 32bits code is B3E2CB06? -> http://<ip address>/control?cmd=IRSEND,RAW,B3E2CB06 ... and how punt in the KHz, in the Pulse Len and in the Blank Len?
Make a copy of the spreadsheet I posted, paste your rawData over mine, mess with the pulse/blank values and you'll see the binary string and base32 strings get generated.
Then its a good idea to emit the payload back into your receiver and see if you get the same UNKNOWN code value.
Encoding : UNKNOWN
Code : B3E2CB06 (32 bits)
Timing[11]:
+ 450, - 450 + 400, - 400 + 500, - 400 + 400, - 450
+ 400, - 450 + 450
unsigned int rawData[11] = {450,450, 400,400, 500,400, 400,450, 400,450, 450}; // UNKNOWN B3E2CB06
Encoding : SANYO
Code : FFFFFFFF (0 bits)
Timing[100]:
+3450, -1750 + 400, -1250 + 450, - 450 + 400, - 450
+ 400, - 450 + 450, -1250 + 450, - 400 + 450, - 400
+ 400, - 450 + 400, - 450 + 450, -1250 + 450, - 450
+ 400, -1300 + 450, -1250 + 450, - 400 + 450, -1250
+ 450, -1250 + 450, -1300 + 400, -1300 + 400, -1300
+ 400, - 450 + 400, - 450 + 400, -1300 + 400, - 450
+ 500, - 350 + 450, - 450 + 400, - 450 + 400, - 450
+ 400, - 450 + 450, - 350 + 450, - 450 + 400, - 450
+ 400, - 450 + 450, - 400 + 450, - 400 + 450, - 400
+ 450, - 450 + 400, - 450 + 400, - 450 + 400, - 450
+ 450, - 400 + 400, - 400 + 500, - 400 + 400, - 450
+ 450, -1250 + 450, -1250 + 450, -1300 + 400, - 450
+ 400, - 450 + 400, - 450
unsigned int rawData[100] = {3450,1750, 400,1250, 450,450, 400,450, 400,450, 450,1250, 450,400, 450,400, 400,450, 400,450, 450,1250, 450,450, 400,1300, 450,1250, 450,400, 450,1250, 450,1250, 450,1300, 400,1300, 400,1300, 400,450, 400,450, 400,1300, 400,450, 500,350, 450,450, 400,450, 400,450, 400,450, 450,350, 450,450, 400,450, 400,450, 450,400, 450,400, 450,400, 450,450, 400,450, 400,450, 400,450, 450,400, 400,400, 500,400, 400,450, 450,1250, 450,1250, 450,1300, 400,450, 400,450, 400,450 }; // SANYO FFFFFFFF
unsigned int data = 0xFFFFFFFF;
the correct code is B3E2CB06 (32 bits)? rawData[11] = {450,450, 400,400, 500,400, 400,450, 400,450, 450}
Re: IR Transmitter ?
Don't really know... based on the few codes I've captured that data looks kind of screwed up... In the raw data I have, the first number in the code is 2 or 3 times the size pulse value... that rawData[11] is so small you could use 50 for the pulse and blank...thanks ged, I have try and this is the result:
Encoding : UNKNOWN
Code : B3E2CB06 (32 bits)
Timing[11]:
+ 450, - 450 + 400, - 400 + 500, - 400 + 400, - 450
+ 400, - 450 + 450
unsigned int rawData[11] = {450,450, 400,400, 500,400, 400,450, 400,450, 450}; // UNKNOWN B3E2CB06
Encoding : SANYO
Code : FFFFFFFF (0 bits)
Timing[100]:
+3450, -1750 + 400, -1250 + 450, - 450 + 400, - 450
+ 400, - 450 + 450, -1250 + 450, - 400 + 450, - 400
+ 400, - 450 + 400, - 450 + 450, -1250 + 450, - 450
+ 400, -1300 + 450, -1250 + 450, - 400 + 450, -1250
+ 450, -1250 + 450, -1300 + 400, -1300 + 400, -1300
+ 400, - 450 + 400, - 450 + 400, -1300 + 400, - 450
+ 500, - 350 + 450, - 450 + 400, - 450 + 400, - 450
+ 400, - 450 + 450, - 350 + 450, - 450 + 400, - 450
+ 400, - 450 + 450, - 400 + 450, - 400 + 450, - 400
+ 450, - 450 + 400, - 450 + 400, - 450 + 400, - 450
+ 450, - 400 + 400, - 400 + 500, - 400 + 400, - 450
+ 450, -1250 + 450, -1250 + 450, -1300 + 400, - 450
+ 400, - 450 + 400, - 450
unsigned int rawData[100] = {3450,1750, 400,1250, 450,450, 400,450, 400,450, 450,1250, 450,400, 450,400, 400,450, 400,450, 450,1250, 450,450, 400,1300, 450,1250, 450,400, 450,1250, 450,1250, 450,1300, 400,1300, 400,1300, 400,450, 400,450, 400,1300, 400,450, 500,350, 450,450, 400,450, 400,450, 400,450, 450,350, 450,450, 400,450, 400,450, 450,400, 450,400, 450,400, 450,450, 400,450, 400,450, 400,450, 450,400, 400,400, 500,400, 400,450, 450,1250, 450,1250, 450,1300, 400,450, 400,450, 400,450 }; // SANYO FFFFFFFF
unsigned int data = 0xFFFFFFFF;
the correct code is B3E2CB06 (32 bits)? rawData[11] = {450,450, 400,400, 500,400, 400,450, 400,450, 450}
I duplicated the sheet on my spreadsheet and put that in and it spit out this: http://esp4/control?cmd=IRSEND,RAW,VU03 ... V,38,50,50 .... You can try it, but I'd think your actual code more likely starts in the rawData[100]
Re: IR Transmitter ?
ged wrote: ↑30 May 2017, 22:21Don't really know... based on the few codes I've captured that data looks kind of screwed up... In the raw data I have, the first number in the code is 2 or 3 times the size pulse value... that rawData[11] is so small you could use 50 for the pulse and blank...thanks ged, I have try and this is the result:
Encoding : UNKNOWN
Code : B3E2CB06 (32 bits)
Timing[11]:
+ 450, - 450 + 400, - 400 + 500, - 400 + 400, - 450
+ 400, - 450 + 450
unsigned int rawData[11] = {450,450, 400,400, 500,400, 400,450, 400,450, 450}; // UNKNOWN B3E2CB06
Encoding : SANYO
Code : FFFFFFFF (0 bits)
Timing[100]:
+3450, -1750 + 400, -1250 + 450, - 450 + 400, - 450
+ 400, - 450 + 450, -1250 + 450, - 400 + 450, - 400
+ 400, - 450 + 400, - 450 + 450, -1250 + 450, - 450
+ 400, -1300 + 450, -1250 + 450, - 400 + 450, -1250
+ 450, -1250 + 450, -1300 + 400, -1300 + 400, -1300
+ 400, - 450 + 400, - 450 + 400, -1300 + 400, - 450
+ 500, - 350 + 450, - 450 + 400, - 450 + 400, - 450
+ 400, - 450 + 450, - 350 + 450, - 450 + 400, - 450
+ 400, - 450 + 450, - 400 + 450, - 400 + 450, - 400
+ 450, - 450 + 400, - 450 + 400, - 450 + 400, - 450
+ 450, - 400 + 400, - 400 + 500, - 400 + 400, - 450
+ 450, -1250 + 450, -1250 + 450, -1300 + 400, - 450
+ 400, - 450 + 400, - 450
unsigned int rawData[100] = {3450,1750, 400,1250, 450,450, 400,450, 400,450, 450,1250, 450,400, 450,400, 400,450, 400,450, 450,1250, 450,450, 400,1300, 450,1250, 450,400, 450,1250, 450,1250, 450,1300, 400,1300, 400,1300, 400,450, 400,450, 400,1300, 400,450, 500,350, 450,450, 400,450, 400,450, 400,450, 450,350, 450,450, 400,450, 400,450, 450,400, 450,400, 450,400, 450,450, 400,450, 400,450, 400,450, 450,400, 400,400, 500,400, 400,450, 450,1250, 450,1250, 450,1300, 400,450, 400,450, 400,450 }; // SANYO FFFFFFFF
unsigned int data = 0xFFFFFFFF;
the correct code is B3E2CB06 (32 bits)? rawData[11] = {450,450, 400,400, 500,400, 400,450, 400,450, 450}
I duplicated the sheet on my spreadsheet and put that in and it spit out this: http://esp4/control?cmd=IRSEND,RAW,VU03 ... V,38,50,50 .... You can try it, but I'd think your actual code more likely starts in the rawData[100]
I have try increase the rawlen in the arduino library to uint64_t but the message it's same "IR code too long. Edit IRremoteInt.h and increase RAWLEN".
I don't now. It's probable the DAIKIN code too long the 64bit?
Re: IR Transmitter ?
I don't understand why, but in the IRremoteESP8266 library it's presents a DAIKIN sample IR command and in the _P35_IRTX.ino the DAIKIN code is not integrated.
see below
if (IrType.equalsIgnoreCase("NEC")) Plugin_035_irSender->sendNEC(IrCode, IrBits);
if (IrType.equalsIgnoreCase("JVC")) Plugin_035_irSender->sendJVC(IrCode, IrBits, 2);
if (IrType.equalsIgnoreCase("RC5")) Plugin_035_irSender->sendRC5(IrCode, IrBits);
if (IrType.equalsIgnoreCase("RC6")) Plugin_035_irSender->sendRC6(IrCode, IrBits);
if (IrType.equalsIgnoreCase("SAMSUNG")) Plugin_035_irSender->sendSAMSUNG(IrCode, IrBits);
if (IrType.equalsIgnoreCase("SONY")) Plugin_035_irSender->sendSony(IrCode, IrBits);
if (IrType.equalsIgnoreCase("PANASONIC")) Plugin_035_irSender->sendPanasonic(IrBits, IrCode);
in the example directory of IRremoteESP8266 library I'm find the "TurnOnDaikinAC" example:
#include <IRDaikinESP.h>
IRDaikinESP dakinir(D1);
void setup(){
dakinir.begin();
Serial.begin(115200);
}
void loop(){
Serial.println("Sending...");
// Set up what we want to send. See IRDaikinESP.cpp for all the options.
dakinir.on();
dakinir.setFan(1);
dakinir.setMode(DAIKIN_COOL);
dakinir.setTemp(25);
dakinir.setSwingVertical(0);
dakinir.setSwingHorizontal(0);
// Now send the IR signal.
dakinir.send();
delay(5000);
}
It's possible integrate IRDaikinESP.h in the _P35_IRTX.ino?
It's possible integrate with if (IrType.equalsIgnoreCase("DAIKIN")) Plugin_035_irSender_DAIKIN->Daikin.send(command); ?
command: IRDaikinESP.on, IRDaikinESP.setFan(value), IRDaikinESP.setMode(char), IRDaikinESP.setTemp(value), IRDaikinESP.setSwingVertical(value), IRDaikinESP.setSwingHorizontal(value)
I'm not a programmer and I don't know if really possible integrate this function. Do you have Ideas?
by
Angelo
see below
if (IrType.equalsIgnoreCase("NEC")) Plugin_035_irSender->sendNEC(IrCode, IrBits);
if (IrType.equalsIgnoreCase("JVC")) Plugin_035_irSender->sendJVC(IrCode, IrBits, 2);
if (IrType.equalsIgnoreCase("RC5")) Plugin_035_irSender->sendRC5(IrCode, IrBits);
if (IrType.equalsIgnoreCase("RC6")) Plugin_035_irSender->sendRC6(IrCode, IrBits);
if (IrType.equalsIgnoreCase("SAMSUNG")) Plugin_035_irSender->sendSAMSUNG(IrCode, IrBits);
if (IrType.equalsIgnoreCase("SONY")) Plugin_035_irSender->sendSony(IrCode, IrBits);
if (IrType.equalsIgnoreCase("PANASONIC")) Plugin_035_irSender->sendPanasonic(IrBits, IrCode);
in the example directory of IRremoteESP8266 library I'm find the "TurnOnDaikinAC" example:
#include <IRDaikinESP.h>
IRDaikinESP dakinir(D1);
void setup(){
dakinir.begin();
Serial.begin(115200);
}
void loop(){
Serial.println("Sending...");
// Set up what we want to send. See IRDaikinESP.cpp for all the options.
dakinir.on();
dakinir.setFan(1);
dakinir.setMode(DAIKIN_COOL);
dakinir.setTemp(25);
dakinir.setSwingVertical(0);
dakinir.setSwingHorizontal(0);
// Now send the IR signal.
dakinir.send();
delay(5000);
}
It's possible integrate IRDaikinESP.h in the _P35_IRTX.ino?
It's possible integrate with if (IrType.equalsIgnoreCase("DAIKIN")) Plugin_035_irSender_DAIKIN->Daikin.send(command); ?
command: IRDaikinESP.on, IRDaikinESP.setFan(value), IRDaikinESP.setMode(char), IRDaikinESP.setTemp(value), IRDaikinESP.setSwingVertical(value), IRDaikinESP.setSwingHorizontal(value)
I'm not a programmer and I don't know if really possible integrate this function. Do you have Ideas?
by
Angelo
Re: IR Transmitter ?
ged wrote: ↑30 May 2017, 20:10 Gustavo helped me, let me see if I can help you a bit...
The syntax as documented suggests you need to provide the number of bits on the end of that.I suppose the code for IR transmitter with ESPEasy is NEC 800FF -> http://<ip address>/control?cmd=IRSEND,NEC,800FF
It's correct?
I'm guessing you are holding the button down for a while and triggering a repeat (or your doing it while someone else is messing with a different remote in the same room). 0xFFFFFF in NEC means repeat last command. Try tapping the once button quickly, wait for a bit and do it again. Do that a couple of times until you see an UNKNOWN code that is corresponding to your taps.another question:
I have tried whit a DAIKIN conditioner IR TX and the message received is:
Encoding : UNKNOWN
Code : B3E2CB06 (32 bits)
Timing[11]:
+ 500, - 400 + 450, - 400 + 450, - 400 + 450, - 400
+ 450, - 400 + 450
unsigned int rawData[11] = {500,400, 450,400, 450,400, 450,400, 450,400, 450}; // UNKNOWN B3E2CB06
IR code too long. Edit IRremoteInt.h and increase RAWLEN
Timing[100]:
+3450, -1700 + 450, -1250 + 450, - 400 + 450, - 400
+ 450, - 400 + 450, -1250 + 500, - 350 + 500, - 350
+ 500, - 350 + 500, - 350 + 500, -1250 + 450, - 400
+ 450, -1250 + 450, -1250 + 450, - 400 + 500, -1200
+ 500, -1250 + 450, -1250 + 450, -1250 + 450, -1250
+ 450, - 400 + 500, - 350 + 500, -1200 + 500, - 400
+ 450, - 400 + 450, - 400 + 450, - 400 + 450, - 400
+ 450, - 400 + 450, - 400 + 450, - 400 + 500, - 350
+ 500, - 350 + 500, - 350 + 500, - 400 + 450, - 400
+ 450, - 400 + 450, - 400 + 450, - 400 + 450, - 400
+ 450, - 400 + 450, -1250 + 500, - 350 + 500, - 350
+ 500, -1250 + 450, -1250 + 450, -1250 + 450, - 400
+ 450, - 400 + 450, - 400
unsigned int rawData[100] = {3450,1700, 450,1250, 450,400, 450,400, 450,400, 450,1250, 500,350, 500,350, 500,350, 500,350, 500,1250, 450,400, 450,1250, 450,1250, 450,400, 500,1200, 500,1250, 450,1250, 450,1250, 450,1250, 450,400, 500,350, 500,1200, 500,400, 450,400, 450,400, 450,400, 450,400, 450,400, 450,400, 450,400, 500,350, 500,350, 500,350, 500,400, 450,400, 450,400, 450,400, 450,400, 450,400, 450,400, 450,1250, 500,350, 500,350, 500,1250, 450,1250, 450,1250, 450,400, 450,400, 450,400 }; // SANYO FFFFFFFF
unsigned int data = 0xFFFFFFFF;
The 32bits code is B3E2CB06? -> http://<ip address>/control?cmd=IRSEND,RAW,B3E2CB06 ... and how punt in the KHz, in the Pulse Len and in the Blank Len?
Make a copy of the spreadsheet I posted, paste your rawData over mine, mess with the pulse/blank values and you'll see the binary string and base32 strings get generated.
Then its a good idea to emit the payload back into your receiver and see if you get the same UNKNOWN code value.
I have try with another IRremote library for Arduino and tray with dedicated IRecvDump. This is the result:
Raw (584): -25248 450 -400 450 -400 500 -350 500 -350 500 -350 500 -25100 3450 -1700 450 -1250 450 -400 450 -400 450 -400 450 -1250 500 -350 500 -350 500 -350 500 -400 450 -1250 450 -400 450 -1250 450 -1250 500 -350 500 -1200 500 -1250 450 -1250 450 -1250 450 -1250 450 -400 500 -350 500 -1200 500 -400 450 -400 450 -400 450 -400 450 -400 450 -400 450 -400 450 -400 500 -350 500 -350 500 -1250 450 -400 450 -1250 450 -400 450 -400 450 -400 450 -1250 500 -1200 500 -350 500 -400 450 -400 450 -400 450 -400 450 -400 450 -400 450 -400 450 -400 500 -350 500 -350 500 -350 500 -400 450 -400 450 -400 450 -400 450 -1250 450 -1250 500 -1200 500 -350 500 -1250 450 -400 450 -1250 450 -1250 450 31086 3500 -1650 450 -1250 500 -350 500 -350 500 -350 500 -1250 450 -400 450 -400 450 -400 450 -400 450 -1250 500 -350 500 -1200 500 -1250 450 -400 450 -1250 450 -1250 450 -1250 500 -1200 500 -1250 450 -400 450 -400 450 -1250 450 -400 450 -400 500 -350 500 -350 500 -350 500 -350 500 -400 450 -400 450 -400 450 -400 450 -400 450 -1250 450 -400 500 -350 500 -350 500 -350 500 -1250 450 -400 450 -400 450 -400 450 -1250 450 -400 500 -1200 500 -350 500 -400 450 -400 450 -400 450 -400 450 -400 450 -400 450 -400 450 -400 500 -350 500 -350 500 -350 500 -400 450 -400 450 -1250 450 -400 450 -1250 450 -1250 500 -350 500 31136 3500 -1650 500 -1200 500 -400 450 -400 450 -400 450 -1250 450 -400 450 -400 450 -400 500 -350 500 -1200 500 -400 450 -1250 450 -1250 450 -400 450 -1250 500 -1200 500 -1250 450 -1250 450 -1250 450 -400 450 -400 450 -1250 500 -350 500 -350 500 -350 500 -400 450 -400 450 -400 450 -400 450 -400 450 -400 450 -400 450 -400 500 -350 500 -350 500 -350 500 -400 450 -400 450 -400 450 -400 450 -400 450 -400 450 -400 450 -1250 500 -1200 500 -1250 450 -400 450 -400 450 -400 450 -1250 450 -1250 500 -350 500 -350 500 -1250 450 -400 450 -400 450 -400 450 -400 450 -400 450 -400 450 -400 500 -350 500 -350 500 -350 500 -400 450 -400 450 -400 450 -400 450 -400 450 -1250 450 -400 500 -1200 500 -350 500 -400 450 -400 450 -400 450 -400 450 -400 450 -400 450 -400 450 -400 450 -400 500 -350 500 -350 500 -350 500 -400 450 -400 450 -400 450 -400 450 -1250 450 -1250 500 -350 500 -350 500 -350 500 -400 450 -400 450 -400 450 -400 450 -400 450 -400 450 -400 450 -1250 500 -1200 500 -400 450 -400 450 -400 450 -400 450 -400 450 -400 450 -400 450 -400 450 -400 500 -350 500 -350 500 -350 500 -400 450 -400 450 -400 450 -400 450 -400 450 -400 450 -400 450 -400 500 -350 500 -350 500 -350 500 -1250 450 -1250 450 -400 450 -400 450 -400 450 -400 500 -350 500 -350 500 -350 500 -400 450 -400 450 -400 450 -400 450 -400 450 -400 450 -400 450 -400 450 -400 500 -350 500 -1200 500 -1250 450 -400 450 -1250 450 -1250 450 -400 500 -350 500
Whit this RAW it's possible send IR code with ESPEasy?
Re: IR Transmitter ?
Hi, I have try the "TurnOnDaikinAC" example of library IRremoteESP8266 It's perfect.
This is the example:
#include <IRDaikinESP.h>
IRDaikinESP dakinir(5); //D1 GPIO5
void setup(){
dakinir.begin();
Serial.begin(115200);
}
void loop(){
Serial.println("Sending...");
// Set up what we want to send. See IRDaikinESP.cpp for all the options.
dakinir.on(); //dakinir.off();
dakinir.setFan(0); //0=AUTO, 1-5 Fan vel
dakinir.setMode(DAIKIN_COOL); //DAIKIN_COOL, DAIKIN_HEAT, DAIKIN_FAN, DAIKIN_AUTO, DAIKIN_DRY
dakinir.setTemp(25);
dakinir.setSwingVertical(1); //0= off, 1= on
dakinir.setSwingHorizontal(0); //0= off, 1= on
// Now send the IR signal.
dakinir.send();
delay(5000);
}
I have not idea then I ask you: In the _P35_IRTX.ino it's possible integrate the DAIKIN function of the IRDaikinESP.h?
thanks
Angelo
This is the example:
#include <IRDaikinESP.h>
IRDaikinESP dakinir(5); //D1 GPIO5
void setup(){
dakinir.begin();
Serial.begin(115200);
}
void loop(){
Serial.println("Sending...");
// Set up what we want to send. See IRDaikinESP.cpp for all the options.
dakinir.on(); //dakinir.off();
dakinir.setFan(0); //0=AUTO, 1-5 Fan vel
dakinir.setMode(DAIKIN_COOL); //DAIKIN_COOL, DAIKIN_HEAT, DAIKIN_FAN, DAIKIN_AUTO, DAIKIN_DRY
dakinir.setTemp(25);
dakinir.setSwingVertical(1); //0= off, 1= on
dakinir.setSwingHorizontal(0); //0= off, 1= on
// Now send the IR signal.
dakinir.send();
delay(5000);
}
I have not idea then I ask you: In the _P35_IRTX.ino it's possible integrate the DAIKIN function of the IRDaikinESP.h?
thanks
Angelo
Re: IR Transmitter ?
## Text translate via Google form German to English ##
Good Morning,
My goal was to control my air conditioning system from Mitsubishi via FHEM with IR and EspEasy. I have already managed years ago with the Raspberry my system (codes then about Lirc) later I wanted to try it with Mysensors, now I wanted to do it simply via Wifi.
Problem was and is that the remote control (FB) only outputs these RAW codes. There are different approaches here (FHEM Forum) and also in the EspEasy forum, but I did not go further or to the goal. My FB "remembers" the old settings. That is, I really need only the On or Off button. With On starts it with 22 ° -AutoSpeedFan-3D-air direction.
Since I am only hobbyist, I need a way (code) to implement this easily and comprehensibly. I would like to briefly present this for all who are looking for a way to search RAW code. Maybe you can use it for yourself.
My code, which I had first transferred from Raspberry to Mysensors, looked like this:
I have changed in EspEasy in the "Plugin_035" the following:
Now I can control via: http: // IP / control? Cmd = IRSEND, Kliman or http: // IP / control? Cmd = IRSEND,
I know this is not the big solution but for me a sufficient success, since we make more settings also not over the FB.
Greeting Marko
Good Morning,
My goal was to control my air conditioning system from Mitsubishi via FHEM with IR and EspEasy. I have already managed years ago with the Raspberry my system (codes then about Lirc) later I wanted to try it with Mysensors, now I wanted to do it simply via Wifi.
Problem was and is that the remote control (FB) only outputs these RAW codes. There are different approaches here (FHEM Forum) and also in the EspEasy forum, but I did not go further or to the goal. My FB "remembers" the old settings. That is, I really need only the On or Off button. With On starts it with 22 ° -AutoSpeedFan-3D-air direction.
Since I am only hobbyist, I need a way (code) to implement this easily and comprehensibly. I would like to briefly present this for all who are looking for a way to search RAW code. Maybe you can use it for yourself.
My code, which I had first transferred from Raspberry to Mysensors, looked like this:
Code: Select all
#include <IRremote.h>
IRsend irsend;
unsigned int an[180] = {3250,1450,500,300,450,1100,500,300,450,350,450,1100,500,300,450,1100,500,300,500,300,450,1100,500,1050,500,1100,500,300,450,1100,450,350,500,1050,500,1100,450,1100,500,300,450,300,500,300,500,300,450,1100,500,1100,450,300,500,1100,450,1100,450,350,500,300,450,1100,500,300,500,300,450,1100,450,350,450,300,500,1100,450,1100,500,300,500,1050,500,1100,450,1100,450,1150,450,1100,450,1150,450,1100,500,1050,500,1100,450,300,500,300,500,300,450,350,450,300,500,300,450,350,450,300,500,1100,500,1050,500,1100,450,1100,500,300,450,350,450,1100,450,1100,500,1100,500,300,450,300,450,350,500,1050,500,1100,500,300,450,300,500,300,450,350,450,1100,500,1050,500,300,500,300,450,1100,500,1100,500,1050,450,1150,450,300,500,300,500,1050,500,1100,500,300,450,300,500,300,500,};
unsigned int aus[180] = {3200,1500,450,300,500,1100,450,300,500,300,500,1050,500,300,500,1100,450,300,500,300,500,1050,500,1100,450,1100,500,300,500,1050,500,300,450,1150,450,1100,450,1100,500,300,500,300,500,300,450,300,500,1100,450,1100,500,300,500,1050,450,1150,450,300,500,300,450,1150,450,300,500,300,450,1100,500,300,450,350,450,1100,500,1100,450,300,500,1100,450,1100,450,1150,450,1100,450,1100,500,1100,500,1050,500,1100,450,1100,500,300,500,300,450,300,500,300,450,350,450,300,500,300,450,350,450,1100,500,1100,450,1100,450,1150,450,300,500,300,500,1050,500,1100,450,1100,500,300,450,350,450,300,500,1100,450,1100,500,300,500,300,450,300,500,300,500,1050,500,1100,450,1100,500,300,500,1050,500,1100,450,1100,500,1100,450,300,500,300,450,350,500,1050,500,300,500,300,450,300,500,};
void setup()
{
Serial.begin(9600);
}
void loop() {
//if (Serial.read() != -1) //{
for (int i = 0; i < 3; i++) {
irsend.sendRaw(an,180,38);
delay(1000);
irsend.sendRaw(aus,180,38);
delay(5000);
//}
}
}
I have changed in EspEasy in the "Plugin_035" the following:
Code: Select all
//#######################################################################################################
//#################################### Plugin 035: Output IR ############################################
//#######################################################################################################
#include <IRremoteESP8266.h>
IRsend *Plugin_035_irSender;
#define PLUGIN_035
#define PLUGIN_ID_035 35
#define PLUGIN_NAME_035 "Infrared Transmit"
boolean Plugin_035(byte function, struct EventStruct *event, String& string)
{
boolean success = false;
switch (function)
{
case PLUGIN_DEVICE_ADD:
{
Device[++deviceCount].Number = PLUGIN_ID_035;
Device[deviceCount].Type = DEVICE_TYPE_SINGLE;
Device[deviceCount].SendDataOption = false;
break;
}
case PLUGIN_GET_DEVICENAME:
{
string = F(PLUGIN_NAME_035);
break;
}
case PLUGIN_GET_DEVICEVALUENAMES:
{
break;
}
case PLUGIN_INIT:
{
int irPin = Settings.TaskDevicePin1[event->TaskIndex];
if (Plugin_035_irSender == 0 && irPin != -1)
{
addLog(LOG_LEVEL_INFO, "INIT: IR TX");
Plugin_035_irSender = new IRsend(irPin);
Plugin_035_irSender->begin(); // Start the sender
}
if (Plugin_035_irSender != 0 && irPin == -1)
{
addLog(LOG_LEVEL_INFO, "INIT: IR TX Removed");
delete Plugin_035_irSender;
Plugin_035_irSender = 0;
}
success = true;
break;
}
case PLUGIN_WRITE:
{
String IrType;
unsigned long IrCode;
unsigned int IrBits;
char command[80];
command[0] = 0;
char TmpStr1[80];
TmpStr1[0] = 0;
string.toCharArray(command, 80);
unsigned int an[180] = {3250,1450,500,300,450,1100,500,300,450,350,450,1100,500,300,450,1100,500,300,500,300,450,1100,500,1050,500,1100,500,300,450,1100,450,350,500,1050,500,1100,450,1100,500,300,450,300,500,300,500,300,450,1100,500,1100,450,300,500,1100,450,1100,450,350,500,300,450,1100,500,300,500,300,450,1100,450,350,450,300,500,1100,450,1100,500,300,500,1050,500,1100,450,1100,450,1150,450,1100,450,1150,450,1100,500,1050,500,1100,450,300,500,300,500,300,450,350,450,300,500,300,450,350,450,300,500,1100,500,1050,500,1100,450,1100,500,300,450,350,450,1100,450,1100,500,1100,500,300,450,300,450,350,500,1050,500,1100,500,300,450,300,500,300,450,350,450,1100,500,1050,500,300,500,300,450,1100,500,1100,500,1050,450,1150,450,300,500,300,500,1050,500,1100,500,300,450,300,500,300,500,};
unsigned int aus[180] = {3200,1500,450,300,500,1100,450,300,500,300,500,1050,500,300,500,1100,450,300,500,300,500,1050,500,1100,450,1100,500,300,500,1050,500,300,450,1150,450,1100,450,1100,500,300,500,300,500,300,450,300,500,1100,450,1100,500,300,500,1050,450,1150,450,300,500,300,450,1150,450,300,500,300,450,1100,500,300,450,350,450,1100,500,1100,450,300,500,1100,450,1100,450,1150,450,1100,450,1100,500,1100,500,1050,500,1100,450,1100,500,300,500,300,450,300,500,300,450,350,450,300,500,300,450,350,450,1100,500,1100,450,1100,450,1150,450,300,500,300,500,1050,500,1100,450,1100,500,300,450,350,450,300,500,1100,450,1100,500,300,500,300,450,300,500,300,500,1050,500,1100,450,1100,500,300,500,1050,500,1100,450,1100,500,1100,450,300,500,300,450,350,500,1050,500,300,500,300,450,300,500,};
String tmpString = string;
int argIndex = tmpString.indexOf(',');
if (argIndex) tmpString = tmpString.substring(0, argIndex);
if (GetArgv(command, TmpStr1, 2)) IrType = TmpStr1;
if (GetArgv(command, TmpStr1, 3)) IrCode = strtoul(TmpStr1, NULL, 16); //(long) TmpStr1
if (GetArgv(command, TmpStr1, 4)) IrBits = str2int(TmpStr1);
if (tmpString.equalsIgnoreCase("IRSEND") && Plugin_035_irSender != 0)
{
success = true;
if (IrType.equalsIgnoreCase("NEC")) Plugin_035_irSender->sendNEC(IrCode, IrBits);
if (IrType.equalsIgnoreCase("JVC")) Plugin_035_irSender->sendJVC(IrCode, IrBits, 2);
if (IrType.equalsIgnoreCase("RC5")) Plugin_035_irSender->sendRC5(IrCode, IrBits);
if (IrType.equalsIgnoreCase("RC6")) Plugin_035_irSender->sendRC6(IrCode, IrBits);
if (IrType.equalsIgnoreCase("SAMSUNG")) Plugin_035_irSender->sendSAMSUNG(IrCode, IrBits);
if (IrType.equalsIgnoreCase("SONY")) Plugin_035_irSender->sendSony(IrCode, IrBits);
if (IrType.equalsIgnoreCase("PANASONIC")) Plugin_035_irSender->sendPanasonic(IrBits, IrCode);
if (IrType.equalsIgnoreCase("Kliman")) Plugin_035_irSender->sendRaw(an,180,38);
if (IrType.equalsIgnoreCase("Klimaus")) Plugin_035_irSender->sendRaw(aus,180,38);
addLog(LOG_LEVEL_INFO, "IR Code Sent");
if (printToWeb)
{
printWebString += F("IR Code Sent ");
printWebString += IrType;
printWebString += F("<BR>");
}
}
break;
}
}
return success;
}
Now I can control via: http: // IP / control? Cmd = IRSEND, Kliman or http: // IP / control? Cmd = IRSEND,
I know this is not the big solution but for me a sufficient success, since we make more settings also not over the FB.
Greeting Marko
Re: IR Transmitter ?
Hi take a look at https://www.letscontrolit.com/forum/vie ... f=2&t=1915marko67 wrote: ↑25 Jun 2017, 11:43 ## Text translate via Google form German to English ##
Good Morning,
My goal was to control my air conditioning system from Mitsubishi via FHEM with IR and EspEasy. I have already managed years ago with the Raspberry my system (codes then about Lirc) later I wanted to try it with Mysensors, now I wanted to do it simply via Wifi.
Problem was and is that the remote control (FB) only outputs these RAW codes. There are different approaches here (FHEM Forum) and also in the EspEasy forum, but I did not go further or to the goal. My FB "remembers" the old settings. That is, I really need only the On or Off button. With On starts it with 22 ° -AutoSpeedFan-3D-air direction.
Since I am only hobbyist, I need a way (code) to implement this easily and comprehensibly. I would like to briefly present this for all who are looking for a way to search RAW code. Maybe you can use it for yourself.
My code, which I had first transferred from Raspberry to Mysensors, looked like this:
Code: Select all
#include <IRremote.h> IRsend irsend; unsigned int an[180] = {3250,1450,500,300,450,1100,500,300,450,350,450,1100,500,300,450,1100,500,300,500,300,450,1100,500,1050,500,1100,500,300,450,1100,450,350,500,1050,500,1100,450,1100,500,300,450,300,500,300,500,300,450,1100,500,1100,450,300,500,1100,450,1100,450,350,500,300,450,1100,500,300,500,300,450,1100,450,350,450,300,500,1100,450,1100,500,300,500,1050,500,1100,450,1100,450,1150,450,1100,450,1150,450,1100,500,1050,500,1100,450,300,500,300,500,300,450,350,450,300,500,300,450,350,450,300,500,1100,500,1050,500,1100,450,1100,500,300,450,350,450,1100,450,1100,500,1100,500,300,450,300,450,350,500,1050,500,1100,500,300,450,300,500,300,450,350,450,1100,500,1050,500,300,500,300,450,1100,500,1100,500,1050,450,1150,450,300,500,300,500,1050,500,1100,500,300,450,300,500,300,500,}; unsigned int aus[180] = {3200,1500,450,300,500,1100,450,300,500,300,500,1050,500,300,500,1100,450,300,500,300,500,1050,500,1100,450,1100,500,300,500,1050,500,300,450,1150,450,1100,450,1100,500,300,500,300,500,300,450,300,500,1100,450,1100,500,300,500,1050,450,1150,450,300,500,300,450,1150,450,300,500,300,450,1100,500,300,450,350,450,1100,500,1100,450,300,500,1100,450,1100,450,1150,450,1100,450,1100,500,1100,500,1050,500,1100,450,1100,500,300,500,300,450,300,500,300,450,350,450,300,500,300,450,350,450,1100,500,1100,450,1100,450,1150,450,300,500,300,500,1050,500,1100,450,1100,500,300,450,350,450,300,500,1100,450,1100,500,300,500,300,450,300,500,300,500,1050,500,1100,450,1100,500,300,500,1050,500,1100,450,1100,500,1100,450,300,500,300,450,350,500,1050,500,300,500,300,450,300,500,}; void setup() { Serial.begin(9600); } void loop() { //if (Serial.read() != -1) //{ for (int i = 0; i < 3; i++) { irsend.sendRaw(an,180,38); delay(1000); irsend.sendRaw(aus,180,38); delay(5000); //} } }
I have changed in EspEasy in the "Plugin_035" the following:
Code: Select all
//####################################################################################################### //#################################### Plugin 035: Output IR ############################################ //####################################################################################################### #include <IRremoteESP8266.h> IRsend *Plugin_035_irSender; #define PLUGIN_035 #define PLUGIN_ID_035 35 #define PLUGIN_NAME_035 "Infrared Transmit" boolean Plugin_035(byte function, struct EventStruct *event, String& string) { boolean success = false; switch (function) { case PLUGIN_DEVICE_ADD: { Device[++deviceCount].Number = PLUGIN_ID_035; Device[deviceCount].Type = DEVICE_TYPE_SINGLE; Device[deviceCount].SendDataOption = false; break; } case PLUGIN_GET_DEVICENAME: { string = F(PLUGIN_NAME_035); break; } case PLUGIN_GET_DEVICEVALUENAMES: { break; } case PLUGIN_INIT: { int irPin = Settings.TaskDevicePin1[event->TaskIndex]; if (Plugin_035_irSender == 0 && irPin != -1) { addLog(LOG_LEVEL_INFO, "INIT: IR TX"); Plugin_035_irSender = new IRsend(irPin); Plugin_035_irSender->begin(); // Start the sender } if (Plugin_035_irSender != 0 && irPin == -1) { addLog(LOG_LEVEL_INFO, "INIT: IR TX Removed"); delete Plugin_035_irSender; Plugin_035_irSender = 0; } success = true; break; } case PLUGIN_WRITE: { String IrType; unsigned long IrCode; unsigned int IrBits; char command[80]; command[0] = 0; char TmpStr1[80]; TmpStr1[0] = 0; string.toCharArray(command, 80); unsigned int an[180] = {3250,1450,500,300,450,1100,500,300,450,350,450,1100,500,300,450,1100,500,300,500,300,450,1100,500,1050,500,1100,500,300,450,1100,450,350,500,1050,500,1100,450,1100,500,300,450,300,500,300,500,300,450,1100,500,1100,450,300,500,1100,450,1100,450,350,500,300,450,1100,500,300,500,300,450,1100,450,350,450,300,500,1100,450,1100,500,300,500,1050,500,1100,450,1100,450,1150,450,1100,450,1150,450,1100,500,1050,500,1100,450,300,500,300,500,300,450,350,450,300,500,300,450,350,450,300,500,1100,500,1050,500,1100,450,1100,500,300,450,350,450,1100,450,1100,500,1100,500,300,450,300,450,350,500,1050,500,1100,500,300,450,300,500,300,450,350,450,1100,500,1050,500,300,500,300,450,1100,500,1100,500,1050,450,1150,450,300,500,300,500,1050,500,1100,500,300,450,300,500,300,500,}; unsigned int aus[180] = {3200,1500,450,300,500,1100,450,300,500,300,500,1050,500,300,500,1100,450,300,500,300,500,1050,500,1100,450,1100,500,300,500,1050,500,300,450,1150,450,1100,450,1100,500,300,500,300,500,300,450,300,500,1100,450,1100,500,300,500,1050,450,1150,450,300,500,300,450,1150,450,300,500,300,450,1100,500,300,450,350,450,1100,500,1100,450,300,500,1100,450,1100,450,1150,450,1100,450,1100,500,1100,500,1050,500,1100,450,1100,500,300,500,300,450,300,500,300,450,350,450,300,500,300,450,350,450,1100,500,1100,450,1100,450,1150,450,300,500,300,500,1050,500,1100,450,1100,500,300,450,350,450,300,500,1100,450,1100,500,300,500,300,450,300,500,300,500,1050,500,1100,450,1100,500,300,500,1050,500,1100,450,1100,500,1100,450,300,500,300,450,350,500,1050,500,300,500,300,450,300,500,}; String tmpString = string; int argIndex = tmpString.indexOf(','); if (argIndex) tmpString = tmpString.substring(0, argIndex); if (GetArgv(command, TmpStr1, 2)) IrType = TmpStr1; if (GetArgv(command, TmpStr1, 3)) IrCode = strtoul(TmpStr1, NULL, 16); //(long) TmpStr1 if (GetArgv(command, TmpStr1, 4)) IrBits = str2int(TmpStr1); if (tmpString.equalsIgnoreCase("IRSEND") && Plugin_035_irSender != 0) { success = true; if (IrType.equalsIgnoreCase("NEC")) Plugin_035_irSender->sendNEC(IrCode, IrBits); if (IrType.equalsIgnoreCase("JVC")) Plugin_035_irSender->sendJVC(IrCode, IrBits, 2); if (IrType.equalsIgnoreCase("RC5")) Plugin_035_irSender->sendRC5(IrCode, IrBits); if (IrType.equalsIgnoreCase("RC6")) Plugin_035_irSender->sendRC6(IrCode, IrBits); if (IrType.equalsIgnoreCase("SAMSUNG")) Plugin_035_irSender->sendSAMSUNG(IrCode, IrBits); if (IrType.equalsIgnoreCase("SONY")) Plugin_035_irSender->sendSony(IrCode, IrBits); if (IrType.equalsIgnoreCase("PANASONIC")) Plugin_035_irSender->sendPanasonic(IrBits, IrCode); if (IrType.equalsIgnoreCase("Kliman")) Plugin_035_irSender->sendRaw(an,180,38); if (IrType.equalsIgnoreCase("Klimaus")) Plugin_035_irSender->sendRaw(aus,180,38); addLog(LOG_LEVEL_INFO, "IR Code Sent"); if (printToWeb) { printWebString += F("IR Code Sent "); printWebString += IrType; printWebString += F("<BR>"); } } break; } } return success; }
Now I can control via: http: // IP / control? Cmd = IRSEND, Kliman or http: // IP / control? Cmd = IRSEND,
I know this is not the big solution but for me a sufficient success, since we make more settings also not over the FB.
Greeting Marko
ToniA have add Mitsubishi support. I don't use FHEM but with his plugin you can control via cmd or mqtt.
Re: IR Transmitter ?
Ok and thank you for this Tipp. I have change to ToniA integration "HeatpumIR". It works fine after a while as well with FHEM.
Thank you.
Thank you.
Re: IR Transmitter ?
I need some help because it seems I am missing something.
I have created an IR transmitter and an IR receiver with two ESP8266 chips and of course the required additional hardware. I have installed esp easy (2) at both ESP's and it seems to work fine. I have tested it with my Samsung tv, reading the IR signal with the receiver and then sending it with the transmitter.
However my ultimate goal is to control a Sony receiver (old version, working with an RM-U242 remote control) in the garage that controls the music in the garden. However, I can read the IR code from the remote control (for instance IR : Code 841 - Type: 4 - Bits: 12 for switching to the tuner) but when I send that same command to the transmitter (http://esp_ip/control?cmd=IRSEND,SONY,0x841,12), nothing happens???
I have fixed the IR receiver next to the transmitter and it shows exactly the same result (IR : Code 841 - Type: 4 - Bits: 12) as from the remote control. The receiver does by the way respond to the signal from the remote control. I have send the signal from various distances at the receiver, but still without any result.
Anyone any ideas/suggestions?
I have created an IR transmitter and an IR receiver with two ESP8266 chips and of course the required additional hardware. I have installed esp easy (2) at both ESP's and it seems to work fine. I have tested it with my Samsung tv, reading the IR signal with the receiver and then sending it with the transmitter.
However my ultimate goal is to control a Sony receiver (old version, working with an RM-U242 remote control) in the garage that controls the music in the garden. However, I can read the IR code from the remote control (for instance IR : Code 841 - Type: 4 - Bits: 12 for switching to the tuner) but when I send that same command to the transmitter (http://esp_ip/control?cmd=IRSEND,SONY,0x841,12), nothing happens???
I have fixed the IR receiver next to the transmitter and it shows exactly the same result (IR : Code 841 - Type: 4 - Bits: 12) as from the remote control. The receiver does by the way respond to the signal from the remote control. I have send the signal from various distances at the receiver, but still without any result.
Anyone any ideas/suggestions?
Re: IR Transmitter ?
I think I'm a bit closer to a solution. Some additional searching delivered that the Sony signal needs to be send twice or three times with a delay of about 40ms. Unfortunately, sending the command through http is too slow and I don't see an option to repeat the command automatically at the ESP itself. Rules seem to offer only delays of seconds, not msecs.
Any thoughts/suggestions? Otherwise I will probably drop espeasy in this case and replace it by an arduino core with more dedicated ir pacakge.
Any thoughts/suggestions? Otherwise I will probably drop espeasy in this case and replace it by an arduino core with more dedicated ir pacakge.
Re: IR Transmitter ?
Hi all,
I modified the plugin in the way Marko explain previously in this post to be able to control my LG air conditioning unit. It is working very well from the beginning and it is so simple to make it working. Just use IRrecvDumpV2 to record the raw signal parameters and use them to modify the plugin in the way it was explained before and this is all...
A new library for your AC conditioning unit or TV set it is not needed.
Marko, many thanks!
I modified the plugin in the way Marko explain previously in this post to be able to control my LG air conditioning unit. It is working very well from the beginning and it is so simple to make it working. Just use IRrecvDumpV2 to record the raw signal parameters and use them to modify the plugin in the way it was explained before and this is all...
A new library for your AC conditioning unit or TV set it is not needed.
Marko, many thanks!
Re: IR Transmitter ?
Hi friends,
i found that ins irSend lib we already have support for Fujitsu. Can we update this plugin to use this nice new features ? I don't want use irsend.sendRaw() as we got ready for use commands.
Please advice what can we do ?
i found that ins irSend lib we already have support for Fujitsu. Can we update this plugin to use this nice new features ? I don't want use irsend.sendRaw() as we got ready for use commands.
Please advice what can we do ?
Re: IR Transmitter ?
Hello, I read the before post, but I don't know how to do to control LG Air.
I have installed the ESPEASY, with IR Receiver, and read the HEX Code from remote, type and bits. I have and IR Transmitter ready, I use the command http://xxx.xxx.x.xxx/control?cmd=IRSEND,LG,8800808,28, and I say the info command send, but the IR receiver does not see it, and the LG device neither.
I think I send not a good command, but I am stuck here.
I read you can use a circuit with arduino and extract the raw code, and before modify the lib of esp easy to implement. Really it is necessary ?? It is the only way??
Pleas help me!
I have installed the ESPEASY, with IR Receiver, and read the HEX Code from remote, type and bits. I have and IR Transmitter ready, I use the command http://xxx.xxx.x.xxx/control?cmd=IRSEND,LG,8800808,28, and I say the info command send, but the IR receiver does not see it, and the LG device neither.
I think I send not a good command, but I am stuck here.
I read you can use a circuit with arduino and extract the raw code, and before modify the lib of esp easy to implement. Really it is necessary ?? It is the only way??
Pleas help me!
Re: IR Transmitter ?
Hello,
for LG AC your LG TV code will not work. Try to compile espeasy with a modified plugin 035 that I will post it below. It is working with my model of LG AC. Example of the command to power on the AC unit in cool mode with 22 deg will be something like http://192.168.x.x/control?cmd=IRSEND,LG_ON . With this plugin you have available the following commands: LG_ON,LG_OFF,LG_FAN2,LG_FAN3,LG_L and LG_LL (low low power saving). Try it to see if is working for you
Best regards
//#######################################################################################################
//#################################### Plugin 035: Output IR ############################################
//#######################################################################################################
#include <IRremoteESP8266.h>
IRsend *Plugin_035_irSender;
#define PLUGIN_035
#define PLUGIN_ID_035 35
#define PLUGIN_NAME_035 "Infrared Transmit"
boolean Plugin_035(byte function, struct EventStruct *event, String& string)
{
boolean success = false;
switch (function)
{
case PLUGIN_DEVICE_ADD:
{
Device[++deviceCount].Number = PLUGIN_ID_035;
Device[deviceCount].Type = DEVICE_TYPE_SINGLE;
Device[deviceCount].SendDataOption = false;
break;
}
case PLUGIN_GET_DEVICENAME:
{
string = F(PLUGIN_NAME_035);
break;
}
case PLUGIN_GET_DEVICEVALUENAMES:
{
break;
}
case PLUGIN_INIT:
{
int irPin = Settings.TaskDevicePin1[event->TaskIndex];
if (Plugin_035_irSender == 0 && irPin != -1)
{
addLog(LOG_LEVEL_INFO, "INIT: IR TX");
Plugin_035_irSender = new IRsend(irPin);
Plugin_035_irSender->begin(); // Start the sender
}
if (Plugin_035_irSender != 0 && irPin == -1)
{
addLog(LOG_LEVEL_INFO, "INIT: IR TX Removed");
delete Plugin_035_irSender;
Plugin_035_irSender = 0;
}
success = true;
break;
}
case PLUGIN_WRITE:
{
String IrType;
unsigned long IrCode;
unsigned int IrBits;
char command[120];
command[0] = 0;
char TmpStr1[100];
TmpStr1[0] = 0;
string.toCharArray(command, 120);
unsigned int an[59] = {8750,4150, 500,1600, 450,550, 450,600, 450,600, 450,1600, 450,600, 400,600, 500,550, 500,500, 500,550, 500,550, 450,600, 450,550, 500,550, 450,550, 500,550, 450,1650, 450,600, 400,600, 450,550, 450,600, 450,550, 450,600, 450,600, 450,1600, 450,600, 450,550, 450,600, 450};
unsigned int aus[59] = {8750,4150, 500,1600, 450,550, 450,600, 450,600, 400,1650, 450,550, 450,600, 450,550, 450,1650, 450,1600, 450,600, 450,550, 450,600, 450,550, 450,600, 450,600, 450,550, 450,600, 450,600, 400,600, 450,550, 450,1600, 450,600, 450,1600, 450,600, 450,600, 450,550, 450,1600, 450};
unsigned int an01[59] = {8750,4150, 500,1550, 500,550, 500,550, 500,500, 500,1550, 500,550, 500,500, 500,500, 500,550, 500,550, 500,550, 500,500, 500,550, 500,500, 500,550, 500,500, 500,550, 500,1550, 500,1600, 500,1550, 500,500, 500,550, 500,1600, 500,500, 500,1550, 500,550, 500,500, 550,1550, 500};
unsigned int an02[59] = {8700,4150, 500,1600, 450,550, 500,550, 450,550, 500,1600, 450,600, 450,550, 450,600, 450,550, 450,600, 450,550, 500,550, 450,600, 450,550, 450,600, 450,550, 500,550, 450,1600, 500,1600, 450,1600, 450,600, 450,1600, 450,600, 400,600, 450,1600, 450,600, 450,1600, 450,1600, 450};
unsigned int an03[59] = {8800,4100, 500,1550, 500,550, 500,550, 500,500, 500,1550, 550,500, 500,550, 500,500, 500,1550, 500,1550, 500,550, 500,500, 500,550, 500,500, 500,500, 550,550, 450,550, 500,1600, 500,1550, 500,1550, 500,1550, 500,1550, 500,550, 450,1550, 550,500, 550,500, 500,550, 500,550, 450};
unsigned int an04[59] = {8800,4100, 500,1600, 450,600, 450,550, 500,550, 450,1600, 450,600, 450,550, 500,550, 450,1600, 500,1600, 450,550, 500,550, 450,550, 500,550, 450,550, 500,550, 500,550, 450,1600, 450,1600, 450,1600, 500,1550, 500,1600, 450,1600, 450,550, 500,550, 450,600, 450,600, 400,1600, 450};
unsigned int an1[99] = {3450,1700, 450,450, 400,1300, 450,450, 400,450, 400,450, 450,400, 450,400, 450,400, 450,450, 400,450, 400,450, 450,400, 450,450, 400,1300, 400,450, 450,450, 400,450, 400,450, 450,400, 450,400, 450,450, 400,450, 400,450, 450,1300, 400,450, 450,400, 450,400, 450,400, 450,450, 400,450, 450,400, 450,400, 450,1300, 450,400, 450,1300, 400,1300, 400,1300, 450,1300, 450,400, 450,400, 450,1300, 400,450, 450,1300, 400,1300, 450,1300, 400,1300, 450,400, 450,1300, 400};
unsigned int aus1[99] = {3500,1700, 400,450, 400,1300, 450,450, 400,450, 400,450, 450,400, 450,450, 400,450, 400,450, 400,500, 400,450, 400,450, 400,450, 400,1300, 450,450, 400,450, 400,450, 400,450, 450,450, 400,450, 400,450, 400,450, 450,450, 400,1300, 400,500, 400,450, 400,450, 400,450, 400,450, 400,450, 450,450, 400,450, 400,1300, 450,450, 400,1300, 400,1300, 450,1300, 400,1300, 450,450, 400,450, 400,1300, 450,450, 400,1300, 400,1300, 450,1300, 400,1300, 450,450, 400,1300, 400};
unsigned int an2[67] = {8900,4450, 550,550, 550,600, 550,1650, 550,550, 550,550, 550,550, 600,500, 600,550, 550,1650, 550,1650, 550,600, 550,1700, 500,1650, 550,1700, 550,1650, 600,1600, 600,550, 550,550, 550,550, 600,1600, 600,550, 550,550, 550,550, 600,500, 600,1650, 550,1650, 550,1650, 600,550, 550,1650, 550,1700, 500,1700, 550,1650, 550};
String tmpString = string;
int argIndex = tmpString.indexOf(',');
if (argIndex) tmpString = tmpString.substring(0, argIndex);
if (GetArgv(command, TmpStr1, 2)) IrType = TmpStr1;
if (GetArgv(command, TmpStr1, 3)) IrCode = strtoul(TmpStr1, NULL, 16); //(long) TmpStr1
if (GetArgv(command, TmpStr1, 4)) IrBits = str2int(TmpStr1);
if (tmpString.equalsIgnoreCase("IRSEND") && Plugin_035_irSender != 0)
{
success = true;
if (IrType.equalsIgnoreCase("NEC")) Plugin_035_irSender->sendNEC(IrCode, IrBits);
if (IrType.equalsIgnoreCase("JVC")) Plugin_035_irSender->sendJVC(IrCode, IrBits, 2);
if (IrType.equalsIgnoreCase("RC5")) Plugin_035_irSender->sendRC5(IrCode, IrBits);
if (IrType.equalsIgnoreCase("RC6")) Plugin_035_irSender->sendRC6(IrCode, IrBits);
if (IrType.equalsIgnoreCase("SAMSUNG")) Plugin_035_irSender->sendSAMSUNG(IrCode, IrBits);
if (IrType.equalsIgnoreCase("SONY")) Plugin_035_irSender->sendSony(IrCode, IrBits);
if (IrType.equalsIgnoreCase("PANASONIC")) Plugin_035_irSender->sendPanasonic(IrBits, IrCode);
if (IrType.equalsIgnoreCase("LG_ON")) Plugin_035_irSender->sendRaw(an,59,38);
if (IrType.equalsIgnoreCase("LG_OFF")) Plugin_035_irSender->sendRaw(aus,59,38);
if (IrType.equalsIgnoreCase("LG_FAN2")) Plugin_035_irSender->sendRaw(an01,59,38);
if (IrType.equalsIgnoreCase("LG_FAN3")) Plugin_035_irSender->sendRaw(an02,59,38);
if (IrType.equalsIgnoreCase("LG_L")) Plugin_035_irSender->sendRaw(an03,59,38);
if (IrType.equalsIgnoreCase("LG_LL")) Plugin_035_irSender->sendRaw(an04,59,38);
if (IrType.equalsIgnoreCase("PN_ON")) Plugin_035_irSender->sendRaw(an1,99,35);
if (IrType.equalsIgnoreCase("PN_OFF")) Plugin_035_irSender->sendRaw(aus1,99,35);
if (IrType.equalsIgnoreCase("LG_TV")) Plugin_035_irSender->sendRaw(an2,67,38);
addLog(LOG_LEVEL_INFO, "IR Code Sent");
if (printToWeb)
{
printWebString += F("IR Code Sent ");
printWebString += IrType;
printWebString += F("<BR>");
}
}
break;
}
}
return success;
}
for LG AC your LG TV code will not work. Try to compile espeasy with a modified plugin 035 that I will post it below. It is working with my model of LG AC. Example of the command to power on the AC unit in cool mode with 22 deg will be something like http://192.168.x.x/control?cmd=IRSEND,LG_ON . With this plugin you have available the following commands: LG_ON,LG_OFF,LG_FAN2,LG_FAN3,LG_L and LG_LL (low low power saving). Try it to see if is working for you
Best regards
//#######################################################################################################
//#################################### Plugin 035: Output IR ############################################
//#######################################################################################################
#include <IRremoteESP8266.h>
IRsend *Plugin_035_irSender;
#define PLUGIN_035
#define PLUGIN_ID_035 35
#define PLUGIN_NAME_035 "Infrared Transmit"
boolean Plugin_035(byte function, struct EventStruct *event, String& string)
{
boolean success = false;
switch (function)
{
case PLUGIN_DEVICE_ADD:
{
Device[++deviceCount].Number = PLUGIN_ID_035;
Device[deviceCount].Type = DEVICE_TYPE_SINGLE;
Device[deviceCount].SendDataOption = false;
break;
}
case PLUGIN_GET_DEVICENAME:
{
string = F(PLUGIN_NAME_035);
break;
}
case PLUGIN_GET_DEVICEVALUENAMES:
{
break;
}
case PLUGIN_INIT:
{
int irPin = Settings.TaskDevicePin1[event->TaskIndex];
if (Plugin_035_irSender == 0 && irPin != -1)
{
addLog(LOG_LEVEL_INFO, "INIT: IR TX");
Plugin_035_irSender = new IRsend(irPin);
Plugin_035_irSender->begin(); // Start the sender
}
if (Plugin_035_irSender != 0 && irPin == -1)
{
addLog(LOG_LEVEL_INFO, "INIT: IR TX Removed");
delete Plugin_035_irSender;
Plugin_035_irSender = 0;
}
success = true;
break;
}
case PLUGIN_WRITE:
{
String IrType;
unsigned long IrCode;
unsigned int IrBits;
char command[120];
command[0] = 0;
char TmpStr1[100];
TmpStr1[0] = 0;
string.toCharArray(command, 120);
unsigned int an[59] = {8750,4150, 500,1600, 450,550, 450,600, 450,600, 450,1600, 450,600, 400,600, 500,550, 500,500, 500,550, 500,550, 450,600, 450,550, 500,550, 450,550, 500,550, 450,1650, 450,600, 400,600, 450,550, 450,600, 450,550, 450,600, 450,600, 450,1600, 450,600, 450,550, 450,600, 450};
unsigned int aus[59] = {8750,4150, 500,1600, 450,550, 450,600, 450,600, 400,1650, 450,550, 450,600, 450,550, 450,1650, 450,1600, 450,600, 450,550, 450,600, 450,550, 450,600, 450,600, 450,550, 450,600, 450,600, 400,600, 450,550, 450,1600, 450,600, 450,1600, 450,600, 450,600, 450,550, 450,1600, 450};
unsigned int an01[59] = {8750,4150, 500,1550, 500,550, 500,550, 500,500, 500,1550, 500,550, 500,500, 500,500, 500,550, 500,550, 500,550, 500,500, 500,550, 500,500, 500,550, 500,500, 500,550, 500,1550, 500,1600, 500,1550, 500,500, 500,550, 500,1600, 500,500, 500,1550, 500,550, 500,500, 550,1550, 500};
unsigned int an02[59] = {8700,4150, 500,1600, 450,550, 500,550, 450,550, 500,1600, 450,600, 450,550, 450,600, 450,550, 450,600, 450,550, 500,550, 450,600, 450,550, 450,600, 450,550, 500,550, 450,1600, 500,1600, 450,1600, 450,600, 450,1600, 450,600, 400,600, 450,1600, 450,600, 450,1600, 450,1600, 450};
unsigned int an03[59] = {8800,4100, 500,1550, 500,550, 500,550, 500,500, 500,1550, 550,500, 500,550, 500,500, 500,1550, 500,1550, 500,550, 500,500, 500,550, 500,500, 500,500, 550,550, 450,550, 500,1600, 500,1550, 500,1550, 500,1550, 500,1550, 500,550, 450,1550, 550,500, 550,500, 500,550, 500,550, 450};
unsigned int an04[59] = {8800,4100, 500,1600, 450,600, 450,550, 500,550, 450,1600, 450,600, 450,550, 500,550, 450,1600, 500,1600, 450,550, 500,550, 450,550, 500,550, 450,550, 500,550, 500,550, 450,1600, 450,1600, 450,1600, 500,1550, 500,1600, 450,1600, 450,550, 500,550, 450,600, 450,600, 400,1600, 450};
unsigned int an1[99] = {3450,1700, 450,450, 400,1300, 450,450, 400,450, 400,450, 450,400, 450,400, 450,400, 450,450, 400,450, 400,450, 450,400, 450,450, 400,1300, 400,450, 450,450, 400,450, 400,450, 450,400, 450,400, 450,450, 400,450, 400,450, 450,1300, 400,450, 450,400, 450,400, 450,400, 450,450, 400,450, 450,400, 450,400, 450,1300, 450,400, 450,1300, 400,1300, 400,1300, 450,1300, 450,400, 450,400, 450,1300, 400,450, 450,1300, 400,1300, 450,1300, 400,1300, 450,400, 450,1300, 400};
unsigned int aus1[99] = {3500,1700, 400,450, 400,1300, 450,450, 400,450, 400,450, 450,400, 450,450, 400,450, 400,450, 400,500, 400,450, 400,450, 400,450, 400,1300, 450,450, 400,450, 400,450, 400,450, 450,450, 400,450, 400,450, 400,450, 450,450, 400,1300, 400,500, 400,450, 400,450, 400,450, 400,450, 400,450, 450,450, 400,450, 400,1300, 450,450, 400,1300, 400,1300, 450,1300, 400,1300, 450,450, 400,450, 400,1300, 450,450, 400,1300, 400,1300, 450,1300, 400,1300, 450,450, 400,1300, 400};
unsigned int an2[67] = {8900,4450, 550,550, 550,600, 550,1650, 550,550, 550,550, 550,550, 600,500, 600,550, 550,1650, 550,1650, 550,600, 550,1700, 500,1650, 550,1700, 550,1650, 600,1600, 600,550, 550,550, 550,550, 600,1600, 600,550, 550,550, 550,550, 600,500, 600,1650, 550,1650, 550,1650, 600,550, 550,1650, 550,1700, 500,1700, 550,1650, 550};
String tmpString = string;
int argIndex = tmpString.indexOf(',');
if (argIndex) tmpString = tmpString.substring(0, argIndex);
if (GetArgv(command, TmpStr1, 2)) IrType = TmpStr1;
if (GetArgv(command, TmpStr1, 3)) IrCode = strtoul(TmpStr1, NULL, 16); //(long) TmpStr1
if (GetArgv(command, TmpStr1, 4)) IrBits = str2int(TmpStr1);
if (tmpString.equalsIgnoreCase("IRSEND") && Plugin_035_irSender != 0)
{
success = true;
if (IrType.equalsIgnoreCase("NEC")) Plugin_035_irSender->sendNEC(IrCode, IrBits);
if (IrType.equalsIgnoreCase("JVC")) Plugin_035_irSender->sendJVC(IrCode, IrBits, 2);
if (IrType.equalsIgnoreCase("RC5")) Plugin_035_irSender->sendRC5(IrCode, IrBits);
if (IrType.equalsIgnoreCase("RC6")) Plugin_035_irSender->sendRC6(IrCode, IrBits);
if (IrType.equalsIgnoreCase("SAMSUNG")) Plugin_035_irSender->sendSAMSUNG(IrCode, IrBits);
if (IrType.equalsIgnoreCase("SONY")) Plugin_035_irSender->sendSony(IrCode, IrBits);
if (IrType.equalsIgnoreCase("PANASONIC")) Plugin_035_irSender->sendPanasonic(IrBits, IrCode);
if (IrType.equalsIgnoreCase("LG_ON")) Plugin_035_irSender->sendRaw(an,59,38);
if (IrType.equalsIgnoreCase("LG_OFF")) Plugin_035_irSender->sendRaw(aus,59,38);
if (IrType.equalsIgnoreCase("LG_FAN2")) Plugin_035_irSender->sendRaw(an01,59,38);
if (IrType.equalsIgnoreCase("LG_FAN3")) Plugin_035_irSender->sendRaw(an02,59,38);
if (IrType.equalsIgnoreCase("LG_L")) Plugin_035_irSender->sendRaw(an03,59,38);
if (IrType.equalsIgnoreCase("LG_LL")) Plugin_035_irSender->sendRaw(an04,59,38);
if (IrType.equalsIgnoreCase("PN_ON")) Plugin_035_irSender->sendRaw(an1,99,35);
if (IrType.equalsIgnoreCase("PN_OFF")) Plugin_035_irSender->sendRaw(aus1,99,35);
if (IrType.equalsIgnoreCase("LG_TV")) Plugin_035_irSender->sendRaw(an2,67,38);
addLog(LOG_LEVEL_INFO, "IR Code Sent");
if (printToWeb)
{
printWebString += F("IR Code Sent ");
printWebString += IrType;
printWebString += F("<BR>");
}
}
break;
}
}
return success;
}
Re: IR Transmitter ?
Thank you Stefan!!!
I have been reviewing the p35, and I have managed to make it work, after getting it I have seen your post, the solution is very similar to yours, adding the lines with LG.
Thank You!! Now working!
I have been reviewing the p35, and I have managed to make it work, after getting it I have seen your post, the solution is very similar to yours, adding the lines with LG.
Thank You!! Now working!
Re: IR Transmitter ?
I've got this information for a remote code for my Optoma HD 65 which I confirmed working when I tried it with "Unified remote control" for Android with my Samsung S6.
But my questions is, how can I get from this code to the b32 code mentioned in this thread? I should be able to convert it, right?
But my questions is, how can I get from this code to the b32 code mentioned in this thread? I should be able to convert it, right?
Thanks in advance!Power NEC2 Device Code: 79.80 (0x4F.0x50) Function: 2 (0x02)
0000 006D 0000 0022 0157 00AC 0015 0041 0015 0041 0015 0041 0015 0041 0015 0016 0015 0016 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0016 0015 0041 0015 0016 0015 0016 0015 0041 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0016 0015 0041 0015 0016 0015 0041 0015 0041 0015 0041 0015 0041 0015 0041 0015 0041 0015 0689
Re: IR Transmitter ?
Hi olleman,
What are those numbers? Are them Pulse & Blank timings? Seems weir that the firsts "pulses" are 0000. Can you confirm it? If you have other way to get the pulses & blanks, you could try it.
Also, did you try to use the NEC protocol? I remmembet that this plugin has this protocol implemented.
What are those numbers? Are them Pulse & Blank timings? Seems weir that the firsts "pulses" are 0000. Can you confirm it? If you have other way to get the pulses & blanks, you could try it.
Also, did you try to use the NEC protocol? I remmembet that this plugin has this protocol implemented.
Re: IR Transmitter ?
Hello,
It's "Pronto hex". It's some kind of raw format since this can be used without selecting a protocol. More information here: http://www.remotecentral.com/features/irdisp2.htm
My Optoma seems to be using "NEC2" but I'd like tro try to use the NEC protocol, the problem is that I have no idea what shorter HEX I should use and I don't have an IR receiver at this moment. I need a format that looks like this:
http://192.168.4.138/control?cmd=IRSEND,NEC,4bb620df,32
Any ideas?
It's "Pronto hex". It's some kind of raw format since this can be used without selecting a protocol. More information here: http://www.remotecentral.com/features/irdisp2.htm
My Optoma seems to be using "NEC2" but I'd like tro try to use the NEC protocol, the problem is that I have no idea what shorter HEX I should use and I don't have an IR receiver at this moment. I need a format that looks like this:
http://192.168.4.138/control?cmd=IRSEND,NEC,4bb620df,32
Any ideas?
Re: IR Transmitter ?
I don't know how to go from pulse & blanks to de mini-hex that espeasy-nec2 protocol needs. But, if you can convert that pronto hex to the sequence of timings that RAW protocol expect, then you can create the Base32 string and use with that protocol (RAW). There is, in this same forum-topic, a python script and an Excel spreedsheet to convert from Pulse & Blank to Base32. Is not always easy and possible the convertion, but at least is a way to try if an unknown protocol can be used.
Maybe other user can explain the NEC protocol and the numbers that you gave in the example. Let me know if you have any doubt.
Maybe other user can explain the NEC protocol and the numbers that you gave in the example. Let me know if you have any doubt.
Re: IR Transmitter ?
Thanks, I have ordered an ir receiver so i Can try the route with raw code but I'll probably be back for some support regarding that matter:)
Re: IR Transmitter ?
Could someone pls explain how I can compile this using Arduino IDE? I get compiling errors, e.g. 'FreeMem' was not declared in this scopeThinkPad wrote: ↑20 Aug 2016, 10:45 I got the _P106_IRTX.ino plugin working! It works really good!
How to do it:
- Download ESPEasy source (from .zip or from GitHub)
- Download the plugin and place it in the same folder as 'ESPEasy.ino' and the other *.ino files
- Download the IRremoteESP8266.h and also put in same folder as above
- Compile & upload to your device (i used a Wemos D1 Mini board)
- Then under 'Devices' in ESPEasy, select 'Infrared Transmit' and choose the GPIO pin that you have the IR Transmitter connected to. For Wemos D1 Mini i connected the transmitter to pin 'D1', which is GPIO5 in ESPEasy.
When trying to open ESPEasy.ino Arduino IDE says "ESP must have it´s own folder..."
-
- Normal user
- Posts: 66
- Joined: 16 Feb 2017, 09:23
Re: IR Transmitter ?
Does anyone know how to use rules to do an IR transmit?
I can do http://192.168.0.142/control?cmd=IRSEND,NEC,C1AA09F6,32 and that works.
So I guess I can do an http call to 127.0.0.1 as well, but thats ugly.
Is there a direct way to issue an ijsend from rules?
I can do http://192.168.0.142/control?cmd=IRSEND,NEC,C1AA09F6,32 and that works.
So I guess I can do an http call to 127.0.0.1 as well, but thats ugly.
Is there a direct way to issue an ijsend from rules?
Re: IR Transmitter ?
I have a Friedrich window AC unit that I am trying to control. I dont have the remote so it made the process of getting the codes difficult. I ended up finding an app on my old galaxy s4 that just had the on/off feature baked in.
From there I used the arduino sketch to figure out it was using the NEC protocol. From there I used IRscrutinizer to find out more details, protocol = NEC1, device = 129, subdevice = 102, obc = 129. Then I painstakingly went through all the obc codes to find out what functions did what on my unit. So thats where I am now. I feel like I have everything I need to continue except for a way to get the timing in either raw or ccf into the NEC hex thats needed for this to work.
This is the output from irscrutinizer. As you can see it has both raw and ccf. I just dont know how to get a clean hex out of this. Do I i have to output these commands from irscrutinizer to an arduino running the ir decode sketch on another computer to get the hex? Any ideas would be great. Thank you.
From there I used the arduino sketch to figure out it was using the NEC protocol. From there I used IRscrutinizer to find out more details, protocol = NEC1, device = 129, subdevice = 102, obc = 129. Then I painstakingly went through all the obc codes to find out what functions did what on my unit. So thats where I am now. I feel like I have everything I need to continue except for a way to get the timing in either raw or ccf into the NEC hex thats needed for this to work.
Code: Select all
<?xml version="1.0" encoding="WINDOWS-1252" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="simplehtml.xsl"?><!--This file is in the Girr (General IR Remote) format, see http://www.harctoolbox.org/Girr.html--><remotes xmlns="http://www.harctoolbox.org/Girr" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" girrVersion="1.0" title="IrScrutinizer parametric export" xsi:schemaLocation="http://www.harctoolbox.org/Girr http://www.harctoolbox.org/schemas/girr_ns.xsd">
<adminData>
<creationData creatingUser="Jackie" creationDate="2018-03-07_22:02:47" source="IrScrutinizer parametrized table" tool="IrScrutinizer" tool2="DecodeIR" tool2Version="2.45" toolVersion="1.4.1"/>
</adminData>
<remote comment="Export from IrScrutinizer" deviceClass="" displayName="" manufacturer="Friedrich" model="" name="AC" remoteName="no remote">
<commandSet name="commandSet">
<command comment="on off" master="parameters" name="nec1_D129S102F129">
<parameters protocol="nec1">
<parameter name="S" value="102"/>
<parameter name="D" value="129"/>
<parameter name="F" value="129"/>
</parameters>
<raw frequency="38400">
<intro>+9024 -4512 +564 -1692 +564 -564 +564 -564 +564 -564 +564 -564 +564 -564 +564 -564 +564 -1692 +564 -564 +564 -1692 +564 -1692 +564 -564 +564 -564 +564 -1692 +564 -1692 +564 -564 +564 -1692 +564 -564 +564 -564 +564 -564 +564 -564 +564 -564 +564 -564 +564 -1692 +564 -564 +564 -1692 +564 -1692 +564 -1692 +564 -1692 +564 -1692 +564 -1692 +564 -564 +564 -42012</intro>
<repeat>+9024 -2256 +564 -96156</repeat>
</raw>
<ccf>0000 006C 0022 0002 015B 00AD 0016 0041 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0041 0016 0016 0016 0041 0016 0041 0016 0016 0016 0016 0016 0041 0016 0041 0016 0016 0016 0041 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0041 0016 0016 0016 0041 0016 0041 0016 0041 0016 0041 0016 0041 0016 0041 0016 0016 0016 064D 015B 0057 0016 0E6C</ccf>
</command>
<command comment="money saver" master="parameters" name="nec1_D129S102F141">
<parameters protocol="nec1">
<parameter name="S" value="102"/>
<parameter name="D" value="129"/>
<parameter name="F" value="141"/>
</parameters>
<raw frequency="38400">
<intro>+9024 -4512 +564 -1692 +564 -564 +564 -564 +564 -564 +564 -564 +564 -564 +564 -564 +564 -1692 +564 -564 +564 -1692 +564 -1692 +564 -564 +564 -564 +564 -1692 +564 -1692 +564 -564 +564 -1692 +564 -564 +564 -1692 +564 -1692 +564 -564 +564 -564 +564 -564 +564 -1692 +564 -564 +564 -1692 +564 -564 +564 -564 +564 -1692 +564 -1692 +564 -1692 +564 -564 +564 -42012</intro>
<repeat>+9024 -2256 +564 -96156</repeat>
</raw>
<ccf>0000 006C 0022 0002 015B 00AD 0016 0041 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0041 0016 0016 0016 0041 0016 0041 0016 0016 0016 0016 0016 0041 0016 0041 0016 0016 0016 0041 0016 0016 0016 0041 0016 0041 0016 0016 0016 0016 0016 0016 0016 0041 0016 0016 0016 0041 0016 0016 0016 0016 0016 0041 0016 0041 0016 0041 0016 0016 0016 064D 015B 0057 0016 0E6C</ccf>
</command>
<command comment="??? 1-8" master="parameters" name="nec1_D129S102F147">
<parameters protocol="nec1">
<parameter name="S" value="102"/>
<parameter name="D" value="129"/>
<parameter name="F" value="147"/>
</parameters>
<raw frequency="38400">
<intro>+9024 -4512 +564 -1692 +564 -564 +564 -564 +564 -564 +564 -564 +564 -564 +564 -564 +564 -1692 +564 -564 +564 -1692 +564 -1692 +564 -564 +564 -564 +564 -1692 +564 -1692 +564 -564 +564 -1692 +564 -1692 +564 -564 +564 -564 +564 -1692 +564 -564 +564 -564 +564 -1692 +564 -564 +564 -564 +564 -1692 +564 -1692 +564 -564 +564 -1692 +564 -1692 +564 -564 +564 -42012</intro>
<repeat>+9024 -2256 +564 -96156</repeat>
</raw>
<ccf>0000 006C 0022 0002 015B 00AD 0016 0041 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0041 0016 0016 0016 0041 0016 0041 0016 0016 0016 0016 0016 0041 0016 0041 0016 0016 0016 0041 0016 0041 0016 0016 0016 0016 0016 0041 0016 0016 0016 0016 0016 0041 0016 0016 0016 0016 0016 0041 0016 0041 0016 0016 0016 0041 0016 0041 0016 0016 0016 064D 015B 0057 0016 0E6C</ccf>
</command>
<command comment="fan speed" master="parameters" name="nec1_D129S102F153">
<parameters protocol="nec1">
<parameter name="S" value="102"/>
<parameter name="D" value="129"/>
<parameter name="F" value="153"/>
</parameters>
<raw frequency="38400">
<intro>+9024 -4512 +564 -1692 +564 -564 +564 -564 +564 -564 +564 -564 +564 -564 +564 -564 +564 -1692 +564 -564 +564 -1692 +564 -1692 +564 -564 +564 -564 +564 -1692 +564 -1692 +564 -564 +564 -1692 +564 -564 +564 -564 +564 -1692 +564 -1692 +564 -564 +564 -564 +564 -1692 +564 -564 +564 -1692 +564 -1692 +564 -564 +564 -564 +564 -1692 +564 -1692 +564 -564 +564 -42012</intro>
<repeat>+9024 -2256 +564 -96156</repeat>
</raw>
<ccf>0000 006C 0022 0002 015B 00AD 0016 0041 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0041 0016 0016 0016 0041 0016 0041 0016 0016 0016 0016 0016 0041 0016 0041 0016 0016 0016 0041 0016 0016 0016 0016 0016 0041 0016 0041 0016 0016 0016 0016 0016 0041 0016 0016 0016 0041 0016 0041 0016 0016 0016 0016 0016 0041 0016 0041 0016 0016 0016 064D 015B 0057 0016 0E6C</ccf>
</command>
<command comment="mode" master="parameters" name="nec1_D129S102F155">
<parameters protocol="nec1">
<parameter name="S" value="102"/>
<parameter name="D" value="129"/>
<parameter name="F" value="155"/>
</parameters>
<raw frequency="38400">
<intro>+9024 -4512 +564 -1692 +564 -564 +564 -564 +564 -564 +564 -564 +564 -564 +564 -564 +564 -1692 +564 -564 +564 -1692 +564 -1692 +564 -564 +564 -564 +564 -1692 +564 -1692 +564 -564 +564 -1692 +564 -1692 +564 -564 +564 -1692 +564 -1692 +564 -564 +564 -564 +564 -1692 +564 -564 +564 -564 +564 -1692 +564 -564 +564 -564 +564 -1692 +564 -1692 +564 -564 +564 -42012</intro>
<repeat>+9024 -2256 +564 -96156</repeat>
</raw>
<ccf>0000 006C 0022 0002 015B 00AD 0016 0041 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0041 0016 0016 0016 0041 0016 0041 0016 0016 0016 0016 0016 0041 0016 0041 0016 0016 0016 0041 0016 0041 0016 0016 0016 0041 0016 0041 0016 0016 0016 0016 0016 0041 0016 0016 0016 0016 0016 0041 0016 0016 0016 0016 0016 0041 0016 0041 0016 0016 0016 064D 015B 0057 0016 0E6C</ccf>
</command>
<command comment="timer" master="parameters" name="nec1_D129S102F159">
<parameters protocol="nec1">
<parameter name="S" value="102"/>
<parameter name="D" value="129"/>
<parameter name="F" value="159"/>
</parameters>
<raw frequency="38400">
<intro>+9024 -4512 +564 -1692 +564 -564 +564 -564 +564 -564 +564 -564 +564 -564 +564 -564 +564 -1692 +564 -564 +564 -1692 +564 -1692 +564 -564 +564 -564 +564 -1692 +564 -1692 +564 -564 +564 -1692 +564 -1692 +564 -1692 +564 -1692 +564 -1692 +564 -564 +564 -564 +564 -1692 +564 -564 +564 -564 +564 -564 +564 -564 +564 -564 +564 -1692 +564 -1692 +564 -564 +564 -42012</intro>
<repeat>+9024 -2256 +564 -96156</repeat>
</raw>
<ccf>0000 006C 0022 0002 015B 00AD 0016 0041 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0041 0016 0016 0016 0041 0016 0041 0016 0016 0016 0016 0016 0041 0016 0041 0016 0016 0016 0041 0016 0041 0016 0041 0016 0041 0016 0041 0016 0016 0016 0016 0016 0041 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0041 0016 0041 0016 0016 0016 064D 015B 0057 0016 0E6C</ccf>
</command>
<command comment="also money saver" master="parameters" name="nec1_D129S102F130">
<parameters protocol="nec1">
<parameter name="S" value="102"/>
<parameter name="D" value="129"/>
<parameter name="F" value="130"/>
</parameters>
<raw frequency="38400">
<intro>+9024 -4512 +564 -1692 +564 -564 +564 -564 +564 -564 +564 -564 +564 -564 +564 -564 +564 -1692 +564 -564 +564 -1692 +564 -1692 +564 -564 +564 -564 +564 -1692 +564 -1692 +564 -564 +564 -564 +564 -1692 +564 -564 +564 -564 +564 -564 +564 -564 +564 -564 +564 -1692 +564 -1692 +564 -564 +564 -1692 +564 -1692 +564 -1692 +564 -1692 +564 -1692 +564 -564 +564 -42012</intro>
<repeat>+9024 -2256 +564 -96156</repeat>
</raw>
<ccf>0000 006C 0022 0002 015B 00AD 0016 0041 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0041 0016 0016 0016 0041 0016 0041 0016 0016 0016 0016 0016 0041 0016 0041 0016 0016 0016 0016 0016 0041 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0041 0016 0041 0016 0016 0016 0041 0016 0041 0016 0041 0016 0041 0016 0041 0016 0016 0016 064D 015B 0057 0016 0E6C</ccf>
</command>
<command comment="temp up" master="parameters" name="nec1_D129S102F133">
<parameters protocol="nec1">
<parameter name="S" value="102"/>
<parameter name="D" value="129"/>
<parameter name="F" value="133"/>
</parameters>
<raw frequency="38400">
<intro>+9024 -4512 +564 -1692 +564 -564 +564 -564 +564 -564 +564 -564 +564 -564 +564 -564 +564 -1692 +564 -564 +564 -1692 +564 -1692 +564 -564 +564 -564 +564 -1692 +564 -1692 +564 -564 +564 -1692 +564 -564 +564 -1692 +564 -564 +564 -564 +564 -564 +564 -564 +564 -1692 +564 -564 +564 -1692 +564 -564 +564 -1692 +564 -1692 +564 -1692 +564 -1692 +564 -564 +564 -42012</intro>
<repeat>+9024 -2256 +564 -96156</repeat>
</raw>
<ccf>0000 006C 0022 0002 015B 00AD 0016 0041 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0041 0016 0016 0016 0041 0016 0041 0016 0016 0016 0016 0016 0041 0016 0041 0016 0016 0016 0041 0016 0016 0016 0041 0016 0016 0016 0016 0016 0016 0016 0016 0016 0041 0016 0016 0016 0041 0016 0016 0016 0041 0016 0041 0016 0041 0016 0041 0016 0016 0016 064D 015B 0057 0016 0E6C</ccf>
</command>
<command comment="temp down" master="parameters" name="nec1_D129S102F138">
<parameters protocol="nec1">
<parameter name="S" value="102"/>
<parameter name="D" value="129"/>
<parameter name="F" value="138"/>
</parameters>
<raw frequency="38400">
<intro>+9024 -4512 +564 -1692 +564 -564 +564 -564 +564 -564 +564 -564 +564 -564 +564 -564 +564 -1692 +564 -564 +564 -1692 +564 -1692 +564 -564 +564 -564 +564 -1692 +564 -1692 +564 -564 +564 -564 +564 -1692 +564 -564 +564 -1692 +564 -564 +564 -564 +564 -564 +564 -1692 +564 -1692 +564 -564 +564 -1692 +564 -564 +564 -1692 +564 -1692 +564 -1692 +564 -564 +564 -42012</intro>
<repeat>+9024 -2256 +564 -96156</repeat>
</raw>
<ccf>0000 006C 0022 0002 015B 00AD 0016 0041 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0016 0041 0016 0016 0016 0041 0016 0041 0016 0016 0016 0016 0016 0041 0016 0041 0016 0016 0016 0016 0016 0041 0016 0016 0016 0041 0016 0016 0016 0016 0016 0016 0016 0041 0016 0041 0016 0016 0016 0041 0016 0016 0016 0041 0016 0041 0016 0041 0016 0016 0016 064D 015B 0057 0016 0E6C</ccf>
</command>
</commandSet>
</remote>
</remotes>
Re: IR Transmitter ?
Hi guys,
Some help needed here. I'd like to control my Marantz receiver, but the code is not recognized so obviously I will have to use RAW. I've read the complete post but I'm somehow lost how to convert to correct string. Could someone help ?
first Key
Unknown encoding: F5EEEEC8 (32 bits)
Raw (32): 950 -850 900 -850 950 -800 1800 -850 950 -800 950 -800 950 -4350 900 -850 950 -800 950 -800 1000 -750 950 -1700 1800 -1750 900 -850 1800 -1700 1850
4116E6B0
Unknown encoding: 4116E6B0 (32 bits)
Raw (30): 900 -850 1800 -1700 1800 -850 1000 -750 1050 -750 950 -4300 950 -800 1000 -750 1050 -750 950 -800 950 -1700 1800 -1750 850 -900 1750 -1750 1750
49B0F625
second key
BABD6F45
Unknown encoding: BABD6F45 (32 bits)
Raw (34): 950 -800 950 -850 900 -850 1750 -900 900 -850 900 -900 850 -4400 850 -900 900 -850 900 -850 900 -1750 1750 -900 850 -1800 1750 -850 900 -900 850 -1750 900
FA16AD6D
Unknown encoding: FA16AD6D (32 bits)
Raw (32): 850 -900 1750 -1800 1700 -900 950 -850 1000 -750 1000 -4250 1000 -750 1000 -750 1000 -800 900 -1700 1850 -850 850 -1800 1750 -850 900 -900 850 -1750 900
Some help needed here. I'd like to control my Marantz receiver, but the code is not recognized so obviously I will have to use RAW. I've read the complete post but I'm somehow lost how to convert to correct string. Could someone help ?
first Key
Unknown encoding: F5EEEEC8 (32 bits)
Raw (32): 950 -850 900 -850 950 -800 1800 -850 950 -800 950 -800 950 -4350 900 -850 950 -800 950 -800 1000 -750 950 -1700 1800 -1750 900 -850 1800 -1700 1850
4116E6B0
Unknown encoding: 4116E6B0 (32 bits)
Raw (30): 900 -850 1800 -1700 1800 -850 1000 -750 1050 -750 950 -4300 950 -800 1000 -750 1050 -750 950 -800 950 -1700 1800 -1750 850 -900 1750 -1750 1750
49B0F625
second key
BABD6F45
Unknown encoding: BABD6F45 (32 bits)
Raw (34): 950 -800 950 -850 900 -850 1750 -900 900 -850 900 -900 850 -4400 850 -900 900 -850 900 -850 900 -1750 1750 -900 850 -1800 1750 -850 900 -900 850 -1750 900
FA16AD6D
Unknown encoding: FA16AD6D (32 bits)
Raw (32): 850 -900 1750 -1800 1700 -900 950 -850 1000 -750 1000 -4250 1000 -750 1000 -750 1000 -800 900 -1700 1850 -850 850 -1800 1750 -850 900 -900 850 -1750 900
Re: IR Transmitter ?
Hi.
Try this value for the first example and see if it works: 2LL85AJ5J
I got this using 750 as pulse and space.
Try this value for the first example and see if it works: 2LL85AJ5J
I got this using 750 as pulse and space.
Re: IR Transmitter ?
Hello.
Firstly, I have no idea what I'm doing! But despite that, I was able to get my d1 mini (R148) to control the TV and light via the IR Transmitter. Thank you.
ThinkPad and Marko's posts were invaluable and allowed me to add the raw codes with the modification. I wanted to include control for the AC too. The three codes are very long compared to the others and they all work... INDIVIDUALLY.
If I comment-out any two of the following three codes... They each WORK. If I uncomment any more than one of these related statements, the device is no longer reachable via ip after compile/uploading...
unsigned int yac[439] = ...
// unsigned int yaf[439] = ...
// unsigned int yad[439] = ...
...
if (IrType.equalsIgnoreCase("YadaCOOL")) Plugin_035_irSender->sendRaw(yac,439,38);
// if (IrType.equalsIgnoreCase("YadaACOFF")) Plugin_035_irSender->sendRaw(yaf,439,38);
// if (IrType.equalsIgnoreCase("YadaHEAT")) Plugin_035_irSender->sendRaw(yad,439,38);
Memory issue? It's appears to be beyond my feeble mind!
- Jim
//#######################################################################################################
//#################################### Plugin 035: Output IR ############################################
//#######################################################################################################
#include <IRremoteESP8266.h>
IRsend *Plugin_035_irSender;
#define PLUGIN_035
#define PLUGIN_ID_035 35
#define PLUGIN_NAME_035 "Infrared Transmit"
boolean Plugin_035(byte function, struct EventStruct *event, String& string)
{
boolean success = false;
switch (function)
{
case PLUGIN_DEVICE_ADD:
{
Device[++deviceCount].Number = PLUGIN_ID_035;
Device[deviceCount].Type = DEVICE_TYPE_SINGLE;
Device[deviceCount].SendDataOption = false;
break;
}
case PLUGIN_GET_DEVICENAME:
{
string = F(PLUGIN_NAME_035);
break;
}
case PLUGIN_GET_DEVICEVALUENAMES:
{
break;
}
case PLUGIN_INIT:
{
int irPin = Settings.TaskDevicePin1[event->TaskIndex];
if (Plugin_035_irSender == 0 && irPin != -1)
{
addLog(LOG_LEVEL_INFO, "INIT: IR TX");
Plugin_035_irSender = new IRsend(irPin);
Plugin_035_irSender->begin(); // Start the sender
}
if (Plugin_035_irSender != 0 && irPin == -1)
{
addLog(LOG_LEVEL_INFO, "INIT: IR TX Removed");
delete Plugin_035_irSender;
Plugin_035_irSender = 0;
}
success = true;
break;
}
case PLUGIN_WRITE:
{
String IrType;
unsigned long IrCode;
unsigned int IrBits;
char command[80];
command[0] = 0;
char TmpStr1[80];
TmpStr1[0] = 0;
string.toCharArray(command, 80);
// unsigned int an[180] = {3250,1450,500,300,450,1100,500,300,450,350,450,1100,500,300,450,1100,500,300,500,300,450,1100,500,1050,500,1100,500,300,450,1100,450,350,500,1050,500,1100,450,1100,500,300,450,300,500,300,500,300,450,1100,500,1100,450,300,500,1100,450,1100,450,350,500,300,450,1100,500,300,500,300,450,1100,450,350,450,300,500,1100,450,1100,500,300,500,1050,500,1100,450,1100,450,1150,450,1100,450,1150,450,1100,500,1050,500,1100,450,300,500,300,500,300,450,350,450,300,500,300,450,350,450,300,500,1100,500,1050,500,1100,450,1100,500,300,450,350,450,1100,450,1100,500,1100,500,300,450,300,450,350,500,1050,500,1100,500,300,450,300,500,300,450,350,450,1100,500,1050,500,300,500,300,450,1100,500,1100,500,1050,450,1150,450,300,500,300,500,1050,500,1100,500,300,450,300,500,300,500,};
// unsigned int aus[180] = {3200,1500,450,300,500,1100,450,300,500,300,500,1050,500,300,500,1100,450,300,500,300,500,1050,500,1100,450,1100,500,300,500,1050,500,300,450,1150,450,1100,450,1100,500,300,500,300,500,300,450,300,500,1100,450,1100,500,300,500,1050,450,1150,450,300,500,300,450,1150,450,300,500,300,450,1100,500,300,450,350,450,1100,500,1100,450,300,500,1100,450,1100,450,1150,450,1100,450,1100,500,1100,500,1050,500,1100,450,1100,500,300,500,300,450,300,500,300,450,350,450,300,500,300,450,350,450,1100,500,1100,450,1100,450,1150,450,300,500,300,500,1050,500,1100,450,1100,500,300,450,350,450,300,500,1100,450,1100,500,300,500,300,450,300,500,300,500,1050,500,1100,450,1100,500,300,500,1050,500,1100,450,1100,500,1100,450,300,500,300,450,350,500,1050,500,300,500,300,450,300,500,};
unsigned int yaa[83] = {3350,1800,450,400,450,400,450,1250,450,1300,400,450,450,1250,450,400,450,400,450,450,400,1300,450,400,450,400,450,1250,450,400,450,1300,400,450,450,1250,450,400,450,400,450,1250,450,450,400,450,450,400,450,400,450,450,400,450,450,1250,450,1250,450,400,450,1250,450,450,400,450,450,1250,450,400,450,1250,450,400,450,450,450,1250,450,400,450,400,450,};
unsigned int yab[83] = {3400,1750,450,450,400,450,450,1250,450,1250,450,400,450,1250,450,450,400,450, 450,400,450,1250,450,400,450,450,400,1300,450,400,450,1250,450,400,450,1250,450,450,400,450,450,1250,450,400,450,400,450,450,400,450,450,1250,450,1250,450,1250,450,1250,450,450,400,1300,400,450,450,400,450,400,450,1250,450,1300,450,400,450,400,450,1250,450,400,450,450,400,};
unsigned int yac[439] = {3468,1768,408,452,420,1332,412,464,408,464,408,460,440,432,412,452,448,424,420,464,404,456,420,460,412,460,412,460,408,1336,408,464,408,464,408,452,424,460,408,464,408,452,420,452,420,1332,412,1324,420,1332,440,424,416,464,412,1332,412,448,420,452,420,464,408,464,408,464,408,452,420,452,420,452,420,452,420,452,420,464,408,460,412,464,408,460,412,452,420,452,416,464,408,456,416,456,420,452,416,456,416,464,412,460,412,452,416,464,412,448,420,452,420,456,420,448,420,464,408,1324,420,1324,420,452,420,452,420,460,408,456,420,464,408,10516,3456,1760,420,452,420,1332,412,452,416,456,420,452,420,452,416,456,416,464,412,452,416,452,420,464,408,464,408,452,420,1332,412,452,420,452,420,464,408,452,420,452,420,452,420,452,420,1332,412,1332,412,1320,420,464,408,452,420,1324,420,464,408,452,420,452,420,452,420,452,420,460,412,460,412,460,412,452,420,452,420,460,412,452,416,456,420,1332,412,452,416,456,416,1324,420,1324,420,1324,420,460,412,460,412,452,420,460,408,456,416,456,420,1332,412,1320,420,456,416,456,416,452,420,456,416,464,408,452,420,452,420,452,420,464,408,1324,420,1324,420,1324,448,1296,416,1336,436,1296,420,1332,412,1332,412,452,416,1328,420,452,448,1304,408,1324,420,452,420,464,408,452,420,460,412,452,420,452,420,452,448,424,448,424,420,452,420,452,420,452,420,460,412,1332,412,1324,416,1336,408,452,448,436,408,464,408,464,408,464,408,460,412,460,412,452,420,460,412,1324,420,1328,412,1328,416,452,420,464,408,464,408,452,420,464,408,452,448,1296,448,432,412,460,412,452,416,456,420,460,412,460,440,424,384,496,412,460,408,464,408,1336,408,464,408,1324,420,452,420,464,408,452,420,1336,408,464,408,452,420,464,408,452,420,452,420,452,420,460,412,452,420,452,420,460,412,1324,420,460,436,424,420,464,408,464,408,1324,448,1304,408,1328,448,1296,420,452,420,1332,412,1320,420,452,420,1324,420,};
// unsigned int yaf[439] = {3460,1768,412,460,412,1324,420,452,416,464,412,452,416,452,420,464,408,452,420,464,408,464,408,464,408,464,408,452,420,1328,416,452,420,460,412,452,420,460,412,460,408,456,420,460,412,1324,416,1324,420,1336,408,464,408,452,420,1324,420,452,420,460,412,452,420,452,420,452,420,460,412,452,420,460,412,452,420,452,420,452,420,460,412,448,420,452,420,464,408,452,420,464,408,452,420,464,408,452,420,452,420,452,420,460,412,452,420,452,420,460,412,452,420,460,412,452,420,452,420,1332,408,1328,416,464,412,452,416,452,420,460,412,460,412,10516,3456,1768,412,452,420,1332,408,456,416,456,420,460,408,464,408,464,408,464,408,452,420,460,412,460,412,452,420,452,420,1324,420,460,412,452,420,452,420,460,412,460,412,452,420,460,408,1328,416,1336,408,1332,412,460,412,452,420,1324,420,452,420,456,416,460,412,452,420,460,412,460,408,464,412,452,416,464,412,452,420,460,412,452,416,464,412,448,420,464,412,448,420,1336,408,452,420,464,408,1324,420,452,420,460,408,464,412,452,420,1332,412,1324,420,1328,412,460,412,464,408,464,408,464,408,452,420,452,420,452,420,456,416,464,408,1324,420,1332,408,1324,420,1328,416,1324,420,452,420,1324,420,464,408,1332,408,1328,416,464,408,1336,408,1332,412,452,420,460,412,464,408,452,420,460,412,452,420,460,412,452,420,452,420,460,412,452,420,452,416,456,420,1332,408,1328,416,1324,420,464,408,460,412,464,408,452,420,460,412,452,420,452,420,452,420,460,412,1324,416,1336,412,1332,408,1324,420,452,420,464,408,460,412,452,420,452,420,456,416,460,412,452,420,452,420,456,412,456,416,464,412,460,412,460,412,460,412,452,416,1336,408,464,408,1332,412,452,420,464,408,460,412,1324,420,452,420,452,420,460,412,460,412,460,412,460,412,460,412,452,416,456,420,460,408,1336,408,456,416,452,420,460,412,464,408,464,408,1332,412,1324,420,1332,412,1324,420,1320,420,1324,420,464,408,452,420,};
// unsigned int yad[439] = {3460,1768,408,452,420,1324,420,460,412,452,448,432,412,460,412,452,420,460,412,460,440,424,420,460,412,452,416,464,412,1332,408,452,420,452,420,452,420,464,408,460,412,460,412,452,444,1300,420,1324,420,1320,420,456,416,456,420,1332,408,456,420,448,420,460,412,452,420,464,408,452,420,452,420,460,412,452,448,424,420,460,412,460,408,456,416,464,412,452,416,464,412,452,416,456,416,464,408,464,408,464,408,456,416,464,408,464,412,460,408,452,420,464,408,452,420,460,412,460,412,1324,420,1324,420,460,412,460,412,452,424,448,420,460,408,10516,3468,1768,408,452,420,1324,420,452,420,460,412,452,420,460,412,460,412,460,412,460,412,460,412,460,412,452,416,456,420,1332,408,452,420,452,420,460,412,460,412,464,408,452,420,464,408,1324,420,1332,412,1324,416,464,408,456,416,1336,412,452,416,464,408,464,408,464,408,460,412,464,408,464,408,452,420,452,420,464,408,452,420,460,412,460,412,1324,420,452,420,460,412,1324,416,464,408,456,416,1328,416,456,416,464,408,464,412,448,420,1324,420,1324,420,1332,412,460,412,460,412,452,416,456,416,464,412,448,420,464,412,460,408,452,420,1336,408,1324,420,1332,408,1336,408,1332,412,464,412,1332,408,452,420,1324,420,1324,420,452,420,1324,416,1328,416,464,408,456,416,464,408,464,412,448,420,460,412,460,412,460,412,452,420,452,420,464,408,464,408,452,420,1332,412,1332,412,1324,416,464,412,460,408,464,408,464,412,448,420,464,408,452,420,452,420,464,408,1324,420,1324,420,1332,412,1332,408,464,412,460,412,452,416,464,408,464,408,464,408,452,420,452,420,456,416,460,440,424,420,452,420,460,412,464,408,460,412,452,420,1324,416,456,420,1332,408,464,408,464,408,452,420,1324,420,452,420,464,408,464,408,460,412,452,420,452,420,452,448,432,412,460,412,452,420,1324,420,452,420,452,416,456,448,432,436,428,416,456,416,464,408,464,408,452,420,452,420,452,420,1324,420,460,412,};
String tmpString = string;
int argIndex = tmpString.indexOf(',');
if (argIndex) tmpString = tmpString.substring(0, argIndex);
if (GetArgv(command, TmpStr1, 2)) IrType = TmpStr1;
if (GetArgv(command, TmpStr1, 3)) IrCode = strtoul(TmpStr1, NULL, 16); //(long) TmpStr1
if (GetArgv(command, TmpStr1, 4)) IrBits = str2int(TmpStr1);
if (tmpString.equalsIgnoreCase("IRSEND") && Plugin_035_irSender != 0)
{
success = true;
if (IrType.equalsIgnoreCase("NEC")) Plugin_035_irSender->sendNEC(IrCode, IrBits);
if (IrType.equalsIgnoreCase("JVC")) Plugin_035_irSender->sendJVC(IrCode, IrBits, 2);
if (IrType.equalsIgnoreCase("RC5")) Plugin_035_irSender->sendRC5(IrCode, IrBits);
if (IrType.equalsIgnoreCase("RC6")) Plugin_035_irSender->sendRC6(IrCode, IrBits);
if (IrType.equalsIgnoreCase("SAMSUNG")) Plugin_035_irSender->sendSAMSUNG(IrCode, IrBits);
if (IrType.equalsIgnoreCase("SONY")) Plugin_035_irSender->sendSony(IrCode, IrBits);
if (IrType.equalsIgnoreCase("PANASONIC")) Plugin_035_irSender->sendPanasonic(IrBits, IrCode);
// if (IrType.equalsIgnoreCase("Kliman")) Plugin_035_irSender->sendRaw(an,180,38);
// if (IrType.equalsIgnoreCase("Klimaus")) Plugin_035_irSender->sendRaw(aus,180,38);
if (IrType.equalsIgnoreCase("YadaON")) Plugin_035_irSender->sendRaw(yaa,83,38);
if (IrType.equalsIgnoreCase("YadaOFF")) Plugin_035_irSender->sendRaw(yab,83,38);
if (IrType.equalsIgnoreCase("YadaCOOL")) Plugin_035_irSender->sendRaw(yac,439,38);
// if (IrType.equalsIgnoreCase("YadaACOFF")) Plugin_035_irSender->sendRaw(yaf,439,38);
// if (IrType.equalsIgnoreCase("YadaHEAT")) Plugin_035_irSender->sendRaw(yad,439,38);
addLog(LOG_LEVEL_INFO, "IR Code Sent");
if (printToWeb)
{
printWebString += F("IR Code Sent ");
printWebString += IrType;
printWebString += F("<BR>");
}
}
break;
}
}
return success;
}
Firstly, I have no idea what I'm doing! But despite that, I was able to get my d1 mini (R148) to control the TV and light via the IR Transmitter. Thank you.
ThinkPad and Marko's posts were invaluable and allowed me to add the raw codes with the modification. I wanted to include control for the AC too. The three codes are very long compared to the others and they all work... INDIVIDUALLY.
If I comment-out any two of the following three codes... They each WORK. If I uncomment any more than one of these related statements, the device is no longer reachable via ip after compile/uploading...
unsigned int yac[439] = ...
// unsigned int yaf[439] = ...
// unsigned int yad[439] = ...
...
if (IrType.equalsIgnoreCase("YadaCOOL")) Plugin_035_irSender->sendRaw(yac,439,38);
// if (IrType.equalsIgnoreCase("YadaACOFF")) Plugin_035_irSender->sendRaw(yaf,439,38);
// if (IrType.equalsIgnoreCase("YadaHEAT")) Plugin_035_irSender->sendRaw(yad,439,38);
Memory issue? It's appears to be beyond my feeble mind!
- Jim
//#######################################################################################################
//#################################### Plugin 035: Output IR ############################################
//#######################################################################################################
#include <IRremoteESP8266.h>
IRsend *Plugin_035_irSender;
#define PLUGIN_035
#define PLUGIN_ID_035 35
#define PLUGIN_NAME_035 "Infrared Transmit"
boolean Plugin_035(byte function, struct EventStruct *event, String& string)
{
boolean success = false;
switch (function)
{
case PLUGIN_DEVICE_ADD:
{
Device[++deviceCount].Number = PLUGIN_ID_035;
Device[deviceCount].Type = DEVICE_TYPE_SINGLE;
Device[deviceCount].SendDataOption = false;
break;
}
case PLUGIN_GET_DEVICENAME:
{
string = F(PLUGIN_NAME_035);
break;
}
case PLUGIN_GET_DEVICEVALUENAMES:
{
break;
}
case PLUGIN_INIT:
{
int irPin = Settings.TaskDevicePin1[event->TaskIndex];
if (Plugin_035_irSender == 0 && irPin != -1)
{
addLog(LOG_LEVEL_INFO, "INIT: IR TX");
Plugin_035_irSender = new IRsend(irPin);
Plugin_035_irSender->begin(); // Start the sender
}
if (Plugin_035_irSender != 0 && irPin == -1)
{
addLog(LOG_LEVEL_INFO, "INIT: IR TX Removed");
delete Plugin_035_irSender;
Plugin_035_irSender = 0;
}
success = true;
break;
}
case PLUGIN_WRITE:
{
String IrType;
unsigned long IrCode;
unsigned int IrBits;
char command[80];
command[0] = 0;
char TmpStr1[80];
TmpStr1[0] = 0;
string.toCharArray(command, 80);
// unsigned int an[180] = {3250,1450,500,300,450,1100,500,300,450,350,450,1100,500,300,450,1100,500,300,500,300,450,1100,500,1050,500,1100,500,300,450,1100,450,350,500,1050,500,1100,450,1100,500,300,450,300,500,300,500,300,450,1100,500,1100,450,300,500,1100,450,1100,450,350,500,300,450,1100,500,300,500,300,450,1100,450,350,450,300,500,1100,450,1100,500,300,500,1050,500,1100,450,1100,450,1150,450,1100,450,1150,450,1100,500,1050,500,1100,450,300,500,300,500,300,450,350,450,300,500,300,450,350,450,300,500,1100,500,1050,500,1100,450,1100,500,300,450,350,450,1100,450,1100,500,1100,500,300,450,300,450,350,500,1050,500,1100,500,300,450,300,500,300,450,350,450,1100,500,1050,500,300,500,300,450,1100,500,1100,500,1050,450,1150,450,300,500,300,500,1050,500,1100,500,300,450,300,500,300,500,};
// unsigned int aus[180] = {3200,1500,450,300,500,1100,450,300,500,300,500,1050,500,300,500,1100,450,300,500,300,500,1050,500,1100,450,1100,500,300,500,1050,500,300,450,1150,450,1100,450,1100,500,300,500,300,500,300,450,300,500,1100,450,1100,500,300,500,1050,450,1150,450,300,500,300,450,1150,450,300,500,300,450,1100,500,300,450,350,450,1100,500,1100,450,300,500,1100,450,1100,450,1150,450,1100,450,1100,500,1100,500,1050,500,1100,450,1100,500,300,500,300,450,300,500,300,450,350,450,300,500,300,450,350,450,1100,500,1100,450,1100,450,1150,450,300,500,300,500,1050,500,1100,450,1100,500,300,450,350,450,300,500,1100,450,1100,500,300,500,300,450,300,500,300,500,1050,500,1100,450,1100,500,300,500,1050,500,1100,450,1100,500,1100,450,300,500,300,450,350,500,1050,500,300,500,300,450,300,500,};
unsigned int yaa[83] = {3350,1800,450,400,450,400,450,1250,450,1300,400,450,450,1250,450,400,450,400,450,450,400,1300,450,400,450,400,450,1250,450,400,450,1300,400,450,450,1250,450,400,450,400,450,1250,450,450,400,450,450,400,450,400,450,450,400,450,450,1250,450,1250,450,400,450,1250,450,450,400,450,450,1250,450,400,450,1250,450,400,450,450,450,1250,450,400,450,400,450,};
unsigned int yab[83] = {3400,1750,450,450,400,450,450,1250,450,1250,450,400,450,1250,450,450,400,450, 450,400,450,1250,450,400,450,450,400,1300,450,400,450,1250,450,400,450,1250,450,450,400,450,450,1250,450,400,450,400,450,450,400,450,450,1250,450,1250,450,1250,450,1250,450,450,400,1300,400,450,450,400,450,400,450,1250,450,1300,450,400,450,400,450,1250,450,400,450,450,400,};
unsigned int yac[439] = {3468,1768,408,452,420,1332,412,464,408,464,408,460,440,432,412,452,448,424,420,464,404,456,420,460,412,460,412,460,408,1336,408,464,408,464,408,452,424,460,408,464,408,452,420,452,420,1332,412,1324,420,1332,440,424,416,464,412,1332,412,448,420,452,420,464,408,464,408,464,408,452,420,452,420,452,420,452,420,452,420,464,408,460,412,464,408,460,412,452,420,452,416,464,408,456,416,456,420,452,416,456,416,464,412,460,412,452,416,464,412,448,420,452,420,456,420,448,420,464,408,1324,420,1324,420,452,420,452,420,460,408,456,420,464,408,10516,3456,1760,420,452,420,1332,412,452,416,456,420,452,420,452,416,456,416,464,412,452,416,452,420,464,408,464,408,452,420,1332,412,452,420,452,420,464,408,452,420,452,420,452,420,452,420,1332,412,1332,412,1320,420,464,408,452,420,1324,420,464,408,452,420,452,420,452,420,452,420,460,412,460,412,460,412,452,420,452,420,460,412,452,416,456,420,1332,412,452,416,456,416,1324,420,1324,420,1324,420,460,412,460,412,452,420,460,408,456,416,456,420,1332,412,1320,420,456,416,456,416,452,420,456,416,464,408,452,420,452,420,452,420,464,408,1324,420,1324,420,1324,448,1296,416,1336,436,1296,420,1332,412,1332,412,452,416,1328,420,452,448,1304,408,1324,420,452,420,464,408,452,420,460,412,452,420,452,420,452,448,424,448,424,420,452,420,452,420,452,420,460,412,1332,412,1324,416,1336,408,452,448,436,408,464,408,464,408,464,408,460,412,460,412,452,420,460,412,1324,420,1328,412,1328,416,452,420,464,408,464,408,452,420,464,408,452,448,1296,448,432,412,460,412,452,416,456,420,460,412,460,440,424,384,496,412,460,408,464,408,1336,408,464,408,1324,420,452,420,464,408,452,420,1336,408,464,408,452,420,464,408,452,420,452,420,452,420,460,412,452,420,452,420,460,412,1324,420,460,436,424,420,464,408,464,408,1324,448,1304,408,1328,448,1296,420,452,420,1332,412,1320,420,452,420,1324,420,};
// unsigned int yaf[439] = {3460,1768,412,460,412,1324,420,452,416,464,412,452,416,452,420,464,408,452,420,464,408,464,408,464,408,464,408,452,420,1328,416,452,420,460,412,452,420,460,412,460,408,456,420,460,412,1324,416,1324,420,1336,408,464,408,452,420,1324,420,452,420,460,412,452,420,452,420,452,420,460,412,452,420,460,412,452,420,452,420,452,420,460,412,448,420,452,420,464,408,452,420,464,408,452,420,464,408,452,420,452,420,452,420,460,412,452,420,452,420,460,412,452,420,460,412,452,420,452,420,1332,408,1328,416,464,412,452,416,452,420,460,412,460,412,10516,3456,1768,412,452,420,1332,408,456,416,456,420,460,408,464,408,464,408,464,408,452,420,460,412,460,412,452,420,452,420,1324,420,460,412,452,420,452,420,460,412,460,412,452,420,460,408,1328,416,1336,408,1332,412,460,412,452,420,1324,420,452,420,456,416,460,412,452,420,460,412,460,408,464,412,452,416,464,412,452,420,460,412,452,416,464,412,448,420,464,412,448,420,1336,408,452,420,464,408,1324,420,452,420,460,408,464,412,452,420,1332,412,1324,420,1328,412,460,412,464,408,464,408,464,408,452,420,452,420,452,420,456,416,464,408,1324,420,1332,408,1324,420,1328,416,1324,420,452,420,1324,420,464,408,1332,408,1328,416,464,408,1336,408,1332,412,452,420,460,412,464,408,452,420,460,412,452,420,460,412,452,420,452,420,460,412,452,420,452,416,456,420,1332,408,1328,416,1324,420,464,408,460,412,464,408,452,420,460,412,452,420,452,420,452,420,460,412,1324,416,1336,412,1332,408,1324,420,452,420,464,408,460,412,452,420,452,420,456,416,460,412,452,420,452,420,456,412,456,416,464,412,460,412,460,412,460,412,452,416,1336,408,464,408,1332,412,452,420,464,408,460,412,1324,420,452,420,452,420,460,412,460,412,460,412,460,412,460,412,452,416,456,420,460,408,1336,408,456,416,452,420,460,412,464,408,464,408,1332,412,1324,420,1332,412,1324,420,1320,420,1324,420,464,408,452,420,};
// unsigned int yad[439] = {3460,1768,408,452,420,1324,420,460,412,452,448,432,412,460,412,452,420,460,412,460,440,424,420,460,412,452,416,464,412,1332,408,452,420,452,420,452,420,464,408,460,412,460,412,452,444,1300,420,1324,420,1320,420,456,416,456,420,1332,408,456,420,448,420,460,412,452,420,464,408,452,420,452,420,460,412,452,448,424,420,460,412,460,408,456,416,464,412,452,416,464,412,452,416,456,416,464,408,464,408,464,408,456,416,464,408,464,412,460,408,452,420,464,408,452,420,460,412,460,412,1324,420,1324,420,460,412,460,412,452,424,448,420,460,408,10516,3468,1768,408,452,420,1324,420,452,420,460,412,452,420,460,412,460,412,460,412,460,412,460,412,460,412,452,416,456,420,1332,408,452,420,452,420,460,412,460,412,464,408,452,420,464,408,1324,420,1332,412,1324,416,464,408,456,416,1336,412,452,416,464,408,464,408,464,408,460,412,464,408,464,408,452,420,452,420,464,408,452,420,460,412,460,412,1324,420,452,420,460,412,1324,416,464,408,456,416,1328,416,456,416,464,408,464,412,448,420,1324,420,1324,420,1332,412,460,412,460,412,452,416,456,416,464,412,448,420,464,412,460,408,452,420,1336,408,1324,420,1332,408,1336,408,1332,412,464,412,1332,408,452,420,1324,420,1324,420,452,420,1324,416,1328,416,464,408,456,416,464,408,464,412,448,420,460,412,460,412,460,412,452,420,452,420,464,408,464,408,452,420,1332,412,1332,412,1324,416,464,412,460,408,464,408,464,412,448,420,464,408,452,420,452,420,464,408,1324,420,1324,420,1332,412,1332,408,464,412,460,412,452,416,464,408,464,408,464,408,452,420,452,420,456,416,460,440,424,420,452,420,460,412,464,408,460,412,452,420,1324,416,456,420,1332,408,464,408,464,408,452,420,1324,420,452,420,464,408,464,408,460,412,452,420,452,420,452,448,432,412,460,412,452,420,1324,420,452,420,452,416,456,448,432,436,428,416,456,416,464,408,464,408,452,420,452,420,452,420,1324,420,460,412,};
String tmpString = string;
int argIndex = tmpString.indexOf(',');
if (argIndex) tmpString = tmpString.substring(0, argIndex);
if (GetArgv(command, TmpStr1, 2)) IrType = TmpStr1;
if (GetArgv(command, TmpStr1, 3)) IrCode = strtoul(TmpStr1, NULL, 16); //(long) TmpStr1
if (GetArgv(command, TmpStr1, 4)) IrBits = str2int(TmpStr1);
if (tmpString.equalsIgnoreCase("IRSEND") && Plugin_035_irSender != 0)
{
success = true;
if (IrType.equalsIgnoreCase("NEC")) Plugin_035_irSender->sendNEC(IrCode, IrBits);
if (IrType.equalsIgnoreCase("JVC")) Plugin_035_irSender->sendJVC(IrCode, IrBits, 2);
if (IrType.equalsIgnoreCase("RC5")) Plugin_035_irSender->sendRC5(IrCode, IrBits);
if (IrType.equalsIgnoreCase("RC6")) Plugin_035_irSender->sendRC6(IrCode, IrBits);
if (IrType.equalsIgnoreCase("SAMSUNG")) Plugin_035_irSender->sendSAMSUNG(IrCode, IrBits);
if (IrType.equalsIgnoreCase("SONY")) Plugin_035_irSender->sendSony(IrCode, IrBits);
if (IrType.equalsIgnoreCase("PANASONIC")) Plugin_035_irSender->sendPanasonic(IrBits, IrCode);
// if (IrType.equalsIgnoreCase("Kliman")) Plugin_035_irSender->sendRaw(an,180,38);
// if (IrType.equalsIgnoreCase("Klimaus")) Plugin_035_irSender->sendRaw(aus,180,38);
if (IrType.equalsIgnoreCase("YadaON")) Plugin_035_irSender->sendRaw(yaa,83,38);
if (IrType.equalsIgnoreCase("YadaOFF")) Plugin_035_irSender->sendRaw(yab,83,38);
if (IrType.equalsIgnoreCase("YadaCOOL")) Plugin_035_irSender->sendRaw(yac,439,38);
// if (IrType.equalsIgnoreCase("YadaACOFF")) Plugin_035_irSender->sendRaw(yaf,439,38);
// if (IrType.equalsIgnoreCase("YadaHEAT")) Plugin_035_irSender->sendRaw(yad,439,38);
addLog(LOG_LEVEL_INFO, "IR Code Sent");
if (printToWeb)
{
printWebString += F("IR Code Sent ");
printWebString += IrType;
printWebString += F("<BR>");
}
}
break;
}
}
return success;
}
Re: IR Transmitter ?
Looking at the examples in the IRremoteESP89266 library, one can find TurnOnFujitsuAC.ino
In there they simply do:
ac.setModel(ARRAH2E);
ac.setSwing(kFujitsuAcSwingOff);
ac.setMode(kFujitsuAcModeCool);
ac.setFanSpeed(kFujitsuAcFanHigh);
ac.setTemp(24); // 24C
ac.setCmd(kFujitsuAcCmdTurnOn);
How would that look like as ESPEasy command ?
http://192.168.1.31/control?cmd=IRSENDAC....?
In there they simply do:
ac.setModel(ARRAH2E);
ac.setSwing(kFujitsuAcSwingOff);
ac.setMode(kFujitsuAcModeCool);
ac.setFanSpeed(kFujitsuAcFanHigh);
ac.setTemp(24); // 24C
ac.setCmd(kFujitsuAcCmdTurnOn);
How would that look like as ESPEasy command ?
http://192.168.1.31/control?cmd=IRSENDAC....?
Re: IR Transmitter ?
... just figured it out myself.
Note:
(1) the keys , e.g. power, temp, ... need to be lower case
(2) the on/off values need to be upper case.
(3) in my case, the string to model function was buggy. it did not resolve my Fujitsu ARREB1E. You need to use "model":"3" instead.
(4) use your own IP address (-;
Haf fun.
Code: Select all
http://192.168.1.46/control?cmd=IRSENDAC,{"power":"ON","temp":"24","protocol":"FUJITSU_AC","model":"3","mode":"COOL","beep":"ON","fanspeed":"MAX"}
(1) the keys , e.g. power, temp, ... need to be lower case
(2) the on/off values need to be upper case.
(3) in my case, the string to model function was buggy. it did not resolve my Fujitsu ARREB1E. You need to use "model":"3" instead.
(4) use your own IP address (-;
Haf fun.
Re: IR Transmitter ?
Are you sure? I will also check that.(2) the on/off values need to be upper case.
Model can be either the string representation of the supported model or of the "id" given by the library as you did.
The JSON keys do have to be lower case.
I attach below my notes on P035 (Ir Transmiter plugin)
Usage: Connect an IR led to ESP8266 GPIO14 (D5) preferably. (various schematics can be found online)
On the device tab add a new device and select "Communication - IR Transmit"
Enable the device and select the GPIO led pin
Power on the ESP and connect to it
Commands can be send to this plug in and it will translate them to IR signals.
Possible commands are IRSEND and IRSENDAC
---IRSEND: That commands format is: IRSEND,<protocol>,<data>,<bits>,<repeat>
bits and repeat default to 0 if not used and they are optional
For protocols RAW and RAW2 there is no bits and repeat part, they are supposed to be replayed as they are calculated by a Google docs sheet or by plugin P016
---IRSENDAC: That commands format is: IRSENDAC,{"protocol":"COOLIX","power":"on","opmode":"dry","fanspeed":"auto","degrees":22,"swingv":"max","swingh":"off"}
--- The JSON keys are case sensitive and allways small case. The JSON data are case insensitive
The possible values
Protocols: Argo Coolix Daikin Fujitsu Haier Hitachi Kelvinator Midea Mitsubishi MitsubishiHeavy Panasonic Samsung Sharp Tcl Teco Toshiba Trotec Vestel Whirlpool
---opmodes: ---fanspeed: --swingv: --swingh:
- "off" - "auto" - "off" - "off"
- "auto" - "min" - "auto" - "auto"
- "cool" - "low" - "highest" - "leftmax"
- "heat" - "medium" - "high" - "left"
- "dry" - "high" - "middle" - "middle"
- "fan_only" - "max" - "low" - "right"
- "lowest" - "rightmax"
- "wide"
"on" - "off" parameters are:
- "power" - "celsius" - "quiet" - "turbo" - "econo" - "light" - "filter" - "clean" - "light" - "beep"
If celcius is set to "off" then farenheit will be used
- "sleep" Nr. of mins of sleep mode, or use sleep mode. (<= 0 means off.)
- "clock" Nr. of mins past midnight to set the clock to. (< 0 means off.)
- "model" . Nr or string representation of the model. Better to find it throught P016 - IR RX (0 means default.)
Re: IR Transmitter ?
how to send this raw codes or how to convert it to raw2
Code: Select all
// ON/OFF (toggle):
uint16_t TOGGLE[21] = {6680, 2412, 3374, 1560, 920, 732, 918, 1594, 1720, 758, 894, 1584, 896, 732, 920, 1558, 1748, 758, 1722, 1584, 1720}; // UNKNOWN 9EB58962
// Power Up (flame up):
uint16_t P_UP[19] = {6778, 2336, 3446, 1510, 938, 712, 938, 1556, 4270, 686, 936, 716, 938, 1540, 3438, 692, 936, 714, 1774}; // UNKNOWN 2B890461
// Power Down (flame down):
uint16_t P_DN[21] = {6700, 2406, 3366, 1580, 892, 756, 892, 1598, 2562, 732, 918, 726, 922, 696, 948, 1544, 2544, 1558, 904, 734, 1728}; // UNKNOWN BD1A8437
// Water Temperature Up:
uint16_t T_UP[23] = {6710, 2352, 3422, 1562, 894, 732, 918, 1572, 1746, 758, 1720, 758, 892, 734, 924, 1554, 1744, 756, 892, 756, 892, 756, 1736}; // UNKNOWN 4B3AB9D1
// Water Temperature Down:
uint16_t T_DN[19] = {6726, 2390, 3394, 1536, 944, 734, 916, 1576, 3394, 1538, 942, 736, 918, 1534, 4246, 1536, 190, 86, 1602}; // UNKNOWN 56631A11
Who is online
Users browsing this forum: No registered users and 105 guests