Универсальный узел автоматики

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

Модератор: immortal

Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Универсальный узел автоматики

Сообщение sergejey » Пн дек 30, 2013 6:22 pm

Обсуждение страницы Универсальный узел автоматики

Приглашаю попробовать и обсудить проект, над которым я работал в последнее время. Местами, возможно, сыро, но сама концепция вполне рабочая и я уже сделал у себя несколько устройств на этой системе.

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
ignat99
Сообщения: 206
Зарегистрирован: Сб дек 21, 2013 9:21 pm
Откуда: Spain
Благодарил (а): 1 раз
Поблагодарили: 22 раза

Re: Универсальный узел автоматики

Сообщение ignat99 » Пн дек 30, 2013 7:44 pm

О здорово! Спасибо большое, а где брать пропатченную версию образа (с которой Arduino стабильно работает) для TP-Link TPLink W703N. Хотелось бы чтоб всё было под рукой.
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Универсальный узел автоматики

Сообщение sergejey » Пн дек 30, 2013 9:14 pm

ignat99 писал(а):О здорово! Спасибо большое, а где брать пропатченную версию образа (с которой Arduino стабильно работает) для TP-Link TPLink W703N. Хотелось бы чтоб всё было под рукой.
Загрузил сюда плюс добавил ссылку на страницу установки компонентов.

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
ignat99
Сообщения: 206
Зарегистрирован: Сб дек 21, 2013 9:21 pm
Откуда: Spain
Благодарил (а): 1 раз
Поблагодарили: 22 раза

Re: Универсальный узел автоматики

Сообщение ignat99 » Пт янв 03, 2014 1:06 am

sergejey писал(а):
ignat99 писал(а):О здорово! Спасибо большое, а где брать пропатченную версию образа (с которой Arduino стабильно работает) для TP-Link TPLink W703N. Хотелось бы чтоб всё было под рукой.
Загрузил сюда плюс добавил ссылку на страницу установки компонентов.
Залил Скетчь на Ардвино (чтобы мигал по команде)
Залил прошивку и скрипты на TP Link, подключил по WiFi

Захожу в админку (контроль панель) как ignat99
А на сервис CONNECT захожу как ignat
Сгенерировал идентификатор для TP - Link

Прописал его в скриптах на TP-Linc

В результате на CONNECT не могу зарегистрировать этот идентификатор и внести правила.
Пришет:
http://connect.smartliving.ru/index.php ... ices&inst=

Устройсто не найдено!
Регистрация устройства:
Создать новый ID


Нет записей.

Видимо я должен создать какето типовые модули\классны на Мажердоме.
Из присланных вами скриншотов я не чего не понял.

Может быть есть подробная инструкция, как вообще подключать новые устройства ?
Или ссылка на форум (я просмотрел все страницы, но точно не помню где это есть)

Нашёл информацию тут - определение через класс информации для ссылки и возможно формы menu сенсора : http://smartliving.ru/Main/ScMonitorContact
Похоже на то как в Jango через Модель (База данных) определяется админка и фильтры.


Я так понимаю это основной барьер для понимания системы - отстутствие пошаговых офицальных инструкций на создание классов и объектов для различных модулей.

Какой командой (GET запрос с параметрами) отправленной прямо на ip адресс роутера TP Link я могу поморгать свето-диодами Ардвино?

http://192.168.43.241/cgi-bin/master?op=refresh

Unable to launch the requested CGI program:
/www/cgi-bin/master: No such file or directory


http://192.168.43.241/menu.html
Not Found
The requested URL /menu.html was not found on this server.

root@OpenWrt:~# ls -l /www/cgi-bin/master
-rwxr-xr-x 1 root root 1730 Jan 1 00:39 /www/cgi-bin/master

Проблему с мастером исправил. Я забыл установить пакеты (подсознательно думал что они уже установлены ;-)

opkg update
opkg install bash
opkg install coreutils-stty
opkg install kmod-usb-serial
opkg install kmod-usb-serial-ftdi


Переключился на стандартный репозиторий OpenWRT но не смог обновить список пакетов.
Возможно нет места в этой прошивке? Как не странно в стандартной прошивке OpenWRT всё устанавливается без проблем.
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Универсальный узел автоматики

Сообщение sergejey » Пт янв 03, 2014 11:50 pm

Возможно, ещё нужно доустановить wget -- я не помню есть ли он в стандартной прошивке.
Классы никакие создавать не нужно -- эта система не связана с MajorDoMo и работает отдельно (хоть и может быть связана при желании).

Ошибка о том, что устройство не найдено связана с тем, что на connect.smartliving.ru не пришёл запрос с идентификатором устройства, а без предварительной (анонимной) регистрации устройство нельзя подключить к своему аккаунту. Попробуйте в самом деле проверить насчёт wget.

