Команды от iRidium


#1

Добрый день!
i3Pro.
Удалось получить от WB5 состояние контролла. Для это в bridge прописал:

topic /devices/LS2/controls/K1 both 2 “” /client/AZY4TD65

LS2 - это MR3.
Как я понимаю, строка both 2 передает функцию передачи данных туда и обратно. Т.е. этот топик можно считать, а также в него можно внести значение и WB должен его принять. ЕСЛИ я все правильно понял.

При включении реле с вэбморды в консоли mosquitto (Windows) я вижу:


и фидбэк на i3 подхватывает значение, появляется 1

%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5

все в порядке.
Но когда я отправляю команду, WB не реагирует:
%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5

в консоли я вижу сообщения от иридия:


но такое впечатление, что WB не подписан на это сообщение.
Что делаю не так?


#2

Я бы проверил это командой из терминала сервера с MQTT-брокером

mosquitto_pub -t "/client/AZY4TD65/devices/LS2/controls/K1/on" -m 1

Если проходит включение реле, значит надо что-то настраивать в Iridium.


#3

В бридже нет перенаправления на топик с /on на конце, который нужен для управления.
Может быть стоит просто написать /devices/#, чтобы перенаправлять все топики, начинающиеся с devices?


#4

Понял, спасибо! Вот только проверить не могу, я решил “доустановить” mosquitto, докачал библиотеки, попробовал запустить брокер в кач-ве службы… теперь он вообще не работает, выдает нечитаемую ошибку в какой-то кодировке.


Как только восстановлю или переустановлю, чтобы заработало хоть как-то попробую! Думаю все заработает.
А все девайсы я в начале слал, но вот логи не посмотреть в консоли, их забивают сообщения об изменении напряжения)) Ну я и выделил один и потом стал экспериментировать.
Быть может, подскажете ресурс, где было бы ясно написано как mosquitto на винду поставить по шагам? Я делал по этому:
http://www.steves-internet-guide.com/install-mosquitto-broker/


#5

Евгений)) Мне показалось, что как раз все настроил и у меня теперь брокер работает постоянно)
Только не понятно теперь как логи смотреть, ну и вообще состояние)
Но команды пошли. Я добавил в бридж топик /on - и … УРРРА!
Маленькое чудо - огромная радость) Спасибо!


#6

а я не знаю, как войти в терминал сервера( я теперь и логов не вижу, надо разбираться.


#7

Так как MQTT под Windows, то открываем cmd под Администратором,

заходим в директорию, где установлен брокер,
вызываем клиента командой mosquitto_sub


#8

Ошибка на открытие порта под ipv6. Скорее всего будет работать с этим.


#9

Ошибка у вас что-то про “разрешается только одно использование адреса сокета (протокол/сетевой адрес/порт)”.
Попробуйте задать ему конфиг явно:


В конфиге укажите address и port^
%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5


#10

я еще не очень силен в сетевых технологиях, но как я понял, у меня mosquitto просто в фоне постоянно запущено. Службой. Потому второй раз и не открывалось на этот же порт. Правда, при этом я не смог получить консоль, чтобы видеть что происходит( Вот сейчас пытаюсь настроить mqtt-spy, может смогу через него видеть текущее состояние для отладки. Может, если еще какие под Windows утилиты для работы с брокером, был бы рад совету)


#11

Для отладки можно порекомендовать сниффер Wireshark (это универсальное средство анализа трафика, но не заточенное специально под mqtt); попробуйте также Eclipse Mosquitto. Еще вариант – поставить виртуальную машину с Linux и развернуть на ней брокер.