Two radio additions were merged into ESPHome's development branch eight minutes apart on the evening of 17 October 2026, at 19:44 and 19:52 UTC. Both extend remote_base, the shared code behind remote_receiver and remote_transmitter, and both are about motors for blinds and shutters. They are set for ESPHome 2026.11.

A-OK remotes

A-OK makes motors for curtains, zip screens, pergolas and similar shades. Many of them are controlled by remotes on 433 or 868 MHz, such as the AC127 linked in the pull request. Pull request #20991 by nagisa adds a decoder and an encoder for that protocol, so an ESP board with a radio module can read the remote and send the same commands itself. The author had been running an equivalent out-of-tree component in their own project, in both directions, and tested the new code on ESP-IDF.

A frame starts with a 5 ms mark followed by 64 bits: a fixed header, a 24-bit remote ID, a 16-bit channel mask, a command byte and a checksum. Set dump: aok on the receiver, press a button on the remote, and the log shows the remote_id, channels and command values to copy into remote_transmitter.transmit_aok. Each of the 16 channels is one bit of the mask, so setting several bits sends one command to several motors at once. An on_aok trigger reacts to received codes.

The documentation warns that remotes send each code several times. If a motor ignores a single transmission, it suggests repeat with times: 8 and wait_time: 5ms. The example config uses a CC1101 radio and switches it to transmit before each send and back to receive afterwards.

Jarolift group frames

The second change, #20927 by Bascht74, is as much a fix as a feature. Jarolift's TDEF receivers use KeeLoq, which ESPHome already sends with transmit_keeloq. A TDEF frame is 72 bits long: Jarolift puts 8 group bits after the 64-bit word, in the place where the HCS301 chip has its low battery and repeat bits. ESPHome has always sent the repeat bit as 1, and a TDEF receiver reads that bit as channel 10. A command meant for a single shutter on channels 1 to 8 therefore reached channel 10 as well.

The new group option (0 to 0xFF) fills those 8 bits. It cannot be combined with level: true, suffix or suffix_bits, because they set the same bits. TDEF frames already decoded on the receiving side, and x.group() in on_keeloq now returns the group bits. Group frames go out through a plain 433 MHz OOK module on a GPIO or through the cc1101 component, both with carrier_duty_percent: 100%.

The change builds on #19891, merged on 12 October, which added optional suffix bits after the HCS301 word. The documentation pull request for group was still open on 17 October.