TapHome

SmartThings Switch/Plug with Power Metering

Packet Parser → HTTP
Trimis de
Ultima actualizare: 03. 2026
SmartThings Switch/Plug with Power Metering

Acest șablon integrează în TapHome orice întrerupător sau priză compatibilă cu SmartThings, cu măsurarea consumului. Comunicația se realizează prin SmartThings Cloud REST API v1 (api.smartthings.com), folosind HTTPS — șablonul nu comunică direct cu dispozitivul fizic. Dispozitivul poate fi ZigBee, Z-Wave sau Matter — atât timp cât este conectat la un cont SmartThings și oferă capabilitățile switch, powerMeter și energyMeter, șablonul va funcționa.

Șablonul a fost creat de Csongor Varga și testat cu o priză ZigBee BlitzWolf BW-SHP15, dar nu este limitat la acest model.

Configurare

După import, șablonul necesită configurarea a două variabile în TapHome:

  • Token — un SmartThings Personal Access Token (PAT) folosit pentru autentificarea Bearer
  • DeviceId — UUID-ul dispozitivului țintă în platforma SmartThings
Generarea unui Personal Access Token
  1. Accesați account.smartthings.com/tokens și conectați-vă cu un cont Samsung
  2. Faceți clic pe Generate new token și dați-i un nume (de ex. „TapHome Integration”)
  3. Selectați domeniul de permisiuni Devices — este necesar pentru citirea stării și trimiterea comenzilor
  4. Faceți clic pe Generate Token și copiați imediat tokenul — aceasta este singura ocazie de a obține valoarea

Personal Access Token-urile standard (create după 30 decembrie 2024) sunt valabile doar 24 de ore. Tokenul trebuie regenerat și actualizat în TapHome înainte de expirare, altfel integrarea nu va mai funcționa. Tokenurile mai vechi, create înainte de această dată, pot avea o valabilitate mai lungă.

Găsirea Device ID-ului
  1. Conectați-vă la my.smartthings.com
  2. Găsiți dispozitivul țintă în lista de dispozitive
  3. Copiați Device ID din pagina cu detaliile dispozitivului — este un șir UUID (de ex. 47eff6bf-83c9-4374-a367-b254759b486d)
Adăugarea mai multor dispozitive

Fiecare dispozitiv SmartThings necesită propria instanță de modul. Pentru a adăuga un alt dispozitiv, importați din nou șablonul și configurați un nou DeviceId. Același Token poate fi folosit pentru toate modulele.

Funcțiile dispozitivului

Controlul întrerupătorului

Șablonul oferă dispozitivul ca întrerupător. Starea se citește din răspunsul de stare SmartThings (components.main.switch.switch.value — "on" sau "off", transformate în 1/0). Comenzile de comutare se trimit prin POST /v1/devices/{DeviceId}/commands cu capabilitatea switch.

După trimiterea unei comenzi de comutare, șablonul așteaptă 500 ms și citește din nou starea dispozitivului, pentru a evita oscilarea stării între comandă și următorul ciclu de interogare. Întrerupătorul este interogat la fiecare 2,5 secunde.

Măsurarea consumului

Contorul electric integrat citește două valori din răspunsul de stare:

  • Puterea instantanee — components.main.powerMeter.power.value, raportată în wați și convertită de șablon în kW (÷ 1000)
  • Consumul total — components.main.energyMeter.energy.value, raportat direct în kWh

Contorul este doar pentru citire și este interogat la fiecare 15 secunde.

Funcții suplimentare

API-ul SmartThings furnizează și unitățile de măsură pentru putere și energie (ca șiruri de caractere), starea de funcționare a dispozitivului și o capabilitate de reîmprospătare pentru forțarea unei actualizări imediate a stării. Acestea pot fi adăugate într-o actualizare viitoare a șablonului.

Depanare

Integrarea nu mai funcționează după 24 de ore

Tokenurile PAT SmartThings standard expiră după 24 de ore. Generați un token nou la account.smartthings.com/tokens și actualizați variabila Token în modulul TapHome. Dacă reînnoirea frecventă a tokenului nu este practică, verificați dacă în cont este disponibil un token mai vechi, cu valabilitate mai lungă.

