TapHome

Samsung WindFree Air Conditioner

Packet Parser → HTTP
Autor
Posljednje ažuriranje: 04. 2026
Samsung WindFree Air Conditioner

Predložak za klima-uređaj Samsung WindFree povezuje TapHome sa split klima-uređajima Samsung preko API-ja Samsung SmartThings u oblaku. Sva komunikacija ide preko HTTPS-a na api.smartthings.com, pa nije potrebno lokalno mrežno ožičenje ni adapteri za protokol. Potrebni su samo Samsung račun sa SmartThingsom, Personal Access Token (PAT) i Device ID klima-uređaja.

Predložak daje 8 uređaja za potpuno upravljanje klima-uređajem: uključivanje i isključivanje, odabir načina rada HVAC, brzinu ventilatora, smjer njihanja lamela, zadanu temperaturu, očitanje temperature i vlažnosti u prostoriji te ekskluzivne Samsungove načine, uključujući WindFree i WindFree Sleep.

Konfiguracija

Postavljanje pristupa SmartThings API-ju
  1. Prijavite se na Samsung SmartThings portal za razvojne programere na adresi account.smartthings.com/tokens Samsung računom povezanim s klima-uređajem
  2. Kliknite Generate new token
  3. Imenujte token (npr. „TapHome”) i odaberite opseg Devices (read + execute)
  4. Kliknite Generate Token i kopirajte niz tokena jer se više neće prikazati
Pronalaženje Device ID-ja

Device ID je GUID (npr. a1b2c3d4-e5f6-7890-abcd-ef1234567890) koji u SmartThingsu označava određeni klima-uređaj.

  1. Otvorite preglednik ili API alat i pošaljite zahtjev GET na:
    1
    
    https://api.smartthings.com/v1/devices
    
    sa zaglavljem Authorization: Bearer <your-token>
  2. U odgovoru pronađite klima-uređaj Samsung WindFree: polje deviceId sadrži traženi GUID
  3. Možete koristiti i SmartThings CLI ili mobilnu aplikaciju Samsung SmartThings (odjeljak Device Info)
Parametri uvoza

Pri uvozu predloška u TapHome unesite:

ParametarOpisFormat
TokenSmartThings Personal Access TokenDugi alfanumerički niz
DeviceIdIdentifikator uređaja u SmartThingsuFormat UUID / GUID

SmartThings Personal Access Tokeni (PAT) namijenjeni su testiranju i osobnoj upotrebi. Mogu isteći ili biti opozvani. Ako token prestane vrijediti, izradite novi na account.smartthings.com/tokens i ažurirajte varijablu modula u sustavu TapHome.

Ovisnost o internetu

Ovo je integracija isključivo preko oblaka. Svi podaci idu preko poslužitelja Samsung SmartThings (api.smartthings.com:443). Predložak zahtijeva aktivnu internetsku vezu na centralnoj jedinici TapHome Core. Klima-uređaj mora biti registriran i na mreži u aplikaciji SmartThings.

Mogućnosti uređaja

Uključivanje i način rada HVAC

Sklopka Uključivanje uključuje i isključuje klima-uređaj preko SmartThings mogućnosti switch.

Prekidač s više vrijednosti Način rada HVAC nudi pet načina rada: Heat, Cool, Cool+Heat (auto), Dry i Fan Only. Nazivi načina u sustavu TapHome odgovaraju vrijednostima SmartThings API-ja heat, cool, auto, dry i wind.

Upravljanje ventilatorom i strujanjem zraka

Prekidač s više vrijednosti Način rada ventilatora nudi pet brzina: Auto, Low, Medium, High i Turbo.

Prekidač s više vrijednosti Način njihanja upravlja njihanjem lamela s četiri opcije: Fixed (bez pomicanja), All (obje osi), Vertical i Horizontal.

Unaprijed postavljeni načini (WindFree)

