Но не вижу его в гуях Вайрена. А скриптом увижу? Где вообще почитать (в смысле документацию)?
Вот это про мою тему, но мне не нужен KNX. Как быть?
Спасибо!
да. В общем для производного топика необходимым является “type”.
Но это не лучший путь, можно просто подписаться из правил на произвольный(или группу) по любому пути, не обязательно соответствующие конвенциии. Существует специальный способ trackMqtt
Возвращает как путь к изменившемуся топику так и новое значение.
Дополнения, отличающие wb-rules от JS описаны тут: GitHub - wirenboard/wb-rules: Rule engine for Wiren Board
Как я понимаю - получен уже объект. С ним не получается работать?
Я замучился подправлять zmeventnotification.pl, чтобы получить нужный топик в нужном месте. Но это вопроса не решило, т.к. прилетает содержимое типа того, что в начале темы. Покурю в ссылку, может, получится что-нибудь.
ZM 1.36.13. EventServerd в пятницу только с гита. Всё это на VM на Proxmox. При обучении память и ядра лопает знатно. GPU ещё не пробовал прокинуть в неё.
Надо в конфиге /etc/mosquitto/mosquitto.conf поменять persistence true на persistence false
Затем перезапустить контроллер.
Ну и для полного порядка после перезагрузки удалить /mnt/data/var/lib/mosquitto/mosquitto.db
Надо в конфиге /etc/mosquitto/mosquitto.conf поменять persistence true на persistence false
Затем перезапустить контроллер.
Ну и для полного порядка после перезагрузки удалить /mnt/data/var/lib/mosquitto/mosquitto.db
Ни на что не повлияло. Как только
trackMqtt(“/devices/3/controls/#”
совпадает с тем, что прилетает от ZM, начинается Ошибка записи файла: MQTT RPC request timed out MqttTimeoutError в вэб-интерфейся и всякие спецэффекты, описанные ранее.
//https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse
var text = '{"eventtype": "event_start", "hookvalue": 0}'
log.info (JSON.parse(text))
Возвращается объект, к его элементам можно по именам обращаться.
ЗЫ движок форма кавычки испортил, поэтому для примера пару элементов взял.
> trackMqtt("Zoneminder/#", function(message){ //Эта фигня самостоятельна и работает без всяких возбудителей типа whenChanged и таймеров
> foo = JSON.parse(message.value) //Распарсиваем содержимое в содержательной части и пихаем в некий 'foo'
> dev["ZM/topic"] = message.topic; //Часть содержимого, где про топик (помним, что путь к топику заканчивается #)
> dev["ZM/monitor"] = foo["monitor"]; //Достаём из message.value значение 'monitor'
> dev["ZM/eventtype"] = foo["eventtype"]; // -**- 'eventtype'
> dev["ZM/eventid"] = foo["eventid"];
> dev["ZM/detection"] = foo["name"];
> dev["ZM/detected"] = foo["detection"]["labels"][((foo["detection"]["labels"].length)-1)]; //ZM отдаёт результаты опознания в виде массива, см. начало темы. Мы получаем кол-во элементов вещественным числом, а нумерация начинается с нуля. Поэтому вычитаем 1 и вынимаем последний элемент.
> });
Вот. Отчитался.
Но с точки зрения контроля доступа -лажа.
Потому, что выходя нельзя поворачиваться к вызывной панели лицом. Оно тут же откроет дверь…
Придётся добавлять голос.
Просто добавлю голос. Вызывная панель в режиме камеры отдаёт серверу звук тоже. Раз уж всё равно пришлось GPU в ZM втыкать - пусть анализирует. По результатам могу доложиться.