TapHome

Shelly Sensor Add-On

Packet Parser → HTTP
Beküldő
Utoljára frissítve: 04. 2026
Shelly Sensor Add-On

A Shelly Sensor Add-On (a kereskedelmi neve Shelly Plus Add-On) egy galvanikusan leválasztott bővítőkártya, amely egy kompatibilis Shelly Plus, Gen3 vagy Gen4 készülék add-on csatlakozójára csatlakozik. A gazda Shelly-t kiegészíti egy 1-Wire hőmérséklet-busszal (DS18B20), egy digitális bemenettel (mágneses / száraz kontaktus), egy analóg bemenettel (0–10 V / 0–100 %) és egy 0–10 V voltmérővel. Az add-on nem önálló Wi-Fi eszköz — a gazda Shelly HTTP felületén keresztül olvasható a helyi hálózaton, így a TapHome a gazda IP-jét címzi, nem az add-on saját IP-jét.

A TapHome sablon négy DS18B20 hőmérséklet-érzékelőt (Component ID 100–103), egy mágneses kontaktust, egy analóg bemenetet és egy voltmérőt tesz elérhetővé. Minden érték a szabványos Shelly Gen2+ JSON-RPC API-n keresztül a 80-as porton kerül lekérdezésre — felhőkapcsolat nem szükséges.

Hardveres csatlakozás

Az add-on egy egyedi soros csatlakozón keresztül illeszkedik a gazda Shelly-re, és közvetlenül a gazdából kap 3,3 V DC tápot (érzékelők nélküli fogyasztás 0,5 W alatt). A felhasználó által elérhető sorkapcsok analóg/digitális blokkra és három 1-Wire érzékelőpozícióra vannak osztva.

Analóg és digitális sorkapcsok
  • ANALOG IN — 0–10 V analóg bemenet (pontosság ±5 %, jelentési küszöb 1 %)
  • DIGITAL IN — száraz kontaktus / mágneses kapcsoló bemenet (True: −15 V és 0,5 V között, False: 2,5 V és 15 V között)
  • VREF OUT — referenciafeszültség (max. 1 mA) potenciométeres érzékelők táplálásához
  • VREF+R1 OUT — referenciafeszültség 10 kΩ pull-up ellenállással, NTC és fotoellenállás feszültségosztókhoz
  • GND × 2 — földvisszatérők
1-Wire busz

Három háromkapcsos csoport (VCC, DATA, GND) osztozik belsőleg egy közös 1-Wire adatvezetéken. Akár 5 DS18B20 szonda párhuzamosan köthető a közös buszra; alternatívaként egyetlen DHT22 érzékelő foglalhatja el a buszt (a DHT22 aktív állapotban blokkolja a OneWire keresést). A teljes VCC-kimenet 10 mA-re van korlátozva, ami elegendő öt DS18B20 szondához.

A vezeték maximális keresztmetszete minden sorkapcson 1 mm² (17 AWG).

Ne keverje a DHT22-t és a DS18B20 szondákat ugyanazon a buszon. A DHT22 blokkolja a OneWire enumerációt, és a gazda Shelly nem tudja újra felderíteni a buszt, amíg csatlakoztatva van.

Konfiguráció

A Shelly Sensor Add-On nem rendelkezik saját IP-címmel. A TapHome sablon importálása során az IpAddress paraméterbe a gazda Shelly IP-címét írd be (a Plus / Gen3 / Gen4 készüléket, amelyre az add-on fel van helyezve) — az alapértelmezett 192.168.0.1.

A teljes kommunikáció Gen2+ JSON-RPC API-n keresztül zajlik HTTP GET kéréssel a 80-as porton. Pollonként egyszer a sablon betölti a /rpc/Sys.GetStatus és /rpc/SensorAddon.GetPeripherals válaszát belső cache változókba, majd minden eszköz szkriptje a saját endpointját kérdezi (Temperature.GetStatus, Input.GetStatus vagy Voltmeter.GetStatus).

Kompatibilis gazdakészülékek

Az add-on a következő Shelly készülékekkel működik együtt (a gyártó kompatibilitási listája alapján):

  • 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

A gazda Shelly firmware-ének elérhetővé kell tennie a SensorAddon szolgáltatást — régebbi Plus firmware verziókból ez hiányozhat. Frissítsd a gazdát a legújabb firmware-re, ha a web UI-ban hiányzik az add-on menü.

Add-on perifériák aktiválása

