TapHome

Shelly UNI

Packet Parser → MQTT
Pridal
Posledná aktualizácia: 04. 2026
Shelly UNI

Shelly UNI je kompaktný univerzálny 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 otvoreným kolektorom a dva digitálne vstupy — určený na dovybavenie existujúcich spotrebičov bez centrály.

TapHome komunikuje so zariadením cez MQTT. Šablóna sa prihlasuje na strom topicov shellies/<prefix>/... a publikuje príkazy na .../relay/{0,1}/command. Modul poskytuje 5 zariadení: 1 analógový vstup, 2 spínače a 2 jazýčkové kontakty.

Hardvérové zapojenie

Napájanie

Shelly UNI je nízkonapäťový modul a nedá sa napájať priamo zo siete 230 V. Napájaj buď:

  • 12–36 V DC cez červený (+) a čierny (GND) vodič, alebo
  • 12–24 V AC cez červený a čierny vodič (bez polarity)

Potrebný je externý nízkonapäťový adaptér. Spotreba zariadenia je pod 1 W.

Červený/čierny vodič nepripájaj na sieťové napätie. Na svorkách IN_1 / IN_2 / OUT1 / OUT2 môže byť podľa externého zapojenia stále nebezpečné napätie — inštaláciu musí vykonať kvalifikovaný elektrikár.

Legenda k pigtail káblu

Zariadenie sa dodáva s farebne označeným pigtail káblom:

VodičSvorkaFunkcia
ČervenýVCC12–36 V DC (alebo 12–24 V AC spoločne s čiernym)
ČiernyGNDZem (alebo AC fáza s červeným)
BielyADC_INAnalógový vstup (rozsah 0–12 V alebo 0–30 V)
ŽltýVCC_SENSORVýstup 3,3 V DC pre one-wire senzory
ModrýDATA_SENSOROne-wire dáta (DS18B20 / DHT22)
ZelenýGND_SENSORZem senzora
SvetlohnedýIN_1Digitálny vstup 1
TmavohnedýIN_2Digitálny vstup 2

Dva bezpotenciálové výstupy sú na tele modulu označené OUT1 a OUT2.

Digitálne vstupy (IN_1, IN_2)

Každý digitálny vstup je bezpotenciálový a môže byť riadený DC alebo AC zdrojom:

  • DC: HIGH pri ≥ 2,2 V, LOW pod 2,2 V, max 36 V DC
  • AC: HIGH pri ≥ 12 V, LOW pod 12 V, max 24 V AC

Typické použitie sú jazýčkové kontakty (senzory okien/dverí, plavákové spínače) a tlačidlá skratujúce vstup na GND cez externé napájanie.

Zapojenie jazýčkového kontaktu Shelly UNI s DC napájaním
Zapojenie jazýčkového kontaktu Shelly UNI s AC napájaním
Zapojenie tlačidla/spínača Shelly UNI s DC napájaním
Zapojenie tlačidla/spínača Shelly UNI s AC napájaním
Bezpotenciálové výstupy (OUT1, OUT2)

Každý výstup je bezpotenciálový kontakt s otvoreným kolektorom s týmito absolútnymi limitmi:

  • maximálny prúd 100 mA
  • maximálny výkon 300 mW
  • maximálne spínané napätie 24 V AC alebo 36 V DC

Tieto parametre sú príliš nízke pre sieťové záťaže — na spínanie reálnych záťaží (svetlá, čerpadlá, ventily) pripoj výstupy na externé relé alebo stýkač a cievku tohto relé napájaj zodpovedajúcim nízkonapäťovým zdrojom.

Schéma zapojenia bezpotenciálového výstupu Shelly UNI
Analógový vstup (ADC)

Jeden ADC kanál na bielom vodiči (ADC_IN) podporuje dva napäťové rozsahy voliteľné vo webovom rozhraní Shelly:

  • 0–12 V — vyššie rozlíšenie pre nízkonapäťové signály
  • 0–30 V — širší rozsah pre sledovanie batérie / DC linky

Vybraný rozsah sa uchováva len v zariadení — šablóna TapHome číta surovú publikovanú hodnotu a nedokáže zistiť, ktorý rozsah je aktívny. Uisti sa, že ADC rozsah Shelly zodpovedá signálu, ktorý pripájaš na biely vodič.

