TapHome

Livarno SMART TS0505B

Packet Parser → MQTT
Submitted by
Last updated: 03. 2026

Requires external gateway

tasmota zigbee2tasmota-gateway — product page

Livarno SMART TS0505B

This device communicates via Zigbee through a Tasmota gateway. Make sure you have the Zigbee2Tasmota Gateway template imported and your device paired before proceeding.

The Livarno SMART TS0505B is an RGB+CCT (color temperature) Zigbee light sold under the Lidl Smart Home brand. It uses a Tuya TS0505B chipset and supports full color control through TapHome — including RGB colors, color temperature (2000K–6536K), and brightness adjustment.

Livarno is Lidl’s house brand for smart home lighting. The TS0505B model ID covers multiple product variants including LED mood lights, light bars, ceiling lights, and bulbs. This template works with any Livarno/Lidl product based on the TS0505B chipset.

As a mains-powered device, the TS0505B acts as a Zigbee router — it strengthens the Zigbee mesh network and extends range for nearby battery-powered devices.

Configuration

Pairing the light
  1. Ensure the Zigbee2Tasmota Gateway is set up and the Permit Join switch is ON in TapHome
  2. Power off the light for at least 10 seconds
  3. Cycle power 3 times (2–4 seconds on, then off each time)
  4. The light blinks rapidly — it has entered pairing mode
  5. Note the Device ID (e.g., 0x1234) from the gateway’s service attributes
Template import parameters

The device template requires 4 parameters:

ParameterDescriptionExample
MQTT Broker IP AddressIP of your MQTT broker192.168.1.10
MQTT Broker PortBroker port (default 1883)1883
Gateway nameTasmota MQTT topic (same as gateway template)tasmota_XXXXX
Device IDZigbee short address from pairing0x1234

After import, a single HSB Light device appears in TapHome with full color and brightness control.

Device capabilities

Color modes

The template supports two independent color modes:

ModeZigbee FieldTapHome ControlRange
RGB (HSB)ColorMode = 0Hue + SaturationHue: 0–360°, Saturation: 0–100%
Color TemperatureColorMode = 2Color temperature slider2000K–6536K (153–500 mireds)

TapHome automatically selects the appropriate mode based on which control you adjust:

  • Setting a color (hue/saturation) switches to HSB mode and sends a combined HueSat command
  • Setting a color temperature (Kelvin) switches to CT mode and converts to mireds (1000000 ÷ Kelvin)
Brightness control

Brightness ranges from 0% to 100% and is sent independently of the color mode. The template maps TapHome’s 0.01–1.0 brightness scale to Zigbee’s 1–254 dimmer range using a linear conversion.

Setting brightness to 0 (or turning the device off) sends a Power: false command to the light.

Service attributes

The module exposes the device’s Zigbee IEEE address for identification. Additional diagnostic information (Model ID, Manufacturer, Endpoints, Configuration) is collected from ZbInfo responses.

Additional capabilities

The TS0505B also supports light effects (blink, breathe, colorloop), “Do Not Disturb” mode (prevents turning on after power outages), and customizable power-on behavior. These Tuya-specific features are available in Zigbee2MQTT but are not currently mapped in the TapHome template.

Troubleshooting

Light not responding to commands
  1. Verify the Device ID in the template matches the Zigbee short address assigned during pairing
  2. Check that the gateway name matches between the gateway template and this device template
  3. Try toggling the light off and on via TapHome — if only brightness or color commands fail, the issue may be in the color mode selection
Colors appear incorrect
  1. The TS0505B uses separate LED channels for RGB and white/CT — at low brightness levels, color accuracy may be reduced
  2. Some Livarno product variants have slightly different color rendering. The template works the same way, but the visual output depends on the hardware
  3. If the light is stuck in one color mode, try switching between RGB and CT in TapHome to force a mode change
Light turns on after power outage

This is a Tuya chipset default behavior. The “Do Not Disturb” feature (available in Zigbee2MQTT) can prevent this, but it is not currently controllable from the TapHome template. As a workaround, create a Smart Rule that turns off the light when it unexpectedly turns on.

How to install in TapHome

Prerequisites

  • Zigbee gateway with Tasmota firmware (e.g., Sonoff ZBBridge, eWeLink ZB-GW03)
  • MQTT broker running on your local network (TapHome built-in broker or external)
  • TapHome CCU on the same network

TapHome has a built-in MQTT broker — enable it in SettingsHardwareMQTT Broker. No additional software is needed.

Step 1 — Set Up the Tasmota Zigbee Gateway

  1. Flash Tasmota firmware on a supported Zigbee coordinator (e.g., Sonoff ZBBridge, eWeLink ZB-GW03)
  2. Connect the gateway to your Wi-Fi network via the Tasmota web UI
  3. Navigate to ConfigurationConfigure MQTT and set:
    • Host: your MQTT broker IP (e.g., 192.168.1.10)
    • Port: 1883
    • Topic: note down the topic name (e.g., tasmota_XXXXX) — you will need it during template import

For detailed instructions, see the Tasmota Zigbee documentation.

Step 2 — Import the Gateway Template in TapHome

  1. Download the gateway template from the Zigbee2Tasmota Gateway compatibility page
  2. In TapHome, go to SettingsHardwarePacket ParserImport
  3. Import the template with these parameters:
    • MQTT Broker IP Address: your broker IP (e.g., 192.168.1.10)
    • MQTT Broker Port: 1883
    • Gateway name: the Tasmota MQTT topic from Step 1 (e.g., tasmota_XXXXX)

After import, you will see two devices: Permit Join (switch) and Devices Found (counter).