Prekidač s više vrijednosti Unaprijed postavljeni način upravlja posebnim Samsungovim dodatnim načinima preko mogućnosti custom.airConditionerOptionalMode. Dostupno je sedam načina:

VrijednostNačinOpis
0OffNijedan unaprijed postavljeni način nije aktivan
1SleepPostupna prilagodba temperature za ugodnost tijekom noći
2QuietRad sa smanjenom bukom
3SmartOptimizacija na temelju umjetne inteligencije
4SpeedBrzo hlađenje ili grijanje
5WindFreeZrak se raspršuje kroz tisuće mikrootvora, bez izravnog propuha
6WindFree SleepSpaja raspršivanje zraka WindFree s noćnim načinom rada

WindFree je vlastita Samsungova funkcija dostupna samo u seriji WindFree. Uklanja izravno strujanje zraka jer klimatizirani zrak raspršuje kroz mikroperforacije na prednjoj ploči.

Uređaj Unaprijed postavljeni način čita stanje s posebne krajnje točke mogućnosti (/v1/devices/{DeviceId}/components/main/capabilities/custom.airConditionerOptionalMode/status), a ne s krajnje točke za cijelo stanje uređaja, pa je očitanje aktivnog načina pouzdano.

Upravljanje temperaturom i praćenje

Uređaj Termostat postavlja ciljnu temperaturu hlađenja u 10 koraka od 18 °C do 27 °C. Svaki korak odgovara indeksu prekidača s više vrijednosti (0 = 18 °C, 9 = 27 °C). SmartThings API podržava širi raspon (16–30 °C), ali predložak koristi podskup 18–27 °C.

Uređaj Zadana temperatura hlađenja (povratno očitanje) je senzor temperature samo za čitanje koji prikazuje trenutačnu zadanu temperaturu koju javlja klima-uređaj. U sustavu TapHome daje vizualnu povratnu informaciju bez mogućnosti upisa. Za promjenu temperature koristite uređaj Termostat.

Senzor Temperatura + vlažnost čita sobnu temperaturu (°C) i relativnu vlažnost s ugrađenih senzora klima-uređaja. API vraća vlažnost kao cijeli broj 0–100, a predložak je pretvara u omjer 0–1 za analogni ulaz TapHome (npr. 55 % postaje 0,55). Ovaj uređaj očitava podatke svakih 15 sekundi (sporije od intervala od 2,5 sekunde koji koriste upravljački uređaji).

Dodatne mogućnosti

Neki modeli WindFree daju i senzore razine prašine (PM2.5/PM10), razine mirisa i ukupne kvalitete zraka, kao i upravljanje opterećenjem na zahtjev mreže (demand response) i način automatskog samočišćenja. Te su mogućnosti dostupne preko SmartThings API-ja, ali još nisu implementirane u predložak. Mogu se dodati u budućem ažuriranju predloška.

Rješavanje problema

Pogreške autentifikacije (HTTP 401)
  1. Provjerite vrijedi li Personal Access Token još uvijek: PAT može isteći ili biti ručno opozvan
  2. Ponovno izradite token na account.smartthings.com/tokens i ažurirajte varijablu Token u postavkama modula TapHome
  3. Provjerite ima li token uključen opseg Devices
Uređaj nije pronađen (HTTP 404)
  1. Provjerite je li DeviceId ispravan: pošaljite upit GET /v1/devices s tokenom i provjerite GUID
  2. Provjerite je li klima-uređaj još registriran u aplikaciji SmartThings i prikazuje li se kao povezan s mrežom
  3. Ako je uređaj ponovno dodan u SmartThings, možda je dobio novi DeviceId
Ograničenje broja zahtjeva (HTTP 429)

SmartThings API ograničava broj zahtjeva. Predložak očitava upravljačke uređaje svakih 2,5 sekunde, a senzore svakih 15 sekundi. Ako isti račun koriste i druge integracije (Home Assistant, automatizacije SmartThings), ukupan broj zahtjeva može premašiti ograničenje. Ako API počne ograničavati zahtjeve, razmislite o produljenju intervala očitavanja u predlošku TapHome.

