Shelly IoT

Auf der Erfolgswelle von ESP8266 und Geräten wie SONOFF gibt es nun noch einen weiteren Hersteller. Die Jungs aus Sofia, Bulgarien haben eine ganze Serie von Produkten im Angebot, die alle ebenfalls auf dem ESP8266 basieren und genauso einfach mit einer alternativen ESP8266 3rd Party Firmware betankt werden können.

Achtung: Es gibt keine galvanische Trennung zwischen Niederspannungsteil und Netzspannung. Wer die Box programmieren will, muss auf auf jeden Fall drauf achten, dass die Netzseite potentialfrei ist. Ansonsten kostet es die Box, den USB-Flasher, den PC oder sogar dein Herz und etwas mehr.

Beachten sie auch die vorher entstandene Seite SONOFF mit ESP8266 mit Links zu weiteren ähnlichen Produkten

Produkte

Ich gehe hier erst einmal auf die beiden aus meiner Sicht interessantesten Produkte ein. Die den Preis fangen Sie in der Regel nicht mehr an, selbst ein Gehäuse zu bauen, zu löten und zu basteln. Die beiden Geräte passen sogar mit etwas Glück hinter den Schalter in eine normale tiefe Dose.

Name Bild Funktion Preis

Shelly1

Die einfachste Box hat dennoch alles, was man sich für den Anfang wünscht.

  • Versorgung mit 12V oder 26-60V oder 230V
  • Schalteingang über L1 direkt anschließbar
  • 16A potentialfreies Relais zwischen O und I  (Out-A/Out-B)
  • Produktseite beim Hersteller
    https://shelly.cloud/product/shelly-1

Achtung
Die GPIO-Pins liegen bei 230V auf Netzpotential. Das dürfte extern angebundene Sensoren zerstören.

Externe Beschaltung

9,99€

Shelly2

Die teurere Version kommt mit:

  • 2 Schalt/Tast-Eingängen
  • 2 Relais mit 8A
    Allerdings nicht potentialfrei Sie schalten direkt die Phase L durch
  • Leistungsmessung
    basiert auf dem Chip MCP39F501)
  • Einschränkungen
    Keine mechanische Sperrung der beiden Relais, also Vorsicht beim "Rolladen"-Schalten
    Programmierpins sind nicht herausgeführt, Gerät muss geöffnet werden

https://shelly.cloud/product/shelly-2/

19,99€ 2 Relais + Energiemesser

Shelly Bulb

 

LED Leuchte. Siehe Beschreibung weiter unten

18€

Shelly PlugS

 

Zwischenstecker mit Energiemessung. Siehe Beschreibung weiter unten

20€

Mitterlweile gibt es auch noch Leuchten, Versionen für die Hutschiene etc.

Beachten Sie, dass die Datenverbindung immer "WLAN" ist. Beim Einbau in eine Dose mitten zwischen vielen Kabeln ist die Reichweite beschränkt. Eine gute WLAN-Abdeckung oder der Wechsel auf eine Mesh-Firmware ist daher zu prüfen.

Die Lieferung aus Rumänien ist allerdings immer mit etwas Wartezeit verbunden, weil zumindest auch Ende 2018 immer erst einige Bestellungen gesammelt haben, ehe dann die nächste Serie aufgelegt wurde. Es ist also nicht das klassische Crown-Funding, bei dem erst mal viel versprochen und Geld eingesammelt wird. Die Geräte sind tatsächlich verfügbar. Der Knappheit kann natürlich auch darin begründet sein, dass es Wiederverkäufer gibt, die größere Mengen aufkaufen und dann mit einem Aufschlag weiter verkaufen. Solange sich der Mehrpreis in Grenzen hält und man das Gerät schnell haben will, ist das durchaus legitim.

Achtung
Bei der Version 2 sind die Anschüsse falsch beschriftet. Phase und Neutral sind vertauscht. Neutral ist ganz rechts.

Shelly 1+2 als Sonoff-Alternative - erster Eindruck | haus-automatisierung.com
https://www.youtube.com/watch?v=MBR2HxEqL9w

Use the REST Component to Add A Shelly Switch To Home Assistant
https://www.youtube.com/watch?v=E99-17XyyUg

Is the Shelly 1 better than the Sonoff Basic
https://www.youtube.com/watch?v=J20hxfUTP9I
Vergleich Sonoff und Shelly mit sehr viel technischen Details zum Shelly

Einrichtung und Firmware Update

