intraHouse - Сервер умного дома

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
Alex_Jet
Сообщения: 1251
Зарегистрирован: 12 янв 2014, 18:00
Откуда: Россия, г.Томск

Re: Сервер умного дома

Сообщение Alex_Jet » 02 ноя 2016, 22:41

Переношу сообщение в профильную тему:
intrahouse писал(а):Понял, спасибо!
intrahouse! Есть ли успехи с реализацией драйвера для MegaD? Обратил внимание, что Андрей немного обновил инфо о MegaD-2561, в том числе дополнения по API: http://www.ab-log.ru/smart-house/ethernet/megad-2561

Тут смотрю, что Вы решили заинтересовать своей системой участников форума с помощью бесплатного лицензионного ключа. Скоро приедет RP PI3 хотел бы поставить вашу систему и попробовать ее использовать. Однако вся концепция умного дома построена на MegaD...
Сам пока не заморачиваюсь и правлю Demo под себя, благо то, что немного знаю html, php, js:)

intrahouse
Сообщения: 153
Зарегистрирован: 17 янв 2014, 11:07

Re: Сервер умного дома

Сообщение intrahouse » 03 ноя 2016, 15:10

Alex_Jet писал(а):Переношу сообщение в профильную тему:
intrahouse писал(а):Понял, спасибо!
intrahouse! Есть ли успехи с реализацией драйвера для MegaD? Обратил внимание, что Андрей немного обновил инфо о MegaD-2561, в том числе дополнения по API: http://www.ab-log.ru/smart-house/ethernet/megad-2561

Тут смотрю, что Вы решили заинтересовать своей системой участников форума с помощью бесплатного лицензионного ключа. Скоро приедет RP PI3 хотел бы поставить вашу систему и попробовать ее использовать. Однако вся концепция умного дома построена на MegaD...
Сам пока не заморачиваюсь и правлю Demo под себя, благо то, что немного знаю html, php, js:)
Спасибо за переход в профильную тему!
Драйвер для MegaD сделали. Правда не конкретно под MegaD. А универсальный HTTP клиент.
Сейчас тестируем с эмулятором MegaD (самой MegaD нет в наличии в настоящий момент). Плюс надо сделать небольшое описание по подключению каналов MegaD.
Через пару дней можно будет сделать обновление системы.
Для обновления нужно получить ключ и зарегистрировать систему.

Некоторое время назад участникам форума мы давали ключи бесплатно.
ОК. В честь праздника народного единства повторим эту акцию.
Чтобы получить ключ:
1. Зарегистрируйтесь в нашем интернет-магазине http://www.intrahouse.io/
2. Выполните процедуру покупки системы intraHouse Smart Home до момента оплаты.
3. Сообщите об этом мне в личку и я вышлю ключ.
После установки системы введите этот ключ в разделе "О системе".

intrahouse
Сообщения: 153
Зарегистрирован: 17 янв 2014, 11:07

Re: Сервер умного дома

Сообщение intrahouse » 04 ноя 2016, 11:35

Коллеги, прошу при запросе (в личных сообщениях) ключа на систему intraHouse Smart Home указывать номер заказа из интернет-магазина.

intrahouse
Сообщения: 153
Зарегистрирован: 17 янв 2014, 11:07

Re: Сервер умного дома

Сообщение intrahouse » 04 ноя 2016, 18:27

Уважаемые коллеги.
Плагин "HTTP клиент" готов. Можно пробовать для работы с MegaD.
Этот плагин поставляется в комплекте с системой intraHouse начиная с версии v16.11.03.07
В вашей системе он появится после обновления до этой версии.
Просим сообщить о результатах тестирования с MegaD и необходимости доработок. Мы тестировали этот плагин с эмулятором MegaD. Поэтому возможны некоторые недоработки.
Информацию (в картинках) по настройке системы intraHouse и плагина "Http client" можно получить на нашем сайте в разделе WIKI: http://www.intrahouse.eu/rus/wiki/

Инструкция по обновлению и настройке для работы с MegaD:

