function SetLimitedValues($NameLimits, $NameBegin, $NameEnd, $TimeStart, $TimeEnd, $categoryId_Values, $scriptId_Refresh) { CreateTimer($TimeStart, 'IPSTwilight_'.$NameBegin, $scriptId_Refresh); CreateTimer($TimeEnd, 'IPSTwilight_'.$NameEnd, $scriptId_Refresh); $Limits = GetValue(IPS_GetVariableIDByName($NameLimits, $categoryId_Values)); // 01234567890123456789012 // Format or Limits: xx:xx-xx:xx/yy:yy-yy:yy $TimeStartMin = mktime(substr($Limits,0,2), substr($Limits,3,2), 0); $TimeStartMax = mktime(substr($Limits,6,2), substr($Limits,9,2), 0); $TimeEndMin = mktime(substr($Limits,12,2), substr($Limits,15,2), 0); $TimeEndMax = mktime(substr($Limits,18,2), substr($Limits,21,2), 0); if ($TimeStart > $TimeStartMax) { $TimeStart= $TimeStartMax;} if ($TimeStart < $TimeStartMin) { $TimeStart= $TimeStartMin;} if ($TimeEnd > $TimeEndMax) { $TimeEnd= $TimeEndMax;} if ($TimeEnd < $TimeEndMin and date('H', $TimeEnd)=='00') { $TimeEnd= $TimeEndMax;} if ($TimeEnd < $TimeEndMin) { $TimeEnd= $TimeEndMin;} SetValue(IPS_GetVariableIDByName($NameBegin, $categoryId_Values), date("H:i",$TimeStart)); SetValue(IPS_GetVariableIDByName($NameEnd, $categoryId_Values), date("H:i",$TimeEnd)); CreateTimer($TimeStart, 'IPSTwilight_'.str_replace('Limited', '', $NameBegin), $scriptId_Refresh); CreateTimer($TimeEnd, 'IPSTwilight_'.str_replace('Limited', '', $NameEnd), $scriptId_Refresh); }
// Program Installation // ---------------------------------------------------------------------------------------------------------------------------- $CategoryIdData = $moduleManager->GetModuleCategoryID('data'); $CategoryIdApp = $moduleManager->GetModuleCategoryID('app'); $InstanceId = CreateDummyInstance("IPSLogger", $CategoryIdData, 0); CreateProfiles(); // Get Scripts Ids $ID_ScriptIPSLoggerChangeSettings = IPS_GetScriptIDByName('IPSLogger_ChangeSettings', $CategoryIdApp); $ID_ScriptIPSLoggerSendMail = IPS_GetScriptIDByName('IPSLogger_SendMail', $CategoryIdApp); $ID_ScriptIPSLoggerClearSingleOut = IPS_GetScriptIDByName('IPSLogger_ClearSingleOut', $CategoryIdApp); $ID_ScriptIPSLoggerClearHtmlOut = IPS_GetScriptIDByName('IPSLogger_ClearHtmlOut', $CategoryIdApp); $ID_ScriptIPSLoggerPurgeLogFiles = IPS_GetScriptIDByName('IPSLogger_PurgeLogFiles', $CategoryIdApp); CreateTimer ('IPSLogger_PurgeLogFilesTimer', $ID_ScriptIPSLoggerPurgeLogFiles, 8); // Add IPSLogger Variables $ID_SingleOutEnabled = CreateVariable('SingleOut_Enabled', 0 /*Boolean*/, $InstanceId, 100, '~Switch', $ID_ScriptIPSLoggerChangeSettings, true, 'Power'); $ID_SingleOutLevel = CreateVariable('SingleOut_Level', 1 /*Integer*/, $InstanceId, 110, 'IPSLogger_Level', $ID_ScriptIPSLoggerChangeSettings, 1 /*Error*/, 'Intensity'); $ID_SingleOutMsg = CreateVariable('SingleOut_Msg', 3 /*String*/, $InstanceId, 120, '~HTMLBox', null, "" , 'Window'); $ID_HtmlOutEnabled = CreateVariable('HtmlOut_Enabled', 0 /*Boolean*/, $InstanceId, 200, '~Switch', $ID_ScriptIPSLoggerChangeSettings, true, 'Power'); $ID_HtmlOutLevel = CreateVariable('HtmlOut_Level', 1 /*Integer*/, $InstanceId, 210, 'IPSLogger_Level', $ID_ScriptIPSLoggerChangeSettings, 9 /*All*/, 'Intensity'); $ID_HtmlOutMsgCount = CreateVariable('HtmlOut_MsgCount', 1 /*Integer*/, $InstanceId, 220, 'IPSLogger_MsgCount', $ID_ScriptIPSLoggerChangeSettings, 20, 'Distance'); $ID_HtmlOutMsgId = CreateVariable('HtmlOut_MsgId', 1 /*Integer*/, $InstanceId, 230, 'IPSLogger_MsgId', null, 0, 'Repeat'); $ID_HtmlOutMsgList = CreateVariable('HtmlOut_MsgList', 3 /*String*/, $InstanceId, 240, '~HTMLBox', null, "", 'Window'); $ID_IPSOutEnabled = CreateVariable('IPSOut_Enabled', 0 /*Boolean*/, $InstanceId, 300, '~Switch', $ID_ScriptIPSLoggerChangeSettings, true, 'Power'); $ID_IPSOutLevel = CreateVariable('IPSOut_Level', 1 /*Integer*/, $InstanceId, 310, 'IPSLogger_Level', $ID_ScriptIPSLoggerChangeSettings, 5 /*Debug*/, 'Intensity'); $ID_FileOutEnabled = CreateVariable('FileOut_Enabled', 0 /*Boolean*/, $InstanceId, 400, '~Switch', $ID_ScriptIPSLoggerChangeSettings, false, 'Power'); $ID_FileOutLevel = CreateVariable('FileOut_Level', 1 /*Integer*/, $InstanceId, 410, 'IPSLogger_Level', $ID_ScriptIPSLoggerChangeSettings, 5 /*Debug*/, 'Intensity'); $ID_FileOutDays = CreateVariable('FileOut_Days', 1 /*Integer*/, $InstanceId, 420, 'IPSLogger_Days', $ID_ScriptIPSLoggerChangeSettings, 1, 'Repeat');