TapHome

Somfy TaHoma – žaluzie a rolety io a RTS (lokální API)

Packet Parser → HTTP
Přidal
Poslední aktualizace: 11. 2026

Vyžaduje externí bránu

Somfy TaHoma with Developer Mode (local API, HTTPS port 8443) — stránka produktu

Toto zařízení podporuje mDNS

Místo IP adresy můžete zařízení oslovit na:

gateway-{pin}.local.local

Nahraďte {MAC} MAC adresou zařízení (velká písmena, bez dvojteček).

TapHome podporuje mDNS — použití hostname je spolehlivější než statická IP.

Somfy TaHoma – žaluzie a rolety io a RTS (lokální API)

Šablona Somfy TaHoma propojuje TapHome s bránou Somfy TaHoma (například TaHoma Switch) přes oficiální lokální API brány, které Somfy nazývá Developer Mode. Motory se s bránou spárují jako obvykle v aplikaci TaHoma by Somfy; TapHome komunikuje jen s bránou, přes HTTPS na portu 8443 v lokální síti, bez připojení ke cloudu.

Šablona ovládá polohu rolet a markýz io-homecontrol, polohu a natočení lamel venkovních žaluzií io-homecontrol a jednosměrným motorům RTS posílá příkazy Otevřít, My, Stop a Zavřít.

Komunitní šablona — zatím neotestovaná s TapHome. Šablona vznikla v portálu TapHome z dokumentace Somfy k režimu Developer Mode; názvy stavů a příkazů zařízení pocházejí z komunitních zdrojů (Somfy je nevyjmenovává). Otestovaná byla jen se simulátorem brány na lokálním TapHome Core 2025.2, ne se skutečnou bránou TaHoma ani se skutečnými motory Somfy, a zkušenosti z praxe jsou vítané. XML stáhnete na této stránce nebo v portálu TapHome: Somfy TaHoma — komunitní šablona, a importujete ho jako nový modul.

Drátové motory Somfy bránu nepotřebují. Motor Somfy na 230 V bez rádiového přijímače (například Somfy WT, čtyři vodiče — PE, N, nahoru, dolů) ovládá TapHome přímo reléovými moduly jako každý jiný motor stínění — viz Požadavky → Stínění. Tato šablona je pro motory s rádiem (io-homecontrol nebo RTS) spárované s bránou TaHoma.

Podporované brány

Podle Somfy funguje Developer Mode na velké většině bran TaHoma. Není dostupný na:

  • TaHoma box nebo Somfy box 1. generace (čtvercový tvar)
  • Connectivity Kit

Hardwarové připojení

Žádná kabeláž není potřeba. Brána TaHoma a TapHome Core musí být ve stejné lokální síti. Brána používá certifikát podepsaný vlastní autoritou Overkiz; šablona se připojuje s ignorováním chyb certifikátu, takže není třeba instalovat žádný certifikát.

Konfigurace

Zapnutí režimu Developer Mode a vytvoření tokenu

  1. Otevřete aplikaci TaHoma by Somfy.
  2. Přejděte do Configure the installation › Access the parameters vaší brány TaHoma.
  3. 7krát klepněte na PIN brány (například 2001-1234-5678) — zapne se Developer Mode a spustí se lokální API brány.
  4. V nabídce Developer Mode vygenerujte token.

Token lze přečíst a zkopírovat jen při vytvoření — hned si ho uložte. Tokenů lze vygenerovat více; pokud se token ztratí, vygenerujte nový a zadejte ho v TapHome.

Zjištění adres zařízení

Každý motor spárovaný s bránou má adresu, deviceURL. Adresy zjistíte ze seznamu zařízení brány s tokenem — například z počítače ve stejné síti:

1
curl -k -H "Authorization: Bearer <token>" https://<gateway-address>:8443/enduser-mobile-web/1/enduserAPI/setup/devices

