TapHome

Shelly UNI

Packet Parser → MQTT
Trimis de
Ultima actualizare: 10. 2026

Acest dispozitiv acceptă mDNS

În loc să folosiți o adresă IP, puteți accesa dispozitivul la:

shellyuni-{shelly-id}.local

Înlocuiți {MAC} cu adresa MAC a dispozitivului dvs. (majuscule, fără două puncte).

TapHome acceptă mDNS — folosirea unui nume de gazdă este mai fiabilă decât un IP static.

Shelly UNI

Shelly UNI este un modul I/O universal Wi-Fi compact (20 × 33 × 13 mm) de pe platforma Shelly Gen1. Oferă o intrare de tensiune ADC, două ieșiri fără potențial cu colector deschis și două intrări digitale — este conceput pentru modernizarea aparatelor mai vechi fără hub.

TapHome comunică cu dispozitivul prin MQTT. Șablonul se abonează la arborele de topicuri shellies/<prefix>/... și publică comenzile în .../relay/{0,1}/command. Modulul oferă 5 dispozitive: 1 intrare analogică, 2 întrerupătoare și 2 contacte reed.

Conectarea hardware

Alimentarea

Shelly UNI este un modul de joasă tensiune și nu poate fi alimentat direct de la rețeaua de 230 V. Alimentați-l fie:

  • cu 12–36 V DC prin firul roșu (+) și cel negru (GND), fie
  • cu 12–24 V AC prin firul roșu și cel negru (fără polaritate)

Este necesar un adaptor extern de alimentare de joasă tensiune. Consumul dispozitivului este sub 1 W.

Nu conectați firele roșu/negru la tensiunea rețelei. În funcție de circuitul extern, pe bornele IN_1 / IN_2 / OUT1 / OUT2 poate fi totuși prezentă o tensiune periculoasă — instalarea trebuie efectuată de un electrician calificat.

Legenda firelor cablului de conectare

Dispozitivul se livrează cu un cablu de conectare cu fire codificate prin culori:

FirBornăFuncție
RoșuVCC12–36 V DC (sau 12–24 V AC împreună cu firul negru)
NegruGNDMasă (sau faza AC împreună cu firul roșu)
AlbADC_INIntrare analogică (interval 0–12 V sau 0–30 V)
GalbenVCC_SENSORIeșire 3,3 V DC pentru senzori one-wire
AlbastruDATA_SENSORDate one-wire (DS18B20 / DHT22)
VerdeGND_SENSORMasa senzorului
Maro deschisIN_1Intrare digitală 1
Maro închisIN_2Intrare digitală 2

Cele două ieșiri fără potențial sunt marcate pe carcasa modulului cu OUT1 și OUT2.

Intrări digitale (IN_1, IN_2)

Fiecare intrare digitală este fără potențial și poate fi comandată fie de o sursă DC, fie de una AC:

  • DC: HIGH la ≥ 2,2 V, LOW sub 2,2 V, max. 36 V DC
  • AC: HIGH la ≥ 12 V, LOW sub 12 V, max. 24 V AC

Utilizările tipice sunt contactele reed (senzori pentru ferestre/uși, întrerupătoare cu plutitor) și butoanele care leagă intrarea la GND printr-o sursă externă.

Conectarea contactului reed la Shelly UNI cu alimentare DC
Conectarea contactului reed la Shelly UNI cu alimentare AC
Conectarea butonului/întrerupătorului la Shelly UNI cu alimentare DC
Conectarea butonului/întrerupătorului la Shelly UNI cu alimentare AC
Ieșiri fără potențial (OUT1, OUT2)

Fiecare ieșire este un contact fără potențial cu colector deschis, cu următoarele limite absolute:

  • 100 mA curent maxim
  • 300 mW putere maximă
  • 24 V AC sau 36 V DC tensiune comutată maximă

Aceste valori sunt prea mici pentru sarcini alimentate de la rețea — pentru a comuta sarcini reale (lumini, pompe, robinete) conectați ieșirile la un releu sau contactor extern și alimentați bobina acestuia dintr-o sursă de joasă tensiune potrivită.

Schema de conectare a ieșirii fără potențial a Shelly UNI
Intrare analogică (ADC)

Un singur canal ADC pe firul alb (ADC_IN) acceptă două intervale de tensiune, selectabile în interfața web Shelly:

  • 0–12 V — rezoluție mai mare pentru semnalele de joasă tensiune
  • 0–30 V — interval mai larg pentru monitorizarea bateriilor / a circuitului intermediar DC

Intervalul selectat este stocat doar în dispozitiv — șablonul TapHome citește valoarea brută publicată și nu poate detecta care interval este activ. Asigurați-vă că intervalul ADC setat în Shelly corespunde semnalului conectat la firul alb.

