TapHome

Shelly Plus Plug S

Packet Parser → HTTP
Trimis de
Ultima actualizare: 10. 2026

Acest dispozitiv acceptă mDNS

În loc să folosiți o adresă IP, puteți accesa dispozitivul la:

shellyplusplugs-{MAC}.local

Înlocuiți {MAC} cu adresa MAC a dispozitivului dvs. (majuscule, fără două puncte).

TapHome acceptă mDNS — folosirea unui nume de gazdă este mai fiabilă decât un IP static.

Shelly Plus Plug S

Shelly Plus Plug S este o priză inteligentă Wi-Fi Gen2+ cu măsurarea integrată a puterii și un inel LED multicolor de semnalizare. Se introduce într-o priză standard CEE 7/3 (Type-F / Schuko) și poate comuta sarcini de până la 12 A / 2760 W la 230 V. TapHome comunică cu dispozitivul local, prin Wi-Fi, folosind API-ul JSON-RPC Gen2+ pe portul 80 — nu este necesară conexiunea la cloud.

Șablonul pune la dispoziție șase dispozitive TapHome pentru această priză: un întrerupător cu releu, un contor electric, un selector al modului de semnalizare LED, două selectoare de culoare LED (pentru stările releului pornit și oprit) și un dimmer pentru reglarea luminozității în modul de semnalizare a puterii.

Configurare

Împerecherea și configurarea rețelei

La prima pornire, dispozitivul intră în modul punct de acces, cu SSID-ul ShellyPlusPlugS-XXXXXX (LED-ul clipește albastru). Conectați-vă la acest SSID, deschideți http://192.168.33.1/ și conectați priza la rețeaua Wi-Fi locală din interfața web. După ce priza se conectează la rețeaua locală, este accesibilă pe portul 80 la adresa IP atribuită în modul stație și prin mDNS la shellyplusplugs-<MAC>.local.

TapHome interoghează endpointurile RPC Gen2+ prin HTTP simplu — HTTPS este dezactivat implicit, iar autentificarea HTTP (Shelly.SetAuth) trebuie să rămână dezactivată pentru ca șablonul să funcționeze. Asigurați-vă că priza se află în aceeași rețea locală / VLAN ca TapHome Core.

La importul șablonului în TapHome, introduceți adresa IP a prizei în parametrul IpAddress. Se recomandă insistent o rezervare DHCP statică, pentru ca adresa să nu se schimbe între reporniri.

Funcțiile dispozitivului

Comanda releului

Releul este oferit ca dispozitiv de tip întrerupător. Starea sa se citește din /rpc/Switch.GetStatus?id=0 (valoarea booleană output), iar releul se comandă prin /rpc/Switch.Set?id=0&on=true|false. Modulul păstrează întregul răspuns Switch.GetStatus, astfel încât releul, contorul și atributele de service folosesc împreună un singur apel HTTP la fiecare interogare.

Măsurarea puterii și a energiei

Contorul integrat al componentei Switch oferă:

  • Putere instantanee — apower în wați, convertită de șablon în kW (împărțire la 1000)
  • Energie cumulată — aenergy.total în wați-oră, convertită în kWh (împărțire la 1000)

Alte trei valori sunt oferite ca atribute de service ale contorului:

AtributUnitateCâmp sursă
CurentAcurrent
TensiuneVvoltage
Temperatură°Ctemperature.tC

Contorul este doar pentru citire și se actualizează la fiecare ciclu de interogare.

Modul de semnalizare LED

Inelul LED multicolor este comandat de componenta RPC PLUGS_UI, specifică modelului Plus Plug S. TapHome oferă un selector de mod cu trei opțiuni valide — deși șablonul are zece poziții în listă, doar primele trei corespund unor moduri reale din firmware:

ValoareComportament
offInelul LED este dezactivat (stările de diagnosticare Wi-Fi / AP / firmware sunt afișate în continuare)
switchCuloarea LED-ului reflectă starea releului — folosește culorile pentru OPRIT și PORNIT definite de utilizator
powerCuloarea LED-ului reflectă sarcina măsurată ca fracțiune din limita de putere configurată (gradient verde → galben → roșu)

Trecerea de la un mod la altul este o modificare vizuală și nu necesită repornire.

Culorile LED (modul Întrerupător)

