TapHome

Shelly Sensor Add-On

Packet Parser → HTTP
Pridal
Posledná aktualizácia: 04. 2026
Shelly Sensor Add-On

Shelly Sensor Add-On (predávaný ako Shelly Plus Add-On) je galvanicky oddelená rozširujúca doska, ktorá sa nasadí na add-on konektor kompatibilného zariadenia Shelly Plus, Gen3 alebo Gen4. Rozširuje hostiteľské Shelly o zbernicu 1-Wire pre teplotu (DS18B20), digitálny vstup (magnetický / suchý kontakt), analógový vstup (0–10 V / 0–100 %) a 0–10 V voltmeter. Add-on nie je samostatné Wi-Fi zariadenie — číta sa cez HTTP rozhranie hostiteľského Shelly v lokálnej sieti, takže TapHome mieri na IP adresu hostiteľa, nie na vlastnú IP add-onu.

TapHome šablóna vystavuje štyri teplotné senzory DS18B20 (Component ID 100–103), jeden magnetický kontakt, jeden analógový vstup a jeden voltmeter. Všetky hodnoty sa čítajú cez štandardné Shelly Gen2+ JSON-RPC API na porte 80 — cloudové pripojenie nie je potrebné.

Hardvérové pripojenie

Add-on dosadá na hostiteľské Shelly cez proprietárny sériový konektor a odoberá 3,3 V DC priamo z hostiteľa (spotreba pod 0,5 W bez senzorov). Používateľsky dostupné svorky sú rozdelené do analógovo/digitálneho bloku a troch 1-Wire senzorových pozícií.

Analógové a digitálne svorky
  • ANALOG IN — analógový vstup 0–10 V (presnosť ±5 %, prah hlásenia 1 %)
  • DIGITAL IN — vstup pre suchý kontakt / magnetický spínač (True: −15 V až 0,5 V, False: 2,5 V až 15 V)
  • VREF OUT — referenčné napätie (max. 1 mA) na napájanie senzorov s potenciometrickým delením
  • VREF+R1 OUT — referenčné napätie s 10 kΩ pull-up odporom, určené pre deliče napätia s NTC a fotorezistorom
  • GND × 2 — zemniace vývody
Zbernica 1-Wire

Tri trojpólové skupiny (VCC, DATA, GND) zdieľajú internú spoločnú 1-Wire dátovú linku. Až 5 sond DS18B20 je možné paralelne pripojiť na spoločnú zbernicu; alternatívne môže zbernicu obsadiť jediný senzor DHT22 (DHT22 pri aktívnom stave blokuje OneWire sken). Celkový VCC výstup je obmedzený na 10 mA, čo postačuje pre päť sond DS18B20.

Maximálny prierez vodiča na všetkých svorkách je 1 mm² (17 AWG).

Nemiešajte DHT22 so sondami DS18B20 na jednej zbernici. DHT22 blokuje enumeráciu OneWire a hostiteľské Shelly nedokáže počas jeho pripojenia zbernicu znova prehľadať.

Konfigurácia

Shelly Sensor Add-On nemá vlastnú IP adresu. Pri importe TapHome šablóny zadaj do parametra IpAddress IP adresu hostiteľského Shelly (zariadenie Plus / Gen3 / Gen4, na ktoré je add-on nasadený) — predvolené je 192.168.0.1.

Všetka komunikácia prebieha cez Gen2+ JSON-RPC API po HTTP GET na porte 80. Raz za poll cyklus šablóna načíta /rpc/Sys.GetStatus a /rpc/SensorAddon.GetPeripherals do interných cache premenných a každý device script sa potom pýta svoj vlastný endpoint (Temperature.GetStatus, Input.GetStatus alebo Voltmeter.GetStatus).

Kompatibilné hostiteľské zariadenia

