Logo # 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. See the wiki (https://github.com/arendst/Tasmota/wiki/Sensor-API) for more information. Callback availability can be checked by searching for either XdrvCall, XsnsCall, XdspCall and XnrgCall. ## Driver, Sensor and Energy Callback Ids The following table lists Callback Ids and their availability for a Driver, Sensor or Energy service. Callback Id | Bool | Version | xdrv | xsns | xnrg | Description ----------------------------|------|----------|------|------|------|---------------------------------- FUNC_SETTINGS_OVERRIDE | | 6.2.1.19 | x | | | Override start-up settings FUNC_MODULE_INIT | x | 6.2.1.17 | x | | | Init module specific parameters FUNC_PRE_INIT | | | x | | x | Once GPIO have been established FUNC_INIT | | | x | x | x | At end of initialisation FUNC_LOOP | | | x | | | In main loop FUNC_EVERY_50_MSECOND | | | x | x | | FUNC_EVERY_100_MSECOND | | | x | x | | FUNC_EVERY_200_MSECOND | | | | x | x | FUNC_EVERY_250_MSECOND | | | x | | | FUNC_EVERY_SECOND | | | x | x | x | FUNC_PREP_BEFORE_TELEPERIOD | | | | x | | Deprecated. Use a FUNC_EVERY_ FUNC_JSON_APPEND | | | | x | | Extend teleperiod JSON text FUNC_WEB_APPEND | | | | x | | Extend webgui ajax info FUNC_SAVE_BEFORE_RESTART | | | | x | | Just before a planned restart FUNC_COMMAND | x | | x | x | | When a command is not recognized FUNC_COMMAND_DRIVER | x | 6.4.1.21 | x | | | When command Driver\ is executed FUNC_COMMAND_SENSOR | x | 6.4.1.21 | | x | | When command Sensor\ is executed FUNC_MQTT_SUBSCRIBE | | 5.12.0k | x | | | At end of MQTT subscriptions FUNC_MQTT_INIT | | 5.12.0k | x | | | Once at end of MQTT connection FUNC_MQTT_DATA | x | 5.12.0k | x | | | Before decoding command FUNC_SET_POWER | | | x | | | Before setting relays FUNC_SET_DEVICE_POWER | x | 6.2.1.18 | x | | | Set relay FUNC_SHOW_SENSOR | | | x | | | When FUNC_JSON_APPEND completes FUNC_RULES_PROCESS | x | 6.0.0 | x | | | Process specific rule FUNC_SERIAL | x | | x | | x | Process serial data FUNC_FREE_MEM | | | x | | | Show free memory for debugging FUNC_BUTTON_PRESSED | x | 6.2.1.18 | x | | | When a button is pressed FUNC_WEB_ADD_BUTTON | | 6.2.1.14 | x | x | | Add a Configuration Button to GUI FUNC_WEB_ADD_MAIN_BUTTON | | 6.2.1.14 | x | x | | Add a main button to GUI FUNC_WEB_ADD_HANDLER | | 6.2.1.14 | x | x | | Add a webserver handler ## Display Call back Ids The following table lists all Callback Ids for a Display service. Callback Id | Bool | Version | Description ------------------------------|------|----------|--------------------- FUNC_DISPLAY_INIT_DRIVER | | 6.1.1.7 | FUNC_DISPLAY_INIT | | 6.1.1.7 | FUNC_DISPLAY_EVERY_50_MSECOND | | 6.1.1.7 | FUNC_DISPLAY_EVERY_SECOND | | 6.1.1.7 | FUNC_DISPLAY_MODEL | x | 6.1.1.7 | FUNC_DISPLAY_MODE | | 6.1.1.7 | FUNC_DISPLAY_POWER | | 6.1.1.7 | FUNC_DISPLAY_CLEAR | | 6.1.1.7 | FUNC_DISPLAY_DRAW_FRAME | | 6.1.1.7 | FUNC_DISPLAY_DRAW_HLINE | | 6.1.1.7 | FUNC_DISPLAY_DRAW_VLINE | | 6.1.1.7 | FUNC_DISPLAY_DRAW_LINE | | 6.1.1.7 | FUNC_DISPLAY_DRAW_CIRCLE | | 6.1.1.7 | FUNC_DISPLAY_FILL_CIRCLE | | 6.1.1.7 | FUNC_DISPLAY_DRAW_RECTANGLE | | 6.1.1.7 | FUNC_DISPLAY_FILL_RECTANGLE | | 6.1.1.7 | FUNC_DISPLAY_TEXT_SIZE | | 6.1.1.7 | FUNC_DISPLAY_FONT_SIZE | | 6.1.1.7 | FUNC_DISPLAY_ROTATION | | 6.1.1.7 | FUNC_DISPLAY_DRAW_STRING | | 6.1.1.7 | FUNC_DISPLAY_ONOFF | | 6.1.1.7 | ## Init sequence The following list contains the callback init sequence CFG: Loaded from flash at FB, Count 1581 xdrv - FUNC_SETTINGS_OVERRIDE xdrv - FUNC_PIN_STATE xsns - FUNC_PIN_STATE xdrv - FUNC_MODULE_INIT xlgt - FUNC_MODULE_INIT xdrv - FUNC_PRE_INIT xnrg - FUNC_PRE_INIT SRC: Restart xdrv - 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