Shelly entwickelt ihre Firmware immer weiter und was ich soweit gesehen habe, funktioniert sie sehr gut und ich habe bislang keinen Shelly auf eine andere ESP8266 3rd Party Firmware umprogrammiert. Die Shelly-Geräte können sogar selbst ein Firmware-Update machen, wenn Sie einmal in einem WLAN mit Internet-Zugang sind. Ein Update ist durchaus daher ratsam, dass das Device einmal auch ins Internet kommt und ein Update laden kann. Zudem bekommen so die Shelly-Geräte auch eine aktuelle Uhrzeit.

Mit dem Internet Zugang ist aber nicht gleichzeitig verbunden, dass das Gerät aus dem Internet erreichbar ist oder über die App gesteuert werden kann. Das geht dann nur, wenn Sie das Gerät in die Cloud oder eine eigene Automatisierungslösung eingebunden haben.

Der Dialog für Updates ist auf der Webseite je nach Device an anderer Stelle aber immer gut zu sehen:

Das Update erfolgt "Over the Air". Leider habe ich noch keinen einfachen Weg gefunden, Updates von der Webseite des Herstellers zu laden und selbst einzuspielen. Es gibt schlichtweg keinen sichtbaren Weg auf dem Web-Portal.

Shelly Plug S (ca. 18€)

Ein weiteres Produkt ist der Zwischenstecker ShellyPlug S. der aber nicht nur per WLAN den Verbraucher schalten kann sondern auch den Energieverbrauch messen kann.

Damit lassen sich sehr viele Anwendungen bauen, z.B. als Zwischenstecker

  • Waschmaschine
    Hier kann über den Verbrauchsverlauf ein Rückschluss auf den aktuellen Vorgang eine Schlussmeldung gegeben werden
  • Trocknersteuerung
    Über die Schaltfunktion kann der Trockner eingeschaltet werden, wenn z.B. genug Solarenergie vorliegt. Über den Energieverbrauch kann eine Steuerung erkennen, wann der Trockner dann wieder fertig ist
  • Computer Wakup
    Wenn ihr Heimcomputer so eingestellt ist, dass er sich automatisch einschaltet, kann so ein PC aus der Ferne eingeschaltet werden.
  • Backup-USB-Platte schalten
    Datensicherungen sind nicht erst seit den Verschlüsselungstrojanern wichtig. Ein Backup auf eine externe 3,5" Festplatte mit eigenem Netzteil ist nett aber erfordert natürlich Handarbeit. Der Speicher darf ja nicht "verbunden bleiben. Mit dem Shelly PlugS kann ich per Software auf meinem PC vor dem Backup die USB-Disk einschalten und nach dem Backup wieder abschalten
  • Bügeleisen
    Wer kennt sie nicht. Die Familie fährt gerade mit dem Auto los und dann kommt die alles entscheidende Frage: "Hab ich das Bügeleisen abgeschaltet?". Und wer ist das nicht schon mal wieder umgedreht?. Mit dem Zwischenstecker können Sie den Strom richtig abschalten und sogar erkennen, ob das Bügeleisen aus ist.

Es gibt noch eine Unmenge an anderen Aufgabenstellungen, bei denen Geräte indirekt über den Stromverbrauch überwacht werden können. Für den Preis kann das

Shelly liefert das Geräte aber per Default "ohne Cloud-Anbindung" aus. Sie können das Gerät natürlich ins Internet bringen und dann über den Cloud-Service von Allterco auch über eine App von überall sehen und steuern. Aber im Auslieferungszustand ist der Shelly PlugS nur als Access-Point lokal erreichbar. Sie können ihn über die eingebaute Webseite dann in ihr Haus-LAN einbinden um von überall im Haus darauf zuzugreifen. Aber auch dann ist er noch nicht mit der "Cloud verbunden". Sobald Sie die MQTT-Option einschalten, werden sogar Aktionen über die Cloud abgeschaltet

Sie müssen daher keine alternative 3rd Party Firmware (Tasmota und Co) installieren. Was wäre aber, anders als beim Shelly1, auch nicht einfach möglich, da das Gerät keine extern zugänglichen Programmieradapter hat. Ich habe meinen Shelly also über die Funktion "WIFI MODE .-CLIENT"  erst mal in mein IOT-WLAN aufgenommen und wenige Sekunden später war das Gerät dann auch per DHCP mit einer IP-Adresse versorgt.