Add-on spolupracuje s nasledujúcimi Shelly zariadeniami (zo zoznamu kompatibility od výrobcu):

  • Shelly Plus: 1, 1PM, 1 UL, 1PM UL, 2PM, 2PM UL, i4, i4DC, 0-10 V Dimmer PM, RGBW PM
  • Shelly Gen3: 1, 1PM, 2PM, Shutter, i4, DALI Dimmer, Dimmer 0/1-10 V PM, EM
  • Shelly Gen4: 1, 1PM, 2PM

Firmvér hostiteľského Shelly musí vystavovať službu SensorAddon — staršie vydania Plus firmvéru ju nemusia obsahovať. Aktualizuj hostiteľa na najnovší firmvér, ak vo web UI chýba menu add-on.

Aktivácia periférií Add-on

Add-on sa konfiguruje jednorazovo vo web rozhraní hostiteľského Shelly — TapHome ho nenastavuje. Pred importom šablóny vykonaj tieto kroky:

  1. Nasaď add-on dosku na add-on konektor hostiteľského Shelly a zapni napájanie hostiteľa.
  2. Otvor web UI hostiteľa na http://{host-ip}/ a prihlás sa.
  3. Prejdi do Settings → Add-on a zaregistruj add-on (toto volá Sys.SetConfig s device.addon_type = "sensor" na pozadí). Reštartuj hostiteľa, ak si o to požiada.
  4. Otvor Settings → Components → Peripherals a klikni na tlačidlo +.
  5. Vyber typ periférie — Temperature (DS18B20), Digital Input, Analog Input alebo Voltmeter.
  6. Pri DS18B20 klikni Rescan, zaškrtni každú nájdenú sondu a zvoľ Add and reboot. Prvá sonda dostane Component ID 100, druhá 101 a tak ďalej.
  7. Pri Digital Input nastav Mode na Switch alebo Button (šablóna z tohto Component-u číta state).
  8. Pri Analog Input a Voltmeter sú predvolené hodnoty v poriadku — relevantné sú len názov a delta prah.

TapHome šablóna má napevno nastavené Component ID 100–103 pre DS18B20 a ID 100 pre magnetický kontakt, analógový vstup a voltmeter. Pri pridávaní periférií vo web UI Shelly over, že priradené ID zodpovedajú tomuto číslovaniu — ak periférii vymažeš a znovu pridáš, Shelly pridelí ďalšie voľné ID, ktoré môže presiahnuť 103 a TapHome zariadenie ticho prestane dostávať dáta.

Pred odstránením periférie si poznač jej Component ID. Ak prekladáš sondu DS18B20, použi radšej akciu Edit → Update address vo web UI — Component ID tak zostane rovnaké.

Na hostiteľskom Shelly musí byť vypnutá HTTP Digest Authentication — TapHome neodosiela autentifikované požiadavky. Nechaj zariadenie bez autentifikácie alebo obmedz prístup na úrovni siete.

Schopnosti zariadenia

Šablóna združuje sedem read-only senzorových zariadení pod jedným HTTP modulom, ktorý mieri na hostiteľské Shelly.

Teplotné sondy (DS18B20)

Vystavené sú štyri OneWire teplotné sondy DS18B20, jedna na Component ID 100–103:

  • Temperature Sensor DS18B20 (100) — číta /rpc/Temperature.GetStatus?id=100tC (°C)
  • Temperature Sensor DS18B20 (101) — číta /rpc/Temperature.GetStatus?id=101tC
  • Temperature Sensor DS18B20 (102) — číta /rpc/Temperature.GetStatus?id=102tC
  • Temperature Sensor DS18B20 (103) — číta /rpc/Temperature.GetStatus?id=103tC

Každé zariadenie má používateľsky konfigurovateľnú vlastnú premennú Id (predvolená hodnota zodpovedá pozícii). Interval čítania je 15 sekúnd na sondu. Web UI Shelly umožňuje doladiť delta prah (0,1–5 °C) a offset (±50 °C) každej sondy pre kalibráciu.