Ovo je integracija isključivo preko oblaka i ovisi o dostupnosti poslužitelja Samsung SmartThings te o aktivnoj internetskoj vezi. Tijekom prekida rada oblaka ili interneta predložak ne može čitati stanje klima-uređaja ni upravljati njime. Ne postoji lokalni rezervni komunikacijski put.

Dostupni uređaji

SmartThings — Samsung WindFree AC Modul
Prilagođene varijable
Token (string)SmartThings Personal Access Token — izradite ga na account.smartthings.com/tokens
DeviceId (string)SmartThings Device ID klima-uređaja Samsung (format GUID)
Način rada ventilatora Prekidač s više vrijednosti

Upravljanje brzinom ventilatora — Auto, Low, Medium, High, Turbo

enum JSON PARSEJSON()
Vrijednosti / stanja: AUTO · LOW · MEDIUM · HIGH · TURBO

Način rada ventilatora

Čitanje stanja sklopke
VAR response := SENDHTTPREQUEST("/v1/devices/"+DeviceId+"/status", "GET", "", "Authorization:Bearer " + Token);
IF(response.IsSuccess = 1)
    VAR state := PARSEJSON(response.Content, "components.main.airConditionerFanMode.fanMode.value");
    if state = "auto"
    return(0);
        elseif state = "low"
        return(1);
        elseif state = "medium"
        return(2);
        elseif state = "high"
        return(3);
        elseif state = "turbo"
        return(4);
        end    
END
Zapis stanja sklopke
VAR localfan := SWITCH(Mu, 0, "auto", 1, "low", 2, "medium", 3, "high", 4, "turbo", "");

SENDHTTPREQUEST("/v1/devices/"+DeviceId+"/commands", "POST", "{\"commands\":[{\"component\": \"main\", \"capability\": \"airConditionerFanMode\", \"command\": \"setFanMode\", \"arguments\": [\""+localfan+"\"]}]}", "Authorization:Bearer " + Token);
Način rada HVAC Prekidač s više vrijednosti

Način rada — Heat, Cool, Cool+Heat (auto), Dry, Fan Only

enum JSON PARSEJSON()
Vrijednosti / stanja: OFF · HEAT · COOL · COOL + HEAT · DRY · FAN ONLY

Način rada HVAC

Čitanje stanja sklopke
VAR response := SENDHTTPREQUEST("/v1/devices/"+DeviceId+"/status", "GET", "", "Authorization:Bearer " + Token);
IF(response.IsSuccess = 1)
    VAR state := PARSEJSON(response.Content, "components.main.airConditionerMode.airConditionerMode.value");        
        if state = "heat"
        return(1);
        elseif state = "cool"
        return(2);
        elseif state = "auto"
        return(3);
        elseif state = "dry"
        return(4);
        elseif state = "wind"
        return(5);             
        end    
END
Zapis stanja sklopke
VAR localhvac := SWITCH(Mu, 1, "heat", 2, "cool", 3, "auto", 4, "dry", 5, "wind", "");

SENDHTTPREQUEST("/v1/devices/"+DeviceId+"/commands", "POST", "{\"commands\":[{\"component\": \"main\", \"capability\": \"airConditionerMode\", \"command\": \"setAirConditionerMode\", \"arguments\": [\""+localhvac+"\"]}]}", "Authorization:Bearer " + Token);
Uključivanje Sklopka
boolean JSON PARSEJSON()
Vrijednosti / stanja: ON · OFF

Uključivanje

Čitanje stanja sklopke
VAR response := SENDHTTPREQUEST("/v1/devices/"+DeviceId+"/status", "GET", "", "Authorization:Bearer " + Token);
IF(response.IsSuccess = 1)
    VAR state := PARSEJSON(response.Content, "components.main.switch.switch.value");
    if state = "off"
    return(0);
    elseif state = "on"
        return(1);
        end    
