Summary
Tasmota open-source firmware for ESP8266/ESP32-based smart plugs and relay modules. Control via HTTP web requests (/cm?cmnd=), MQTT over TCP (topic cmnd/%topic%/<command>), and serial bridge at 115200 bps. Supports power on/off/toggle, pulse timers, interlock groups, backlog command sequencing, and telemetry.
Transport
protocols:
- http
- tcp
- serial
addressing:
base_url: "http://{host}/cm"
port: null # UNRESOLVED: MQTT port not stated in source
serial:
baud_rate: 115200
data_bits: null # UNRESOLVED: configurable via SerialConfig, default not explicitly stated
parity: null # UNRESOLVED
stop_bits: null # UNRESOLVED
auth:
type: optional # Web password optional; when set, pass ?user=<username>&password=<password> in HTTP URL. MQTT uses MqttUser/MqttPassword.
Traits
traits:
- powerable # inferred from Power on/off/toggle commands
- queryable # inferred from Status/State query commands
Actions
actions:
- id: power_on
label: Power On
kind: action
description: "Turn on relay output. Power<x> 1 or Power<x> on or Power<x> true"
params:
- name: index
type: integer
description: "Relay index (1-based). Omit for first relay."
- id: power_off
label: Power Off
kind: action
description: "Turn off relay output. Power<x> 0 or Power<x> off or Power<x> false"
params:
- name: index
type: integer
description: "Relay index (1-based). Omit for first relay."
- id: power_toggle
label: Power Toggle
kind: action
description: "Toggle relay output. Power<x> 2 or Power<x> toggle"
params:
- name: index
type: integer
description: "Relay index (1-based). Omit for first relay."
- id: power_blink
label: Power Blink
kind: action
description: "Blink relay for BlinkCount times each BlinkTime duration. Power<x> 3 or Power<x> blink"
params:
- name: index
type: integer
description: "Relay index (1-based). Omit for first relay."
- id: power_blink_off
label: Stop Blink
kind: action
description: "Stop blink sequence and restore pre-blink state. Power<x> 4 or Power<x> blinkoff"
params:
- name: index
type: integer
description: "Relay index (1-based). Omit for first relay."
- id: power_all_on
label: All Power On
kind: action
description: "Turn ON all power outputs simultaneously. Power0 1"
- id: power_all_off
label: All Power Off
kind: action
description: "Turn OFF all power outputs simultaneously. Power0 0"
- id: power_all_toggle
label: All Power Toggle
kind: action
description: "Toggle all power outputs simultaneously. Power0 2"
- id: set_power_on_state
label: Set Power-On State
kind: action
description: "Control power state when device is powered up"
params:
- name: mode
type: integer
description: "0=OFF, 1=ON, 2=TOGGLE, 3=last saved state (default), 4=ON locked, 5=ON after PulseTime"
- id: set_pulse_time
label: Set Pulse Time
kind: action
description: "Set auto-off timer for relay. After Power ON, relay turns off after this duration."
params:
- name: index
type: integer
description: "Relay index (1-based)"
- name: value
type: integer
description: "0=disable, 1..111=in 0.1s increments, 112..64900=offset by 100 in 1s increments"
- id: timed_power
label: Timed Power
kind: action
description: "Execute Power action then invert after specified milliseconds"
params:
- name: index
type: integer
description: "Relay index (1-based)"
- name: action
type: integer
description: "0=OFF, 1=ON, 2=TOGGLE, 3=BLINK"
- name: duration_ms
type: integer
description: "Duration in milliseconds (50ms granularity)"
- id: set_blink_count
label: Set Blink Count
kind: action
description: "Number of relay toggles during blink"
params:
- name: count
type: integer
description: "0=many times, 1..32000=number of blinks (default 10)"
- id: set_blink_time
label: Set Blink Time
kind: action
description: "Duration of each blink toggle in 0.1s increments"
params:
- name: value
type: integer
description: "2..3600 in 0.1s increments"
- id: set_interlock
label: Set Interlock
kind: action
description: "Configure relay interlock groups"
params:
- name: config
type: string
description: "0=disable, 1=enable with groups e.g. '1,2 3,4'"
- id: backlog
label: Backlog
kind: action
description: "Execute up to 30 consecutive commands separated by semicolons"
params:
- name: commands
type: string
description: "Semicolon-separated list of commands"
- id: delay
label: Delay
kind: action
description: "Set delay between backlog commands in 0.1s increments"
params:
- name: value
type: integer
description: "2..3600 in 0.1s increments, -1=next second tick"
- id: restart
label: Restart
kind: action
description: "Restart device"
params:
- name: mode
type: integer
description: "1=restart with config save, 2=halt, 3=safeboot (ESP32), 9=save+deepsleep"
- id: status
label: Status
kind: action
description: "Query device status information"
params:
- name: type
type: integer
description: "0=all, 1=device params, 2=firmware, 3=logging, 4=memory, 5=network, 6=MQTT, 7=time, 9=power thresholds, 10=sensors, 11=telemetry"
- id: state
label: State
kind: action
description: "Display current device state and publish to result topic"
- id: set_deep_sleep
label: Set Deep Sleep
kind: action
description: "Configure deep sleep mode"
params:
- name: seconds
type: integer
description: "0=disable, 11..86400=sleep period in seconds"
- id: set_power_lock
label: Set Power Lock
kind: action
description: "Lock/unlock power state to prevent changes"
params:
- name: index
type: integer
description: "Relay index. 0=lock/unlock ALL"
- name: state
type: integer
description: "0=unlocked, 1=locked"
- id: backlog0
label: Backlog Immediate
kind: action
description: "Execute commands without any delay in sequence, separated by ;"
params:
- name: commands
type: string
description: "Semicolon-separated list of commands to execute without delay"
- id: backlog2
label: Backlog Silent Immediate
kind: action
description: "Like Backlog0 but without result published, same as prefixing all commands with _"
params:
- name: commands
type: string
description: "Semicolon-separated list of commands to execute silently without delay"
- id: backlog3
label: Backlog Silent
kind: action
description: "Like Backlog but without result published, same as prefixing all commands with _"
params:
- name: commands
type: string
description: "Semicolon-separated list of commands to execute silently"
- id: no_delay
label: No Delay
kind: action
description: "Omit SetOption34 inter-command delay for the command immediately following in a backlog sequence"
- id: reset
label: Reset
kind: action
description: "Reset device settings to firmware defaults and restart"
params:
- name: mode
type: integer
description: "1=reset settings and restart, 2=erase flash and reset, 3=erase System Parameter Area and restart, 4=reset but retain Wi-Fi and restart, 5=erase all flash keep Wi-Fi and restart, 6=erase all flash keep Wi-Fi and MQTT and restart, 99=reset bootcount to zero"
- id: save_data
label: Save Data
kind: action
description: "Control frequency of parameter changes saved to flash"
params:
- name: value
type: integer
description: "0=save only manually, 1=save every second (default), 2..3600=save every x seconds"
- id: serial_log
label: Serial Log
kind: action
description: "Disable hardware serial bridge and configure serial logging level"
params:
- name: level
type: integer
description: "0=disable serial logging, 1=errors only, 2=error and info (default), 3=error info and debug, 4=error info and more debug"
- id: sleep
label: Sleep
kind: action
description: "Configure device sleep duration in milliseconds for energy saving"
params:
- name: value
type: integer
description: "0=turn sleep off, 1..250=set sleep duration in milliseconds (default=50)"
- id: status0
label: Status0
kind: query
description: "Show all status information in a single line"
- id: template
label: Template
kind: action
description: "Show or configure device template"
params:
- name: value
type: string
description: "0=create from active module, x=create from supported module, 255=merge module and template settings, JSON payload=store template. Does not activate; use Module 0 to activate."
- id: module
label: Module
kind: action
description: "Display active module by name and index or switch to a different module and restart"
params:
- name: value
type: integer
description: "0=switch to defined template and restart, value=switch to module value and restart"
- id: module2
label: Module2
kind: action
description: "Display or set fast reboot fallback module by name and index"
params:
- name: value
type: integer
description: "0=set fast reboot fallback to defined template, value=set fast reboot fallback module to value"
- id: gpios
label: GPIOs
kind: query
description: "Show list of available GPIO components by name and index"
params:
- name: value
type: string
description: "255 or All = show list of all components by name and index"
- id: gpio
label: GPIO
kind: query
description: "Show current component assignments of the Module configurable GPIO"
params:
- name: value
type: string
description: "255 or All = show component assignments for all device available GPIO"
- id: gpio_assign
label: GPIO Assign
kind: action
description: "Assign a component to a configurable GPIO pin"
params:
- name: index
type: integer
description: "GPIO pin number (x in GPIO<x>)"
- name: component
type: string
description: "Component to assign to the GPIO pin"
- id: gpio_read
label: GPIO Read
kind: query
description: "Perform a digitalRead on a configured GPIO to show input state"
params:
- name: index
type: integer
description: "GPIO pin number (x in GPIORead<x>)"
- id: friendly_name
label: Friendly Name
kind: action
description: "Set device friendly name displayed in webUI"
params:
- name: index
type: integer
description: "Name index (x in FriendlyName<x>). Omit for first."
- name: value
type: string
description: "1=reset to firmware default, value=set friendly name (32 char limit)"
- id: device_name
label: Device Name
kind: action
description: "Set device name displayed in webUI and used for HA autodiscovery"
params:
- name: value
type: string
description: "Set device name (default = FriendlyName1 value)"
- id: hostname
label: Hostname
kind: action
description: "Set device hostname and restart"
params:
- name: value
type: string
description: "1=reset to MQTT_TOPIC-4digits and restart, value=set hostname (32 char limit) and restart"
- id: ip_address
label: IP Address
kind: action
description: "Configure device network IP addresses (follow with Restart 1 to apply)"
params:
- name: index
type: integer
description: "1=device IP address, 2=gateway IP address, 3=subnet mask, 4=DNS server, 5=secondary DNS server"
- name: value
type: string
description: "0.0.0.0=use dynamic IP (DHCP), XXX.XXX.XXX.XXX=set static IP address"
- id: wifi
label: Wi-Fi
kind: action
description: "Enable or disable Wi-Fi"
params:
- name: value
type: integer
description: "0=disable Wi-Fi, 1=enable Wi-Fi (default)"
- id: wifi_config
label: Wi-Fi Config
kind: action
description: "Configure Wi-Fi connection method"
params:
- name: value
type: integer
description: "0=disable Wi-Fi Manager and reboot, 2=start Wi-Fi Manager at 192.168.4.1 for 3 min, 4=retry other AP without reboot (default), 5=wait for AP without reboot, 6=serial console config only, 7=Wi-Fi Manager restricted to reset settings only"
- id: wifi_power
label: Wi-Fi Power
kind: action
description: "Set Wi-Fi transmit power level in dBm"
params:
- name: value
type: number
description: "0=dynamic power based on RSSI, 1=restore default Wi-Fi power, value=set power level in dBm (default=17)"
- id: wifi_scan
label: Wi-Fi Scan
kind: action
description: "Start a Wi-Fi network scan; results sent as JSON payload"
params:
- name: value
type: integer
description: "1=start a network scan"
- id: wifi_test
label: Wi-Fi Test
kind: action
description: "Test Wi-Fi SSID and Password credentials (only available in AP mode)"
params:
- name: index
type: integer
description: "0=test and save to slot 1 and restart, 1=test and save to slot 1 no restart, 2=test and save to slot 2 no restart, 3=test without storing"
- name: credentials
type: string
description: "ssid+password for testing where + is the separator (not allowed in SSID names)"
- id: ssid
label: SSID
kind: action
description: "Set Wi-Fi Access Point SSID for AP slot 1 or 2"
params:
- name: index
type: integer
description: "AP index: 1 or 2"
- name: value
type: string
description: "0=clear SSID and restart, 1=reset to firmware default and restart, value=set Wi-Fi SSID and restart (max 32 chars)"
- id: password
label: Password
kind: action
description: "Set Wi-Fi Access Point password for AP slot 1 or 2"
params:
- name: index
type: integer
description: "AP index: 1 or 2"
- name: value
type: string
description: "1=reset to firmware default and restart, value=set Wi-Fi password and restart (max 64 chars)"
- id: ap
label: Access Point Select
kind: action
description: "Switch between configured Wi-Fi Access Points"
params:
- name: value
type: integer
description: "0=switch to other AP, 1=select AP1, 2=select AP2"
- id: mqtt_host
label: MQTT Host
kind: action
description: "Set MQTT broker host address and restart"
params:
- name: value
type: string
description: "0=clear host field and allow mDNS to find MQTT host, 1=reset to firmware default and restart, value=set MQTT host and restart"
- id: mqtt_port
label: MQTT Port
kind: action
description: "Set MQTT broker port and restart"
params:
- name: value
type: integer
description: "1=reset to firmware default and restart, value=set MQTT port 2..32766 and restart"
- id: mqtt_user
label: MQTT User
kind: action
description: "Set MQTT username"
params:
- name: value
type: string
description: "0=clear MQTT user name, 1=reset to firmware default and restart, value=set MQTT user name and restart"
- id: mqtt_password
label: MQTT Password
kind: action
description: "Set MQTT password"
params:
- name: value
type: string
description: "0=clear MQTT password, 1=reset to firmware default and restart, value=set MQTT password and restart (min 5 chars)"
- id: mqtt_client
label: MQTT Client
kind: action
description: "Set MQTT client identifier and restart"
params:
- name: value
type: string
description: "1=reset to firmware default and restart, value=set MQTT client and restart"
- id: mqtt_keep_alive
label: MQTT Keep Alive
kind: action
description: "Set MQTT Keep Alive timer"
params:
- name: value
type: integer
description: "1..100 = set MQTT Keep Alive timer (default=30)"
- id: mqtt_timeout
label: MQTT Timeout
kind: action
description: "Set MQTT socket timeout"
params:
- name: value
type: integer
description: "1..100 = set MQTT socket timeout (default=4)"
- id: mqtt_retry
label: MQTT Retry
kind: action
description: "Set MQTT connection retry timer in seconds"
params:
- name: value
type: integer
description: "10..32000 = set MQTT connection retry timer in seconds (default=10)"
- id: mqtt_wifi_timeout
label: MQTT Wi-Fi Timeout
kind: action
description: "Set MQTT Wi-Fi connection timeout in milliseconds"
params:
- name: value
type: integer
description: "100..20000 = set MQTT Wi-Fi connection timeout in milliseconds (default=200)"
- id: topic
label: Topic
kind: action
description: "Set MQTT device topic and ButtonTopic and restart"
params:
- name: value
type: string
description: "1=reset to firmware default and restart, value=set MQTT topic and ButtonTopic and restart"
- id: group_topic
label: Group Topic
kind: action
description: "Set MQTT group topic for device group communications"
params:
- name: index
type: integer
description: "Group topic index (x in GroupTopic<x>)"
- name: value
type: string
description: "1=reset to firmware default and restart, value=set MQTT group topic and restart"
- id: full_topic
label: Full Topic
kind: action
description: "Set MQTT full topic format with optional substitution tokens"
params:
- name: value
type: string
description: "1=reset to firmware default and restart, value=set MQTT fulltopic and restart. Tokens: %prefix%, %topic%, %hostname%, %id%"
- id: prefix
label: Prefix
kind: action
description: "Set MQTT command, status, or telemetry topic prefix"
params:
- name: index
type: integer
description: "1=command subscription prefix (SUB_PREFIX), 2=status prefix (PUB_PREFIX), 3=telemetry prefix (PUB_PREFIX2)"
- name: value
type: string
description: "1=reset to firmware default and restart, value=set MQTT prefix and restart"
- id: button_topic
label: Button Topic
kind: action
description: "Set MQTT button topic"
params:
- name: value
type: string
description: "0=disable, 1=set to device topic, 2=reset to firmware default (default=0), value=set MQTT button topic"
- id: switch_topic
label: Switch Topic
kind: action
description: "Set MQTT switch topic"
params:
- name: value
type: string
description: "0=disable (default), 1=set to device topic, 2=reset to firmware default, value=set MQTT switch topic"
- id: button_retain
label: Button Retain
kind: action
description: "Configure MQTT retain flag for button press messages"
params:
- name: value
type: integer
description: "0=disable retain flag (default), 1=enable MQTT retain flag on button press"
- id: switch_retain
label: Switch Retain
kind: action
description: "Configure MQTT retain flag for switch press messages"
params:
- name: value
type: integer
description: "0=disable retain flag (default), 1=enable MQTT retain flag on switch press"
- id: power_retain
label: Power Retain
kind: action
description: "Configure MQTT retain flag for power state status updates"
params:
- name: value
type: integer
description: "0/off=disable MQTT power retain on status update (default), 1/on=enable MQTT power retain on status update"
- id: sensor_retain
label: Sensor Retain
kind: action
description: "Configure MQTT retain flag for sensor telemetry messages"
params:
- name: value
type: integer
description: "0=disable retain flag (default), 1=enable retain flag on tele/%topic%/SENSOR"
- id: state_retain
label: State Retain
kind: action
description: "Configure MQTT retain flag for state telemetry messages"
params:
- name: value
type: integer
description: "0=disable retain flag (default), 1=enable retain flag on tele/%topic%/STATE"
- id: info_retain
label: Info Retain
kind: action
description: "Configure MQTT retain flag for info telemetry messages"
params:
- name: value
type: integer
description: "0=disable retain flag (default), 1=enable retain flag on tele/%topic%/INFO<x>"
- id: status_retain
label: Status Retain
kind: action
description: "Configure MQTT retain flag for status messages"
params:
- name: value
type: integer
description: "0=disable retain flag (default), 1=enable retain flag on stat/%topic%/STATUS[n]"
- id: publish
label: Publish
kind: action
description: "Publish any MQTT topic with optional payload"
params:
- name: topic
type: string
description: "MQTT topic to publish to"
- name: payload
type: string
description: "Optional payload"
- id: publish2
label: Publish Retain
kind: action
description: "Publish any MQTT topic with optional payload and retain flag"
params:
- name: topic
type: string
description: "MQTT topic to publish to"
- name: payload
type: string
description: "Optional payload"
- id: publish3
label: Publish Retain Hex
kind: action
description: "Publish any MQTT topic with optional payload with retain flag encoded in Hex (disabled in MINIMAL and SAFEBOOT)"
params:
- name: topic
type: string
description: "MQTT topic to publish to"
- name: payload
type: string
description: "Optional payload"
- id: subscribe
label: Subscribe
kind: action
description: "Subscribe to an MQTT topic, append /# if not already present, and assign an Event name"
params:
- name: value
type: string
description: "eventName, mqttTopic [, key] = subscribe with event binding. Empty = list all subscribed topics"
- id: subscribe2
label: Subscribe2
kind: action
description: "Subscribe to an MQTT topic without appending /# and assign an Event name"
params:
- name: value
type: string
description: "eventName, mqttTopic [, key] = subscribe with event binding. Empty = list all subscribed topics"
- id: unsubscribe
label: Unsubscribe
kind: action
description: "Unsubscribe from topics subscribed to with Subscribe"
params:
- name: value
type: string
description: "Empty = unsubscribe all topics, eventName = unsubscribe from a specific MQTT topic"
- id: tele_period
label: Tele Period
kind: action
description: "Set telemetry publish period and force publish STATE and SENSOR message"
params:
- name: value
type: integer
description: "0=disable telemetry messages, 1=reset to firmware default, 10..3600=set period in seconds (default=300)"
- id: state_text
label: State Text
kind: action
description: "Set state text labels used in MQTT messages"
params:
- name: index
type: integer
description: "1=OFF state text, 2=ON state text, 3=TOGGLE state text, 4=HOLD state text"
- name: value
type: string
description: "Set state text string value"
- id: baudrate
label: Baudrate
kind: action
description: "Set hardware serial bridge baud rate"
params:
- name: value
type: integer
description: "1=set to default 115200 bps, value=set baud rate (multiple of 300, max 19660500)"
- id: sbaudrate
label: SBaudrate
kind: action
description: "Set software serial bridge baud rate"
params:
- name: value
type: integer
description: "1=set to default 9600 bps, value=set baud rate (multiple of 300, max 19660500)"
- id: serial_buffer
label: Serial Buffer
kind: action
description: "Set hardware serial bridge buffer size (not persisted across restarts)"
params:
- name: value
type: integer
description: "256..520 = set the serial buffer size"
- id: sserial_buffer
label: SSerial Buffer
kind: action
description: "Set software serial bridge buffer size (not persisted across restarts)"
params:
- name: value
type: integer
description: "256..SERIAL_BRIDGE_BUFFER_SIZE = set the software serial bridge buffer size"
- id: serial_config
label: Serial Config
kind: action
description: "Set hardware serial protocol using data/parity/stop notation"
params:
- name: value
type: string
description: "data/parity/stop notation e.g. 8N1 or 702; 0..23=set serial protocol (3 equals 8N1)"
- id: sserial_config
label: SSerial Config
kind: action
description: "Set software serial protocol using data/parity/stop notation"
params:
- name: value
type: string
description: "data/parity/stop notation e.g. 8N1 or 702; 0..23=set serial protocol (3 equals 8N1)"
- id: serial_delimiter
label: Serial Delimiter
kind: action
description: "Set serial delimiter character for hardware serial bridge"
params:
- name: value
type: integer
description: "1..127=set delimiter to decimal ASCII, 128=allow only ASCII 32-127, 254=disable delimiter post HEX string, 129..253 or 255=disable delimiter (default=255)"
- id: serial_send
label: Serial Send
kind: action
description: "Disable serial logging and send data via hardware serial bridge"
params:
- name: mode
type: integer
description: "1=send with newline, 2=send, 3=replace escape chars and send, 4=send as binary, 5=send as hex, 6=send as comma-delimited decimal string"
- name: data
type: string
description: "String data to send via hardware serial"
- id: sserial_send
label: SSerial Send
kind: action
description: "Send data via software serial bridge"
params:
- name: mode
type: integer
description: "1=send with newline, 2=send, 3=replace escape chars and send, 4=send as binary, 5=send as hex, 6=send as comma-delimited decimal string, 9=enable Serial Bridge console Tee for debugging"
- name: data
type: string
description: "String data to send via software serial"
- id: web_password
label: Web Password
kind: action
description: "Configure web server user interface access password"
params:
- name: value
type: string
description: "0=disable password for webUI, 1=reset to firmware default, value=set webUI password (32 char limit)"
- id: web_server
label: Web Server
kind: action
description: "Start or stop the built-in web server"
params:
- name: value
type: integer
description: "0=stop web server, 1=start in user mode, 2=start in admin mode"
- id: web_query
label: Web Query
kind: action
description: "Send HTTP GET, POST, PUT, or PATCH requests to external URLs"
params:
- name: url
type: string
description: "HTTP URL to query"
- name: method
type: string
description: "HTTP method: GET, POST, PUT, or PATCH"
- name: headers
type: string
description: "Optional header1Name:header1Value|header2Name:header2Value pairs"
- name: body
type: string
description: "Optional HTTP request body (ignored for GET)"
- id: web_send
label: Web Send
kind: action
description: "Send a command to a Tasmota host over HTTP"
params:
- name: target
type: string
description: "[host:port,user:password] command. If command starts with / it is used as a link."
- id: web_get_config
label: Web Get Config
kind: action
description: "Download a configuration .dmp file from an HTTP URL"
params:
- name: url
type: string
description: "HTTP URL to download configuration from; %id% is substituted with device MAC address without dots"
- id: web_log
label: Web Log
kind: action
description: "Configure web server logging level"
params:
- name: level
type: integer
description: "0=disable web logging, 1=errors only, 2=error and info (default), 3=error info and debug, 4=error info and more debug"
- id: web_refresh
label: Web Refresh
kind: action
description: "Set web page auto-refresh interval in milliseconds"
params:
- name: value
type: integer
description: "1000..10000 = set refresh time in milliseconds (default=2345)"
- id: web_time
label: Web Time
kind: action
description: "Show part of date and/or time in webUI based on ISO 8601 string"
params:
- name: range
type: string
description: "start_pos,end_pos = show part of date/time string based on 2017-03-07T11:08:02-07:00"
- id: set_option
label: Set Option
kind: action
description: "Configure a Tasmota firmware option by index number"
params:
- name: index
type: integer
description: "Option index (x in SetOption<x>)"
- name: value
type: integer
description: "Option value (typically 0=disable, 1=enable; see source for per-index specifics)"
- id: rule
label: Rule
kind: action
description: "Define or manage automation rule sets"
params:
- name: index
type: integer
description: "Rule set index (x in Rule<x>, typically 1..3)"
- name: value
type: string
description: "0=disable, 1=enable, 2=toggle, 4=disable one-shot, 5=enable one-shot, 8=disable stop-on-error, 9=enable stop-on-error, value=define rule, +value=append to rule"
- id: rule0
label: Rule0
kind: action
description: "Apply Rule control to all rulesets simultaneously"
params:
- name: value
type: string
description: "Same as Rule<x> but affects all rulesets at once"
- id: rule_timer
label: Rule Timer
kind: action
description: "Set countdown event timer for use in rules"
params:
- name: index
type: integer
description: "Timer index (x in RuleTimer<x>, 1..8)"
- name: value
type: integer
description: "0..65535 = set countdown rule timer in seconds"
- id: rule_timer0
label: Rule Timer0
kind: action
description: "Stop and clear all rule timers simultaneously"
- id: event
label: Event
kind: action
description: "Execute a named event to trigger a rule"
params:
- name: event_name
type: string
description: "Event name to trigger as documented in Rules"
- id: var
label: Var
kind: action
description: "Manage up to 16 string variables stored in memory"
params:
- name: index
type: integer
description: "Variable index (x in Var<x>, 1..16). Omit index to return all values."
- name: value
type: string
description: "string=store string value in variable, empty string=clear stored value"
- id: mem
label: Mem
kind: action
description: "Manage up to 16 string variables stored on flash"
params:
- name: index
type: integer
description: "Variable index (x in Mem<x>, 1..16). Omit index to return all values."
- name: value
type: string
description: "value=store string value in variable, empty string=clear stored value"
- id: add
label: Add
kind: action
description: "Add a numeric value to a Var<x> variable"
params:
- name: index
type: integer
description: "Variable index (x in Add<x>)"
- name: value
type: string
description: "Value to add to Var<x>"
- id: sub
label: Sub
kind: action
description: "Subtract a numeric value from a Var<x> variable"
params:
- name: index
type: integer
description: "Variable index (x in Sub<x>)"
- name: value
type: string
description: "Value to subtract from Var<x>"
- id: mult
label: Mult
kind: action
description: "Multiply a Var<x> variable by a numeric value"
params:
- name: index
type: integer
description: "Variable index (x in Mult<x>)"
- name: value
type: string
description: "Value to multiply Var<x> by"
- id: scale
label: Scale
kind: action
description: "Scale a value from one numeric range to another and save in Var<x>"
params:
- name: index
type: integer
description: "Variable index (x in Scale<x>)"
- name: args
type: string
description: "v,fl,fh,tl,th = value, fromLow, fromHigh, toLow, toHigh"
- id: timers
label: Timers
kind: action
description: "Enable, disable, or toggle all hardware timers"
params:
- name: value
type: integer
description: "0=disable all timers, 1=enable all timers, 2=toggle all timers"
- id: timer
label: Timer
kind: action
description: "Configure hardware timer parameters"
params:
- name: index
type: integer
description: "Timer index (x in Timer<x>, 1..16)"
- name: value
type: string
description: "0=clear parameters, 1..16=copy Timer<y> parameters to Timer<x>, JSON payload=set individual parameters"
- id: latitude
label: Latitude
kind: action
description: "Set device latitude for sunrise/sunset calculations"
params:
- name: value
type: number
description: "Latitude in decimal degrees format, e.g. -33.893681"
- id: longitude
label: Longitude
kind: action
description: "Set device longitude for sunrise/sunset calculations"
params:
- name: value
type: number
description: "Longitude in decimal degrees format, e.g. 18.619954"
- id: sunrise
label: Sunrise
kind: action
description: "Set sunrise/sunset calculation type"
params:
- name: value
type: integer
description: "0=Normal (default), 1=Civil, 2=Nautical, 3=Astronomical"
- id: time_std
label: TimeStd
kind: action
description: "Set policy for return to standard time"
params:
- name: value
type: string
description: "0=reset to firmware defaults, H,W,M,D,h,T = hemisphere, week, month, day-of-week, hour, timezone-offset-minutes (-780..780)"
- id: time_dst
label: TimeDst
kind: action
description: "Set policy for beginning of daylight saving time"
params:
- name: value
type: string
description: "0=reset to firmware defaults, H,W,M,D,h,T = hemisphere, week, month, day-of-week, hour, timezone-offset-minutes (-780..780)"
- id: timezone
label: Timezone
kind: action
description: "Set device time zone offset from UTC"
params:
- name: value
type: string
description: "-13..+13=time zone offset in hours, -13:00..+13:00=offset in hours and minutes, 99=use TimeDst and TimeStd"
- id: dev_group_name
label: Device Group Name
kind: action
description: "Set device group name and restart"
params:
- name: index
type: integer
description: "Device group index (x in DevGroupName<x>)"
- name: value
type: string
description: "0=clear group name and restart, value=set device group name and restart"
- id: dev_group_send
label: Device Group Send
kind: action
description: "Send an update to a device group"
params:
- name: index
type: integer
description: "Device group index (x in DevGroupSend<x>)"
- name: value
type: string
description: "item=value pairs separated by space. Item 128=relay power bitmask with bits set for relays to be powered on."
- id: dev_group_share
label: Device Group Share
kind: action
description: "Set incoming and outgoing shared items bitmask for device groups"
params:
- name: value
type: string
description: "in,out bitmask: 1=Power, 2=Light brightness, 4=Light fade/speed, 8=Light scheme, 16=Light color, 32=Dimmer settings, 64=Event (default=0xffffffff,0xffffffff)"
- id: dev_group_status
label: Device Group Status
kind: query
description: "Show status of a device group including list of currently known members"
params:
- name: index
type: integer
description: "Device group index (x in DevGroupStatus<x>)"
- id: dev_group_tie
label: Device Group Tie
kind: action
description: "Tie a relay to a device group (requires SetOption88 enabled)"
params:
- name: index
type: integer
description: "Device group index (x in DevGroupTie<x>)"
- name: relay
type: integer
description: "Relay number to tie to the device group"
Feedbacks
feedbacks:
- id: power_state
type: enum
values: ["on", "off"]
description: "Current power state of relay. Queried via Power<x> with no parameter."
- id: pulse_time_remaining
type: integer
description: "Remaining PulseTime on relay in tenths of seconds. Queried via PulseTime<x> with no parameter."
- id: timed_power_remaining
type: integer
description: "Remaining time on TimedPower timer. Queried via TimedPower with no parameter."
- id: device_status
type: object
description: "Full status response. Queried via Status <type>. Returns JSON object."
- id: device_state
type: object
description: "Current device state. Queried via State. Returns JSON object."
Variables
variables:
- id: power_on_state
type: integer
description: "Power state after device power-up. 0=OFF, 1=ON, 2=TOGGLE, 3=last saved, 4=ON locked, 5=ON after PulseTime"
- id: blink_count
type: integer
description: "Number of blink toggles. 0=many, 1..32000 (default 10)"
- id: blink_time
type: integer
description: "Blink toggle duration in 0.1s increments. 2..3600"
- id: tele_period
type: integer
description: "Telemetry publish period in seconds. 0=disabled, 10..3600 (default 300)"
Events
# UNRESOLVED: Tasmota publishes telemetry (tele/%topic%/STATE, tele/%topic%/SENSOR) periodically
# and rule-triggered events, but unsolicited event format details are not fully documented in source.
Macros
# UNRESOLVED: Backlog supports multi-command sequences but no named macros documented in source.
Safety
confirmation_required_for: []
interlocks: []
# PowerLock<x> can lock relay state. Interlock command can group relays to prevent simultaneous activation.
# No explicit safety warnings or interlock procedures in source.
Notes
- HTTP command format:
http://<ip>/cm?cmnd=<command>%20<param>— spaces encoded as%20, semicolons as%3B. - MQTT command topic:
cmnd/%topic%/<command>with payload as parameter. Empty payload queries current value. - Serial bridge default 115200 bps. Configurable via
Baudratecommand. Backlogexecutes up to 30 sequential commands separated by;.Backlogwith no argument clears the queue.- Command prefix
_suppresses result logging and MQTT publish. - Boolean values:
0/off/false= OFF,1/on/true= ON,2/toggle= toggle. Power<x>andPower(no index) both control first relay.Power0controls all relays simultaneously.
Provenance
source_domains:
- tasmota.github.io
source_urls:
- https://tasmota.github.io/docs/Commands/
- https://tasmota.github.io/docs/MQTT/
- https://tasmota.github.io/docs/
retrieved_at: 2026-05-22T20:58:49.428Z
last_checked_at: 2026-06-10T03:17:41.479Z
Verification Summary
verdict: verified
checked_at: 2026-06-10T03:17:41.479Z
matched_actions: 121
action_count: 121
confidence: medium
summary: "All 121 spec actions matched source commands at spec granularity; Power variants expanded by spec are all documented in source; parameterized families collapsed by spec are represented one-to-one. (8 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "MQTT port not stated in source"
- "configurable via SerialConfig, default not explicitly stated"
- "Tasmota publishes telemetry (tele/%topic%/STATE, tele/%topic%/SENSOR) periodically"
- "Backlog supports multi-command sequences but no named macros documented in source."
- "MQTT default port not stated in source"
- "Serial default data_bits/parity/stop_bits not explicitly stated (SerialConfig is configurable)"
- "Firmware version compatibility not stated"
- "Full telemetry/event JSON schema not documented in this source"
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0