Как разрабатывать ПО для Wiren Board
Замечание: эта статья про то, как создавать новое программное обеспечение для Wiren Board, и предназначена для программистов:
- Читайте описание стандартного ПО Wiren Board на странице Программное обеспечение Wiren Board,
- Используйте встроенную систему правил для написания правил и сценариев.
- Используйте Ansible для быстрого развёртывания однотипных инсталляций.
Окружение
Все контроллеры Wiren Board поставляются с полноценным Debian Linux. Архитектура процессора: armhf (Wiren Board 6) или armel (Wiren Board 5 и раньше). На контроллере используется libc версии 2.13.
Установку ПО рекомендуется производить с помощью пакетного менеджера Debian, и упаковывать ПО в deb-пакеты
Общие соображения
В зависимости от комплектации контроллеры Wiren Board 6 имеют 512 или 1024 MB оперативной памяти, контроллеры Wiren Board 7 — 512, 1024 или 2048 MB. Это значит, что необходимо учитывать потребление памяти при разработке своих программ. Про то, как контролировать потребление памяти в Linux читайте на сайте http://www.linuxatemyram.ru/.
Сборка пакетов и программ
Сборку программ рекомендуется производить на компьютере с Linux, используя специальное окружение для разработки. Компиляция и разработка непосредственно на контроллерах Wiren Board не рекомендуется из-за маленького объёма оперативной памяти.
Тулчейн (toolchain)
Если ваша программа не имеет внешних зависимостей от библиотек операционной системы, то для её сборки можно установить тулчейн.
- для Wiren Board 6 и выше: AArch32 target with hard float (arm-linux-none-gnueabihf)
- для Wiren Board 5 и ниже: arm-linux-none-gnueabi
Скачать тулчейн для вашей операционной системы можно на сайте ARM.COM
В дистрибутивах Linux необходимые тулчейны обычно уже доступны как пакеты. Например, для Ubuntu или Debian тулчейн можно установить командой:
apt install gcc-arm-linux-gnueabihf
Окружение для разработки
Окружение для разработки удобно использовать для сборки программ с внешними зависимостями от системных библиотек, для упаковки программ как Debian-пакетов и для удобной сборки под несколько версий Wiren Board. Это рекомендуемый и самый удобный способ.
Окружение предоставляется в виде Docker-контейнера, а для его использования в Linux существует удобный скрипт wbdev .
При использовании окружения, кросс-компиляция не нужна. Скрипт wbdev автоматически запускает соответствующие команды в виртуализованном окружении с архитектурой armel, соответствующей архитектуре процессора в контроллере Wiren Board.
Сборка пакетов производится с помощью вызова wbdev , например так:
$ wbdev chroot #запустить виртуализованное qemu сhroot окружение с Debian 7 архитектуры armel $ wbdev make # вызвать make в виртуализованном qemu chroot окружении $ wbdev cdeb # собрать пакет, написанный на C++ в виртуализованном qemu chroot окружении $ wbdev gdeb # собрать пакет, написанный на Go, с использованием кросс-компиляции Go $ wbdev ndeb # собрать архитектурно-независимый пакет, например содержащий проект на Python
Полное описание работы с окружением смотрите в документации на Github.
Полезные ссылки
- Сборка ядра
- Сборка образов прошивки
- Обновление прошивки для разработчиков — структура разделов eMMC и сборка собственного fit-файла.
- Уникальные идентификаторы — для идентификации устройства, привязки софта
- Использование встроенного чипа ATECCx08 — аппаратное хранилище ключей
- Узнать степень износа внутреннего накопителя
- Пересборка Device Tree
Программное обеспечение контроллеров Wiren Board
Контроллеры Wiren Board поставляются с полноценной операционной системой Debian Linux и предустановленным ПО, с помощью которого можно решить большинство задач автоматизации.
Возможности ПО в комплекте:
- мультиязычный адаптивный веб-интерфейс с графическими и текстовыми дашбордами;
- создание скриптов автоматизации на JavaScript-подобном языке с помощью wb-rules;
- модуль уведомлений по SMS и Email;
- хранение истории полученных контроллером значений с выгрузкой в CSV и графиками;
- поддержка популярных протоколов устройств: Modbus RTU/TCP, KNX, Zigbee, Z-Wave, OpenTherm, DLMS/COSEM и др.;
- обмен данным с системами верхнего уровня по протоколам MQTT, Modbus RTU/TCP, OPC UA, МЭК 104 и др.;
- обновление прошивки контроллера и установка сторонних пакетов из репозитория Debian Linux: Docker, NodeJS, Python и т.п.
О веб-интерфейсе читайте в статье Веб-интерфейс контроллеров Wiren Board, а поддерживаемые протоколы смотрите в документации.
Дополнительно
Контроллеры Wiren Board можно программировать на языках МЭК 61131-3 (FBD, ST, LD, SFC), используя среды разработки MasterSCADA 4D, ISaGRAF, CODESYS и KLogic. Подробнее.
Для сбора, обработки и хранения информации об объекте, а также мониторинга и диспетчерского контроля на основе полученных данных, можно использовать SCADA-системы SAYMON, Zabbix, Grafana, IntraSCADA, MasterSCADA, SimpLight SCADA, Rapid SCADA и другие.
Поддерживается сторонее ПО для домашней автоматизации: Node-RED, Home Assistant, IntraHouse, Apple Home, iRidium Server и другие. Полный список поддерживаемого ПО с инструкциями по установке смотрите в документации.
- Контроллеры
- Модули для контроллеров
- Датчики
- Модули реле WB-MR
- Многоканальные счетчики электроэнергии
- Диммеры для освещения
- Сетевые карты для холодильников
- Прочие устройства
- Комплектующие
- Демо-комплект
- Снято с производства
- Восстановленные устройства
- WIRENBOARD PRO
- Прайс-лист
Условия покупки
Общие положения
1. Настоящие Правила продажи разработаны на основании Гражданского кодекса РФ, Закона РФ от 7 февраля 1992 г. № 2300-1 «О защите прав потребителей», постановления Правительства РФ от 27 сентября 2007 г. № 612 «Об утверждении правил продажи товаров дистанционным способом» и иных нормативно-правовых актов. Настоящие правила регулируют порядок розничной купли-продажи Товаров через Интернет-магазин, являясь публичной офертой, адресованной физическим и юридическим лицам («Покупателям»).
2. Покупатель принимает условия, изложенные в настоящих правилах путем оформления Заказа на сайте Интернет-магазина.
Заказ считается оформленным надлежащим образом в случае, если Покупателем предоставлена Продавцу следующая информация: Фамилия, Имя, Покупателя, телефон, адрес по которому следует доставить Товар, наименование Товара, количество.
2.1. Покупатель предоставляет Продавцу право использования всех переданных в Заказе персональных данных с целью выполнения своих обязательств перед Покупателем, формирования и развития программы лояльности для Покупателей, информирования Покупателей о новостях Интернет-магазина. Под правом использования в настоящих правилах понимается право Продавца на: сбор, запись, систематизацию, накопление, хранение, уточнение (обновление, изменение), извлечение, использование, обезличивание, блокирование, удаление, уничтожение данных с правом передачи таких данных третьим лицам без дополнительного уведомления Покупателя.
3. При продаже товаров дистанционным способом Продавец предлагает Покупателю услуги по доставке Товаров Службами доставки. При этом конкретная Служба доставки для каждого Заказа определяется Покупателем при оформлении заказа.
Доставка осуществляется в будние дни с 9:00 до 18:00. Сроки доставки зависят от выбранного региона и составляют от 1 до 14 рабочих дней (не считая дня заказа). Срок доставки может быть увеличен в случаях, предусмотренных правилами работы Службы доставки. Доставка осуществляется без демонстрации. Если Вы не согласны со сроками доставки, то Вы вправе отказаться от своего заказа в любое время до его получения.
Ознакомиться с тарифами на доставку по регионам можно на сайте курьерских служб: СДЭК, КСЭ, EMS.
В случае отказа Покупателя от Товара с Покупателя взимается стоимость доставки в соответствии с тарифом согласно пункту 21 Постановления Правительства Российской Федерации от 27.09.2007 № 612 «Об утверждении правил продажи товаров дистанционным способом».
При получении Товара от Службы доставки Покупатель обязан проверить внешний вид упаковки Товара (на отсутствие деформации, вскрытия). При получении Товара Покупатель ставит свою подпись в квитанции о доставке в графе: «Я подтверждаю, что отправление принято в закрытом виде, отсутствуют внешние повреждения упаковки, перевязи, печатей (пломб), вес отправления соответствует весу, определенному при его приеме».
В случае обнаружения каких-либо дефектов на упаковке Товара Покупатель обязан сделать об этом отметку в квитанции курьера в графе доставка. После получения Заказа и проставления подписи Покупателем в квитанции в графе доставка без указания претензии к внешнему виду упаковки Товара, претензии к внешним дефектам упаковки (ее вскрытию и возможной некомплектности Товара) не принимаются.
4. Оплата заказанных Товаров осуществляется:
- Банковским переводом по счету выставленному для Покупателя.
- Пластиковой картой по ссылке, сгенерированной для Покупателя.
- Оплата по QR-коду, сгенерированному для Покупателя (оплачивая заказ данным способом, вы соглашаетесь с условиями Договора публичной оферты).
5. Обработка заказов производится в рабочие дни с 10:00 до 18:00 по Московскому времени. В случае если Вы оформили заказ после 18:00 по Московскому времени, менеджеры свяжутся с Вами на следующий рабочий день после 10:00 часов утра.
6. Товар надлежащего качества, Вы можете вернуть согласно условиям возврата.
Для этого необходимо написать электронное письмо с заявлением на возврат/обмен на info@wirenboard.com.
Обращаем внимание, что при отказе Покупателя от Товара, Продавец возвращает сумму, уплаченную Покупателем за Товар, за исключением расходов Продавца на доставку от Покупателя возвращенного Товара, не позднее, чем через 10 дней с даты предъявления соответствующего требования.
7. Гарантийный срок на Товар устанавливается в размере 24 месяцев с даты отгрузки.
8. Риск случайной гибели или случайного повреждения Товара переходит к Покупателю в момент передачи ему Товара и проставления Покупателем подписи в документах, подтверждающих доставку Заказа. Право собственности на Товар переходит к Покупателю в момент передачи Товара, при условии его полной оплаты.
9. К отношениям между Покупателем и Продавцом применяется законодательство Российской Федерации.
10. Продавец оставляет за собой право вносить изменения в настоящие Правила продажи, в связи с чем Покупатель обязуется регулярно отслеживать изменения в Правилах, размещенных на сайте Интернет-магазина. Уведомление об изменении настоящих Правил продажи Продавец обязан разместить не позднее, чем за 7 (семь) календарных дней до даты их вступления в силу.
11. Покупатель гарантирует, что все условия настоящих Правил продажи ему понятны, и он принимает их безусловно и в полном объёме.
12. Недействительность какого-либо положения настоящих Правил не влечет за собой недействительность остальных положений.
13. Все возникающее споры Стороны будут стараться решить путем переговоров, при недостижении соглашения спор будет передан на рассмотрение в арбитражный суд г. Москвы в соответствии с действующим законодательством РФ.