Două dispozitive HSB independente vă permit să alegeți culoarea inelului LED pentru fiecare stare a releului:

  • Culoare LED (starea OPRIT) — culoarea și luminozitatea afișate cât timp releul este oprit
  • Culoare LED (starea PORNIT) — culoarea și luminozitatea afișate cât timp releul este pornit

Ambele corespund leds.colors.switch:0.{off|on}.{rgb,brightness} din configurația PLUGS_UI. Shelly stochează valorile RGB în procente (0–100 pe canal), nu 0–255, așa că șablonul înmulțește fiecare canal cu 2,55 la conversia între HSV și formatul nativ al dispozitivului. Această conversie este internă — în TapHome, dispozitivele se comportă ca orice alt selector de culoare HSB.

Luminozitatea LED (modul Putere)

Când LED-ul este în modul power, culoarea este aleasă automat de firmware în funcție de sarcină. Doar luminozitatea poate fi configurată de utilizator, de aceea șablonul o oferă ca dimmer (leds.colors.power.brightness, 0–100 % convertit în nivelul de dimmer TapHome 0,0–1,0).

Diagnosticarea și acțiunile modulului

Modulul HTTP oferă patru atribute de service, preluate din /rpc/WiFi.GetStatus și /rpc/Sys.GetStatus:

AtributSursă
SSID Wi-Fissid
Adresă IPsta_ip
Puterea semnaluluirssi (dBm)
Adresă MACmac

Sunt disponibile și două acțiuni de service:

  • Actualizare firmware — pornește o actualizare OTA din canalul stabil (/rpc/Shelly.Update?stage="stable"). Firmware-ul instalează actualizarea doar dacă este disponibilă (available_updates.stable în Sys.GetStatus).
  • Repornire — repornește dispozitivul (/rpc/Shelly.Reboot), util după modificarea configurației rețelei sau pentru eliminarea problemelor temporare.

Dacă aveți nevoie doar de comanda pornit/oprit și de monitorizarea de bază a energiei, ignorați dispozitivele LED — sunt opționale. Releul și contorul funcționează independent de modul de semnalizare LED.

Rezolvarea problemelor

Dispozitivul nu răspunde
  1. Verificați dacă priza este conectată la Wi-Fi — LED-ul nu trebuie să clipească și nici să lumineze continuu roșu
  2. Încercați numele de gazdă mDNS shellyplusplugs-<MAC>.local în locul adresei IP — alocarea DHCP s-ar fi putut schimba
  3. Deschideți http://{device-ip}/rpc/Shelly.GetDeviceInfo în browser; dacă răspunde cu JSON, dispozitivul este accesibil
  4. Verificați dacă TapHome Core și priza sunt în aceeași rețea locală / VLAN
  5. Asigurați-vă că autentificarea HTTP este dezactivată în interfața web Shelly — șablonul nu acceptă autentificarea digest
Puterea afișată este zero
  1. Verificați dacă sarcina este într-adevăr conectată în priza Shelly, nu ocolește priza
  2. Verificați dacă releul este pornit — contorul raportează 0 W când releul este deschis
  3. Interogați direct /rpc/Switch.GetStatus?id=0 în browser și verificați dacă apower este diferită de zero
LED-ul nu se schimbă după schimbarea modului
  1. LED-ul reflectă starea curentă doar în modurile switch și power; în modul off rămâne stins, cu excepția semnalizărilor de diagnosticare ale sistemului (mod AP, reconectare, OTA)
  2. În modul switch, asigurați-vă că culorile pentru PORNIT și OPRIT nu sunt setate amândouă la negru / luminozitate 0 %
  3. Semnalizările sistemului (albastru intermitent pentru modul AP, roșu pentru probleme Wi-Fi) au întotdeauna prioritate față de configurația LED a utilizatorului — dacă LED-ul clipește roșu, priza nu este conectată la rețeaua dvs. Wi-Fi
Acțiunea de actualizare a firmware-ului nu se execută
  1. Firmware-ul instalează actualizarea doar când Sys.GetStatus raportează available_updates.stable — dacă priza este deja actualizată, acțiunea nu are ce instala
  2. Șablonul folosește doar canalul stabil; firmware-ul beta trebuie instalat din interfața web Shelly

Cum se instalează în TapHome

