Перейти к содержанию

Навигация

Wb-rules: различия между версиями

Нет описания правки
Строка 2: Строка 2:
== Описание ==
== Описание ==
[[File:Wb rules demo.png|300px|thumb|right|Редактирование правил в веб-интерфейсе]]
[[File:Wb rules demo.png|300px|thumb|right|Редактирование правил в веб-интерфейсе]]
{{note|note| Читайте полное описание движка правил на [https://github.com/wirenboard/wb-rules Github].}}
Wb-rules это специальный сервис в контроллере Wiren Board, который работает поверх операционной системы и позволяет создавать сценарии управления с помощью правил на языке JavaScript ([https://es5.javascript.ru/ ECMAScript 5]).
Wb-rules это возможность писать правила на языке JS ([https://es5.javascript.ru/ ECMAScript 5]). В первую очередь нужно понимать, что такое JS. Знать синтаксис, как происходит работа с функциями, переменными и основными языковыми конструкциями. Подробнее про язык можно узнать в официальном учебнике https://learn.javascript.ru/


Если вы не готовы программировать, возможно вам стоит попробовать создавать правила в среде [[Node-Red | Node-RED]].
Wb-rules установлен в контроллер по умолчанию и запускается автоматически. Управлять им можно из консоли контроллера, о чем подробнее написано в статье [[How to diagnose#Управление сервисами | Диагностика ошибок в работе контроллера Wiren Board]].


Если ваше правило не работает или показывает красным строку и вы не понимаете причину, то возможно вы можете получить дополнительную информацию в [[Wiren_Board_Web_Interface#logs|Системном журнале]], который можно отфильтровать по имени сервиса — wb-rules.
Альтернатива правилам wb-rules для создания сценариев управления — среда графического программирования [[Node-Red | Node-RED]].


По умолчанию движок правил wb-rules предустановлен на контроллер и запускается автоматически. Но вы можете управлять им самостоятельно из консоли контроллера, читайте подробнее в статье [[How to diagnose#Управление сервисами | Диагностика ошибок в работе контроллера Wiren Board]].
== Как создавать и редактировать правила ==
Файлы с правилами хранятся в контроллере в папке <code>/etc/wb-rules/</code> с расширением '''.js'''. Их можно [[Просмотр файлов контроллера с компьютера|редактировать и загружать их напрямую с компьютера]], а также использовать встроенный в [[Wiren Board Web Interface | веб-интерфейс]] редактор правил на вкладке '''Rules'''.


== Как создавать и редактировать правила ==
Для написания правил необходимы базовые знания синтаксиса языка JavaScript. Если вы ранее не работали с JavaScript, то рекомендуем учебник [https://learn.javascript.ru/ learn.javascript.ru].
 
Каждое правило представляет собой функцию на языке JavaScript с определенным набором входных параметров. Выполнение правила происходит при наступлении заданного события или циклически. Подробное описание типов правил и механизма их работы читайте в [https://github.com/wirenboard/wb-rules документации на Github].


Правила хранятся на контроллере в папке <code>/etc/wb-rules/</code>, поэтому вы можете [[Просмотр файлов контроллера с компьютера|редактировать и загружать их напрямую с компьютера]] или использовать [[Wiren Board Web Interface | веб-интерфейс]], вкладка '''Rules'''.
Для создания правила:
#Откройте вкладку '''Rules''' в веб-интерфейсе контроллера.
#Создайте новый файл правил или откройте стандартный '''rules.js'''.
#Напишите скрипт или вставьте код из примера.
#Нажмите кнопку '''Сохранить'''.


Если в правиле нет ошибок, оно начинает работать сразу после сохранения файла.
Если в правиле нет ошибок, оно начинает работать сразу после сохранения файла.


Подробнее о создании правил и возможностях wb-rules, читайте в [https://github.com/wirenboard/wb-rules документации на Github].
==Если правило не работает==
[[File:Web-Rules-2.0 errors.png|300px|thumb|right|Подсветка ошибок в редакторе правил wb-rules]]
Если написанный скрипт не работает:
#Проверьте еще раз знаки пунктуации, количество открывающихся и закрывающихся скобок, возможные ошибки в написании имен переменных. Обычно синтаксические ошибки подсвечиваются красным, но некоторые могут быть пропущены компилятором.
#Проверьте правильность написания ссылок на [[MQTT | MQTT]]-топики.
#Уточните правильно ли выбран тип правила.
 
Если правило не работает или показывает красным строку и вы не понимаете причину, то вы можете получить дополнительную информацию в [[Wiren_Board_Web_Interface#logs|Системном журнале]], который можно отфильтровать по имени сервиса — wb-rules.
 
==Дополнительная информация==


Примеры правил смотрите:
Примеры правил:
* в статье [[Rule_Examples|Примеры правил]];
* в статье [[Rule_Examples|Примеры правил]];
* в [http://forums.contactless.ru/t/dvizhok-pravil-primery-koda/483 специальной теме на портале техподдержки];
* в [http://forums.contactless.ru/t/dvizhok-pravil-primery-koda/483 специальной теме на портале техподдержки];
translator, wb_editors
4218

правок