1. Для обновления системы intraHouse:
1.1. Из основного интерфейса системы перейти в Project Manager:
нажмите кнопку внизу слева с изображением инструментов,
в появившемся списке последний пункт - Project Manager
1.2. В верхнем меню Project Manager должен быть выбран раздел Система.
В левом меню самый последний пункт - Версия системы - Кнопка Обновить.
Для обновления требуется лицензионный ключ!

Порядок подключения плагина для MegaD.
Все делается в Project Manager.
Можно открыть Project Manager в отдельной вкладке браузера вместе с Основным интерфейсом.

2. Добавление плагина
В верхнем меню должен быть выбран раздел Система (первый пункт)
В левом меню - Состав системы - Плагины.
Добавить плагин кнопкой +. Из появившегося списка выбрать плагин Http клиент.
В окне настройки плагина введите ip-адрес, порт, пароль для MegaD.
Введите строку запроса состояния всех устройств вместо /getdata
/%pwd%/?cmd=all
или вставьте пароль напрямую /sec/?cmd=all

Время опроса можно сделать и меньше секунды - 0.5, 0.3

3. Добавление каналов
В верхнем меню выберите раздел Каналы (третий пункт)
Слева должен появиться пункт для добавленного плагина
Добавить канал кнопкой +. Из появившегося списка выбрать тип канала.
В окне настройки канала введите уникальный идентификатор канала (любые латинские буквы+цифры) и адрес.
Адрес канала - это номер порта MegaD (и индекс в строке состояния устройств).

В принципе, с настройкой канала все.
Запросы на управление, которые сейчас включены в манифест плагина, имеют формат команд управления MegaD:
/%pwd%/?cmd=%adr%:1 - включить
/%pwd%/?cmd=%adr%:0 - выключить
/%pwd%/?cmd=%adr%:%val% - установить значение
Их можно посмотреть и отредактировать по кнопке Requests для каждого канала.

4. Добавление виртуальных устройств, привязка к каналам
Вернитесь в раздел Система (первый пункт)
В левом меню - Состав системы - Устройства.
Добавить устройство кнопкой +. Из появившегося списка выбрать вид виртуального устройства.
Сейчас можно просто сохранить новое устройство.
Затем нажмите кнопку Железо и выберите нужный канал.

В системе IntraHouse "0/OFF" всегда означает выключено (сброшено...), "1/ON" - включено (сработало...)
Если для железа это не так (например, для охранных датчиков), установите галку при настройке железа в пункте: Инвертировать значение состояния

После добавления устройство появится в списочной форме основного интерфейса (самая правая кнопка внизу переключает вид План-Список)
По умолчанию все устройства помещаются на уровень 1 в подсистему освещение.
Все это (включая картинки) позже можно изменить, расставить эти устройства на плане - в разделе План и тд

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

Для настройки алгоритмов можно воспользоваться механизмом сценариев:
создать сценарии интерактивно, написать и загрузить скрипт или использовать готовые шаблоны, доступные по кнопке Поведение в списке устройств (Состав системы - Устройства)

Bluefox
Сообщения: 150
Зарегистрирован: 03 мар 2014, 20:02

Re: Сервер умного дома

Сообщение Bluefox » 05 ноя 2016, 14:30

intrahouse писал(а): Просим сообщить о результатах тестирования с MegaD и необходимости доработок. Мы тестировали этот плагин с эмулятором MegaD. Поэтому возможны некоторые недоработки.
А нет ли эмулятора в свободном доступе? Мне бы тоже пригодился.

Dmitrij
Сообщения: 38
Зарегистрирован: 03 мар 2015, 15:14

Re: Сервер умного дома

Сообщение Dmitrij » 05 ноя 2016, 16:12

