CuxD-Jalousien über HM-Schalter ansteuern

Anbindung von FS20-Komponenten, ELV-Wetterstationen, EnOcean und DMX an HomeMatic

Moderator: Co-Administratoren

Antworten
Sefi
Beiträge: 3
Registriert: 14.10.2018, 08:47

CuxD-Jalousien über HM-Schalter ansteuern

Beitrag von Sefi » 14.10.2018, 09:52

Hallo zusammen
Ich habe die CCU3 erfolgreich für Licht und Heizung im Einsatz. Nun will ich auch meine Vertikal-Jalousien ins System einbinden. Diese werden mit Somfy-Funkrohrmotoren bewegt. Die Ansteuerung der Motoren hat dank dem Beitrag CCU2 + CuxD + CUL = Somfy RTS (danke an ampelmaennchen79) wunderbar geklappt. Ich kann die Jalousien wunderbar über das WebUI
Bild_R-Schalter.jpg
und auch über den AIO CREATOR neo ansteuern.
Bild_R-NEO.jpg
Soweit so gut. Nun noch die triviale Anbindung an einen pysischen Schalter HM-PB-6-WM55. Und genau hier beisse ich mir die Zähne aus :cry: . Da ich nicht direkt verknüpfen kann, habe den Weg über ein Programm gewählt. Ganz einfach, dachte ich...
Bild_R-Prog.jpg
Ich kriege die eingeblendete Auswahl "Behanghöhe, Anhalten, SEND_CMD, Somfy1", aber nicht wie im neo "move down, move up". Ok, dann nehme ich halt SEND_CMD. Hier habe ich's mit direkten Befehlen wie YsA040008BA00000, Hex-Codes 20 oder auch dom.GetObject("CUxD.CUX4000001:1.SEND_CMD").State("YsA040008BA00000") versucht. Ohne Erolg! Ich sehe die Befehl im CuxD-Terminal aber nichts geht an den Jalousien. Was mich noch mehr irritiert ist, dass die Befehle, mittel WebUI oder neo abgesendt, dieseleben Logeinträge generieren: Der obere über das WebUI löst die Jalousie aus, der unter über den Schalter nicht.
Bild_R-Term.jpg
Bild_R-Term.jpg (13.92 KiB) 397 mal betrachtet
Ich bin mit meinem Latein am Ende :roll: . Hat jemand einen Idee, was ich falsch mache?
Vielen Dank für eure Hilfe

Gruss, Sefi

Benutzeravatar
uwe111
Beiträge: 3743
Registriert: 26.02.2011, 22:22
Kontaktdaten:

Re: CuxD-Jalousien über HM-Schalter ansteuern

Beitrag von uwe111 » 14.10.2018, 16:12

Hallo Sefi,
Sefi hat geschrieben:
14.10.2018, 09:52
Ich bin mit meinem Latein am Ende :roll: . Hat jemand einen Idee, was ich falsch mache?
Vielleicht Funk Kollisionen?
Probiere zum Testen doch einmal den verzögerten Aufruf von SEND_CMD um einige Sekunden.

Viele Grüße

Uwe
Alle sagten: Das geht nicht. Dann kam einer, der wußte das nicht und hat's einfach gemacht.
SPENDEN :wink: Download: CUxD 2.2.0, RFD-Monitor, Vellemann K8055, SSH KeyDir

Sefi
Beiträge: 3
Registriert: 14.10.2018, 08:47

Re: CuxD-Jalousien über HM-Schalter ansteuern

Beitrag von Sefi » 15.10.2018, 23:14

Hallo zusammen
Danke, Uwe für den Hinweis. Wäre eine Möglichkeit gewesen.
Ich habe den Fehler nun gefunden. Ich weiss nicht warum, aber im Storen-Befehl ist ein Zähler eingebaut, der nach jedem Befehl hochgezählt werden muss (daher die Systemvariable Somfy1 - 16 in der Anleitung von ampelmaennchen79). Wenn ich von Hand den Zähler hochsetze, reagiert die Jalousie :D Nun aber das nächste Problem: Der Zähler muss in Hex formatiert sein. Gibt's eine einfache Möglichkeit, mittels Script einen Dezimalwert in Hex umzuwandeln?
Erneut vielen Dank für eure Hilfe
Gruss, Sefi

Sefi
Beiträge: 3
Registriert: 14.10.2018, 08:47

Re: CuxD-Jalousien über HM-Schalter ansteuern

Beitrag von Sefi » 20.10.2018, 17:06

Hallo zusammen
Alles muss man(n) selber machen :lol: Also ich habe nun einen Umrechner von Dez nach Hex geschrieben und das Jalousien-Programm in den Schalterscripts nachgebildet. Für diejenigen, die's interessiert, habe ich unten den Code für die Jalousie 1 reinkompiert.
Gruss an alle
Sefi

-----------------------------------
! Variablen definieren
string cmd = "";
integer lc = 0;
var counter = 0;
var zahl = 0;
var rest = 0;

! Counter für die Jalousie 1 abfragen und nach Hex umrechnen
var counter = dom.GetObject("Somfy1").Value();
zahl = counter;
while (zahl != 0) {
rest = zahl.Mod(16);
if (rest < 10) {cmd = rest.ToString(0) # cmd;}
if (rest == 10) {cmd = "A" # cmd;}
if (rest == 11) {cmd = "B" # cmd;}
if (rest == 12) {cmd = "C" # cmd;}
if (rest == 13) {cmd = "D" # cmd;}
if (rest == 14) {cmd = "E" # cmd;}
if (rest == 15) {cmd = "F" # cmd;}
zahl = zahl / 16;
zahl = zahl.Trunc(0);
}

! Komando für Jalousie 1 zusammenstellen
lc = cmd.Length();
while (lc < 4) {
cmd = "0" # cmd;
lc = cmd.Length();
}
cmd = "YsA040" # cmd # "A00000";

! Komando absenden und Zähler hochzählen
dom.GetObject("CUxD.CUX4000001:1.SEND_CMD").State(cmd);
counter = counter + 1;
dom.GetObject("Somfy1").State(counter);

Antworten

Zurück zu „CUxD“