Magnetický kontakt (digitálny vstup)

Reed Contact (100) číta /rpc/Input.GetStatus?id=100state (boolean). Vo web UI Shelly musí byť vstup nakonfigurovaný ako Switch alebo Button (nie Analog ani Count). Interval čítania je 2,5 sekundy. Predvolená hodnota premennej Id je 100.

Analógový vstup

Analog Input (100) číta /rpc/Input.GetStatus?id=100percent, delí 100 tak, aby hodnota bola normalizovaná na 0,0–1,0 zlomok, aký TapHome pre analógové vstupy očakáva. Vstup musí byť vo web UI Shelly nakonfigurovaný ako Analog. Presnosť je ±5 %, prah hlásenia 1 %. Interval čítania je 2,5 sekundy.

Pozor, magnetický kontakt a analógový vstup zdieľajú Component ID 100 — hardvér Shelly má na add-on len jeden digitálny a jeden analógový vstup a aktívny režim určuje typ vstupu vo web UI (switch/button vs analog). V TapHome použi buď zariadenie Reed Contact, alebo Analog Input, nie oboje súčasne.

Voltmeter

Voltmeter (100) číta /rpc/Voltmeter.GetStatus?id=100voltage (V). Rozsah je 0–10 V s presnosťou ±5 % a prahom hlásenia 0,1 V. Je modelovaný ako PacketParserVariable so schopnosťou sensor — surové napätie sa vystavuje ako skalárna hodnota, nie ako samostatný typ voltmeter. Interval čítania je 15 sekúnd.

Ďalšie schopnosti

Shelly Sensor Add-On natívne podporuje aj teplotno-vlhkostný senzor DHT22 (jedna sonda vytvára na hostiteľovi spárované Component-y temperature:100 a humidity:100). TapHome šablóna zapája teplotu na všetkých štyroch zariadeniach DS18B20, ale má skript pre vlhkosť napevno nastavený na NaN — DHT22 vlhkosť preto nie je vystavená. Používatelia, ktorí potrebujú vlhkosť, môžu šablónu rozšíriť o samostatný read script na /rpc/Humidity.GetStatus?id=100.

Dve ďalšie schopnosti existujú na úrovni hardvéru/firmvéru, ale sú mimo rozsahu tejto šablóny: piaty slot DS18B20 (Shelly zbernica podporuje až päť sond; šablóna číta len ID 100–103) a režim počítača impulzov na digitálnom vstupe (counts.total, counts.by_minute, freq), ktorý vyžaduje nakonfigurovať vstup ako type=count vo web UI Shelly. Oboje je možné doplniť v budúcej aktualizácii šablóny.

Riešenie problémov

Hostiteľské Shelly neodpovedá
  1. Over, že hostiteľské Shelly je pripojené k Wi-Fi a má platnú IP adresu.
  2. Skús použiť mDNS hostname hostiteľa (napr. shellyplus1pm-AABBCCDDEE.local) namiesto IP — IP sa mohlo po DHCP renew zmeniť. Add-on dedí hostname hostiteľa, vlastné nemá.
  3. Otvor v prehliadači http://{host-ip}/rpc/Shelly.GetDeviceInfo — ak odpovedá JSON-om, hostiteľ je dostupný.
  4. Over, že TapHome CCU a hostiteľské Shelly sú v rovnakej sieti / VLAN.
  5. Uisti sa, že vo web UI Shelly je vypnutá HTTP Digest Authentication.