Schéma zapojenia ADC vstupu Shelly UNI

Konfigurácia

Shelly-ID a MQTT prefix

Každý Shelly UNI má jedinečné Shelly-ID rovnajúce sa posledným 6 znakom jeho MAC adresy (napr. 35FA58). Výsledný MQTT topic prefix je shellyuni-<Shelly-ID> (napr. shellyuni-35fa58).

Shelly-ID nájdeš:

  • Na štítku zariadenia (MAC adresa)
  • Vo webovom rozhraní Shelly: SettingsDevice Info
  • Cez API: GET http://<device-ip>/settings → pole device.hostname

Shelly Gen1 zariadenia sa oznamujú cez mDNS ako shellyuni-<Shelly-ID>.local. Tento hostname môžeš použiť namiesto pevnej IP adresy na prístup do webového rozhrania.

Zapnutie MQTT

Na novom zariadení je MQTT vypnuté. Zapni ho pred importom šablóny TapHome:

  1. Pripoj sa na prístupový bod zariadenia shellyuni-XXXXXX (heslo je vytlačené na zariadení) alebo ho nájdi v lokálnej sieti
  2. Otvor webové rozhranie na http://192.168.33.1/ (AP mód) alebo na LAN IP
  3. Prejdi na Internet & SecurityAdvanced — Developer Settings
  4. Zaškrtni Enable action execution via MQTT
  5. Nastav IP a port brokera (predvolene 1883), pole používateľa a hesla nechaj prázdne — TapHome na Gen1 nepodporuje MQTT autentifikáciu
  6. Ulož a reštartuj zariadenie

Zapnutie MQTT vypne pripojenie k Shelly Cloud na Gen1 zariadeniach. Je to zámerné — zariadenie nedokáže udržať obe spojenia naraz. Mobilná aplikácia Shelly nebude cez cloud ovládať zariadenie; použi MQTT alebo lokálne webové rozhranie.

Shelly Gen1 zariadenia nepodporujú MQTT cez TLS. Komunikácia medzi zariadením a brokerom je nešifrovaná (obyčajné MQTT, port 1883). Ponechaj broker v dôveryhodnej lokálnej sieti.

Nastavenie šablóny

Pri importe šablóny do TapHome zadaj:

  • IpAddress — IP adresa MQTT brokera
  • Port — port brokera (predvolene 1883)
  • DeviceID — 6-znakové Shelly-ID konkrétneho UNI (napr. 35fa58)

Importný parameter DeviceID sa používa na zostavenie custom premennej MQTTprefix (predvolene shellyuni-$[DeviceID]). Ak si na zariadení Shelly nastavil vlastný mqtt_id (prepisujúci predvolený), uprav po importe premennú MQTTprefix na module, aby sedela.

Na zariadení Shelly vypni HTTP autentifikáciu (Internet & SecurityRestrict Login). TapHome v tejto šablóne HTTP nepoužíva, ale ponechaná autentifikácia môže skomplikovať diagnostiku a aktualizácie firmvéru.

Možnosti zariadenia

Meranie analógového napätia

Zariadenie Analog Input číta ADC napätie z shellies/<prefix>/adc/0 a vystavuje ho ako číselnú hodnotu vo voltoch. Skript parsuje prichádzajúcu správu cez TODOUBLE(TOSTRING(PAYLOAD)) — bez akéhokoľvek škálovania.

Skutočný rozsah merania (0–12 V alebo 0–30 V) je nakonfigurovaný priamo na zariadení Shelly a cez MQTT sa neposiela. Šablóna TapHome nedokáže overiť, ktorý rozsah je aktívny.

Spínacie výstupy

Oba výstupy s otvoreným kolektorom sú vystavené ako štandardné TapHome Switch zariadenia:

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

Listener mapuje payload on → ON (St=1) a off → OFF (St=0). Príkazy z TapHome sa publikujú ako on / off na príslušný príkazový topic.

Výstupy sú bezpotenciálové a obmedzené na 100 mA / 300 mW. Nepripájaj sieťové záťaže priamo — na čokoľvek vyššie ako nízkopríkonové signalizačné zariadenia použi externé relé alebo stýkač.

