For a long time, the community believed that to get full control over the Sonoff TX Ultimate’s amazing RGB LED halo, built-in speaker, you had to void your warranty and flash it with ESPHome.
I’m excited to share that for the first time, I’ve managed to reverse-engineer the local network logs and decipher the exact JSON payloads. We can now control almost EVERYTHING natively using the sonoff.send_command service via AlexxIT’s SonoffLAN integration—no hardware mods required!
Here is how you can transform your TX Ultimate into a dynamic smart doorbell, alarm siren, or night-mode switch.
Instant Notification (Doorbell / Alarm Chime) via preEffects
This command sends an instant color, brightness, and sound effect to the switch without changing its permanent default settings. Perfect for automations!
service: sonoff.send_command
data:
device: "100228xxxx" # Replace with your device ID
preEffects:
lightEffect: 5 # 0-5 light animation style
soundEffect: 4 # 0-5 sound effect
statusLight: "on" # "on" or "off"
statusLightTop: 1 # 1 (on) or 0 (off) for top LEDs
statusLightBelow: 1# 1 (on) or 0 (off) for bottom LEDs
r: 0 # Red (0-255)
g: 255 # Green (0-255)
b: 0 # Blue (0-255)
br: 100 # Brightness (0-100)
volume: 80 # Volume (0-100)
Toggle Touch Haptic Feedback (shock)
Great for “Night Mode” automations when you want the switch to be completely silent to the touch.
YAML
service: sonoff.send_command
data:
device: "100228xxxx"
shock: 1 # 1 to enable touch vibration, 0 to disable
Change Permanent Key-Press Behavior (onEffects / offEffects)
Change the default sound and light that triggers when you physically touch the switch.
YAML
service: sonoff.send_command
data:
device: "100228xxxx"
onEffects:
lightEffect: 1
soundEffect: 0
volume: 50 # Set to 0 to mute the physical key press
Schedule “Do Not Disturb” (DND) Mode
You can set specific hours where the switch will automatically suppress physical feedback (sounds and bright lights) so it doesn’t wake anyone up at night.
service: sonoff.send_command
data:
device: "100228xxxx"
doNotDisturb: 1 # Set to 1 to enable, 0 to disable
doNotDisturbTime:
from: "22:00"
to: "07:00"
Note: Ensure you use device: and not the old deviceid: if you are on the latest SonoffLAN versions.
A Quick Note: I spent quite some time sniffing logs to figure this out and recently published a YouTube video (@mutlutekir) demonstrating it. If you plan to use this method in your blogs, tutorials, or videos, a simple credit to Mutlu Tekir (or a link to my video) would be highly appreciated. Knowledge grows when shared!
Let me know what color and sound combinations you come up with for your automations! Happy hacking!
I created script for this. You need Sonoff Lan HACS integration to use this. From the drop down menu, you can select your TX Ultimate device and configure light effect, color, brightness, sound effect etc, and use this script in automation.
alias: Sonoff TX Ultimate - Control Panel
description: >-
Send color, brightness, and effect commands to your TX Ultimate device using a visual interface.
icon: mdi:lightbulb-multiple
fields:
target_device:
name: Sonoff Device
description: Select the device you want to send commands to from the list.
required: true
selector:
device:
integration: sonoff
manufacturer: SONOFF
filter:
- model: "T5-1C-120"
- model: "T5-2C-120"
- model: "T5-3C-120"
- model: "T5-4C-120"
- model: "T5-1C-86"
- model: "T5-2C-86"
- model: "T5-3C-86"
- model: "T5-4C-86"
rgb_color:
name: Light Color
description: Select a color from the palette for the halo light.
default:
- 255
- 0
- 0
selector:
color_rgb: {}
brightness:
name: Brightness
description: Adjust the light intensity.
default: 100
selector:
number:
min: 0
max: 100
unit_of_measurement: "%"
light_effect:
name: Light Effect
description: The visual animation the device will play.
default: "0"
selector:
select:
options:
- label: 0 - Effect Off
value: "0"
- label: 1 - Wave Effect
value: "1"
- label: 2 - Breath Effect
value: "2"
- label: 3 - Cycle Effect
value: "3"
- label: 4 - Fast Transition
value: "4"
- label: 5 - Color Burst
value: "5"
sound_effect:
name: Sound Effect
description: The accompanying sound effect to play.
default: "0"
selector:
select:
options:
- label: 0 - Sound Off
value: "0"
- label: 1 - Beep
value: "1"
- label: 2 - Double Beep
value: "2"
- label: 3 - Melody 1
value: "3"
- label: 4 - Alarm Chime
value: "4"
- label: 5 - Notification Sound
value: "5"
volume:
name: Volume Level
description: The volume level of the effect to be played.
default: 80
selector:
number:
min: 0
max: 100
unit_of_measurement: "%"
top_light:
name: Top Light Panel
description: Should the top status lights be activated?
default: true
selector:
boolean: {}
bottom_light:
name: Bottom Light Panel
description: Should the bottom status lights be activated?
default: true
selector:
boolean: {}
sequence:
- variables:
ewelink_id: >-
{% set idents = device_attr(target_device, 'identifiers') | list %} {%
set ns = namespace(id=target_device) %} {% for ident in idents %}
{% if ident[0] == 'sonoff' %}
{% set ns.id = ident[1] %}
{% endif %}
{% endfor %} {{ ns.id }}
- data:
device: "{{ ewelink_id }}"
preEffects:
lightEffect: "{{ light_effect | int }}"
soundEffect: "{{ sound_effect | int }}"
statusLight: "on"
statusLightTop: "{{ 1 if top_light else 0 }}"
statusLightBelow: "{{ 1 if bottom_light else 0 }}"
r: "{{ rgb_color[0] }}"
g: "{{ rgb_color[1] }}"
b: "{{ rgb_color[2] }}"
br: "{{ brightness | int }}"
volume: "{{ volume | int }}"
action: sonoff.send_command