Skip to content
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

Feature Request: update IRremoteESP8266 to v 2.x and add support for the panasonic protocol #1014

Closed
stylab opened this issue Oct 12, 2017 · 5 comments

Comments

@stylab
Copy link

stylab commented Oct 12, 2017

First thanks for the great work you are doing

I am hoping that you will update IRremoteESP8266 to v 2.x and add support for the panasonic protocol

@stylab stylab changed the title Feature Request: update IRremoteESP8266 to v 2.x and add support for the panasonic protocole Feature Request: update IRremoteESP8266 to v 2.x and add support for the panasonic protocol Oct 13, 2017
@arendst
Copy link
Owner

arendst commented Oct 13, 2017

Could you please test Panasonic functionality with current library by making the following addition to file xdrv_ir_send.ino around line 324:

else if (!strcasecmp_P(protocol, PSTR("SAMSUNG")))
  irsend->sendSAMSUNG(data, bits);
else if (!strcasecmp_P(protocol, PSTR("PANASONIC")))
  irsend->sendPanasonic(data, bits);
else {
  snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("{\"" D_CMND_IRSEND "\":\"" D_PROTOCOL_NOT_SUPPORTED "\"}"));
          }

and feedback your result.

Upgrading the library to 2.2.0 adds 6k to the code while not bringing any new features.

If this is unusable/unstable you might want to edit file IRremote.h in the IRremoteESP8266 library regarding specific Panasonic timing parameters introduced in version 1.2.0:

// Ref: http://www.remotecentral.com/cgi-bin/mboard/rc-pronto/thread.cgi?26152
#define PANASONIC_HDR_MARK             3456
#define PANASONIC_HDR_SPACE            1728
#define PANASONIC_BIT_MARK              432
#define PANASONIC_ONE_SPACE            1296
#define PANASONIC_ZERO_SPACE            432

And if it still doesn't work you might want to edit file IRremoteESP8266.cpp in the same library regarding IR led frequency from 35 to 37 according to version 1.2.0 too:

  // Set IR carrier frequency
  enableIROut(37);

@stylab
Copy link
Author

stylab commented Oct 13, 2017

Thanks for the fast replay ill test it out tonight when i am at home and report back