Digitálne vstupy (jazýčkové kontakty)

Oba digitálne vstupy sú vystavené ako zariadenia 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

Firmvér Shelly publikuje 1 keď vstup vidí napätie nad svojím prahom a 0 keď je vstup stiahnutý na GND. Pretože jazýčkové kontakty a tlačidlá typicky skratujú vstup na GND v zatvorenom / aktívnom stave, skript TapHome payload invertuje:

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

To znamená, že Rc=1 v TapHome = kontakt zatvorený (aktívny, senzor otvorenia okna zopnutý, tlačidlo stlačené), Rc=0 = kontakt otvorený (neaktívny).

Ďalšie možnosti

Hardvér Shelly UNI podporuje aj až 3 × DS18B20 teplotné senzory na one-wire zbernici a — ako alternatívu — 1 × DHT22 senzor vlhkosti/teploty. Tieto senzory publikujú na shellies/<prefix>/ext_temperature/{0,1,2} a shellies/<prefix>/ext_humidity/0. Aktuálna MQTT šablóna tieto topicy nezapája do zariadení TapHome; môžu byť pridané v budúcej aktualizácii šablóny.

Podobne zariadenie vystavuje topic online/offline LWT a vstupné udalosti (input events) krátkeho/dlhého stlačenia na input_event/{0,1}, ktoré táto šablóna nespracováva.

Pre triggre scén podľa udalostí tlačidla (krátke stlačenie, dlhé stlačenie) sa dá topic input_event dnes odoberať zo samostatného MQTT klienta — šablóna TapHome sleduje len surový stav vstupu.

Riešenie problémov

Zariadenie neodpovedá
  1. Over, že Shelly UNI je napájané (červený/čierny na 12–36 V DC alebo 12–24 V AC) a pripojené k Wi-Fi
  2. Otvor webové rozhranie Shelly cez mDNS hostname shellyuni-<Shelly-ID>.local alebo jeho DHCP IP
  3. Over, že MQTT je zapnuté (Internet & SecurityAdvanced) a IP/port brokera zodpovedajú parametrom importu TapHome
  4. Použi MQTT klienta (napr. MQTT Explorer) na odber shellies/# a over, že zariadenie publikuje správy
Spínače sa neprepínajú
  1. Skontroluj cestu príkazového topicu — musí byť shellies/<prefix>/relay/0/command (nie .../relay/0/set)
  2. Over, že premenná MQTTprefix modulu TapHome zodpovedá topic prefixu, na ktorom zariadenie skutočne publikuje
  3. Pamätaj, že výstupy sú bezpotenciálové — bez externého obvodu dodávajúceho napätie sa stav výstupu mení, ale žiadna záťaž sa nespína
Stav jazýčkového kontaktu je obrátený

Šablóna predpokladá, že payload=0 znamená „kontakt zatvorený". Ak externé zapojenie ťahá vstup do HIGH keď je kontakt aktívny (opačné zapojenie), stav sa v TapHome javí obrátene. Prepoj tak, aby kontakt skratoval IN_1 / IN_2 na GND keď je aktívny, alebo uprav logiku vo vlastnom skripte.

ADC hodnota mimo očakávaný rozsah

ADC rozsah (0–12 V alebo 0–30 V) je nastavený na zariadení a nedá sa spätne načítať cez MQTT. Ak sa číselná hodnota v TapHome zdá nesprávna (napr. 2× vyššia alebo nižšia než očakávaš), otvor webové rozhranie Shelly a skontroluj SettingsADC range. Šablóna predpokladá, že zariadenie publikuje napätie priamo a nerobí žiadnu konverziu.

Ako nainštalovať v TapHome

Predpoklady

  • Zariadenie Shelly pripojené k Wi-Fi (ak ešte nie, pozrite návod na HTTP pripojenie)
  • MQTT broker bežiaci vo vašej lokálnej sieti (napr. Mosquitto, Home Assistant alebo vstavaný broker TapHome)
  • TapHome CCU v rovnakej sieti ako broker

