Re: CCU3-Script - Alle HKT auf Urlaubsmodus
Verfasst: 09.11.2021, 18:53
Liest man mal "queer Beet" im Web zum Thema findet man auch keine funktionierende Lösung sondern stößt eher auf die gleichen Probleme.
Die "beste Option" hier was funktionierendes zu bekommen ist m.E. den Funktionsaufruf beim Setzen des Urlaubsmodus über die WebUI zu replizieren.
Gefunden habe ich in der webui.js z.B. folgendes:
Sieht mir so aus als würden alle 4 Parameter mittels putParamset an das Gerät übergeben.
Also habe ich das mal mit Hilfe von Black's SDV "nachgebaut".
Sieht dann so aus...
... und scheint tatsächlich zu funktionieren.
Die "beste Option" hier was funktionierendes zu bekommen ist m.E. den Funktionsaufruf beim Setzen des Urlaubsmodus über die WebUI zu replizieren.
Gefunden habe ich in der webui.js z.B. folgendes:
Code: Alles auswählen
partyModeDialog = new PartyModeDialog(translateKey("partyModeDialogTitle"), htmlContent, oPartyValues,function(result) {
var self = event.data.that;
var iface = self.iface,
chAddress = self.chAddress;
if (result == 1) {
conInfo("SET PARTYMODE");
var oPartyMode = self.formatPartyMode(this.getPartyModeObject());
var partyTimeStart =
oPartyMode.startYear + "_" + oPartyMode.startMonth + "_" + oPartyMode.startDay + " " + oPartyMode.startHour + ":" + oPartyMode.startMin,
partyTimeEnd =
oPartyMode.stopYear + "_" + oPartyMode.stopMonth + "_" + oPartyMode.stopDay + " " + oPartyMode.stopHour + ":" + oPartyMode.stopMin;
homematic("Interface.putParamset",{'interface': iface, 'address' : chAddress, 'paramsetKey' : 'VALUES', 'set':
[
{name:'SET_POINT_MODE', type: 'int', value: "2"},
{name:'SET_POINT_TEMPERATURE', type: 'double', value: oPartyMode.temp},
{name:'PARTY_TIME_START', type: 'string', value: partyTimeStart},
{name:'PARTY_TIME_END', type: 'string', value: partyTimeEnd}
]
});
Also habe ich das mal mit Hilfe von Black's SDV "nachgebaut".
Sieht dann so aus...
Code: Alles auswählen
!- PutParamset Zuweisung vom SDV V4.08.01A LCL für Gerät: HmIP-STHD
string stdErr=""; string stdOut=""; string TCL="";
TCL= TCL # " {SET_POINT_MODE {i4 2}}";
TCL= TCL # " {SET_POINT_TEMPERATURE {double 12.50}}";
TCL= TCL # " {PARTY_TIME_START {2021_11_09 18:00}}";
TCL= TCL # " {PARTY_TIME_END {2021_11_09 19:15}}";
object oCHANNEL= dom.GetObject (ID_CHANNELS).Get ("HmIP-STHD Dev2_514:1 - Bedienung");
object oIFace= dom.GetObject (oCHANNEL.Interface () );
string sTCL= ^puts [xmlrpc ^ #oIFace.InterfaceUrl()# ^/ putParamset [list string \"^#oCHANNEL.Address()#^\"] [list string \"VALUES\"] [list struct \"^#TCL#^\"]]^;
system.Exec ("/bin/sh -c 'echo \"load tclrpc.so; " # sTCL # "\" |tclsh'",&stdOut,&stdErr);