Лишние устройства в веб-интерфейсе wb-homa-modbus

День добрый.

Разобрался с подключением устройств по RS485, но я наблюдаю странное поведение в ВЕБ-интерфейсе.
При открытии страницы http://wiren-board/#/devices я вижу дублирование устройств.
На странице отображается:
menu | wb-mr11 id-3
| wb-mr11 id-1
| wb-mr11 id-2
| wb-mr11 id-1

Вот конфиг:
{
“debug”: false,
“ports”: [
{
“path” : “/dev/ttyNSC1”,
“baud_rate”: 9600,
“parity”: “N”,
“data_bits”: 8,
“stop_bits”: 2,
“poll_interval”: 10,
“enabled”: true,
“devices” : [
{
“device_type” : “WB-MR11”,
“id”: “WB-MR11 id=1”,
“enabled”: true,
“slave_id”: 1
},
{
“device_type” : “WB-MR11”,
“id”: “WB-MR11 id=2”,
“enabled”: true,
“slave_id”: 2
},
{
“device_type” : “WB-MR11”,
“id”: “WB-MR11 id=3”,
“enabled”: true,
“slave_id”: 3
}
]
}
]
}

Где нужно подправить? Плюс еще в ВЕБ показывает устройство, которого нет в конфиге, ощущение, что он где-то закеширован.
Файл правлю в /etc/…

Добрый день!

Скорее всего оно у вас действительно закешировалось в MQTT, нужно всё почистить.
http://contactless.ru/wiki/index.php/MQTT#.D0.9E.D1.87.D0.B8.D1.81.D1.82.D0.BA.D0.B0_.D0.BE.D1.87.D0.B5.D1.80.D0.B5.D0.B4.D0.B8_.D1.81.D0.BE.D0.BE.D0.B1.D1.89.D0.B5.D0.BD.D0.B8.D0.B9

Кроме этого:

  1. id вручную задавать не нужно, они и сами неплохо генерируются .
  2. файл можно править не на диске, а через веб-интерфейс в Configs => Modbus

Я плохо наверное понимаю.
У меня нет каталога device, есть dev.

Чтобы я не запускал, все время один ответ:
root@wirenboard:/etc/init.d# mqtt-delete-retained ‘/dev/ttyNSC1/#’
/tmp/1457982228.524871/retain_hack
done!

У меня нет в интерфейсе config => modbus.

  1. плохо понимаете. Прочитайте пожалуйста всё статью целиком по ссылке выше.

вызывать вы должны что-то типа

mqtt-delete-retained "/devices/WB-MR11 id=1/controls/#"

/devices - это не каталог в файловой системе. В статье всё написано.

  1. А Configs => Serial Device Driver Configuration ? Что у вас вообще есть в configs?

Буду перечитывать вдумчиво…

Вот скрин с моего WB. У меня 4…

Очень старая прошивка.

http://contactless.ru/wiki/index.php/Обновление_прошивки

До статьи не добрался, но обновил образ флешки.
Обновился: апдейт, апгрейд.
Возникает ошибка с linux-latest.
Unpacking linux-image-4.1.15-imxv5-x0.1 (from …/linux-image-4.1.15-imxv5-x0.1_4.1-imxv5-x0.1+wb20160301144946_armel.deb) …
dpkg: error processing /var/cache/apt/archives/linux-image-4.1.15-imxv5-x0.1_4.1-imxv5-x0.1+wb20160301144946_armel.deb (–unpack):

  • trying to overwrite ‘/boot/dtbs/imx23-wirenboard28.dtb’, which is also in package linux-image-3.19.0-imxv5-x0.1 3.19-imxv5-x0.1+wb20160207172608*
    dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
    Errors were encountered while processing:
  • /var/cache/apt/archives/linux-image-4.1.15-imxv5-x0.1_4.1-imxv5-x0.1+wb20160301144946_armel.deb*
    E: Sub-process /usr/bin/dpkg returned an error code (1)

Удаление пакета не помогает.
root@wirenboard:/home# apt-get -f remove linux-image-3.19.0-imxv5-x0.1
Reading package lists… Done
Building dependency tree
Reading state information… Done
You might want to run ‘apt-get -f install’ to correct these:
The following packages have unmet dependencies:
linux-latest : Depends: linux-image-4.1.15-imxv5-x0.1 (>= 4.1-imxv5-x0.1+wb20160301144946) but it is not going to be installed

