Shelly 1 in Homematic einbinden - mit der Originalfirmware

    • Offizieller Beitrag

    ©2019-2020 Stefan K. (alias 66er) - ausführlicher Hinweis dazu am Ende der Anleitung

    Alle Rechte vorbehalten!

    Funktion getestet mit Firmware-Version(en):

    1.5.9 | 1.7.7 | 1.9.0

    Hallo zusammen,

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

    Nachfolgend stelle ich nun meine Lösung mit der Originalfirmware vor:

    Möglichkeiten:

    • Einschalten
    • Ausschalten
    • Zustandsanzeige
    • Aktualisierung in frei einstellbarem Intervall (wichtig, falls z.B. parallel per Shelly-App oder Shelly-Timer geschaltet wird)
    • Nutzung in Programmen
    • optionale Überwachung der Erreichbarkeit des Shelly im Netzwerk (Onlinestatus)

    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.)

    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.

    Hier gibt es bei Bedarf eine Anleitung zum Anlegen des CUxD-Exec-Gerätes.

    (Im CUxD-Exec selbst werden keine Eintragungen gemacht!)

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

    Bildschirmfoto vom 2020-02-27 11-59-06.png

    CUxD Shelly.JPG

    Einstellungen der einzelnen Kanäle (1 Kanal = 1 Shelly)

    Schaltereinstellung.JPG

    Einstellung für SWITCH|CMD_SHORT:

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


    Einstellungen für SWITCH|CMD_LONG:

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

    IP-Adresse des Shelly1 jeweils anpassen


    Damit funktioniert schon mal das EIN- und AUS-Schalten. :)


    Für die Statusaktualisierung benötigt man neben dem CUxD-Exec noch einen CUxD-Timer.

    Nachtrag;

    Darauf kann man seit Firmware 1.5.0 ggf. verzichten, wenn man zur Statusaktualisierung die "Actions" in den Shelly nutzt. Vor- und Nachteile wurden in diesem Thread erörtert.

    Auch die Einrichtung der Actions ist dort beschrieben. ;)

    Ich empfehle die Nutzung der Actions.Diese gab es bei Veröffentlichung dieser Anleitung noch nicht!



    Im Timer wird die gewünschte Aktualisierungzeit (hier 30 Sekunden) eingetragen:
    Timer.JPG

    Nun braucht es noch 1 Programm, welches den Schalterstatus zyklisch aktualisiert:

    Programm Shelly aktualisieren.JPG

    Die zusätzlichen WENN-Prüfungen sind natürlich optional und auf meinen Aufbau angepasst. Funktional muß nur die 1. WENN-Zeile im Programm stehen !;)


    Und wenn das Programm unter Verwendung von "Timerevent" nicht triggert, so kann man stattdessen auch

    "bei Timerget im Wertebereich kleiner1 - bei Änderung"

    auslösen.

    Fehlt noch das Skript:


    Bei einem Aktualisierungsintervall von 30 Sekunden und aktuell 3 Shelly1 ist keine größere Veränderung der CCU3-Auslastung zu bemerken. :)


    Optionale Überwachung des Onlinestatus des Shelly1
    (Erreichbarkeit im (W)LAN)


    Hier mal vorab das Ergebnis:

    Onlinestatus des Shelly.JPG


    (So kann schon hier jeder für sich entscheiden, ob das Thema für den Einzelnen relevant ist und weiterverfolgt wird ;) )

    Vorteile der optionalen Überwachung:

    • Ausfallüberwachung
    • Online-Status im bereits angelegten "CUxD-Shelly-Gerät" sichtbar
    • Möglichkeit auf Nichterreichbarkeit eines Shelly1 individuell zu reagieren, z.B. mit eMail-Benachrichtigung, Anzeige o.ä.
    • projektabhängige zusätzliche EInflußnahme auf den Schaltzustand des "CUxD-Shelly"

    Was wird zusätzlich zur bisherigen Einrichtung benötigt:

    • 1 CUxD-Gerät (28) Ping (1Kanal / Shelly1)
    • 1 Systemvariable je Shelly1

    Die Systemvariable(n):
    Je Shelly wird 1 Systemvariable vom Typ Logik angelegt:

    Sysvar.JPG

    und mit dem entsprechenden Kanal des "CUxD-Shelly" verknüpft.


    Dadurch wird die Variable im CUxD-Gerät sichtbar (siehe Bild unter Ergebnis)


    Gesteuert wird die Variable direkt durch das Gerät "CUxD-Ping". (Sinnvollerweise ordnet man die Kanäle 1:1 den Shellys zu wie beim CUxD-Schalter. ;))


    Nun ergeben sich 2 Möglichkeiten:


    1. Onlinezustand nur anzeigen


    Dazu ist je Shelly1 der zugeordnete CUxD-Ping-Kanal wie folgt einzustellen:

    Shelly-Ping.JPG

    (Die Zeiten können beliebig verändert werden. (solange Euer System nicht in die Knie geht. ^^ )
    SWITCH|IP_DNS_ADR: IP des Shelly anpassen

    SWITCH|CMD_EXEC_TRUE:

    Code
    extra/timer.tcl Onlinestatus_Shelly_Fitnessraum 1

    SWITCH|CMD_EXEC_FALSE:

    Code
    extra/timer.tcl Onlinestatus_Shelly_Fitnessraum 0

    Achtung: In beiden Codes...


    "Onlinestatus_Shelly_Fitnessraum" durch den Namen Eurer Systemvariablen ersetzen! (Achtung: keine Leerzeichen im Namen verwenden!)

    :) Ab jetzt überwacht das CUxD-Ping den Shelly1 und aktualisiert ggf. den Status online/offline in der Systemvariablen automatisch. :)


    Stimmt nach dem Anlegen der Zustand der Systemvariablen nicht mit dem realen Onlinestatus überein, so muß der reale Onlinestatus einmalig geändert werden (z.b. durch Ausschalten des Shelly). Nach Abwarten der im PING eingestellten Überwachungszeit und Wiedereinschalten des Shelly erfolgt dann die autom. Aktualisierung.

    2. zusätzlich bei Status "Offline" den CUxD-Schalter des Shelly in Stellung "AUS" bringen
    (ohne das unnötigerweise Befehle ins Netzwerk gesendet werden)


    Sinn und Zweck:


    Mangels N-Leiter in den Schalterdosen habe ich meine Shelly1 in den Lampen verbaut. Wird nun das Licht versehentlich (oder auch gewollt) über den herkömmlichen Schalter ausgeschaltet, so ist nicht nur das Licht aus, sondern auch der Shelly1 (=offline). Die CCU würde das aber nicht mitbekommen und folglich den CUxD-Schalter weiterhin im Zustand 1 belassen.


    Durch einen 2.Befehl im Code für SWITCH|CMD_EXEC_FALSE kann der CUxD-Shelly-Schaltkanal auf AUS gesetzt werden, ohne dass unnötige Befehle ins Netzwerk gesendet werden. Insgesamt sieht der erweiterte Eintrag dann so aus:

    Code
    extra/timer.tcl Onlinestatus_Shelly_Fitnessraum 0;  extra/timer.tcl CUxD.CUX4000005:1.SET_STATE 0

    "Onlinestatus_Shelly_Fitnessraum" durch den Namen Eurer Systemvariablen ersetzen! (Achtung: keine Leerzeichen im Namen verwenden!)


    Außerdem bitte die CUxD-Adresse des Shelly-Schalt-Kanal anpassen!

    :) Durch die erweiterte Befehlszeile wird nun zusätzlich zum Status in der Systemvariablen bei OFFLINE auch der Schalter auf Position AUS gesetzt. :)


    (SWITCH|CMD_EXEC_TRUE braucht nicht erweitert zu werden, da bei ONLINE der Schaltzustand des Shelly1 ja eh aktualisiert wird.) ;)

    Viel Spass damit

    ____________________________________________________________

    Die Anleitung inkl. der Skripte und Bilder unterliegt dem Urheberrecht. Wer gegen das Urheberrecht verstößt (z.B. Bilder oder Texte unerlaubt kopiert und auf anderen Webseiten publiziert), macht sich gem. §§ 106 ff UrhG strafbar, kann zudem kostenpflichtig abgemahnt werden und muss Schadensersatz leisten (§ 97 UrhG).

    © 2019-2020 Stefan K. (alias 66er)

    Alle Rechte vorbehalten

    ____________________________________________________________

    Dir gefällt die Anleitung? Du möchtest den dahinterstehenden Aufwand mit einem kleinen "Danke" honorieren?

    Ich freue mich über jedes Danke  Paypal (Geld an einen Freund senden): der-66er@web.de

    Vielen Dank.

    • Offizieller Beitrag

    Hallo Bandsalat ,

    Dein Hinweis ist korrekt.

    Die gepostete Lösung ist allerdings schon älter.

    Sie war zunächst in einem anderen Forum publiziert und wurde erst kürzlich von mir hier neu veröffentlicht. ;)

    • Offizieller Beitrag

    Hallo zusammen,

    in #1 wurde die Statusrückmeldung via "Actions" in den Shelly ergänzt. ;)

    Schönen Sonntag.

  • coole Erklärung passt genau, hab auch den online/offline status der shellys in meine Homematic eingepflegt nur hab ich die Aktualisierung der Stati mit den Bordmiteln "Auslösen zu Zeitpunkten" gelöst also ohne cuxd timer... und funkt auch recht zuverlässig...mache die Aktualisierung der shellys stockweise...habe noch ne gute alte CCU und die Aktualiserungen laufen ohne Stress

    bild1.PNG

    bild2.PNG

  • Dieses Thema enthält 37 weitere Beiträge, die nur für registrierte Benutzer sichtbar sind, bitte registrieren Sie sich oder melden Sie sich an um diese lesen zu können.