TapHome

Shelly UNI

Packet Parser → MQTT
Přidal
Poslední aktualizace: 04. 2026
Shelly UNI

Shelly UNI je kompaktní univerzální Wi-Fi I/O modul (20 × 33 × 13 mm) z platformy Shelly Gen1. Poskytuje jeden ADC napěťový vstup, dva bezpotenciálové výstupy s otevřeným kolektorem a dva digitální vstupy — určený pro dovybavení stávajících spotřebičů bez centrály.

TapHome komunikuje se zařízením přes MQTT. Šablona se přihlašuje ke stromu topiců shellies/<prefix>/... a publikuje příkazy na .../relay/{0,1}/command. Modul poskytuje 5 zařízení: 1 analogový vstup, 2 spínače a 2 jazýčkové kontakty.

Hardwarové zapojení

Napájení

Shelly UNI je nízkonapěťový modul a nelze jej napájet přímo ze sítě 230 V. Napájej buď:

  • 12–36 V DC přes červený (+) a černý (GND) vodič, nebo
  • 12–24 V AC přes červený a černý vodič (bez polarity)

Potřebný je externí nízkonapěťový adaptér. Spotřeba zařízení je pod 1 W.

Červený/černý vodič nepřipojuj na síťové napětí. Na svorkách IN_1 / IN_2 / OUT1 / OUT2 může být podle externího zapojení stále nebezpečné napětí — instalaci musí provést kvalifikovaný elektrikář.

Legenda pigtail kabelu

Zařízení se dodává s barevně označeným pigtail kabelem:

VodičSvorkaFunkce
ČervenýVCC12–36 V DC (nebo 12–24 V AC společně s černým)
ČernýGNDZem (nebo AC fáze s červeným)
BílýADC_INAnalogový vstup (rozsah 0–12 V nebo 0–30 V)
ŽlutýVCC_SENSORVýstup 3,3 V DC pro one-wire senzory
ModrýDATA_SENSOROne-wire data (DS18B20 / DHT22)
ZelenýGND_SENSORZem senzoru
Světle hnědýIN_1Digitální vstup 1
Tmavě hnědýIN_2Digitální vstup 2

Dva bezpotenciálové výstupy jsou na těle modulu označené OUT1 a OUT2.

Digitální vstupy (IN_1, IN_2)

Každý digitální vstup je bezpotenciálový a lze jej řídit DC nebo AC zdrojem:

  • DC: HIGH při ≥ 2,2 V, LOW pod 2,2 V, max 36 V DC
  • AC: HIGH při ≥ 12 V, LOW pod 12 V, max 24 V AC

Typické použití jsou jazýčkové kontakty (senzory oken/dveří, plovákové spínače) a tlačítka zkratující vstup na GND přes externí napájení.

Zapojení jazýčkového kontaktu Shelly UNI s DC napájením
Zapojení jazýčkového kontaktu Shelly UNI s AC napájením
Zapojení tlačítka/spínače Shelly UNI s DC napájením
Zapojení tlačítka/spínače Shelly UNI s AC napájením
Bezpotenciálové výstupy (OUT1, OUT2)

Každý výstup je bezpotenciálový kontakt s otevřeným kolektorem s těmito absolutními limity:

  • maximální proud 100 mA
  • maximální výkon 300 mW
  • maximální spínané napětí 24 V AC nebo 36 V DC

Tyto parametry jsou příliš nízké pro síťové zátěže — pro spínání reálných zátěží (světla, čerpadla, ventily) připoj výstupy na externí relé nebo stykač a cívku tohoto relé napájej odpovídajícím nízkonapěťovým zdrojem.

Schéma zapojení bezpotenciálového výstupu Shelly UNI
Analogový vstup (ADC)

Jeden ADC kanál na bílém vodiči (ADC_IN) podporuje dva napěťové rozsahy volitelné ve webovém rozhraní Shelly:

  • 0–12 V — vyšší rozlišení pro nízkonapěťové signály
  • 0–30 V — širší rozsah pro sledování baterie / DC linky

Vybraný rozsah je uložen pouze v zařízení — šablona TapHome čte surovou publikovanou hodnotu a nedokáže zjistit, který rozsah je aktivní. Ujisti se, že ADC rozsah Shelly odpovídá signálu, který připojuješ na bílý vodič.

Schéma zapojení ADC vstupu Shelly UNI

Konfigurace

Shelly-ID a MQTT prefix

Každý Shelly UNI má jedinečné Shelly-ID rovnající se posledním 6 znakům jeho MAC adresy (např. 35FA58). Výsledný MQTT topic prefix je shellyuni-<Shelly-ID> (např. shellyuni-35fa58).

Shelly-ID najdeš:

  • Na štítku zařízení (MAC adresa)
  • Ve webovém rozhraní Shelly: SettingsDevice Info
  • Přes API: GET http://<device-ip>/settings → pole device.hostname

Shelly Gen1 zařízení se ohlašují přes mDNS jako shellyuni-<Shelly-ID>.local. Tento hostname můžeš použít místo pevné IP adresy pro přístup do webového rozhraní.

Zapnutí MQTT

Na novém zařízení je MQTT vypnuté. Zapni ho před importem šablony TapHome:

  1. Připoj se na přístupový bod zařízení shellyuni-XXXXXX (heslo je vytištěné na zařízení) nebo ho najdi v lokální síti
  2. Otevři webové rozhraní na http://192.168.33.1/ (AP režim) nebo na LAN IP
  3. Přejdi na Internet & SecurityAdvanced — Developer Settings
  4. Zaškrtni Enable action execution via MQTT
  5. Nastav IP a port brokeru (výchozí 1883), pole uživatele a hesla nech prázdná — TapHome na Gen1 nepodporuje MQTT autentizaci
  6. Ulož a restartuj zařízení

Zapnutí MQTT vypne připojení k Shelly Cloud na Gen1 zařízeních. Je to záměrné — zařízení nedokáže udržet obě spojení současně. Mobilní aplikace Shelly nebude zařízení přes cloud ovládat; použij MQTT nebo lokální webové rozhraní.

Shelly Gen1 zařízení nepodporují MQTT přes TLS. Komunikace mezi zařízením a brokerem je nešifrovaná (obyčejné MQTT, port 1883). Ponech broker v důvěryhodné lokální síti.

Nastavení šablony

Při importu šablony do TapHome zadej:

  • IpAddress — IP adresa MQTT brokeru
  • Port — port brokeru (výchozí 1883)
  • DeviceID — 6znakové Shelly-ID konkrétního UNI (např. 35fa58)

Importní parametr DeviceID se používá k sestavení custom proměnné MQTTprefix (výchozí shellyuni-$[DeviceID]). Pokud jsi na zařízení Shelly nastavil vlastní mqtt_id (přepisující výchozí), uprav po importu proměnnou MQTTprefix na modulu, aby odpovídala.

Na zařízení Shelly vypni HTTP autentizaci (Internet & SecurityRestrict Login). TapHome v této šabloně HTTP nepoužívá, ale ponechaná autentizace může zkomplikovat diagnostiku a aktualizace firmwaru.

Možnosti zařízení

Měření analogového napětí

Zařízení Analog Input čte ADC napětí z shellies/<prefix>/adc/0 a vystavuje jej jako číselnou hodnotu ve voltech. Skript parsuje příchozí zprávu přes TODOUBLE(TOSTRING(PAYLOAD)) — bez jakéhokoli škálování.

Skutečný rozsah měření (0–12 V nebo 0–30 V) je nakonfigurován přímo na zařízení Shelly a přes MQTT se neposílá. Šablona TapHome nedokáže ověřit, který rozsah je aktivní.

Spínací výstupy

Oba výstupy s otevřeným kolektorem jsou vystaveny jako standardní TapHome Switch zařízení:

  • Switch 1 — OUT_1, topic shellies/<prefix>/relay/0, příkazový topic .../relay/0/command
  • Switch 2 — OUT_2, topic shellies/<prefix>/relay/1, příkazový topic .../relay/1/command

Listener mapuje payload on → ON (St=1) a off → OFF (St=0). Příkazy z TapHome se publikují jako on / off na příslušný příkazový topic.

Výstupy jsou bezpotenciálové a omezené na 100 mA / 300 mW. Nepřipojuj síťové zátěže přímo — na cokoli vyššího než nízkopříkonová signalizační zařízení použij externí relé nebo stykač.

Digitální vstupy (jazýčkové kontakty)

Oba digitální vstupy jsou vystaveny jako zařízení Reed Contact s invertovanou logikou:

  • Reed Contact 1 — IN_1, topic shellies/<prefix>/input/0
  • Reed Contact 2 — IN_2, topic shellies/<prefix>/input/1

Firmware Shelly publikuje 1 když vstup vidí napětí nad svým prahem a 0 když je vstup stažen na GND. Protože jazýčkové kontakty a tlačítka typicky zkratují vstup na GND v zavřeném / aktivním stavu, skript TapHome payload invertuje:

1
Rc := IF(payload = "0", 1, 0)

To znamená, že Rc=1 v TapHome = kontakt zavřený (aktivní, senzor otevření okna sepnutý, tlačítko stisknuté), Rc=0 = kontakt otevřený (neaktivní).

Další možnosti

Hardware Shelly UNI podporuje také až 3 × DS18B20 teplotní senzory na one-wire sběrnici a — jako alternativu — 1 × DHT22 senzor vlhkosti/teploty. Tyto senzory publikují na shellies/<prefix>/ext_temperature/{0,1,2} a shellies/<prefix>/ext_humidity/0. Současná MQTT šablona tyto topicy nezapojuje do zařízení TapHome; mohou být přidány v budoucí aktualizaci šablony.

Podobně zařízení vystavuje topic online/offline LWT a vstupní události (input events) krátkého/dlouhého stisku na input_event/{0,1}, které tato šablona nezpracovává.

Pro spouštění scén podle událostí tlačítka (krátký stisk, dlouhý stisk) lze topic input_event dnes odebírat ze samostatného MQTT klienta — šablona TapHome sleduje pouze surový stav vstupu.

Řešení problémů

Zařízení neodpovídá
  1. Ověř, že Shelly UNI je napájeno (červený/černý na 12–36 V DC nebo 12–24 V AC) a připojeno k Wi-Fi
  2. Otevři webové rozhraní Shelly přes mDNS hostname shellyuni-<Shelly-ID>.local nebo jeho DHCP IP
  3. Ověř, že MQTT je zapnuté (Internet & SecurityAdvanced) a IP/port brokeru odpovídají parametrům importu TapHome
  4. Použij MQTT klienta (např. MQTT Explorer) k odběru shellies/# a ověř, že zařízení publikuje zprávy
Spínače se nepřepínají
  1. Zkontroluj cestu příkazového topicu — musí být shellies/<prefix>/relay/0/command (ne .../relay/0/set)
  2. Ověř, že proměnná MQTTprefix modulu TapHome odpovídá topic prefixu, na kterém zařízení skutečně publikuje
  3. Pamatuj, že výstupy jsou bezpotenciálové — bez externího obvodu dodávajícího napětí se stav výstupu mění, ale žádná zátěž se nespíná
Stav jazýčkového kontaktu je obrácený

Šablona předpokládá, že payload=0 znamená „kontakt zavřený". Pokud externí zapojení táhne vstup do HIGH když je kontakt aktivní (opačné zapojení), stav se v TapHome jeví obráceně. Přepojuj tak, aby kontakt zkratoval IN_1 / IN_2 na GND když je aktivní, nebo uprav logiku ve vlastním skriptu.

ADC hodnota mimo očekávaný rozsah

ADC rozsah (0–12 V nebo 0–30 V) je nastaven na zařízení a nelze jej zpětně načíst přes MQTT. Pokud se číselná hodnota v TapHome zdá nesprávná (např. 2× vyšší nebo nižší než očekáváš), otevři webové rozhraní Shelly a zkontroluj SettingsADC range. Šablona předpokládá, že zařízení publikuje napětí přímo a neprovádí žádnou konverzi.

Jak nainstalovat v TapHome

Předpoklady

  • Zařízení Shelly připojené k Wi-Fi (pokud ještě ne, podívejte se na návod na HTTP připojení)
  • MQTT broker běžící ve vaší lokální síti (např. Mosquitto, Home Assistant nebo vestavěný broker TapHome)
  • TapHome CCU ve stejné síti jako broker

Na zařízeních Gen1 povolení MQTT vypne Shelly Cloud. Obojí nemůže běžet současně. Na zařízeních Gen2/Plus toto omezení neplatí.

Krok 1 — Povolte MQTT na zařízení Shelly

Zařízení Gen1 (Shelly 1, 1PM, 2.5, EM, 3EM, Plug S, RGBW2, Dimmer, TRV…)

  1. Otevřete webové rozhraní Shelly: http://<device-ip>/
  2. Přejděte na Internet & SecurityAdvanced — MQTT
  3. Povolte MQTT
  4. Nastavte MQTT Server: <broker-ip>:<port> (např. 192.168.1.10:1883)
  5. Volitelně nastavte MQTT User a MQTT Password, pokud váš broker vyžaduje autentifikaci
  6. Klikněte na Save — zařízení se restartuje a připojí k brokeru

Zařízení Gen2 / Plus (Shelly Plus 1, Plus 1PM, Plus 2PM, Plus Plug S, Plus H&T, Pro 3EM…)

  1. Otevřete webové rozhraní Shelly: http://<device-ip>/
  2. Přejděte na SettingsMQTT
  3. Povolte MQTT
  4. Nastavte Server: <broker-ip>:<port> (např. 192.168.1.10:1883)
  5. Client ID je předvyplněné ID zařízení (např. shellyplus1pm-AABBCCDDEE) — ponechte tak, pokud nemáte konkrétní důvod ke změně
  6. Klikněte na Save a restartujte zařízení

Pro ověření funkčnosti MQTT použijte MQTT klienta (např. MQTT Explorer) a přihlaste se k odběru shellies/# (Gen1) nebo <device-id>/# (Gen2). Měli byste vidět stavové zprávy ze zařízení.

Krok 2 — Zjistěte Device ID / MQTT Client ID

Některé šablony vyžadují parametr Device ID nebo MQTT Client ID. Jde o jedinečný identifikátor používaný v MQTT topicích.

  • Gen1: nachází se na štítku jako MAC adresa (např. AABBCCDDEE). Device ID = shelly<model>-<mac>, např. shelly1pm-AABBCCDDEE
  • Gen2/Plus: nachází se ve webovém rozhraní Shelly v části SettingsDevice InfoDevice ID, nebo na štítku zařízení

Krok 3 — Konfigurace v TapHome

  1. V TapHome přidejte nový modul Packet Parser (MQTT)
  2. IP Address: zadejte IP adresu MQTT brokeru (např. 192.168.1.10)
  3. Port: 1883 (výchozí; pro TLS použijte 8883)
  4. Device ID / MQTT Client ID: zadejte hodnotu z kroku 2 (pokud to šablona vyžaduje)
  5. Importujte šablonu — TapHome se automaticky přihlásí k odběru topiců zařízení

Dostupná zařízení

Shelly UNI Modul
Vlastní proměnné
MQTTprefix (string) = shellyuni-$[DeviceID]MQTT topic prefix zařízení Shelly UNI — výchozí shellyuni-{DeviceID} a používá se jako základ pro všechna odebíraná/publikovaná témata
Pass DeviceID as import parameter; find it in the Shelly web UI → Settings → Device Info (last 6 characters of MAC address). Custom mqtt_id set on the Shelly device overrides this default.
Analogový vstup Proměnná Pouze ke čtení

Měření napětí ADC — dvojitý rozsah 0–12 V nebo 0–30 V, volený na zařízení

numeric Jednotka: V

Analogový vstup

Listener
if RECEIVEDMSG.TOPIC = "shellies/" + MQTTprefix + "/adc/0"
    Va := TODOUBLE(TOSTRING(RECEIVEDMSG.PAYLOAD));
end
Spínač 1 Přepínač

Bezpotenciálový výstup s otevřeným kolektorem OUT_1 — max 100 mA / 300 mW, 24 V AC nebo 36 V DC

string
Hodnoty / Stavy: ON · OFF

Spínač 1

Zápis stavu přepínače
MQTTPUBLISH("shellies/" + MQTTprefix + "/relay/0/command", if(St, "on", "off"))
Listener
if RECEIVEDMSG.TOPIC = "shellies/" + MQTTprefix + "/relay/0"
    VAR payload := TOSTRING(RECEIVEDMSG.PAYLOAD);

    if(payload = "on", St := 1, St := 0);
end
Spínač 2 Přepínač

Bezpotenciálový výstup s otevřeným kolektorem OUT_2 — max 100 mA / 300 mW, 24 V AC nebo 36 V DC

string
Hodnoty / Stavy: ON · OFF

Spínač 2

Zápis stavu přepínače
MQTTPUBLISH("shellies/" + MQTTprefix + "/relay/1/command", if(St, "on", "off"))
Listener
if RECEIVEDMSG.TOPIC = "shellies/" + MQTTprefix + "/relay/1"
    VAR payload := TOSTRING(RECEIVEDMSG.PAYLOAD);

    if(payload = "on", St := 1, St := 0);
end
Jazýčkový kontakt 1 Jazýčkový kontakt Pouze ke čtení

Digitální vstup IN_1 — invertovaná logika, kontakt spojený s GND = aktivní (1) v TapHome

string

Jazýčkový kontakt 1

Listener
if RECEIVEDMSG.TOPIC = "shellies/" + MQTTprefix + "/input/0"
    VAR payload := TOSTRING(RECEIVEDMSG.PAYLOAD);

    Rc := if(payload = "0", 1, 0);
end
Jazýčkový kontakt 2 Jazýčkový kontakt Pouze ke čtení

Digitální vstup IN_2 — invertovaná logika, kontakt spojený s GND = aktivní (1) v TapHome

string

Jazýčkový kontakt 2

Listener
if RECEIVEDMSG.TOPIC = "shellies/" + MQTTprefix + "/input/1"
    VAR payload := TOSTRING(RECEIVEDMSG.PAYLOAD);

    Rc := if(payload = "0", 1, 0);
end
Připojení: Packet Parser → MQTT
Možná vylepšení (8)
  • External Temperature Sensor 1 (DS18B20) — Hardware supports up to 3× DS18B20 on the one-wire bus (Blue DATA + Yellow VCC + Green GND). Not wired in this MQTT template; would need a PacketParserVariable listening on ext_temperature/0 (value 999 = invalid).
  • External Temperature Sensor 2 (DS18B20) — Second DS18B20 on the one-wire bus. Same pattern as sensor 1, different index.
  • External Temperature Sensor 3 (DS18B20) — Third DS18B20 on the one-wire bus. Same pattern as sensor 1, different index.
  • External Humidity Sensor (DHT22) — Hardware supports 1× DHT22 humidity/temperature sensor (mutually exclusive with DS18B20 chain). Not wired in this MQTT template; would need a PacketParserVariable on ext_humidity/0 (value 999 = invalid).
  • Connection Status (LWT) — Last-Will-Testament topic — 'true' on connect, 'false' on disconnect. Could be added to detect offline devices.
  • Input 1 Event — JSON payload {event, event_cnt} — short/long press events on IN_1, useful for scene triggers.
  • Input 2 Event — JSON payload {event, event_cnt} — short/long press events on IN_2.
  • Full Status JSON — Full /status JSON published periodically (firmware ≥ 1.8.0). Could be parsed for wifi_sta.rssi, update status, uptime.

Zdroje