TapHome

SmartThings Kapcsoló/Csatlakozó Teljesítményméréssel

Packet Parser → HTTP
Beküldő
Utoljára frissítve: 03. 2026
SmartThings Kapcsoló/Csatlakozó Teljesítményméréssel

Ez a sablon bármely SmartThings-kompatibilis kapcsolót vagy csatlakozót teljesítményméréssel integrál a TapHome-ba. A kommunikáció a SmartThings Cloud REST API v1-en keresztül történik az api.smartthings.com címen HTTPS-en — a sablon nem kommunikál közvetlenül a fizikai eszközzel. Az eszköz lehet ZigBee, Z-Wave vagy Matter — amíg egy SmartThings-fiókhoz csatlakozik és switch, powerMeter és energyMeter képességeket biztosít, a sablon működni fog.

A sablont Csongor Varga készítette és egy BlitzWolf BW-SHP15 ZigBee csatlakozóval demonstrálta, de nem korlátozódik erre a modellre.

Konfiguráció

A sablon két változót igényel, amelyeket az importálás után a TapHome-ban kell beállítani:

  • Token — SmartThings Personal Access Token (PAT) a Bearer hitelesítéshez
  • DeviceId — a céleszköz UUID-ja a SmartThings platformon
Personal Access Token generálása
  1. Menj az account.smartthings.com/tokens oldalra és jelentkezz be Samsung-fiókkal
  2. Kattints a Generate new token gombra és nevezd el (pl. „TapHome Integration")
  3. Válaszd ki a Devices jogosultságot — ez szükséges az állapot olvasásához és parancsok küldéséhez
  4. Kattints a Generate Token gombra és azonnal másold ki a tokent — ez az egyetlen lehetőség az érték lekérésére

A standard Personal Access Tokenek (2024. december 30. után létrehozva) csak 24 órán át érvényesek. A tokent a lejárat előtt újra kell generálni és frissíteni a TapHome-ban, különben az integráció leáll. A korábbi tokenek hosszabb érvényességi idővel rendelkezhetnek.

Device ID megkeresése
  1. Jelentkezz be a my.smartthings.com oldalon
  2. Keresd meg a céleszközt az eszközlistában
  3. Másold ki a Device ID-t az eszköz részletező oldaláról — ez egy UUID karakterlánc (pl. 47eff6bf-83c9-4374-a367-b254759b486d)
Több eszköz hozzáadása

Minden SmartThings eszköz saját modulpéldányt igényel. Újabb eszköz hozzáadásához importáld újra a sablont és állíts be egy új DeviceId-t. Ugyanaz a Token minden modulban újrafelhasználható.

Eszközképességek

Kapcsolóvezérlés

A sablon kapcsolóként teszi elérhetővé az eszközt. Az állapot a SmartThings státusz válaszból olvasódik ki (components.main.switch.switch.value"on" vagy "off", 1/0-ra leképezve). A kapcsolóparancsok a POST /v1/devices/{DeviceId}/commands végponton keresztül küldhetők a switch képességgel.

Kapcsolóparancs küldése után a sablon 500 ms-ot vár és újraolvassa az eszköz állapotát, hogy megakadályozza az állapotkeveredést a parancs és a következő lekérdezési ciklus között. A kapcsoló 2,5 másodpercenként kerül lekérdezésre.

Teljesítménymérés

A beépített energiamérő két értéket olvas ki a státusz válaszból:

  • Valós idejű teljesítménycomponents.main.powerMeter.power.value wattban jelentve, a sablon kW-ra konvertálja (÷ 1000)
  • Összesített fogyasztáscomponents.main.energyMeter.energy.value közvetlenül kWh-ban jelentve

A mérő csak olvasható és 15 másodpercenként kerül lekérdezésre.

További képességek

A SmartThings API teljesítmény- és energia-egység karakterláncokat, eszköz-állapotot (health) és refresh képességet is biztosít az azonnali állapotfrissítés kikényszerítéséhez. Ezek egy jövőbeli sablonfrissítésben adhatók hozzá.

Hibaelhárítás

Az integráció 24 óra után leáll

A standard SmartThings PAT tokenek 24 óra után lejárnak. Generálj új tokent az account.smartthings.com/tokens oldalon és frissítsd a Token változót a TapHome modulban. Ha a gyakori tokenfrissítés nem praktikus, ellenőrizd, hogy elérhető-e egy régebbi, hosszabb érvényességű token a fiókon.

Az eszköz nem válaszol
  1. Ellenőrizd, hogy a SmartThings eszköz online-e — nézd meg az állapotát a SmartThings alkalmazásban
  2. Erősítsd meg, hogy a DeviceId változó megfelel a helyes eszköz UUID-nak
  3. Teszteld az API-t manuálisan: GET https://api.smartthings.com/v1/devices/{DeviceId}/status az Authorization: Bearer {Token} fejléccel — JSON választ kell kapnod az eszköz állapotával
  4. Győződj meg róla, hogy a Token rendelkezik a megfelelő jogosultsággal (Devices — olvasás és végrehajtás)
A teljesítménymérés nullát mutat
  1. Győződj meg róla, hogy az eszköz tényleg fogyaszt áramot — kapcsolj be egy csatlakoztatott fogyasztót
  2. Ellenőrizd, hogy a SmartThings eszköz támogatja-e a powerMeter és energyMeter képességeket — nem minden kapcsoló jelenti a teljesítményadatokat
  3. Kérdezd le manuálisan a státusz API-t és ellenőrizd, hogy a components.main.powerMeter.power.value nem nulla értéket ad-e vissza

Ez egy felhőalapú integráció — aktív internetkapcsolatot igényel a TapHome CCU-n. A sablon a Samsung szervereivel kommunikál, nem a helyi hálózaton lévő fizikai eszközzel.

Elérhető eszközök

SmartThings Kapcsoló/Csatlakozó Modul
Egyéni változók
Token (string) = 0ead2552-e331-4355-b483-81d3898eb5baSmartThings Personal Access Token for API authentication (generate at my.smartthings.com)
DeviceId (string) = 47eff6bf-83c9-4374-a367-b254759b486dSmartThings device UUID — identifies the target switch or plug

SmartThings Switch/Plug with Power Metering

Olvasás (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
Villamos mérő Villanyóra Csak olvasható

Energiafogyasztás mérés — pillanatnyi teljesítmény (kW) és kumulatív energia (kWh) a SmartThings Cloud API-n keresztül

numeric Egység: kW / kWh JSON
Változó: DeviceId

Villamos mérő

Összes fogyasztás olvasása
VAR value := PARSEJSON(StatusJson, "components.main.energyMeter.energy.value", 1);
IF(ISNULL(value), NaN, value);
Igény olvasása
VAR value := PARSEJSON(StatusJson, "components.main.powerMeter.power.value", 1);
IF(ISNULL(value), NaN, value / 1000);
Kapcsoló Kapcsoló
boolean JSON
Értékek / Állapotok: ON · OFF

Kapcsoló

Kapcsoló állapot olvasása
VAR value := PARSEJSON(StatusJson, "components.main.switch.switch.value", 1);
IF(ISNULL(value), NaN, if(value="on", 1, 0));
Kapcsoló állapot írása
# 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
Kapcsolat: Packet Parser → HTTP
Lehetséges fejlesztések (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

Források