Есть топики вида {“device_ID”:“001202099”,“DT_UNIX”:15000002222,“Temp 1-wire”:25.5}
Как можно их ‘отлавливать’ и разбирать?
Добрый день!
Вы имеете в виду из движка правил?
Как самый простой вариант, ДА
А вообще подойдет любой вариант с пояснениями
Идея такая:
Получаем по подписке топика, типа AAA/BBB/CCC - json {“device_ID”:“001202099”,“DT_UNIX”:15000002222,“Temp 1-wire”:25.5}
Парсим и получаем значение, например DT_UNIX
И решаем включать или нет реле.
Если эти данные прилетают в топик с именем “/devices/ЧТО-НИБУДЬ/controls/ЧТО-НИБУДЬ-ЕЩЁ/on” , то их можно принять и разобрать в движке правил, в противном случае придётся писать какой-нибудь отдельный скрипт или программу на любимом языке программирования.
- Какие операторы существуют в правилах для работы со строками (для парсинга)?
- Как можно использовать скрипты и т.д. для отлавливания топиков и работы с ними?
Добрый день!
Парсинг json:
var json = '{"result":true,"count":1, "test":2}',
obj = JSON.parse(json);
log(obj.result);
log(obj.count);
log(obj.test);
Про работу с топиками читайте тут: https://contactless.ru/wiki/index.php/%D0%94%D0%B2%D0%B8%D0%B6%D0%BE%D0%BA_%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D0%BB_wb-rules
Супер. Спасибо.
В том то и дело что в Вики мало что есть.
На Wiki мы стараемся специфичные вещи писать, а так изучение ECMAScript /Javascript даст понимание базовых вещей.
Помогите решить задачу:
- Чтение данных rs485
- Получение сообщений json из ‘нестандартных’ топиков
- Парсинг топиков
- Обработка данных
По отдельности получается я знаю как решить, а вот вместе не склеивается
- Самое простое решение - через встроенный драйвер и получить топики “/devices/ЧТО-НИБУДЬ/controls/ЧТО-НИБУДЬ-ЕЩЁ/param-1”
2.3. Встроенного нет. Из того что я умею это python. Есть опыт subscribe, парсинг и потом в базу sql.
Но не умею запускать скрипты в качестве сервиса. И если скрипт падает, то прекращается вся обработка. И требуется постоянный контроль запущенного скрипта.
Какие решить?
Ну если умеете в питон - то вот я делал драйвер, который опрашивает wifi розетки и постит в mqtt
Большое спасибо
С питоновским файлом все понятно. Но я всегда запускал из командной строки (или автозапуск на Винде) и не понятно куда и что в линуксе. А у Вас там ещё куча файлов. Зачем они и куда их класть?
Погуглите sysvinit, это система запуска скриптов на WB5. И поймете, зачем там другие файлы.
И, в общем, если захотите что-то сделать на WB продвинутое - то придется чутьчуть изучать линукс. Либо продавать его и смотреть в сторону другой платформы. (где со временем тоже придется что-то изучать)
Основной файл там один - wb-mqtt-orvibo.py, а остальное - это скрипты для инициализации и запуска этого файла в виде демона. Для разработки и отладки вам достаточно одного этого файла. А как все будет готово - можно повторить структуру файлов/каталогов, как у меня в репозитории и собрать из него .deb пакет.