Cerințe preliminare

  • Dispozitiv Shelly instalat și pornit
  • Rețea Wi-Fi locală (2,4 GHz)
  • TapHome CCU în aceeași rețea

Pasul 1 — Conectați dispozitivul Shelly la Wi-Fi

Varianta A — aplicația Shelly (recomandat):

  1. Descărcați aplicația Shelly (iOS / Android)
  2. Atingeți + → Add Device și urmați asistentul de împerechere prin Bluetooth
  3. Introduceți datele de conectare la Wi-Fi când vi se solicită

Varianta B — modul AP (fără aplicație):

  1. La prima pornire, dispozitivul creează un hotspot: ShellyXXX-AABBCCDDEE
  2. Conectați telefonul/PC-ul la acest hotspot
  3. Deschideți http://192.168.33.1 → Internet & Security → Wi-Fi Mode - Client
  4. Introduceți SSID-ul și parola → Save

Shelly acceptă doar rețele de 2,4 GHz. Rețelele de 5 GHz nu vor apărea la scanare.

Pasul 2 — Găsiți adresa dispozitivului

Dispozitivele Shelly Gen1 acceptă mDNS (Zeroconf). Puteți accesa dispozitivul folosind un nume de gazdă în locul adresei IP:

1
shelly<model>-<MAC>.local

De exemplu: shelly1pm-AABBCCDDEE.local (adresa MAC în hexazecimal cu majuscule, fără două puncte).

Recomandat: folosiți Scanner IP din TapHome. Deschideți aplicația TapHome și folosiți Scanner IP (Setări → Rețea → Scanare). Scannerul descoperă dispozitivele din rețea și afișează atât adresa IP, cât și numele de gazdă mDNS. Pentru o conexiune mai fiabilă folosiți numele de gazdă în locul adresei IP — acesta rămâne același chiar dacă adresa IP a dispozitivului se schimbă după o repornire a routerului.

Metode alternative pentru aflarea adresei IP:

  • Aplicația Shelly: detaliile dispozitivului → Device info → adresa IP
  • Interfața web Shelly: conectați-vă la AP-ul dispozitivului înainte de configurarea Wi-Fi — adresa IP se afișează după salvare
  • Tabelul DHCP al routerului: căutați un nume de gazdă de forma shelly1pm-AABBCCDDEE

Pasul 3 — Configurați dispozitivul în TapHome

  1. În TapHome adăugați un nou modul Packet Parser (HTTP)
  2. Address: introduceți numele de gazdă mDNS (de ex. shelly1pm-AABBCCDDEE.local) sau adresa IP de la pasul 2
  3. Port: 80 (implicit, nu este necesară nicio modificare)
  4. Importați șablonul — TapHome va interoga periodic /status pentru a citi starea dispozitivului

Autentificarea HTTP este dezactivată implicit pe dispozitivele Shelly. Dacă ați activat protecția prin autentificare, rețineți că TapHome nu acceptă momentan HTTP Basic Auth — pentru integrarea cu TapHome lăsați autentificarea dezactivată.

Dispozitive disponibile

Shelly Plus Plug S Modul
Atribute de service
SSID Wi-Fi
Adresă IP
Puterea semnaluluiPuterea semnalului Wi-Fi în dBm — valorile mai apropiate de 0 indică o conexiune mai puternică (de ex. −55 dBm este bun, −80 dBm este slab)
Adresă MAC
Acțiuni de service
Actualizare firmwarePornește o actualizare de firmware prin rețea (OTA) din canalul stabil Shelly
RepornireRepornește dispozitivul — util după modificarea configurației rețelei sau pentru eliminarea problemelor temporare
Variabile personalizate

Shelly Plus Plug S

Citire (modul)
VAR response := SENDHTTPREQUEST("/rpc/Sys.GetStatus");
IF response.IsSuccess
    Sys.GetStatus := response.Content;
END

response := SENDHTTPREQUEST("/rpc/Sys.GetConfig");
IF response.IsSuccess
    Sys.GetConfig := response.Content;
END

response := SENDHTTPREQUEST("/rpc/WiFi.GetStatus");
IF response.IsSuccess
    WiFi.GetStatus := response.Content;
END

response := SENDHTTPREQUEST("/rpc/PLUGS_UI.GetConfig");
IF response.IsSuccess
    PLUGS_UI.GetConfig := response.Content;
