TapHome

Shelly UNI

Packet Parser → MQTT
Beküldő
Utoljára frissítve: 04. 2026
Shelly UNI

A Shelly UNI egy kompakt univerzális Wi-Fi I/O modul (20 × 33 × 13 mm) a Shelly Gen1 platformról. Egy ADC feszültségbemenetet, két potenciálmentes nyitott kollektoros kimenetet és két digitális bemenetet biztosít — a hagyományos készülékek központ nélküli utólagos bővítésére tervezve.

A TapHome MQTT-n keresztül kommunikál az eszközzel. A sablon feliratkozik a shellies/<prefix>/... topic-fára és a .../relay/{0,1}/command címre küld parancsokat. A modul 5 eszközt biztosít: 1 analóg bemenet, 2 kapcsoló és 2 reed kontaktus.

Hardver bekötés

Tápellátás

A Shelly UNI kisfeszültségű modul, és nem táplálható közvetlenül 230 V-os hálózatról. Tápláld:

  • 12–36 V DC-vel a piros (+) és fekete (GND) vezetékkel, vagy
  • 12–24 V AC-vel a piros és fekete vezetékkel (polaritás nélkül)

Külön kisfeszültségű adapter szükséges. Az eszköz fogyasztása 1 W alatt van.

A piros/fekete vezetéket ne csatlakoztasd hálózati feszültségre. Az IN_1 / IN_2 / OUT1 / OUT2 kapcsokon a külső áramkörtől függően továbbra is veszélyes feszültség lehet — a telepítést szakképzett villanyszerelőnek kell végeznie.

Pigtail kábel színjelölés

Az eszközt színkódolt pigtail kábellel szállítják:

VezetékKapocsFunkció
PirosVCC12–36 V DC (vagy 12–24 V AC a feketével együtt)
FeketeGNDFöld (vagy AC fázis a pirossal)
FehérADC_INAnalóg bemenet (0–12 V vagy 0–30 V tartomány)
SárgaVCC_SENSOR3,3 V DC kimenet one-wire szenzorokhoz
KékDATA_SENSOROne-wire adat (DS18B20 / DHT22)
ZöldGND_SENSORSzenzor föld
VilágosbarnaIN_11. digitális bemenet
SötétbarnaIN_22. digitális bemenet

A két potenciálmentes kimenet a modul testén OUT1 és OUT2 jelöléssel található.

Digitális bemenetek (IN_1, IN_2)

Minden digitális bemenet potenciálmentes, és DC vagy AC forrásból is meghajtható:

  • DC: HIGH ha ≥ 2,2 V, LOW 2,2 V alatt, max. 36 V DC
  • AC: HIGH ha ≥ 12 V, LOW 12 V alatt, max. 24 V AC

Tipikus felhasználás: reed kontaktusok (ablak-/ajtóérzékelők, úszókapcsolók) és nyomógombok, amelyek külső táppal GND-re rövidzárolják a bemenetet.

Shelly UNI reed kontaktus bekötése DC tápellátással
Shelly UNI reed kontaktus bekötése AC tápellátással
Shelly UNI nyomógomb/kapcsoló bekötése DC tápellátással
Shelly UNI nyomógomb/kapcsoló bekötése AC tápellátással
Potenciálmentes kimenetek (OUT1, OUT2)

Mindkét kimenet potenciálmentes nyitott kollektoros kontaktus az alábbi abszolút határértékekkel:

  • maximális áram 100 mA
  • maximális teljesítmény 300 mW
  • maximális kapcsolt feszültség 24 V AC vagy 36 V DC

Ezek az értékek túl alacsonyak hálózati fogyasztókhoz — valódi fogyasztók (világítás, szivattyúk, szelepek) kapcsolásához csatlakoztasd a kimeneteket egy külső reléhez vagy mágneskapcsolóhoz, és a relé tekercsét megfelelő kisfeszültségű forrásról tápláld.

