Code: Alles auswählen
! Aktoren für bestimmte Gewerke ausschalten
! Version 2.4, Autor: dtp
! ----- Listen der Gewerke (trennen mit "\t", alle Gewerke oder Räume: "alle") -----
string tradeList = "Licht\t
Verbraucher";
! ----- Liste der Geräte, die nicht ausgeschaltet werden sollen (trennen mit "\t") -----
string exList = "DG Schlafzimmer Dimmer Kanal 2\t
EG Garage Licht\t
EG Flur Tablet Sender Wohnzimmer\t
EG Flur Tablet Schaltzustand Wohnzimmer\t
EG Flur Tablet Schalter Wohnzimmer\t
UG Büro Dimmer Kanal 2\t
UG HWR Waschmaschine Schalter\t
UG HWR Trockner Schalter";
! ----- Namen der verwendeten Systemvariablen -----
string svPushText = "CCU SV Push Text"; ! gem. zPNS-xx, obligatorisch
string svPushPrio = "CCU SV Push Prio"; ! gem. zPNS-xx, obligatorisch
string svPushoverSound = "CCU SV Pushover Sound"; ! gem. zPNS-Po, optional
! ----- Name des zentralen Push-Nachrichten-Programms -----
string zPNP = "CCU PRG Push-Nachrichten"; ! obligatorisch
! #####################################################################
! ##### ab hier bitte keine weiteren Einstellungen mehr vornehmen #####
! #####################################################################
! +++++ Deklaration weiterer Variablen +++++
string message; string list = ""; string trade; string channelName;
! +++++ Setzen der Priorität für die Push-Nachricht +++++
(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushPrio)).State("-1");
! +++++ Sound für Pushover-Nachricht +++++
if(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushoverSound)){(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushoverSound)).State("none");}
! +++++ Skriptkern +++++
if(tradeList == "alle"){tradeList = dom.GetObject(ID_FUNCTIONS).EnumNames();}
foreach(trade, tradeList){
trade = trade.Trim();
if(dom.GetObject(ID_FUNCTIONS).Get(trade)){
foreach(channelName, (dom.GetObject(ID_FUNCTIONS).Get(trade)).EnumUsedNames()){
if(!exList.Contains(channelName)){
if((dom.GetObject(ID_CHANNELS).Get(channelName)).DPByHssDP("STATE").Value()){
(dom.GetObject(ID_CHANNELS).Get(channelName)).DPByHssDP("STATE").State(0);
list = list#"\n- "#channelName;
}
if((dom.GetObject(ID_CHANNELS).Get(channelName)).DPByHssDP("LEVEL").Value()){
(dom.GetObject(ID_CHANNELS).Get(channelName)).DPByHssDP("LEVEL").State(0.0);
list = list#"\n- "#channelName;
}
}
}
}
}
! +++++ Erzeugen der Nachricht +++++
message = "Geräte-Kanäle wegen Abwesenheit ausgeschaltet!";
if(list != ""){
message = message#list;
! +++++ zPNP ausführen +++++
(dom.GetObject(ID_SYSTEM_VARIABLES).Get(svPushText)).State(message);
(dom.GetObject(ID_PROGRAMS).Get(zPNP)).ProgramExecute();
}