Closed eku closed 2 years ago
First it can be a problem of the IR receiver hardware. Second, I do not know if Tasmota interferes with the polling of IRMP. What about other protocols e.g. NEC?
What about other protocols e.g. NEC?
No problem with other protocols, as far as tested.
I have reduced the sampling frequency to 15kHz as a test and Nokia is reliably detected. Siemens is at least sometimes detected, but not deterministically.
As receiver I use the same TSOP in both circuits.
The only thing that remains, as you already suspect, is the different implementation of the timers. Regarding the Arduino implementation for ESP, is there anything else you can think of where you can pull the lever and what else you could try?
How can I reproduce it? I have ESP's but only worked once with platformio and never with tasmota. Are there some tutorials, or can I copy your platformio project. Maybe some debugs can be enabled in IRMP to get an idea why it fails for Siemens.
Use my branch: https://github.com/eku/Tasmota/tree/feature/irmp_support and edit https://github.com/eku/Tasmota/blob/feature/irmp_support/tasmota/xdrv_45_irmp.ino as needed. In addition, you need to activate the feature in https://github.com/eku/Tasmota/blob/feature/irmp_support/tasmota/tasmota_configurations.h (USE_IRMP).
What is the next step with this topic? Has @ukw100 made an bug fix?
I commited the timing corrections.
Version 3.4.0 does not improve the recognition.
It looks to me like the name does not match anything in the protocols. Ruwido is issued for Matshusita and Siemens for Nokia and so on.
Is the following code right?
(const char *)pgm_read_dword(&irmp_protocol_names[irmp_data.protocol])
Version 3.5.1 doesn't decode SIEMENS at all.
Can you check the current 3.6.0 version (not yet released). I changed the Siemens timings accordingly to https://github.com/j1rie/IRMP. I always had false Simens recognitions for NEC, which was improved with the new timings. How do you test it? do you have a real Siemens remote? Can you post this in the microcontroller forum?
I did upgrade to 1a62365c187c6cac2e0f80463952db3eb930457a, but no luck.
I don't know if it is necessarily due to the timing. I also use IRMP on an ATmega, but not the ARDUNIO version, but integrated in my own software and SIEMENS, RUWIDO and NOKIA are recognised. Could the ESP8266 cause more problems here than the AVR?
The recognition rate is rather worse at 3.60.
I have both a real SIEMENS remote and an universal remote that learned the codes from it. UKW originally implemented the SIEMENS protocol first based on my recorded scans. I use the same nick on mikrocontroller.net and I'm familiar with IRMP since years.
Until the last change I used Franks IRMP timing. And in the forum, he recommends the new timings of https://github.com/j1rie/IRMP. And of course I did not touch the logic! So it must be the ESP8266 hardware (or timer) which makes the difference.
Bug Report
Arduino Platform
IDE
IR-Protocol
Example to reproduce the issue
Pin(s) used for IR-receive, if not default
I use dynamic PINs (GPIO5) with Tasmota configuration.
Version
Current behavior
I use a chinese IR TUYA device flashed with Tasmota and my port of IRMP to Tasmota.
For comparison I have a selfmade module on with ATmega32 and native IRMP (no Arduino). This one detects all protocols correctly.
IRMP is compiled with the following settings:
Expected behavior
Siemens and Nokia protocols are always correctly detected.
Error output
No serial output on Tasmota :(
The Siemens protocol is not detected at all. The Nokia protocol is sometimes detected as SIEMENS.
Additional context