
Shelly Sensor Add-On (prodávaný jako Shelly Plus Add-On) je galvanicky oddělená rozšiřující deska, která se nasadí na add-on konektor kompatibilního zařízení Shelly Plus, Gen3 nebo Gen4. Rozšiřuje hostitelské Shelly o sběrnici 1-Wire pro teplotu (DS18B20), digitální vstup (magnetický / suchý kontakt), analogový vstup (0–10 V / 0–100 %) a 0–10 V voltmetr. Add-on není samostatné Wi-Fi zařízení — čte se přes HTTP rozhraní hostitelského Shelly v lokální síti, takže TapHome cílí na IP adresu hostitele, nikoli na vlastní IP add-onu.
TapHome šablona vystavuje čtyři teplotní senzory DS18B20 (Component ID 100–103), jeden magnetický kontakt, jeden analogový vstup a jeden voltmetr. Všechny hodnoty se čtou přes standardní Shelly Gen2+ JSON-RPC API na portu 80 — cloudové připojení není potřeba.
Hardwarové připojení
Add-on dosedá na hostitelské Shelly přes proprietární sériový konektor a odebírá 3,3 V DC přímo z hostitele (spotřeba pod 0,5 W bez senzorů). Uživatelsky dostupné svorky jsou rozděleny do analogově/digitálního bloku a tří 1-Wire senzorových pozic.
Analogové a digitální svorky
ANALOG IN— analogový vstup 0–10 V (přesnost ±5 %, práh hlášení 1 %)DIGITAL IN— vstup pro suchý kontakt / magnetický spínač (True: −15 V až 0,5 V, False: 2,5 V až 15 V)VREF OUT— referenční napětí (max. 1 mA) pro napájení senzorů s potenciometrickým dělenímVREF+R1 OUT— referenční napětí s 10 kΩ pull-up odporem, určené pro děliče napětí s NTC a fotorezistoremGND× 2 — zemnící vývody
Sběrnice 1-Wire
Tři třípólové skupiny (VCC, DATA, GND) sdílejí interní společnou 1-Wire datovou linku. Až 5 sond DS18B20 lze paralelně zapojit na společnou sběrnici; alternativně může sběrnici obsadit jediný senzor DHT22 (DHT22 při aktivním stavu blokuje OneWire sken). Celkový VCC výstup je omezen na 10 mA, což postačuje pro pět sond DS18B20.
Maximální průřez vodiče na všech svorkách je 1 mm² (17 AWG).
Nemíchejte DHT22 se sondami DS18B20 na jedné sběrnici. DHT22 blokuje enumeraci OneWire a hostitelské Shelly nedokáže během jeho připojení sběrnici znovu prohledat.
Konfigurace
Shelly Sensor Add-On nemá vlastní IP adresu. Při importu TapHome šablony zadej do parametru IpAddress IP adresu hostitelského Shelly (zařízení Plus / Gen3 / Gen4, na kterém je add-on nasazen) — výchozí je 192.168.0.1.
Veškerá komunikace probíhá přes Gen2+ JSON-RPC API po HTTP GET na portu 80. Jednou za poll cyklus šablona načte /rpc/Sys.GetStatus a /rpc/SensorAddon.GetPeripherals do interních cache proměnných a každý device skript se pak dotazuje na vlastní endpoint (Temperature.GetStatus, Input.GetStatus nebo Voltmeter.GetStatus).
Kompatibilní hostitelská zařízení
Add-on spolupracuje s následujícími Shelly zařízeními (ze seznamu kompatibility výrobce):
- 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
Firmware hostitelského Shelly musí vystavovat službu SensorAddon — starší vydání Plus firmwaru ji nemusí obsahovat. Aktualizuj hostitele na nejnovější firmware, pokud ve web UI chybí menu add-on.
Aktivace periferií Add-on
Add-on se konfiguruje jednorázově ve webovém rozhraní hostitelského Shelly — TapHome jej nenastavuje. Před importem šablony proveď tyto kroky:
- Nasaď add-on desku na add-on konektor hostitelského Shelly a zapni napájení hostitele.
- Otevři web UI hostitele na
http://{host-ip}/a přihlas se. - Přejdi do Settings → Add-on a zaregistruj add-on (toto na pozadí volá
Sys.SetConfigsdevice.addon_type = "sensor"). Restartuj hostitele, pokud si o to řekne. - Otevři Settings → Components → Peripherals a klikni na tlačítko +.
- Vyber typ periferie — Temperature (DS18B20), Digital Input, Analog Input nebo Voltmeter.
- U DS18B20 klikni Rescan, zaškrtni každou nalezenou sondu a zvol Add and reboot. První sonda dostane Component ID
100, druhá101a tak dále. - U Digital Input nastav Mode na Switch nebo Button (šablona z tohoto Componentu čte
state). - U Analog Input a Voltmeter jsou výchozí hodnoty v pořádku — relevantní jsou pouze název a delta práh.
TapHome šablona má napevno nastavená Component ID 100–103 pro DS18B20 a ID 100 pro magnetický kontakt, analogový vstup a voltmetr. Při přidávání periferií ve web UI Shelly ověř, že přiřazená ID odpovídají tomuto číslování — pokud periferii smažeš a znovu přidáš, Shelly přiřadí další volné ID, které může přesáhnout 103 a TapHome zařízení tiše přestane dostávat data.
Před odstraněním periferie si zaznamenej její Component ID. Pokud překládáš sondu DS18B20, použij raději akci Edit → Update address ve web UI — Component ID tak zůstane stejné.
Na hostitelském Shelly musí být vypnutá HTTP Digest Authentication — TapHome neposílá autentifikované požadavky. Nechej zařízení bez autentifikace nebo omez přístup na úrovni sítě.
Schopnosti zařízení
Šablona sdružuje sedm read-only senzorových zařízení pod jedním HTTP modulem, který cílí na hostitelské Shelly.
Teplotní sondy (DS18B20)
Vystaveny jsou čtyři OneWire teplotní sondy DS18B20, jedna na Component ID 100–103:
- Temperature Sensor DS18B20 (100) — čte
/rpc/Temperature.GetStatus?id=100→tC(°C) - Temperature Sensor DS18B20 (101) — čte
/rpc/Temperature.GetStatus?id=101→tC - Temperature Sensor DS18B20 (102) — čte
/rpc/Temperature.GetStatus?id=102→tC - Temperature Sensor DS18B20 (103) — čte
/rpc/Temperature.GetStatus?id=103→tC
Každé zařízení má uživatelsky konfigurovatelnou vlastní proměnnou Id (výchozí hodnota odpovídá pozici). Interval čtení je 15 sekund na sondu. Web UI Shelly umožňuje doladit delta práh (0,1–5 °C) a offset (±50 °C) každé sondy pro kalibraci.
Magnetický kontakt (digitální vstup)
Reed Contact (100) čte /rpc/Input.GetStatus?id=100 → state (boolean). Ve web UI Shelly musí být vstup nakonfigurován jako Switch nebo Button (ne Analog ani Count). Interval čtení je 2,5 sekundy. Výchozí hodnota proměnné Id je 100.
Analogový vstup
Analog Input (100) čte /rpc/Input.GetStatus?id=100 → percent, dělí 100 tak, aby hodnota byla normalizována na zlomek 0,0–1,0, jaký TapHome pro analogové vstupy očekává. Vstup musí být ve web UI Shelly nakonfigurován jako Analog. Přesnost je ±5 %, práh hlášení 1 %. Interval čtení je 2,5 sekundy.
Pozor, magnetický kontakt a analogový vstup sdílejí Component ID 100 — hardware Shelly má na add-on pouze jeden digitální a jeden analogový vstup a aktivní režim určuje typ vstupu ve web UI (switch/button vs analog). V TapHome použij buď zařízení Reed Contact, nebo Analog Input, ne oba současně.
Voltmetr
Voltmeter (100) čte /rpc/Voltmeter.GetStatus?id=100 → voltage (V). Rozsah je 0–10 V s přesností ±5 % a prahem hlášení 0,1 V. Je modelován jako PacketParserVariable se schopností sensor — surové napětí se vystavuje jako skalární hodnota, nikoli jako samostatný typ voltmetru. Interval čtení je 15 sekund.
Další schopnosti
Shelly Sensor Add-On nativně podporuje i teplotně-vlhkostní senzor DHT22 (jedna sonda vytváří na hostiteli spárované Componenty temperature:100 a humidity:100). TapHome šablona zapojuje teplotu na všech čtyřech zařízeních DS18B20, ale má skript pro vlhkost napevno nastavený na NaN — vlhkost DHT22 proto není vystavena. Uživatelé, kteří potřebují vlhkost, mohou šablonu rozšířit o samostatný read skript na /rpc/Humidity.GetStatus?id=100.
Dvě další schopnosti existují na úrovni hardwaru/firmwaru, ale jsou mimo rozsah této šablony: pátý slot DS18B20 (sběrnice Shelly podporuje až pět sond; šablona čte pouze ID 100–103) a režim pulzního čítače na digitálním vstupu (counts.total, counts.by_minute, freq), který vyžaduje nakonfigurovat vstup jako type=count ve web UI Shelly. Obojí lze doplnit v budoucí aktualizaci šablony.
Řešení problémů
Hostitelské Shelly neodpovídá
- Ověř, že hostitelské Shelly je připojeno k Wi-Fi a má platnou IP adresu.
- Zkus použít mDNS hostname hostitele (např.
shellyplus1pm-AABBCCDDEE.local) místo IP — IP se mohla po DHCP renew změnit. Add-on dědí hostname hostitele, vlastní nemá. - Otevři v prohlížeči
http://{host-ip}/rpc/Shelly.GetDeviceInfo— pokud odpoví JSONem, hostitel je dostupný. - Ověř, že TapHome CCU a hostitelské Shelly jsou ve stejné síti / VLAN.
- Ujisti se, že je ve web UI Shelly vypnutá HTTP Digest Authentication.
Senzory nezobrazují data
- Otevři web UI Shelly → Components → Peripherals. Potvrď, že periferie je v seznamu s přesně tím Component ID, které šablona očekává (
temperature:100–103,input:100,voltmeter:100). Pokud je ID nad103nebo posunuté, přečísluj periferie tak, že je smažeš a znovu přidáš ve správném pořadí, nebo uprav šablonu, aby odpovídala tvým ID. - U DS18B20: klikni Rescan v řádku periferie DS18B20 — adresa na sběrnici by se měla rozpoznat. Pokud se zobrazuje N/A, zkontroluj zapojení VCC/DATA/GND a 10 kΩ pull-up na
DATA(některé generické DS18B20 desky jej neobsahují; Shelly jej poskytuje interně). - Otestuj endpoint přímo:
GET http://{host-ip}/rpc/Temperature.GetStatus?id=100. Odpověď by měla obsahovat nenulovou hodnotutC. - Restartuj hostitelské Shelly po přidání nebo odstranění periferií. Componenty se nemusí objevit až po restartu.
Analogový vstup čte nulu
- Potvrď, že
typevstupu je ve web UI Shelly nastaven naanalog(neswitch,buttonanicount). Šablona čtepercent, který je naplněn pouze v analogovém režimu. - Zkontroluj zapojení — zdroj 0–10 V musí být mezi
ANALOG INaGND. Pro senzory s potenciometrickým dělením (NTC, fotorezistor) použijVREF+R1 OUT(s vestavěným 10 kΩ pull-up) místoVREF OUT. - Nezapomeň, že TapHome dostává hodnotu jako zlomek 0,0–1,0 (šablona dělí
percentstem).
Chybí vlhkost DHT22
Jde o záměrné omezení šablony — skript readhumidity je napevno nastaven na NaN v každém slotu zařízení DS18B20. Hardware add-onu DHT22 podporuje, ale pro vystavení vlhkosti v TapHome je třeba šablonu rozšířit o samostatné zařízení, které čte /rpc/Humidity.GetStatus?id=100 → rh. DS18B20 a DHT22 nemohou koexistovat na stejné sběrnici — pokud přejdeš na DHT22, odpoj sondy DS18B20.
Pátá sonda DS18B20 není vidět
Šablona čte pouze ID 100–103. Pátá sonda registrovaná ve web UI Shelly jako temperature:104 na hostiteli existuje, ale TapHome ji nečte. Buď přesuň sondu, na které ti záleží, do některého slotu 100–103 (smaž a znovu přidej v pořadí), nebo rozšiř šablonu o páté zařízení, které cílí na id=104.