Переименование топиков в MQTT


#22

Пока как временное решение - свой conf-файл для устройства с контролами без пробелов.


#23

пробелы и кириллица всегда зло) Я теперь тоже сделал свои конфиги и все пробелы убрал.


#24

попробовал два варианта пробелов.
http://jkorpela.fi/chars/spaces.html
Скрипты их понимают, отображают в логах верно, бридж не ругается. Но брокер их все-равно не видит. Пробелов в юникоде много, потому да, не использовать, наверное лучший вариант. Ну а производителям, получается, все топики переименовать, пробелы лучше заменить на _. Или, быть может, кто-то найдет какой именно этот “тот самый” пробел) Но везде, где видел по mosquitto - не использовать.

PS. Попробовал явно задать пробел \u0020 и в бридже и в темплейте. Отобразилось в морде норм, бриджо не сглючило, но брокер не принимает. Он сам что-то с пробелами у себя делает, причем не трет, проверил.


#25

Брокер их не то чтобы не понимает, он их понимает как топик с этими символами и ждёт их, но так как их физически нет, то и отображать нечего.


#26

как вы поняли, что брокер ждет топик с пробелом, что он этот пробел не преобразовал к чему-то и не ждет вот это преобразованное значение, которое не совпадает с тем, что в бридже?


#27
  1. bridge не падает
  2. Подписавшись на этот топик на брокере мы его не наблюдаем

Можно для чистоты эксперимента создать control с “\u0020” вместо пробела и он должен считаться.
У меня это не вышло, так как я это стал делать через Виртуальное устройство (проверку синтаксиса не прошло)
Возможно это получится если создать через конфигурационный файл устройства.


#28

я это делал:

“PS. Попробовал явно задать пробел \u0020 и в бридже и в темплейте. Отобразилось в морде норм, бридж не сглючило, но брокер не принимает. Он сам что-то с пробелами у себя делает, причем не трет, проверил.”

не принимает, в смысле не реагирует на изменения этого топика