Да то же, но с другим временем:
timeout --foreground 60 mosquitto_sub -v -t /# | grep '"driver":"wb-rules"' |wc -l
Да то же, но с другим временем:
timeout --foreground 60 mosquitto_sub -v -t /# | grep '"driver":"wb-rules"' |wc -l
В ответ на команду получил: “39”
У меня обе команды выдают цифру 71
вроде бы да, почему бы и не глобальными переменными заменить часть виртуальных устройств, но не всегда подойдет - у меня панели управления домом реализованы на Iridium и он получает инфо с Wirenboard через MQTT, поэтому каждое значимое для расчета и отображения значение сохраняю в виртуальное устройство.
Например, вирт.устройство с прогнозом от яндекс.погоды не только участвует в сценариях отопления и освещения, но и поставляет информацию для скринсейвера панели управления.
Покопаю еще, конечно.
Плохо что не научился воспроизводить вот такие ошибки устойчиво.
А доступ к контроллеру через облако дадите?
отправил приглашение
Воспроизвести можно так: зайти в правило 04_temperature.js (одно из самых больших и с вирт.устройстами внутри), добавить пустую строку и нажать “Сохранить”.
p.s. На всяки - сейчас в облако зашел, чтобы отправить приглашение - увидел проблему - в /mnt/data осталось 500 мб. Но проблема из топика возникла до этого, с местом это уже что-то новое.
Получилось воспроизвести у себя.
May 26 12:58:06 wirenboard-AGH767IU wb-rules[18877]: INFO: reloading file: /etc/wb-rules/04_temperature.js
May 26 12:58:06 wirenboard-AGH767IU wb-mqtt-db[2810]: WARNING: [conventions] converting empty value to boolean "false"
May 26 12:58:17 wirenboard-AGH767IU wb-rules[18877]: ERROR: [wbgo_mqtt] MQTT token wait timeout: *mqtt.PublishToken (&{{{{0 0} 0 0 {{} 0} {{} 0}} 0x15d0d80 <nil>} 1993})
May 26 12:58:27 wirenboard-AGH767IU wb-rules[18877]: ERROR: [wbgo_mqtt] MQTT token wait timeout: *mqtt.PublishToken (&{{{{0 0} 0 0 {{} 0} {{} 0}} 0x15d0e40 <nil>} 1994})
May 26 12:58:28 wirenboard-AGH767IU wb-mqtt-serial[9776]: WARNING: [modbus] failed to read 1 input(s) @ 121 of device </dev/ttyRS485-2 115200 8 N 2> modbus:98: Serial protocol error: malformed response: invalid crc
May 26 12:58:37 wirenboard-AGH767IU wb-rules[18877]: ERROR: [wbgo_mqtt] MQTT token wait timeout: *mqtt.PublishToken (&{{{{0 0} 0 0 {{} 0} {{} 0}} 0x15d0f00 <nil>} 1995})
May 26 12:58:47 wirenboard-AGH767IU wb-rules[18877]: ERROR: [wbgo_mqtt] MQTT token wait timeout: *mqtt.PublishToken (&{{{{0 0} 0 0 {{} 0} {{} 0}} 0x15d1080 <nil>} 1996})
May 26 12:58:47 wirenboard-AGH767IU mosquitto[4861]: 1748264327: Client rules-wirenboard-AGH767IU-18877 disconnected: Broken pipe.
May 26 12:58:57 wirenboard-AGH767IU wb-rules[18877]: ERROR: [wbgo_mqtt] MQTT token wait timeout: *mqtt.PublishToken (&{{{{0 0} 0 0 {{} 0} {{} 0}} 0x15d1180 <nil>} 1997})
May 26 12:59:07 wirenboard-AGH767IU wb-rules[18877]: ERROR: [wbgo_mqtt] MQTT token wait timeout: *mqtt.PublishToken (&{{{{0 0} 0 0 {{} 0} {{} 0}} 0x15d1540 <nil>} 1998})
May 26 12:59:17 wirenboard-AGH767IU wb-rules[18877]: ERROR: [wbgo_mqtt] MQTT token wait timeout: *mqtt.PublishToken (&{{{{0 0} 0 0 {{} 0} {{} 0}} 0x15d16c0 <nil>} 1999})
May 26 12:59:27 wirenboard-AGH767IU wb-rules[18877]: ERROR: [wbgo_mqtt] MQTT token wait timeout: *mqtt.PublishToken (&{{{{0 0} 0 0 {{} 0} {{} 0}} 0x15d1740 <nil>} 2000})
Описал багу, отдал разработчикам.
Судя по тому что раздебажил (не факт что именно причина) - при подписке на большое количество топиков одновременно перестает (не успевает) обрабатываться результат предыдущей подписки.
Это связано не с количеством виртуальных устройств, а в целом с количеством топиков на контроллере?
Спрашиваю в том смысле, что нет же противопоказаний по большому количеству виртуальных устройств? А то уже думал может нужно мне менять концепцию… Я все настройки дома объявляю виртуальными устройствами - так очень удобно обращаться к ним из любого правила, и из сторонних систем, например Iridium.
Скорее с количеством обрабатываемых топиков в единицу времени. Что инетересно - в более производительныйх контроллерах, для примера в WB8 - подобное не воспроизводится.
Я проверял, если создаю ~200 топиков виртуальных устройств - работает с ними WB6 нормально. Если начинаю записывать в топики значения, чаще чем раз в секунду (больше 200 публикаций в секунду) - начинаются подтормаживания.
Баг в плане у разработчиков на текущий спринт. То есть - в работе.