Сделайте apt-get -f install чтоб исправились зависимость.
Потом удаляете разом все пакеты старого ядра (они друг от друга зависят, поэтому по одиночке не удаляются) и ставите новое:
apt-get remove linux-{firmware-,}image-3.19-imxv5-x0.1 linux-latest apt-get install linux-latest

Вах…
Спасибо добрый человек.
Теперь стало чуточку понятнее в этом мире.
Все получилось

Добрый день!
Столкнулся с подобной проблемой. Имею WB5 и WB-MR11. На борде стоит последняя прошивка, при подключении релейного модуля оно появляется в девайсах (вэб интерфейс), но почему то горит красным цветом, и не передает команды. Пробовал добавить ручками, изменив конфиг в SDDC, слейв айди автоматом там не ставится, как написано выше, надо делать руками. В общем таким образом я добавил себе три устройства, но ни одно из них почему то не может нормально индетифицироваться. Пробовал удалять кеш, как написано в инструкции, в итоге ситуация не изменилась. Подскажите пожалуйста, в какую сторону копать данную проблему? Спасибо.


Jun 7 04:11:17 wirenboard user.notice serial: TRegisterHandler::Poll(): warning: Serial protocol error: failed to read discrete @ 8 [slave_id is 1(0x1)]
Jun 7 04:11:17 wirenboard user.notice serial: TRegisterHandler::Poll(): warning: Serial protocol error: failed to read discrete @ 9 [slave_id is 1(0x1)]
Jun 7 04:11:18 wirenboard user.notice serial: TRegisterHandler::Poll(): warning: Serial protocol error: failed to read discrete @ 10 [slave_id is 1(0x1)]
Jun 7 04:11:18 wirenboard user.notice serial: TRegisterHandler::Poll(): warning: Serial protocol error: failed to read input @ 32 [slave_id is 1(0x1)]
Jun 7 04:11:19 wirenboard user.notice serial: TRegisterHandler::Poll(): warning: Serial protocol error: failed to read input @ 33 [slave_id is 1(0x1)]
Jun 7 04:11:19 wirenboard user.notice serial: TRegisterHandler::Poll(): warning: Serial protocol error: failed to read input @ 34 [slave_id is 1(0x1)]
Jun 7 04:11:20 wirenboard user.notice serial: TRegisterHandler::Poll(): warning: Serial protocol error: failed to read input @ 35 [slave_id is 1(0x1)]
Jun 7 04:11:20 wirenboard user.notice serial: TRegisterHandler::Poll(): warning: Serial protocol error: failed to read input @ 36 [slave_id is 1(0x1)]
Jun 7 04:11:21 wirenboard user.notice serial: TRegisterHandler::Poll(): warning: Serial protocol error: failed to read input @ 37 [slave_id is 1(0x1)]
Jun 7 04:11:21 wirenboard user.notice serial: TRegisterHandler::Poll(): warning: Serial protocol error: failed to read input @ 38 [slave_id is 1(0x1)]
Jun 7 04:11:22 wirenboard user.notice serial: TRegisterHandler::Poll(): warning: Serial protocol error: failed to read input @ 39 [slave_id is 1(0x1)]
Jun 7 04:11:22 wirenboard user.notice serial: TRegisterHandler::Poll(): warning: Serial protocol error: failed to read input @ 40 [slave_id is 1(0x1)]
Jun 7 04:11:23 wirenboard user.notice serial: TRegisterHandler::Poll(): warning: Serial protocol error: failed to read input @ 41 [slave_id is 1(0x1)]
Jun 7 04:11:23 wirenboard user.notice serial: TRegisterHandler::Poll(): warning: Serial protocol error: failed to read input @ 42 [slave_id is 1(0x1)]
Jun 7 04:11:24 wirenboard user.notice serial: TRegisterHandler::Poll(): warning: Serial protocol error: failed to read input @ 121 [slave_id is 1(0x1)]
Jun 7 04:11:24 wirenboard user.notice serial: TRegisterHandler::Poll(): warning: Serial protocol error: failed to read coil @ 0 [slave_id is 1(0x1)]
Jun 7 04:11:25 wirenboard user.notice serial: TRegisterHandler::Poll(): warning: Serial protocol error: failed to read coil @ 1 [slave_id is 1(0x1)]
Jun 7 04:11:25 wirenboard user.notice serial: TRegisterHandler::Poll(): warning: Serial protocol error: failed to read coil @ 2 [slave_id is 1(0x1)]
Jun 7 04:11:26 wirenboard user.notice serial: TRegisterHandler::Poll(): warning: Serial protocol error: failed to read coil @ 3 [slave_id is 1(0x1)]
Jun 7 04:11:26 wirenboard user.notice serial: TRegisterHandler::Poll(): warning: Serial protocol error: failed to read coil @ 4 [slave_id is 1(0x1)]
Jun 7 04:11:27 wirenboard user.notice serial: TRegisterHandler::Poll(): warning: Serial protocol error: failed to read coil @ 5 [slave_id is 1(0x1)]
Jun 7 04:11:27 wirenboard user.notice serial: TRegisterHandler::Poll(): warning: Serial protocol error: failed to read coil @ 6 [slave_id is 1(0x1)]
Jun 7 04:11:28 wirenboard user.notice serial: TRegisterHandler::Poll(): warning: Serial protocol error: failed to read coil @ 7 [slave_id is 1(0x1)]
Jun 7 04:11:28 wirenboard user.notice serial: TRegisterHandler::Poll(): warning: Serial protocol error: failed to read coil @ 8 [slave_id is 1(0x1)]
Jun 7 04:11:29 wirenboard user.notice serial: TRegisterHandler::Poll(): warning: Serial protocol error: failed to read coil @ 9 [slave_id is 1(0x1)]
Jun 7 04:11:29 wirenboard user.notice serial: TRegisterHandler::Poll(): warning: Serial protocol error: failed to read coil @ 10 [slave_id is 1(0x1)]
Jun 7 04:11:30 wirenboard user.notice serial: TRegisterHandler::Poll(): warning: Serial protocol error: failed to read holding @ 8 [slave_id is 1(0x1)]
Jun 7 04:11:30 wirenboard user.notice serial: TRegisterHandler::Poll(): warning: Serial protocol error: failed to read discrete @ 0 [slave_id is 1(0x1)]
Jun 7 04:11:31 wirenboard user.notice serial: TRegisterHandler::Poll(): warning: Serial protocol error: failed to read discrete @ 1 [slave_id is 1(0x1)]
Jun 7 04:11:31 wirenboard user.notice serial: TRegisterHandler::Poll(): warning: Serial protocol error: failed to read discrete @ 2 [slave_id is 1(0x1)]
Jun 7 04:11:32 wirenboard user.notice serial: TRegisterHandler::Poll(): warning: Serial protocol error: failed to read discrete @ 3 [slave_id is 1(0x1)]
Jun 7 04:11:32 wirenboard user.notice serial: TRegisterHandler::Poll(): warning: Serial protocol error: failed to read discrete @ 4 [slave_id is 1(0x1)]
Jun 7 04:11:33 wirenboard user.notice serial: TRegisterHandler::Poll(): warning: Serial protocol error: failed to read discrete @ 5 [slave_id is 1(0x1)]
Jun 7 04:11:33 wirenboard user.notice serial: TRegisterHandler::Poll(): warning: Serial protocol error: failed to read discrete @ 6 [slave_id is 1(0x1)]
Jun 7 04:11:34 wirenboard user.notice serial: TRegisterHandler::Poll(): warning: Serial protocol error: failed to read discrete @ 7 [slave_id is 1(0x1)]
Jun 7 04:11:34 wirenboard user.notice serial: TRegisterHandler::Poll(): warning: Serial protocol error: failed to read discrete @ 8 [slave_id is 1(0x1)]
Jun 7 04:11:35 wirenboard user.notice serial: TRegisterHandler::Poll(): warning: Serial protocol error: failed to read discrete @ 9 [slave_id is 1(0x1)]
Jun 7 04:11:35 wirenboard user.notice serial: TRegisterHandler::Poll(): warning: Serial protocol error: failed to read discrete @ 10 [slave_id is 1(0x1)]
Jun 7 04:11:36 wirenboard user.notice serial: TRegisterHandler::Poll(): warning: Serial protocol error: failed to read input @ 32 [slave_id is 1(0x1)]
Jun 7 04:11:36 wirenboard user.notice serial: TRegisterHandler::Poll(): warning: Serial protocol error: failed to read input @ 33 [slave_id is 1(0x1)]
Jun 7 04:11:37 wirenboard user.notice serial: TRegisterHandler::Poll(): warning: Serial protocol error: failed to read input @ 34 [slave_id is 1(0x1)]
Jun 7 04:11:37 wirenboard user.notice serial: TRegisterHandler::Poll(): warning: Serial protocol error: failed to read input @ 35 [slave_id is 1(0x1)]
Jun 7 04:11:38 wirenboard user.notice serial: TRegisterHandler::Poll(): warning: Serial protocol error: failed to read input @ 36 [slave_id is 1(0x1)]

