Ошибка в конфигурационном файле wb-mqtt-serial.conf после обновления

Здравствуйте!
произошла ошибка после обновления wb-mqtt-serial не могу открыть конфигурационный файл в web интерфейсе. при переходе в конфигурацию выводится сообщение:
Error loading the file: Invalid config file.

обновился следующим образом:

apt-get install wb-mqtt-serial wb-mqtt-homeui

версия wb-mqtt-serial:

                                                                                                                        root@wirenboard:~# dpkg -s wb-mqtt-serial                                                                               
Package: wb-mqtt-serial                                                                                                 
Status: install ok installed                                                                                            
Priority: optional                                                                                                      
Section: misc                                                                                                           
Installed-Size: 975                                                                                                     
Maintainer: Evgeny Boger <boger@contactless.ru>                                                                         
Architecture: armel                                                                                                     
Version: 1.36                                                                                                           
Replaces: wb-homa-modbus (<< 1.14.1)                                                                                    
Depends: libc6 (>= 2.4), libgcc1 (>= 1:4.4.0), libjsoncpp0, libmosquitto1 (>= 1.0), libmosquittopp1 (>= 1.0), libstdc++6
 (>= 4.6), libwbmqtt0 (>= 1.7), bsdutils                                                                                
Breaks: wb-homa-modbus (<< 1.14.1), wb-mqtt-confed (<< 1.0.2), wb-mqtt-homeui (<< 1.7)                                  
Conffiles:                                                                                                              
 /etc/wb-mqtt-serial.conf.sample c8c1adbf630e6fd7ec871b1b5c4a5e0f                                                       
 /etc/wb-configs.d/11wb-mqtt-serial 5325e375bc486e31384ed908b8ceae0e                                                    
 /etc/init.d/wb-mqtt-serial 1f9b627c559013269cc29a32ef738448                                                            
Description: Wiren Board Smart Home MQTT serial protocol driver.                                                        
~~~

конфигурационный файл я выслал на support.

попробуйте ещё посмотреть лог-файл с ошибками, как обычно:

tail -n 200 -f /var/log/messages

после запуска команды, откройте файл через веб-интерфейс и посмотрите подробную ошибку в выводе команды.
Я бы предположил, что дело в странных

 "type": null,

в конфиге

файл messages отправил на support. а что нужно сделать с типами данных? я собственно ничего руками не менял в этом файле.

удалить строчки “type”: null

1 лайк

Большое спасибо! Помогло! Но тогда вопрос: откуда эти строки там взялись?

тоже самое…type:null -откуда взялось - не понятно.
обновлял apt-get update &upgrade
в меню вызвал - оставить старый конфиг - и все равно…
поправьте - раздражают такие обновления. каждый раз форум по этой ветке читать…

и еще - какой командой вызвать такое же меню при обновлении wb-mqtt-serial - табличка с выбором -что делать с конфигом?

спасибо, исправим. Ошибки в wb-mqtt-serial сейчас случаются чаще, чем раньше от того, что над ним ведётся активная работа. Как такового стабильного репозитория у нас (пока) нет, стабильными считаются только релизы прошивки.

опять же после обновления -

  1. при перезапуске wb-mqtt-confed. такого ранее не было
    wirenboard daemon.info wb-mqtt-confed[3796]: ERROR: Invalid config file /etc/wb-mqtt-dac.conf
    wirenboard daemon.info wb-mqtt-confed[3796]: ERROR: - channels: Array must have at least 1 items

wb-mqtt-dac.conf - нет в /etc/ и никогда не было - где его взять/установить?

  1. 7:07:59 wirenboard daemon.info wb-rules[4024]: INFO: MQTT connection established
    7:07:59 wirenboard daemon.info wb-rules[4024]: ERROR: command ‘/bin/sh -c echo 3 > /sys/class/pwm/pwmchip0/export’ failed with exit status 1
    7:08:23 wirenboard daemon.info wb-rules[4096]: INFO: MQTT connection established
    7:08:23 wirenboard daemon.info wb-rules[4096]: ERROR: command ‘/bin/sh -c echo 3 > /sys/class/pwm/pwmchip0/export’ failed with exit status 1
    и вот это что еще за… не было такого

Очень странно. Уверены, что файла нет?

Покажите пожалуйста

dpkg -l wb-mqtt-dac
ls -l /etc/wb-mqtt-dac.conf
root@wirenboard:/mnt/data/root# dpkg -l wb-mqtt-dac
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                Version        Architecture   Description
+++-===================-==============-==============-============================================
ii  wb-mqtt-dac         1.0            all            wb-rules-based IIO DAC driver for WB MQTT

root@wirenboard:/mnt/data/root# ls -l /etc/wb-mqtt-dac.conf
-rw-r–r-- 1 root root 61 Mar 29 2016 /etc/wb-mqtt-dac.conf


получается что есть...

у всех такой файл? у меня пишет на закладке Digital Output, что  Error loading the file: Invalid config file
wb-mqtt-daс.conf
{
    "device_name" : "Analog Outputs",
    "channels" : []
}

Как интересно. Евгений, а нет ли в планах полностью переписать текущую архитектуру, чтобы драйвера можно было делать в виде сторонних бинарных модулей? :slight_smile:

ой, а зачем?

Да я всё про свою Астру. Не теряю надежду добавить поддержку в wb-mqtt-serial, так и на одной шине с чем-то ещё её можно будет использовать, если повезёт с оборудованием.
Ну и, кажется, в целом может упростить дальнейшую разработку драйверов — не нужно будет особо вникать в архитектуру wb-mqtt-serial, достаточно будет освоить публичное C-API.

wb-mqtt-serial - это сейчас принципиально про master-slave протоколы. Ваша Астра такая?

Вкладка касается тонкой настройки модулей аналоговых выходов. Если модулей у вас нет, то и обращать внимание на это не стоит.

Да. Но исходник публиковать нельзя :frowning:

Кроме мастер-слейв, там ещё и регистровая модель подразумевается. Т.е. что-то сильно отличающееся по концепции от модбаса туда натягивается сложно.
Если на регистры натягивается, то простое решение - сделать модуль в wb-mqtt-serial на плюсах, который будет уже использовать (хоть в рантайме вручную через dlopen) внешний бинарник на C.
Модуль пишется примерно так: https://github.com/contactless/wb-mqtt-serial/blob/master/s2k_device.cpp

В принципе и нативная поддержка внешних бинарных плагинов на C++ прикручивается к wb-mqtt-serial довольно тривиально, другое дело, что у нас пока такого в планах нет.

На регистры уже не натянуть, к сожалению. Ок, спасибо.

А если модуль есть и ошибка такая присутствует?

1 лайк

+1