Wiren Board Software: различия между версиями

Материал из Wiren Board
(Отметить эту версию для перевода)
(не показана 21 промежуточная версия 4 участников)
Строка 2: Строка 2:
<translate>
<translate>
<!--T:1-->
<!--T:1-->
Wiren Board предоставляет как готовый веб-интерфейс для пользователей, так и возможности для собственной разработки. Исходные коды всего ПО открыты.
Wiren Board имеет готовый веб-интерфейс для пользователей, но также предоставляет возможность разработки и использования собственного ПО. Исходные коды всего ПО открыты.
 


== Веб-интерфейс == <!--T:2-->
== Веб-интерфейс == <!--T:2-->
 
[[Файл:Веб-интерфейс - главная.png|thumb|500 px|Главная страница веб-интерфейса]]
<!--T:3-->
[[Wiren Board]] имеет собственный, находящийся локально на устройстве веб-интерфейс. В нём можно:
[[Special:MyLanguage/Файл:Веб-интерфейс - главная.png|thumb|500 px|Главная страница веб-интерфейса]]
*следить за состоянием контроллера и подключённых устройств и управлять ими
 
*подключать устройства к контроллеру
<!--T:4-->
*настраивать контроллер и обновлять его ПО
[[Special:MyLanguage/Wiren Board 4|Wiren Board 4]] имеет собственный, находящийся локально на устройстве веб-интерфейс. Это удобный способ управления подключенными устройствами и контроля подключённых датчиков.
*писать правила на встроенном движке
 
*настраивать SMS и email уведомления
=== Как зайти в интерфейс === <!--T:5-->
*смотреть на графике историю значений (например, температуры)
 
Подробнее смотрите в статье [[Веб-интерфейс Wiren Board]].
<!--T:6-->
Просто введите в адресную строку браузера IP-адрес контроллера. Также смотрите статью [[Special:MyLanguage/Как узнать IP-адрес контроллера|Как узнать IP-адрес контроллера]].
 
 
=== Что можно делать в интерфейсе === <!--T:7-->
 
<!--T:8-->
* управлять подключенными устройствами
* смотреть показания датчиков
* собирать устройства и датчики в панели (Dashboards)
 
 
<!--T:9-->
Подробнее смотрите здесь - [[Wiren Board 4:Веб-интерфейс|Wiren Board 4:Веб-интерфейс]]
 


== Архитектура ПО Wiren Board == <!--T:10-->
== Архитектура ПО Wiren Board == <!--T:10-->
<!--T:11-->
[[Special:MyLanguage/Файл:MQTT.png | thumb | 600px]]


=== Операционная система === <!--T:12-->
=== Операционная система === <!--T:12-->