На устройствах есть наклейки, на наклейках написан заводской slave_id. Вы его вписываете в соответствующей поле в веб-интерфейсе при добавлении девайса.

что это значит?

что это значит?

Спасибо, устройство корректно добавилось.

Вы писали ранее в этом топике:

Serial Device Driver Configuration

Сейчас у меня отображается четыре устройства MR11, три с тем slave_id которое я указывал произвольно, и одно которое написано на наклейке. Те устройства в которых были указаны произвольные значения slave_id так и остались “висеть”. mqtt-delete-retained их не удаляет, в конфигурационных файлах их нет, ребут так же не помог. Эти устройства (неправильные) теперь всегда будут отображаться?

Я думаю дело в неправильном вызове mqtt-delete-retained. Покажите пожалуйста как вызываете.

Да, Вы оказались правы!
команда была следующей:
mqtt-delete-retained ‘/devices/wb-mr11/#’
изменил на:
mqtt-delete-retained ‘/devices/wb-mr11_22/#’
то есть дописал тот id который присваивал ранее, устройства удалились.
Спасибо.

Подниму похожую тему.
Есть огромная куча устройств в ветке /devices/oregon_xxxx
При попытке удаления, первые два устройства подряд удаляться почти со 100% вероятностью (т.е. удаляю первое устройство, все норм, удаляю второе устройство - тоже норм, удаляю третье или пятое - повис), остальные как получиться, повисает на данном этапе и прерывается по Ctrl+C. Процесс mqtt-delete-retained грузит проц до 75%. После прерывания по Ctrl+C даю команду еще раз, просто повторяю её и все норм, удалено. Что я делаю не так? Лог ниже.

