Подключение контроллера MegaD-328

Подключение исполнительных устройств, датчиков, контроллеров.

Модератор: immortal

Аватара пользователя
Bagir
Сообщения: 1615
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 375 раз

Re: Подключение контроллера MegaD-328

Сообщение Bagir » Пн дек 01, 2014 8:11 pm

Другими словами, вы задали такой алгоритм. Если статус = 1 тогда включить, иначе выключить. Но метод свитч должен по задумке переключать, а не обновлять. Для обновления есть рефрешь.
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Jager
Сообщения: 708
Зарегистрирован: Сб авг 18, 2012 10:21 am
Благодарил (а): 26 раз
Поблагодарили: 183 раза

Re: Подключение контроллера MegaD-328

Сообщение Jager » Пн дек 01, 2014 8:30 pm

Bagir писал(а):Другими словами, вы задали такой алгоритм. Если статус = 1 тогда включить, иначе выключить. Но метод свитч должен по задумке переключать, а не обновлять. Для обновления есть рефрешь.
Может чего недопонимаю, почему тогда через меню switch срабатывает?
Аватара пользователя
Bagir
Сообщения: 1615
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 375 раз

Re: Подключение контроллера MegaD-328

Сообщение Bagir » Пн дек 01, 2014 8:38 pm

У меня есть подозрение, что вы вначале просто присваивайте (инвертируйте) свойство статус. А потом уже запускайте метод switch с измененным кодом, который теперь стал такой же как и refresh. Это совершенно разные методы.
Если просто инвертировать свойство статуса реле, то это не вызовет его переключение. Скажем так, свойство статус как бы просто помнит последнее состояние реле (помнит последнюю команду вкл или выкл, отправленную реле).
Если все же требуется переключить реле с помощью изменения свойства статус, то тогда после этого изменения нужно запустить метод refresh, который посмотрит на текущее значение свойства статус и даст реле именно такую команду.
А метод switch наоборот сам должен инвертировать реле. По сути говоря, метод switch сначала посмотрит на значение свойства статус, затем вызовет противоположный метод turnOn или turnOff. Эти методы отправят соответствующую команду реле и установят свое новое значение в свойство статус.
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Аватара пользователя
Bagir
Сообщения: 1615
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 375 раз

Re: Подключение контроллера MegaD-328

Сообщение Bagir » Пн дек 01, 2014 8:42 pm

Вот например так я настраиваю переключатель в меню. Я использую свойство статус и метод refresh
Изображение
А вот если бы это был не выключатель а просто кнопка без фиксации состояния, тогда я бы использовал только один метод switch.
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Jager
Сообщения: 708
Зарегистрирован: Сб авг 18, 2012 10:21 am
Благодарил (а): 26 раз
Поблагодарили: 183 раза

Re: Подключение контроллера MegaD-328

Сообщение Jager » Пн дек 01, 2014 8:54 pm

Bagir писал(а):А вот если бы это был не выключатель а просто кнопка без фиксации состояния, тогда я бы использовал только один метод switch.
У меня выключатель настроен и работает так
Изображение
Статус порта отображается правильно и соответственно положение выключателя тоже.
Аватара пользователя
Bagir
Сообщения: 1615
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 375 раз

Re: Подключение контроллера MegaD-328

Сообщение Bagir » Пн дек 01, 2014 9:11 pm

Думаю что это неправильно. Дело в том, что когда выключатель срабатывает, он вначале присваивает новое значение свойству status, а потом он должен заставить объект реле отправить команду устройству. В вашем же варианте получается, что при использовании метода switch статус меняется опять на противоположный.
Вообщем либо изменение свойства status + метод refresh или просто метод switch.
Но для вашего выключателя метод switch не применим. т.к. команда теоретически может быть послана с любого терминала, устройства или кода. А выключатель там может еще не успеть обновиться. То есть, выключатель явно должен стать 1 или 0. А кнопка вообще ничего не шлет. Она просто запускает switch, что вызывает инвертирование.
status + refresh для выключателя, switch для кнопки. И все будет отлично работать. Как раз сейчас добавить обычный выключатель на стену. Теперь могу управлять вентиляцией и с меню на планшете, и с этого выключателя. Все работает :) Я уверен, что и у Вас все получится!
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Аватара пользователя
Bagir
Сообщения: 1615
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 375 раз

Re: Подключение контроллера MegaD-328

Сообщение Bagir » Пн дек 01, 2014 9:18 pm

Кстати. Очень сильно рекомендую все объекты реле создавать именно в классе Relays. А из моего класса MegaD просто управлять объектами класса Relays. Это позволяет не заморачиваться, когда надо этой релюхой управлять еще и их меню, и из кода и еще от куда угодно. К тому же вот пример. Сейчас этой реле у вас управляет Мега. А что вы придумайте завтра? Вот лично я не знаю... Уже не раз многое переделывал и экспериментировал с железом. Когда объект реле находится в специальном своем классе Relays, то переключить управление им на другое железо очень просто.
Рекомендую посмотреть мой коннект. Я конечно еще тоже пока только изучаю систему, но мой текущий вариант мне даже самому нравится. А такое бывает не часто ))
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Jager
Сообщения: 708
Зарегистрирован: Сб авг 18, 2012 10:21 am
Благодарил (а): 26 раз
Поблагодарили: 183 раза

Re: Подключение контроллера MegaD-328

Сообщение Jager » Пн дек 01, 2014 9:58 pm

Bagir писал(а):Кстати. Очень сильно рекомендую все объекты реле создавать именно в классе Relays.
Восстановил очередность в switch, заменил в меню switch на refresh, все работает.
Объекты так и созданы в relays, просто для наглядности имя задано "условный номер меги-порт», например «MegaD1-5». У меня их много, поэтому мне так проще.
Осталось разобраться с обработкой разного количества нажатий.
Раньше пользовался другим классом описанным в этой ветке, там для отслеживания долгого нажатия использовалась настройка порта меги P&R. Все прекрасно работало пока не выяснилось что при проблемах с сервером и переходе меги в автономный режим свет включить невозможно, пока держишь кнопку свет горит, отпустил погас.
Последний раз редактировалось Jager Вт дек 02, 2014 8:56 am, всего редактировалось 1 раз.
Аватара пользователя
Bagir
Сообщения: 1615
Зарегистрирован: Вт сен 17, 2013 6:46 pm
Откуда: Ярославская область город Углич
Благодарил (а): 212 раз
Поблагодарили: 375 раз

Re: Подключение контроллера MegaD-328

Сообщение Bagir » Пн дек 01, 2014 10:08 pm

Я думаю в моем классе можно настроить как угодно. Но порты Меги для различных нажатий тоже должны быть настроены по разному. Автономной работе я не уделял должного внимания. Так что надо будет все посмотреть.
Windows 10, HTTP, MegaD, Z-Wave, 1-Wire, CONNECT
Jager
Сообщения: 708
Зарегистрирован: Сб авг 18, 2012 10:21 am
Благодарил (а): 26 раз
Поблагодарили: 183 раза

Re: Подключение контроллера MegaD-328

Сообщение Jager » Вт дек 02, 2014 4:34 pm

Bagir писал(а):Так что надо будет все посмотреть.
Еще вопрос, можно попросить пример получения данных с DHT и запись в базу?
Ответить