Motor najděte podle label (název z aplikace TaHoma) a jeho deviceURL zkopírujte přesně tak, jak je zobrazená. Šablona si ji pro požadavek zakóduje sama.

ProtokolFormátPříklad
io-homecontrolio://{gateway-pin}/{device-id}io://1234-5678-9012/4820485
RTSrts://{gateway-pin}/{device-id}rts://1234-5678-9012/987654321

Tatáž odpověď ukazuje, co každý motor podporuje: definition.states a definition.commands. Šablona očekává stav core:ClosureState a příkaz setClosure u rolety nebo markýzy, core:ClosureState, core:SlateOrientationState a setClosureAndOrientation u žaluzie a open, my, stop a close u motoru RTS. Motor, jehož definice tyto názvy nemá, s daným zařízením fungovat nebude.

Parametry importu

Parametr importuPopisZástupná hodnota
GatewayAddressIP adresa nebo název hostitele brány TaHoma, například gateway-1234-5678-9012.local192.168.1.100
BearerTokenToken z režimu Developer Mode(prázdné)
SlideDeviceUrldeviceURL rolety nebo markýzy ioio://1234-5678-9012/12345678
BlindDeviceUrldeviceURL žaluzie ioio://1234-5678-9012/12345678
RtsDeviceUrldeviceURL motoru RTSrts://1234-5678-9012/12345678

Pokud použijete IP adresu, rezervujte ji pro bránu v routeru, aby se neměnila.

Šablona má od každého druhu jedno zařízení. Zařízení, která nepotřebujete, smažte. Pro další motory importujte šablonu znovu s dalšími adresami — každý import přidá modul brány s vlastními zařízeními — a nadbytečná zařízení smažte, nebo změňte proměnnou DeviceUrl zařízení.

Možnosti zařízení

Brána

Modul čte bránu každých 30 s a ukazuje tři servisní atributy: Verze protokolu (verze lokálního API), ID brány (PIN brány) a Stav připojení (například OK). Při nesprávném tokenu modul ukáže chybu „Check Bearer token in TaHoma By Somfy app → Developer Mode“.

Rolety a markýzy io

  • io roleta / markýza — poloha rolety nebo markýzy io-homecontrol. Brána hlásí 0 = zcela otevřená a 100 = zcela zavřená; v TapHome je 0 % zcela nahoře a 100 % zcela dole, stejný směr. Zařízení čte polohu každých 5 s a motorem pohybuje příkazem setClosure.

Venkovní žaluzie io

  • io venkovní žaluzie — poloha a natočení lamel venkovní žaluzie io-homecontrol. Obojí se posílá společně jedním příkazem setClosureAndOrientation, takže změna polohy pošle i aktuální natočení lamel a změna lamel aktuální polohu. Když TapHome změní polohu i lamely najednou, stejný příkaz jde jen jednou.

Motory RTS

Motory RTS (Radio Technology Somfy) jsou jednosměrné rádio: příkazy přijímají, ale svou polohu nehlásí.

HodnotaPříkazČinnost
OtevřítopenPohyb nahoru / zcela otevřít
MymyPřejít do oblíbené polohy uložené v motoru
StopstopZastavit pohyb
ZavřítclosePohyb dolů / zcela zavřít
  • Motor RTS — po každém příkazu přepínač ukáže Připraveno, takže tentýž příkaz lze poslat znovu, například Zavřít poté, co se motorem pohnulo jeho vlastním ovladačem. Volba Připraveno pošle Stop.

Žádné ze zařízení nepohne motorem při startu TapHome Core: stav berou z brány, ne z poslední hodnoty v TapHome.

Jak šablona komunikuje s bránou