Schema de conectare a intrării ADC a Shelly UNI

Configurare

ID-ul dispozitivului și prefixul MQTT

Fiecare Shelly UNI are un Shelly-ID unic, egal cu ultimele 6 caractere ale adresei MAC (de ex. 35FA58). Prefixul de topic MQTT rezultat este shellyuni-<Shelly-ID> (de ex. shellyuni-35fa58).

Shelly-ID se găsește:

  • Pe eticheta dispozitivului (adresa MAC)
  • În interfața web Shelly: Settings → Device Info
  • Prin API: GET http://<device-ip>/settings → câmpul device.hostname

Dispozitivele Shelly Gen1 se anunță prin mDNS ca shellyuni-<Shelly-ID>.local. Puteți folosi acest nume de gazdă în locul unei adrese IP fixe pentru a accesa interfața web.

Activarea MQTT

Pe un dispozitiv nou, MQTT este dezactivat. Activați-l înainte de importul șablonului TapHome:

  1. Conectați-vă la punctul de acces al dispozitivului shellyuni-XXXXXX (parola este tipărită pe dispozitiv) sau accesați-l în rețeaua LAN
  2. Deschideți interfața web la http://192.168.33.1/ (modul AP) sau la adresa IP din LAN
  3. Mergeți la Internet & Security → Advanced — Developer Settings
  4. Bifați Enable action execution via MQTT
  5. Setați adresa IP și portul brokerului (implicit 1883), lăsați goale numele de utilizator și parola — TapHome nu acceptă autentificarea MQTT la Gen1
  6. Salvați și reporniți dispozitivul

Activarea MQTT dezactivează conexiunea Shelly Cloud la dispozitivele Gen1. Este un comportament intenționat — dispozitivul nu poate menține ambele conexiuni simultan. Aplicația mobilă Shelly nu va mai controla dispozitivul prin cloud; folosiți în schimb MQTT sau interfața web locală.

Dispozitivele Shelly Gen1 nu acceptă MQTT prin TLS. Comunicația dintre dispozitiv și broker nu este criptată (MQTT simplu, portul 1883). Păstrați brokerul într-o rețea locală de încredere.

Configurarea șablonului

La importul șablonului în TapHome, introduceți:

  • IpAddress — adresa IP a brokerului MQTT
  • Port — portul brokerului (implicit 1883)
  • DeviceID — Shelly-ID din 6 caractere al unității UNI respective (de ex. 35fa58)

Parametrul de import DeviceID se folosește pentru a construi variabila personalizată MQTTprefix (implicit shellyuni-$[DeviceID]). Dacă ați setat pe dispozitivul Shelly un mqtt_id personalizat (care înlocuiește valoarea implicită), după import modificați variabila MQTTprefix pe modul, astfel încât să corespundă acestui mqtt_id.

Dezactivați autentificarea HTTP pe dispozitivul Shelly (Internet & Security → Restrict Login). TapHome nu folosește HTTP în acest șablon, dar autentificarea lăsată activă poate complica depanarea și actualizările de firmware.

Funcțiile dispozitivului

Măsurarea tensiunii analogice

Dispozitivul Intrare analogică citește tensiunea ADC din shellies/<prefix>/adc/0 și o oferă ca valoare numerică în volți. Scriptul analizează mesajul primit cu TODOUBLE(TOSTRING(PAYLOAD)) — nu se aplică nicio scalare.

Intervalul de măsurare efectiv (0–12 V sau 0–30 V) se configurează direct pe dispozitivul Shelly și nu este raportat prin MQTT. Șablonul TapHome nu poate verifica ce interval este activ.

Ieșiri de comutare

Ambele ieșiri cu colector deschis sunt disponibile ca dispozitive standard TapHome de tip Întrerupător:

  • Întrerupător 1 — OUT_1, topicul shellies/<prefix>/relay/0, topicul de comandă .../relay/0/command
  • Întrerupător 2 — OUT_2, topicul shellies/<prefix>/relay/1, topicul de comandă .../relay/1/command

Scriptul de ascultare transformă mesajul on → PORNIT (St=1) și off → OPRIT (St=0). Comenzile din TapHome se publică sub forma on / off în topicul de comandă corespunzător.

Ieșirile sunt fără potențial și limitate la 100 mA / 300 mW. Nu conectați direct sarcini alimentate de la rețea — pentru orice sarcină mai mare decât dispozitivele de semnalizare de mică putere folosiți un releu sau un contactor extern.

Intrări digitale (contacte reed)

Ambele intrări digitale sunt disponibile ca dispozitive Contact reed cu logică inversată:

  • Contact reed 1 — IN_1, topicul shellies/<prefix>/input/0
  • Contact reed 2 — IN_2, topicul shellies/<prefix>/input/1