Az add-on-t egyszer kell konfigurálni a gazda Shelly webes felületén — a TapHome nem állítja be. A sablon importálása előtt végezd el a következőket:

  1. Helyezd rá az add-on kártyát a gazda Shelly add-on csatlakozójára, és kapcsold be a gazdát.
  2. Nyisd meg a gazda web UI-t a http://{host-ip}/ címen, és jelentkezz be.
  3. Navigálj a Settings → Add-on menühöz és regisztráld az add-on-t (ez a háttérben meghívja a Sys.SetConfig-ot device.addon_type = "sensor" paraméterrel). Kérés esetén indítsd újra a gazdát.
  4. Nyisd meg a Settings → Components → Peripherals menüt, és kattints a + gombra.
  5. Válaszd ki a periféria típusát — Temperature (DS18B20), Digital Input, Analog Input vagy Voltmeter.
  6. DS18B20 esetén kattints a Rescan gombra, pipáld be az észlelt szondákat, majd válaszd az Add and reboot opciót. Az első szonda a 100 Component ID-t kapja, a második 101-et, és így tovább.
  7. Digital Input esetén állítsd a Mode-ot Switch vagy Button értékre (a sablon ebből a Component-ből olvassa a state-et).
  8. Analog Input és Voltmeter esetén az alapbeállítások megfelelőek — csak a név és a delta küszöb releváns.

A TapHome sablon rögzíti a Component ID-kat 100–103 értékre DS18B20-hoz és 100-ra a mágneses kontaktushoz, analóg bemenethez és voltmérőhöz. Perifériák hozzáadásakor a Shelly web UI-ban ellenőrizd, hogy a kiosztott ID-k megfelelnek-e ennek a számozásnak — ha törölsz és újra hozzáadsz egy perifériát, a Shelly a következő szabad ID-t adja, ami 103 fölé tolódhat, és a TapHome eszköz csendben leáll az adatfogadással.

Periféria eltávolítása előtt jegyezd fel a Component ID-ját. Ha egy DS18B20 szondát cserélsz, használd inkább az Edit → Update address műveletet a web UI-ban — így a Component ID változatlan marad.

A gazda Shelly-n ki kell kapcsolni a HTTP Digest Authentication-t — a TapHome nem küld hitelesített kéréseket. Hagyd hitelesítés nélkül, vagy korlátozd a hozzáférést hálózati szinten.

Eszközképességek

A sablon hét csak olvasható érzékelő eszközt csoportosít egyetlen HTTP modul alá, amely a gazda Shelly-t címzi.

Hőmérsékletszondák (DS18B20)

Négy DS18B20 OneWire hőmérsékletszonda érhető el, egy-egy a Component ID 100–103 értékeken:

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

Minden eszköz rendelkezik egy felhasználó által konfigurálható Id egyedi változóval (az alapérték megfelel a pozíciónak). A lekérdezési időköz szondánként 15 másodperc. A Shelly web UI-ban finomhangolható minden szonda delta küszöbe (0,1–5 °C) és offsetje (±50 °C) a kalibrációhoz.

Mágneses kontaktus (digitális bemenet)

A Reed Contact (100) olvassa /rpc/Input.GetStatus?id=100state (boolean). A Shelly UI-ban a bemenetet Switch vagy Button módban kell konfigurálni (nem Analog vagy Count). Lekérdezési időköz: 2,5 másodperc. Az Id egyedi változó alapértéke 100.

Analóg bemenet

Az Analog Input (100) olvassa /rpc/Input.GetStatus?id=100percent, és 100-zal osztja, így a TapHome által várt 0,0–1,0 töredékre normalizálja. A bemenetet a Shelly UI-ban Analog módban kell konfigurálni. Pontosság ±5 %, jelentési küszöb 1 %. Lekérdezési időköz: 2,5 másodperc.

Vedd figyelembe, hogy a mágneses kontaktus és az analóg bemenet osztoznak a 100 Component ID-n — a Shelly hardverben az add-on-on csak egy digitális és egy analóg bemenet van, és az aktív módot a bemenet típusa határozza meg a web UI-ban (switch/button vs. analog). A TapHome-ban használd vagy a Reed Contact, vagy az Analog Input eszközt, de nem mindkettőt egyszerre.

Voltmérő

A Voltmeter (100) olvassa /rpc/Voltmeter.GetStatus?id=100voltage (V). A tartomány 0–10 V, ±5 % pontossággal és 0,1 V jelentési küszöbbel. PacketParserVariable-ként modellezve sensor képességgel — a nyers feszültség skalár értékként jelenik meg, nem önálló voltmérő eszköztípusként. Lekérdezési időköz: 15 másodperc.