Diese IOT-VLAN darf bei mir nicht ins Internet sondern nur auf den internen MQTT-Server und einige andere ausgewählte Ziele und in der Gegenrichtung sind die Verbindungen auch eingeschränkt. Das ganze habe ich einfach über die Access-Listen im TP-Link T2600G-28TS (TL-SG3424) umgesetzt. Und ab da geht es dann wie gewohnt im IoT-Stiel weiter.

  • MQTT
    Über die Konfiguration eines MQTT-Servers und den passenden Parametern meldet ShellyPlugS seinen Status und nimmt Schalt-Befehle entgegen
  • HTTP
    Parallel gibt es natürlich immer noch eine RestAPI, die direkt ohne irgend eine Middleware verwendet werden kann

Die Umsetzung ist natürlich sehr von ihren eigenen Anforderungen abhängig. Über die Webseite ist aber sowohl eine Steuerung als auch eine Anzeige des Verbrauchs möglich. Also habe ich allein mit den Debugging-Tools im Browser mal die Kommunikation betrachtet, die sich als sehr einfach herausgestellt hat. Die gleichen Requests kann ich auch per PowerShell absetzen. Hier eine Anfrage an das Gerät ohne Internet mit alter Firmware:

Invoke-RestMethod "http://192.168.33.1/status"


wifi_sta        : @{connected=False; ssid=IOT; ip=192.168.33.1; rssi=0}
cloud           : @{enabled=False; connected=False}
mqtt            : @{connected=False}
time            :
serial          : 1
has_update      : False
mac             : CC50E3123456
relays          : {@{ison=False; has_timer=False; overpower=False}}
meters          : {@{power=0,00; is_valid=True; timestamp=0; counters=System.Object[]; total=0}}
temperature     : 32,37
overtemperature : False
update          : @{status=unknown; has_update=False; new_version=; old_version=20190325-111522/prod-test@e866492a}
ram_total       : 50968
ram_free        : 41168
fs_size         : 233681
fs_free         : 175700
uptime          : 72

Nachdem ich den Shelly PlugS mit Internet versorgt und aktualisiert habe, sehen Sie auch die Uhrzeit und einen Update-Status

Invoke-RestMethod "http://192.168.33.1/status"

wifi_sta        : @{connected=True; ssid=IOT; ip=192.168.33.1; rssi=-59}
cloud           : @{enabled=False; connected=False}
mqtt            : @{connected=False}
time            : 11:50
serial          : 1
has_update      : False
mac             : CC50E3123456
relays          : {@{ison=True; has_timer=False; overpower=False}}
meters          : {@{power=0,00; is_valid=True; timestamp=1558266614; counters=System.Object[]; total=27}}
temperature     : 32,76
overtemperature : False
update          : @{status=idle; has_update=False; new_version=20190502-194556/v1.4.9-plugs-hotfix4@cb847c5f;
                  old_version=20190502-194556/v1.4.9-plugs-hotfix4@cb847c5f}
ram_total       : 50984
ram_free        : 38688
fs_size         : 233681
fs_free         : 175198
uptime          : 43221

Die Temperatur scheint in Grad zu sein, denn als Fahrenheit wären es 0 Grad Celsius. Sie können damit also die "innere" Temperatur schätzen. Die ist hier ein paar Grad über der Zimmertemperatur von 20 Grad, weil das Relais angezogen hat. Interessant sind aber auch die Messwerte

(Invoke-RestMethod "http://192.168.180.8/status").meters


power     : 11,45
is_valid  : True
timestamp : 1558269965
counters  : {11,802, 12,017, 12,207}
total     : 129

Der Wert "Power" zeigt die aktuell bezogene Leistung in Watt an. Alle anderen Zahlen sind in der WebUI nicht sichtbar. Leider liefert die API auf https://shelly-api-docs.shelly.cloud/#shelly-plug-status hier noch keine Details. Ich tippe aber bei Total eher auf mWh seit der letzten Inbetriebnahme des Shelly. Der Zähler übersteht also kein Ausstecken. Er zählt aber weiter, wenn Sie eingesteckte Last per Shelly aus und einschalten.

Das reicht aber schon mal, um die Daten z.B. per PTRG auszulesen.

Auch das Schalten des Zwischensteckers ist trivial.

Invoke-RestMethod "http://192.168.33.1/relay/0?turn=on "

ison        :true
has_timer   :False
overpower   :False

