Introduction

The Communication - IR Receive (TSOP4838) module can be used to receive IR remote control signals.

Connect a TSOP module, preferably a 38Khz one, preferably to GPIO with interrupt functionality.

Wiring

Connect the digital output (pin 1) to some chosen GPIO pin on the ESP module.

../_images/P016_TSOP4838.png

Load the firmware and follow the firmware specific instructions.

A datasheet for the TSOP4838 receiver can be found here: http://www.vishay.com/docs/82459/tsop48.pdf.

Setup

../_images/P016_DeviceConfiguration.png

Task settings

  • Device: Communication - IR Receive (TSOP4838)

  • Name: Name of the task (example name IR).

  • Enable: Should the task be enabled or not

Sensor

  • Internal PullUp: To enable the internal pull-up resistor of the ESP. Usually not needed for the TSOP4838 as it has a built-in pull-up mechanism.

  • Inversed Logic: Can be used to invert the signal if a different type of receiver is used.

  • GPIO <- IR: Select the pin that the TSOP is connected to. Avoid selecting a pin that has a warning sign next to it, as that may block the boot process or normal working of the ESP.

  • Receiver buffer size: For receiving and decoding the data from the sensor, a buffer is needed. For more complex protocols, like often used for Air Conditioner remote controls, a larger buffer may be needed. By default this buffer is dimensioned at 300 bytes (will be rounded up to the next even number when stored), and needs to be enlarged if a message of this intent is shown in the log at INFO level (Either Web or serial log).

  • Event on boffer overflow: When enabled, will generate an event <TaskName>#Overflow=<raw_buffer_length> when the buffer overflows, so this can be used as a way to handle this exception, f.e. by lighting up a LED or activating a buzzer. The received data won’t be processed further, and discarded, when this error occurs.

Content

  • Add new received code to command lines: After receiving a valid IR code the code is automatically added to the following table if it not already exists.

  • Execute commands: After receiving a valid IR the command that is assigned to this code (Code [Hex] or Alt. Code [Hex]) is executed.

  • Inhibit time for the same command [ms]: The time that a same command will be ignored if receiving it multiple times. When set too high, often repeated commands like volume-up or volume-down will respond slower than expected.

Note

The code is only added automatically to field Code [Hex]!

Code - command map

  • Decode type: The type as detected by the receiver, the list contains all supported types.

  • Repeat: If a repeat code is detected, this is checked.

  • Code [Hex]: If the received valid IR code matches this setting the Command nn is executed.

  • Alt. Decode type: The type as detected by the receiver, the list contains all supported types.

  • Repeat: If a repeat code is detected, this is checked.

  • Alt. Code [Hex]: If the received valid IR code matches this setting the Command nn is executed.

  • Command nn:If the received valid IR code matches the code in Code [Hex] or Alt. Code [Hex] this command is executed.

Note

Up to 10 commands can be set !

Note

Using compile-time options, the Code - command map and related options can be disabled.

Data Acquisition

This group of settings are standard available configuration items.

  • Single event with all values: When this setting is enabled, all available values will be sent in a single event <TaskName>#All, with all values in order as arguments to the event.

  • Show derived values: When checked, the Devices overview page, and the /json endpoint (used for updating the Devices overview page) will include any Derived values as defined. See the TaskValueSetDerived and TaskValueSetPresentation commands.

  • Event & Log derived values: When checked, the Derived values will be generated as Events, to be handled in Rules, and sent to logging devices like the Syslog server and/or SD-card logging.

(The derived values options are only available if String variables feature is included in the build.)


  • Send to Controller: Select the Controller(s) to send the Values to, either on a TaskRun command applied to the task, or on an Interval time action.

Send to Controller is only visible when one or more Controllers are configured.

Depending on the controller capabilities, some configuration settings may be shown:

../_images/Task_config_page_Controllers_section.png

All configured Controllers are shown here, including the enabled or disabled state (multiple Controllers can be enabled, only a single MQTT Controller can be enabled at one time!).

For each controller the user can select wether the data should be sent on each Interval (or explicit TaskRun).

For the Domoticz controllers the value index (IDX) has to be configured.

For some controllers, like Home Assistant/openHAB, there are extra options available.

  • Group: This represents the group id to combine all values from multiple tasks into a single grouped-device during MQTT AutoDiscovery. Groups, by design, can span multiple ESPEasy devices, if desired, as long as the Task/Valuename combinations are unique. If a group should only combine Tasks from a single ESPEasy unit, the group id should be unique across multiple ESPEasy units. The group description, default Group <n>, can be adjusted in Home Assistant. If the Group value matches the current Unit nr, the Unit name, %sysname%, is used instead of Group <nr>.

  • Retained: For MQTT Controllers, this setting can be enabled to send the values for the current task with the Retain flag set. The Publish Retain flag in the Controller settings will override this by sending all task values with Retain flag enabled.

  • Send derived: This checkbox determines if any configured Derived values should also be sent to the controller (and included in the AutoDiscovery if that’s available and enabled).

  • Resend MQTT Discovery: When checked, will start a resend of the MQTT Discovery process for this task after a random delay, when Submit is clicked, so any changed settings will be updated in the MQTT broker. This setting is only available if the controller is enabled, the Auto Discovery feature is available and enabled for the controller. This setting is not stored.

Other controllers, like f.e. FHEM HTTP, do not support additional settings besides the checkbox to enable sending the data.


Values

The last received code is available in numeric for in the Value that’s selected here. It can be used in rules and other template processing plugins like Display devices.