Všechna volání jdou na https://<gateway-address>:8443/enduser-mobile-web/1/enduserAPI s hlavičkou Authorization: Bearer <token>; bez tokenu funguje jen GET /apiVersion. Každé zařízení io čte své stavy z /setup/devices/{deviceURL}/states každých 5 s a všechna zařízení posílají příkazy přes POST /exec/apply. Somfy pro lokální API nestanovuje žádný limit volání, ale upozorňuje, že příliš častá volání bránu přetíží a zpozdí ovládání motorů — pamatujte na to při mnoha motorech na jedné bráně.

Řešení problémů

Chyba „Check Bearer token in TaHoma By Somfy app → Developer Mode“

Brána odpověděla HTTP 401: token je nesprávný nebo nebyl zkopírován celý. Vygenerujte nový token v aplikaci TaHoma by Somfy › Developer Mode a zadejte ho v TapHome.

Chyba zařízení „Device unavailable (HTTP …)“

Brána adresu nezná. Zkontrolujte, zda je deviceURL zkopírovaná přesně z GET /setup/devices — nezakódovaná, bez mezer — a zda patří ke správnému druhu zařízení.

Chyba zařízení „Closure state not available“

Brána odpověděla, ale bez stavu core:ClosureState. Zkontrolujte definition.states motoru. Některé markýzy hlásí místo něj stav core:DeploymentState (0 = zatažená, 100 = vysunutá); ten šablona nečte.

Brána ukazuje zařízení jako nedostupné, ale funguje

Některé verze firmwaru TaHoma hlásí zařízení io jako nedostupná (available: false), i když fungují normálně — nahlášeno Somfy v repozitáři Developer Mode. Šablona tento příznak nepoužívá a chybu kvůli němu neukáže.

Motor RTS se nepohne

Příkazy RTS jsou jednosměrné rádiové signály bez potvrzení doručení, proto TapHome neukáže chybu, když motor nezareaguje. Zkontrolujte, zda je motor v rádiovém dosahu brány a zda se pohne z aplikace TaHoma by Somfy.

Název hostitele brány není dostupný

Pokud se gateway-{pin}.local nepřeloží, použijte IP adresu brány — najdete ji v routeru. Developer Mode musí zůstat zapnutý: právě ten zapíná lokální API brány.

Dostupná zařízení

Brána Somfy TaHoma Modul
Servisní atributy
Verze protokoluVerze lokálního API, kterou hlásí brána
ID brányPIN brány (například 1234-5678-9012), tentýž PIN, který je součástí adresy každého zařízení
Stav připojeníStav připojení, který hlásí brána, například OK
Vlastní proměnné
BearerToken (string)Token lokálního API TaHoma, vytvořený v aplikaci TaHoma by Somfy › Developer Mode; modul i každé zařízení ho posílají jako 'Authorization: Bearer <token>'
TaHoma by Somfy app → Configure the installation → Access the parameters of your TaHoma box → tap the gateway PIN 7 times → Developer Mode → generate a token. The token can be copied only when it is created; enter it as the import parameter Bearer token.

Somfy TaHoma Gateway

Čtení (modul)
VAR r := SENDHTTPREQUEST("/enduser-mobile-web/1/enduserAPI/apiVersion");
IF r.IsSuccess
    ApiVersion := r.Content;
END

r := SENDHTTPREQUEST("/enduser-mobile-web/1/enduserAPI/setup/gateways", "GET", "", "Authorization: Bearer " + BearerToken);
IF r.StatusCode = 401
    ADDERROR(0, "Check Bearer token in TaHoma By Somfy app → Developer Mode");
ELSEIF r.IsSuccess
    GatewayData := r.Content;
END
Servisní atributy
Protocol Version
PARSEJSON(ApiVersion, "$.protocolVersion", true)
Gateway ID
PARSEJSON(GatewayData, "[0].gatewayId", true)
Connectivity Status
PARSEJSON(GatewayData, "[0].connectivity.status", true)
io roleta / markýza Posuvný

Poloha rolety nebo markýzy io-homecontrol — 0 % zcela otevřená, 100 % zcela zavřená, stejný směr jako v bráně

