TapHome

SmartThings Spínač/Zásuvka s Meraním Spotreby

Packet Parser → HTTP
Pridal
Posledná aktualizácia: 03. 2026
SmartThings Spínač/Zásuvka s Meraním Spotreby

Táto šablóna integruje ľubovoľný SmartThings-kompatibilný spínač alebo zásuvku s meraním spotreby do TapHome. Komunikácia prebieha cez SmartThings Cloud REST API v1 na api.smartthings.com cez HTTPS — šablóna nekomunikuje priamo s fyzickým zariadením. Zariadenie môže byť ZigBee, Z-Wave alebo Matter — pokiaľ je pripojené k SmartThings účtu a vystavuje schopnosti switch, powerMeter a energyMeter, šablóna bude fungovať.

Šablónu vytvoril Csongor Varga a demonštroval ju na ZigBee zásuvke BlitzWolf BW-SHP15, ale nie je obmedzená na tento model.

Konfigurácia

Šablóna vyžaduje dve premenné nakonfigurované v TapHome po importe:

  • Token — SmartThings Personal Access Token (PAT) používaný na Bearer autentifikáciu
  • DeviceId — UUID cieľového zariadenia v platforme SmartThings
Vygenerovanie Personal Access Tokenu
  1. Prejdi na account.smartthings.com/tokens a prihlás sa Samsung účtom
  2. Klikni na Generate new token a pomenuj ho (napr. „TapHome Integration")
  3. Vyber oprávnenie Devices — je potrebné na čítanie stavu a odosielanie príkazov
  4. Klikni na Generate Token a okamžite skopíruj token — toto je jediná príležitosť na získanie hodnoty

Štandardné Personal Access Tokeny (vytvorené po 30. decembri 2024) sú platné iba 24 hodín. Token musí byť pregenerovaný a aktualizovaný v TapHome pred vypršaním, inak integrácia prestane fungovať. Staršie tokeny vytvorené pred týmto dátumom môžu mať dlhšiu platnosť.

Nájdenie Device ID
  1. Prihlás sa na my.smartthings.com
  2. Nájdi cieľové zariadenie v zozname zariadení
  3. Skopíruj Device ID zo stránky s detailmi zariadenia — ide o UUID reťazec (napr. 47eff6bf-83c9-4374-a367-b254759b486d)
Pridanie viacerých zariadení

Každé SmartThings zariadenie vyžaduje vlastnú inštanciu modulu. Na pridanie ďalšieho zariadenia importuj šablónu znova a nakonfiguruj nové DeviceId. Rovnaký Token je možné použiť pre všetky moduly.

Schopnosti zariadenia

Ovládanie spínača

Šablóna vystavuje zariadenie ako spínač. Stav sa číta zo SmartThings status odpovede (components.main.switch.switch.value"on" alebo "off", mapované na 1/0). Príkazy spínača sa odosielajú cez POST /v1/devices/{DeviceId}/commands so schopnosťou switch.

Po odoslaní príkazu spínača šablóna čaká 500 ms a znovu načíta stav zariadenia, aby zabránila premiešaniu stavov medzi príkazom a ďalším cyklom pollingu. Spínač sa polluje každých 2,5 sekundy.

Meranie spotreby

Vstavaný elektromer číta dve hodnoty zo status odpovede:

  • Okamžitý výkoncomponents.main.powerMeter.power.value reportovaný vo wattoch, konvertovaný na kW šablónou (÷ 1000)
  • Celková spotrebacomponents.main.energyMeter.energy.value reportovaná priamo v kWh

Elektromer je len na čítanie a polluje sa každých 15 sekúnd.

Ďalšie schopnosti

SmartThings API tiež vystavuje reťazce jednotiek výkonu a energie, stav zariadenia (health) a schopnosť refresh na vynútenie okamžitej aktualizácie stavu. Tieto môžu byť pridané v budúcej aktualizácii šablóny.

Riešenie problémov

Integrácia prestane fungovať po 24 hodinách

Štandardné SmartThings PAT tokeny vypršia po 24 hodinách. Vygeneruj nový token na account.smartthings.com/tokens a aktualizuj premennú Token v TapHome module. Ak je časté obnovovanie tokenu nepraktické, over, či je na účte dostupný starší token s dlhšou platnosťou.

Zariadenie neodpovedá
  1. Over, že SmartThings zariadenie je online — skontroluj jeho stav v aplikácii SmartThings
  2. Potvrď, že premenná DeviceId zodpovedá správnemu UUID zariadenia
  3. Otestuj API manuálne: GET https://api.smartthings.com/v1/devices/{DeviceId}/status s hlavičkou Authorization: Bearer {Token} — malo by vrátiť JSON odpoveď so stavom zariadenia
  4. Uisti sa, že Token má správne oprávnenie (Devices — čítanie a vykonávanie)
Meranie výkonu ukazuje nulu
  1. Potvrď, že zariadenie skutočne spotrebúva energiu — zapni pripojenú záťaž
  2. Over, že SmartThings zariadenie podporuje schopnosti powerMeter a energyMeter — nie všetky spínače reportujú výkon
  3. Manuálne odošli dotaz na status API a over, že components.main.powerMeter.power.value vracia nenulovú hodnotu

Toto je cloudová integrácia — vyžaduje aktívne internetové pripojenie na TapHome CCU. Šablóna komunikuje so servermi Samsungu, nie s fyzickým zariadením v lokálnej sieti.

Dostupné zariadenia

SmartThings Spínač/Zásuvka Modul
Vlastné premenné
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

Čítanie (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
Elektromer Elektromer Len na čítanie

Meranie spotreby energie — okamžitý výkon (kW) a kumulatívna energia (kWh) cez SmartThings Cloud API

numeric Jednotka: kW / kWh JSON
Premenná: DeviceId

Elektromer

Čítanie celkovej spotreby
VAR value := PARSEJSON(StatusJson, "components.main.energyMeter.energy.value", 1);
IF(ISNULL(value), NaN, value);
Čítanie odberu
VAR value := PARSEJSON(StatusJson, "components.main.powerMeter.power.value", 1);
IF(ISNULL(value), NaN, value / 1000);
Spínač Prepínač
boolean JSON
Hodnoty / Stavy: ON · OFF

Spínač

Čítanie stavu prepínača
VAR value := PARSEJSON(StatusJson, "components.main.switch.switch.value", 1);
IF(ISNULL(value), NaN, if(value="on", 1, 0));
Zápis stavu prepínača
# 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
Pripojenie: Packet Parser → HTTP
Možné vylepšenia (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

Zdroje