END
Zapis stanja sklopke
VAR localpower := SWITCH(St, 0, "off", 1, "on", "");

SENDHTTPREQUEST("/v1/devices/"+DeviceId+"/commands", "POST", "{\"commands\":[{\"component\": \"main\", \"capability\": \"switch\", \"command\": \""+localpower+"\"}]}", "Authorization:Bearer " + Token);
Unaprijed postavljeni način Prekidač s više vrijednosti

Dodatni Samsungovi načini — Off, Sleep, Quiet, Smart, Speed, WindFree, WindFree Sleep

enum JSON PARSEJSON()
Vrijednosti / stanja: OFF · SLEEP · QUIET · SMART · SPEED · WindFree · WindFreeSleep

Unaprijed postavljeni način

Čitanje stanja sklopke
VAR response := SENDHTTPREQUEST("/v1/devices/"+DeviceId+"/components/main/capabilities/custom.airConditionerOptionalMode/status", "GET", "", "Authorization:Bearer " + Token);
IF(response.IsSuccess = 1)
    VAR state := PARSEJSON(response.Content, "acOptionalMode.value");
    if state = "sleep"
        return(1);
        elseif state = "off"
        return(0);
        elseif state = "quiet"
        return(2);
        elseif state = "smart"
        return(3);
        elseif state = "speed"
        return(4);
        elseif state = "windFree"
        return(5);         
        elseif state = "windFreeSleep"
        return(6);        
        end
end
Zapis stanja sklopke
VAR localpreset := SWITCH(Mu, 0, "off", 1, "sleep", 2, "quiet", 3, "smart", 4, "speed", 5, "windFree", 6, "windFreeSleep", "");

SENDHTTPREQUEST("/v1/devices/"+DeviceId+"/commands", "POST", "{\"commands\":[{\"component\": \"main\", \"capability\": \"custom.airConditionerOptionalMode\", \"command\": \"setAcOptionalMode\", \"arguments\": [\""+localpreset+"\"]}]}", "Authorization:Bearer " + Token);
Način njihanja Prekidač s više vrijednosti

Njihanje lamela — Fixed, All, Vertical, Horizontal

enum JSON PARSEJSON()
Vrijednosti / stanja: FIXED · ALL · VERTICAL · HORIZONTAL
Varijabla: swing

Način njihanja

Čitanje stanja sklopke
VAR response := SENDHTTPREQUEST("/v1/devices/"+DeviceId+"/status", "GET", "", "Authorization:Bearer " + Token);
IF(response.IsSuccess = 1)
    VAR state := PARSEJSON(response.Content, "components.main.fanOscillationMode.fanOscillationMode.value");
    if state = "fixed"
    return(0);
    elseif state = "all"
        return(1);
        elseif state = "vertical"
        return(2);
        elseif state = "horizontal"
        return(3);
        end    
END
Zapis stanja sklopke
VAR localswing := SWITCH(Mu, 0, "fixed", 1, "all", 2, "vertical", 3, "horizontal", "");

SENDHTTPREQUEST("/v1/devices/"+DeviceId+"/commands", "POST", "{\"commands\":[{\"component\": \"main\", \"capability\": \"fanOscillationMode\", \"command\": \"setFanOscillationMode\", \"arguments\": [\""+localswing+"\"]}]}", "Authorization:Bearer " + Token);
Temperatura + vlažnost Senzor temperature Samo za čitanje

Sobna temperatura (°C) i relativna vlažnost s ugrađenih senzora klima-uređaja

numeric Jedinica: °C / % JSON PARSEJSON()

Temperatura + vlažnost

Čitanje vlažnosti
VAR response := SENDHTTPREQUEST("/v1/devices/"+DeviceId+"/status", "GET", "", "Authorization:Bearer " + Token);
IF(response.IsSuccess = 1)
    VAR state := PARSEJSON(response.Content, "components.main.relativeHumidityMeasurement.humidity.value");
    return(ToDouble(state / 100));