menu.html не появится до первого успешного обновления

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
ignat99
Сообщения: 206
Зарегистрирован: Сб дек 21, 2013 9:21 pm
Откуда: Spain
Благодарил (а): 1 раз
Поблагодарили: 22 раза

Re: Универсальный узел автоматики

Сообщение ignat99 » Сб янв 04, 2014 2:41 pm

wget стоит

Полагаю проблема была в том, что я не запустил:

4. Включить автоматическую загрузку основного цикла командой
/etc/init.d/arduino enable

Требуется ли эта команда для автозапуска или достаточно один раз ввести предыдущую команду?
ln -s /etc/init.d/arduino /etc/rc.d/S50arduino

Так как подумал, что это исключительно для взаимодействия с arduino.
Между тем на TPLink, хватило место для mosquitto.
Полагаю, целесобразно разделять циклы на подписчиков (sub - Мажардомо) и публишеров (pub - Ардуино)?
А между писателями и подписчиками - брокер MQTT.
http://jpmens.net/2013/02/25/lots-of-me ... to-broker/
http://mosquitto.org/

Не совсем понял, почему публикация внутренних правил привязана к удалённому серверу и не возможно сделать всё локально.
Я конечно понимаю, что хорошо дать возможность людям обмениваться идеями\скриптами и попутно пополнять клиенсткую базу, но соображения о сохранности частных данных и финансовой ответстванности за них, заставляют задуматься :-) А между тем Mosquitto поддерживает SSL/TLS для шифрования трафика.
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Универсальный узел автоматики

Сообщение sergejey » Вс янв 05, 2014 11:54 pm

ignat99 писал(а):wget стоит

Полагаю проблема была в том, что я не запустил:

4. Включить автоматическую загрузку основного цикла командой
/etc/init.d/arduino enable

Требуется ли эта команда для автозапуска или достаточно один раз ввести предыдущую команду?
ln -s /etc/init.d/arduino /etc/rc.d/S50arduino
Так как подумал, что это исключительно для взаимодействия с arduino.
команда с enable как раз создаёт символьную ссылку для авто-запуска, т.е. тоже самое, только короче. без этой команды устройство автоматически не запустит цикл и не зарегистрируется в connect-е.
ignat99 писал(а): Между тем на TPLink, хватило место для mosquitto.
Полагаю, целесобразно разделять циклы на подписчиков (sub - Мажардомо) и публишеров (pub - Ардуино)?
А между писателями и подписчиками - брокер MQTT.
http://jpmens.net/2013/02/25/lots-of-me ... to-broker/
http://mosquitto.org/
MQTT интересная вещь, но, признаться, этот протокол я у себя не использую, хоть и сделал поддержку его в MajorDoMo. Пока не так много устройств, которые его используют. На практике я сталкивался только с проектом X13Home, но в целом штука перспективная.
ignat99 писал(а):Не совсем понял, почему публикация внутренних правил привязана к удалённому серверу и не возможно сделать всё локально.
Я конечно понимаю, что хорошо дать возможность людям обмениваться идеями\скриптами и попутно пополнять клиенсткую базу, но соображения о сохранности частных данных и финансовой ответстванности за них, заставляют задуматься :-) А между тем Mosquitto поддерживает SSL/TLS для шифрования трафика.
Дело не в пополнении "клиентской базы", если так можно выразиться. Просто я не нашёл простого способа сделать систему настройки правил на самом устройстве. Точнее, проблем с настройкой правил особо нет -- можно вручную программировать всё на bash-скрипте, ведь исходный код правил остаётся открытым, как и сам цикл, выполняющийся на устройстве. Но для организации такого веб-интерфейса, который работает на connect-е, мне необходим был на устройстве PHP и MySQL, а это уже слишком тяжёлая артиллерия для роутеров. В общем, нет необходимости подключаться к коннекту -- можно взять основу в виде цикла и самому его дописать под свои нужды.

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
ignat99
Сообщения: 206
Зарегистрирован: Сб дек 21, 2013 9:21 pm
Откуда: Spain
Благодарил (а): 1 раз
Поблагодарили: 22 раза

Re: Универсальный узел автоматики

Сообщение ignat99 » Пн янв 06, 2014 12:23 am