További képességek

A Shelly Sensor Add-On natívan támogat egy DHT22 hőmérséklet- és páraérzékelőt is (egyetlen szonda, amely a gazdán párosított temperature:100 és humidity:100 Component-eket hoz létre). A TapHome sablon mind a négy DS18B20 eszközön átvezeti a hőmérsékletet, de a páraolvasó szkriptet NaN értékre rögzíti — a DHT22 páratartalom tehát nem érhető el. Ha páratartalomra van szükség, bővítsd a sablont egy külön read szkripttel a /rpc/Humidity.GetStatus?id=100 végpontra.

Két további képesség létezik hardver/firmware szinten, de nem tartozik ehhez a sablonhoz: az ötödik DS18B20 pozíció (a Shelly busz akár öt szondát támogat; a sablon csak a 100–103 ID-kat olvassa), valamint a digitális bemenet impulzusszámláló módja (counts.total, counts.by_minute, freq), amelyhez a bemenetet type=count értékre kell állítani a Shelly UI-ban. Mindkettő pótolható egy jövőbeli sablonfrissítésben.

Hibaelhárítás

A gazda Shelly nem válaszol
  1. Ellenőrizd, hogy a gazda Shelly Wi-Fi-hez van csatlakoztatva és érvényes IP-címe van.
  2. Próbáld meg a gazda mDNS hostnevét használni (pl. shellyplus1pm-AABBCCDDEE.local) az IP helyett — az IP egy DHCP renew után megváltozhatott. Az add-on a gazda hostnevét örökli, saját nincs.
  3. Nyisd meg böngészőben: http://{host-ip}/rpc/Shelly.GetDeviceInfo — ha JSON-nal válaszol, a gazda elérhető.
  4. Ellenőrizd, hogy a TapHome CCU és a gazda Shelly ugyanazon a hálózaton / VLAN-on van.
  5. Győződj meg róla, hogy a HTTP Digest Authentication ki van kapcsolva a Shelly web UI-ban.
A szenzorok nem mutatnak adatot
  1. Nyisd meg a Shelly web UI → Components → Peripherals menüt. Ellenőrizd, hogy a periféria pontosan azzal a Component ID-val szerepel, amelyet a sablon vár (temperature:100103, input:100, voltmeter:100). Ha az ID 103 fölött van vagy eltolódott, számozd újra a perifériákat úgy, hogy a megfelelő sorrendben törlöd és újra hozzáadod őket, vagy módosítsd a sablont az ID-khoz.
  2. DS18B20 esetén: kattints a Rescan gombra a DS18B20 periféria sorában — a buszcímet fel kell ismernie. Ha N/A-t mutat, ellenőrizd a VCC/DATA/GND bekötést és a 10 kΩ pull-up ellenállást a DATA vonalon (egyes generikus DS18B20 kártyák ezt kihagyják; a Shelly belsőleg biztosítja).
  3. Tesztelheted a végpontot közvetlenül: GET http://{host-ip}/rpc/Temperature.GetStatus?id=100. A válasznak tartalmaznia kell egy nem nulla tC értéket.
  4. Periféria hozzáadása vagy eltávolítása után indítsd újra a gazda Shelly-t. A Componentek csak újraindítás után jelenhetnek meg.
Az analóg bemenet nullát olvas
  1. Ellenőrizd, hogy a bemenet type értéke a Shelly UI-ban analog-ra van állítva (nem switch, button vagy count). A sablon a percent mezőt olvassa, amely csak analóg módban kerül feltöltésre.
  2. Ellenőrizd a bekötést — egy 0–10 V forrásnak kell lennie az ANALOG IN és GND között. Potenciométeres érzékelőknél (NTC, fotoellenállás) használd a VREF+R1 OUT-ot (beépített 10 kΩ pull-up-pal) a VREF OUT helyett.
  3. Ne feledd, hogy a TapHome az értéket 0,0–1,0 töredékként kapja meg (a sablon a percent-et 100-zal osztja).
Hiányzik a DHT22 páratartalom

Ez a sablon szándékos korlátja — a readhumidity szkript minden DS18B20 eszköz pozícióban NaN-ra van rögzítve. Az add-on hardver támogatja a DHT22-t, de a páratartalom TapHome-ban való megjelenítéséhez a sablont ki kell bővíteni egy külön eszközzel, amely a /rpc/Humidity.GetStatus?id=100rh végpontot olvassa. A DS18B20 és a DHT22 nem lehet egyszerre ugyanazon a buszon — ha DHT22-re váltasz, távolítsd el a DS18B20 szondákat.

