Модуль Будильник

Модули в MajorDoMo 11 комментариев

Описание

Думаю, какого либо специфического описания модуль не требует. Классический будильник, который по наступлении определённого времени запускает выбранный способ оповещения. Из достоинств данного модуля (по сравнению с тем же планировщиком, или любой настройкой через скрипты) - прежде всего простота настройки.

Видео по работе с модулем

Создание будильника

После установки модуля заходите в него, видите пустую страницу с кнопкой "Добавить". После нажатия данной кнопки - увидите примерно такой интерфейс:

Добавление будильника

Параметры, которые там имеются:

  • Название (обязательный параметр) - Название будильника. Допускаются любые символы, русские буквы;
  • Включен/Выключен - Без комментариев;
  • Время будильника - Время, в которое сработает будильник. Выбирается через интерфейс, либо в текстовом виде в формате XX:XX;
  • Дни недели - Соответственно дни недели, в которые будет срабатывать данный будильник;
  • Надпись, если включен - Тут уже интереснее. Данная надпись будет передаваться в свойство value у объекта будильника при включении будильника. Данное свойство можно использовать при оформлении на сценах или в меню. Можно использовать параметр %TIME%, чтобы надпись содержала время будильника. Примеры на скрине;
  • Надпись, если выключен - Аналогично предыдущему параметру, только передаётся при выключении будильника;
  • Одноразовый - После срабатываения будильник выключается
  • Способ оповещения - Действие, которое будет совершаться при срабатывании будильника
    • Звуковые файлы - Воспроизводит выбранный звуковой файл (управление звуковыми файлами через соответствующий пункт панели управления)
    • Вызов метода - Вызов метода любого выбранного объекта
    • Запустить сценарий - Запуск выбранного сценария (управление сценариями через соответствующий пункт панели управления)
    • PHP код - Произвольный PHP код, который будет выполнен при срабатывании

Оформление

Чтобы вывести управление будильниками в главное меню или на сцену - достаточно использовать стандартные элементы. Выключатель привязать к свойству AlarmOn, а выбор времени к AlarmTime (для сцены элемент выбор времени отсутствует, можно вместно него использовать Menu Cintrol со ссылкой на пункт меню).

Пример будильников в меню

Пример будильников на сцене

Так же можно использовать дополнительные параметры, в обход модуля, используя дополнительно созданные методы и свойства. Пример:

Пример настроек в меню

Технические подробности

При создании будильника создаётся соответствующий объект в классе AlarmClock. В описании объекта будет название будильника - для удобства. Все настройки хранятся в свойствах данного объекта.

Описание свойств

  • AlarmOn - Включен выключен, допустимые значения 1/0;
  • AlarmTime - Время срабатывания, значение - время в формате XX:XX;
  • value - свойство, в которое передаются надписи при включении и выключении (если таковые указаны), можно использовать при оформлении будильника;
  • method - метод оповещения, допустимые значения sound, method, script, code
  • once - признак одноразового будильника, значения 1/0;
  • custom_on - надпись, если включен, передаётся при включении будильника в value, текстовая строка;
  • custom_off - надпись, если включен, передаётся при выключении будильника в value, текстовая строка;
  • days - дни недели, строка из 7 цифр 1/0 для каждого дня недели. Например 0110000 означает, что будильник сработает во вторник и среду;
  • code - зависит от способа оповещения. Если выбран способ звуковой файл - то название этого файла, если вызов метода - то там строка с объектом.методом, если запуск скрипта - то имя скрипта, если код, то там продублируется код для выполнения (сам код будет находится в методе AlarmRun

Если не выбран ни один из способов оповещения - запускается метод AlarmRun объекта будильника.

Поделитесь в соц сетях

Теги:

 

 

11 thoughts on - Модуль Будильник

  • Я новый пользователь можордома. А можно инструкцию тут прописать что и куда дописать при установке. Я пока ещё только разбираюсь, но понял что что-то нужно добавить в объектах тайм в минутах.

    • При установке никуда ничего прописывать не надо. Создаёте новый будильник через панель управления. Выбираете, скажем, звуковой сигнал. Звуковой сигнал проигрывается при срабатывании в указанное время.

      • Здравствуйте ещё раз. У меня чистая система, установлено радио и работает. Настроил яндекс погоду. Хотел что бы по будильнику рассказал мне погоду. Установил модуль будильник, а он почему-то не отрабатывает. Даже просто голосовой файл не во производит. Установил на разбори 3. Режим кто-то дома.

        • А чтобы произносил погоду - надо сделать скрипт который произносит погоду, и его просто выбрать из выпадающего списка.

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

        • Ничего нигде не нужно было добавлять. Достаточно было перезагрузить систему или же вручную запустить цикл будильника в иксрее.

  • Добрый день . Всё установил, перезагрузил цикл. Строки "Связанный объект" , "Метод" отсутствуют ((( . Последняя строка это метод оповещения , сразу за ней "Сохранить".
    Что то не так сделал ?