numeric (0–100) Jednotka: % json_path
Proměnná: DeviceUrl — Adresa motoru v bráně TaHoma (deviceURL z GET /setup/devices), například io://1234-5678-9012/4820485

io roleta / markýza

Čtení (modul)
VAR encodedUrl := REPLACE(REPLACE(DeviceUrl, ":", "%3A"), "/", "%2F");
VAR r := SENDHTTPREQUEST("/enduser-mobile-web/1/enduserAPI/setup/devices/" + encodedUrl + "/states/core%3AClosureState", "GET", "", "Authorization: Bearer " + BearerToken);
IF r.StatusCode = 401
    ADDERROR(0, "Check Bearer token in TaHoma By Somfy app → Developer Mode");
ELSEIF r.IsSuccess
    StatesJson := r.Content;
ELSE
    ADDERROR(1, "Device unavailable (HTTP " + r.StatusCode + ")");
END
Čtení úrovně žaluzie
VAR closure := PARSEJSON(StatesJson, "$.value", true);
IF ISNULL(closure)
    ADDERROR(0, "Closure state not available");
    RETURN(NaN);
END
RETURN(closure / 100);
Zápis úrovně žaluzie
VAR pos := ROUND(Bl * 100);
VAR body := "{\"label\":\"Set roller shutter\",\"actions\":[{\"deviceURL\":\"" + DeviceUrl + "\",\"commands\":[{\"name\":\"setClosure\",\"parameters\":[" + pos + "]}]}]}";
SENDHTTPREQUEST("/enduser-mobile-web/1/enduserAPI/exec/apply", "POST", body, "Authorization: Bearer " + BearerToken, "Content-Type: application/json");
io venkovní žaluzie Žaluzie

Poloha a natočení lamel venkovní žaluzie io-homecontrol — obojí se posílá společně jedním příkazem

numeric (0–100) Jednotka: % json_path
Proměnná: DeviceUrl — Adresa žaluzie v bráně TaHoma (deviceURL), například io://1234-5678-9012/5932104

io venkovní žaluzie

Čtení (modul)
VAR encodedUrl := REPLACE(REPLACE(DeviceUrl, ":", "%3A"), "/", "%2F");
VAR r := SENDHTTPREQUEST("/enduser-mobile-web/1/enduserAPI/setup/devices/" + encodedUrl + "/states", "GET", "", "Authorization: Bearer " + BearerToken);
IF r.StatusCode = 401
    ADDERROR(0, "Check Bearer token in TaHoma By Somfy app → Developer Mode");
ELSEIF r.IsSuccess
    StatesJson := r.Content;
ELSE
    ADDERROR(1, "Device unavailable (HTTP " + r.StatusCode + ")");
END
Čtení úrovně žaluzie
VAR closure := PARSEJSON(StatesJson, "$[?(@.name=='core:ClosureState')].value", true);
IF ISNULL(closure)
    ADDERROR(0, "Closure state not available");
    RETURN(NaN);
END
RETURN(closure / 100);
Zápis úrovně žaluzie
VAR pos := ROUND(Bl * 100);
VAR ori := ROUND(Bs * 100);
VAR body := "{\"label\":\"Set venetian blind\",\"actions\":[{\"deviceURL\":\"" + DeviceUrl + "\",\"commands\":[{\"name\":\"setClosureAndOrientation\",\"parameters\":[" + pos + "," + ori + "]}]}]}";
VAR date := NOW();
IF body != LastBody OR date.UNIXTIME - LastSentAt > 3
    SENDHTTPREQUEST("/enduser-mobile-web/1/enduserAPI/exec/apply", "POST", body, "Authorization: Bearer " + BearerToken, "Content-Type: application/json");
    LastBody := body;
    LastSentAt := date.UNIXTIME;
