Универсальный узел автоматики
Модератор: immortal
- sergejey
- Site Admin
- Сообщения: 4284
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 75 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Универсальный узел автоматики
Обсуждение страницы Универсальный узел автоматики
Приглашаю попробовать и обсудить проект, над которым я работал в последнее время. Местами, возможно, сыро, но сама концепция вполне рабочая и я уже сделал у себя несколько устройств на этой системе.
Приглашаю попробовать и обсудить проект, над которым я работал в последнее время. Местами, возможно, сыро, но сама концепция вполне рабочая и я уже сделал у себя несколько устройств на этой системе.
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
-
- Сообщения: 206
- Зарегистрирован: Сб дек 21, 2013 9:21 pm
- Откуда: Spain
- Благодарил (а): 1 раз
- Поблагодарили: 22 раза
Re: Универсальный узел автоматики
О здорово! Спасибо большое, а где брать пропатченную версию образа (с которой Arduino стабильно работает) для TP-Link TPLink W703N. Хотелось бы чтоб всё было под рукой.
- sergejey
- Site Admin
- Сообщения: 4284
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 75 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: Универсальный узел автоматики
Загрузил сюда плюс добавил ссылку на страницу установки компонентов.ignat99 писал(а):О здорово! Спасибо большое, а где брать пропатченную версию образа (с которой Arduino стабильно работает) для TP-Link TPLink W703N. Хотелось бы чтоб всё было под рукой.
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
-
- Сообщения: 206
- Зарегистрирован: Сб дек 21, 2013 9:21 pm
- Откуда: Spain
- Благодарил (а): 1 раз
- Поблагодарили: 22 раза
Re: Универсальный узел автоматики
Залил Скетчь на Ардвино (чтобы мигал по команде)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: Универсальный узел автоматики
Возможно, ещё нужно доустановить wget -- я не помню есть ли он в стандартной прошивке.
Классы никакие создавать не нужно -- эта система не связана с MajorDoMo и работает отдельно (хоть и может быть связана при желании).
Ошибка о том, что устройство не найдено связана с тем, что на connect.smartliving.ru не пришёл запрос с идентификатором устройства, а без предварительной (анонимной) регистрации устройство нельзя подключить к своему аккаунту. Попробуйте в самом деле проверить насчёт wget.
menu.html не появится до первого успешного обновления
Классы никакие создавать не нужно -- эта система не связана с MajorDoMo и работает отдельно (хоть и может быть связана при желании).
Ошибка о том, что устройство не найдено связана с тем, что на connect.smartliving.ru не пришёл запрос с идентификатором устройства, а без предварительной (анонимной) регистрации устройство нельзя подключить к своему аккаунту. Попробуйте в самом деле проверить насчёт wget.
menu.html не появится до первого успешного обновления
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
-
- Сообщения: 206
- Зарегистрирован: Сб дек 21, 2013 9:21 pm
- Откуда: Spain
- Благодарил (а): 1 раз
- Поблагодарили: 22 раза
Re: Универсальный узел автоматики
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 для шифрования трафика.
Полагаю проблема была в том, что я не запустил:
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: Универсальный узел автоматики
команда с enable как раз создаёт символьную ссылку для авто-запуска, т.е. тоже самое, только короче. без этой команды устройство автоматически не запустит цикл и не зарегистрируется в connect-е.ignat99 писал(а):wget стоит
Полагаю проблема была в том, что я не запустил:
4. Включить автоматическую загрузку основного цикла командой
/etc/init.d/arduino enable
Требуется ли эта команда для автозапуска или достаточно один раз ввести предыдущую команду?
ln -s /etc/init.d/arduino /etc/rc.d/S50arduino
Так как подумал, что это исключительно для взаимодействия с arduino.
MQTT интересная вещь, но, признаться, этот протокол я у себя не использую, хоть и сделал поддержку его в MajorDoMo. Пока не так много устройств, которые его используют. На практике я сталкивался только с проектом X13Home, но в целом штука перспективная.ignat99 писал(а): Между тем на TPLink, хватило место для mosquitto.
Полагаю, целесобразно разделять циклы на подписчиков (sub - Мажардомо) и публишеров (pub - Ардуино)?
А между писателями и подписчиками - брокер MQTT.
http://jpmens.net/2013/02/25/lots-of-me ... to-broker/
http://mosquitto.org/
Дело не в пополнении "клиентской базы", если так можно выразиться. Просто я не нашёл простого способа сделать систему настройки правил на самом устройстве. Точнее, проблем с настройкой правил особо нет -- можно вручную программировать всё на bash-скрипте, ведь исходный код правил остаётся открытым, как и сам цикл, выполняющийся на устройстве. Но для организации такого веб-интерфейса, который работает на connect-е, мне необходим был на устройстве PHP и MySQL, а это уже слишком тяжёлая артиллерия для роутеров. В общем, нет необходимости подключаться к коннекту -- можно взять основу в виде цикла и самому его дописать под свои нужды.ignat99 писал(а):Не совсем понял, почему публикация внутренних правил привязана к удалённому серверу и не возможно сделать всё локально.
Я конечно понимаю, что хорошо дать возможность людям обмениваться идеями\скриптами и попутно пополнять клиенсткую базу, но соображения о сохранности частных данных и финансовой ответстванности за них, заставляют задуматься А между тем Mosquitto поддерживает SSL/TLS для шифрования трафика.
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
-
- Сообщения: 206
- Зарегистрирован: Сб дек 21, 2013 9:21 pm
- Откуда: Spain
- Благодарил (а): 1 раз
- Поблагодарили: 22 раза
Re: Универсальный узел автоматики
На MQTT правила задаются через именование заголовков : Например - sensors/COMPUTER_NAME/temperature/HARDDRIVE_NAMEsergejey писал(а):
MQTT интересная вещь, но, признаться, этот протокол я у себя не использую, хоть и сделал поддержку его в MajorDoMo. Пока не так много устройств, которые его используют. На практике я сталкивался только с проектом X13Home, но в целом штука перспективная.
Дело не в пополнении "клиентской базы", если так можно выразиться. Просто я не нашёл простого способа сделать систему настройки правил на самом устройстве. Точнее, проблем с настройкой правил особо нет -- можно вручную программировать всё на bash-скрипте, ведь исходный код правил остаётся открытым, как и сам цикл, выполняющийся на устройстве. Но для организации такого веб-интерфейса, который работает на connect-е, мне необходим был на устройстве PHP и MySQL, а это уже слишком тяжёлая артиллерия для роутеров. В общем, нет необходимости подключаться к коннекту -- можно взять основу в виде цикла и самому его дописать под свои нужды.ignat99 писал(а):Не совсем понял, почему публикация внутренних правил привязана к удалённому серверу и не возможно сделать всё локально.
Я конечно понимаю, что хорошо дать возможность людям обмениваться идеями\скриптами и попутно пополнять клиенсткую базу, но соображения о сохранности частных данных и финансовой ответстванности за них, заставляют задуматься А между тем Mosquitto поддерживает SSL/TLS для шифрования трафика.
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 тоже есть утилиты командной строки).
-
- Сообщения: 51
- Зарегистрирован: Пн дек 10, 2012 12:17 am
- Благодарил (а): 2 раза
- Поблагодарили: 4 раза
Re: Универсальный узел автоматики
STMF32F4 в домашней автоматике? Зачем эти многоногие могучие монстры там?ignat99 писал(а): 4. Вместо Arduino лучше использовать STM32f4 или более продвинутый модуль (NooLight) с возможностью прошивки через USB прямо с роутера и/или с беспроводным интерфейсом (Впрочем под Arduino тоже есть утилиты командной строки).
-
- Сообщения: 206
- Зарегистрирован: Сб дек 21, 2013 9:21 pm
- Откуда: Spain
- Благодарил (а): 1 раз
- Поблагодарили: 22 раза
Re: Универсальный узел автоматики
Ну, я слышал, можно делать программы на LUA и Python на нём.artko писал(а):STMF32F4 в домашней автоматике? Зачем эти многоногие могучие монстры там?ignat99 писал(а): 4. Вместо Arduino лучше использовать STM32f4 или более продвинутый модуль (NooLight) с возможностью прошивки через USB прямо с роутера и/или с беспроводным интерфейсом (Впрочем под Arduino тоже есть утилиты командной строки).