будильник. Не срабатывает проверка AlarmOn.

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Ответить
LampGraph
Сообщения: 6
Зарегистрирован: Пт янв 17, 2014 8:02 pm
Откуда: Абакан

будильник. Не срабатывает проверка AlarmOn.

Сообщение LampGraph »

Привет!
запилил будильник как у всех, пример взял отсюда:

Проблема в проверке свойства AlarmOn в обработчике метода onNewMinute
//будильник

Код: Выделить всё

$objects=getObjectsByClass("AlarmClock");
foreach($objects as $obj) { // переберем все будильники в системе
  if (getGlobal($obj['TITLE'].".AlarmOn") && timeIs(getGlobal($obj['TITLE'].".AlarmTime"))){ //если будильник включен и время совпало
    callMethod($obj['TITLE'].".AlarmRun"); // выполним метод будильника
  }
}
если делаем так:

Код: Выделить всё

 if (timeIs(getGlobal($obj['TITLE'].".AlarmTime"))){ //если будильник включен и время совпало
будильник срабатывает. Отсюда делаю вывод что проблема в получении значения свойства AlarmOn.

X-Ray показывает все верно:
LaGAlarm.AlarmOn 1

в чем может быть проблема?
Профиль в Connect
Аватара пользователя
sergejey
Site Admin
Сообщения: 4286
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Контактная информация:

Re: будильник. Не срабатывает проверка AlarmOn.

Сообщение sergejey »

Сходу вроде всё верно... Можно попробовать чуть ниже добавить такую проверку, чтобы в случае проблемы со срабатывание в логе сохранилось значение AlarmOn на тот момент:

if (!getGlobal($obj['TITLE'].".AlarmOn") && timeIs(getGlobal($obj['TITLE'].".AlarmTime"))){ //если будильник включен и время совпало
say(($obj['TITLE'].".AlarmOn: ".getGlobal($obj['TITLE'].".AlarmOn")); //время пришло но будильник не сработал
}

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
LampGraph
Сообщения: 6
Зарегистрирован: Пт янв 17, 2014 8:02 pm
Откуда: Абакан

Re: будильник. Не срабатывает проверка AlarmOn.

Сообщение LampGraph »

Лог:
10:06 Alice: LaGAlarm.AlarmOn:

Получается Алиса не может прочитать свойство AlarmOn и думает что оно пустое?
Щас гляну что в базе лежит.
LampGraph
Сообщения: 6
Зарегистрирован: Пт янв 17, 2014 8:02 pm
Откуда: Абакан

Re: будильник. Не срабатывает проверка AlarmOn.

Сообщение LampGraph »

Кстати, как в базе через админку посмотреть?
LampGraph
Сообщения: 6
Зарегистрирован: Пт янв 17, 2014 8:02 pm
Откуда: Абакан

Re: будильник. Не срабатывает проверка AlarmOn.

Сообщение LampGraph »

Проблема решена!!!
Подумал что часть кода набирал с клавы, а часть копировал с форума, возможно где-то буква "о" и "o" перепутались или другой косяк с раскладкой или кодировкой... Еще со времен первого знакомства с PHP помню такую гадость когда с виду одинаковые переменные на самом деле могут быть разными... особенно если не весь код набран собственноручно.
В общем создал новое свойство AlarmOnOff, его имя потом скопировал в код и все заработало.

10:23 Alice: С добрым утром!
10:23 Alice: 10 часов 23 минут

теперь код выглядит так:

Код: Выделить всё

//будильник
$objects=getObjectsByClass("AlarmClock");
foreach($objects as $obj) { // переберем все будильники в системе
  if (getGlobal($obj['TITLE'].".AlarmOnOff") && timeIs(getGlobal($obj['TITLE'].".AlarmTime"))){ //если будильник включен и время совпало
    callMethod($obj['TITLE'].".AlarmRun"); // выполним метод будильника
  }
}
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург

Re: будильник. Не срабатывает проверка AlarmOn.

Сообщение nick7zmail »

Приветствую. Столкнулся с проблемой выполнения методов. Проверка 100% проходит, а callMethod запускаться не хочет даже из скрипта вручную, другие запускаются норм, что я неправильно делаю?
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург

Re: будильник. Не срабатывает проверка AlarmOn.

Сообщение nick7zmail »

nick7zmail писал(а):Приветствую. Столкнулся с проблемой выполнения методов. Проверка 100% проходит, а callMethod запускаться не хочет даже из скрипта вручную, другие запускаются норм, что я неправильно делаю?
Прошу прощения, все заработало, проблема была аналогичная. Метод набрал с клавы - все ок стало, появилась другая проблема. В обьектах теперь показывает 2 метода AlarmRun, они разные (с разным кодом) но в редактировании объекта только один. Как удалить второй?
Вложения
Методы.jpg
Методы.jpg (25.98 КБ) 7439 просмотров
Обьект.jpg
Обьект.jpg (6.96 КБ) 7439 просмотров
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Ответить