- Offizieller Beitrag
©2019-2020 Stefan K. (alias 66er) - ausführlicher Hinweis dazu am Ende der Anleitung
Hallo zusammen,
um den Shelly2.5 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:
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,99€) gegenüber dem Homematic-Produkt (59,95€)
- alle Shelly2.5 -Eigenschaften bleiben erhalten, da ich die Aktoren mit der originalen Herstellerfirmware betreibe
- Schutzfunktionen des Shelly2,5 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:
Shelly2-5 als Rollladen in Homematic.png
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 ausschließlich die Befehle abgesetzt. (Im CUxD-Exec werden keine Eintragungen gemacht!)
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.5) und eigener Anforderung 1 oder 2 Tasten(-paare, kurz/lang) benötigt (siehe Bild 1):
Taste 1 für AUF und AB und optional die Darstellung der Behanghöhe und des Onlinestatus
Taste 2 (optional) für STOP und definierte Beschattungsposition
(Nichtgenutzte Tasterkanäle der Universalsteuerung können deaktiviert werden. Alle optionalen Eigenschaften/Einrichtungen können auch weggelassen werden, je nach eigenem Geschmack bzw. eigener Anforderung)
Die Einstellungen der Kanäle:
Taste 1:
Einstellung für SWITCH|CMD_SHORT:
Einstellungen für SWITCH|CMD_LONG:
(optional)
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 Shelly2.5 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:
Achtung:
Die Namen der Systemvariablen dürfen keine Leerzeichen und keine Umlaute enthalten!
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 ! (Ob man beide dem gleichen Kanal zuweist oder jeweils 1 einem Kanal bleibt dem eigenen Geschmack überlassen und ändert funktional nichts.)
Den Onlinestatus überwacht und steuert ein CUxD-Ping Kanal. D.h. mit 1 CUxd-Ping-Gerät (28) können bis zu 16 Shelly2.5 überwacht werden. Natürlich kann auch ein freier Kanal eines schon vorhandenen CUxD-Ping genutzt werden.
IP des eigenen Shelly2.5 eintragen!
Einstellungen für SWITCH|CMD_EXEC_TRUE:
Einstellungen für SWITCH|CMD_EXEC_FALSE:
Name der Systemvariablen jeweils anpassen! (hier: Onlinestatus_Shelly2-5_Rollladen_Fitnessraum)
Nun fehlt noch die Behanghöhe (hierfür muß der Shelly2 bereits kalibriert sein!):
Dazu einen Timer (als Auslöser der Aktualisierung) anlegen:
Timer Shelly2-5 aktualisierung.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.5 können in weiteren DANN-Zeilen jeweils ansteigend verzögert hinzugefügt werden.
(Sollte das Programm durch die Prüfung auf "Timerevent" nicht getriggert werden, so kann auch auf
TIMER_GET im Wertebereich kleiner 1 bei Änderung
umgestellt werden.
Und zum Schluß noch das Skript:
!Skript V3.1.4 zur Behanghöheaktualisierung (%) Shelly2.5 als Rollladenaktor mit Originalfirmware © by 66er (alias Stefan K.) Alle Rechte vorbehalten
! Publiziert und Updates auf https://smarthome-forum.eu/forum/index.php?board/145-homematic/
!Versionsdatum: 02.04.2024
! Changelog: vereinfachtes Setup
!Zimmer (nur zur Orientierung, ggf anpassen)
!**** SETUP ******** SETUP ******** SETUP ******** SETUP ***
! ACHTUNG: Beim Anpassen der Adressen keine "" löschen!
! Setup der CUxD-GERÄTE
var url = "http://192.168.1.1/roller/0"; ! IP-Adresse des Shelly 2.5 anpassen
var exec2r = "CUxD.CUX2801001:3"; ! Adresse und Kanal des CUxD-Exec-Device angeben
var shelly25 = "CUxD.CUX4000006:3" ; ! Adresse und Kanal des CUxD-Device für den Shelly 2.5 anpassen
!Setup der SYSTEMVARIABLE(N)
var bhh = "Behanghoehe_Rollladen_Zimmer"; ! Name der Systemvariablen für die Behanghöhe anpassen
!****ENDE SETUP ********ENDE SETUP ********ENDE SETUP ******
!*****Ab hier NICHTS MEHR ÄNDERN *****
!****Abfrage des Shelly2.5 als Rollladenaktor*****
dom.GetObject(""#exec2r#".CMD_SETS").State("wget -q -O - '"#url#"'");
dom.GetObject(""#exec2r#".CMD_QUERY_RET").State(1);
string Antwort = dom.GetObject(""#exec2r#".CMD_RETS").State();
string t = dom.GetObject(""#exec2r#".CMD_RETS").State();
dom.GetObject(""#exec2r#".CMD_SETS").State("0"); ! SH25RM31266R
!WriteLine(Antwort);
!WriteLine(t);
!****Auswertung des Antwortstrings ****
string s;
foreach (s,t.Split (",")) {
if (s.LTrim ("{").StartsWith ('"current_pos"')) {
string e = (s.StrValueByIndex (":",1).RTrim ("}"));
WriteLine(e);
}
}
!**** Variable Rollladenbehanghöhe setzen****
dom.GetObject(""#bhh#"").State(e);
!Ende Skript
Alles anzeigen
Abschnitt "Setup" anpassen!
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
____________________________________________________________