END

if ! ISNULL(parsejson(Sys.GetStatus, "available_updates.stable", true))
    addwarning("New firmware update is available");
end

if parsejson(Sys.GetStatus, "restart_required", true)
    addwarning("Restart required");
end
Atribute de service
Wifi
PARSEJSON(WiFi.GetStatus, "ssid")
${ipAddress}
PARSEJSON(WiFi.GetStatus, "sta_ip")
${xml_signal_strength} [dB]
PARSEJSON(WiFi.GetStatus, "rssi")
MAC
PARSEJSON(Sys.GetStatus, "mac")
Acțiuni de service
${xml_update_fw}
VAR response := SENDHTTPREQUEST("/rpc/Shelly.Update?stage=\"stable\"");
IF response.IsSuccess
    return("OK");
else
    return("Error");
END

Reboot
VAR response := SENDHTTPREQUEST("/rpc/Shelly.Reboot");
IF response.IsSuccess
    return("OK");
else
    return("Error");
END
Întrerupător Comutator
boolean
Valori / Stări: ON · OFF

Întrerupător

Citirea stării comutatorului
var x := (sendhttprequest("/rpc/Switch.GetStatus?id=0"));
var status := x.Content;
return(PARSEJSON(status, "$.output", true));
Scrierea stării comutatorului
VAR response := SENDHTTPREQUEST("rpc/Switch.Set?id=0&on=" + if(St,"true","false"));
IF response.IsSuccess = false
  ADDERROR(response.StatusCode);
END
Contor electric Contor electric Doar citire

Putere instantanee (kW) și energie cumulată (kWh) măsurate de contorul integrat, cu diagnosticarea curentului, tensiunii și temperaturii interne

numeric Unitate: kW / kWh
Atribute de service
Curent
Tensiune
TemperaturăTemperatura internă a dispozitivului în °C — priza se oprește automat la supraîncălzire

Contor electric

Citirea consumului total
return(parsejson(parsejson(Switch.GetStatus,"aenergy"), "total")/1000);
Citirea cererii
return(parsejson(Switch.GetStatus,"apower")/1000);
Citire (modul)
VAR response := SENDHTTPREQUEST("/rpc/Switch.GetStatus?id=0");
IF response.IsSuccess
    Switch.GetStatus := response.Content;
END
Atribute de service
${electric_current} [A]
return(parsejson(Switch.GetStatus,"current"));
${electric_voltage} [V]
return(parsejson(Switch.GetStatus,"voltage"));
${temperature} [°C]
return(parsejson(parsejson(Switch.GetStatus,"temperature"), "tC"));
Mod de semnalizare LED Comutator cu mai multe valori

Comportamentul inelului LED — Oprit (dezactivat), Întrerupător (culoarea reflectă starea releului) sau Putere (culoarea reflectă sarcina: verde → galben → roșu)

string enum
Valori / Stări: ${xml_off} · ${switch} · ${xml_power}

Mod de semnalizare LED

Citirea stării comutatorului
switch(parsejson(PLUGS_UI.GetConfig, "leds.mode"), "power", 2, "switch", 1, 0)
Scrierea stării comutatorului
VAR response := SENDHTTPREQUEST("rpc/PLUGS_UI.SetConfig?config={\"leds\":{\"mode\":\"" + switch(Mu, 2, "power", 1, "switch", "off") + "\"}}");

response := SENDHTTPREQUEST("/rpc/PLUGS_UI.GetConfig");
IF response.IsSuccess
    PLUGS_UI.GetConfig := response.Content;
END
Culoare LED (starea OPRIT) Lumină HSB

Culoarea RGB și luminozitatea inelului LED cât timp releul este oprit (folosite în modul de semnalizare Întrerupător)

HSB (hue, saturation, brightness) hsv-to-rgb

Culoare LED (starea OPRIT)

Citirea luminozității
parsejson(PLUGS_UI.GetConfig, basePath + ".brightness") / 100
Scrierea luminozității
VAR rgb := HSVTORGB( Hd, Sa, Hb);

VAR response := SENDHTTPREQUEST("rpc/PLUGS_UI.SetConfig?config={\"leds\":{\"colors\":{\"switch:0\":{\"off\":{\"brightness\":" + Hb*100 + "}}}}}");

