- Offizieller Beitrag
©2019 - 2020 Stefan K. (alias 66er) - ausführlicher Hinweis dazu am Ende der Anleitung
Alle Rechte vorbehalten!
Hallo zusammen,
um den Shelly 2 in Homematic einzubinden, braucht es keine Fremdfirmware, die man flashen muß.
Für den Modus "Rolladenaktor" stelle ich meine Lösung mit der Originalfirmware vor:
DIe Vorteile aus meiner Sicht:
- sehr günstiger Preis (19,99€) gegenüber dem Homematic-Produkt (59,95€)
- alle Shelly2-Eigenschaften bleiben erhalten, da ich die Aktoren mit der originalen Herstellerfirmware betreibe
- Schutzfunktionen des Shelly 2 wie z.B. Überlast bleiben erhalten
- Volle Shelly-App-Bedienbarkeit parallel zur Homematic-Automatisierung
- Als manueller Schalter können markenunabhängig alle vorhandenen Rollladenschalter (weiter) genutzt werden
- Betrieb als lokale Lösung oder über Shelly-Cloud, zusätzlich Homematic
Folgende Funktionen habe ich auf der Homematic-Seite umgesetzt:
- Rollladen öffnen (Behanghöhe 100%)
- Rollladen schließen (Behanghöhe 0%)
- laufende Fahrt Stop
- Anfahren von 1 definierte Beschattungsposition
- Aktualisierung der aktuellen Behanghöhe in frei einstellbarem Intervall, unabhängig davon, ob die Bedienung über Homematic oder Shelly-App oder Taster erfolgt
- Überwachung des Onlinestatus (Erreichbarkeit im WLAN)
Die Ansicht der Anbindung:
Bild 1
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.
Hier gibt es bei Bedarf eine Anleitung zum Anlegen des CUxD-Exec-Gerätes.
Anlegen einer CUxD (40) 16-Kanal Universalsteuerung als Taster
Davon werden je Rollladenaktor (Shelly2) 2 Tasten benötigt (siehe Bild 1):
Taste 1 für AUF und AB und optional die Darstellung der Behanghöhe und des Onlinestatus
Taste 2 für STOP und definierte Beschattungsposition
(Im Bild 1 sind die Kanäle 3 bis 16 der Universalsteuerung deaktiviert und daher nicht sichtbar, für eine 2. Aktor würde man Kanal 3 und 4 aktivieren)
Die Einstellungen der Kanäle:
Kanaleinstellungen Taste 1 AUF-AB.JPG
Taste 1:
Einstellung für SWITCH|CMD_SHORT:
Einstellungen für SWITCH|CMD_LONG:
Taste 2:
Einstellung für SWITCH|CMD_SHORT:
Einstellungen für SWITCH|CMD_LONG:
Die "20" am Ende dieses Codes entspricht der Behanghöhe 20% und kann frei im Wertebereich 1 bis 99 angepasst werden.
IP-Adresse des Shelly 2 jeweils anpassen !
Damit ist die eigentliche Steuerung schon einsatzbereit.
Für die optionale Anzeige von Behanghöhe und Onlinestatus werden je 1 Systemvariable benötigt, deren Name natürlich frei an eigene Ideen angepasst werden kann:
Die SV für den Onlinestatus:
Die SV für die Behanghöhe:
Wichtig ist, beide Variablen dem entsprechenden Taster-Kanal der 16-fach Universalsteuerung zuzuweisen, damit sie dort auch angezeigt werden !
Den Onlinestatus überwacht und steuert ein CUxD-Ping Kanal. D.h. mit 1 CUxd-Ping-Gerät (28) können bis zu 16 Shelly2 überwacht werden. Natürlich kann auch ein freier Kanal eines schon vorhandenen CUxD-Ping genutzt werden.
Einstellungen für SWITCH|CMD_EXEC_TRUE:
Einstellungen für SWITCH|CMD_EXEC_FALSE:
Name der Systemvariablen ggf. anpassen! (hier: Onlinestatus_Shelly_Roll_SZ)
Nun fehlt noch die Behanghöhe (hierfür muß der Shelly2 bereits kalibriert sein!):
Dazu einen Timer (als Auslöser der Aktualisierung):
Timer Shelly2 Behanghöhe.JPG(hier wird der Wert alle 60 Sekunden aktualisiert)
und 1 Programm für die Aktualisierung:
Das Programm braucht nur den Timer als Auslöser! Mehrere Shelly2 können in weiteren DANN-Zeilen jeweils ansteigend verzögert hinzugefügt werden,
Und zum Schluß noch das Skript:
! Skript V2.1.2 zur Behanghöheaktualisierung (%) Shelly2 als Rollladenaktor mit Originalfirmware (c) by Stefan K. (alias 66er)
! Alle Rechte vorbehalten!
! Keine gewerbliche Verwendung ohne entsprechende Vereinbarung!
!Raumbezeichnung (nur zur Orientierung, ggf anpassen)
!****Abfrage des Shelly2 als Rollladenaktor*****
!In der folgenden Zeile IP des Shelly2 anpassen!
var url = "http://192.168.1.xxx/roller/0";
!In den folgenden Zeilen die CUxD-Exec-Kanalnummer anpassen
dom.GetObject("CUxD.CUX2801001:3.CMD_SETS").State("wget -q -O - '"#url#"'");
dom.GetObject("CUxD.CUX2801001:3.CMD_QUERY_RET").State(1);
string Antwort = dom.GetObject("CUxD.CUX2801001:3.CMD_RETS").State();
string t = dom.GetObject("CUxD.CUX2801001:3.CMD_RETS").State();
dom.GetObject("CUxD.CUX2801001:3.CMD_SETS").State("0");
!WriteLine(Antwort);
!WriteLine(t);
!****Auswertung des Antwortstrings ****
!In diesem Abschnitt NICHTS ÄNDERN
string s;
foreach (s,t.Split (",")) {
if (s.LTrim ("{").StartsWith ('"current_pos"')) {
string e = (s.StrValueByIndex (":",1).RTrim ("}"));
! WriteLine(e);
}
}
!**** Variable Rollladenbehanghöhe setzen****
!Variablennamen anpassen
dom.GetObject("Shelly_Behanghoehe_Rollladen_SZ").State(e);
!Ende Skript
Alles anzeigen
Gemäß den Hinweisen im Skript sind anzupassen:
IP des Shelly2
CUxD-Exec-Kanal (Im Skript: CUX2801001:3)
Name der Variablen (Im Skript: Shelly_Behanghoehe_Rollladen_SZ)
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.