Shelly UNI potenciálmentes kimenet bekötési rajza
Analóg bemenet (ADC)

A fehér vezetéken (ADC_IN) lévő egyetlen ADC csatorna két feszültségtartományt támogat, amelyek a Shelly webes felületén választhatók:

  • 0–12 V — nagyobb felbontás kisfeszültségű jelekhez
  • 0–30 V — szélesebb tartomány akkumulátor- / DC-kör felügyeletéhez

A kiválasztott tartomány csak az eszközön tárolódik — a TapHome sablon a nyers közzétett értéket olvassa, és nem tudja felismerni, melyik tartomány aktív. Ellenőrizd, hogy a Shelly ADC tartománya megfelel a fehér vezetékre kötött jelnek.

Shelly UNI ADC bemenet bekötési rajza

Konfiguráció

Shelly-ID és MQTT prefix

Minden Shelly UNI rendelkezik egyedi Shelly-ID-val, amely a MAC cím utolsó 6 karakterével egyezik (pl. 35FA58). Az ebből származó MQTT topic prefix: shellyuni-<Shelly-ID> (pl. shellyuni-35fa58).

A Shelly-ID megtalálható:

  • Az eszköz címkéjén (MAC cím)
  • A Shelly webes felületén: SettingsDevice Info
  • API-n keresztül: GET http://<device-ip>/settingsdevice.hostname mező

A Shelly Gen1 eszközök mDNS-en keresztül shellyuni-<Shelly-ID>.local néven hirdetik magukat. Ezt a hostname-et rögzített IP cím helyett használhatod a webes felület eléréséhez.

MQTT engedélyezése

Új eszközön az MQTT le van tiltva. Engedélyezd a TapHome sablon importja előtt:

  1. Csatlakozz az eszköz hozzáférési pontjához shellyuni-XXXXXX (a jelszó az eszközre van nyomtatva), vagy érd el a helyi hálózaton
  2. Nyisd meg a webes felületet a http://192.168.33.1/ címen (AP mód) vagy a LAN IP-n
  3. Menj a Internet & SecurityAdvanced — Developer Settings menübe
  4. Jelöld be az Enable action execution via MQTT opciót
  5. Állítsd be a bróker IP-jét és portját (alapértelmezés 1883), a felhasználónevet és jelszót hagyd üresen — a TapHome Gen1-en nem támogatja az MQTT hitelesítést
  6. Mentés után indítsd újra az eszközt

Az MQTT engedélyezése kikapcsolja a Shelly Cloud kapcsolatot a Gen1 eszközökön. Ez szándékos — az eszköz nem tudja egyszerre fenntartani mindkét kapcsolatot. A Shelly mobilalkalmazás többé nem vezérli az eszközt felhőn keresztül; használd helyette az MQTT-t vagy a helyi webes felületet.

A Shelly Gen1 eszközök nem támogatják az MQTT-t TLS fölött. Az eszköz és a bróker közötti kommunikáció titkosítatlan (sima MQTT, 1883-as port). Tartsd a brókert megbízható helyi hálózaton.

Sablon beállítása

A sablon TapHome-ba importálásakor add meg:

  • IpAddress — az MQTT bróker IP címe
  • Port — a bróker portja (alapértelmezés 1883)
  • DeviceID — a konkrét UNI 6 karakteres Shelly-ID-ja (pl. 35fa58)

A DeviceID import paraméter az MQTTprefix egyedi változó felépítésére szolgál (alapértelmezés shellyuni-$[DeviceID]). Ha a Shelly eszközön egyedi mqtt_id-t állítottál be (felülírva az alapértelmezést), import után szerkeszd a modul MQTTprefix változóját úgy, hogy megegyezzen.

Kapcsold ki a HTTP hitelesítést a Shelly eszközön (Internet & SecurityRestrict Login). A TapHome ebben a sablonban nem használ HTTP-t, de a bekapcsolt hitelesítés megnehezítheti a hibakeresést és a firmware-frissítéseket.

