ich habe mich jetzt schlau gemacht, wie man in der CCU ein Programm als Unterprogramm starten kann. Findet man recht einfach und läuft mittels eines Scripts.
Damit habe ich umgesetzt, dass ich ein zentrales Programm baue, um eine Klimaanlage mittels URL-Befehl und CUxD mit einer Temperaturvorgabe und weiteren Parametern wie "Heizen/Kühlen" und "Wedeln" einzuschalten. Das erfolgt mittels Script.
Da ich aber nicht in allen Programmen, wo ich die Anlage einschalten möchte, immer wieder das selbe Script einbauen muss und bei einer eventuellen Änderung alle Programme anfassen muss, habe ich mit das als zentrales Programm abgelegt und rufe dieses Programm mittels Script aus einem anderen Programm auf.
DAs Script habe ich hier gefunden: https://technikkram.net/blog/2019/07/31 ... -aufrufen/
Die Scriptsteuerung für das Klimagerät sieht zum Beispiel so aus (Hier z.B. 22 Grad Vorgabe und "mode=" und "dir=".)
Code: Alles auswählen
string url="http://192.168.xxx.xxx/aircon/set_control_info?pow=1&mode=4&stemp=22&shum=0&f_rate=A&f_dir=3";
if ( (dom.GetObject(ID_DATAPOINTS)).Get("CUxD.CUX2801002:1.CMD_EXEC")) {
dom.GetObject(ID_DATAPOINTS).Get("CUxD.CUX2801002:1.CMD_EXEC").State("wget -q -O - '"#url#"'");}
Derzeit muss ich es aber so machen, dass ich für jede Temperaturvorgabe für die Klimaanlage ein eigenes Programm basteln muss. Eleganter wäre es natürlich, wenn ich die Temperatur oder auch andere Parameter vom ersten Programm an das zweite übergeben könnte. Dann würde ich nur ein Programm zur Ansteuerung der Klimaanlage benötigen und könnte die Parameter in dem ersten Programm definieren.
Das umzusetzen bin ich aber zu dumm. Es müsste doch mit Variablen und Platzhaltern funktionieren, oder? Man müsste die Variablen aber auch für nachfolgende andere Befehle wieder überschreiben, oder?
Kann mir da jemand etwas Hilfe geben?
Falls Infos fehlen, bitte fragen.