Diese Funktion eröffnet natürlich Türen z.B. für das Thema Datensicherung. Wer seine Daten z.B. auf eine externe USB-Festplatte sichert, sollte als Schutz gegen Malware die Festplatte nach Abschluss des Backup natürlich abtrennen. Ansonsten findet eine Malware auch diese Sicherungen und löscht/verschlüsselt diese gleich mit. Also stecke ich das Netzteil der externen Stromversorgung einfach in den Shelly PlugS. Per Software kann ich nun die Stromversorgung steuern. Damit gibt es zwei "Tasks", die ich ausführen kann:

  1. Backup beendet
    Ich lasse erst das USB-Laufwerk sauber "auswerfen", damit alle Daten auch sicher geschrieben sind. Danach schalte ich die Festplatte stromlos.
  2. Backup Start
    Ehe das Backup startet, schalte ich die Festplatte über den Shelly einfach ein. Für Windows ist das dann ein neues USB-Device, welches neu erkannt und eingebunden wird. So löse ich auch das Problem, dass nach dem "Auswerfen" ich den Stecker ziehen oder die USB-Festplatte schalten musste, damit sie wieder gefunden wird.

Natürlich können Sie mit dem Shelly auch viele andere Dinge abschalten, z.B. ein weiter entfernt stehender Laserdrucker.

Mein Exemplar wurde mit einer etwas älteren Firmware geliefert und war damit nicht stabil. Nach einem Update der Firmware läuft der PlugS nun aber stabil

Schade ist, dass es keinen "Gesamt-Counter" gibt, der immer weiter hoch läuft. Er muss ja nicht geeicht oder Veränderungsfest sein aber wenn mal der Strom ausfällt, dann startet der PlugS bei 0 und die vorher gemessene Energie ist nicht mehr erfassbar.

Bei Gelegenheit werden ich den Shelly PlugS per PowerShell auslesen und die Daten mit einem Custom Sensor zu PRTG senden.

Shelly Bulb per PowerShell steuern

Shelly und MQTT

Die originale Firmware enthält auch einen MQTT-Stack, mit der ein Shelly an einen MQTT-Server angebunden werden kann. Dieser Betrieb ist aber nicht zeitgleich mit der Shelly-Cloud möglich. Ich könnte mir vorstellen, dass die Shelly-Cloud selbst auch auf MQTT aufbaut und die gleiche Library genutzt wird. Die Konfiguration ist einfach über die WebSeite möglich. Hier am Beispiel eines Shelly Plug S

So präpariert holt sich der Shelly seine Befehle vom MQTT-Server aber sendet auch immer mal einen Status. Die Funktion können Sie recht einfach überprüfen. Lesen Sie dazu die Grundbegriffe zu MQTT auf der Seite MQTT und nutzen Sie z.B. die Mosquitto Kommandozeile für Windows mit:

C:\Program Files\mosquitto\mosquitto_sub.exe -h 192.168.178.110 -v -t #

# Ruhemeldung alle 30 Sek
shellies/shellyplug-s-123456/relay/0/power 0.00
shellies/shellyplug-s-123456/relay/0 off
shellies/shellyplug-s-123456/temperature 31.88
shellies/shellyplug-s-123456/overtemperature 0


# Ein/Ausschalt-Momente
shellies/shellyplug-s-123456/relay/0 on
shellies/shellyplug-s-123456/relay/0 off
shellies/shellyplug-s-123456/relay/0/power 0.00
shellies/shellyplug-s-123456/relay/0 on
shellies/shellyplug-s-123456/relay/0 off
shellies/shellyplug-s-123456/relay/0/power 0.00

# Meldung bei aktivem Stromverbauch (alle 30 Sek) Bei Veränderungen der Energie
shellies/shellyplug-s-123456/relay/0/power 84.60
shellies/shellyplug-s-123456/relay/0/energy 316
shellies/shellyplug-s-123456/relay/0/power 5.49
shellies/shellyplug-s-123456/relay/0/energy 316
shellies/shellyplug-s-123456/relay/0/power 9.55
shellies/shellyplug-s-123456/relay/0/energy 316
shellies/shellyplug-s-123456/relay/0/power 9.46
shellies/shellyplug-s-123456/relay/0/energy 328

Mein Shelly hat bei mir alle 30 Sekunden einen "Status" hinterlassen. Sobald ich den Shelly über die Webseite oder den Button schalte, kommt ebenfalls eine sofortige Meldung und mit einer OFF-Meldung wird auch der Stromverbrauch gemeldet.

Weitere Links