начните с вот этого
Код: Выделить всё
if (timeBetween(getGlobal('Sun.civil_beginTime'),getGlobal('Sun.civil_endTime')) && getGlobal('isDark')=="1") {
setGlobal("isDark",0);
callMethod('DarknessMode.deactivate');
setGlobal("DarknessMode.active",0);
getGlobal('isDark')=="1" - вот эта часть делает определенное количество запросов к базе
timeBetween(getGlobal('Sun.civil_beginTime'),getGlobal('Sun.civil_endTime')) - а вот это в два раза больше
Так может проще проверку начинать с второго елемента и выкласть это в такой редакции ???
Код: Выделить всё
if (getGlobal('isDark')=="1" && timeBetween(getGlobal('Sun.civil_beginTime'),getGlobal('Sun.civil_endTime')) ) {
setGlobal("isDark",0);
callMethod('DarknessMode.deactivate');
setGlobal("DarknessMode.active",0);
теперь вопрос - у вас - если менять это - setGlobal("DarknessMode.active",0);
метод не запускается при изменении свойства ? - имею ввиду это - callMethod('DarknessMode.deactivate');
Имею ввиду что не получается у вас двойного запуска метода - DarknessMode.deactivate ???
И это вопросы только по 3 строкам ...
Неужто эти вопросы вы не можете сами решить для себя и пересмотреть свой код ???
Разбирать ваш код дальше ?
Или вы думаете что сетглобал или гетглобал не делают запросов в базу данных. А это ведь таймер ПОСТОЯННО ЗАПУСКАЕМЫЙ....!!!