Na zariadeniach Gen1 povolenie MQTT vypne Shelly Cloud. Oboje nemôže bežať súčasne. Na zariadeniach Gen2/Plus toto obmedzenie neplatí.

Krok 1 — Povoľte MQTT na zariadení Shelly

Zariadenia Gen1 (Shelly 1, 1PM, 2.5, EM, 3EM, Plug S, RGBW2, Dimmer, TRV…)

  1. Otvorte webové rozhranie Shelly: http://<device-ip>/
  2. Prejdite na Internet & SecurityAdvanced — MQTT
  3. Povoľte MQTT
  4. Nastavte MQTT Server: <broker-ip>:<port> (napr. 192.168.1.10:1883)
  5. Voliteľne nastavte MQTT User a MQTT Password, ak váš broker vyžaduje autentifikáciu
  6. Kliknite na Save — zariadenie sa reštartuje a pripojí k brokeru

Zariadenia Gen2 / Plus (Shelly Plus 1, Plus 1PM, Plus 2PM, Plus Plug S, Plus H&T, Pro 3EM…)

  1. Otvorte webové rozhranie Shelly: http://<device-ip>/
  2. Prejdite na SettingsMQTT
  3. Povoľte MQTT
  4. Nastavte Server: <broker-ip>:<port> (napr. 192.168.1.10:1883)
  5. Client ID je predvyplnené ID zariadenia (napr. shellyplus1pm-AABBCCDDEE) — ponechajte tak, pokiaľ nemáte konkrétny dôvod na zmenu
  6. Kliknite na Save a reštartujte zariadenie

Na overenie funkčnosti MQTT použite MQTT klienta (napr. MQTT Explorer) a prihláste sa na odber shellies/# (Gen1) alebo <device-id>/# (Gen2). Mali by ste vidieť stavové správy zo zariadenia.

Krok 2 — Zistite Device ID / MQTT Client ID

Niektoré šablóny vyžadujú parameter Device ID alebo MQTT Client ID. Ide o jedinečný identifikátor používaný v MQTT topicoch.

  • Gen1: nachádza sa na štítku ako MAC adresa (napr. AABBCCDDEE). Device ID = shelly<model>-<mac>, napr. shelly1pm-AABBCCDDEE
  • Gen2/Plus: nachádza sa vo webovom rozhraní Shelly v časti SettingsDevice InfoDevice ID, alebo na štítku zariadenia

Krok 3 — Konfigurácia v TapHome

  1. V TapHome pridajte nový modul Packet Parser (MQTT)
  2. IP Address: zadajte IP adresu MQTT brokera (napr. 192.168.1.10)
  3. Port: 1883 (predvolený; pre TLS použite 8883)
  4. Device ID / MQTT Client ID: zadajte hodnotu z kroku 2 (ak to šablóna vyžaduje)
  5. Importujte šablónu — TapHome sa automaticky prihlási na odber topicov zariadenia

Dostupné zariadenia

Shelly UNI Modul
Vlastné premenné
MQTTprefix (string) = shellyuni-$[DeviceID]MQTT topic prefix zariadenia Shelly UNI — predvolene shellyuni-{DeviceID} a používa sa ako základ pre všetky odoberané/publikované témy
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.
Analógový vstup Premenná Len na čítanie

Meranie napätia ADC — dvojitý rozsah 0–12 V alebo 0–30 V, volený na zariadení

numeric Jednotka: V

Analógový vstup

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

Bezpotenciálový výstup s otvoreným kolektorom OUT_1 — max 100 mA / 300 mW, 24 V AC alebo 36 V DC

string
Hodnoty / Stavy: ON · OFF

Spínač 1

Zápis stavu prepínača
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 Prepínač

Bezpotenciálový výstup s otvoreným kolektorom OUT_2 — max 100 mA / 300 mW, 24 V AC alebo 36 V DC

string
Hodnoty / Stavy: ON · OFF

Spínač 2

Zápis stavu prepínača
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 Len na čítanie

Digitálny vstup IN_1 — invertovaná logika, kontakt spojený s GND = aktívny (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 Len na čítanie

Digitálny vstup IN_2 — invertovaná logika, kontakt spojený s GND = aktívny (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
Pripojenie: Packet Parser → MQTT
Možné vylepšenia (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