Az ötödik DS18B20 szonda nem látható

A sablon csak a 100–103 ID-kat olvassa. Egy ötödik szonda, amelyet a Shelly web UI-ban temperature:104 néven regisztráltak, a gazdán létezik, de a TapHome nem olvassa. Vagy helyezd át a számodra fontos szondát egy 100–103 pozícióba (töröld és rendben add hozzá újra), vagy bővítsd a sablont egy ötödik eszközzel, amely az id=104 végpontot célozza.

Telepítés a TapHome-ban

Előfeltételek

  • Shelly eszköz telepítve és bekapcsolva
  • Helyi Wi-Fi hálózat (2,4 GHz)
  • TapHome CCU ugyanazon a hálózaton

1. lépés — Shelly csatlakoztatása a Wi-Fi-hez

A lehetőség — Shelly alkalmazás (ajánlott):

  1. Töltse le a Shelly alkalmazást (iOS / Android)
  2. Érintse meg a +Add Device gombot, és kövesse a Bluetooth párosítási varázslót
  3. Adja meg Wi-Fi hitelesítő adatait, amikor a rendszer kéri

B lehetőség — AP mód (alkalmazás nélkül):

  1. Első bekapcsoláskor az eszköz létrehoz egy hotspotot: ShellyXXX-AABBCCDDEE
  2. Csatlakoztassa telefonját/PC-jét ehhez a hotspothoz
  3. Nyissa meg a http://192.168.33.1 címet → Internet & SecurityWi-Fi Mode - Client
  4. Adja meg az SSID-t és a jelszót → Save

A Shelly csak 2,4 GHz-es hálózatokat támogat. Az 5 GHz-es hálózatok nem jelennek meg a keresésben.

2. lépés — IP-cím megkeresése

A Wi-Fi-hez való csatlakozás után az alábbi módszerek egyikével keresse meg a hozzárendelt IP-címet:

  • Shelly alkalmazás: Eszköz részletei → Device info → IP-cím
  • Shelly webes felület: Csatlakozzon az eszköz AP-jához a Wi-Fi beállítás előtt — az IP a mentés után jelenik meg
  • Router DHCP tábla: Keressen egy hasonló hosztnevet: shelly1pm-AABBCCDDEE
  • mDNS: Pingelje a shelly<model>-<mac>.local címet (pl. shelly1pm-AABBCCDDEE.local) ugyanarról a hálózatról

Rendeljen statikus IP-t (DHCP foglalást) a Shelly eszközhöz a routerben, hogy a cím ne változzon a router újraindítása után.

3. lépés — Konfigurálás a TapHome-ban

  1. A TapHome-ban adjon hozzá egy új Packet Parser (HTTP) modult
  2. IP Address: adja meg a 2. lépésben kapott IP-t (pl. 192.168.1.50)
  3. Port: 80 (alapértelmezett, nem kell módosítani)
  4. Importálja a sablont — a TapHome rendszeresen lekérdezi a /status végpontot az eszköz állapotának olvasásához

A HTTP hitelesítés a Shelly eszközökön alapértelmezetten ki van kapcsolva. Ha engedélyezte a bejelentkezésvédelmet, a TapHome jelenleg nem támogatja a HTTP Basic Auth-ot — a TapHome integrációhoz hagyja kikapcsolva a hitelesítést.

Elérhető eszközök

Shelly Sensor Add-On Modul
Egyéni változók

Shelly Sensor Add-On

Olvasás (modul)
var res := sendhttprequest("/rpc/Sys.GetStatus");
SysGetStatus := res.Content;
res := sendhttprequest("/rpc/SensorAddon.GetPeripherals");
SensorAddonGetPeripherals := res.Content;
Analóg bemenet Analóg bemenet Csak olvasható

0–10 V / 0–100 % analóg bemenet — olvassa a /rpc/Input.GetStatus?id=100 → percent értéket és 100-zal osztja, így az értéket 0,0–1,0 töredékként adja. A Shelly web UI-ban a bemenet típusát analog-ra kell állítani. Pontosság ±5 %

numeric Egység: % (normalised) json_path
Változó: IdAz analóg bemenet perifériájának Component ID-ja a gazda Shelly-n (az add-on perifériák a 100–199 tartományt használják; az első analóg bemenet 100)

Analóg bemenet

Bemeneti szint olvasása
var res := sendhttprequest("/rpc/Input.GetStatus?id=" + Id);
parsejson(res.Content, "percent") / 100
Mágneses kontaktus Reed kontaktus Csak olvasható

