Back to Tasmota

Basic API information

API.md

15.4.08.9 KB
Original Source
<picture> <source media="(prefers-color-scheme: dark)" srcset="./tools/logo/TASMOTA_FullLogo_Vector_White.svg"> </picture>

Basic API information

Tasmota can easily be extended by developers using provided function pointers as callback Ids. This document lists the available callback function Ids. Read Sensor API for more information.

Callback availability can be checked by searching for either XdrvCall, XsnsCall, XdspCall, XnrgCall and XlgtCall.

Driver, Sensor, Energy and Light Callback Ids

The following table lists Callback Ids and their availability for a Driver, Sensor or Energy service.

Callback IdBoolxdrvxsnsxnrgxlgtDescription
FUNC_SETTINGS_OVERRIDExOverride start-up settings
FUNC_PIN_STATEx12At GPIO configuration
FUNC_I2C_INITxImmediately after I2C init
FUNC_MODULE_INITx312Init module specific parameters
FUNC_PRE_INIT132Once GPIO have been established
FUNC_INIT132At end of initialisation
FUNC_LOOP12In main loop
FUNC_SLEEP_LOOP12In main loop during sleep
FUNC_EVERY_50_MSECOND12In main loop
FUNC_EVERY_100_MSECOND12In main loop
FUNC_EVERY_200_MSECONDxIn main loop
FUNC_EVERY_250_MSECOND132In main loop
FUNC_EVERY_SECOND12In main loop
FUNC_SAVE_SETTINGS21Just before saving settings
FUNC_SAVE_AT_MIDNIGHTxAt midnight
FUNC_SAVE_BEFORE_RESTART21Just before a planned restart
FUNC_AFTER_TELEPERIOD21At end of teleperiod
FUNC_JSON_APPEND213Extend teleperiod JSON text
FUNC_WEB_SENSOR213Add sensor data to web GUI
FUNC_WEB_COL_SENSOR213Add sensor data to web GUI using columns
FUNC_COMMANDx1234When a command is not recognized
FUNC_COMMAND_DRIVERxxWhen command Driver<id> is executed
FUNC_COMMAND_SENSORxxWhen command Sensor<id> is executed
FUNC_MQTT_SUBSCRIBExAt end of MQTT subscriptions
FUNC_MQTT_INITxOnce at end of MQTT connection
FUNC_MQTT_DATAxxBefore decoding command
FUNC_SET_POWER12Before setting relays
FUNC_SET_DEVICE_POWERxxSet relay
FUNC_SHOW_SENSORxWhen FUNC_JSON_APPEND completes
FUNC_ANY_KEYx
FUNC_LED_LINKxSetLedLink (On ESP32 only). XdrvMailbox.index holds state
FUNC_ENERGY_EVERY_SECONDx
FUNC_ENERGY_RESETx
FUNC_RULES_PROCESSxxProcess specific rule
FUNC_TELEPERIOD_RULES_PROCESSxxProcess specific rule as teleperiod
FUNC_SERIALx123Process serial data
FUNC_FREE_MEMxShow free memory for debugging
FUNC_BUTTON_PRESSEDxxWhen a button is pressed
FUNC_BUTTON_MULTI_PRESSEDxxWhen a button is pressed multiple times
FUNC_WEB_ADD_BUTTON12Add a Configuration Button to GUI
FUNC_WEB_ADD_MAIN_BUTTON12Add a main button to GUI
FUNC_WEB_ADD_CONSOLE_BUTTON12Add a Consoles Button to GUI
FUNC_WEB_ADD_MANAGEMENT_BUTTONxAdd a Management Button to GUI
FUNC_WEB_ADD_HANDLER12Add a webserver handler
FUNC_WEB_GET_ARG213Get webserver setting arguments
FUNC_SET_CHANNELS21
FUNC_SET_SCHEMEx
FUNC_HOTPLUG_SCANx
FUNC_TIME_SYNCEDxReport time is synced
FUNC_DEVICE_GROUP_ITEMx
FUNC_NETWORK_UP1234Wifi or ETH network just went up (received even if webserver is not enabled)
FUNC_NETWORK_DOWN1234Wifi or ETH network just went down (received even if webserver is not enabled)

The numbers represent the sequence of execution

Display Call back Ids

The following table lists all Callback Ids for a Display service.