Firmware-ul Shelly publică 1 când intrarea detectează o tensiune peste prag și 0 când intrarea este legată la GND. Deoarece contactele reed și butoanele leagă de obicei intrarea la GND în starea închisă / activă, scriptul TapHome inversează valoarea mesajului:

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

Aceasta înseamnă că Rc=1 în TapHome = contact închis (activ, senzorul de fereastră deschisă declanșat, buton apăsat), iar Rc=0 = contact deschis (inactiv).

Funcții suplimentare

Hardware-ul Shelly UNI acceptă și până la 3 senzori de temperatură DS18B20 pe magistrala one-wire și — ca alternativă — un senzor de umiditate/temperatură DHT22. Acești senzori publică în shellies/<prefix>/ext_temperature/{0,1,2} și shellies/<prefix>/ext_humidity/0. Șablonul MQTT actual nu conectează aceste topicuri la dispozitive TapHome; ele pot fi adăugate într-o actualizare viitoare a șablonului.

La fel, dispozitivul oferă un topic LWT online/offline și evenimente de intrare pentru apăsare scurtă/lungă în input_event/{0,1}, pe care acest șablon nu le folosește.

Pentru declanșarea scenelor pe baza evenimentelor butonului (apăsare scurtă, apăsare lungă), topicul input_event poate fi deja urmărit dintr-un client MQTT separat — șablonul TapHome urmărește doar starea brută a intrării.

Depanare

Dispozitivul nu răspunde
  1. Verificați dacă Shelly UNI este alimentat (firele roșu/negru la 12–36 V DC sau 12–24 V AC) și conectat la Wi-Fi
  2. Deschideți interfața web Shelly prin numele de gazdă mDNS shellyuni-<Shelly-ID>.local sau prin adresa IP alocată de DHCP
  3. Verificați dacă MQTT este activat (Internet & Security → Advanced — Developer Settings) și dacă adresa IP/portul brokerului corespund parametrilor de import din TapHome
  4. Folosiți un client MQTT (de ex. MQTT Explorer), abonați-vă la shellies/# și verificați dacă dispozitivul publică mesaje
Întrerupătoarele nu comută
  1. Verificați calea topicului de comandă — trebuie să fie shellies/<prefix>/relay/0/command (nu .../relay/0/set)
  2. Verificați dacă variabila MQTTprefix a modulului TapHome corespunde prefixului de topic în care publică efectiv dispozitivul
  3. Nu uitați că ieșirile sunt fără potențial — fără un circuit extern care furnizează tensiunea, starea ieșirii se schimbă, dar nicio sarcină nu este comutată
Starea contactului reed este inversată

Șablonul consideră că payload=0 înseamnă „contact închis”. Dacă cablajul extern aduce intrarea în HIGH când contactul este activ (conectare inversă), starea va apărea inversată în TapHome. Refaceți conexiunile astfel încât contactul să lege IN_1 / IN_2 la GND când este activ sau modificați logica într-un script personalizat.

Valoarea ADC este în afara intervalului așteptat

Intervalul ADC (0–12 V sau 0–30 V) se setează pe dispozitiv și nu poate fi citit prin MQTT. Dacă valoarea numerică din TapHome pare greșită (de ex. de 2× mai mare sau mai mică decât se aștepta), deschideți interfața web Shelly și verificați Settings → ADC range. Șablonul presupune că dispozitivul publică direct tensiunea și nu face nicio conversie.

Cum se instalează în TapHome

Cerințe preliminare

  • Dispozitiv Shelly conectat la Wi-Fi (2,4 GHz), de ex. prin aplicația Shelly sau prin punctul de acces propriu al dispozitivului
  • Broker MQTT care rulează în rețeaua dvs. locală (de ex. Mosquitto, Home Assistant sau brokerul integrat TapHome)
  • TapHome CCU în aceeași rețea cu brokerul

La dispozitivele Gen1, activarea MQTT dezactivează Shelly Cloud. Cele două nu pot funcționa simultan. La dispozitivele Gen2/Plus această limitare nu se aplică.

Pasul 1 — Activați MQTT pe dispozitivul Shelly

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

  1. Deschideți interfața web Shelly: http://<device-ip>/
  2. Accesați Internet & Security → Advanced — MQTT
  3. Activați MQTT
  4. Setați MQTT Server: <broker-ip>:<port> (de ex. 192.168.1.10:1883)
  5. Opțional, setați MQTT User și MQTT Password, dacă brokerul dvs. necesită autentificare
  6. Faceți clic pe Save — dispozitivul repornește și se conectează la broker

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

  1. Deschideți interfața web Shelly: http://<device-ip>/
  2. Accesați Settings → MQTT
  3. Activați MQTT
  4. Setați Server: <broker-ip>:<port> (de ex. 192.168.1.10:1883)
  5. Câmpul Client ID este precompletat cu ID-ul dispozitivului (de ex. shellyplus1pm-AABBCCDDEE) — lăsați-l neschimbat, dacă nu aveți un motiv anume să îl modificați
  6. Faceți clic pe Save și reporniți dispozitivul

