Thermostate umstellen Heizen/Kühlen per Script

Kabellose und kabelgebundene Sender und Empfänger der klassischen Homematic-Serie

Moderator: Co-Administratoren

Antworten
Pinky
Beiträge: 83
Registriert: 19.04.2017, 16:02
Hat sich bedankt: 4 Mal

Thermostate umstellen Heizen/Kühlen per Script

Beitrag von Pinky » 09.06.2019, 08:53

Tag zusammen,

ich scheitere gerade an der Einrichtung von der Umschaltung meiner Thermostate.

Die Thermostate lassen sich ja von Heizen auf Kühlen umstellen. Da ich in jedem Raum einen Thermostat habe und die Temperaturen im moment recht stark von "kalt" auf "warm" schwanken, möchte ich auch die Thermostate dann entsprechend von kühlen auf heizen umstellen - am liebsten per Taster, damit ich nicht jeden Thermostat in der Web-GUI einzeln anfassen muss.

Das scheint auch zu funktionieren, zumindest wurde es hier schon verständlich beschrieben, sodass mir der Weg soweit einleuchtet: viewtopic.php?t=18843

Offenbar mache ich dennoch irgend etwas falsch, vielleicht habt ihr ja einen Tipp, was das sein könnte.

Meine Schritte bislang:
Ich habe eine Systemvariable eingerichtet "iskuehlen". Logikwert wahr-falsch.
Das TCL-Script unter: viewtopic.php?f=27&t=4259&p=34570#p34570 ist per ssh unter /usr/local/setparam.tcl hinterlegt und trägt mittlerweile 777.
Ich habe ein Programm erstellt welches die Systemvariablen ausliest und bei Aktualisierung das TCL-Script triggert. Ein weiteres, welches bei Tastendruck die Systemvariablen aktualisiert.
Zur Kontrolle ob das script auch ausgeführt wird habe lasse ich eine Lampe im Wohnzimmer mit schalten. Das script wird ausgeführt.

Dennoch ist der Thermostat nach wie vor auf "Heizen" eingestellt, wenn ich in der GUI in den Geräteeinstellungen das Dropdown kontrolliere.

Mein Script wie ich es derzeit verwende sieht so aus:

Code: Alles auswählen

string addr = dom.GetObject("WZ Thermostat").Address();
string cmd = "tclsh /usr/local/setparam.tcl "#addr#" HEATING_COOLING int "#1;
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State(cmd);
So wie der Kollege aus dem Post oben habe ich das Script bereits auf das notwendigste reduziert. Ich kann hier keinen Fehler mehr erkennen. Auch die Automatische Scriptkontrolle sagt, dass das Script in Ordnung ist. Dennoch gibt mir das Log folgenden Fehler aus:

Code: Alles auswählen

Jun  9 08:32:46 homematic-ccu2 local0.err ReGaHss: Error: IseESP::ScriptRuntimeError: string addr = dom.GetObject("WZ Thermostat").Address(); string cmd = "tclsh /usr/local/setparam.tcl "#addr#" HEATING_COOLING int "#1; dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State(cmd); 
Den Namen des "WZ Thermostat" habe ich bereits gegengeprüft, dieser scheint korrekt zu sein. Nun bin ich ratlos.

Hat noch jemand eine Ahnung warum der Thermostat denoch nicht umschaltet?

Gruß Pinky

Pinky
Beiträge: 83
Registriert: 19.04.2017, 16:02
Hat sich bedankt: 4 Mal

Re: Thermostate umstellen Heizen/Kühlen per Script

Beitrag von Pinky » 27.08.2019, 23:36

Jemand eine Idee?

SoerenR
Beiträge: 656
Registriert: 19.03.2019, 10:10
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 44 Mal
Danksagung erhalten: 57 Mal

Re: Thermostate umstellen Heizen/Kühlen per Script

Beitrag von SoerenR » 27.08.2019, 23:45

Fangen wir doch mal vorne an.

Welche HM Geräte hast du den genau im Einsatz die umstellen möchtest?
Gruß Sören

RaspberryMatic // Philips Hue // KNX // HomeKit // und ein paar Spielerreien

dtp
Beiträge: 10655
Registriert: 21.09.2012, 08:09
System: CCU
Wohnort: Stuttgart
Hat sich bedankt: 320 Mal
Danksagung erhalten: 501 Mal

Re: Thermostate umstellen Heizen/Kühlen per Script

Beitrag von dtp » 28.08.2019, 07:28

Was soll denn das "#1" am Ende der "string cmd"-Zeile bewirken? Da erwartet die ReGaHSS dann eigentlich eine lokale Variable.

Versusch's doch mal so:

Code: Alles auswählen

integer value = 1;
string addr = dom.GetObject("WZ Thermostat").Address();
string cmd = "tclsh /usr/local/setparam.tcl "#addr#" HEATING_COOLING int "#value;
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State(cmd);
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.

alchy
Beiträge: 10752
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 672 Mal

Re: Thermostate umstellen Heizen/Kühlen per Script

Beitrag von alchy » 29.08.2019, 20:08

dtp hat geschrieben:
28.08.2019, 07:28
Da erwartet die ReGaHSS dann eigentlich eine lokale Variable.
Eher nicht,
Sofern er sich mit Zahlen begnügt

Code: Alles auswählen

string eins = "was auch immer ";
string zwei = eins #1;
WriteLine(zwei);
[EDIT]
und was das Umschalten betrifft, vielleicht auch andere Methoden in Betracht ziehen und wenn es ein Script sein muss dann den Typen der Thermostate nennen.

Alchy
Zuletzt geändert von alchy am 29.08.2019, 20:32, insgesamt 1-mal geändert.
Grund: [EDIT]

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

Antworten

Zurück zu „HomeMatic Aktoren und Sensoren (klassisch)“