Eszközképességek

Analóg feszültségmérés

Az Analog Input eszköz a shellies/<prefix>/adc/0 topicról olvassa az ADC feszültséget, és számértékként volt-ban jeleníti meg. A szkript TODOUBLE(TOSTRING(PAYLOAD)) segítségével parsolja a bejövő payloadot — skálázás nélkül.

A tényleges méréstartomány (0–12 V vagy 0–30 V) magán a Shelly eszközön van konfigurálva, és nem kerül közzétételre MQTT-n. A TapHome sablon nem tudja ellenőrizni, melyik tartomány aktív.

Kapcsolókimenetek

Mindkét nyitott kollektoros kimenet szabványos TapHome Switch eszközként jelenik meg:

  • Switch 1 — OUT_1, topic shellies/<prefix>/relay/0, parancs topic .../relay/0/command
  • Switch 2 — OUT_2, topic shellies/<prefix>/relay/1, parancs topic .../relay/1/command

A listener az on payloadot ON-ra (St=1), az off-ot OFF-ra (St=0) képezi le. A TapHome parancsai on / off értékként kerülnek közzétételre az adott parancs topicon.

A kimenetek potenciálmentesek és 100 mA / 300 mW-ra korlátozottak. Ne csatlakoztass közvetlenül hálózati fogyasztót — alacsony fogyasztású jelzőeszközöknél nagyobb terheléshez használj külső relét vagy mágneskapcsolót.

Digitális bemenetek (reed kontaktusok)

Mindkét digitális bemenet Reed Contact eszközként jelenik meg fordított logikával:

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

A Shelly firmware 1-et publikál, ha a bemenet a küszöb feletti feszültséget lát, és 0-t, ha a bemenet GND-re van húzva. Mivel a reed kontaktusok és nyomógombok jellemzően zárt / aktív állapotban rövidzárolják a bemenetet GND-re, a TapHome szkript invertálja a payloadot:

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

Tehát a TapHome-ban Rc=1 = zárt kontaktus (aktív, ablaknyitás-érzékelő kioldott, nyomógomb megnyomva), Rc=0 = nyitott kontaktus (inaktív).

További képességek

A Shelly UNI hardvere támogat még akár 3 × DS18B20 hőmérséklet-szenzort a one-wire buszon és — alternatívaként — 1 × DHT22 páratartalom-/hőmérséklet-szenzort. Ezek a szenzorok a shellies/<prefix>/ext_temperature/{0,1,2} és shellies/<prefix>/ext_humidity/0 topicokon publikálnak. A jelenlegi MQTT sablon ezeket a topicokat nem köti be a TapHome eszközökbe; egy jövőbeli sablonfrissítésben pótolhatók.

Hasonlóan az eszköz online/offline LWT topicot és rövid/hosszú gombnyomás bemeneti eseményeket (input events) is közzétesz az input_event/{0,1} címen, amelyeket ez a sablon nem használ fel.

Gombeseményeken alapuló szenária-triggerekhez (rövid, hosszú nyomás) az input_event topicra ma egy külön MQTT kliensből lehet feliratkozni — a TapHome sablon csak a nyers bemeneti állapotot követi.

Hibaelhárítás

Az eszköz nem válaszol
  1. Ellenőrizd, hogy a Shelly UNI kap tápellátást (piros/fekete 12–36 V DC-re vagy 12–24 V AC-re) és csatlakozik a Wi-Fi-hez
  2. Nyisd meg a Shelly webes felületét az mDNS hostname-en shellyuni-<Shelly-ID>.local vagy a DHCP IP-n
  3. Ellenőrizd, hogy az MQTT engedélyezve van (Internet & SecurityAdvanced) és a bróker IP/port megegyezik a TapHome import paramétereivel
  4. Használj MQTT klienst (pl. MQTT Explorer) a shellies/# feliratkozáshoz, és ellenőrizd, hogy az eszköz publikál-e üzeneteket