root@wirenboard:~# mqtt-delete-retained '/devices/oregon_rx_2b95_95_5/#' /devices/oregon_rx_2b95_95_5/meta/name /devices/oregon_rx_2b95_95_5/controls/low_battery /devices/oregon_rx_2b95_95_5/controls/low_battery/meta/readonly /devices/oregon_rx_2b95_95_5/controls/low_battery/meta/type /tmp/1485258184.8914656/retain_hack /devices/oregon_rx_2b95_95_5/controls/low_battery/meta/readonly /devices/oregon_rx_2b95_95_5/controls/low_battery/meta/type /devices/oregon_rx_2b95_95_5/meta/name /devices/oregon_rx_2b95_95_5/controls/low_battery done! ^CTraceback (most recent call last): File "/usr/bin/mqtt-delete-retained", line 88, in <module> rc = client.loop() File "/usr/lib/python2.7/dist-packages/mosquitto.py", line 725, in loop rc = self.loop_write(max_packets) File "/usr/lib/python2.7/dist-packages/mosquitto.py", line 986, in loop_write rc = self._packet_write() File "/usr/lib/python2.7/dist-packages/mosquitto.py", line 1380, in _packet_write write_length = self._sock.send(packet.packet[packet.pos:]) KeyboardInterrupt root@wirenboard:~#
и повтор

root@wirenboard:~# mqtt-delete-retained '/devices/oregon_rx_2b95_95_5/#'
/tmp/1485258987.1454669/retain_hack
done!
root@wirenboard:~#

Добрый день! Вы все делаете так, я уверен!

А вот попробуйте обновить mqtt-tools:

apt-get update
apt-get install mqtt-tools