Step 3 — Pair a Zigbee Device

  1. In TapHome, turn on the Permit Join switch — this opens a 60-second pairing window
  2. On the Zigbee device, start the pairing procedure (typically hold the reset button for 5 seconds until the LED blinks)
  3. Watch the Devices Found counter — it increments when a new device joins
  4. Check the Service Attributes of the gateway to see the new device’s ID (e.g., 0x1234), manufacturer, and model
  5. The pairing mode deactivates automatically after the timeout

Step 4 — Import the Device Template

  1. Download the device-specific template from the corresponding compatibility page
  2. Import the template with these parameters:
    • MQTT Broker IP Address: same as the gateway
    • MQTT Broker Port: 1883
    • Gateway name: same Tasmota MQTT topic as above
    • Device ID: the short address from pairing (e.g., 0x1234)

Available devices

Livarno SMART TS0505B Module
Service Attributes
IEEE AddressZigbee IEEE address (64-bit unique identifier)
Custom Variables
GWname (string)Tasmota MQTT topic name of the Zigbee gateway (found in Configuration → MQTT → Topic)
ID (string)Zigbee short address of the Livarno Smart LED light (assigned during pairing)
After pairing the device via Permit Join, find the device short address in the gateway's Devices Found service attribute or via Tasmota console command ZbStatus

Livarno SMART TS0505B

Write (module)
if St = 0 or Hb < 0.01
    MQTTPUBLISH("cmnd/" + GWname+ "/ZbSend", 
    "{\"device\":\" " + ID + 
    "\",\"send\":{\"Power\":false}}");
else
    MQTTPUBLISH("cmnd/" + GWname+ "/ZbSend", 
    "{\"device\":\" " + ID + 
    "\",\"send\":{\"Dimmer\":" + round(linear(Hb, 0.01, 1, 1, 254)) + "}}");
    
    if !isnan(Ct)
        MQTTPUBLISH("cmnd/" + GWname+ "/ZbSend", 
        "{\"device\":\" " + ID + 
        "\",\"send\":{\"CT\":" + round(1000000/Ct) + "}}");
    else
        MQTTPUBLISH("cmnd/" + GWname+ "/ZbSend", 
        "{\"device\":\" " + ID + 
        "\",\"send\":{\"HueSat\":\"" + round(linear(Hd, 0, 0, 360, 254)) + "," + floor(linear(Sa, 0, 0, 1, 254)) + "\"}}");
    end

    #    MQTTPUBLISH("cmnd/" + GWname+ "/ZbSend", 
    #"{\"device\":\" " + ID + 
    #"\",\"send\":{\"Power\":true}}");
end
Listener
if INDEXOF(RECEIVEDMSG.Topic, "SENSOR") > 0
	var ZbReceived := PARSEJSON(TOSTRING(RECEIVEDMSG.Payload), "ZbReceived." + ID, true);
    var val := PARSEJSON(ZbReceived, ".LinkQuality", true);
    if(!ISNULL(val), LinkQuality := val);
    
    var deviceInfo := PARSEJSON(TOSTRING(RECEIVEDMSG.Payload), "ZbInfo." + ID, true);
    if !ISNULL(deviceInfo)
        COMPLETESERVICEATTRIBUTE("IEEEAddr", PARSEJSON(deviceInfo, "IEEEAddr"));
        COMPLETESERVICEATTRIBUTE("ModelId", PARSEJSON(deviceInfo, "ModelId"));
        COMPLETESERVICEATTRIBUTE("Manufacturer", PARSEJSON(deviceInfo, "Manufacturer"));
        COMPLETESERVICEATTRIBUTE("Endpoints", PARSEJSON(deviceInfo, "Endpoints"));
        COMPLETESERVICEATTRIBUTE("Config", PARSEJSON(deviceInfo, "Config"));
    end
end
Service Attributes
IEEEAddr
MQTTPUBLISH("cmnd/" + GWname+ "/ZbInfo", ID)
RGB Light HSB Light

HSB light with dual color mode — RGB (hue/saturation) and color temperature (2000K–6536K)

HSBLight json

RGB Light

Listener
VAR json := tostring(RECEIVEDMSG.Payload);
VAR topic := RECEIVEDMSG.Topic;

if INDEXOF(topic, "SENSOR") > 0 and INDEXOF(json, "null") < 0
    var power := PARSEJSON(json, "ZbReceived." + ID + ".Power", true);
    if(!ISNULL(power), St := power);
    var brightness := PARSEJSON(json, "ZbReceived." + ID + ".Dimmer", true);
    if(!ISNULL(brightness), Hb := round(linear(brightness, 1, 1, 254, 100))/100);
    var cmode := PARSEJSON(json, "ZbReceived." + ID + ".ColorMode", true);
    # CT
    if cmode = 2
        var ctemp := PARSEJSON(json, "ZbReceived." + ID + ".CT", true);
        if !ISNULL(ctemp)
            var oldCT := round(1000000/Ct);
            if oldCT != ctemp
                Ct := round(1000000/ctemp);
            end
        end
    end
    # HSB
    if cmode = 0
        var hue := PARSEJSON(json, "ZbReceived." + ID + ".Hue", true);
        if(!ISNULL(hue), Hd := round(linear(hue, 0, 0, 254, 360)));
        var sat := PARSEJSON(json, "ZbReceived." + ID + ".Sat", true);
        if(!ISNULL(sat), Sa := ceil(linear(sat, 0, 0, 254, 100))/100);
    end
end
Connection: Packet Parser → MQTT
Possible improvements (2)
  • Light Effects — blink, breathe, colorloop — supported by TS0505B but not in TapHome template
  • Do Not Disturb Mode — Prevents power-on after outage — Tuya-specific feature not implemented

Sources