So, manchmal kommt es anders als man denkt und hat doch eher Zeit. 
1. Wenn noch nicht geschehen muss CUxD Installiert werden. Ich habe für diese Anleitung Version 2.5.1 (aktueller Stand heute) in Verbindung mit piVCCU 3.53.34 verwendet. Auf dem Shell 2.5 ist die Firmware 1.9.4.
2. Erstellen eines neuen CUxD-Gerätes:
Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.
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.
Edit: 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:
Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.
Die nicht vollständig sichtbaren Einträge sind
BLIND|CMD_SHORT:
wget -q -O - -t 1 -T 10 'http://<IP>/roller/0?go~3dstop'
BLIND|CMD_LONG:
wget -q -O - -t 1 -T 10 'http://<IP>/roller/0?go~3dto_pos~26roller_pos~3d$VALUE$/10'
Für <IP> muss die IP-Adresse des Shelly eingetragen werden.
4. Der erste Test.
Wenn alles richtig eingestellt ist, sollte der Rolladen 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 Weiteres notwendig.
5. Auf der CCU ist ein einfaches Programm ohne irgendwelche Bedingungen zu erstellen.
Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.
Das Skript:
! Shelly 2.5 auslesen Position 0.1.2
! Rollladen Abstellraum Prog
! ********************************************************
string vIp = "192.168.xxx.xxx"; ! IP des Shelly2.5
string vName = "Rollladen Abstellraum"; ! Name des CUxD Rolladenaktors
! ********************************************************
string stdout = "";
string stderr = "";
system.Exec("wget -q -O - -t 1 -T 10 'http://" # vIp # "/roller/0'", &stdout, &stderr);
stdout = stdout.Replace("}", ",");
if (stdout.Contains('"current_pos"')) {
stdout = ((stdout.StrValueByIndex('"current_pos"', 1).StrValueByIndex(',', 0).StrValueByIndex(':', 1)).ToFloat() / 100).ToString(2);
dom.GetObject(vName).DPByHssDP("SET_STATE").State(stdout);
} else {
! Hier ließe sich eine Systemvariable für Onlinestatus auf false setzen
}
Alles anzeigen
IP und Name des Rollladenaktors muss angepasst werden!
6. Jetzt muss noch die ID des Programmes ermittelt werden. Dazu kann folgendes Skript unter „Skript testen“ ausgeführt werden:
string vProgname = "Rollladen Abstellraum Prog";
WriteLine((dom.GetObject(ID_PROGRAMS)).Get(vProgname).ID());
Name des Progamms muss angepasst werden!
Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.
In meinem Fall ist es die 1837.
7. Im Shelly muss nun bei "I/O URL actions -> Roller STOP url" folgendes eingetragen werden:
Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.
http://<IpCCU>:8181/x.exe?y=dom.GetObject(<ID>).ProgramExecute()
Für <IpCCU> ist die IP-Adresse der CCU einzutragen und bei <ID> die unter 6. Ermittelte ID.
Testweise kann man die url auch in einem Browser eingegeben werden. Zumindest im Firefox.
Bei Problemen liegt das oft an den Einstellungen der CCU-Firewall. Der Befehl wie er hier angegeben ist funktioniert nur, wenn über den Assistenten die Firewall auf „Relaxed“ gestellt wurde. Wer „Maximal gesichert“ nutzen möchte muss manuel den Port 8181 freigeben und mit dem Befehl noch einen Benutzer und das dazugehörige Passwort angeben.
http:// <Nutzer>:<Passwort>@<IpCCU>:8181/x.exe?y=dom.GetObject(<ID>).ProgramExecute()
Das sollte soweit 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 zykliche Abfrage des Status. Dazu einfach im Programm ein Zeitmodul hinzufügen. Ich habe es bei mir nicht mit drin und habe in den 6-8 Wochen in denen ich einen Shelly testweise verwende keine Probleme festgestellt. Allerdings schaue ich wenn es „sein Ding tut“ auch nicht regelmäßig auf die WebUI um zu kontrollieren.
Wenn auch der Onlinestatus in einer Variablen zur Verfügung stehen soll und du es nicht hinbekommst melde dich bitte noch mal.
Bei meinem Test-Shelly bin ich dabei noch das ein oder andere umzusetzen, z.B. Energieverbrauch in Variablen dokumentieren oder bei Hinderniserkennung den Rollladen aus der Automatik herauszunehmen. Bei nur einem installiertem funktioniert das schon recht gut, bin mir aber nicht sicher ob mein Lösungsweg (per Schleife in einem Skript für alle) auch bei mehreren noch reibungslos funktioniert.
Wenn noch irgendwelche Fragen sind, einfach fragen.
Viel Erfolg und Gruß