Beiträge von SeRef

VPN/Proxy erkannt

Es scheint, dass Sie einen VPN- oder Proxy-Dienst verwenden. Bitte beachten Sie, dass die Nutzung eines solchen Dienstes die Funktionalität dieser Webseite einschränken kann.

    Wenn man Programme von extern startet und damit (oder mit mehreren) gegensätzliche Funktionen im weiteren Ablauf auf der CCU aktiviert, läuft man Gefahr in eine Endlosschleife zu geraten.

    Okay, sowas kann einem nicht nur passieren wenn man mit ProgramExecute() von extern ein Progamm startet. Ich hatte es erst so verstanden, dass sich die Aussage allein auf "von extern" bezog.

    Von daher bin ich ganz deiner Meinung, dass man (nicht nur) mit der Funktion sorgsam umgehen sollte. :thumbup:


    Gruß

    Gut dokumentierte Lösung. :thumbup:

    Danke!

    Dem geneigten Einsteiger sollte bewußt sein, dass bei mehrfacher Nutzung dieser Option durch "amoklaufende" Trigger eine CCU schnell mal erlahmen kann.

    Ich habe diesbezüglich noch keine schlechten Erfahrungen gemacht. Hast du da mal ein Beispiel für mich?

    Ansonsten ist es auch kein Problem das Ganze dahingehend umzustellen, dass vom Shelly eine Variable geändert wird, die dann wiederrum das Programm triggert.


    Gruß

    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:

    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:

    Code
    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ß

    Hallo Olli,


    ich werde demnächst für einen Bekannten seine noch zu installierenden Rollläden automatisieren. Da wir uns einig geworden sind, dies mit Shelly's und einer CCU3 zu machen, werde ich vorab auf meinem Testsystem eine neue Installation einrichten. Wenn Interesse besteht, kann ich dokumentieren wie eine Bedienung und Anzeige analog zu den original HM Aktoren funktioniert. Also mit den Tasten Auf/Ab/Stopp wie auch der Eingabe/Anzeige einer Prozentzahl.


    Da ich noch ein anderes Projekt habe (meine Schwester hat sich eine Wohnung gekauft), kann ich dir nicht genau sagen, wann ich dazu kommen werde. Aber ich denke innerhalb der nächsten zwei Wochen, da die Rollläden dann montiert werden sollen.


    Gruß

    Stimmt. :thumbup: Und das

    ist dann wieder ein Skript. ;)

    Das ist richtig. Um an die aktuelle Position zu kommen wird man um ein Skript nicht herumkommen. Eine Möglichkeit ohne Skript wäre z.B. ioBroker, an den der Shelly per mqtt angemeldet ist und wiederum der Wert an die CCU übertragen wird.


    Hallo SeRef, kannst du mir genauere Informationen zu diesem Programm geben. Das hört sich zumindest nach dem an, was ich eigentlich brauche.

    Sieht das in etwa so aus?:


    VG

    Olli

    Was da noch fehlt ist das Sripkt zum Auslesen der Position über die Api.

    Auch wird es leider mit dem von dir verwendetem CuXD-Gerät nicht wie gewünscht funktionieren. Zumindest habe ich es erst vernünftig mit dem CUxD Gerätetyp: (28)system, Funktion: exec, Control: Jalousie hinbekommen.

    Hast Du dir die Variante von Fossi99 mal angeschaut? (>LINK<).

    Gruß

    Hallo Olli,

    Vom NutzerFossi99 gibt es auch noch eine Variante. Die ist hier zu finden.

    Ich kann dir aber nichts genaues zu der Variante sagen da ich es erst gesehen hatte nachdem ich meine Lösung umgesetzt habe.

    Du kannst current_pos nicht mittels Actions übermitteln, sondern es müßte der Wert per Skript zyklisch abgefragt werden, so wie es auch Friek gepostet hat.

    Aber du kannst ein Programm per Actions auf der CCU starten, das per Api die aktuelle Position ausließt. So passt der Wert sofort nach Stop vom Rollladen und nicht erst nach dem zyklischem Abfragen.


    Gruß

    Ohne es selber getestet zuhaben, eventuell kannst du eine Art Reihenschaltung machen. Der erste Shelly bekommt seinen Befehl vom Taster und gibt ihn an z.B. 2 Shelly's per Actions wie von Schubbie beschrieben weiter. In diesen trägst du dann weitere Shelly's ein, so das der Befehl von einem zum anderem weiter gereicht wird.

    Willkommen im Forum . :)

    Das ist ja mal ein Einstand. Coole Umsetzung, :thumbup:

    Danke! 8)

    Zitat

    (Ich selbst bin kein Fan von automatisierten Updates, ist ein Update fehlerhaft, sind alle betroffen. Daher installiere ich persönlich lieber manuell und bei Bedarf. ;))

    Kann ich verstehen. Man muss ja nicht gleich alle updaten. Dann trägt man eben erst mal nur einen ein und deaktiviert das autoupdate. So wird man schon mal darüber informiert, dass ein neues update verfügbar ist und kann dann bei Bedarf darauf reagieren.

    Hallo,

    da ich meinen Shelly's (bisher "nur" vier) ohne Internetfreigabe betreibe, habe ich nach einer Möglichkeit gesucht ein Firmwareupdate dennoch komfortabel und möglichst automatisiert durchführen zu können. Über diesen Beitrag bin ich zu folgender Lösung gekommen:

    Das Skript holt sich die aktuellen Firmwareversionen vom Server und vergleicht sie mit den aktuell installierten Versionen auf den in der Variable vListe1 angegebenen Shellys. In der Variable wird erst der Typ und dann Kommagetrennt die dazugehörigen IP-Adressen aller Shellys diesen Typs eingetragen. Die verschiedenen Typen werden dann durch ein Semikolon voneinander getrennt.

    Ist auf einem Schelly die Firmware nicht aktuell und die Variable vAutoUpdate mit "ja" vorbelegt wird die entsprechende Firmware vom Server auf einen gemounteten Ordner meiner Fritzbox heruntergeladen. Diese Dateien habe ich vorab Freigegeben (Freigabe bleibt auch nach überschreiben der Datei erhalten) und den Code bei den Variablen vDateiIdxxxx eingetragen. Anschließend wird das Update mit einer Wartezeit von fünf Minuten (damit der Download abgeschlossen ist) angestoßen. Müssen mehrere Shellys geupdatet werden, wird jeweils nochmal 30 Sekunden zur Wartezeit addiert.

    Damit das nicht nur still und heimlich passiert, lasse ich mir per Mail das Ergebnis zusenden. Den Teil habe ich hier im Skript aber auskommentiert, da es nicht ohne weiteres in einer anderen CCU lauffähig ist.

    Ich wünsche allen ein Frohes und gesundes Fest