Callback IdBoolDescription
FUNC_DISPLAY_INIT_DRIVER
FUNC_DISPLAY_INIT
FUNC_DISPLAY_EVERY_50_MSECOND
FUNC_DISPLAY_EVERY_SECOND
FUNC_DISPLAY_MODELx
FUNC_DISPLAY_MODE
FUNC_DISPLAY_POWER
FUNC_DISPLAY_CLEAR
FUNC_DISPLAY_DRAW_FRAME
FUNC_DISPLAY_DRAW_HLINE
FUNC_DISPLAY_DRAW_VLINE
FUNC_DISPLAY_DRAW_LINE
FUNC_DISPLAY_DRAW_CIRCLE
FUNC_DISPLAY_FILL_CIRCLE
FUNC_DISPLAY_DRAW_RECTANGLE
FUNC_DISPLAY_FILL_RECTANGLE
FUNC_DISPLAY_TEXT_SIZE
FUNC_DISPLAY_FONT_SIZE
FUNC_DISPLAY_ROTATION
FUNC_DISPLAY_DRAW_STRING
FUNC_DISPLAY_ONOFF

Init sequence

The following list shows a typical callback init sequence

CFG: Loaded from flash at FB, Count 1581
xdrv - FUNC_SETTINGS_OVERRIDE
xdrv - FUNC_PIN_STATE
xsns - FUNC_PIN_STATE
xsns - FUNC_MODULE_INIT
xdrv - FUNC_MODULE_INIT
xlgt - FUNC_MODULE_INIT
xdrv - FUNC_PRE_INIT
xnrg - FUNC_PRE_INIT
xsns - FUNC_PRE_INIT
SRC: Restart
xdrv - FUNC_SET_POWER
xsns - FUNC_SET_POWER
xlgt - FUNC_SET_CHANNELS
xdrv - FUNC_SET_DEVICE_POWER
Project tasmota Wemos 2 Version 7.0.0.3(tasmota)-STAGE
xdrv - FUNC_INIT
xsns - FUNC_INIT
I2C: ADS1115 found at 0x48
xdrv - FUNC_LOOP
xsns - FUNC_LOOP
xdrv - FUNC_EVERY_50_MSECOND
xlgt - FUNC_SET_CHANNELS
xsns - FUNC_EVERY_50_MSECOND
xdrv - FUNC_EVERY_100_MSECOND
xsns - FUNC_EVERY_100_MSECOND
xdrv - FUNC_EVERY_250_MSECOND
xsns - FUNC_EVERY_250_MSECOND
xdrv - FUNC_EVERY_SECOND
xsns - FUNC_EVERY_SECOND
WIF: Attempting connection...
WIF: Network (re)scan started...
WIF: Attempting connection...
WIF: Attempting connection...
WIF: Attempting connection...
WIF: Network 0, AP1, SSId indebuurt1, Channel 1, BSSId 24:D3:F2:97:C0:A1, RSSI -86, Encryption 1
WIF: Network 1, AP2, SSId indebuurt2, Channel 5, BSSId A0:AB:1B:7D:42:AC, RSSI -42, Encryption 1
WIF: Network 2, AP-, SSId indebuurt3, Channel 12, BSSId 60:E3:27:58:77:E6, RSSI -84, Encryption 1
WIF: Connecting to AP2 indebuurt2 in mode 11N as wemos2...
WIF: Attempting connection...
WIF: Attempting connection...
WIF: Attempting connection...
WIF: Connected
xdrv - FUNC_WEB_ADD_HANDLER
xsns - FUNC_WEB_ADD_HANDLER
HTP: Web server active on wemos2 with IP address 192.168.2.191
NTP: Drift 0, (UTC) Wed Nov 06 13:57:08 2019, (DST) Sun Mar 31 02:00:00 2019, (STD) Sun Oct 27 03:00:00 2019
APP: Boot Count 500
MQT: Attempting connection...
MQT: Connected
MQT: tele/wemos2/LWT = Online (retained)
MQT: cmnd/wemos2/POWER =
MQT: Subscribe to cmnd/wemos2/#
MQT: Subscribe to cmnd/sonoffs/#
MQT: Subscribe to cmnd/DVES_15568C_fb/#
xdrv - FUNC_MQTT_SUBSCRIBE
MQT: tele/wemos2/INFO1 = {"Module":"Generic","Version":"7.0.0.3(tasmota)","FallbackTopic":"cmnd/DVES_15568C_fb/","GroupTopic":"cmnd/sonoffs/"}
MQT: tele/wemos2/INFO2 = {"WebServerMode":"Admin","Hostname":"wemos2","IPAddress":"192.168.2.191"}
MQT: tele/wemos2/INFO3 = {"RestartReason":"Software/System restart"}
MQT: stat/wemos2/RESULT = {"POWER1":"OFF"}
MQT: stat/wemos2/POWER1 = OFF
MQT: stat/wemos2/RESULT = {"POWER2":"ON"}
MQT: stat/wemos2/POWER2 = ON
xdrv - FUNC_MQTT_INIT
CFG: Saved to flash at FA, Count 1582, Bytes 4096