Undesired Delay After Macro Runs

I have noticed that after a macro runs, there is a delay of about a second where no commands are sent. I have macros that are connected to my Apple TV 4k that do this. I have used both the BLE connection to the Apple and IR, and created the macro with both, and in both cases there is that delay. Is there a way to get rid of that second where the remote won’t send commands?

What containsy the Macro?

Ralf

Very simple,

  1. Skip right
  2. 50ms delay
  3. skip right

After it runs, there is about 1 second where the remote won’t send any command

Did you look at the log to get a hint?

Brand new to the remote 3, and learning. that is a great tip. I will take a look at the log, thanks!

I realize the log is hard to read in this format, but here is the section. At the bottom is the first button press (CHANNEL_DOWN), and then you can see the macro named ‘Apple Skip 20’ is run. When it completes at 2026-01-02 21:15:21.185569, I then press the button again somewhat quickly at 2026-01-02 21:15:21.701137, but you can see that it registers the button press, but does not run the ‘Apple Skip 20’ macro again.

2026-01-02 21:15:24.014871 +00:00 core NOTICE [BT] profile 2 disconnected (SUCCESS, 8)
2026-01-02 21:15:24.012042 +00:00 bt INFO I | socket_server.c:186 | Bluetooth status: ON
2026-01-02 21:15:24.012042 +00:00 bt INFO I | socket_server.c:1648 | BT connection count change: 0
2026-01-02 21:15:24.012042 +00:00 bt INFO D | hci.c:8230 | BTSTACK_EVENT_NR_CONNECTIONS_CHANGED 0
2026-01-02 21:15:24.012042 +00:00 bt INFO D | hci.c:1284 | Connection closed: handle 0x40, C4:F7:C1:32:DC:A3
2026-01-02 21:15:24.012042 +00:00 bt INFO I | kbd_profile.c:357 | [2] disconnected (0x40)
2026-01-02 21:15:24.012042 +00:00 bt INFO I | hog_keyboard.c:1114 | Disconnected, status=0, device_index=14, con_handle=0x40, reason=0x08
2026-01-02 21:15:24.012042 +00:00 bt INFO D | gatt_client.c:1817 | GATT Client: HCI_EVENT_DISCONNECTION_COMPLETE
2026-01-02 21:15:24.012042 +00:00 bt INFO I | socket_server.c:398 | daemon_remove_gatt_client_helper for con_handle 0x0040
2026-01-02 21:15:24.012042 +00:00 bt INFO D | hci.c:1673 | Num LE Peripheral roles: 0 of 5
2026-01-02 21:15:24.012042 +00:00 bt INFO D | hci.c:1667 | state 7, role 1, le_con 1
2026-01-02 21:15:24.012042 +00:00 bt INFO D | att_server.c:364 | encrypted key size 0, authenticated 0, secure connection 0
2026-01-02 21:15:24.012042 +00:00 bt INFO D | sm.c:4097 | event handler, state 26
2026-01-02 21:15:24.012042 +00:00 bt INFO D | sm.c:4095 | Encryption state change: 0, key size 0
2026-01-02 21:15:22.894596 +00:00 ui INFO uc.ui.input: RELEASE CONTROL BACK TO → “Activity_QMLTYPE_236(0x559ea2f410)”
2026-01-02 21:15:22.690787 +00:00 ui WARN uc.ui.resources: Empty ID passed to getIcon()
2026-01-02 21:15:22.281741 +00:00 core NOTICE [BT] profile 2 connected: C4:F7:C1:32:DC:A3 (LE_PUBLIC), status=SUCCESS
2026-01-02 21:15:22.274555 +00:00 bt INFO I | kbd_profile.c:328 | [2] connected (0x40)
2026-01-02 21:15:22.274555 +00:00 bt INFO I | hog_keyboard.c:1084 | Connection complete, status=0, device_index=14, con_handle=0x40, role=1, peer_address=C4:F7:C1:32:DC:A3 LE_PUBLIC, sm_peer_addr: C4:F7:C1:32:DC:A3 LE_PUBLIC
2026-01-02 21:15:22.274555 +00:00 bt INFO I | socket_server.c:186 | Bluetooth status: ACTIVE
2026-01-02 21:15:22.274555 +00:00 bt INFO I | socket_server.c:1648 | BT connection count change: 1
2026-01-02 21:15:22.274555 +00:00 bt INFO D | hci.c:8230 | BTSTACK_EVENT_NR_CONNECTIONS_CHANGED 1
2026-01-02 21:15:22.274555 +00:00 bt INFO D | att_server.c:415 | SM_EVENT_IDENTITY_RESOLVING_SUCCEEDED
2026-01-02 21:15:22.274555 +00:00 bt INFO D | sm.c:1349 | peripheral: pairing request local 0, have_ltk 1 => trigger_security_request 0
2026-01-02 21:15:22.274555 +00:00 bt INFO D | le_device_db_tlv.c:338 | LE Device DB encryption for 14, ediv x0000, keysize 16, authenticated 1, authorized 0, secure connection 1
2026-01-02 21:15:22.274555 +00:00 bt INFO D | sm.c:1325 | ADDRESS_RESOLUTION_SUCCEEDED, index 14
2026-01-02 21:15:22.274555 +00:00 bt INFO D | sm.c:2293 | LE Device Lookup: found by { addr_type, address}
2026-01-02 21:15:22.274555 +00:00 bt INFO D | sm.c:2287 | LE Device Lookup: device 14 of 16 - type 0, C4:F7:C1:32:DC:A3
2026-01-02 21:15:22.274555 +00:00 bt INFO D | att_server.c:404 | SM_EVENT_IDENTITY_RESOLVING_STARTED
2026-01-02 21:15:22.269015 +00:00 bt INFO D | hci.c:3517 | New connection: handle 64, C4:F7:C1:32:DC:A3
2026-01-02 21:15:22.269015 +00:00 bt INFO D | hci.c:1673 | Num LE Peripheral roles: 1 of 5
2026-01-02 21:15:22.269015 +00:00 bt INFO D | hci.c:1667 | state 4, role 1, le_con 1
2026-01-02 21:15:22.269015 +00:00 bt INFO D | hci.c:329 | create_connection_for_addr C4:F7:C1:32:DC:A3, type 0
2026-01-02 21:15:22.269015 +00:00 bt INFO D | hci.c:3387 | LE Connection_complete (status=0) type 0, C4:F7:C1:32:DC:A3
2026-01-02 21:15:21.901892 +00:00 ui INFO uc.ui.input: Key released: “CHANNEL_DOWN” “LoadingScreen_QMLTYPE_42(0x559dd97d20)”
2026-01-02 21:15:21.701137 +00:00 ui INFO uc.ui.input: Key pressed: “CHANNEL_DOWN” “LoadingScreen_QMLTYPE_42(0x559dd97d20)”
2026-01-02 21:15:21.492317 +00:00 ui INFO uc.ui.input: TAKE CONTROL FROM “Activity_QMLTYPE_236(0x559ea2f410)” → “LoadingScreen_QMLTYPE_42(0x559dd97d20)”
2026-01-02 21:15:21.185569 +00:00 ui INFO qml: Macro state changed to: Completed
2026-01-02 21:15:21.184097 +00:00 ui INFO qml: Current step changed: undefined
2026-01-02 21:15:21.183157 +00:00 ui WARN uc.ui.resources: Empty ID passed to getIcon()
2026-01-02 21:15:21.182696 +00:00 ui INFO qml: Macro state changed to: Running
2026-01-02 21:15:21.168225 +00:00 core NOTICE Removed standby inhibitor: macro ‘Apple Skip 20’ (run) (max 65s)
2026-01-02 21:15:21.167968 +00:00 core NOTICE [Apple Skip 20] macro finished
2026-01-02 21:15:21.167252 +00:00 bt INFO W | socket_server.c:930 | [2] UCR command UCR_KBD_SEND_USAGE 1 error: 2
2026-01-02 21:15:21.167252 +00:00 bt INFO E | hog_keyboard.c:863 | [2] Invalid profile or no connection (0xffff) for sending next HID input 2
2026-01-02 21:15:21.167252 +00:00 bt INFO D | hog_keyboard.c:997 | [2:2] send native report, state=0
2026-01-02 21:15:21.167252 +00:00 bt INFO D | socket_server.c:916 | [2] UCR command UCR_KBD_SEND_USAGE 1: 0x0045
2026-01-02 21:15:21.164883 +00:00 core NOTICE [Apple Skip 20] macro command: uc_bt.main.profile2:CONSUMER_MENU_RIGHT
2026-01-02 21:15:21.134110 +00:00 ui INFO qml: Current step changed: undefined
2026-01-02 21:15:21.132740 +00:00 ui INFO qml: Macro state changed to: Running
2026-01-02 21:15:21.130762 +00:00 ui INFO qml: Current step changed: undefined
2026-01-02 21:15:21.129657 +00:00 ui INFO qml: Macro state changed to: Running
2026-01-02 21:15:21.114976 +00:00 core NOTICE [Apple Skip 20] macro delay: 50 ms
2026-01-02 21:15:21.113107 +00:00 bt INFO W | socket_server.c:930 | [2] UCR command UCR_KBD_SEND_USAGE 1 error: 2
2026-01-02 21:15:21.113107 +00:00 bt INFO E | hog_keyboard.c:863 | [2] Invalid profile or no connection (0xffff) for sending next HID input 2
2026-01-02 21:15:21.113107 +00:00 bt INFO D | hog_keyboard.c:997 | [2:2] send native report, state=0
2026-01-02 21:15:21.113107 +00:00 bt INFO D | socket_server.c:916 | [2] UCR command UCR_KBD_SEND_USAGE 1: 0x0045
2026-01-02 21:15:21.111007 +00:00 core NOTICE [Apple Skip 20] macro command: uc_bt.main.profile2:CONSUMER_MENU_RIGHT
2026-01-02 21:15:21.110734 +00:00 core NOTICE Added standby inhibitor: macro ‘Apple Skip 20’ (run) (max 65s)
2026-01-02 21:15:21.110360 +00:00 core NOTICE Started macro ‘Apple Skip 20’ (uc.main.fa14f968-4f1a-42b2-b604-a8346c50726f) with timeout of 60s
2026-01-02 21:15:21.105735 +00:00 ui INFO uc.ui.input: Key released: “CHANNEL_DOWN” “Activity_QMLTYPE_236(0x559ea2f410)”
2026-01-02 21:15:20.929008 +00:00 ui INFO uc.ui.input: Key pressed: “CHANNEL_DOWN” “Activity_QMLTYPE_236(0x559ea2f410)”