TapHome

Shelly Plus 1PM

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

Acest dispozitiv acceptă mDNS

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

shellyplus1pm-{MAC}.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 Plus 1PM

Shelly Plus 1PM este un releu Wi-Fi compact Gen2+ cu măsurarea integrată a puterii. Se montează în spatele unui întrerupător de perete standard și poate comanda un circuit de până la 16 A (3500 W la 230 V AC) sau 10 A (30 V DC). Aceasta este varianta MQTT a șablonului TapHome — dispozitivul comunică printr-un broker MQTT în locul interogării directe prin HTTP, ceea ce este util în medii cu mai multe controlere sau când dispozitivul se află într-un alt VLAN.

Șablonul oferă două dispozitive: un contor electric pentru monitorizarea puterii și a energiei și un întrerupător pentru comanda releului. Trei atribute de service la nivel de modul raportează temperatura internă, tensiunea și curentul.

Configurare

Client ID-ul MQTT

Fiecare Shelly Plus 1PM are un Client ID MQTT unic în formatul shellyplus1pm-<DEVICEID>, unde <DEVICEID> este adresa MAC de 12 caractere în hexazecimal (de ex. shellyplus1pm-AABBCCDDEE00).

Client ID-ul se găsește:

  • În interfața web Shelly: Settings → MQTT → Client ID
  • Prin API: GET http://<device-ip>/rpc/MQTT.GetConfig → câmpul client_id
  • Pe eticheta dispozitivului (adresa MAC)

Acest dispozitiv acceptă descoperirea mDNS. La verificarea conectivității puteți folosi numele de gazdă shellyplus1pm-{MAC}.local în locul adresei IP. Înlocuiți {MAC} cu adresa MAC completă a dispozitivului, în hexazecimal cu litere mici (de ex. shellyplus1pm-aabbccddee00.local).

Activarea MQTT
  1. Deschideți interfața web Shelly: http://<device-ip>/
  2. Mergeți la Settings → MQTT
  3. Activați MQTT
  4. Setați Server: <broker-ip>:<port> (de ex. 192.168.1.10:1883)
  5. Client ID este completat automat — 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 shellyplus1pm-<DEVICEID>/#. Ar trebui să vedeți mesajele de stare ale dispozitivului, inclusiv shellyplus1pm-<DEVICEID>/status/switch:0.

Configurarea șablonului

După importul șablonului în TapHome:

  1. Deschideți Modul Shelly Plus 1PM MQTT
  2. Setați MQTT Broker IP și Port (implicit 1883)
  3. Setați variabila personalizată plug1topic la Client ID-ul MQTT al Shelly Plus 1PM (de ex. shellyplus1pm-AABBCCDDEE00)

Modulul se abonează la {plug1topic}/status/switch:0 și publică comenzile de control pe {plug1topic}/command/switch:0.

Funcțiile dispozitivului

Măsurarea puterii

Contorul electric citește două valori din mesajul de stare MQTT {plug1topic}/status/switch:0:

  • Putere instantanee — apower, raportată în wați și convertită de șablon în kW (împărțire la 1000)
  • Energie cumulată — aenergy.total, raportată în wați-oră și convertită de șablon în kWh (împărțire la 1000)

Contorul este doar pentru citire — se actualizează automat ori de câte ori dispozitivul publică un mesaj de stare către brokerul MQTT.

Comanda releului

Întrerupătorul comandă releul:

  • Citirea stării — se abonează la {plug1topic}/status/switch:0 și citește câmpul boolean output
  • Scrierea stării — publică on sau off pe {plug1topic}/command/switch:0

Releul suportă până la 3500 W / 16 A la 230 V AC.

Diagnosticare

Trei atribute de service la nivel de modul sunt preluate din același mesaj JSON status/switch:0:

AtributUnitateDescriere
Temperatură internă°CTemperatura internă a dispozitivului — monitorizează starea termică a releului și a plăcii electronice
TensiuneVTensiunea de alimentare AC la intrarea releului
CurentACurentul sarcinii prin ieșirea releului

Toate cele trei atribute afișează „Necunoscut” până la sosirea primului mesaj de stare MQTT (valoarea inițială este NaN).

Funcții suplimentare

Prin API-ul MQTT, Shelly Plus 1PM furnizează și factorul de putere, frecvența rețelei, energia returnată (pentru contorizare bidirecțională), starea intrării fizice, comanda de comutare (toggle), temporizatorul de oprire automată și o acțiune de actualizare forțată a stării. Aceste funcții pot fi adăugate într-o actualizare viitoare a șablonului.

Rezolvarea problemelor

Mesajele MQTT nu ajung
  1. Verificați dacă MQTT este activat în interfața web Shelly (Settings → MQTT)
  2. Verificați dacă adresa și portul brokerului sunt corecte atât pe dispozitivul Shelly, cât și în setările modulului TapHome
  3. Verificați dacă variabila personalizată plug1topic corespunde exact Client ID-ului MQTT al dispozitivului Shelly (de ex. shellyplus1pm-AABBCCDDEE00)
  4. Folosiți un client MQTT (de ex. MQTT Explorer) pentru a vă abona la shellyplus1pm-# și verificați dacă dispozitivul publică mesaje
Puterea afișată este zero
  1. Verificați dacă sarcina este conectată prin releul Shelly (nu ocolește releul)
  2. Verificați dacă releul este pornit — contorul măsoară doar atunci când curentul trece prin releu
  3. Abonați-vă la {plug1topic}/status/switch:0 cu un client MQTT și verificați dacă apower returnează o valoare diferită de zero