intrahouse писал(а): ОК. В честь праздника народного единства повторим эту акцию.
Чтобы получить ключ:
1. Зарегистрируйтесь в нашем интернет-магазине http://www.intrahouse.io/
2. Выполните процедуру покупки системы intraHouse Smart Home до момента оплаты.
3. Сообщите об этом мне в личку и я вышлю ключ.
После установки системы введите этот ключ в разделе "О системе".
Хочу выразить благодарность за такой подарок, ключ получил. Всех с праздником.

clark2
Сообщения: 67
Зарегистрирован: 11 авг 2012, 00:17
Откуда: Kiev region

Re: Сервер умного дома

Сообщение clark2 » 06 ноя 2016, 01:22

Мои изыскания по системе intraHouse:
Попытка установки из deb пакета на x86 Debian – ошибка.
Тем, кто будет пробовать ставить с уже работающим WEB сервером.
Сначала остановить WEB сервер (освободить 80 порт)
Установить intraHouse
Поменять порт в intraHouse с 80-го
Запустить WEB сервер (80 порт)
Короче,поставил, посмотрел, заказал ключик.
Ключик получил, спасибо!
Далее:
Cubietruck, чистый armbian c microSD, установка deb пакета по инструкции, ввод ключика, обновление intraHouse.
Вот он http client.
И танцы с бубном, но по инструкции.
Нумерация портов MegaD и intraHouse – разные.
У MegaD нумерация с нуля, у intraHouse с единицы.
Все эти %adr% не совпадают с /sec/?cmd=all.
Если в плагине пароль sec и /%pwd%/?cmd=all работает, то в каналах в Request /%pwd%/?sec… не работает, надо прописывать /sec/?cmd….
Зачем в каналах строка Status Read, если все по /?cmd=all считывается?
Пробовал подключить:
Ds18b20 – после запятой не показывает, только целое число, даже при выставлении доп. цифр после запятой.
DHT11 – вывести показания не удалось.
ADC - работает.
Порт OUT On/Off – работает (обратная связь по /?cmd=all есть), с задержками.
Порт In – работает (обратная связь по /?cmd=all есть), с задержками.

Опрос MegaD из системы, ставил 0.3сек., 0.5сек. и… свитч как новогодняя елка.
Мега сама умеет отправлять на сервер изменение состояния портов, а куда (порт, скрипт)?

Да еще: нумерация удаленных каналов остается где-то в базе, новый канал – новый номер.

PS
Cubiertuck:
System load: 0.04 Up time: 1 day
Memory usage: 8 % of 1998Mb IP: 192.168.1.4
CPU temp: 34°C
Usage of /: 20% of 7.3G Battery: 100% full

Alex_Jet
Сообщения: 1251
Зарегистрирован: 12 янв 2014, 18:00
Откуда: Россия, г.Томск

Re: Сервер умного дома

Сообщение Alex_Jet » 06 ноя 2016, 16:17

Мне также показалось странным, что в описании к HTTP клиенту нет ни слова куда MegaD должен слать свои "trap"!
Поэтому опрос 0.3...0.5 секунд - для пользователей MegaD выглядит странным - от чего избавлялись (постоянного опроса оконечных устройств) к тому и пришли в IntraHouse. В своей системе опрашиваю датчики 3-мя скриптами: data_request_1min.php (датчики температуры системы отопления), data_request_5min.php (датчики влажности/температуры/СО2/CH4), data_request_10min.php (датчик освещенности и остальные). Все остальные сообщения MegaD обрабатываю единым скриптом.

PS: to intrahouse - большое спасибо за ключик, как приедет RP3 буду пробовать скрещивать вашу систему с MegaD.

intrahouse
Сообщения: 153
Зарегистрирован: 17 янв 2014, 11:07

Re: Сервер умного дома

Сообщение intrahouse » 07 ноя 2016, 19:34

Cпасибо за оперативное тестирование http клиента с MegaD.

Поскольку у нас устройства нет, нам это очень важно.

В принципе, результат есть, подключились, можно двигаться дальше.

По поводу нестыковки адресации: у MegaD есть канал номер 0? Т.е. в строке состояний первый элемент - это значение нулевого канала?
Вышлите пожалуйста результат, который приходит с MegaD по запросу cmd=all, с описанием каналов (портов), включая датчики температуры и влажности, которые не получилось считать.

