
Das Shelly Sensor Add-On (vermarktet als Shelly Plus Add-On) ist eine galvanisch getrennte Erweiterungsplatine, die auf den Add-on-Stecker eines kompatiblen Shelly Plus, Gen3 oder Gen4 aufgesteckt wird. Sie erweitert den Host-Shelly um einen 1-Wire-Temperaturbus (DS18B20), einen Digitaleingang (Reed-/Trockenkontakt), einen Analogeingang (0–10 V / 0–100 %) und ein 0–10 V Voltmeter. Das Add-on ist kein eigenständiges Wi-Fi-Gerät — es wird über die HTTP-Schnittstelle des Host-Shelly im lokalen Netzwerk gelesen, TapHome adressiert also die IP des Hosts, nicht eine eigene IP des Add-ons.
Die TapHome-Vorlage stellt vier DS18B20-Temperaturfühler (Component-ID 100–103), einen Reed-Kontakt, einen Analogeingang und ein Voltmeter bereit. Alle Werte werden über die Standard-Shelly Gen2+ JSON-RPC-API auf Port 80 abgefragt — eine Cloud-Verbindung ist nicht erforderlich.
Hardware-Anschluss
Das Add-on setzt sich über einen proprietären seriellen Stecker auf den Host-Shelly und bezieht 3,3 V DC direkt aus dem Host (Verbrauch unter 0,5 W ohne Sensoren). Die zugänglichen Klemmen sind in einen analog/digitalen Block und drei 1-Wire-Sensorpositionen gruppiert.
Analoge und digitale Klemmen
ANALOG IN— 0–10 V Analogeingang (Genauigkeit ±5 %, 1 % Meldeschwelle)DIGITAL IN— Trockenkontakt-/Reed-Schalter-Eingang (True: −15 V bis 0,5 V, False: 2,5 V bis 15 V)VREF OUT— Referenzspannung (max. 1 mA) zur Versorgung von Sensoren mit Potentiometer-TeilungVREF+R1 OUT— Referenzspannung mit 10 kΩ Pull-up-Widerstand, ausgelegt für Spannungsteiler mit NTC und FotowiderstandGND× 2 — Massenanschlüsse
1-Wire-Bus
Drei dreipolige Gruppen (VCC, DATA, GND) teilen sich intern eine gemeinsame 1-Wire-Datenleitung. Bis zu 5 DS18B20-Fühler können parallel am gemeinsamen Bus verdrahtet werden; alternativ kann ein einzelner DHT22-Sensor den Bus belegen (DHT22 blockiert im aktiven Zustand den OneWire-Scan). Der gesamte VCC-Ausgang ist auf 10 mA begrenzt, was für fünf DS18B20-Fühler ausreicht.
Der maximale Leiterquerschnitt an allen Klemmen beträgt 1 mm² (17 AWG).
Mische DHT22 und DS18B20-Fühler nicht auf demselben Bus. Der DHT22 blockiert die OneWire-Enumeration, und der Host-Shelly kann den Bus bei angeschlossenem DHT22 nicht neu einlesen.
Konfiguration
Das Shelly Sensor Add-On besitzt keine eigene IP-Adresse. Trage beim Import der TapHome-Vorlage im Parameter IpAddress die IP-Adresse des Host-Shelly ein (das Plus-/Gen3-/Gen4-Gerät, auf dem das Add-on sitzt) — Standard ist 192.168.0.1.
Die gesamte Kommunikation läuft über die Gen2+ JSON-RPC-API per HTTP GET auf Port 80. Einmal pro Poll-Zyklus liest die Vorlage /rpc/Sys.GetStatus und /rpc/SensorAddon.GetPeripherals in interne Cache-Variablen, anschließend fragt jedes Geräte-Skript seinen eigenen Endpunkt ab (Temperature.GetStatus, Input.GetStatus oder Voltmeter.GetStatus).
Kompatible Host-Geräte
Das Add-on arbeitet mit folgenden Shelly-Geräten zusammen (aus der Herstellerliste):
- 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
Die Firmware des Host-Shelly muss den Dienst SensorAddon bereitstellen — ältere Plus-Firmware-Versionen haben ihn möglicherweise nicht. Aktualisiere den Host auf die neueste Firmware, falls das Add-on-Menü in der Weboberfläche fehlt.
Add-on-Peripherie aktivieren
Das Add-on wird einmalig in der Weboberfläche des Host-Shelly konfiguriert — TapHome übernimmt das nicht. Führe vor dem Import der Vorlage folgende Schritte aus:
- Stecke die Add-on-Platine auf den Add-on-Stecker des Host-Shelly und schalte den Host ein.
- Öffne die Weboberfläche des Hosts unter
http://{host-ip}/und melde dich an. - Navigiere zu Settings → Add-on und registriere das Add-on (dies ruft im Hintergrund
Sys.SetConfigmitdevice.addon_type = "sensor"auf). Starte den Host auf Aufforderung neu. - Öffne Settings → Components → Peripherals und klicke auf die Schaltfläche +.
- Wähle den Peripherietyp — Temperature (DS18B20), Digital Input, Analog Input oder Voltmeter.
- Klicke bei DS18B20 auf Rescan, setze bei jedem erkannten Fühler ein Häkchen und wähle Add and reboot. Der erste Fühler erhält Component-ID
100, der zweite101usw. - Setze bei Digital Input Mode auf Switch oder Button (die Vorlage liest
stateaus diesem Component). - Bei Analog Input und Voltmeter sind die Standardwerte in Ordnung — relevant sind nur Name und Delta-Schwelle.
Die TapHome-Vorlage fixiert Component-IDs 100–103 für DS18B20 und ID 100 für Reed-Kontakt, Analogeingang und Voltmeter. Prüfe beim Hinzufügen der Peripherie in der Shelly-Weboberfläche, dass die zugewiesenen IDs dieser Nummerierung entsprechen — wenn du eine Peripherie löschst und neu hinzufügst, vergibt Shelly die nächste freie ID, die über 103 liegen kann, und das TapHome-Gerät erhält stillschweigend keine Daten mehr.
Notiere vor dem Entfernen einer Peripherie deren Component-ID. Wenn du einen DS18B20-Fühler austauschst, bevorzuge in der Weboberfläche die Aktion Edit → Update address, damit die Component-ID gleich bleibt.
Am Host-Shelly muss die HTTP Digest Authentication deaktiviert sein — TapHome sendet keine authentifizierten Anfragen. Lasse das Gerät ohne Authentifizierung oder schränke den Zugriff auf Netzwerkebene ein.
Gerätefunktionen
Die Vorlage gruppiert sieben schreibgeschützte Sensorgeräte unter einem einzigen HTTP-Modul, das auf den Host-Shelly zielt.
Temperaturfühler (DS18B20)
Vier DS18B20-OneWire-Temperaturfühler werden bereitgestellt, einer je Component-ID 100–103:
- Temperature Sensor DS18B20 (100) — liest
/rpc/Temperature.GetStatus?id=100→tC(°C) - Temperature Sensor DS18B20 (101) — liest
/rpc/Temperature.GetStatus?id=101→tC - Temperature Sensor DS18B20 (102) — liest
/rpc/Temperature.GetStatus?id=102→tC - Temperature Sensor DS18B20 (103) — liest
/rpc/Temperature.GetStatus?id=103→tC
Jedes Gerät hat eine benutzerkonfigurierbare Id-Custom-Variable (Standardwert entspricht der Position). Das Polling-Intervall beträgt 15 Sekunden pro Fühler. Die Shelly-Weboberfläche erlaubt die Feinabstimmung von Delta-Schwelle (0,1–5 °C) und Offset (±50 °C) pro Fühler zur Kalibrierung.
Reed-Kontakt (Digitaleingang)
Reed Contact (100) liest /rpc/Input.GetStatus?id=100 → state (boolean). In der Shelly-Oberfläche muss der Eingang als Switch oder Button konfiguriert sein (nicht Analog oder Count). Polling-Intervall: 2,5 Sekunden. Der Standardwert der Id-Custom-Variable ist 100.
Analogeingang
Analog Input (100) liest /rpc/Input.GetStatus?id=100 → percent und teilt den Wert durch 100, sodass er als Bruchteil 0,0–1,0 vorliegt, den TapHome für Analogeingänge erwartet. Der Eingang muss in der Shelly-Oberfläche als Analog konfiguriert sein. Genauigkeit ±5 %, Meldeschwelle 1 %. Polling-Intervall: 2,5 Sekunden.
Beachte, dass Reed-Kontakt und Analogeingang die Component-ID 100 teilen — die Shelly-Hardware hat am Add-on nur einen Digital- und einen Analogeingang, und der aktive Modus wird durch den Typ des Eingangs in der Weboberfläche festgelegt (switch/button vs. analog). Verwende in TapHome entweder das Reed-Kontakt- oder das Analog-Input-Gerät, nicht beide gleichzeitig.
Voltmeter
Voltmeter (100) liest /rpc/Voltmeter.GetStatus?id=100 → voltage (V). Der Bereich ist 0–10 V mit ±5 % Genauigkeit und 0,1 V Meldeschwelle. Es ist als PacketParserVariable mit der Fähigkeit sensor modelliert — die Rohspannung wird als skalarer Wert bereitgestellt, nicht als eigenständiger Voltmeter-Typ. Polling-Intervall: 15 Sekunden.
Zusätzliche Fähigkeiten
Das Shelly Sensor Add-On unterstützt nativ auch einen DHT22-Temperatur- und Feuchtigkeitssensor (ein einzelner Fühler, der auf dem Host die gepaarten Components temperature:100 und humidity:100 erzeugt). Die TapHome-Vorlage leitet die Temperatur auf allen vier DS18B20-Geräten weiter, fixiert das Feuchtigkeits-Skript jedoch auf NaN — DHT22-Feuchtigkeit wird daher nicht bereitgestellt. Wer Feuchtigkeit benötigt, kann die Vorlage um ein separates Read-Skript auf /rpc/Humidity.GetStatus?id=100 erweitern.
Zwei weitere Funktionen existieren auf Hardware-/Firmware-Ebene, liegen aber außerhalb dieser Vorlage: ein fünfter DS18B20-Slot (der Shelly-Bus unterstützt bis zu fünf Fühler; die Vorlage fragt nur IDs 100–103 ab) und der Impulszählmodus des Digitaleingangs (counts.total, counts.by_minute, freq), der erfordert, den Eingang in der Shelly-Oberfläche als type=count zu konfigurieren. Beides kann in einer zukünftigen Vorlagen-Aktualisierung ergänzt werden.
Fehlerbehebung
Host-Shelly antwortet nicht
- Prüfe, ob der Host-Shelly mit dem Wi-Fi verbunden ist und eine gültige IP hat.
- Versuche es mit dem mDNS-Hostnamen des Hosts (z. B.
shellyplus1pm-AABBCCDDEE.local) statt der IP — die IP kann sich nach einem DHCP-Renew geändert haben. Das Add-on erbt den Hostnamen des Hosts und hat keinen eigenen. - Öffne im Browser
http://{host-ip}/rpc/Shelly.GetDeviceInfo— antwortet der Host mit JSON, ist er erreichbar. - Prüfe, ob TapHome CCU und der Host-Shelly im selben Netzwerk / VLAN sind.
- Stelle sicher, dass HTTP Digest Authentication in der Shelly-Weboberfläche deaktiviert ist.
Sensoren zeigen keine Daten
- Öffne die Shelly-Weboberfläche → Components → Peripherals. Bestätige, dass die Peripherie mit exakt der Component-ID, die die Vorlage erwartet, gelistet ist (
temperature:100–103,input:100,voltmeter:100). Liegt die ID über103oder ist verschoben, nummeriere die Peripherie durch Löschen und erneutes Hinzufügen in der richtigen Reihenfolge neu, oder passe die Vorlage an deine IDs an. - Für DS18B20: Klicke auf Rescan in der Zeile des DS18B20 — die Bus-Adresse sollte aufgelöst werden. Zeigt die Adresse N/A, prüfe die VCC/DATA/GND-Verdrahtung und den 10 kΩ Pull-up an
DATA(einige generische DS18B20-Boards lassen ihn weg; der Shelly stellt ihn intern bereit). - Frage den Endpunkt direkt ab:
GET http://{host-ip}/rpc/Temperature.GetStatus?id=100. Die Antwort sollte einen WerttCungleich null enthalten. - Starte den Host-Shelly nach dem Hinzufügen oder Entfernen von Peripherie neu. Components erscheinen manchmal erst nach einem Neustart.
Analogeingang liest null
- Prüfe, ob
typedes Eingangs in der Shelly-Oberfläche aufanaloggesetzt ist (nichtswitch,buttonodercount). Die Vorlage liestpercent, das nur im Analog-Modus gefüllt ist. - Prüfe die Verdrahtung — eine 0–10 V Quelle muss zwischen
ANALOG INundGNDliegen. Für Potentiometer-Sensoren (NTC, Fotowiderstand) nutzeVREF+R1 OUT(mit integriertem 10 kΩ Pull-up) stattVREF OUT. - Bedenke, dass TapHome den Wert als Bruchteil 0,0–1,0 erhält (die Vorlage teilt
percentdurch 100).
DHT22-Feuchtigkeit fehlt
Das ist eine gewollte Einschränkung der Vorlage — das Skript readhumidity ist in jedem DS18B20-Geräte-Slot auf NaN fixiert. Die Add-on-Hardware unterstützt DHT22, für die Bereitstellung der Feuchtigkeit in TapHome muss die Vorlage jedoch um ein eigenes Gerät erweitert werden, das /rpc/Humidity.GetStatus?id=100 → rh liest. DS18B20 und DHT22 können nicht auf demselben Bus koexistieren — entferne die DS18B20-Fühler, wenn du auf DHT22 wechselst.
Fünfter DS18B20-Fühler ist nicht sichtbar
Die Vorlage fragt nur IDs 100–103 ab. Ein fünfter Fühler, der in der Shelly-Weboberfläche als temperature:104 registriert ist, existiert zwar am Host, wird aber von TapHome nicht gelesen. Verschiebe entweder den gewünschten Fühler auf einen Slot 100–103 (löschen und in Reihenfolge neu hinzufügen), oder erweitere die Vorlage um ein fünftes Gerät, das id=104 adressiert.