Никак.
@Kuzminov_Sergey
Установил для теста на Windows пока, все вроде разобрался (за телеграмм отдельное спасибо), но не могу подключиться к MQTT брокер, причем на этом же брокере работают подключения с других систем без проблем, может проблема в логине/пароле ?
Странно, что перед закрытием соединения нет сообщения о причине ошибки. Должно быть “Mqtt not authorized” или “Mqtt bad user name or password”. Я проверял работу MQTT на сайте rightech.io и с паролем и без пароля. В данном случае я не знаю в чем причина, может действительно не подходит логин/пароль. А что за брокер mqtt?
@Kuzminov_Sergey
Получилось подключиться к clusterfly.ru, попробую разобраться почему в локальный не пускает. Протестирую на виндовс, затем попробую уже поставить через докер на сам контроллер и если будет время написать краткую инструкцию по подключению.
@Kuzminov_Sergey
В процессе разработки шаблона столкнулся с идентификатором датчика который назначен на зону, можно ли добавить в MQTT идентификацию, например ((дым, контакт, движение, присутствие, тревожная кнопка и тд) и вывести в брокер?
Также может получится вывести состояние самих приборов С2000 и тд (вскрытие, потеря связи и тд)
Спасибо.
А как это сделать? Сам ПП не может определить тип извещателя. В любом случае это придется задавать вручную либо в программе HUB-C2000PP, либо на стороне мониторинга MQTT. А на стороне мониторинга MQTT это трудно сделать? Просто есть ли смысл публиковать статическую информацию.
Может публиковать тип зоны из конфигурации ПП? Но это не совсем то, что вы хотите.
1 - состояние ШС (здесь может быть что угодно: дым, температура, движение, …);
2 - состояние КЦ (контролируемой цепи, т.е. реле с контролем на обрыв/КЗ);
3 - состояние прибора;
4 - вкл/выкл автоматики;
5 - дистанционный пуск;
6 - температура/влажность;
7 - счетчик импульсов;
8 - РИП напряжение и ток.
Есть статическая информация, которая уже есть в конфигурации HUB-C2000PP и которую возможно имеет смысл опубликовать - это текстовое описание зон. Например так:
pp/zone/name/n [Текстовое описание]
pp/relay/name/n [Текстовое описание]
pp/part/name/n [Текстовое описание]
где n - номер зоны/раздела/реле.
Сделать? Будет ли это полезно?
Чтобы вывести состояния самих приборов, нужно в конфигурации ПП добавить зоны, у которых номер шлейфа равен нулю, а тип зоны: 3.
@Kuzminov_Sergey
Если Болид не умеет передавать тип датчика, то лучше конечно добавить этот параметр в конфигурате, а в шаблоне мы сделаем универсальный, который любой может загрузить а в конфигуратор HUB-C2000PP указать нужны тип. Можно например так сделать топик:
Тип датчика:
Пример: pp/zone/type/34 = 1
где датчик движения = 1, датчик контакт = 2, датчик дыма = 3, датчик газа = 4, датчик температуры/влажности = 5 и тд
А в описание добавить на какой именно объект в зоне установлена
Пример: pp/zone/desc/34 = “окно”
Где в описании указать: “окно”, “дверь”, “замок” и тд.
Думаю этих двух параметров будет достаточно чтобы сделать для них универсальный шаблон и прокинуть на HomeKit (Spruthub, Алису и тд)
- По поводу публикации доп информации и 8 пунктов выше, если будет возможность добавить их - хуже не станет, дать только возможность пользователю выбрать галочкой топики какие хочет публиковать.
Сделал тестовую версию. В архиве два исполняемых файла для замены для версии win64. Вот что добавил:
@Kuzminov_Sergey
Спасибо, проверю.
Можно ли описание в топик descr добавить (или можно создать новый топик) описание где именно стоит датчик, те например 1-окно, 2-дверь 3 - свое название?
Тк сейчас в descr используется название зоны, и если нужно указать что данная зона является окном или дверью, приходится полностью стирать название зоны и вместо него ставить, что в дальнейшем путает и тяжело распознать название зоны оригинальное.
Те в данном случае если можно добавить еще один топик object
pp/zone/object/34 = “окно”
Два описания на одну зону будет многовато. Можно в одно описание вложить весь смысл где и что: “Окно, кухня” или “Кухня, окно”.
Или добавить для зоны топик с номером раздела, а описание из раздела брать.
Например раздел “Кухня”, а в него входят две зоны с описаниями “Окно” и “Дверь”.
Может получится сделать такой вариант:
Окно, Дверь - убираем и не используем.
При интеграции в (Spruthub, Homekit) - при поиске нельзя взять значение и сравнить с чем-либо, можно только смотреть на сам топик. Предлагаю такой вариант
Как сделано сейчас:
pp/zone/type/60 = 1
pp/zone/descr/60 = Контакт кухня (окно)
Как можно сделать:
Топик pp/zone/type/n - удалить или оставить по желанию.
Сделать топики:
pp/zone/descr/60/3 = Магнитоконтактный, где 60 - номер шлейфа(зоны), 3 - тип датчика, = Магнитоконтактный - название датчика (здесь название передаем, тк скорее всего топик с пустым значением не заработает)
pp/zone/descr/60 = Контакт кухня (окно), где 60 - номер шлейфа(зоны), = Контакт кухня (окно) - название шлейфа(зоны)
Сам шаблон для интеграции в систему умный дом (HomeKit, Spruthub, Алиса и тд), пока описан тип движение, контакт и реле, все остальные позже как протестируем:
pp-bolid-v1.json (2,9 КБ)
А почему не подходит pp/zone/type/n = 3?
Мне кажется, что pp/zone/descr/n/3 будет сложнее для поиска, т.к нужно будет искать все топики вида:
pp/zone/descr/n/1
…
pp/zone/descr/n/255
А в первом варианте просто посмотреть значение топика pp/zone/type/n.
Я конечно могу сделать как предлагаете, но как-то странно это. Да и если изменить тип извещателя, то на брокере окажется два топика с разными номерами типа извещателя.
SprutHub работает от обратного - проверяется существование топика по шаблону) и так для каждого из присутствующих шаблонов.
Если получится так сделать, то это решит проблему.
Здравствуйте, была возможность сделать?
Здравствуйте.
Я считаю неправильным публиковать значение топика в его имени. Если изменить тип извещателя, то на брокере для этого извещателя окажутся два разных топика с разними типами извещателя в имени топика. Топик удалить ведь нельзя, нужно перезагружать брокера для удаления лишних топиков, а это костыль.
Добрый день, к сожалению так устроена работа систем автоматизации (Spruthub, Homekit и тд), даже топики Wirenboard если обратите внимание заканчиваются с такой же структурой, те номер канала и его тип указывается напрямую в названии топика пример: K1, Input 2
Те в данном случае суть MQTT в большинстве случае для того чтобы интегрировать их в такие системы, но интегрировать напрямую с полной поддержкой не получится. Пример наверху выкладывал шаблон по которому УД считывают.
Варианты интеграции конечно же есть, можно создать отдельные скрипты, виртуальные устройства и все же закинуть (такой вариант будет индивидуальным для каждого клиента), что не даст возможности по умолчанию загрузить и работать из коробки любому пользователю.
В моем варианте - я сделаю без проблем, но это решение не поможет остальным, прийдется также вручную вычленять типы устройств через скрипты (в данном случае это можно сделать через правила wirenboard), но если у клиента другая система или контроллер, у него будет свой индивидуальный вариант интеграции, шаблон ему здесь не поможет наш.
Здесь имеется ввиду что он создаст после изменения два топика вида?
pp/zone/descr/60/3 = Магнитоконтактный
pp/zone/descr/60/1 = Объемный
В самом конфигураторе нельзя удалять старый при изменении типа?
Да, будут два таких топика. Удаление топика в MQTT не предусмотрено, нужно перезагружать брокера. Попробую поискать как обойти данную проблему, может я чего-то не знаю.
Явной команды на удаление топика нет, но похоже, что если опубликовать топик с пустым значением, то этот топик будет удален. Попробую.
Отлично, можно так попробовать.