A kapcsolók nem váltanak
  1. Ellenőrizd a parancs topic útvonalát — shellies/<prefix>/relay/0/command kell legyen (nem .../relay/0/set)
  2. Győződj meg róla, hogy a TapHome modul MQTTprefix változója megegyezik azzal a topic prefixszel, amelyen az eszköz ténylegesen publikál
  3. Ne feledd: a kimenetek potenciálmentesek — feszültséget biztosító külső áramkör nélkül a kimenet állapota változik, de semmilyen fogyasztó nem kapcsolódik
A reed kontaktus állapota fordított

A sablon azt feltételezi, hogy payload=0 jelentése „zárt kontaktus". Ha a külső bekötés aktív állapotban HIGH-ra húzza a bemenetet (fordított bekötés), az állapot a TapHome-ban fordítottan jelenik meg. Kösd át úgy, hogy aktív állapotban a kontaktus IN_1 / IN_2-t GND-re rövidzárolja, vagy módosítsd a logikát egyedi szkriptben.

Az ADC érték a várt tartományon kívül

Az ADC tartomány (0–12 V vagy 0–30 V) az eszközön van beállítva, és MQTT-n keresztül nem olvasható vissza. Ha a TapHome-ban a számérték hibásnak tűnik (pl. 2×-szor magasabb vagy alacsonyabb a vártnál), nyisd meg a Shelly webes felületét és ellenőrizd a SettingsADC range beállítást. A sablon azt feltételezi, hogy az eszköz közvetlenül a feszültséget publikálja, és nem végez átalakítást.

Telepítés a TapHome-ban

Előfeltételek

  • Shelly eszköz csatlakoztatva a Wi-Fi-hez (ha még nem, lásd a HTTP kapcsolódási útmutatót)
  • MQTT broker fut a helyi hálózaton (pl. Mosquitto, Home Assistant vagy a TapHome beépített brokere)
  • TapHome CCU ugyanazon a hálózaton, mint a broker

A Gen1 eszközökön az MQTT engedélyezése letiltja a Shelly Cloudot. A kettő nem futhat egyszerre. A Gen2/Plus eszközökön ez a korlátozás nem érvényes.

1. lépés — MQTT engedélyezése a Shelly eszközön

Gen1 eszközök (Shelly 1, 1PM, 2.5, EM, 3EM, Plug S, RGBW2, Dimmer, TRV…)

  1. Nyissa meg a Shelly webes felületet: http://<device-ip>/
  2. Navigáljon az Internet & SecurityAdvanced — MQTT menüpontra
  3. Engedélyezze az MQTT-t
  4. Állítsa be az MQTT Server-t: <broker-ip>:<port> (pl. 192.168.1.10:1883)
  5. Opcionálisan állítsa be az MQTT User és MQTT Password mezőket, ha a broker hitelesítést igényel
  6. Kattintson a Save gombra — az eszköz újraindul és csatlakozik a brokerhez

Gen2 / Plus eszközök (Shelly Plus 1, Plus 1PM, Plus 2PM, Plus Plug S, Plus H&T, Pro 3EM…)

  1. Nyissa meg a Shelly webes felületet: http://<device-ip>/
  2. Navigáljon a SettingsMQTT menüpontra
  3. Engedélyezze az MQTT-t
  4. Állítsa be a Server-t: <broker-ip>:<port> (pl. 192.168.1.10:1883)
  5. A Client ID előre ki van töltve az eszköz azonosítójával (pl. shellyplus1pm-AABBCCDDEE) — hagyja így, hacsak nincs konkrét oka a változtatásra
  6. Kattintson a Save gombra és indítsa újra az eszközt

Az MQTT működésének ellenőrzéséhez használjon egy MQTT klienst (pl. MQTT Explorer), és iratkozzon fel a shellies/# (Gen1) vagy <device-id>/# (Gen2) topikra. Látnia kell az eszköz állapotüzeneteit.

