Vit писал(а):не могу понять как из меню управлять выходами выходами и из сценариев...
Вот пример использования в меню. Просто вызывают метод для переключения

- MenuItem.png (9.41 КБ) 21562 просмотра
Из скрипта можно так
Код: Выделить всё
callMethod(Storeroom.toggleSwitch); // переключить состояние
callMethod(Storeroom.switchOff); // выключить
callMethod(Storeroom.switchOn); // включить
Вот на картинке в мануале есть пример реального выключателя в кладовке
Storeroom.inputPort = 4 - означает что выключатель в стене подключён к 4 порту на меге
Storeroom.outputPort = 8 - лампа подключена к 8 порту на меге
P.S. Я писал это пол года назад, но поитогу не пользовался из-за нестабильности МД. Все выключатели работают автономно. Сейчас использую МД для работы с SNMP девайсами.
К чему это я. К тому что сейчас посмотрел на код и прослезился

Коряво всё написано. За пол года набрался опыта с пхп и рассмотрел как всё в МД сделано. Надо бы порефакторить:
- MegaD.php - переписать вообще. Сейчас он пытает использовать метод объекта. Но когда мы получаем вызов, мы ещё не знаем какой объект megadevice мы будем использовать. Надо вызывать скрипт а не метод
- MegaD.php использует objects.php, а тот в свою очередь в output возвращает текст который не понимает MegaD-328
- В коде моих классов используется callMethod и getProperty вместо $this->callMethod. Не то что бы будет заметно быстрее, но внутри МД столько всего, что хочется облегчить все вызовые какие возможно
- Уже прикрутили log4php. Надо использовать его в коде на полную
- Класс Light сильно часто пытается получить статус. Надо бы упростить
- И самое главное, Light понимает только один вход и выход. А у меня в каждой комнате по 2 выкл. на стене + 2\3 линии освещения. Т.е. чтоб поддерживать всю эту кашу надо или на одну комнату заводить большего одного объекта Light, или переделывать класс чтоб в нём было
- Storeroom.inputPort1
- Storeroom.inputPort2
- Storeroom.outputPort1
- Storeroom.outputPort2
- Storeroom.outputPort3
- Storeroom.outputPort4
Такой вариант мне вообще не нравится. Я ещё в раздумьях как это решить.