Shelly (Modul)
| Shelly | |
|---|---|
| Zweck / Funktion | |
| Das Modul stellt ein Interface zur Bedienung von Shelly Devices zur Verfügung | |
| Allgemein | |
| Typ | Gerätemodul |
| Details | |
| Dokumentation | EN / DE Thema |
| Support (Forum) | Sonstige Systeme |
| Modulname | 36_Shelly.pm |
| Ersteller | Starkstrombastler (Forum /Wiki) |
| Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref! | |
Definition - Anlegen eines Gerätes
- Gerät nach Vorschrift anschließen
- mit einem WLAN-fähigen Gerät (Laptop, Smartphone, Tablet...; im Folgenden als Laptop bezeichnet) nach dem internen Access Point suchen, der durch das Shelly-Gerät erzeugt wird; typischerweise hat es eine SSID ähnlich wie
shelly1-..., shellyswitch-..., shelly4pro-...,
- Laptop mit diesem Access Point verbinden; typischerweise bekommt das Gerät dabei die IP-Adresse 192.168.33.2 zugewiesen.
- im Browser des Laptops die IP-Adresse 192.168.33.1 aufrufen - das ist der Shelly selbst; in der damit angezeigten Weboberfläche kann das Shelly-Gerät konfiguriert werden
- Shelly ins häusliche WLAN anmelden (mit fester IP-Adresse <shelly-ip> natürlich...)
- Internen Access Point abschalten (kann auch nach dem nächsten Schritt oder noch später erfolgen)
- Testen: Laptop wieder mit dem häuslichen WLAN verbinden, und im Browser die Adresse <shelly-ip> aufrufen
- In FHEM definieren
define myShelly Shelly <shelly-ip>
- Das Modul setzt bei bekannten Geräten das Attribut
modelautomatisch. Bei nicht unterstützten Geräten wird das Attribut auf den Wertgenericgesetzt. In diesen Fällen kann das Attributmodelauf der Detailseite des Devices manuell gesetzt werden:
attr myShelly model <model>
- unterstützte Modelle (ab Datum/Modulversion):
- shellyrgbw
- shellydimmer
- shelly2.5
- shelly2
- shellyem
- shelly3em
- shelly4
- shellyplug
- shelly1
- shellybulb
- shelly1pm
- shellyuni
- generic
Falls es sich um einen Shelly2 oder Shelly2.5 handelt, muss ferner das Attribut mode auf "roller" oder "relay" gesetzt werden.
Mit diesem Modul können alle Daten übertragen und (prinzipiell) alle Konfigurationsänderungen durchgeführt werden, außerdem ist es auf einfachste Weise zu installieren. Das Modul pollt im per Attribut interval einstellbaren Abstand zyklisch den Aktor auf Statusänderungen (Wert 0 => kein Polling). Damit der Aktor im Stande ist, irgendwelche Zustandsänderungen von sich aus an FHEM zu melden, müssen diese als REST-Befehle (also URL-Aufrufe) in der Konfigurationsoberfläche des Shelly-Aktors eingetragen werden. Siehe CommandRef.
Zum Betrieb ist ferner noch zu bemerken, dass das Modul zwar meldet, ob ein Firmware-Update nötig ist, ausgelöst werden muss dieses aber über die Web-Oberfläche des Shelly selber.
Aktionen / Webhooks
Ab Shelly Firmware 1.5.0 werden Actions unterstützt. Damit besteht die Möglichkeit, dass ein Shelly bei Eintreten bestimmter Ereignisse von sich aus Meldungen an andere Shellies und/oder übergeordnete Systeme wie FHEM absetzt. Dies ist nützlich, um Statusänderungen, die z.B. durch lokal betätigte Tasten entstehen, direkt an FHEM zu übermitteln.
Nachfolgende Beispiele zeigen den Code, der im Shelly unter URL einzutragen ist:
Ausgang (Relais) eines Shelly1 schaltet ein:
http://<FHEM-IP>:<Port>/fhem?cmd=set%20<name>%20out_on
hierbei sind:
<FHEM-IP>die IP-Adresse des Servers auf dem FHEM läuft<Port>die Port-Nummer<name>der Name des FHEM-Devices%20stellt ein Leerzeichen dar
Beispiel 2: Eingang eines Shelly2 wird betätigt:
http://<FHEM-IP>:<Port>/fhem?cmd=set%20<name>%20input_on%20<ch>
<ch>die Nummer des Schaltkanals (Nummer des Eingangs), z.B.0oder1
Beispiel 3: Eingang1 eines ShellyDimmers wird betätigt:
http://<FHEM-IP>:<Port>/fhem?cmd=set%20<name>%20short_push<nowiki/>%20<inp>
<inp>Nummer des Eingangs, 0 oder 1 (ShellyDimmer verfügen je Schaltkanal über zwei Eingänge)
Beispiel 4: Wirkleistung eines ShellyPro3EM:
http://<FHEM-IP>:<Port>/fhem?fwcsrf=csrf_368985985592099&cmd=set%20Y173%20Active_Power_$phase%20$active_power
fwcsrf=csrf_368985985592099das CSRF-Token (FHEMWeb)$phasewird vom Shelly durch a, b oder c ersetzt$active_powerwird vom Shelly durch die aktuelle Wirkleistung ersetzt
Endpoints
In vorstehenden Beispielen stellt der Teil set%20<name>%20<cmd> den Endpoint dar, d.h. dies ist der Befehl, der vom Shelly-Device in FHEM verarbeitet werden muss.
Bekannte Probleme
Links
- Entwicklungs-Thread im Forum
- Support-Thread im Forum