Driver Type
Categories
- Recent Updates
- Access Control
- Amplifier
- A/V Receiver
- Climate and Pool Control
- Disc Player / Changer
- Display
- DSP
- DVR
- Irrigation / Sprinklers
- Lighting Control
- Matrix Switch
- Media Server and Player
- Multi-Room A/V
- Networking
- Power and Rack Management
- Security
- Surveillance
- Teleconferencing
- Training
- Tuner
- Utility
- Video Projector
Driver Type
Categories
- Recent Updates
- Access Control
- Amplifier
- A/V Receiver
- Climate and Pool Control
- Disc Player / Changer
- Display
- DSP
- DVR
- Irrigation / Sprinklers
- Lighting Control
- Matrix Switch
- Media Server and Player
- Multi-Room A/V
- Networking
- Power and Rack Management
- Security
- Surveillance
- Teleconferencing
- Training
- Tuner
- Utility
- Video Projector
Tasmota Smart Plug Controller
By: David Bowdler
Updated: May 7, 2026
Version: 1.33
Tasmota Smart Plug Controller
A complete RTI driver for controlling up to 25 Athom Tasmota Smart Plugs (or any Tasmota-compatible plug) from a single driver instance. Far beyond simple on/off — it brings live power monitoring, energy tracking, end-of-cycle detection, and built-in push notifications into one driver.
Plug control and monitoring
- Up to 25 plugs per driver, individually configured
- On / Off / Toggle / Restart per plug, plus All-On, All-Off and Toggle-All
- Live power data per plug: watts, voltage, current, today's energy, lifetime energy
- Friendly plug names flow through to every macro, variable, function and event browser in Integration Designer
- PowerOn and PowerOff sysvars for direct RTI layer visibility — no inverted-flag tricks needed
End-of-cycle detection — turn any appliance into a smart appliance Watch the wattage on a washer, dryer, dishwasher or oven. When power drops and stays low for a configurable idle time, a CycleFinished event fires. Wire it to anything — a Sonos announcement, a Google Home broadcast, an on-panel popup, or a phone push notification.
Built-in Pushover push notifications Configure once with your Pushover App Token, register up to 10 named recipients (yourself, family members, or Delivery Groups), then route each plug's cycle-finish notification to up to 3 recipients with a custom message per recipient. Title and message support full Unicode (em dashes, smart quotes, accented letters, emoji).
Live diagnostics A TCP debug console on a configurable port lets you telnet to the processor for status, plug detail, raw Tasmota command pass-through, push tests, and JavaScript evaluation in the driver context — no need to leave Integration Designer to troubleshoot a deployment.
Compatibility
- Athom Plug V2 with Tasmota firmware (v15.2.0 or later recommended)
- Any Tasmota-compatible smart plug supporting the standard HTTP cmnd API
- RTI-XP processor, Integration Designer 11.4 or later
Licensing Free 2-hour trial mode that resets each time the processor reboots. Permanent per-processor licences are available from the Smart Home Programming Driver Store at https://shpdrivers.services/store/
Tasmota Smart Plug Controller
Version 1.33
by Smart Home Programming and Automation
Overview
This driver controls up to 25 Athom Tasmota Smart Plugs (or any Tasmota-compatible plug) via HTTP API. Per-plug power monitoring, energy tracking, end-of-cycle detection for appliances, and optional Pushover push notifications to your phone. Friendly plug names appear throughout the Integration Designer macro, variable, function and event browsers.
Supported Devices
- Athom Plug V2 with Tasmota firmware
- Any Tasmota-compatible smart plug
- Tasmota firmware version 15.2.0 or later recommended
Requirements
- Plugs must be on the same network as the RTI XP processor
- Each plug requires a static IP address
- Port 80 must be accessible on each plug
Configuration
Connection Settings:
- Polling Interval (sec): How often to check power state, 1-60 seconds, default 5
- Energy Polling Interval (sec): How often to check energy data, 10-300 seconds, default 30
Per-Plug Settings (1-25):
- Enable Plug N: Enable or disable this plug
- IP Address: The plug's static IP address
- Name: Friendly name for the plug, shown in macro and variable browsers
- Password: Web password if configured, leave blank if none
- Cycle Detection: Enable end-of-cycle detection for this plug, default off
- Running Threshold (W): Watts must exceed this for the plug to be considered running, default 10W
- Idle Time (sec): Watts must stay below threshold this long before declaring finished, default 60s
- Push Notify on Cycle Finish: Send a Pushover notification when this plug finishes a cycle
- Notify Title: Title for the push notification, blank uses the plug's friendly name
- Slot 1, 2, 3 Recipient and Message: Pick which recipients get notified and what each receives
System Variables
Driver Status:
- DriverOnline: Boolean, driver is loaded and running
- Licensed: Boolean, true while licence is valid OR trial is still running
- LicenceState: String, "Licensed" / "Trial" / "Trial Expired"
- TrialMinutesRemaining: Integer, minutes left in trial (0 once licensed or expired)
For each enabled plug X (1-25):
- PlugX_Online: Boolean, connection status
- PlugX_PowerState: Boolean, true = ON, false = OFF
- PlugX_PowerOn: Boolean, true when plug is ON, useful for "show when on" UI layers
- PlugX_PowerOff: Boolean, true when plug is OFF, useful for "show when off" UI layers since RTI layer visibility can only test == true
- PlugX_PowerStateText: String, "ON" or "OFF"
- PlugX_Name: String, friendly name from config
- PlugX_Watts: Integer, current power draw in watts
- PlugX_Voltage: Integer, current voltage
- PlugX_Current: String, current in amps
- PlugX_TodayEnergy: String, energy used today in kWh
- PlugX_TotalEnergy: String, total lifetime energy in kWh
- PlugX_OfflineSeconds: Integer, seconds plug has been offline
- PlugX_Running: Boolean, true while a detected cycle is in progress
- PlugX_CycleSeconds: Integer, seconds since current cycle started
- PlugX_LastCycleMinutes: Integer, minutes of the most recently completed cycle
- PlugX_ScheduleActive: Boolean, true when at least one timer slot is enabled for this plug
System Functions
Individual Plug Control (takes Plug Number 1-25):
- Plug_On(N): Turn specified plug ON
- Plug_Off(N): Turn specified plug OFF
- Plug_Toggle(N): Toggle specified plug
- Plug_GetStatus(N): Force a power state poll on plug N
- Plug_GetEnergy(N): Force an energy data poll on plug N
- Plug_Restart(N): Restart the plug device itself
Direct Per-Plug Control:
- PlugX_On / PlugX_Off / PlugX_Toggle: Same as the indexed versions but with no parameter required
Group Control:
- All_Plugs_On / All_Plugs_Off / All_Plugs_Toggle
- Refresh_All_Status / Refresh_All_Energy: Force polls on all plugs
Schedule:
- ApplyScheduleToPlug(N): Re-push the saved schedule to plug N (use after a plug factory reset, or to re-arm timers)
- ClearScheduleOnPlug(N): Disable all 6 timers on plug N
System Events
Connection Events (per plug X):
- PlugX_Connected: Plug came online
- PlugX_Disconnected: Plug went offline
Power State Events (per plug X):
- PlugX_TurnedOn: Plug power transitioned to ON
- PlugX_TurnedOff: Plug power transitioned to OFF
Cycle Events (per plug X, only if Cycle Detection is enabled):
- PlugX_CycleStarted: Watts crossed above the running threshold
- PlugX_CycleFinished: Watts stayed below threshold for the idle time, cycle complete
Wire CycleFinished events to a macro for end-of-cycle automation, for example a Sonos announcement or a Google Home broadcast.
Cycle Detection
For appliances like washers, dryers, dishwashers and ovens, the driver can fire an event when a cycle finishes, with optional push notification. Tick Cycle Detection on the plug's config and set thresholds.
How it works: The driver watches the wattage. When watts cross above Running Threshold, the plug is considered running and CycleStarted fires. When watts drop below the threshold and stay below for Idle Time, CycleFinished fires.
Recommended thresholds:
- Washing machine: 10W threshold, 180s idle (washer pump-out gaps can be 60-90s)
- Dryer: 10W threshold, 60s idle
- Dishwasher: 10W threshold, 90s idle
- Oven: 50W threshold, 120s idle
- Coffee machine: 30W threshold, 30s idle
Pushover Push Notifications
The driver sends push notifications to your phone via the Pushover service (pushover.net) when a cycle finishes. Pushover is a one-time AUD$8 per platform purchase (iOS or Android) with a polished native app. Up to 10 named recipients are supported, and each plug can route to up to 3 of them with custom message per recipient.
One-time setup:
1. Sign up at https://pushover.net
2. Click "Create an Application/API Token", name it something like "RTI Tasmota Plug", optionally upload an icon
3. Copy the App Token (30 chars) shown for that application
4. In Integration Designer, expand Pushover Notifications:
- Tick Enable Pushover
- Paste the App Token
- Optionally set a Default Sound (magic, cosmic, falling, etc.) and Default Device
Recipient setup (each person who wants notifications):
Each person who will receive notifications signs up at pushover.net (their own account), installs the Pushover app on their phone, and pays the AUD$8 one-time licence. Their dashboard shows their User Key (30 chars). The User Key is what you paste into the driver's Recipients table.
Tip: for groups (whole family at once), use Pushover's free Delivery Groups feature on pushover.net. Create a group, add multiple users, get a Group Key, paste that as if it were a User Key.
Configuring recipients in the driver:
Expand the Pushover Recipients category. There are 10 slots (R1 through R10). For each one you want to use:
- R# Name: friendly label that shows in the per-plug routing dropdowns (Wife, David, Family Group, etc.)
- R# User/Group Key: paste the 30-char Pushover User Key or Group Key. Empty key disables that slot.
Per-plug routing:
On each plug you want notifications for, tick Push Notify on Cycle Finish. The plug then has 3 routing slots:
- Slot N Recipient: dropdown showing each configured recipient by friendly name. Empty slots are hidden automatically.
- Slot N Message: custom message for that recipient. Leave blank to auto-generate "Cycle complete in NN min".
You can also set a Notify Title per plug, shared across all 3 slots. Blank uses the plug's friendly name.
Examples:
- Different message per family member: pick Wife in slot 1 with one message, pick Kid in slot 2 with another, leave slot 3 as (none)
- Same message to two people: pick Wife in slot 1 and Husband in slot 2, leave both messages blank
- One recipient only: pick them in slot 1, leave slots 2 and 3 as (none)
How it fires: When a cycle finishes, the driver fires PlugX_CycleFinished AND iterates the 3 routing slots, sending an HTTPS POST to api.pushover.net for each non-empty slot. Multiple plugs finishing close together work fine, the driver uses connection pooling. All result codes are logged in TraceView.
Schedule Web UI
The driver hosts a built-in HTTP schedule editor on port 12518 by default (configurable, set to 0 to disable). Open a browser to http://[processor IP]:12518/ on the same network to manage timers per plug.
What you get:
- Up to 3 ON time slots and 3 OFF time slots per plug
- Day-of-week selection (Mon / Tue / Wed / Thu / Fri / Sat / Sun) per slot
- Mode selector per slot: Fixed Time, Sunrise + offset, Sunset + offset
- Convenience presets: Mon-Fri, Sat-Sun, Every day, Clear days
- Save and push button writes all 6 timers to the plug in one operation
How it works: Schedules are written to the plug's built-in Tasmota Timer1 through Timer6 entries. The plug fires the timers from its own real-time clock - schedules continue to run even if the RTI processor is rebooted, offline, or the driver is disabled. Each plug stores its own schedule on-device.
Time formats:
- Fixed Time: HH:MM in 24-hour format, using the plug's local time as set by its Tasmota timezone configuration
- Sunrise / Sunset: HH:MM offset, optionally with a leading + or -, range 0:00 to 11:59. Example: +01:30 fires 90 minutes after sunrise, -00:15 fires 15 minutes before sunset
Setting plug timezone (Tasmota web UI):
1. Browse to the plug's IP address
2. Configuration -> Configure Timezone
3. Select your timezone or set offset hours / minutes manually
4. Save
Plug location and timezone: The plug needs Latitude, Longitude and Timezone set so Tasmota can show local wall-clock time and compute sunrise / sunset. Set all three once in Integration Designer Driver Properties under Schedule Web UI - e.g. Latitude -27.31, Longitude 152.99, Timezone +10:00 for Brisbane. The driver pushes them to every enabled plug at startup, so adding new plugs or factory-resetting one will not require re-entering. The schedule editor's Plug Location and Timezone card shows the current driver-config values plus the plug's actual Sunrise / Sunset / Timezone, with a Push to this plug button to re-sync. Click Open plug web UI to reach the full Tasmota configuration directly.
Timezone formats: Tasmota accepts a fixed offset like +10:00 for Brisbane (no DST), -5:00 for New York winter, or 99 to use TimeStd / TimeDst auto-DST rules (additional console commands required - see Tasmota docs).
SystemFunctions for macros:
- ApplyScheduleToPlug(N): Re-push the saved schedule to plug N. Useful in a macro after a plug factory reset, or as a "resync schedules at 4am" maintenance routine
- ClearScheduleOnPlug(N): Disable all 6 timers on plug N
Per-plug feedback variable:
- PlugX_ScheduleActive: Boolean, true when at least one slot is enabled for plug X. Wire to a UI layer to show a "scheduled" badge on the plug button
Use as an RTI Web Object: Wire http://[processor IP]:12518/ to a Web Object on a touchpanel or iPad and integrators / homeowners can edit schedules from inside the RTI UI without ever leaving the project.
Multiple driver instances: If running this driver more than once on the same processor (e.g. for two separate properties), give each a unique Schedule Web Port.
Debug Console
A TCP debug console runs on port 12517 by default, configurable in advanced settings, set to 0 to disable. Telnet to the processor's IP on this port for live diagnostics.
Available commands:
- status: Driver overview, plug count, online and powered counts
- plugs: Table of all configured plugs with state
- plug N: Detailed view of plug N including all sysvars and cycle state
- on N, off N, toggle N: Control a plug live from the console
- poll N, energy N, pollall: Force immediate status or energy polls
- cmd N "Tasmota command": Send any raw Tasmota command, e.g. cmd 1 Power TOGGLE
- cycle: Show cycle-detection state for all plugs
- sched, sched N, sched push N, sched clear N: Inspect / push / clear schedules
- timers N: Read Timer1 through Timer6 directly from plug N (verifies what the plug actually has stored)
- recipients: List configured Pushover recipient slots
- push test: Send a test Pushover notification to recipient R1
- push to N: Send a test notification to recipient slot N
- push some message: Send arbitrary text to R1
- config: Show driver configuration including current values
- eval JS expression: Evaluate a JavaScript expression in the driver context
- help: Full command list
- exit: Close the debug session
Only one client may connect at a time. If running multiple instances of this driver on the same processor, set a unique port per instance.
Plug Setup Instructions
1. Configure each Tasmota plug with a static IP address using your router
2. Note the IP addresses for the driver configuration
3. If using passwords, set them in the Tasmota web interface
4. Test connectivity by browsing to http://IP/cm?cmnd=Power on each plug
5. Add the IP and a friendly name to each enabled plug in the driver config
Troubleshooting
Plug shows offline:
- Verify IP address is correct
- Check the plug is powered and connected to WiFi
- Ensure the XP processor can reach the plug's network
- Try accessing the plug's web interface directly from a browser on the same network
Push notifications not arriving:
- Verify your User Key is exactly 30 characters - pasted keys can drop a trailing character on some IDesign versions, double check the length matches what pushover.net shows
- Verify your phone has the Pushover app installed and the AUD$8 licence is paid (the trial expires after 7 days)
- Check TraceView for [Pushover] FAIL lines, the API error tells you what is wrong (invalid user, rate limited, etc.)
- Use the debug console "push test" command to fire a manual test push, this isolates whether the issue is the cycle path or the Pushover credentials
Energy data not updating:
- Not all Tasmota plugs support power monitoring, only ones with energy monitoring hardware
- Standby plugs typically report 0-3W, this is normal
Commands not working:
- Check if a password is required and configured for the plug
- Verify the Tasmota firmware is up to date
- Check TraceView for error messages
Licensing
This driver is sold through the Smart Home Programming Driver Store at https://shpdrivers.services/store/. Free 2-hour trial mode resets each time the RTI processor is rebooted.
To purchase a permanent licence:
1. Create an account at the Driver Store
2. Add this driver to your cart
3. Enter the RTI processor MAC address during checkout
4. Complete payment and receive the licence key by email
5. Enter the licence key in the driver configuration
Support
For bug reports, technical support, or feature requests, please use the ticket system in your account at the Driver Store, or email david@smarthomeprogramming.com.au.
Copyright 2026 Smart Home Programming and Automation. All rights reserved.
This driver requires a licence key tied to your RTI processor's MAC address.
- Trial: 2-hour fully functional trial (resets on reboot)
- Purchase: Visit smarthomeprogramming.com.au/store to buy a licence
- Licence is per-processor — one key per XP-8