Releul nu răspunde la comenzi
  1. Verificați dacă TapHome poate accesa brokerul MQTT (adresa IP și portul corecte în setările modulului)
  2. Verificați dacă valoarea plug1topic corespunde Client ID-ului MQTT al dispozitivului
  3. Testați publicând on pe {plug1topic}/command/switch:0 cu un client MQTT — releul ar trebui să pornească
Diagnosticarea afișează „Necunoscut”
  1. Toate cele trei atribute de service (temperatură, tensiune, curent) afișează „Necunoscut” până la sosirea primului mesaj de stare
  2. Dacă valorile rămân „Necunoscut” și după ce dispozitivul funcționează de ceva timp, verificați dacă conexiunea MQTT este activă și dacă mesajele de stare sunt publicate
  3. Reporniți dispozitivul Shelly pentru a forța publicarea unei stări noi

Dispozitivele Shelly Gen2+ acceptă MQTT cu TLS opțional. Dacă TLS nu este configurat, comunicația dintre dispozitiv și brokerul MQTT nu este criptată (MQTT simplu, portul 1883). Pentru o comunicație criptată, activați TLS în setările MQTT ale dispozitivului Shelly și folosiți portul 8883.

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

Modul Shelly Plus 1PM MQTT Modul
Atribute de service
Temperatură internăTemperatura internă a dispozitivului — monitorizează starea termică a releului și a plăcii electronice
TensiuneTensiunea de alimentare AC la intrarea releului
CurentCurentul sarcinii prin ieșirea releului
Variabile personalizate
plug1topic (string)Client ID-ul MQTT al Shelly Plus 1PM — formatul este 'shellyplus1pm-<deviceid>'. Se găsește în interfața web a dispozitivului: Settings → MQTT Settings → Client ID

Shelly Plus 1PM MQTT Module

Ascultător
IF(INDEXOF(plug1topic, "shellyplus1pm-deviceid") = 0)
    ADDERROR("Set correct 'plug1topic' value in module variables. Topic format is 'shellyplus1pm-<deviceid>'. The Device ID can be found by opening url 'http://shellyIpAddress', in Settings -> MQTT Settings -> Client ID.");
    RETURN(-1);
END

IF(RECEIVEDMSG.TOPIC = plug1topic + "/status/switch:0")
    internalTemp := PARSEJSON(RECEIVEDMSG.PAYLOAD, "temperature.tC");
    voltage := PARSEJSON(RECEIVEDMSG.PAYLOAD, "voltage");
    current := PARSEJSON(RECEIVEDMSG.PAYLOAD, "current");
    VAR errors := PARSEJSON(RECEIVEDMSG.PAYLOAD, "errors", TRUE);
    
    IF (!ISNULL(errors))
        VAR errCount := LENGTH(errors);
        VAR i := 0;
        VAR errorText := "";
        
        WHILE i < errCount
            IF LENGTH(errorText)
                errorText += ", ";
            END
            errorText := errorText + GETAT(errors, i);
            i += 1;
        LOOP
        
        IF LENGTH(errorText)
            ADDERROR(errorText);
        END
    END
END
Atribute de service
Internal temperature
IF(ISNAN(internalTemp), "Unknown", internalTemp + "°C");
Voltage
IF(ISNAN(voltage), "Unknown", voltage + "V");
Current
IF(ISNAN(current), "Unknown", current + "A");
Contor electric Contor electric Doar citire

Putere instantanee (kW) și energie cumulată (kWh) din mesajul de stare MQTT

numeric Unitate: kW / kWh

Contor electric

Ascultător
IF(INDEXOF(plug1topic, "shellyplus1pm-deviceid") = 0)
    ADDERROR("Set correct 'plug1topic' value in module variables. Topic format is 'shellyplus1pm-<deviceid>'. The Device ID can be found by opening url 'http://shellyIpAddress', in Settings -> MQTT Settings -> Client ID.");
    RETURN(-1);
END

IF(RECEIVEDMSG.TOPIC = plug1topic + "/status/switch:0")
    Ed := PARSEJSON(RECEIVEDMSG.PAYLOAD, "apower") / 1000.0;
    To := PARSEJSON(RECEIVEDMSG.PAYLOAD, "aenergy.total") / 1000.0;
END
Întrerupător Comutator

Comanda releului (pornit/oprit) prin topicul de comandă MQTT

boolean
Valori / Stări: ON · OFF

Întrerupător

Scrierea stării comutatorului
VAR value := IF(St = 1, "on", "off");
MQTTPUBLISH(plug1topic + "/command/switch:0", value);
Ascultător
IF(INDEXOF(plug1topic, "shellyplus1pm-deviceid") = 0)
    ADDERROR("Set correct 'plug1topic' value in module variables. Topic format is 'shellyplus1pm-<deviceid>'. The Device ID can be found by opening url 'http://shellyIpAddress', in Settings -> MQTT Settings -> Client ID.");
    RETURN(-1);
END

IF(RECEIVEDMSG.TOPIC = plug1topic + "/status/switch:0")
    St := PARSEJSON(RECEIVEDMSG.PAYLOAD, "output");
END
Conexiune: Packet Parser → MQTT • Nume gazdă: shellyplus1pm-{MAC}.local
Îmbunătățiri posibile (8)
  • Power Factor — Power factor value, available in switch:0 status JSON for metered devices
  • Network Frequency — AC network frequency in Hz, available in switch:0 status JSON
  • Returned Energy — Returned/exported energy in Wh, for bi-directional metering scenarios
  • Connection Status — LWT topic — true on connect, false on disconnect. Could detect offline device.
  • Toggle Command — Toggle relay state; template only supports on/off
  • Auto-off Timer — Turn ON with auto-off timer in seconds via 'on,N' command
  • Input State — Physical switch/button input state, available via Input.GetStatus RPC method over MQTT
  • Force Status Update — Request device to publish current status on all component topics

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