Shelly Plug-S in Homematic einbinden - mit der Originalfirmware

  • Hallo zusammen,


    um den Shelly PlugS in Homematic einzubinden, braucht es keine Fremdfirmware, die man flashen muß.


    Nachfolgend meine Lösung mit der Originalfirmware:


    techn. Voraussetzungen:

    • kompatibel mit den Homematic-Systemen CCU2, CCU3, Charly, sowie allen Ablegern wie RaspberryMatic und piVCCU.

    • installiertes Addon CUxD in aktueller Version

      (Das Wissen um den Umgang CUxD, wie z.B. Geräte anlegen, setze ich an dieser Stelle voraus, sonst "explodiert" diese Anleitung. Danke für's Verständnis.)



    DIe Vorteile aus meiner Sicht:

    • sehr günstiger Preis (19,90€) gegenüber dem Homematic-Original(ab 39,95€ als Bausatz mit LM)
    • alle Shelly PlugS -Eigenschaften bleiben erhalten, da ich die Aktoren mit der originalen Herstellerfirmware betreibe
    • alle zukünftigen Shelly PlugS -Aktualisierungen/ -updates werden nutzbar sein
    • Volle Shelly-App-Bedienbarkeit parallel zur Homematic-Automatisierung
    • Betrieb als lokale Lösung oder über Shelly-Cloud, zusätzlich Homematic


    Folgende Funktionen habe ich auf der Homematic-Seite umgesetzt:

    • EIN / AUS
    • Aktualisierung des aktuellen Schaltzustandes in frei einstellbarem Intervall, unabhängig davon, ob die Bedienung über Homematic oder Shelly-App oder Taster erfolgt

      alternativ: Status über Actions-Funktionen des Shelly Plug S
    • Optionale Überwachung des Onlinestatus (Erreichbarkeit im WLAN)



    Die Ansicht der Anbindung:

    PlugS in CUxD.png


    Bild 1


    Ich möchte Euch an dieser Stelle empfehlen, vor der Umsetzung mal einen Blick in diese Threads zu werfen:


    An entsprechender Stelle in der Anleitung muss jeder für sich entscheiden, welchen Weg der Schalt-Statusüberwachung er nutzen möchte. ;)



    Die Umsetzung:


    (Auf die Beschreibung des Anlegens der CUxD-Geräte verzichte ich an dieser Stelle, dafür gibt es die CUxD-Doku!)


    Falls noch nicht vorhanden, bitte ein Gerät (28) System Exec anlegen! Darüber werden die Befehle abgesetzt. (Im CUxD-Exec werden keine Eintragungen gemacht!)


    Anlegen einer CUxD (40) 16-Kanal Universalsteuerung als Schalter


    PlugS in CUxD anlegen.png

    Mit jedem Kanal des CUxD-Gerätes kann dann 1 Shelly PlugS abgebildet werden.


    Die Einstellungen der Kanäle:


    Einstellungen CUxD-Gerätekanal.png


    Einstellung für SWITCH|CMD_SHORT:

    Code
    1. wget -q -O - 'http://192.168.1.139/relay/0?turn~3doff'

    Einstellungen für SWITCH|CMD_LONG:

    Code
    1. wget -q -O - 'http://192.168.1.139/relay/0?turn~3don'

    IP-Adresse des Shelly PlugS jeweils anpassen !


    Damit ist der PlugS schon einsatzbereit und kann ein- und ausgeschalten werden. :)


    Viel Spass damit.


  • Aktualisierung des Schaltstatus:


    Seit der Einführung der "Actions" in der Shelly-Firmware stehen 2 Möglichkeiten der Statusaktualisierung (3 wenn man beide kombiniert) zur Verfügung.


    Die Aktualisierung ist wichtig, damit in Homematic der Schaltzustand auch stimmt, wenn z.B. über die Shelly-App geschaltet wird.;) Vor- und Nachteile sind im in #1 verlinkten Thread beschrieben.


    A. (einmalig) via Actions:


    Eintrag für: OUTPUT SWITCHED ON URL:

    Code
    1. http://<IP der CCU>:8181/x.exe?Antwort=dom.GetObject("CUxD.CUX4000010:1.SET_STATE").State(1)


    Eintrag für: OUTPUT SWITCHED OFF URL:


    Code
    1. http://<IP der CCU>:8181/x.exe?Antwort=dom.GetObject("CUxD.CUX4000010:1.SET_STATE").State(0)

    Jeweils den Haken bei "Enabled" setzen und mit "SAVE" speichern!


    Jeweils IP-Adresse der Homematic-Zentrale und die CUxD-Geräteadresse an Eure Installation anpassen!


    Der Shelly PlugS aktualisiert nun den Schaltstatus des CUxD-Gerätes ohne erneutes Senden von Befehlen auf Homematic-Seite.


    B. (zyklisch) via Homematic-Zentrale:


    Für die autom. Aktualisierung des Schaltstatus benötigen wir 1 Timer ...

    Timer.png

    Aktualisierung alle 60 Sekunden (Zeit variabel)


    ... der das Programm zur Aktualisierung triggert:


    Programm Statusaktualisierung.png

    Alternativ kann auch im WENN auch auf "Timerevent" des Timers ausgelöst werden.


    Fehlt nur noch das Skript für die 1. DANN-Zeile:

    Gemäß den Hinweisen im Skript sind anzupassen:

    IP des Shelly PlugS

    CUxD-Exec-Kanal

    CUxD-Kanal des PlugS


    C: Kombination aus A und B:


    Kombiniert man A und B, so kann man vom Vorteil von A, der direkten Rückmeldung und vom Vorteil von B, der zyklichen Aktualisierung (falls mal ein Aufruf aus A verloren geht oder nicht verarbeitet wird), profitieren.


    Die Aktualisierungszeit (Timer) kann dann deutlich höher sein, was zu einer Reduzierung des Netzwerktraffic führt.



    Nun wird der Schaltzustand des PlugS auch in Homematic aktualisiert, wenn über die App oder Shelly-Szenen geschaltet wird. :)


    Viel Spass damit.

  • Optionale Anzeigen:


    1.) aktuelle Leistungsanzeige:


    wertet die Leistung jdes Shelly-PlugS aus, zeigt sie im CUxD-Gerät an und natürlich kann der Wert auch in Programmen genutzt werden.


    Dazu brauchen wir 1 Systemvariable für den aktuellen Leistungswert:

    Sysvar Leistung PlugS.png


    Die Variablen wird dem entsprechenden Kanal des Shelly-CUxD-Gerätes zugeordnet. Dadurch wird sie wie im Bild 1 in #1 sichtbar.


    In das Programm zur Statusaktualisierung (siehe Bild in #2) fügen wir nun eine 2. DANN Zeile zur Aktualisierung der Leistungsdaten ein.


    Achtung:

    Die Namen der Systemvariablen dürfen keine Leerzeichen und keine Umlaute enthalten!



    Das Skript dazu:


    Im eingestellten Intervall des Timers wird nun die aktuelle Leistung aktualisiert. :)


    2. Onlinestatus:


    Die optinale Anzeige des Onlinestatus erfolgt wie bei allen anderen Kopplungen auch mittels Systemvariable und CUxD-Ping-Gerät(28) .


    Für die Anzeige des Onlinestatus wird 1 Systemvariable benötigt:


    Sysvar Onlinestatus.png


    Die Variable wird wieder mit dem entsprechenden Kanal des CUxD-Gerät verknüpft und somit dort angezeigt.


    Den Onlinestatus überwacht und steuert ein CUxD-Ping Kanal. D.h. mit 1 CUxd-Ping-Gerät (28) können bis zu 16 Shelly PlugS überwacht werden. Natürlich kann auch ein freier Kanal eines schon vorhandenen CUxD-Ping genutzt werden.



    Ping PlugS.png


    IP anpassen!


    Einstellungen für SWITCH|CMD_EXEC_TRUE:

    Code
    1. extra/timer.tcl Onlinestatus_Shelly-PlugS_Garage 1


    Einstellungen für SWITCH|CMD_EXEC_FALSE:

    Code
    1. extra/timer.tcl Onlinestatus_Shelly-PlugS_Garage 0


    Name der Systemvariablen jeweils anpassen! (hier: Onlinestatus_Shelly-PlugS_Garage)


    Im eingestellten Intervall des Timers wird nun der Onlinestatus aktualisiert. :)


    Viel Spass damit.

  • Hallo Route66er!

    Phantastisch, :)Deine Anleitung. Hat alles auf Anhieb geklappt, zumindest bei den Lichtschaltern.

    Eins bekomm ich aber nicht hin: ;(Ich möchte mein Garagentor über shelly1 öffnen und schließen. Ich hab in Shelly alle Schaltereinstellungen durchprobiert und den Timer auf 2 sec. gesetzt. Der (potentialfreie Schaltausgang wird parallel zum Wandtaster 2 sec. geschlossen). In Shelly funktioniert alles, aber in der Homematic bekomm ich es nicht hin. Der Schalter bleibt immer auf "EIN" stehen (sollte doch wohl zumindest nach 30 sec auf "AUS" springen). hab ich einen Anfänger-Denkfehler?

  • Hallo schuwo , willkommen im Forum. :)


    Vielen Dank für Dein Lob, geht natürlich runter wie Öl.:thumbup:


    Was Dein Problem mit dem Shelly 1 angeht, das ist sicher zu lösen.


    Da es aber nicht zum PlugS gehört, erlaube ich mir, Dein Posting in einen eigenen Thread zu kopieren, wo wir das dann lösen. ;)


    LG

    Stefan, (alias 66er ^^)

  • Hallo Stefan,

    vielen Dank für Deine Anleitung. Ich bin echt mega begeistert! Es funktioniert einwandfrei. Es ist toll das Leute sich die Zeit nehmen und andere an ihrem Wissen teilhaben lassen. Vielen Dank an Dich und natürlich auch all die anderen die hier so gute Anleitungen schreiben und Hilfestellung geben.

    Das steuern des Shelly mit Homematic war schon gut, aber die Leistungsanzeige finde ich echt richtig cool. Jetzt kann ich alles so Verknüpfen wie ich es mir erhofft hatte

    Vielen Dank und viele Grüße

    Michael

  • Hallo Michael,


    danke für's Lob. :thumbup:


    Tut gut und spornt an. ;)


    Viele Spass mit den Shelly-Kopplungen.

  • Hallo itschi77 ,


    vielen Dank für die Komplimente, so etwas spornt an weiterzumachen. ;):thumbup:

    Beste Grüße

    Axel

    Theorie ist wenn man alles weiß und nichts funktioniert. Praxis ist wenn alles funktioniert und keiner weiß warum.


    Einsteigertipps / Tips for beginners


    Homematic/IP mit CCU3, iOBroker, Shelly (1, 2.5, RGBW2, PlugS, EM), Homeduino (Mega 2560, W5100)

    Visualisierung (auf iPad Air & iPad 4) mit Mediola AIO CREATOR NEO

  • Hallo,

    ich hätte noch mal eine Frage. Es wäre doch sicher möglich, anstatt "power" abzufragen, nach "total" zu gucken. Könnte man dann mit einem Skript einen Durchschnitt der letzten z.B. 1-5 Minuten errechnen?

    Ich frage, weil ich mit der Messung natürlich auch Standby Geräte ausschalten möchte. Bei der Waschmaschine ist das Problem das sie bei manchen Programmen relativ lange steht und nur kurz dreht. Wenn ich jetzt jede Minute nach der aktuellen Leistung gucke, habe ich es zum Teil, das ich immer die Pause erwische und nach 10 Minuten der Shelly aus geht.
    Jetzt dachte, ganz naiv: total 1000 in 5 Minuten total 1100, delta 100 also Waschmaschine läuft noch.

    Viele Grüße

    Michael

    PS.: Soll ich lieber ein extra Thema auf machen?

  • Hallo Michael,


    machbar ist das wohl in irgendeiner Form.


    Aber bitte habe Verständnis, dass ich die Skripte nicht noch nach jedem Einzelwunsch (allgemein --> 100 User = 100 Versionen ;)) anpassen kann.


    Dein Thema Waschmaschine wurde schon mehrfach umgesetzt mit der publizierten Lösung:


    1. längste Pausenzeit und zugehörigen Verbrauch ermitteln
    2. Verbrauch mit Programm zyklisch überwachen
    3. bei längerer Dauer als in 1. ermittelt -->abschalten.

    PS: Brauchst kein eigenes Thema aufmachen. Sollte hier eine längere Diskussion entstehen, gliedere ich die einfach in ein eigenes Thema aus. ;)

    Also keine Scheu. ^^

  • Aber bitte habe Verständnis, dass ich die Skripte nicht noch nach jedem Einzelwunsch (allgemein --> 100 User = 100 Versionen ;) ) anpassen kann.

    Ja, kein Problem.

    längste Pausenzeit und zugehörigen Verbrauch ermitteln
    Verbrauch mit Programm zyklisch überwachen
    bei längerer Dauer als in 1. ermittelt -->abschalten.

    Habe ich auch schon mal gesehen. Ich dache "total zeitpunkt_2" - "total zeitpunkt_1" Ergebnis > xy ist vielleicht einfach zu realisieren und universell einsetztbar, ohne ermitteln, überwachen und co.

    Aber trotzdem danke für die schnelle Antwort.

    Dann mache ich es vielleicht wie in dem anderen Beitrag

    Viele Grüße

    Michael