END
Čitanje temperature
VAR response := SENDHTTPREQUEST("/v1/devices/"+DeviceId+"/status", "GET", "", "Authorization:Bearer " + Token);
IF(response.IsSuccess = 1)
    VAR state := PARSEJSON(response.Content, "components.main.temperatureMeasurement.temperature.value");
    return(ToDouble(state));
END
Zadana temperatura hlađenja (povratno očitanje) Senzor temperature Samo za čitanje

Povratna informacija samo za čitanje o trenutačnoj ciljnoj temperaturi koju javlja klima-uređaj

numeric Jedinica: °C JSON PARSEJSON()

Zadana temperatura hlađenja (povratno očitanje)

Čitanje temperature
VAR response := SENDHTTPREQUEST("/v1/devices/"+DeviceId+"/status", "GET", "", "Authorization:Bearer " + Token);
IF(response.IsSuccess = 1)
    VAR state := PARSEJSON(response.Content, "components.main.thermostatCoolingSetpoint.coolingSetpoint.value");
    return(ToDouble(state));
END
Termostat Prekidač s više vrijednosti

Ciljna temperatura hlađenja — 10 koraka od 18 °C do 27 °C

integer Jedinica: °C JSON PARSEJSON()
Vrijednosti / stanja: 18°C · 19°C · 20°C · 21°C · 22°C · 23°C · 24°C · 25°C · 26°C · 27°C

Termostat

Čitanje stanja sklopke
VAR response := SENDHTTPREQUEST("/v1/devices/"+DeviceId+"/status", "GET", "", "Authorization:Bearer " + Token);
IF(response.IsSuccess = 1)
    VAR state := PARSEJSON(response.Content, "components.main.thermostatCoolingSetpoint.coolingSetpoint.value");        
    if state = 18
    return(0);
        elseif state = 19
        return(1);
        elseif state = 20
        return(2);
        elseif state = 21
        return(3);
        elseif state = 22
        return(4);
        elseif state = 23
        return(5);
        elseif state = 24
        return(6);
        elseif state = 25
        return(7);
        elseif state = 26
        return(8);
        elseif state = 27
        return(9);            
        end    
END
Zapis stanja sklopke
VAR localtemperature := SWITCH(Mu, 0, "18", 1, "19", 2, "20", 3, "21", 4, "22", 5, "23", 6, "24", 7, "25", 8, "26", 9, "27", "");

SENDHTTPREQUEST("/v1/devices/"+DeviceId+"/commands", "POST", "{\"commands\":[{\"component\": \"main\", \"capability\": \"thermostatCoolingSetpoint\", \"command\": \"setCoolingSetpoint\", \"arguments\": ["+localtemperature+"]}]}", "Authorization:Bearer " + Token);
Povezivanje: Packet Parser → HTTP
Moguća poboljšanja (5)
  • Dust Level — PM2.5/PM10 dust sensor available on some WindFree models. Not all models support this capability
  • Odor Level — Air quality odor level sensor. Available on select WindFree models with air purification
  • Air Quality — Combined air quality index. Available on WindFree models with built-in air quality sensors
  • Demand Response Load Control — Energy demand response capability for smart grid integration. Allows utility-driven load shedding
  • Auto Cleaning Mode — Automatic self-cleaning function. Available on most WindFree models — enables/disables auto-clean cycle

Izvori

Pronašli ste problem s ovim predloškom uređaja?

Recite nam što ne radi, što nedostaje ili kako bi se predložak trebao ponašati. Vaše povratne informacije pomažu nam da katalog bude točan.

Provjerio TapHome

Želite ovo koristiti u svojoj centralnoj jedinici TapHome Core?

Otvorite ovaj predložak na portalu Customer Portal kako biste ga primijenili na jedan od svojih domova ili predložili poboljšanje i poslali ga natrag u katalog.

Otvorite na portalu