# TasmotaPlug Binding

This binding connects Tasmota flashed smart plugs with 1, 2, 3 or 4 relay channels to openHAB.
The plug must report the status of the relay via the url http://$PLUG_IP/cm?cmnd=Power
in order for the binding to work.
The energy monitoring channels can be used if the plug reports energy status via the url http://$PLUG_IP/cm?cmnd=Status%2010
.
See the Tasmota Supported Devices Repository (opens new window) for a list of supported plugs.
# Supported Things
There is exactly one supported thing type, which represents any supported Tasmota smart plug.
It has the plug
id.
Multiple Things can be added if more than one plug is to be controlled.
# Discovery
Discovery is not supported. All things must be added manually.
# Thing Configuration
At minimum, the host name must be specified. The refresh interval and number of channels can be overridden from the default.
Parameter | Description |
---|---|
hostName | The host name or IP address of the plug. Mandatory. |
refresh | Overrides the refresh interval of the plug status. Optional, the default is 30 seconds. |
numChannels | Number of channels on the Tasmota Plug (1-4). Optional, the default is 1 |
username | Username for authentication with the Tasmota Plug. Default 'admin' |
password | Password for authentication with the Tasmota Plug, if not supplied auth is disabled. |
# Channels
The number of channels depends of on the numChannels
configuration parameter.
Channels above the number specified are automatically removed.
Therefore numChannels
cannot be changed upward after Thing creation.
If the number of channels must be increased, delete the Thing and re-create it with the correct number.
The pulse-time channels set the duration to keep Relay<x> ON when Power<x> ON command is issued. After this amount of time, the power will be turned OFF. The number represents an interval in 0.1 second increments; a setting of 0 will disable the pulse timer. Add 100 to desired interval in seconds, e.g., PulseTime 113 = 13 seconds and PulseTime 460 = 6 minutes (i.e., 360 seconds).
Channel ID | Item Type | Description |
---|---|---|
power | Switch | Turns the smart plug relay #1 ON or OFF |
power2 | Switch | Turns the smart plug relay #2 ON or OFF |
power3 | Switch | Turns the smart plug relay #3 ON or OFF |
power4 | Switch | Turns the smart plug relay #4 ON or OFF |
pulse-time | Number | Set PulseTime for relay #1 in 0.1 second increments |
pulse-time2 | Number | Set PulseTime for relay #2 in 0.1 second increments |
pulse-time3 | Number | Set PulseTime for relay #3 in 0.1 second increments |
pulse-time4 | Number | Set PulseTime for relay #4 in 0.1 second increments |
voltage | Number:ElectricPotential | Channel for output voltage measurement |
current | Number:ElectricCurrent | Channel for output current measurement |
watts | Number:Power | Channel for output power measurement |
volt-ampere | Number:Power | Channel for output VA measurement |
volt-ampere-reactive | Number:Power | Channel for output VAr measurement |
power-factor | Number:Dimensionless | Channel for output power factor measurement |
energy-today | Number:Energy | Channel for output energy today measurement |
energy-yesterday | Number:Energy | Channel for output energy yesterday measurement |
energy-total | Number:Energy | Channel for output energy total measurement |
energy-total-start | DateTime | Channel for output energy total start date/time |
# Full Example
# tasmotaplug.things
Example
tasmotaplug:plug:plug1 "Plug 1" [ hostName="192.168.10.1", refresh=30 ]
tasmotaplug:plug:plug2 "Plug 2" [ hostName="myplug2", refresh=30 ]
# tasmotaplug.items
Example
Switch Plug1 "Plug 1 Power" { channel="tasmotaplug:plug:plug1:power" }
Number Plug1Pulse "Plug 1 PulseTime" { channel="tasmotaplug:plug:plug1:pulse-time" }
Number:ElectricPotential Voltage { channel="tasmotaplug:plug:plug1:voltage" }
Number:ElectricCurrent Current { channel="tasmotaplug:plug:plug1:current" }
Number:Power Watts { channel="tasmotaplug:plug:plug1:watts" }
Number:Power VoltAmpere { channel="tasmotaplug:plug:plug1:volt-ampere" }
Number:Power VoltAmpereReactive { channel="tasmotaplug:plug:plug1:volt-ampere-reactive" }
Number PowerFactor { channel="tasmotaplug:plug:plug1:power-factor" }
Number:Energy EnergyToday { channel="tasmotaplug:plug:plug1:energy-today" }
Number:Energy EnergyYesterday { channel="tasmotaplug:plug:plug1:energy-yesterday" }
Number:Energy EnergyTotal { channel="tasmotaplug:plug:plug1:energy-total" }
DateTime EnergyTotalStart "Total Start [%s]" { channel="tasmotaplug:plug:plug1:energy-total-start" }
Switch Plug2a "4ch Power 1" { channel="tasmotaplug:plug:plug2:power" }
Switch Plug2b "4ch Power 2" { channel="tasmotaplug:plug:plug2:power2" }
Switch Plug2c "4ch Power 3" { channel="tasmotaplug:plug:plug2:power3" }
Switch Plug2d "4ch Power 4" { channel="tasmotaplug:plug:plug2:power4" }
Number Plug2aPulse "4ch PulseTime 1" { channel="tasmotaplug:plug:plug2:pulse-time" }
Number Plug2bPulse "4ch PulseTime 2" { channel="tasmotaplug:plug:plug2:pulse-time2" }
Number Plug2cPulse "4ch PulseTime 3" { channel="tasmotaplug:plug:plug2:pulse-time3" }
Number Plug2dPulse "4ch PulseTime 4" { channel="tasmotaplug:plug:plug2:pulse-time4" }
# tasmotaplug.sitemap
Example
sitemap tasmotaplug label="My Tasmota Plugs" {
Frame label="Plugs" {
Switch item=Plug1
Setpoint item=Plug1Pulse minValue=0 maxValue=64900 step=1
// Energy monitoring
Text item=Voltage
Text item=Current
Text item=Watts
Text item=VoltAmpere
Text item=VoltAmpereReactive
Text item=PowerFactor
Text item=EnergyToday
Text item=EnergyYesterday
Text item=EnergyTotal
Text item=EnergyTotalStart
// 4 channel plug example
Switch item=Plug2a
Switch item=Plug2b
Switch item=Plug2c
Switch item=Plug2d
Setpoint item=Plug2aPulse minValue=0 maxValue=64900 step=1
Setpoint item=Plug2bPulse minValue=0 maxValue=64900 step=1
Setpoint item=Plug2cPulse minValue=0 maxValue=64900 step=1
Setpoint item=Plug2dPulse minValue=0 maxValue=64900 step=1
}
}
← TapoControl Telegram →