Senzory nezobrazujú dáta
  1. Otvor web UI Shelly → Components → Peripherals. Potvrď, že periféria je v zozname s presne tým Component ID, ktoré šablóna očakáva (temperature:100103, input:100, voltmeter:100). Ak je ID nad 103 alebo posunuté, prečísluj periférie tak, že ich vymažeš a znovu pridáš v správnom poradí, alebo uprav šablónu, aby zodpovedala tvojim ID.
  2. Pri DS18B20: klikni Rescan v riadku periférie DS18B20 — adresa na zbernici by sa mala rozpoznať. Ak sa zobrazuje N/A, skontroluj zapojenie VCC/DATA/GND a 10 kΩ pull-up na DATA (niektoré generické DS18B20 dosky ho neobsahujú; Shelly ho poskytuje interne).
  3. Otestuj endpoint priamo: GET http://{host-ip}/rpc/Temperature.GetStatus?id=100. Odpoveď by mala obsahovať nenulovú hodnotu tC.
  4. Reštartuj hostiteľské Shelly po pridaní alebo odstránení periférií. Component-y sa nemusia objaviť až po reštarte.
Analógový vstup číta nulu
  1. Potvrď, že type vstupu je vo web UI Shelly nastavený na analog (nie switch, button ani count). Šablóna číta percent, ktorý je naplnený len v analógovom režime.
  2. Skontroluj zapojenie — zdroj 0–10 V musí byť medzi ANALOG IN a GND. Pre senzory s potenciometrickým delením (NTC, fotorezistor) použi VREF+R1 OUT (s vstavaným 10 kΩ pull-up) namiesto VREF OUT.
  3. Nezabudni, že TapHome dostáva hodnotu ako 0,0–1,0 zlomok (šablóna delí percent stovkou).
Chýba vlhkosť DHT22

Ide o zámerné obmedzenie šablóny — skript readhumidity je napevno nastavený na NaN v každom slote zariadenia DS18B20. Hardvér add-onu DHT22 podporuje, ale na vystavenie vlhkosti v TapHome treba šablónu rozšíriť o samostatné zariadenie, ktoré číta /rpc/Humidity.GetStatus?id=100rh. DS18B20 a DHT22 nemôžu koexistovať na tej istej zbernici — ak prejdeš na DHT22, odpoj sondy DS18B20.

Piata sonda DS18B20 nie je viditeľná

Šablóna číta len ID 100–103. Piata sonda zaregistrovaná vo web UI Shelly ako temperature:104 na hostiteľovi existuje, ale TapHome ju nečíta. Buď presuň sondu, na ktorej ti záleží, do niektorého slotu 100–103 (vymaž a znovu pridaj v poradí), alebo rozšír šablónu o piate zariadenie, ktoré mieri na id=104.

Ako nainštalovať v TapHome

Predpoklady

  • Zariadenie Shelly nainštalované a zapnuté
  • Lokálna Wi-Fi sieť (2,4 GHz)
  • TapHome CCU v rovnakej sieti

Krok 1 — Pripojte Shelly k Wi-Fi

Možnosť A — Aplikácia Shelly (odporúčané):

  1. Stiahnite si aplikáciu Shelly (iOS / Android)
  2. Klepnite na +Add Device a postupujte podľa sprievodcu Bluetooth párovaním
  3. Po výzve zadajte svoje Wi-Fi prihlasovacie údaje

Možnosť B — AP režim (bez aplikácie):

  1. Pri prvom zapnutí zariadenie vytvorí hotspot: ShellyXXX-AABBCCDDEE
  2. Pripojte telefón/PC k tomuto hotspotu
  3. Otvorte http://192.168.33.1Internet & SecurityWi-Fi Mode - Client
  4. Zadajte SSID a heslo → Save

Shelly podporuje iba 2,4 GHz siete. 5 GHz siete sa pri skenovaní nezobrazia.

Krok 2 — Zistite IP adresu

Po pripojení k Wi-Fi zistite priradenú IP adresu jedným z nasledujúcich spôsobov:

  • Aplikácia Shelly: Detail zariadenia → Device info → IP adresa
  • Webové rozhranie Shelly: Pripojte sa k AP zariadenia pred nastavením Wi-Fi — IP sa zobrazí po uložení
  • DHCP tabuľka routera: Hľadajte hostname ako shelly1pm-AABBCCDDEE
  • mDNS: Pingnite shelly<model>-<mac>.local (napr. shelly1pm-AABBCCDDEE.local) z rovnakej siete

