Проблема с удалением MQTT Channels


#1

Добрый день!
Вход контроллера A1 сконфигурировал для подключения импульсного счетчика. К сожалению сделал это несколько раз с разными именами и не записал в них никаких значений. Теперь столкнулся с проблемой удаления этих созданных mqtt channels.
В файле /etc/wb-homa-gpio.conf убрал все счетчики с клеммы A1 и выполнил команду mqtt-delete-retained. Но эта команда сработала не для всех channel
Нужно удалить выделенные каналы:


Результат выполнения команды mqtt-delete-retained для каждого из них:

Подскажите как их удалить?


#2

Добрый день!
А точно топики остались, а не просто это кеш бразуера?
Проверить можно, запросив топики из консоли https://wirenboard.com/wiki/index.php/MQTT#.D0.9F.D1.80.D0.B8.D0.BC.D0.B5.D1.80_.D0.BF.D0.BE.D0.B4.D0.BF.D0.B8.D1.81.D0.BA.D0.B8


#3

image
Ничего не приходит при отправке команды.
Жестко обновлял браузер с очисткой кэша - топики на месте.


#4

Можете из другого браузера или с другого устройства попробовать?


#5

В другом браузере аналогично


Сценарий воспроизведения проблемы (примерный):

  1. Создать счетчик на входе А1 с именем А1_1 и GPIO 109 в /etc/wb-homa-gpio.conf.
  2. Убедиться, что этот счетчик появился в Devices и MQTT Channels
  3. В счетчик записывать ничего не нужно, он должен остаться на 0.
  4. Удалить этот счетчик только из /etc/wb-homa-gpio.conf. Сохранить и создать новый счетчик с другим именем А1_2.
  5. Убедиться, что счетчик появился в Devices и MQTT Channels
  6. Снова не трогая счетчик удалить его из /etc/wb-homa-gpio.conf.
  7. Теперь попробовать очистить очередь сообщений через mqtt-delete-retained
  8. Удалить или вообще не получиться или получится удалить только последний созданный счетчик. (этот момент точно не запомнил)

#6

а выполните
mosquitto_sub -v -t '#' | grep total
и пришлите вывод.


#7

image


#8

Что видим: топики остались.
Почему они могли не удалиться через mqtt-delete-retained? Например, потому что там была русская A.
В итоге, рекомендую через консоль и grep найти все ненужные топики, потом удалить через mqtt-delete-retained, скопировав их названия.