sergejey писал(а):
MQTT интересная вещь, но, признаться, этот протокол я у себя не использую, хоть и сделал поддержку его в MajorDoMo. Пока не так много устройств, которые его используют. На практике я сталкивался только с проектом X13Home, но в целом штука перспективная.
ignat99 писал(а):Не совсем понял, почему публикация внутренних правил привязана к удалённому серверу и не возможно сделать всё локально.
Я конечно понимаю, что хорошо дать возможность людям обмениваться идеями\скриптами и попутно пополнять клиенсткую базу, но соображения о сохранности частных данных и финансовой ответстванности за них, заставляют задуматься :-) А между тем Mosquitto поддерживает SSL/TLS для шифрования трафика.
Дело не в пополнении "клиентской базы", если так можно выразиться. Просто я не нашёл простого способа сделать систему настройки правил на самом устройстве. Точнее, проблем с настройкой правил особо нет -- можно вручную программировать всё на bash-скрипте, ведь исходный код правил остаётся открытым, как и сам цикл, выполняющийся на устройстве. Но для организации такого веб-интерфейса, который работает на connect-е, мне необходим был на устройстве PHP и MySQL, а это уже слишком тяжёлая артиллерия для роутеров. В общем, нет необходимости подключаться к коннекту -- можно взять основу в виде цикла и самому его дописать под свои нужды.
На MQTT правила задаются через именование заголовков : Например - sensors/COMPUTER_NAME/temperature/HARDDRIVE_NAME

http://mosquitto.org/man/mqtt-7.html

Если мы заменим отдельно слово на "+", мы (как подписчик) будем получать всю информацию, которую мы выбрали.
Таким образом можно установить правила, для реакции на события от отдельных групп сенсоров.

Настройка же сенсоров (например клиента на Arduino будет сводитьсям к опеределению правильных Топиков в соответствии с выбранной иерархией сигналов). Основной цикл есть в самом клиенте Москино (MQTT).

http://knolleary.net/arduino-client-for-mqtt/
https://github.com/knolleary/pubsubclie ... Client.cpp

IMHO


Проблема была в формате перевода строки в файле /etc/master/cycle.sh
Пришлось убрать 145 символов возврата каретки (^M - виндоус формат).

После этого я появился на карте пользователей, но устройство по прежнему не регистриурется на сервисе CONNECT, таким образом заметно что из за этого сервиса пользователь может потерять много времени.

Я так понял, дело в отсутствии программы настройки правил, думаю логичным решением является программа для различных мобильных платформ (например на Cordova). Эта программа должна дать возможность пользователю сканировать план помещения и определять правила для обмена информацией между сенсорами и эффекторами.

Вот в этом куске в конце cycle.sh снова появились ^M - которые выдают ошибку на моём роутере.
Возмоно нужны какие то системные установки, что бы bash их игнорировала?

Профиксил и этот баг. В конфиг файле и основном цикле:
vi /etc/master/settings.sh
vi /etc/master/cycle.sh

Опять же были лишние символы ^M, которые мешали коннекту.
Так же там был не правильно указан порт USB для Arduino
Правильное значение для TP-Link
ARDUINO_PORT=/dev/ttyACM0

Проверил: Заявленные возможности раотают= Arduino мигает.

Замечания:
1. Создание протокола очень муторное занятие с кучей перемнных, публикация руководства в виде скриншотов, на мой взгляд слишком не продуктивна. Предлагаю делать описание в виде иерархических JSON, MQTT объектов, которые могут быть представлены в графическом виде, текстовом, выполнены на удалённом сервере, выполнены на локальном сервере, сохранены в профиле пользователя, серриализованы для передачи библиотекой cPickle или pickle.

2.Протокол для передачи должен быть TLS.

3. Использовние bash вместо Cи или Python или JS или LUA считаю временным решением.

4. Вместо Arduino лучше использовать STM32f4 или более продвинутый модуль (NooLight) с возможностью прошивки через USB прямо с роутера и/или с беспроводным интерфейсом (Впрочем под Arduino тоже есть утилиты командной строки).
artko
Сообщения: 51
Зарегистрирован: Пн дек 10, 2012 12:17 am
Благодарил (а): 2 раза
Поблагодарили: 4 раза

Re: Универсальный узел автоматики

Сообщение artko » Вт янв 07, 2014 6:18 pm

ignat99 писал(а): 4. Вместо Arduino лучше использовать STM32f4 или более продвинутый модуль (NooLight) с возможностью прошивки через USB прямо с роутера и/или с беспроводным интерфейсом (Впрочем под Arduino тоже есть утилиты командной строки).
STMF32F4 в домашней автоматике? Зачем эти многоногие могучие монстры там?
ignat99
Сообщения: 206
Зарегистрирован: Сб дек 21, 2013 9:21 pm
Откуда: Spain
Благодарил (а): 1 раз
Поблагодарили: 22 раза

Re: Универсальный узел автоматики

Сообщение ignat99 » Вт янв 07, 2014 6:30 pm

artko писал(а):
ignat99 писал(а): 4. Вместо Arduino лучше использовать STM32f4 или более продвинутый модуль (NooLight) с возможностью прошивки через USB прямо с роутера и/или с беспроводным интерфейсом (Впрочем под Arduino тоже есть утилиты командной строки).
STMF32F4 в домашней автоматике? Зачем эти многоногие могучие монстры там?
Ну, я слышал, можно делать программы на LUA и Python на нём.
Ответить