response := SENDHTTPREQUEST("/rpc/PLUGS_UI.GetConfig");
IF response.IsSuccess
    PLUGS_UI.GetConfig := response.Content;
END
Citirea nuanței
VAR HSVColor := RGBTOHSV(parsejson(PLUGS_UI.GetConfig, basePath + ".rgb[0]") *2.55, parsejson(PLUGS_UI.GetConfig, basePath + ".rgb[1]") *2.55, parsejson(PLUGS_UI.GetConfig, basePath + ".rgb[2]") *2.55);

HSVColor.Hue
Scrierea nuanței
VAR rgb := HSVTORGB( Hd, Sa, Hb);

VAR response := SENDHTTPREQUEST("rpc/PLUGS_UI.SetConfig?config={\"leds\":{\"colors\":{\"switch:0\":{\"off\":{\"rgb\":[" + rgb.red/2.55 + "," + rgb.green/2.55 + "," + rgb.blue/2.55 + "],\"brightness\":" + Hb*100 + "}}}}}");

response := SENDHTTPREQUEST("/rpc/PLUGS_UI.GetConfig");
IF response.IsSuccess
    PLUGS_UI.GetConfig := response.Content;
END
Citirea saturației
VAR HSVColor := RGBTOHSV(parsejson(PLUGS_UI.GetConfig, basePath + ".rgb[0]") *2.55, parsejson(PLUGS_UI.GetConfig, basePath + ".rgb[1]") *2.55, parsejson(PLUGS_UI.GetConfig, basePath + ".rgb[2]") *2.55);

HSVColor.Saturation
Scrierea saturației
VAR rgb := HSVTORGB( Hd, Sa, Hb);

VAR response := SENDHTTPREQUEST("rpc/PLUGS_UI.SetConfig?config={\"leds\":{\"colors\":{\"switch:0\":{\"off\":{\"rgb\":[" + rgb.red/2.55 + "," + rgb.green/2.55 + "," + rgb.blue/2.55 + "],\"brightness\":" + Hb*100 + "}}}}}");

response := SENDHTTPREQUEST("/rpc/PLUGS_UI.GetConfig");
IF response.IsSuccess
    PLUGS_UI.GetConfig := response.Content;
END
Culoare LED (starea PORNIT) Lumină HSB

Culoarea RGB și luminozitatea inelului LED cât timp releul este pornit (folosite în modul de semnalizare Întrerupător)

HSB (hue, saturation, brightness) hsv-to-rgb

Culoare LED (starea PORNIT)

Citirea luminozității
parsejson(PLUGS_UI.GetConfig, basePath + ".brightness") / 100
Scrierea luminozității
VAR rgb := HSVTORGB( Hd, Sa, Hb);

VAR response := SENDHTTPREQUEST("rpc/PLUGS_UI.SetConfig?config={\"leds\":{\"colors\":{\"switch:0\":{\"on\":{\"brightness\":" + Hb*100 + "}}}}}");

response := SENDHTTPREQUEST("/rpc/PLUGS_UI.GetConfig");
IF response.IsSuccess
    PLUGS_UI.GetConfig := response.Content;
END
Citirea nuanței
VAR HSVColor := RGBTOHSV(parsejson(PLUGS_UI.GetConfig, basePath + ".rgb[0]") *2.55, parsejson(PLUGS_UI.GetConfig, basePath + ".rgb[1]") *2.55, parsejson(PLUGS_UI.GetConfig, basePath + ".rgb[2]") *2.55);

HSVColor.Hue
Scrierea nuanței
VAR rgb := HSVTORGB( Hd, Sa, Hb);

VAR response := SENDHTTPREQUEST("rpc/PLUGS_UI.SetConfig?config={\"leds\":{\"colors\":{\"switch:0\":{\"on\":{\"rgb\":[" + rgb.red/2.55 + "," + rgb.green/2.55 + "," + rgb.blue/2.55 + "],\"brightness\":" + Hb*100 + "}}}}}");

response := SENDHTTPREQUEST("/rpc/PLUGS_UI.GetConfig");
IF response.IsSuccess
    PLUGS_UI.GetConfig := response.Content;