END
Čtení sklonu žaluzie
VAR orientation := PARSEJSON(StatesJson, "$[?(@.name=='core:SlateOrientationState')].value", true);
IF ISNULL(orientation)
    RETURN(NaN);
END
RETURN(orientation / 100);
Zápis sklonu žaluzie
VAR pos := ROUND(Bl * 100);
VAR ori := ROUND(Bs * 100);
VAR body := "{\"label\":\"Set venetian blind\",\"actions\":[{\"deviceURL\":\"" + DeviceUrl + "\",\"commands\":[{\"name\":\"setClosureAndOrientation\",\"parameters\":[" + pos + "," + ori + "]}]}]}";
VAR date := NOW();
IF body != LastBody OR date.UNIXTIME - LastSentAt > 3
    SENDHTTPREQUEST("/enduser-mobile-web/1/enduserAPI/exec/apply", "POST", body, "Authorization: Bearer " + BearerToken, "Content-Type: application/json");
    LastBody := body;
    LastSentAt := date.UNIXTIME;
END
Motor RTS Vícestavový přepínač

Příkazy pro jednosměrný motor RTS — Otevřít, My (oblíbená poloha), Stop nebo Zavřít; RTS polohu nehlásí, proto přepínač po každém příkazu ukáže Připraveno

enum numeric
Hodnoty / Stavy: Připraveno · Otevřít · My · Stop · Zavřít
Proměnná: DeviceUrl — Adresa motoru RTS v bráně TaHoma (deviceURL), například rts://1234-5678-9012/987654321

Motor RTS

Čtení stavu přepínače
RETURN(0);
Zápis stavu přepínače
VAR cmd := SWITCH(Mu, 1, "open", 2, "my", 3, "stop", 4, "close", "stop");
VAR body := "{\"label\":\"RTS command\",\"actions\":[{\"deviceURL\":\"" + DeviceUrl + "\",\"commands\":[{\"name\":\"" + cmd + "\",\"parameters\":[]}]}]}";
SENDHTTPREQUEST("/enduser-mobile-web/1/enduserAPI/exec/apply", "POST", body, "Authorization: Bearer " + BearerToken, "Content-Type: application/json");
Připojení: Packet Parser → HTTP • Hostname: gateway-{pin}.local.local
Možná vylepšení (6)
  • Event-driven state updates — Somfy recommends reading /setup at start and then fetching events at most once per second; the listener expires after 10 minutes without a fetch. The template polls the states of each device every 5 s instead.
  • Automatic device discovery — The gateway lists every paired device with its deviceURL, label, controllableName and definition. The template does not create devices from it; the installer enters one deviceURL per device.
  • Open / Close / Stop / My on io motors — io roller shutters and venetian blinds accept the same commands as RTS; the template drives them by position only (setClosure / setClosureAndOrientation).
  • Awnings that report the deployment instead of the closure — Awnings of type io:HorizontalAwningIOComponent may report core:DeploymentState (0 = retracted, 100 = deployed) instead of core:ClosureState; the roller shutter device reads ClosureState only.
  • Cancel running executions — Cancels all running commands launched from the local API.
  • Availability of a motor — The device description carries available and the state core:StatusState; some gateway firmware reports io devices as unavailable although they work (reported in the Developer Mode repository), so the template does not use it.

Zdroje

  • Somfy TaHoma Developer Mode — README (activation, token, certificate, mDNS, supported gateways)
    github.com 2026-11-04
  • Somfy TaHoma local API — OpenAPI specification

Našli jste problém s touto šablonou zařízení?

Napište nám, co nefunguje, co chybí, nebo jak by se měla šablona chovat. Vaše zpětná vazba nám pomáhá udržet katalog přesný.

Komunita — neověřeno

Chcete to použít ve svém TapHome jádře?

Otevřete tuto šablonu v zákaznickém portálu a použijte ji ve svém domově, nebo navrhněte úpravu a odešlete ji zpět do katalogu.

Otevřít v portálu