Главное - поскольку MegaD сама отправляет состояние при переключении, необходимо добавить слушающий порт на сервере.
Хорошо, это не проблема. Сделаем.

Кроме того, обработка запросов - /sec/?pt=32&cmd=list для датчиков на шине 1-Wire и поддержка I2C-MegaD API для доступа к I2C-устройствам.
Видимо, универсальным плагином не обойтись, нужно делать специализированный.
И тут есть вопросы.

1.Начнем с запросов, передаваемых MegaD на сервер intraHouse.
План настройки запросов такой:
megaD101.jpg
megaD101.jpg (112.9 КБ) 7584 просмотра
Если введен Response - отправляется он (в формате записи сценария), иначе оправляется что-то стандартное? (OK, например?)
Также нам надо переключить состояние, пусть настройка этого будет явной: 5=ON (или 5=1), т.е. пятый канал переключился в 1

2. Запросы со стороны сервера intraHouse.
Примерный план:
Общий запрос делать только на старте, если интервал опроса =0 или с достаточно большим интервалом.
Для каждого канала могут быть индивидуальные запросы, там тоже добавить интервалы для каждого запроса.

Состояния при переключении выходов будут приходить самотеком с MegaD.

Так?

Alex_Jet
Сообщения: 1251
Зарегистрирован: 12 янв 2014, 18:00
Откуда: Россия, г.Томск

Re: Сервер умного дома

Сообщение Alex_Jet » 07 ноя 2016, 22:23

Ответ от MegaD-2561 при запросе http://192.168.12.20/sec/?cmd=all:

Код: Выделить всё

OFF/0;OFF/0;OFF/0;OFF/0;OFF/0;OFF/0;OFF/0;OFF;OFF;OFF;ON;OFF;OFF;OFF;OFF;OFF/0;OFF/0;OFF/0;OFF/0;OFF/0;OFF/0;OFF/0;ON;OFF;ON;OFF;OFF;OFF;OFF;ON;temp:22.70/hum:25.60;temp:NA;temp:NA;temp:NA;temp:NA;temp:NA;161;176
Пояснения по текущим настройкам портов: 0-6 - входы, 7-13 - выходы, 15-21 - входы, 22-28 выходы, 30-35 - входы для цифровых датчиков (к 30 входу подключен DHT22), 36 и 37 - АЦП. Обратите внимание, что 14, 29 портов не существует, однако cmd=all выдает их состояние - в итоге имеем 30 состояний портов вместо 28 - это вопрос к Андрею - почему он в MegaD-2561 реализовал такой "разнос" портов между собой.

Ответ от MegaD-328 при запросе http://192.168.12.30/sec/?cmd=all:

Код: Выделить всё

ON/0;OFF/0;OFF/0;23.37;OFF/0;OFF/0;OFF/0;OFF/0;23.06;OFF/0;OFF/0;OFF/0;OFF/0;OFF/0;0;292
Пояснения по текущим настройкам портов: 0-2, 4-7, 9-13 - входы, 3 и 8 входы для цифровых датчиков (подключены DS18B20), 14 и 15 - АЦП.

Слушающий порт на сервере - обязателен. В настройках MegaD можно установить какой угодно. По 1W-list не подскажу, поскольку не обновил загрузчик и прошивку. По I2C - аналогичная ситуация.
1. План настройки запросов такой, только m может принимать еще значение 2, когда вход MegaD замкнут на время более 1,5 сек. Если response нет, то обратно ничего возвращать не нужно.
2. Общий запрос делать на старте сервера чтобы определить текущее состояние портов? Тут надо подумать как быть. По мне так если сервер включился/перезагрузился, то надо и MegaD сбрасывать в первоначальные настройки. Поскольку когда на нее приходит response, то она выполняет действие и молчит об этом. Идеалогия была такая что сервер сам должен запомнить в каком состоянии должна находиться MegaD.
Как и написал чуть выше - информацию о переключении выходов MegaD не отправляет.

