Ich hatte in diesem Beitrag schon mal beschrieben, wie man einen 2.5 so einrichtet, dass man ihn über die Homematic mit einer Prozentangabe steuern kann. Da ich vor ein paar Tagen meinen ersten Plus 2PM erhalten und erfolgreich in der Homematic eingebunden habe, will ich hier mal meine Vorgehensweise vorstellen.
Der hauptsächliche Unterschied liegt darin, dass beim 2.5 die aktuelle Position des Rollos von der CCU per http geholt werden muss und beim Plus 2PM die Position von ihm an die CCU übertragen wird.
1. Wenn noch nicht geschehen, muss CUxD installiert werden. Ich habe für diese Anleitung Version 2.8 in Verbindung mit piVCCU 3.61.7 verwendet. Auf dem Shelly ist die Firmware 0.10.1.
2. Erstellen eines neuen CUxD-Gerätes:
Gerätetyp: (28) System
Funktion: Exec
Control: Jalousie
Seriennummer, Name und Geräte-Icon können frei gewählt werden. Die Angaben/Auswahl hat keinen Einfluss auf die Funktion.
Wer die App Home24 verwenden möchte, muss bei Geräte-Icon einen Jalousieaktor auswählen (lässt sich auch nachträglich ändern). Ansonsten wird er in der App nicht angezeigt.
3. Das eben erstellte CUxD-Gerät muss noch eingestellt werden:
Die nicht vollständig sichtbaren Einträge sind
BLIND|CMD_SHORT:
wget -q -O - -t 1 -T 10 'http://$C1$/rpc/Cover.Stop?id~3d0'
BLIND|CMD_LONG:
wget -q -O - -t 1 -T 10 'http://$C1$/rpc/Cover.GoToPosition?id~3d0~26pos~3d$VALUE$/10'
Bei BLIND|CH_PARAM1 muss die IP-Adresse des Shelly eingetragen werden.
4. Der erste Test.
Wenn alles richtig eingestellt ist, sollte der Rollladen sich jetzt unter Status und Bedienung > Geräte bedienen lassen.
Damit aber auch der Status der CCU bekannt ist, wenn von anderer Stelle (Shelly APP, Schalter/Taster, WebUI, …) gesteuert wurde, ist noch ein weiterer Schritt notwendig.
5. Im Shelly ist ein Skript hinzuzufügen.
Das Skript:
// *************************************
let vIpCcu = "192.168.69.14"; // IP der CCU
let vCuxd = "Rollo%20Kinderzimmer"; // Name des CUxD Aktors
// *************************************
Shelly.addStatusHandler(
function (event) {
if (typeof event.delta.current_pos !== 'undefined') {
let vPos = JSON.stringify(event.delta.current_pos / 100);
let vUrl = 'http://' + vIpCcu + ':8181/x.exe?y=dom.GetObject(%22' + vCuxd + '%22).DPByHssDP(%22SET_STATE%22).State(%22' + vPos + '%22)';
Shelly.call("http.get", {url: vUrl}, null, null);
}
}
);
Alles anzeigen
IP der CCU und Name des Rollladenaktors muss angepasst werden!
Ist im Namen des verwendeten Kanales vom CUxD ein Leerzeichen, muss dieses wie in meinem Beispiel durch <%20> ersetzt werden.
Das sollte so weit alles sein, um den Rollladen steuern zu können und auch den aktuellen Stand in der CCU zu haben. Möglich wäre noch eine zusätzliche zyklische Abfrage der Position. Ob das aber überhaupt nötig ist, wird sich im Laufe der Zeit herausstellen. Mein Ziel ist es, auf das Polling gänzlich zu verzichten.
Zum Schluss noch etwas Rechtliches:
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).
© 2022 SeRef
Alle Rechte vorbehalten