Добрый день! Примерно полгода уже в относительно фоновом по причине загрузки другими задачами режиме пытаюсь разобраться в написании правил wb-rules. И то, что по началу казалось ощущением или подозрением, к сегодняшнему дню сформировалось практически в уверенность. В уверенность в том, что по данному функционалу отсутствует полноценная документация, которой можно доверять.Да, есть примеры правил, есть описание движка в wiki и на GitHub, но…
На GitHub показано, как создавать виртуальные устройства, описана часть задаваемых при их создании параметров. Но почему нельзя там же описать все возможные параметры и специфику их возможных значений? Про параметр “order” там - вообще ни слова, а он крайне полезен. Какие значения допустимы для precision - тоже не ясно, хотя для ряда применений было бы полезно округлять не до десятых долей целого, а даже до десятков или сотен. Из чьих-то примеров скриптов на портале поддержки недавно узнал, что существует параметр “format”, однако какие значения для него допустимы и как их задание влияет на соответствующий канал(топик) - пойди догадайся. Для dev есть еще, оказывается, параметр “extra” в котором может быть указано “invert”, но информации об этом просто нет.
Про то, что ссылки с GitHub в части описания доступных конструкций языка ведут на недоступный портал es5.javascript.ru, я уже писал несколько недель назад, но ссылка так и висит. С того же GitHub идем по ссылке на обучающий портал и видим там в числе прочего указание на конструкцию “const”, которую, однако, интерпретатор не понимает, хоть при редактировании правила и наборе “cons” сам предлагает подставить зарезервированное слово.
На русскоязычной исходной странице GitHub видим ссылку на Wiren Board MQTT Conventions на том же GHiHub, но не понимаем, почему содержимое данного документа нельзя было перевести на русский? Для Вас же это - ключевой рынок. Или нет?
Есть масса, вроде бы, простых вопросов, которые, думаю, возникают у очень многих, но ответы на них найти крайне непросто. Например, имеет у виртуального устройства канал(топик) кода состояния с типом “value”, и заполненной коллекцией “enum”, соответствующей каждому из допустимых значений. Вопрос: как в log() вывести не целочисленное значение кода состояния, а человеко-понятное его описание? Не нашел ответа.
В части того же округления численных значений - приличное количество упоминаний на конструкции с “parseFloat” и “toFixed()”, которые можно использовать только через copy/paste, поскольку описаний логики их работы нет ни в одном из найденных мной упоминаний на портале поддержки. А, по-хорошему, это базово описано д.б. где-то.
Web-интерфейс позволяет использовать несколько файлов-скриптов правилами, однако нет никакой информации о зонах видимости идентификаторов в них. Есть только упоминание о том, что обрабатываются файлы последовательно.
Есть неплохой раздел с примерами правил, есть пример отправки сообщений через Telegram и, вроде бы, было бы логично тут же показать и обратные возможности с приемом сообщений через Telegram-бота, ибо давным давно сделано это было, но такого нет. Та же история и с отправкой SMS.
Есть и еще примеры в “ту же копилку”. На странице контроллера на официальном сайте есть вкладка “Видео”, в которой выложены действительно хорошо продуманные видеоролики с ответами на типовые вопросы. Только вот по ходу повествования речь регулярно идет о каких-то “комментариях под видео”, которых во вкладке нет. Как нет, кстати, и ссылки на эти видео из WB_FAQ, где предлагается ролики от вас и партнеров посмотреть.
Понятно, что ваш конёк - оборудование. Здесь реально круто все, и с точки зрения аппаратной части, и в части гарантийно-сервисной поддержки. И развитие движка правил, возможно, не самое приоритетное направление. Только реально грустно от того, что документация-то, вроде бы, есть, но обрывками. Не всякий человек сможет разобраться во всех этих нюансах, да и захочет ли… А на выходе получится - что? Криво написанные скрипты, а ругать за кривую работу будут не их автора, а оборудование, название которого - на каждому устройстве…
P.S. Прошу прощения, если резко что-тот прозвучало. Но накопилось уже ![]()