root@wirenboard-AQZBLNTY:~# mosquitto_sub -v -t '#' | grep total
/devices/wb-gpio/controls/А1_1_total/meta/type water_consumption
^C
root@wirenboard-AQZBLNTY:~# mosquitto_sub -v -t '#' | grep total
/devices/wb-gpio/controls/А1_1_total/meta/type water_consumption
^C
root@wirenboard-AQZBLNTY:~# mqtt-delete-retained '/devices/wb-gpio/controls/А1_1_total/#'
100% [#################################################################] 1 of 1
root@wirenboard-AQZBLNTY:~# mosquitto_sub -v -t '#' | grep total
^C
root@wirenboard-AQZBLNTY:~# 

#9

Это помогло удалить 4 из 6 топика

root@wirenboard-ARXJPDFM:~# mosquitto_sub -v -t '#' | grep total
/devices/wb-gpio/controls/A1_watt_total/meta/type power_consumption
/devices/wb-gpio/controls/W1_watt_total 13.00
/devices/wb-gpio/controls/W1_watt_total/meta/type power_consumption
/devices/wb-gpio/controls/W2_watt_total/meta/type power_consumption
/devices/wb-gpio/controls/EXT1_IN1_total 47.00
/devices/wb-gpio/controls/EXT1_IN1_total/meta/type power_consumption
/devices/wb-gpio/controls/A1_total/meta/type power_consumption

root@wirenboard-ARXJPDFM:~# mqtt-delete-retained '/devices/wb-gpio/controls/A1_total/meta/type/#'
100% [#################################################################] 1 of 1
root@wirenboard-ARXJPDFM:~# mqtt-delete-retained '/devices/wb-gpio/controls/A1_watt_total/meta/type/#'
100% [#################################################################] 1 of 1

root@wirenboard-ARXJPDFM:~# mosquitto_sub -v -t '#' | grep current
/devices/wb-gpio/controls/A1_watt_current/meta/type power
/devices/wb-gpio/controls/W1_watt_current 0.00
/devices/wb-gpio/controls/W1_watt_current/meta/type power
/devices/wb-gpio/controls/W2_watt_current/meta/type power
/devices/wb-gpio/controls/EXT1_IN1_current 0.00
/devices/wb-gpio/controls/EXT1_IN1_current/meta/type power
/devices/wb-gpio/controls/A1_current/meta/type power

root@wirenboard-ARXJPDFM:~# mqtt-delete-retained '/devices/wb-gpio/controls/A1_watt_current/meta/type/#'
100% [#################################################################] 1 of 1
root@wirenboard-ARXJPDFM:~# mqtt-delete-retained '/devices/wb-gpio/controls/A1_current/meta/type/#'
100% [#################################################################] 1 of 1

Теперь осталось удалить " A1" и " A1_watt" (выделены синим)


#10

И сразу спрошу, пока увидел.
На входах W1 и W2 тоже висят счетчики, но почему отличаются отображение? (выделены зеленым на предыдущем снимке)
Они сконфигурированы одинаково /etc/wb-homa-gpio.conf:
{
“channels”: [
{
“name”: “W1_watt”,
“gpio”: 11,
“direction”: “input”,
“inverted”: true,
“type”: “watt_meter”,
“decimal_points_current”: 2,
“multiplier”: 1,
“decimal_points_total”: 2,
“initial_state”: false
},
{
“name”: “W2_watt”,
“gpio”: 108,
“direction”: “input”,
“inverted”: true,
“type”: “watt_meter”,
“multiplier”: 1,
“decimal_points_current”: 2,
“decimal_points_total”: 2,
“initial_state”: false
},
{
“name”: “EXT1_IN1”,
“gpio”: 256,
“direction”: “input”,
“inverted”: false,
“type”: “watt_meter”,
“multiplier”: 1,
“decimal_points_total”: 2,
“decimal_points_current”: 2,
“initial_state”: false
},
{
“name”: “EXT1_IN2”,
“gpio”: 257,
“direction”: “input”,
“inverted”: false
},
{
“name”: “EXT1_IN3”,
“gpio”: 258,
“direction”: “input”,
“inverted”: false
},
{
“name”: “EXT1_IN4”,
“gpio”: 259,
“direction”: “input”,
“inverted”: false
},
{
“name”: “EXT1_IN5”,
“gpio”: 260,
“direction”: “input”,
“inverted”: false
},
{
“name”: “EXT1_IN6”,
“gpio”: 261,
“direction”: “input”,
“inverted”: false
},
{
“name”: “EXT1_IN7”,
“gpio”: 262,
“direction”: “input”,
“inverted”: false
},
{
“name”: “EXT1_IN8”,
“gpio”: 263,
“direction”: “input”,
“inverted”: false
},
{
“name”: “EXT1_IN9”,
“gpio”: 264,
“direction”: “input”,
“inverted”: false
},
{
“name”: “EXT1_IN10”,
“gpio”: 265,
“direction”: “input”,
“inverted”: false
},
{
“name”: “EXT1_IN11”,
“gpio”: 266,
“direction”: “input”,
“inverted”: false
},
{
“name”: “EXT1_IN12”,
“gpio”: 267,
“direction”: “input”,
“inverted”: false
},
{
“name”: “EXT1_IN13”,
“gpio”: 268,
“direction”: “input”,
“inverted”: false
},
{
“name”: “EXT1_IN14”,
“gpio”: 269,
“direction”: “input”,
“inverted”: false
}
],
“device_name”: “Discrete I/O”
}


#11

А что помешало удалить

?

Подпишитесь на топики, связанные с ними, - мне кажется, что у одного из них не будет хватать топиков с описанием, или типа того.


#12

Не знаю что помешало.
И не знаю как правильно обратиться: mosquitto_sub -v -t ‘#’ | grep ???

9zrXagVAJxS5C80X0Y.png)
Вроде все есть
image


#13

Ещё раз про корень проблемы: когда вы выполняете mqtt-delete-retained, вы ему в параметры пишете неверное имя топика (например, русскую А вместо латинской, или наоборот, или ещё какой-то символ идёт не тот). Поэтому я вам предлагаю найти полное имя этого топика и скопировать (!), не писать руками. Например, оно есть в веб-интерфейсе. Либо можно запросить все топики mosquitto_sub -v -t '#', и в них найти нужный. Проще всего найти, пропустив все топики через поиск grep по любому слову (например, если ищете A1_watt, то пишите watt).


#14

Попробуйте очистить кэш и обновить страницу, либо просто зайти из нового браузера (например, с сотового) - так проверите, что разница в отображении не из-за кеша страницы в браузере.
А потом давайте посмотрим на соответствующие топики, отображающиеся по-разному: A1_watt и W1_watt. Запросите все топики, связанные с ними, через

mosquitto_sub -v -t '#' | grep A1_watt
mosquitto_sub -v -t '#' | grep W1_watt

#15

Еще до обращения к Вас, писал имя топика не руками, а копировал из вэб-интерфейса. Но что-то тогда не сработало. Сейчас удалил ненужные топики.
Подскажите, ничего лишнего не осталось?


#16

Вы правы, топики у W1 и W2 отличаются. Но почему? ведь конфигурировались они одинаково.
Как исправить отличия?
image


#17

Не хватает только /meta/type switch для W2_watt, насколько я вижу (order не надо трогать). Создайте его руками через mosquitto_pub, либо попробуйте отменить настройки счётчика, а потом вернуть обратно.
Думаю, он мог удалиться во время попыток по удалению лишних топиков.


#18

Удалил оба счетчика W1_watt и W2_watt и создал заново.
Получилось вот так:
image


#19

Когда настраивал возник вопрос: в чем разница между watt_meter, water_meter, и если ничего не выбрать в “Pulse counter type (if any)” при настройке счетчика в /etc/wb-homa-gpio.conf?


#20

Как я понимаю, планировалось отображать это в интерфейсе по-разному. Для вас разницы быть не должно.