Priraďte zariadeniu Shelly statickú IP (DHCP rezerváciu) vo vašom routeri, aby sa adresa nezmenila po reštarte routera.

Krok 3 — Konfigurácia v TapHome

  1. V TapHome pridajte nový modul Packet Parser (HTTP)
  2. IP Address: zadajte IP z kroku 2 (napr. 192.168.1.50)
  3. Port: 80 (predvolený, nie je potrebné meniť)
  4. Importujte šablónu — TapHome bude pravidelne čítať /status pre zistenie stavu zariadenia

HTTP autentifikácia je na zariadeniach Shelly štandardne vypnutá. Ak ste povolili ochranu prihlásením, TapHome momentálne nepodporuje HTTP Basic Auth — pre integráciu s TapHome ponechajte autentifikáciu vypnutú.

Dostupné zariadenia

Shelly Sensor Add-On Modul
Vlastné premenné

Shelly Sensor Add-On

Čítanie (modul)
var res := sendhttprequest("/rpc/Sys.GetStatus");
SysGetStatus := res.Content;
res := sendhttprequest("/rpc/SensorAddon.GetPeripherals");
SensorAddonGetPeripherals := res.Content;
Analógový vstup Analógový vstup Len na čítanie

Analógový vstup 0–10 V / 0–100 % — číta /rpc/Input.GetStatus?id=100 → percent a delí 100, takže hodnotu vystavuje ako zlomok 0,0–1,0. Vyžaduje, aby bol typ vstupu vo web UI Shelly nastavený na analog. Presnosť ±5 %

numeric Jednotka: % (normalised) json_path
Premenná: IdComponent ID periférie analógového vstupu na hostiteľskom Shelly (periférie add-onu používajú 100–199; prvý analógový vstup je 100)

Analógový vstup

Čítanie vstupnej úrovne
var res := sendhttprequest("/rpc/Input.GetStatus?id=" + Id);
parsejson(res.Content, "percent") / 100
Magnetický kontakt Jazýčkový kontakt Len na čítanie

Digitálny vstup pre suchý kontakt / magnetický spínač — číta /rpc/Input.GetStatus?id=100 → state (true = zatvorený, false = otvorený). Vyžaduje, aby bol typ vstupu vo web UI Shelly nastavený na switch alebo button (zdieľa Component ID 100 s analógovým vstupom — aktívny môže byť len jeden režim)

boolean json_path
Premenná: IdComponent ID periférie digitálneho vstupu na hostiteľskom Shelly (predvolená hodnota 100)

Magnetický kontakt

