Программное обеспечение Wiren Board
This is the approved revision of this page, as well as being the most recent.
Архитектура ПО Wiren Board
Wiren Board работает под управлением Debian Linux. Для архитектуры используемого процессора есть официальный порт, поэтому любое стандартное Linux-приложение можно установить из репозитория одной командой apt install имя_пакета
.
Программное обеспечение контроллеров Wiren Board состоит из множества пакетов, которые объединены в релизы. Релизы бывают двух типов: stable и testing.
Исходный код программного обеспечения доступен на GitHub. Там можно почерпнуть примеры для разработки собственного ПО.
Очередь сообщений MQTT — «скелет» программной архитектуры Wiren Board. Все сервисы контроллера общаются между собой по общей «шине», в роли которой и выступает брокер MQTT.

Веб-интерфейс Wiren Board работает непосредственно на контроллере. В нём можно:
- следить за состоянием контроллера и подключённых устройств и управлять ими,
- подключать устройства к контроллеру,
- настраивать контроллер и обновлять его ПО,
- писать правила на встроенном движке,
- настраивать SMS- и email-уведомления,
- смотреть графики истории значений параметров: температуры, напряжения и т.п.
Движок правил wb-rules позволяет создавать собственные правила для контроллера, например: «Если температура датчика меньше 18°С, включи нагреватель». Правила создаются через веб-интерфейс и пишутся на простом Javascript-подобном языке.
Для работы с SCADA-системами есть:
Дополнительно:
- Node-RED — инструмент визуального программирования.
- Home Assistant — open-source платформа для автоматизации.
- Docker — программное обеспечение для запуска приложений в изолированной среде.
- МЭК 61131-3 — программирование контроллеров с помощью языков FBD, ST, LD, SFC.
Полезные ссылки
- Обновление прошивки контроллера
- Поддерживаемые устройства, протоколы и программы — устройства, протоколы и программы, с которыми может работать контроллер Wiren Board.
- Просмотр файлов контроллера с компьютера
- Обновление прошивок в Modbus-устройствах Wiren Board
Разработчикам своих решений на базе контроллера
- Обновление прошивки, информация для разработчиков — про структуру разделов и сборку собственного fit-файла.
- Как разрабатывать ПО для Wiren Board — статья для программистов.
- Использование встроенного чипа ATECCx08 и статья по теме на Хабре
Список сервисов и их назначение
Список сервисов, запущенных на контроллере, их статус и описание можно получить командой:
systemctl list-units --type=service
Про управление сервисами читайте в статье Диагностика ошибок в работе контроллера.
Имя сервиса | Описание |
avahi-daemon.service | Avahi mDNS/DNS-SD Stack |
bluetooth.service | Bluetooth service |
cgmanager.service | Cgroup management daemon |
cron.service | Regular background program processing daemon |
dbus.service | D-Bus System Message Bus |
dnsmasq.service | dnsmasq - A lightweight DHCP and caching DNS server |
getty@tty1.service | Getty on tty1 |
hostapd.service | LSB: Advanced IEEE 802.11 management daemon |
kmod-static-nodes.service | Create list of required static device nodes for the current kernel |
knxd.service | KNX Daemon |
mosquitto.service | Mosquitto MQTT v3.1/v3.1.1 Broker |
netplug.service | LSB: Brings up/down network automatically |
networking.service | Raise network interfaces |
nginx.service | A high performance web server and a reverse proxy server |
ntp.service | LSB: Start NTP daemon |
rsyslog.service | System Logging Service |
serial-getty@ttymxc0.service | Serial Getty on ttymxc0 |
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 |