Andrey_B
Администратор
Сообщения: 5327
Зарегистрирован: 18 мар 2011, 12:06

Re: Сервер умного дома

Сообщение Andrey_B » 08 ноя 2016, 12:16

Alex_Jet писал(а):Обратите внимание, что 14, 29 портов не существует, однако cmd=all выдает их состояние - в итоге имеем 30 состояний портов вместо 28 - это вопрос к Андрею - почему он в MegaD-2561 реализовал такой "разнос" портов между собой.
Эти порты на самом деле существуют, только в текущий момент не используются, так как имеющиеся исполнительные модули, разработанные для MegaD-328, работают с 14 портами.
Не исключаю, что некоторые будущие модификации исполнительных модулей будут иметь 15 портов.

nevkon
Сообщения: 268
Зарегистрирован: 23 апр 2014, 14:48

Re: Сервер умного дома

Сообщение nevkon » 08 ноя 2016, 13:47

Андрей, извини нет сейчас доступа к интерфейсу устройства, в прошивке на страничке эти 2 порта отображаются как-нибудь или появятся тоже когда будет подходящий исполнительный модуль?

Andrey_B
Администратор
Сообщения: 5327
Зарегистрирован: 18 мар 2011, 12:06

Re: Сервер умного дома

Сообщение Andrey_B » 08 ноя 2016, 15:54

nevkon, в данный момент эти порты в интерфейсе устройства не отображаются. Когда и как они будут отображаться станет ясно позже.

intrahouse
Сообщения: 153
Зарегистрирован: 17 янв 2014, 11:07

Re: Сервер умного дома

Сообщение intrahouse » 08 ноя 2016, 19:31

Alex_Jet, спасибо за подробный ответ.

До конца недели планируем выложить вариант со слушающим портом для отладки.

> сервер сам должен запомнить в каком состоянии должна находиться Mega
Да, сервер сохраняет состояния устройств, в т.ч. при перезагрузке.

> m может принимать еще значение 2, когда вход MegaD замкнут на время более 1,5 сек.
Это не совсем понятно, в документации не нашли

> информацию о переключении выходов MegaD не отправляет.
Тогда, если отказаться от (частого) опроса, можно для выходов установить флаг Односторонняя связь:
Устройства - Кнопка "Железо" - "Односторонняя связь".
Тогда сервер при переключении сразу установит новое состояние. Это работает, можно попробовать.

intrahouse
Сообщения: 153
Зарегистрирован: 17 янв 2014, 11:07

Re: Сервер умного дома

Сообщение intrahouse » 08 ноя 2016, 19:36

Андрей, а почему MegaD не передает состояния о переключении устройств (хотя бы дискретных датчиков и актуаторов)?
Возможно есть причины, это всего лишь вопрос.

Alex_Jet
Сообщения: 1251
Зарегистрирован: 12 янв 2014, 18:00
Откуда: Россия, г.Томск

Re: Сервер умного дома

Сообщение Alex_Jet » 09 ноя 2016, 02:11

