-
Notifications
You must be signed in to change notification settings - Fork 836
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Tasmota IRReceive to IRSend not the same >32 bits #1220
Comments
For Pioneer, example commands: From Tasmota-sent command: |
For the Samsung36 stuff, we might need to adjust the timings on the protocol. We've only had one capture by one user to base the data on previously. See #621 Can you try replacing these lines/values: IRremoteESP8266/src/ir_Samsung.cpp Lines 159 to 167 in b2c36ca
with:
And let me know how you go with that? Those changes/timings are based on the data you provided. |
Thanks @crankyoldgit Example Samsung command from above (Mute) works with those changes. Sample IRReceive for the Mute command listed in the initial issue (working!): Let me know if you need any more info/data for the Pioneer issue, and thanks again! |
Several raw samples of each protocol would be good, so we have more data to calculate the values from. |
No worries, Pioneer Raw Commands
Samsung 36 Raw Commands
|
* Adjust protocol timings based on more real-world/capture data. * Improve Samsung housekeeping tests. * Update timings accordingly in Unit tests. For #1220
* Adjust protocol timings based on more real-world/capture data. * Improve Samsung housekeeping tests. * Update timings accordingly in Unit tests. For #1220
FYI, the Samsung36 timings (averaged) are: // Data from https://github.com/crankyoldgit/IRremoteESP8266/issues/1220
// Values calculated based on the average of ten messages.
const uint16_t kSamsung36HdrMark = 4515; /// < uSeconds
const uint16_t kSamsung36HdrSpace = 4438; /// < uSeconds
const uint16_t kSamsung36BitMark = 512; /// < uSeconds
const uint16_t kSamsung36OneSpace = 1468; /// < uSeconds
const uint16_t kSamsung36ZeroSpace = 490; /// < uSeconds |
And the Pioneer averaged data is: const uint16_t kPioneerTick = 534;
const uint16_t kPioneerHdrMark = 8506;
const uint16_t kPioneerHdrSpace = 4191;
const uint16_t kPioneerBitMark = 568;
const uint16_t kPioneerOneSpace = 1542;
const uint16_t kPioneerZeroSpace = 487;
const uint32_t kPioneerMinCommandLength = 84906;
const uint32_t kPioneerMinGap = 25181; |
@t3h-n00b Can you please supply the brand and model numbers etc for the remotes & the devices controlled by them? |
Thanks @crankyoldgit - Just building now and updating the Pioneer values in ir_Pioneer.cpp as well. Will let you know how it goes ASAP Samsung Remote Model: AH59-02692E Pioneer Remote Number: AXD7690 |
* Adjust protocol timings based on the average seen across ten different captures. * Update unit tests accordingly. * Updated supported devices. Fixes #1220
Thanks for that info. I've added that info to the respective PRs. |
Alrighty, Samsung looks good - thanks. Pioneer doesn't appear to work with Power On/Power Toggle; but does work for Volume change... |
* Adjust protocol timings based on more real-world/capture data. * Improve Samsung housekeeping tests. * Update timings accordingly in Unit tests. * Update supported Samsung36 devices. For #1220
Can you please capture the "Power On/Power Toggle" messages with e.g. |
* Adjust protocol timings based on the average seen across ten different captures. * Update unit tests accordingly. * Updated supported devices. Fixes #1220
No worries - I'll try and give it a shot this evening and get back to you |
Ok, managed to get it working. Did each command twice, below. Power Off:
Power On
Power Toggle
|
Interesting. Can you please capture a volume up or down as well. |
Volume Up
Volume Down
Couple more random ones if it helps as well... Bass Up
Bass Down
Input Satellite
Input TV
Home
Mute
Audio Parameter
|
I've had a look at the data you provided. The expected Pioneer protocol the library is expecting is a pair of 32 bit data sections that add up to the entire 64 bit message. The messages you've collected indicate Either we've got the protocol horribly wrong (which I doubt) because the Pioneer documents indicate it's the way the library is using it. Or ... Your remote is behaving oddly, or there is something odd with the protocol that we don't know about. In order for you to get an "ABA" or longer sequence, you are probably going to have to use a There is currently no easy way I can immediately think of for how you can use If the a |
Looks good with a repeat of 1 on the Power On/Off/Toggles |
Phew |
* Adjust protocol timings based on the average seen across ten different captures. * Update unit tests accordingly. * Updated supported devices. Fixes #1220 * Add Unit test case to help debug Pioneer Power Toggle message. Ref: #1220 (comment)
_v2.7.9 (20200730)_ **[Bug Fixes]** - Fix mistake in `IRLGAc::convertFan()`. (#1214 #1215) **[Features]** - Add Sanyo A/C (72 bit) protocol with detailed support. (#1211 #1218) - Added modification to Midea unit to support Danby DAC AC units. (#1213) - ToshibaAc: Rework to support Carrier models and add more settings. (#1205 #1212) - Add detailed support for Airwell A/C protocol. (#1202 #1204) **[Misc]** - Pioneer: Update timings based on user collected data. (#1220 #1222) - Samsung36: Adjust timings & update unit tests. (#1220 #1221) - Consolidate common code: Inverted byte pairs (#1219) - Remove duplicate code from `IRToshibaAC::calcChecksum()` (#1207) - Update missing/incorrect doxygen comments (#1203)
_v2.7.9 (20200730)_ **[Bug Fixes]** - Fix mistake in `IRLGAc::convertFan()`. (#1214 #1215) **[Features]** - Add Sanyo A/C (72 bit) protocol with detailed support. (#1211 #1218) - Added modification to Midea unit to support Danby DAC AC units. (#1213) - ToshibaAc: Rework to support Carrier models and add more settings. (#1205 #1212) - Add detailed support for Airwell A/C protocol. (#1202 #1204) **[Misc]** - Pioneer: Update timings based on user collected data. (#1220 #1222) - Samsung36: Adjust timings & update unit tests. (#1220 #1221) - Consolidate common code: Inverted byte pairs (#1219) - Remove duplicate code from `IRToshibaAC::calcChecksum()` (#1207) - Update missing/incorrect doxygen comments (#1203)
FYI, the aforementioned changes have been included in the latest release (v2.7.9) of the library. |
(Please use this template for reporting issues. You can delete what ever is not relevant. Giving us this information will help us help you faster. Please also read the FAQ & Troubleshooting Guide. Your problem may already have an answer there.)
Version/revision of the library used
Typically located in the
library.json
&src/IRremoteESP8266.h
files in the root directory of the library.e.g. v2.0.0, or 'master' as at 1st of June, 2017. etc.
Tasmota version 8.3.1
Expected behavior
What steps did you do and what should it have done?
Actual behavior
What steps did you do, and what did or didn't actually happen?
Example below is the MUTE command from a Samsung Sound Bar. Also experience similar with Pioneer devices.
Capture IR command from Samsung/Pioneer remote
Example capture from original remote:
{"IrReceived":{"Protocol":"SAMSUNG36","Bits":36,"Data":"0x0CF008E71","DataLSB":"0x0F300718E","Repeat":0,"RawData":[4544,4458,500,498,500,500,496,496,500,498,500,1464,530,1464,522,502,494,502,496,1470,524,1470,504,1464,522,1476,520,500,496,500,498,500,498,498,500,4460,530,492,494,504,496,500,496,500,496,1472,524,500,498,498,500,498,468,1474,522,1472,524,1470,526,498,500,498,500,1468,528,1466,530,1464,500,524,474,498,500,500,498,1466,530],"RawDataInfo":[77,77,0]}}
Send IR command via IRSend:
IRSend {"Protocol":"SAMSUNG36","Bits":36,"Data":"0x0CF008E71","DataLSB":"0x0F300718E","Repeat":0}
Note the device does not interpret the message (although another Tasmota device will). Note the RAW data is different to what is received from the initial capture.
Tasmota Device receives the following:
tele/tasmota_4EEF64/RESULT = {"IrReceived":{"Protocol":"SAMSUNG36","Bits":36,"Data":"0x0CF008E71","DataLSB":"0x0F300718E","Repeat":0,"RawData":[4456,4508,568,550,602,532,576,562,578,542,632,1616,578,1674,620,500,596,530,600,1654,630,1618,622,1626,568,1678,628,494,602,524,594,532,598,534,596,4480,596,530,600,528,602,526,604,524,596,1652,600,528,602,526,604,524,596,1656,626,1616,602,1646,604,522,596,532,598,1648,602,1652,630,1610,594,532,598,530,600,528,602,1644,604],"RawDataInfo":[77,77,0]}}
Send IR Raw Command (that works from initial capture):
Irsend 0,4544,4458,500,498,500,500,496,496,500,498,500,1464,530,1464,522,502,494,502,496,1470,524,1470,504,1464,522,1476,520,500,496,500,498,500,498,498,500,4460,530,492,494,504,496,500,496,500,496,1472,524,500,498,498,500,498,468,1474,522,1472,524,1470,526,498,500,498,500,1468,528,1466,530,1464,500,524,474,498,500,500,498,1466,530
Output of raw data from IRrecvDumpV2.ino (if applicable)
Include some raw dumps of what the device saw.
N/A
Steps to reproduce the behavior
What can we do to (pref. reliably) repeat what is happening?
t is worth noting that all 32 bit commands captured/resent appear to work fine. IRHvac commands also seem fine - just IRSend messsages >32 bits that dont.
Sample known bad commands:
Example code used
Include all relevant code snippets or links to the actual code files. Tip: How to quote your code so it is still readable.
Circuit diagram and hardware used (if applicable)
Link to an image of the circuit diagram used. Part number of the IR receiver module etc. ESP8266 or ESP32 board type.
IR LED: TSAL6400 (x2)
IR Receiver: TSOP38536
Board: Wemos D1 Mini
I have followed the steps in the Troubleshooting Guide & read the FAQ
Yes/No.
Has this library/code previously worked as expected for you?
Yes/No. If "Yes", which version last worked for you?
No
Other useful information
More information is always welcome. Be verbose.
Created an initial issue with Tasmota here: arendst/Tasmota#8938
The text was updated successfully, but these errors were encountered: