Страница 1 из 1

Азбука, что дальше...

Добавлено: Пт мар 18, 2016 9:38 am
iouri
Друзья! Спасибо всем кто участвует в проекте.
У меня, как у новичка, возникли вопросы. В моей квартире имеется система управления силовыми реле, через которые организована система управления освещением и другими силовыми модулями в доме. Сейчас к этой системе прикручена еще и ардуинка, которая снимает показания по климатике в комнатах. Все это управляется собственной системой со своей бд и веб интерфейсом.
Далее я установил Majordomo. И настроил элементы управления в соответствии с рекомендациями в разделе Азбука (спасибо за это руководство, крайне полезно для начинающих). Т.е. сейчас созданы объекты (группы освещения: люстры, точечный свет, ночники, ...), подготовлена сцена с элементами управления и создана структура выключателей в "Меню управления". Настроены связи между объектами.
И далее у меня вопрос, как теперь это связать с силовыми блоками? Блоками можно управлять вызовом php функций или непосредственным внесением изменений в БД. Правильно ли я понимаю, что код управления (включения/выключения силового реле) необходимо вписывать в код методов turnOn/Off соответствующих экземпляров объектов? Или я ошибаюсь. Подскажите!
Схема (без majordomo): Изображение
http://iouri.tsimbalenko.ru/wp/comforta ... se-scheme/

Re: Азбука, что дальше...

Добавлено: Пт мар 18, 2016 10:36 am
Jager
iouri писал(а):Правильно ли я понимаю, что код управления (включения/выключения силового реле) необходимо вписывать в код методов turnOn/Off соответствующих экземпляров объектов? Или я ошибаюсь. Подскажите!
Да, правильно. В мдм по умолчанию есть класс Relays, в методы turnOn и TurnOff соответствующих объектов пропишите ваши команды управления. После этого сможете управлять как напрямую вызывая эти методы так и через метод switch.

Re: Азбука, что дальше...

Добавлено: Пт мар 18, 2016 10:33 pm
iouri
Спасибо за консультацию.
Тогда следующий вопрос. Силовые модули управляются через БД. Т.е. чтобы включить или выключить реле, мне необходимо вызвать функцию SQL, чтобы получить статус - выполнить select. Делать connect к mysql следует при каждом вызове turnOn/Off или я могу где-то авторизоваться (главный вопрос - где), а потом используя открытый сокет обращаться к базе?

Re: Азбука, что дальше...

Добавлено: Сб мар 19, 2016 11:31 am
lanket
iouri писал(а):Спасибо за консультацию.
Тогда следующий вопрос. Силовые модули управляются через БД. Т.е. чтобы включить или выключить реле, мне необходимо вызвать функцию SQL, чтобы получить статус - выполнить select. Делать connect к mysql следует при каждом вызове turnOn/Off или я могу где-то авторизоваться (главный вопрос - где), а потом используя открытый сокет обращаться к базе?
Вы немного глубже смотрите чем надо.
В Мдм скуль вообще не надо трогать.
Вы просто запускаете методы turn on/Off или switch и они сами все делают.
Если св-ва объекта status связанны с млдулем-шлюзом общения с жедезом.
Вопрос как мдм взаимодействует с Вашим "нестандаиизированном в мдм" железом.
Если в вашем ПО, которое управляло реле, есть api то в св-ве status ставите галочку "запускать метод" прописываете метод обработки нового значения написанный отдкльгюно для вашего железа и, что то типа драйвера получиться, а в этом методе уже обращаетесь к API своего ПО имея уже данные об измененном состоянии.

Отправлено с моего HM NOTE 1LTEW через Tapatalk

Re: Азбука, что дальше...

Добавлено: Сб мар 19, 2016 11:47 am
olehs
lanket писал(а): Вы немного глубже смотрите чем надо.
В Мдм скуль вообще не надо трогать.
Вы просто запускаете методы turn on/Off или switch и они сами все делают.
Если св-ва объекта status связанны с млдулем-шлюзом общения с жедезом.
Вопрос как мдм взаимодействует с Вашим "нестандаиизированном в мдм" железом.
Если в вашем ПО, которое управляло реле, есть api то в св-ве status ставите галочку "запускать метод" прописываете метод обработки нового значения написанный отдкльгюно для вашего железа и, что то типа драйвера получиться, а в этом методе уже обращаетесь к API своего ПО имея уже данные об измененном состоянии.
Если я правильно понял, управление как раз и происходит через вызовы хранимок в сторонней БД.
iouri писал(а):Спасибо за консультацию.
Тогда следующий вопрос. Силовые модули управляются через БД. Т.е. чтобы включить или выключить реле, мне необходимо вызвать функцию SQL, чтобы получить статус - выполнить select. Делать connect к mysql следует при каждом вызове turnOn/Off или я могу где-то авторизоваться (главный вопрос - где), а потом используя открытый сокет обращаться к базе?
Попробуйте для начала подключение при каждом ВКЛ/ВЫКЛ. Не думаю, что это будет накладно.
Если же не устроит, думаю стоит поднять сервер с промежуточным API, который бы держал коннект на базу, а из вне слушал по TCP.

Re: Азбука, что дальше...

Добавлено: Сб мар 19, 2016 1:33 pm
iouri
olehs писал(а):
lanket писал(а): Вы немного глубже смотрите чем надо.
В Мдм скуль вообще не надо трогать.
Вы просто запускаете методы turn on/Off или switch и они сами все делают.
Если св-ва объекта status связанны с млдулем-шлюзом общения с жедезом.
Вопрос как мдм взаимодействует с Вашим "нестандаиизированном в мдм" железом.
Если в вашем ПО, которое управляло реле, есть api то в св-ве status ставите галочку "запускать метод" прописываете метод обработки нового значения написанный отдкльгюно для вашего железа и, что то типа драйвера получиться, а в этом методе уже обращаетесь к API своего ПО имея уже данные об измененном состоянии.
Если я правильно понял, управление как раз и происходит через вызовы хранимок в сторонней БД.
iouri писал(а):Спасибо за консультацию.
Тогда следующий вопрос. Силовые модули управляются через БД. Т.е. чтобы включить или выключить реле, мне необходимо вызвать функцию SQL, чтобы получить статус - выполнить select. Делать connect к mysql следует при каждом вызове turnOn/Off или я могу где-то авторизоваться (главный вопрос - где), а потом используя открытый сокет обращаться к базе?
Попробуйте для начала подключение при каждом ВКЛ/ВЫКЛ. Не думаю, что это будет накладно.
Если же не устроит, думаю стоит поднять сервер с промежуточным API, который бы держал коннект на базу, а из вне слушал по TCP.
Да, управление через вызовы процедур в сторонней БД.
Ок, попробую коннектиться при каждом вызове.