<!--T:13-->
<!--T:13-->
Wiren Board работает под управлением стандартной сборки Debian Linux 7.0. Для архитектуры используемого процессора есть официальный [https://www.debian.org/ports/arm/ порт]. Поэтому почти любой пакет найдётся в стандартном репозитории, и его можно установить одной командой (apt-get install).
Wiren Board работает под управлением стандартной сборки Debian Linux 7.0. Для архитектуры используемого процессора есть официальный [https://www.debian.org/ports/arm/ порт]. Поэтому почти любой пакет найдётся в стандартном репозитории, и его можно установить одной командой (''apt-get install'').
 


=== Репозиторий и Git === <!--T:14-->
=== Репозиторий и Git === <!--T:14-->


<!--T:15-->
<!--T:15-->
Также у нас есть собственный debian-репозиторий releases.contactless.ru, в котором хранятся пакеты, собранные специально для контроллера. Репозиторий прописан в образе ПО для Wiren Board по умолчанию (файл /etc/apt/sources.list).
Также у нас есть собственный debian-репозиторий ''releases.contactless.ru'', в котором хранятся пакеты, собранные специально для контроллера. Репозиторий прописан в образе ПО для Wiren Board по умолчанию (файл ''/etc/apt/sources.list'').


<!--T:16-->
<!--T:16-->
Весь исходный код доступен на  [https://github.com/contactless/ Github]. Там можно почерпнуть примеры для разработки собственного ПО.
Весь исходный код доступен на  [https://github.com/contactless/ https://github.com/contactless/]. Там можно почерпнуть примеры для разработки собственного ПО.


=== MQTT ===
[[File:MQTT.png | thumb | 600px | Структура ПО контроллера. В центре очередь сообщений MQTT, использующаяся для обмена информацией между разными частями ПО]]


=== MQTT === <!--T:17-->
MQTT - очередь сообщений, "скелет" программной архитектуры Wiren Board. [http://en.wikipedia.org/wiki/MQTT Базовая информация по MQTT на Википедии].


<!--T:18-->
Драйверы, отвечающие за аппаратные возможности контроллера (цифровые входы, АЦП, транзисторный выходы, ...) и функции внешних подключённых устройств (например, подключённых по RS-485 модулей реле) записывают их состояние в очередь MQTT в виде специальных сообщений. Веб-интерфейс читает эти сообщения и на их основе отображает состояние устройств.
Wiren Board использует очередь сообщений MQTT ([http://en.wikipedia.org/wiki/MQTT статья на википедии]) в качестве единого стандарта сбора информации с внутренних модулей (реле, АЦП и т.д.) и внешних устройств (датчиков 1-Wire, устройств Modbus). Для каждого такого модуля и внешнего совместимого устройства разработан "драйвер", который передаёт данные в систему сообщений MQTT и обратно. Веб-интерфейс тоже берёт данные из этой системы сообщений, и все изменения, внесённые через него (например, включить реле) он отправляет туда же. Через ту же очередь сообщений работает и движок правил.


Если же происходит нажатие кнопки в веб-интерфейсе, уже веб-интерфейс отправляет сообщение в очередь MQTT, драйвер устройства его получает и отдаёт команду устройству.


<!--T:19-->
Через MQTT работает веб-интерфейс, движок правил и встроенные драйверы. Если вы разрабатываете собственное ПО в дополнение к предустановленному, мы советуем вам также использовать MQTT.
Подробнее смотрите [[Special:MyLanguage/MQTT|MQTT]].


Подробнее смотрите [[MQTT]].


=== Веб-интерфейс === <!--T:20-->
=== Веб-интерфейс === <!--T:20-->


<!--T:21-->
Основная статья: [[Веб-интерфейс Wiren Board]].
Подробнее см.  [[Wiren Board 4:Веб-интерфейс|Wiren Board 4:Веб-интерфейс]]
 
<!--T:22-->
Веб-интерфейс работает непосредственно на Wiren Board. В качестве веб-сервера работает лёгкий [http://manpages.ubuntu.com/manpages/lucid/man1/webfsd.1.html webfsd]. Сам сайт написан на [https://angularjs.org/ AngularJS], сайт взаимодействует с MQTT через [http://en.wikipedia.org/wiki/WebSocket WebSocket].


Веб-интерфейс работает непосредственно на Wiren Board. В качестве веб-сервера работает [http://nginx.org nginx] или лёгкий [http://manpages.ubuntu.com/manpages/lucid/man1/webfsd.1.html webfsd] (в зависимости от версии прошивки). Сам сайт написан на [https://angularjs.org/ AngularJS], сайт взаимодействует с MQTT через [http://en.wikipedia.org/wiki/WebSocket WebSocket].


=== Движок правил === <!--T:23-->
=== Движок правил === <!--T:23-->


<!--T:24-->
Пользователи могут создавать собственные правила для контроллера - например, "Если температура датчика меньше 18°С, включи нагреватель". Правила создаются через [[Веб-интерфейс Wiren Board|веб-интерфейс]] и пишутся на простом Javascript-подобном языке.
Можно создавать правила, например, "если значение с датчика температуры ниже 18С, включи нагреватель". Правила пишутся на языке Javascript. Подробнее смотрите
[[Special:MyLanguage/Движок правил wb-rules|Движок правил wb-rules]].


Подробнее смотрите [[Движок правил wb-rules]].


== Как работать с модулями контроллера и портами ввода-вывода из своих программ == <!--T:25-->
== Как работать с модулями контроллера и портами ввода-вывода из своих программ == <!--T:25-->
Строка 93: Строка 71:


=== [[Special:MyLanguage/Watchdog|Watchdog]] === <!--T:30-->
=== [[Special:MyLanguage/Watchdog|Watchdog]] === <!--T:30-->
== Прочее ==
* [[Zabbix support]]
* [[Шлюз Modbus TCP]]
* [[Драйвер SNMP]]


</translate>
</translate>

Версия 14:20, 20 декабря 2016

Другие языки:

Wiren Board имеет готовый веб-интерфейс для пользователей, но также предоставляет возможность разработки и использования собственного ПО. Исходные коды всего ПО открыты.

Веб-интерфейс

Главная страница веб-интерфейса

Wiren Board имеет собственный, находящийся локально на устройстве веб-интерфейс. В нём можно:

  • следить за состоянием контроллера и подключённых устройств и управлять ими
  • подключать устройства к контроллеру
  • настраивать контроллер и обновлять его ПО
  • писать правила на встроенном движке
  • настраивать SMS и email уведомления
  • смотреть на графике историю значений (например, температуры)

Подробнее смотрите в статье Веб-интерфейс Wiren Board.

Архитектура ПО Wiren Board

Операционная система

Wiren Board работает под управлением стандартной сборки Debian Linux 7.0. Для архитектуры используемого процессора есть официальный порт. Поэтому почти любой пакет найдётся в стандартном репозитории, и его можно установить одной командой (apt-get install).

Репозиторий и Git

Также у нас есть собственный debian-репозиторий releases.contactless.ru, в котором хранятся пакеты, собранные специально для контроллера. Репозиторий прописан в образе ПО для Wiren Board по умолчанию (файл /etc/apt/sources.list).

Весь исходный код доступен на https://github.com/contactless/. Там можно почерпнуть примеры для разработки собственного ПО.

MQTT

Структура ПО контроллера. В центре очередь сообщений MQTT, использующаяся для обмена информацией между разными частями ПО

MQTT - очередь сообщений, "скелет" программной архитектуры Wiren Board. Базовая информация по MQTT на Википедии.

Драйверы, отвечающие за аппаратные возможности контроллера (цифровые входы, АЦП, транзисторный выходы, ...) и функции внешних подключённых устройств (например, подключённых по RS-485 модулей реле) записывают их состояние в очередь MQTT в виде специальных сообщений. Веб-интерфейс читает эти сообщения и на их основе отображает состояние устройств.

Если же происходит нажатие кнопки в веб-интерфейсе, уже веб-интерфейс отправляет сообщение в очередь MQTT, драйвер устройства его получает и отдаёт команду устройству.

Через MQTT работает веб-интерфейс, движок правил и встроенные драйверы. Если вы разрабатываете собственное ПО в дополнение к предустановленному, мы советуем вам также использовать MQTT.

Подробнее смотрите MQTT.

Веб-интерфейс

Основная статья: Веб-интерфейс Wiren Board.

Веб-интерфейс работает непосредственно на Wiren Board. В качестве веб-сервера работает nginx или лёгкий webfsd (в зависимости от версии прошивки). Сам сайт написан на AngularJS, сайт взаимодействует с MQTT через WebSocket.

Движок правил

Пользователи могут создавать собственные правила для контроллера - например, "Если температура датчика меньше 18°С, включи нагреватель". Правила создаются через веб-интерфейс и пишутся на простом Javascript-подобном языке.

Подробнее смотрите Движок правил wb-rules.

Как работать с модулями контроллера и портами ввода-вывода из своих программ

GSM/GPRS

Wi-Fi

RS-485

GPIO

Watchdog

Прочее