intrahouse писал(а): > m может принимать еще значение 2, когда вход MegaD замкнут на время более 1,5 сек.
Это не совсем понятно, в документации не нашли
Видимо Андрей не успевает все везде обновлять. В какой-то ветке об этом читал... нашел, вот тут посмотрите вместе с логами apache2: viewtopic.php?f=1&t=635&start=1560#p22557
Косвенно указано в изменениях в прошивке 19.02.2016 ver 3.42 (http://www.ab-log.ru/smart-house/ethern ... 8-firmware)

Andrey_B
Администратор
Сообщения: 5327
Зарегистрирован: 18 мар 2011, 12:06

Re: Сервер умного дома

Сообщение Andrey_B » 09 ноя 2016, 11:25

intrahouse писал(а):а почему MegaD не передает состояния о переключении устройств (хотя бы дискретных датчиков и актуаторов)?
Возможно есть причины, это всего лишь вопрос.
Я не совсем понял формулировку вопроса.
Порт можно сконфигурировать как IN (вход) и как OUT (выход).
Датчики (например, кнопка, датчик протечки, охранный извещатель и т.д.) подключается к входу (IN). О любых событиях, которые происходят с входом, устройство сообщает серверу, если он прописан.
Лампочки, моторы, актуаторы, клапаны, нагреватели, насосы и т.д. подключаются к выходу (OUT). Если сервер дает команду на переключение, то, вероятно, он сам прекрасно знает в каком состоянии находится выход. А если устройство работает без сервера, самостоятельно, то кому эту информацию передавать?

intrahouse
Сообщения: 153
Зарегистрирован: 17 янв 2014, 11:07

Re: Сервер умного дома

Сообщение intrahouse » 09 ноя 2016, 19:07

Andrey_B писал(а):
intrahouse писал(а):а почему MegaD не передает состояния о переключении устройств (хотя бы дискретных датчиков и актуаторов)?
Возможно есть причины, это всего лишь вопрос.
Я не совсем понял формулировку вопроса.
Порт можно сконфигурировать как IN (вход) и как OUT (выход).
Датчики (например, кнопка, датчик протечки, охранный извещатель и т.д.) подключается к входу (IN). О любых событиях, которые происходят с входом, устройство сообщает серверу, если он прописан.
Лампочки, моторы, актуаторы, клапаны, нагреватели, насосы и т.д. подключаются к выходу (OUT). Если сервер дает команду на переключение, то, вероятно, он сам прекрасно знает в каком состоянии находится выход. А если устройство работает без сервера, самостоятельно, то кому эту информацию передавать?
Это да. Но ведь у MegaD могут быть свои сценарии. И если по датчику сработает сценарий в MegaD и переключит выход, как сервер об этом узнает?

Andrey_B
Администратор
Сообщения: 5327
Зарегистрирован: 18 мар 2011, 12:06

Re: Сервер умного дома

Сообщение Andrey_B » 09 ноя 2016, 19:13

intrahouse писал(а):Это да. Но ведь у MegaD могут быть свои сценарии. И если по датчику сработает сценарий в MegaD и переключит выход, как сервер об этом узнает?
Свои сценарии MegaD выполняет либо когда сервер не прописан, либо когда сервер есть, но не отвечает.
Рассуждаем логически. Если сервер не прописан в конфигурации, то кому устройство должно сообщать о событиях?

intrahouse
Сообщения: 153
Зарегистрирован: 17 янв 2014, 11:07

Re: Сервер умного дома

Сообщение intrahouse » 10 ноя 2016, 13:07

Andrey_B писал(а):
intrahouse писал(а):Это да. Но ведь у MegaD могут быть свои сценарии. И если по датчику сработает сценарий в MegaD и переключит выход, как сервер об этом узнает?
Свои сценарии MegaD выполняет либо когда сервер не прописан, либо когда сервер есть, но не отвечает.
Рассуждаем логически. Если сервер не прописан в конфигурации, то кому устройство должно сообщать о событиях?
Все логично. И ваше решение (если нет связи с сервером, MegaD работает самостоятельно) отличное.
Но если бы MegaD отрабатывала свои скрипты в любом случае (есть связь с сервером или нет) было бы лучше.
Например свет. MegaD получает сигнал от кнопочного выключателя (или датчика) и включает свет самостоятельно моментально без анализа наличия связи с сервером. А серверу в данном случае по барабану как включился свет. Он просто фиксирует (отображает) это включение.
Мало того, MegaD в этом случае могла бы сама отработать длинные и короткие нажатия. И сообщить серверу о типе нажатия (длинное/короткое).

То есть идея в том что MegaD (как и любой другой контроллер) выполняет часть работы самостоятельно. И сообщает серверу о любых переключениях своих устройств.
Кстати, таким образом расширяется функционал MegaD. Ведь в качестве сервера может быть любой Http сервер (IP камера), у которого нет скриптов.

Ответить