2. lépés — Device ID / MQTT Client ID megkeresése

Egyes sablonok Device ID vagy MQTT Client ID paramétert igényelnek. Ez az egyedi azonosító, amelyet az MQTT topikokban használnak.

  • Gen1: a címkén MAC-címként található (pl. AABBCCDDEE). Device ID = shelly<model>-<mac>, pl. shelly1pm-AABBCCDDEE
  • Gen2/Plus: a Shelly webes felületén a SettingsDevice InfoDevice ID alatt található, vagy az eszköz címkéjén

3. lépés — Konfigurálás a TapHome-ban

  1. A TapHome-ban adjon hozzá egy új Packet Parser (MQTT) modult
  2. IP Address: adja meg az MQTT broker IP-címét (pl. 192.168.1.10)
  3. Port: 1883 (alapértelmezett; TLS esetén használjon 8883-at)
  4. Device ID / MQTT Client ID: adja meg a 2. lépésben kapott értéket (ha a sablon megköveteli)
  5. Importálja a sablont — a TapHome automatikusan feliratkozik az eszköz topikjaira

Elérhető eszközök

Shelly UNI Modul
Egyéni változók
MQTTprefix (string) = shellyuni-$[DeviceID]A Shelly UNI MQTT téma prefixe — alapértelmezetten shellyuni-{DeviceID}, az összes feliratkozott/közzétett téma alapjaként szolgál
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óg bemenet Változó Csak olvasható

ADC feszültségmérés — kettős tartomány 0–12 V vagy 0–30 V, az eszközön választható

numeric Egység: V

Analóg bemenet

Figyelő
if RECEIVEDMSG.TOPIC = "shellies/" + MQTTprefix + "/adc/0"
    Va := TODOUBLE(TOSTRING(RECEIVEDMSG.PAYLOAD));
end
Kapcsoló 1 Kapcsoló

Potenciálmentes nyitott kollektoros kimenet OUT_1 — max. 100 mA / 300 mW, 24 V AC vagy 36 V DC

string
Értékek / Állapotok: ON · OFF

Kapcsoló 1

Kapcsoló állapot írása
MQTTPUBLISH("shellies/" + MQTTprefix + "/relay/0/command", if(St, "on", "off"))
Figyelő
if RECEIVEDMSG.TOPIC = "shellies/" + MQTTprefix + "/relay/0"
    VAR payload := TOSTRING(RECEIVEDMSG.PAYLOAD);

    if(payload = "on", St := 1, St := 0);
end
Kapcsoló 2 Kapcsoló

Potenciálmentes nyitott kollektoros kimenet OUT_2 — max. 100 mA / 300 mW, 24 V AC vagy 36 V DC

string
Értékek / Állapotok: ON · OFF

Kapcsoló 2

Kapcsoló állapot írása
MQTTPUBLISH("shellies/" + MQTTprefix + "/relay/1/command", if(St, "on", "off"))
Figyelő
if RECEIVEDMSG.TOPIC = "shellies/" + MQTTprefix + "/relay/1"
    VAR payload := TOSTRING(RECEIVEDMSG.PAYLOAD);

    if(payload = "on", St := 1, St := 0);
end
Reed kontaktus 1 Reed kontaktus Csak olvasható

IN_1 digitális bemenet — fordított logika, GND-re zárt kontaktus = aktív (1) a TapHome-ban

string

Reed kontaktus 1

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

    Rc := if(payload = "0", 1, 0);
end
Reed kontaktus 2 Reed kontaktus Csak olvasható

IN_2 digitális bemenet — fordított logika, GND-re zárt kontaktus = aktív (1) a TapHome-ban

string

Reed kontaktus 2

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

    Rc := if(payload = "0", 1, 0);
end
Kapcsolat: Packet Parser → MQTT
Lehetséges fejlesztések (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.

Források