Спасибо, заработало.Lewcom писал(а):у меня заработало с кодом
Подключение контроллера MegaD-328
Модератор: immortal
-
- Сообщения: 39
- Зарегистрирован: Вс мар 16, 2014 8:17 pm
- Благодарил (а): 5 раз
- Поблагодарили: 2 раза
Re: Подключение контроллера MegaD-328
Доброго дня всем.
Столкнулся вот с какой необходимостью, надо определять включен ли где либо в доме свет.
Если везде все выключено - ставим 0, если где-то что-нибудь светит (подключенное к MegaD) - ставим - 1
Создал для этого доп.свойство globalStatus и объект globalStatusLight: По задумке в него должно прописывать 0 или 1 каждый объект класса Light
В методе, который вызывается при нажатии на выключатель, дописал строчку: Но заветные нолик или единичка в свойстве globalStatus не появляются...
Наверняка я что-то сделал не так?
Столкнулся вот с какой необходимостью, надо определять включен ли где либо в доме свет.
Если везде все выключено - ставим 0, если где-то что-нибудь светит (подключенное к MegaD) - ставим - 1
Создал для этого доп.свойство globalStatus и объект globalStatusLight: По задумке в него должно прописывать 0 или 1 каждый объект класса Light
В методе, который вызывается при нажатии на выключатель, дописал строчку: Но заветные нолик или единичка в свойстве globalStatus не появляются...
Наверняка я что-то сделал не так?
-
- Сообщения: 867
- Зарегистрирован: Вт янв 17, 2012 12:31 pm
- Благодарил (а): 121 раз
- Поблагодарили: 78 раз
Re: Подключение контроллера MegaD-328
Вопрос к Сергею и dimitrystd.
Подскажите пожалуйста, как обработать вход с подключенным датчиком движения по примеру страницы http://ab-log.ru/smart-house/ethernet/megad-alarm.
Заранее благодарен.
Подскажите пожалуйста, как обработать вход с подключенным датчиком движения по примеру страницы http://ab-log.ru/smart-house/ethernet/megad-alarm.
Заранее благодарен.
-
- Сообщения: 80
- Зарегистрирован: Пн апр 01, 2013 10:20 pm
- Откуда: Днепропетровск
- Благодарил (а): 7 раз
- Поблагодарили: 3 раза
Re: Подключение контроллера MegaD-328
С таким кодом не заработает, и перед тем как предложить решение, напишу почему данное смотрится плохоStunt писал(а):Доброго дня всем.
Столкнулся вот с какой необходимостью, надо определять включен ли где либо в доме свет.
Если везде все выключено - ставим 0, если где-то что-нибудь светит (подключенное к MegaD) - ставим - 1
Создал для этого доп.свойство globalStatus и объект globalStatusLight:
- Сделали спец свойство globalStatus в классе Light, а используете только в одном объекте. Т.е. заходишь в другой объект Lighta и думаешь что это за хрень, ещё и пустая
- Можно было не делать свойство в классе Light, а добавить прямо в объект
- Раз свойство такое супер глобальное, то добавлять уже в объект ThisComputer
- В коде вижу $params['globalStatus'], но его никто не устанавливает. Код МД очень простой и в нём нету магии, надо самому его как то инициализировать
Данным способом наверное вообще невозможно получить желаемого результата. Я бы наверное сделал так:
- Написал скрипт
Код: Выделить всё
$objects = getObjectsByClass("Light");
$globalStatus = false;
foreach ($objects as $obj) {
$globalStatus = $globalStatus || getGlobal($obj['TITLE'].'.enabled');
}
setGlobal('ThisComputer.globalStatus', $globalStatus);
Если использовать классы Megadevice и Light из этой ветки, то просто создать объект класса Light, но имя дайте ему ДатчикДвижения например, и в метод switchOn вставить код из той статьи. Клас Light объдиняет в себе кнопку (датчик движения) и выполнение команды.Vit писал(а): Подскажите пожалуйста, как обработать вход с подключенным датчиком движения по примеру страницы http://ab-log.ru/smart-house/ethernet/megad-alarm.
У себя я попробовал сделать немного подругому, я добавил доп. абстракцию, но пока больших плюсов не обнаружил, поэтому не буду выкладывать.
-
- Сообщения: 39
- Зарегистрирован: Вс мар 16, 2014 8:17 pm
- Благодарил (а): 5 раз
- Поблагодарили: 2 раза
Re: Подключение контроллера MegaD-328
Создал сценарий
Создал свойство ThisComputer.globalStatus При вызове методов switchOn, switchOff свойство .globalStatus=1, а вот при выключении всех линий на MegaD .globalStatus=0 не устанавливает
Прописал вызов в методы switchOn, switchOff. Создал свойство ThisComputer.globalStatus При вызове методов switchOn, switchOff свойство .globalStatus=1, а вот при выключении всех линий на MegaD .globalStatus=0 не устанавливает
-
- Сообщения: 80
- Зарегистрирован: Пн апр 01, 2013 10:20 pm
- Откуда: Днепропетровск
- Благодарил (а): 7 раз
- Поблагодарили: 3 раза
Re: Подключение контроллера MegaD-328
Вызов скрипта прописан последней строкой в этих методах? Суть в том чтоб вызвать скрипт после того как устанавливается свойство enabled ($this->setProperty('enabled', 1);)Stunt писал(а): Прописал вызов в методы switchOn, switchOff.
Раз не работает, то надо дебажить. Выключите везде свет, сами руками просмотрите что у всех объектов light свойство enabled = 0. В лог можно писать из скрипта
Код: Выделить всё
$log = getLogger();
$log->trace(sprintf('%s = %d', $obj['TITLE'], getGlobal($obj['TITLE'].'.enabled')));
-
- Сообщения: 867
- Зарегистрирован: Вт янв 17, 2012 12:31 pm
- Благодарил (а): 121 раз
- Поблагодарили: 78 раз
Re: Подключение контроллера MegaD-328
dimitrystd приветствую. Сделал в классе light объект датчик движения . В методе switchon этого объекта прописал вызов метода другого объекта с изменением статуса на 1 не работает. Подскажи пожалуйста в чем проблема? Может выложишь как у тебя датчик движения обрабатывается для примера . Понять принцип . Заранее благодарен.
-
- Сообщения: 39
- Зарегистрирован: Вс мар 16, 2014 8:17 pm
- Благодарил (а): 5 раз
- Поблагодарили: 2 раза
Re: Подключение контроллера MegaD-328
Нашел в чем проблема. Есть два объекта (кнопки), выключают весь свет в доме.
Настройки такие: Метод такой: Так вот их свойство .enabled=1, постоянно, из за этого и ThisComputer.globalStatus=1
Если вручную выставить .enabled=0 - ThisComputer.globalStatus встает в =0
Настройки такие: Метод такой: Так вот их свойство .enabled=1, постоянно, из за этого и ThisComputer.globalStatus=1
Если вручную выставить .enabled=0 - ThisComputer.globalStatus встает в =0
Последний раз редактировалось Stunt Вс июн 08, 2014 9:47 pm, всего редактировалось 2 раза.
-
- Сообщения: 48
- Зарегистрирован: Пн дек 30, 2013 6:37 pm
- Благодарил (а): 3 раза
- Поблагодарили: 1 раз
Re: Подключение контроллера MegaD-328
Есть в MegaD дополнительные АЦП-порты А6, А7.
Кто нибудь пробывал даные с этих портов записывать в базу и обрабатывать значения.
Хотелось бы прикрутить датчик освещенности.
Кто нибудь пробывал даные с этих портов записывать в базу и обрабатывать значения.
Хотелось бы прикрутить датчик освещенности.
-
- Сообщения: 867
- Зарегистрирован: Вт янв 17, 2012 12:31 pm
- Благодарил (а): 121 раз
- Поблагодарили: 78 раз
Re: Подключение контроллера MegaD-328
Vit писал(а):dimitrystd приветствую. Сделал в классе light объект датчик движения . В методе switchon этого объекта прописал вызов метода другого объекта с изменением статуса на 1 не работает. Подскажи пожалуйста в чем проблема? Может выложишь как у тебя датчик движения обрабатывается для примера . Понять принцип . Заранее благодарен.
Может кто подскажет этот вопрос?