arendst added a commit that referenced this issue Oct 14, 2017
5.8.0l
* Update HTML/CSS to enable nicer form field entry
* Fix inverted relay status after restart or power on as regression from
5.8.0d (#909)
* Add send protocol Panasonic to IRsend (#1014)
* Fix relay power control when light power control is also configured as
regression from 5.8.0 (#1016)
@stylab
Copy link
Author

stylab commented Oct 24, 2017

Hi

Sorry for the long test time, but life got in the way
I did finaly find time to test it out
For the panasonic protocol to work we need to define a address

user_config.h

#define USE_IR_REMOTE                            // Send IR remote commands using library IRremoteESP8266 and ArduinoJson (+3k code, 0.3k mem)
#ifdef USE_IR_REMOTE
  #define PanasonicAddress      0x4004           // Panasonic address (Pre data)
#endif

and in xdrv_ir_send

else if (!strcasecmp_P(protocol, PSTR("PANASONIC")))
  irsend->sendPanasonic(PanasonicAddress, data);
else {

ugly as hell but it is working :)
ill do some more testing on my setup but for now with that hack it works
the command still expect a bit value, but we dont use it

@arendst
Copy link
Owner

arendst commented Oct 26, 2017

Ok, In version 5.8.0p I've swapped the data and the bits fields for Panasonic and increased the sizie of bits from 8 to 32 bits. This way you should be able to use the Panasonic protocol as follows:

IrSend {"Protocol":"Panasonic", "Bits":16388, "Data":<Panasonic data>}

Where 16388 is hexadecimal 0x4004.

arendst added a commit that referenced this issue Oct 26, 2017
5.8.0p
 * Fix initial PwmFrequency and PwmRange
 * Add support for
Arilux AL-LC01 RGB Led controller (#370)
 * Add light turn Off Fade
(#925)
 * Change IrSend Panasonic command to IrSend
{"Protocol":"Panasonic", "Bits":16388, "Data":<Panasonic data>}
 *
where 16388 is 0x4004 hexadecimal (#1014)
arendst added a commit that referenced this issue Oct 30, 2017
5.9.0 20171030
* Rewrite code (partly) using Google C++ Style Guide
(https://google.github.io/styleguide/cppguide.html)
* Rewrite code by using command lookup tables and javascript (client
side) web page expansions
* Change HTML/CSS to enable nicer form field entry
* Change default PWM assignments for H801 RGB(CW) led controller to
support optional Color/Dimmer control
*   GPIO04 (W2)    from GPIO_PWM2 to GPIO_USER to be user configurable
for GPIO_PWM5 (second White - Warm if W1 is Cold)
*   GPIO12 (Blue)  GPIO_PWM3 no change
*   GPIO13 (Green) from GPIO_PWM4 to GPIO_PWM2
*   GPIO14 (W1)    from GPIO_PWM1 to GPIO_USER to be user configurable
for GPIO_PWM4 (first White - Cold or Warm)
*   GPIO15 (Red)   from GPIO_PWM5 to GPIO_PWM1
* Change default PWM assignments for MagicHome RGB(W) led controller to
support optional Color/Dimmer control
*   GPIO05 (Green) from GPIO_PWM4 to GPIO_PWM2
*   GPIO12 (Blue)  from GPIO_PWM5 to GPIO_PWM3
*   GPIO13 (White) GPIO_USER to be user configurable for GPIO_PWM4
(White - Cold or Warm)
*   GPIO14 (Red)   from GPIO_PWM3 to GPIO_PWM1
* Change default PWM assignment for Witty Cloud to support optional
Color/Dimmer control (#976)
*   GPIO12 (Green) from GPIO_PWM4 to GPIO_PWM2
*   GPIO13 (Blue)  from GPIO_PWM5 to GPIO_PWM3
*   GPIO15 (Red)   from GPIO_PWM3 to GPIO_PWM1
* Change when another module is selected now all GPIO user configuration
is removed
* Change command name IRRemote to IRSend (#956)
* Remove Arduino IDE version too low warning as it interferes with
platformio.ini platform = espressif8266_stage
* Fix command FullTopic entry when using serial or console interface
* Fix possible UDP syslog blocking
* Fix minimum TelePeriod of 10 seconds set by web page
* Fix command GPIOx JSON response (#897)
* Fix inverted relay power on state (#909)
* Fix compile error when DOMOTICZ_UPDATE_TIMER is not defined (#930)
* Fix alignment of web page items in some browsers (#935)
* Fix setting all saved power settings to Off when SetOption0
(SaveState) = 0 (#955)
* Fix timezone range from -12/12 to -13/13 (#968)
* Fix Southern Hemisphere TIME_STD/TIME_DST (#968)
* Fix TLS MQTT SSL fingerprint test (#970, #808)
* Fix virtual relay status message used with Color/Dimmer control (#989)
* Fix command IRSend and IRHvac case sensitive parameter regression
introduced with version 5.8.0 (#993)
* Fix pressure calculation for some BMP versions regression introduced
with version 5.8.0i (#974)
* Fix Domoticz Dimmer set to same level not powering on (#945)
* Fix Blocked Loop when erasing large flash using command reset 2
(#1002)
* Fix relay power control when light power control is also configured as
regression from 5.8.0 (#1016)
* Fix Mqtt server mDNS lookup only when MqttHost name is empty (#1026)
* Add debug information to MQTT subscribe
* Add translations to I2Cscan
* Add translation to BH1750 unit lx
* Add light scheme options (Color cycle Up, Down, Random) and moving
WS2812 schemes up by 3
* Add Domoticz counter sensor to IrReceive representing Received IR
Protocol and Data
* Add option 0 to MqttHost to allow empty Mqtt host name
* Add support for Arilux AL-LC01 RGB Led controller (#370)
* Add esp8266 de-blocking to PubSubClient library (#790)
* Add Domoticz sensors for Voltage and Current (#903)
* Add platformio OTA upload support (#928, #934)
* Add warning to webpage when USE_MINIMAL is selected (#929)
* Add smoother movement of hour hand in WS2812 led clock (#936)
* Add support for Magic Home RGBW and some Arilux Led controllers (#940)
* Add command SetOption15 0 (default) for command PWM control or
SetOption15 1 for commands Color/Dimmer control to PWM RGB(CW) leds
(#941)
* Add Domoticz counter sensor to Sonoff Bridge representing Received RF
code (#943)
* Add support for Luani HVIO board
(https://luani.de/projekte/esp8266-hvio/) (#953)
* Add PWM initialization after restart (#955)
* Add IR Receiver support. Disable in user_config.h (#956)
* Add support for inverted PWM (#960)
* Add Sea level pressure calculation and Provide command Altitude (#974)
* Add support for up to 8 relays (#995)
* Add commands RfSync, RfLow, RfHigh, RfHost and RfCode to allow sending
custom RF codes (#1001)
* Add retain to ENERGY messages controlled by command SensorRetain
(#1013)
* Add commands Color2, Color3, Color4, Width2, Width3, Width4 and
SetOption16 to set Ws2812 Clock parameters (#1019)
* Add German language file (#1022)
* Add support for connecting to MQTT brokers without userid and/or
password (#1023)
* Add support for esp8266 core v2.4.0-rc2 (#1024)
* Add commands PwmRange 1,255..1023 and PwmFrequency 1,100..4000 (#1025)
* Add Polish language file (#1044, #1047)
* Add support for KMC 70011 Power Monitoring Smart Plug (#1045)
* Add support for VEML6070 I2C Ultra Violet level sensor (#1053)
* Add light turn Off Fade (#925)
* Add IrSend command option Panasonic as IrSend {"Protocol":"Panasonic",
"Bits":16388, "Data":<Panasonic data>}
*   where 16388 is 0x4004 hexadecimal (#1014)
* Add retry counter to DHT11/21/22 sensors (#1082)
@arendst
Copy link
Owner

arendst commented Oct 30, 2017

Implemented in master release v5.9.0

@arendst arendst closed this as completed Oct 30, 2017
curzon01 pushed a commit to curzon01/Tasmota that referenced this issue Sep 6, 2018
5.8.0l
* Update HTML/CSS to enable nicer form field entry
* Fix inverted relay status after restart or power on as regression from
5.8.0d (arendst#909)
* Add send protocol Panasonic to IRsend (arendst#1014)
* Fix relay power control when light power control is also configured as
regression from 5.8.0 (arendst#1016)
curzon01 pushed a commit to curzon01/Tasmota that referenced this issue Sep 6, 2018
5.8.0p
 * Fix initial PwmFrequency and PwmRange
 * Add support for
Arilux AL-LC01 RGB Led controller (arendst#370)
 * Add light turn Off Fade
(arendst#925)
 * Change IrSend Panasonic command to IrSend
{"Protocol":"Panasonic", "Bits":16388, "Data":<Panasonic data>}
 *
where 16388 is 0x4004 hexadecimal (arendst#1014)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants