TapHome

Shelly UNI

Packet Parser → MQTT
Přidal
Poslední aktualizace: 06. 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

Našli jste problém s touto šablonou zařízení?

Napište nám, co nefunguje, co chybí, nebo jak by se měla šablona chovat. Vaše zpětná vazba nám pomáhá udržet katalog přesný.

Ověřeno TapHome

Chcete to použít ve svém TapHome jádře?

Otevřete tuto šablonu v zákaznickém portálu a použijte ji ve svém domově, nebo navrhněte úpravu a odešlete ji zpět do katalogu.

Otevřít v portálu