Pentru a verifica funcționarea MQTT, folosiți un client MQTT (de ex. MQTT Explorer) și abonați-vă la shellies/# (Gen1) sau <device-id>/# (Gen2). Ar trebui să vedeți mesajele de stare trimise de dispozitiv.

Pasul 2 — Aflați Device ID / MQTT Client ID

Unele șabloane necesită parametrul Device ID sau MQTT Client ID. Acesta este identificatorul unic folosit în topicurile MQTT.

  • Gen1: se găsește pe etichetă, ca adresă MAC (de ex. AABBCCDDEE). Device ID = shelly<model>-<mac>, de ex. shelly1pm-AABBCCDDEE
  • Gen2/Plus: se găsește în interfața web Shelly, la Settings → Device Info → Device ID, sau pe eticheta dispozitivului

Pasul 3 — Configurați dispozitivul în TapHome

  1. În TapHome adăugați un nou modul Packet Parser (MQTT)
  2. IP Address: introduceți adresa IP a brokerului MQTT (de ex. 192.168.1.10)
  3. Port: 1883 (implicit; pentru TLS folosiți 8883)
  4. Device ID / MQTT Client ID: introduceți valoarea de la pasul 2 (dacă șablonul o necesită)
  5. Importați șablonul — TapHome se abonează automat la topicurile dispozitivului

Dispozitive disponibile

Shelly UNI Modul
Variabile personalizate
MQTTprefix (string) = shellyuni-$[DeviceID]Prefixul de topic MQTT al dispozitivului Shelly UNI — implicit shellyuni-{DeviceID}; servește drept bază pentru toate topicurile folosite pentru abonare și publicare
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.
Intrare analogică Variabilă Doar citire

Măsurarea tensiunii ADC — interval 0–12 V sau 0–30 V, selectat pe dispozitiv

numeric Unitate: V

Intrare analogică

Ascultător
if RECEIVEDMSG.TOPIC = "shellies/" + MQTTprefix + "/adc/0"
    Va := TODOUBLE(TOSTRING(RECEIVEDMSG.PAYLOAD));
end
Întrerupător 1 Comutator

Ieșire fără potențial cu colector deschis OUT_1 — max. 100 mA / 300 mW, 24 V AC sau 36 V DC

string
Valori / Stări: ON · OFF

Întrerupător 1

Scrierea stării comutatorului
MQTTPUBLISH("shellies/" + MQTTprefix + "/relay/0/command", if(St, "on", "off"))
Ascultător
if RECEIVEDMSG.TOPIC = "shellies/" + MQTTprefix + "/relay/0"
    VAR payload := TOSTRING(RECEIVEDMSG.PAYLOAD);

    if(payload = "on", St := 1, St := 0);
end
Întrerupător 2 Comutator

Ieșire fără potențial cu colector deschis OUT_2 — max. 100 mA / 300 mW, 24 V AC sau 36 V DC

string
Valori / Stări: ON · OFF

Întrerupător 2

Scrierea stării comutatorului
MQTTPUBLISH("shellies/" + MQTTprefix + "/relay/1/command", if(St, "on", "off"))
Ascultător
if RECEIVEDMSG.TOPIC = "shellies/" + MQTTprefix + "/relay/1"
    VAR payload := TOSTRING(RECEIVEDMSG.PAYLOAD);

    if(payload = "on", St := 1, St := 0);
end
Contact reed 1 Contact reed Doar citire

Intrare digitală IN_1 — logică inversată, contact legat la GND = activ (1) în TapHome

string

Contact reed 1

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

    Rc := if(payload = "0", 1, 0);
end
Contact reed 2 Contact reed Doar citire

Intrare digitală IN_2 — logică inversată, contact legat la GND = activ (1) în TapHome

string

Contact reed 2

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

    Rc := if(payload = "0", 1, 0);
end
Conexiune: Packet Parser → MQTT • Nume gazdă: shellyuni-{shelly-id}.local
Îmbunătățiri posibile (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.

Surse

Ați găsit o problemă la acest șablon de dispozitiv?

Spuneți-ne ce nu funcționează, ce lipsește sau cum ar trebui să se comporte șablonul. Feedbackul dvs. ne ajută să păstrăm catalogul corect.

Verificat de TapHome

Doriți să folosiți acest șablon în TapHome Core?

Deschideți acest șablon în Customer Portal pentru a-l aplica într-una dintre locuințele dvs. sau pentru a propune o îmbunătățire și a o trimite înapoi în catalog.

Deschideți în portal