Digitális száraz kontaktus / mágneses bemenet — olvassa a /rpc/Input.GetStatus?id=100 → state értéket (true = zárt, false = nyitott). A Shelly web UI-ban a bemenet típusát switch vagy button értékre kell állítani (osztozik a 100-as Component ID-n az analóg bemenettel — egyszerre csak egy aktív mód)

boolean json_path
Változó: IdA digitális bemenet perifériájának Component ID-ja a gazda Shelly-n (alapértelmezett 100)

Mágneses kontaktus

Olvasás
var res := sendhttprequest("/rpc/Input.GetStatus?id=" + Id);
parsejson(res.Content, "state")
Hőmérséklet-érzékelő (DS18B20 #1) Hőmérséklet-érzékelő Csak olvasható

Az első DS18B20 szonda az 1-Wire buszon — olvassa a /rpc/Temperature.GetStatus?id=100 → tC (°C) értéket. A páratartalom NaN-ra van rögzítve (a sablon nem teszi elérhetővé a DHT22-t)

numeric Egység: °C json_path
Változó: IdAz első DS18B20 szonda Component ID-ja a gazda Shelly-n (alapértelmezett 100)

Hőmérséklet-érzékelő (DS18B20 #1)

Páratartalom olvasása
NaN
Hőmérséklet olvasása
var res := sendhttprequest("/rpc/Temperature.GetStatus?id=" + Id);
parsejson(res.Content, "tC")
Hőmérséklet-érzékelő (DS18B20 #2) Hőmérséklet-érzékelő Csak olvasható

A második DS18B20 szonda az 1-Wire buszon — olvassa a /rpc/Temperature.GetStatus?id=101 → tC (°C) értéket

numeric Egység: °C json_path
Változó: IdA második DS18B20 szonda Component ID-ja a gazda Shelly-n (alapértelmezett 101)

Hőmérséklet-érzékelő (DS18B20 #2)

Páratartalom olvasása
NaN
Hőmérséklet olvasása
var res := sendhttprequest("/rpc/Temperature.GetStatus?id=" + Id);
parsejson(res.Content, "tC")
Hőmérséklet-érzékelő (DS18B20 #3) Hőmérséklet-érzékelő Csak olvasható

A harmadik DS18B20 szonda az 1-Wire buszon — olvassa a /rpc/Temperature.GetStatus?id=102 → tC (°C) értéket

numeric Egység: °C json_path
Változó: IdA harmadik DS18B20 szonda Component ID-ja a gazda Shelly-n (alapértelmezett 102)

Hőmérséklet-érzékelő (DS18B20 #3)

Páratartalom olvasása
NaN
Hőmérséklet olvasása
var res := sendhttprequest("/rpc/Temperature.GetStatus?id=" + Id);
parsejson(res.Content, "tC")
Hőmérséklet-érzékelő (DS18B20 #4) Hőmérséklet-érzékelő Csak olvasható

A negyedik DS18B20 szonda az 1-Wire buszon — olvassa a /rpc/Temperature.GetStatus?id=103 → tC (°C) értéket. Az utolsó DS18B20 pozíció a sablonban — a Shelly busz akár 5 szondát támogat, de csak a 100–103 ID-k kerülnek lekérdezésre

numeric Egység: °C json_path
Változó: IdA negyedik DS18B20 szonda Component ID-ja a gazda Shelly-n (alapértelmezett 103)

Hőmérséklet-érzékelő (DS18B20 #4)

Páratartalom olvasása
NaN
Hőmérséklet olvasása
var res := sendhttprequest("/rpc/Temperature.GetStatus?id=" + Id);
parsejson(res.Content, "tC")
Voltmérő Változó Csak olvasható

0–10 V feszültségmérés — olvassa a /rpc/Voltmeter.GetStatus?id=100 → voltage (V) értéket. Csak olvasható skalár értékként elérhető a PacketParserVariable-ön keresztül (nem natív voltmérő eszköz). Pontosság ±5 %, jelentési küszöb 0,1 V

numeric Egység: V json_path
Változó: IdA voltmérő perifériájának Component ID-ja a gazda Shelly-n (alapértelmezett 100)

Voltmérő

Olvasás
var res := sendhttprequest("/rpc/Voltmeter.GetStatus?id=" + Id);
parsejson(res.Content, "voltage")
Kapcsolat: Packet Parser → HTTP
Lehetséges fejlesztések (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.

Források