Čítanie
var res := sendhttprequest("/rpc/Input.GetStatus?id=" + Id);
parsejson(res.Content, "state")
Teplotný senzor (DS18B20 #1) Teplotný senzor Len na čítanie

Prvá sonda DS18B20 na zbernici 1-Wire — číta /rpc/Temperature.GetStatus?id=100 → tC (°C). Vlhkosť je napevno nastavená na NaN (šablóna nevystavuje DHT22)

numeric Jednotka: °C json_path
Premenná: IdComponent ID prvej sondy DS18B20 na hostiteľskom Shelly (predvolená hodnota 100)

Teplotný senzor (DS18B20 #1)

Čítanie vlhkosti
NaN
Čítanie teploty
var res := sendhttprequest("/rpc/Temperature.GetStatus?id=" + Id);
parsejson(res.Content, "tC")
Teplotný senzor (DS18B20 #2) Teplotný senzor Len na čítanie

Druhá sonda DS18B20 na zbernici 1-Wire — číta /rpc/Temperature.GetStatus?id=101 → tC (°C)

numeric Jednotka: °C json_path
Premenná: IdComponent ID druhej sondy DS18B20 na hostiteľskom Shelly (predvolená hodnota 101)

Teplotný senzor (DS18B20 #2)

Čítanie vlhkosti
NaN
Čítanie teploty
var res := sendhttprequest("/rpc/Temperature.GetStatus?id=" + Id);
parsejson(res.Content, "tC")
Teplotný senzor (DS18B20 #3) Teplotný senzor Len na čítanie

Tretia sonda DS18B20 na zbernici 1-Wire — číta /rpc/Temperature.GetStatus?id=102 → tC (°C)

numeric Jednotka: °C json_path
Premenná: IdComponent ID tretej sondy DS18B20 na hostiteľskom Shelly (predvolená hodnota 102)

Teplotný senzor (DS18B20 #3)

Čítanie vlhkosti
NaN
Čítanie teploty
var res := sendhttprequest("/rpc/Temperature.GetStatus?id=" + Id);
parsejson(res.Content, "tC")
Teplotný senzor (DS18B20 #4) Teplotný senzor Len na čítanie

Štvrtá sonda DS18B20 na zbernici 1-Wire — číta /rpc/Temperature.GetStatus?id=103 → tC (°C). Posledný slot DS18B20 v šablóne — Shelly zbernica podporuje až 5 sond, ale čítajú sa len ID 100–103

numeric Jednotka: °C json_path
Premenná: IdComponent ID štvrtej sondy DS18B20 na hostiteľskom Shelly (predvolená hodnota 103)

Teplotný senzor (DS18B20 #4)

Čítanie vlhkosti
NaN
Čítanie teploty
var res := sendhttprequest("/rpc/Temperature.GetStatus?id=" + Id);
parsejson(res.Content, "tC")
Voltmeter Premenná Len na čítanie

Meranie napätia 0–10 V — číta /rpc/Voltmeter.GetStatus?id=100 → voltage (V). Vystavené ako read-only skalárna hodnota cez PacketParserVariable (nie natívny voltmeter device). Presnosť ±5 %, prah hlásenia 0,1 V

numeric Jednotka: V json_path
Premenná: IdComponent ID periférie voltmetra na hostiteľskom Shelly (predvolená hodnota 100)

Voltmeter

Čítanie
var res := sendhttprequest("/rpc/Voltmeter.GetStatus?id=" + Id);
parsejson(res.Content, "voltage")
Pripojenie: Packet Parser → HTTP
Možné vylepšenia (7)
  • DHT22 Humidity — Template hardcodes readhumidity = NaN on all four DS18B20 temperature devices. The add-on physically supports a DHT22 sensor (temperature + humidity) which creates paired humidity:100 + temperature:100 Components on the host. A separate PacketParser device reading humidity:100 → rh would expose this.
  • 5th DS18B20 slot — The Shelly Plus Add-on supports up to 5 DS18B20 probes on the shared 1-Wire bus. The template only wires 4 (IDs 100–103). A fifth probe registered as temperature:104 in the Shelly web UI would not be polled.
  • OneWire bus scan — Manufacturer API can discover unmapped DS18B20 probes. Not exposed as a TapHome service action — users must scan via the Shelly web UI. Useful for replacing physical probes.
  • Peripheral lifecycle management — Adding/removing/updating peripherals is performed exclusively via the Shelly web UI; the template does not expose these as TapHome service actions by design.
  • Enable / disable add-on — Activation is a one-time setup step performed in the Shelly web UI (or via Sys.SetConfig with device.addon_type = "sensor"). Not exposed by the template.
  • Pulse counter mode — Digital input can be configured as type=count and would expose counts.total / counts.by_minute / freq. Template only reads state (switch/button mode).
  • Voltmeter transformed value — Voltmeter supports an optional JavaScript expression (xvoltage.expr) that transforms the raw voltage (e.g. for a voltage-divided NTC temperature reading). Template reads only raw voltage.

Zdroje