Dispozitivul nu răspunde
  1. Verificați dacă dispozitivul SmartThings este online — verificați starea lui în aplicația SmartThings
  2. Verificați dacă variabila DeviceId corespunde UUID-ului corect al dispozitivului
  3. Testați manual API-ul: GET https://api.smartthings.com/v1/devices/{DeviceId}/status cu antetul Authorization: Bearer {Token} — ar trebui să returneze un răspuns JSON cu starea dispozitivului
  4. Asigurați-vă că Tokenul are domeniul de permisiuni corect (Devices — citire și execuție)
Valorile puterii arată zero
  1. Verificați dacă dispozitivul consumă efectiv energie — porniți consumatorul conectat
  2. Verificați dacă dispozitivul SmartThings acceptă capabilitățile powerMeter și energyMeter — nu toate întrerupătoarele raportează puterea
  3. Interogați manual API-ul de stare și verificați dacă components.main.powerMeter.power.value returnează o valoare diferită de zero

Aceasta este o integrare prin cloud — necesită o conexiune activă la internet pe unitatea centrală TapHome (CCU). Șablonul comunică cu serverele Samsung, nu cu dispozitivul fizic din rețeaua locală.

Dispozitive disponibile

SmartThings Switch/Plug Modul
Variabile personalizate
Token (string) = 0ead2552-e331-4355-b483-81d3898eb5baSmartThings Personal Access Token pentru autentificarea la API (se generează pe account.smartthings.com/tokens)
DeviceId (string) = 47eff6bf-83c9-4374-a367-b254759b486dUUID-ul dispozitivului SmartThings — identifică întrerupătorul sau priza țintă

SmartThings Switch/Plug with Power Metering

Citire (modul)
VAR response := SENDHTTPREQUEST("/v1/devices/"+DeviceId+"/status", "GET", "", "Authorization: Bearer "+Token);
IF response.IsSuccess
 StatusJson := response.Content;
ELSE
 ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
END
Contor electric Contor electric Doar citire

Măsurarea puterii consumate și a energiei — puterea instantanee (kW) și energia cumulată (kWh) prin SmartThings Cloud API

numeric Unitate: kW / kWh JSON
Variabilă: DeviceId

Contor electric

Citirea consumului total
VAR value := PARSEJSON(StatusJson, "components.main.energyMeter.energy.value", 1);
IF(ISNULL(value), NaN, value);
Citirea cererii
VAR value := PARSEJSON(StatusJson, "components.main.powerMeter.power.value", 1);
IF(ISNULL(value), NaN, value / 1000);
Întrerupător Comutator
boolean JSON
Valori / Stări: ON · OFF

Întrerupător

Citirea stării comutatorului
VAR value := PARSEJSON(StatusJson, "components.main.switch.switch.value", 1);
IF(ISNULL(value), NaN, if(value="on", 1, 0));
Scrierea stării comutatorului
# Set Http request method, body and headers
VAR response := SENDHTTPREQUEST("/v1/devices/"+DeviceId+"/commands", 
"POST", 
"{\"commands\": [ { \"component\": \"main\", \"capability\": \"switch\", \"command\": \""+IF(St=1, "on", "off")+"\", \"arguments\": [] } ] }",
"Authorization: Bearer "+Token);


# Wait a little an read the state again to prevent state shuffle
SLEEP(500);
response := SENDHTTPREQUEST("/v1/devices/"+DeviceId+"/status", "GET", "", "Authorization: Bearer "+Token);
IF response.IsSuccess
 StatusJson := response.Content;
 # ADDINFO("StatusJson refreshed");
ELSE
 ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
END
Conexiune: Packet Parser → HTTP
Îmbunătățiri posibile (4)
  • Power Unit — Unit string for power reading (W), available in status response
  • Energy Unit — Unit string for energy reading (kWh), available in status response
  • Health Check — Device health/online status, available via SmartThings Health API
  • Refresh — Force refresh device state via SmartThings refresh capability command

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