END
Citirea saturației
VAR HSVColor := RGBTOHSV(parsejson(PLUGS_UI.GetConfig, basePath + ".rgb[0]") *2.55, parsejson(PLUGS_UI.GetConfig, basePath + ".rgb[1]") *2.55, parsejson(PLUGS_UI.GetConfig, basePath + ".rgb[2]") *2.55);

HSVColor.Saturation
Scrierea saturației
VAR rgb := HSVTORGB( Hd, Sa, Hb);

VAR response := SENDHTTPREQUEST("rpc/PLUGS_UI.SetConfig?config={\"leds\":{\"colors\":{\"switch:0\":{\"on\":{\"rgb\":[" + rgb.red/2.55 + "," + rgb.green/2.55 + "," + rgb.blue/2.55 + "],\"brightness\":" + Hb*100 + "}}}}}");

response := SENDHTTPREQUEST("/rpc/PLUGS_UI.GetConfig");
IF response.IsSuccess
    PLUGS_UI.GetConfig := response.Content;
END
Luminozitate LED (modul Putere) Dimmer

Luminozitatea inelului LED în modul de semnalizare Putere — culoarea este aleasă automat de firmware în funcție de sarcină

numeric

Luminozitate LED (modul Putere)

Citirea nivelului
parsejson(PLUGS_UI.GetConfig, "leds.colors.power.brightness") / 100
Scrierea nivelului
VAR response := SENDHTTPREQUEST("rpc/PLUGS_UI.SetConfig?config={\"leds\":{\"colors\":{\"power\":{\"brightness\":" + Le*100 + "}}}}");

response := SENDHTTPREQUEST("/rpc/PLUGS_UI.GetConfig");
IF response.IsSuccess
    PLUGS_UI.GetConfig := response.Content;
END
Conexiune: Packet Parser → HTTP • Nume gazdă: shellyplusplugs-{MAC}.local
Îmbunătățiri posibile (23)
  • Power Factor — Power factor (0.0–1.0) reported in Switch.GetStatus response for metered devices
  • Line Frequency — AC line frequency in Hz, available in Switch.GetStatus response
  • Returned Energy — Returned/exported energy in Wh, for bi-directional metering scenarios
  • Per-minute Energy History — Rolling three-minute energy buffer in mWh, useful for fine-grained load profiling
  • Toggle Relay — Toggles the relay state without needing to know current state; not mapped as a TapHome service action
  • Auto-off Timer — Optional toggle_after parameter (seconds) on Switch.Set — relay auto-reverts after N seconds
  • Overpower Protection — Configurable power limit (W); firmware turns the relay off when exceeded. Template does not expose a setter
  • Over-voltage / Over-current Protection — Voltage and current safety thresholds configurable via Switch.SetConfig; not exposed by template
  • Initial State After Power-up — Relay behaviour after power loss (off / on / restore_last / match_input); not exposed by template
  • Reset Energy Counters — Resets aenergy / ret_aenergy counters; not exposed by template
  • Button Input Mode — Physical button behaviour (momentary / detached); device-internal, not exposed as a TapHome input
  • LED Night Mode — Dims the LED ring during a configurable HH:MM window (wraps midnight); not mapped by template
  • Local Scheduler — On-device cron-like scheduler for relay actions; no TapHome equivalent (TapHome uses its own schedules)
  • Webhooks — Outbound HTTP webhooks on device events; not used by template (TapHome polls instead)
  • mJS Scripts — Up to 10 on-device mJS scripts; out of scope for TapHome integration
  • Shelly Cloud Connection — Cloud connection status and enable/disable toggle; not mapped by template (TapHome communicates locally)
  • Bluetooth LE Configuration — BLE gateway enable/disable and observer mode; not exposed by template
  • MQTT Transport Config — Inbound/outbound MQTT RPC transport config; template uses HTTP exclusively
  • System Diagnostics — Uptime, RAM/FS utilisation, last reset reason — available in cached Sys.GetStatus but not surfaced as attributes
  • Device Time — Device wall-clock (HH:MM) and unix epoch; not surfaced as attribute
  • Beta Firmware Availability — Template warns on available_updates.stable but ignores the beta channel
  • Factory Reset — Restores factory defaults; not exposed by template (deliberately destructive)
  • HTTP Authentication — Enables digest auth on the RPC endpoint; template assumes no-auth local access

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