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

Нет описания правки
 
(не показано 145 промежуточных версий 9 участников)
Строка 1: Строка 1:
{{DISPLAYTITLE: Программное обеспечение контроллеров Wiren Board}}
== Как устроено ПО Wiren Board ==
[[File:DebianLinux.png | thumb | 600px | Структура ПО контроллера. В центре очередь сообщений MQTT, которая используется для обмена информацией между разными частями ПО]]


== Нативный веб-интерфейс ==
Wiren Board работает под управлением Debian Linux. Для архитектуры используемого процессора есть [https://www.debian.org/ports/arm/ официальный порт], поэтому любое стандартное Linux-приложение можно установить из репозитория одной командой <code>apt install имя_пакета</code>.


Нативный веб-интерфейс доступен при обращении по IP-адресу WB Smart Home из браузера.
Все сервисы контроллера общаются между собой по общей «шине», в роли которой выступает [[MQTT | Очередь сообщений MQTT]].
В интерфейсе отображаются блоки - "устройства", в каждом их которого есть несколько элементов управления.


При клике на блок устройства открывается страница настройки параметров устройства.
По умолчанию установлены [[Wiren Board Web Interface|Веб-интерфейс Wiren Board]], [[Движок правил wb-rules|Движок правил wb-rules]], а также драйвера и вспомогательные утилиты.
На странице настроек можно назначить устройству комнату, изменить конфигурационные параметры, предоставляемые устройством, а также настрить отображение контролов.


Опционально можно установить шлюзы для интеграции со SCADA-системами и сторонний софт. Полный список смотрите в [[Supported_devices|Таблице поддерживаемых устройств, протоколов и программ]].


=== Разработка своих решений ===
{{Wbincludes:Wiren Board Software Dev}}


В верхней части страницы расположено меню выбора "комнат", в которых расположены устройства.
== Обновление прошивки и релизный цикл==
=== Кратко о релизах ===
{{Wbincludes:Releases}}
{{Wbincludes:Release Log}}


=== Служебные устройства ===
=== Какой релиз на вашем контроллере ===
[[Файл:Native UI System.png|500px|thumb|Служебные устройства]]
{{Wbincludes:What-release}}


Служебные устройства располагаются в комнате System. Служебные устройства предназначены для индикации состояния и настройки различных подсистем.
=== Переключение между релизами ===
В текущей прошивке есть два служебных устройства: "NinjaBlocks bridge" и "ISM Radio". Эти устройства отвечают соответственно за модуль связи с системой Ninja Blocks и радио-модуль.
{{Wbincludes:Switch-release}}


==== Устройство ISM Radio ====
=== Обновление прошивки контроллера и откат к заводским настройкам ===
ISM Radio - устройство, отвечающее за работу радио-модуля.
{{Anchor|update}}
Устройство отображает служебную информацию: количество принятых с момента старта сервиса пакетов различных типов.
[[Файл:Native UI ISM radio.png|thumb|500px|Устройство радио-модуля на 433Mhz]]


===== Настройки =====
Прошивку контроллера можно обновить или вернуть его к заводскому состоянию с удалением всех данных.
Изменения конфигурационных параметров применяются немедленно.


{| border="1"
Все ревизии контроллера можно обновить через менеджер пакетов apt или веб-интерфейс, а в относительно свежих добавилась возможность обновления с флеш-накопителя и через Debug Network.
| mqtt-адрес || Название || Описание  || Формат || Пример
|-
| /devices/wb-homa-rcd/meta/noolite_remotes || Noolite_remotes || Количество виртуальных блоков Noolite || число || 4
|-
| /devices/wb-homa-rcd/meta/noolite_remotes_custom || Noolite_remotes_custom || Пользовательские пульты Noolite || hex-адреса пультов, разделенные запятыми || 0x1234, 0x1000, 0x0001
|-
| /devices/wb-homa-rcd/meta/rssi_threshold || Rssi_threshold || Чувствительность приёмника, dBm || отрицательное число || -70
|-


|}
Инструкции:
* [[Wiren_Board_7.4_Firmware_Update |Wiren Board 7.4]]
* [[Wiren_Board_7_Firmware_Update|Wiren Board 7.2…7.3]]
* [[Wiren_Board_6_Firmware_Update |Wiren Board 6]]
* [[Wiren_Board_5_Firmware_Update|Wiren Board 5]]


[[Файл:Native UI Radio Settings.png|thumb|500px|Настройки радио на 433Mhz]]
<gallery mode="packed" heights="140px" caption="Как узнать ревизию контроллера">
Image: Revision in the web interface.png| Ревизия контроллера в веб-интерфейсе. Устройства → System
Image: Revision in the console.png| Ревизия контроллера в консоли, при подключении по [[SSH]]. Сразу под баннером, зелёными цифрами 6.7.2
Image: Revision on the stick.png| Ревизия контроллера на наклейке
</gallery>


=== Блок Relays&FETs ===
== Список сервисов и их назначение ==
[[Файл:Native UI Devices.png|500px|thumb|Блок Relays&FETs, датчики Oregon]]
Список сервисов, запущенных на контроллере, их статус и описание можно получить командой:
<syntaxhighlight lang="bash">
systemctl list-units --type=service
</syntaxhighlight>


Про управление сервисами читайте в статье [[How_to_diagnose#Полезные команды | Диагностика ошибок в работе контроллера]].


 
{| border="1" class="wikitable" style="text-align:left"
 
|-
Блок "Relays&FETs" предназначен для взаимодействия с реле и выходами "открытый коллектор" платы. Состояние выходов можно менять с помощью переключателей.
|| '''Имя сервиса''' || '''Описание'''
 
|-
=== Раздел Noolite ===
|| avahi-daemon.service || Avahi mDNS/DNS-SD Stack
В разделе Noolite расположены виртуальные пульты для управления системой Noolite, см. ниже.
|-
[[Файл:Native UI Noolite.png|500px|thumb|Виртуальные пульты системы Noolite]]
|| bluetooth.service || Bluetooth service
 
|-
== Работа с Ninja Blocks ==
|| cgmanager.service || Cgroup management daemon
В состав ПО Wiren Board Smart Home входит интеграция с облачной системой управления умным домом Ninja Blocks.  
|-
Для использования системы необходимо сначала выполнить процедуру привязки.
|| cron.service || Regular background program processing daemon
 
|-
1. Откройте нативный веб-интерфейс управления и найдите устройство NinjaBlocks bridge. В поле Status будет состояние "Waiting for activation".
|| dbus.service || D-Bus System Message Bus
В поле Block Id написан уникальный идентификатор устройства для работы в Ninja Blocks, скопируйте его в буфер обмена.
|-
 
|| dnsmasq.service || dnsmasq - A lightweight DHCP and caching DNS server
2. Зайдите в бета-версию веб-интерейса Ninja Blocks по адресу http://wakai.ninja.is. Зарегистрируйтесть в системе и войдите в нее.
|-
 
|| getty@tty1.service || Getty on tty1
3. Нажмите на кнопку Pair Hub и введите идентификатор устройства из пункта 1. Статус в нативном веб-интерфейсе должен смениться на "Connected".
|-
 
|| hostapd.service || LSB: Advanced IEEE 802.11 management daemon
4. В случае проблем на этом этапе повторите процедуру следующим образом:
|-
 
|| kmod-static-nodes.service || Create list of required static device nodes for the current kernel
Остановите демон.
|-
<pre>
|| knxd.service || KNX Daemon
root@wirenboard:~# /etc/init.d/wb-homa-ninja-bridge stop
|-
</pre>
|| mosquitto.service || Mosquitto MQTT v3.1/v3.1.1 Broker
 
|-
Удалите сохранённый токет, если есть:
|| netplug.service || LSB: Brings up/down network automatically
<pre>
|-
root@wirenboard:~# rm /var/lib/wirenboard/*.token
|| networking.service || Raise network interfaces
</pre>
|-
 
|| nginx.service || A high performance web server and a reverse proxy server
Запустите демон снова
|-
<pre>
|| ntp.service || LSB: Start NTP daemon
root@wirenboard:~# /etc/init.d/wb-homa-ninja-bridge start
|-
</pre>
|| rsyslog.service || System Logging Service
 
|-
Удалите устройство в Ninja Blocks на странице Settings во вкладке Hubs с помощью кнопки Unpair.
|| serial-getty@ttymxc0.service || Serial Getty on ttymxc0
 
|-
Повторите пункт 3.
|| ssh.service || OpenBSD Secure Shell server
|-
|| systemd-fsck-root.service || File System Check on Root Device
|-
|| systemd-fsck@dev-mmcblk0p6.service || File System Check on /dev/mmcblk0p6
|-
|| systemd-journal-flush.service || Flush Journal to Persistent Storage
|-
|| systemd-journald.service || Journal Service
|-
|| systemd-logind.service || Login Service
|-
|| systemd-modules-load.service || Load Kernel Modules
|-
|| systemd-random-seed.service || Load/Save Random Seed
|-
|| systemd-modules-load.service || Load Kernel Modules
|-
|| systemd-random-seed.service || Load/Save Random Seed
|-
|| systemd-remount-fs.service || Remount Root and Kernel File Systems
|-
|| systemd-sysctl.service || Apply Kernel Variables
|-
|| systemd-tmpfiles-setup-dev.service || Create Static Device Nodes in /dev
|-
|| systemd-tmpfiles-setup.service || Create Volatile Files and Directories
|-
|| systemd-udev-trigger.service || udev Coldplug all Devices
|-
|| systemd-udevd.service || udev Kernel Device Manager
|-
|| systemd-update-utmp.service || Update UTMP about System Boot/Shutdown
|-
|| systemd-user-sessions.service || Permit User Sessions
|-
|| user@0.service || User Manager for UID 0
|-
|| watchdog.service || watchdog daemon
|-
|| wb-configs-early.service || prepare mounts and symlinks to config files
|-
|| wb-configs.service || watch config files
|-
|| wb-gsm-rtc.service || LSB: initscript to use GSM modem integrated RTC
|-
|| wb-homa-ism-radio.service || LSB: MQTT driver for WB HomA for RFM69 ISM radio
|-
|| wb-hwconf-manager.service || LSB: Hardware configuration with Device Tree overlays
|-
|| wb-init.service || LSB: board-specific initscript
|-
|| wb-mqtt-adc.service || MQTT Driver for ADC
|-
|| wb-mqtt-confed.service || LSB: Configuration Editor Backend
|-
|| wb-mqtt-db.service || Wiren Board database logger
|-
|| wb-mqtt-gpio.service || MQTT Driver for GPIO-controlled switches
|-
|| wb-mqtt-knx.service || LSB: : Wiren Board MQTT KNX bridge
|-
|| wb-mqtt-logs.service || Wiren Board journald to MQTT gateway
|-
|| wb-mqtt-mbgate.service || Wiren Board MQTT to Modbus TCP gateway
|-
|| wb-mqtt-opcua.service || Wiren Board MQTT to OPC UA gateway
|-
|| wb-mqtt-serial.service || MQTT Driver for serial devices
|-
|| wb-mqtt-w1.service || Kernel 1-Wire MQTT driver for WB-HomA
|-
|| wb-prepare.service || initialize filesystems at first boot
|-
|| wb-repart.service || prepare partitions at first boot
|-
|| wb-rules.service || MQTT Rule engine for Wiren Board
|-
|| wb-systime-adjust.service || Compensation of systime in PPM from value, stored in device-tree (with opposite sign)
|-
|| wb-watch-update.service || LSB: Firmware update monitor
|}