Добрый день!
Извиняюсь, что отвечаю с такой задержкой.
Обсудили с коллегами, решили так:
идея, безусловно, хорошая. Но если делать, то имеет смысл сразу реализовать нормальную поддержку Home Assistant. Пока не готовы выделить под это ресурсы, заняты другими задачами.
Но идею запомнили.
Доброго дня!
Подскажите, как-то изменилась ситуация по данному вопросу?
Спасибо.
Здравствуйте! К сожалению, пока данный вопрос без изменений: в ближайший планах нет реализации полноценной поддержки Home Assistant.
Накидал скрипт который это делает на wb-rules - https://github.com/MatkovIvan/wb-homeassistant
Пока только для serial девайсов, на днях допилю до ума, но может кому пригодится даже в таком состоянии
cc @sag3ll0
Упс, по дефолту приватный создал. Исправил
Добрый день!
Пробовала выполнить скрипт - получаю ошибку
Ошибка правила: TypeError: invalid base value
duk_hobject_props.c:2000
registerDevice /etc/wb-rules/mqtt_autodiscovery.js:127
anon /etc/wb-rules/mqtt_autodiscovery.js:144 preventsyield
forEach native strict preventsyield
anon /etc/wb-rules/mqtt_autodiscovery.js:145 preventsyield
forEach native strict preventsyield
registerSerialDevices /etc/wb-rules/mqtt_autodiscovery.js:146
anon /etc/wb-rules/mqtt_autodiscovery.js:150 preventsyield
С чем это может быть связано? В системе зарегистрированы только реле. Все виртуальные устройства удалены.
Заранее спасибо
Ещё вопрос - удалось ли вам нормально скрестить димер светодиодных лент WB с Home Assistant? Все варианты шаблонов работаю с «глюками», главным образом из-за того, что HA пытается при включении слать дополнительное сообщение на включения вместо записи RGB/on r;g;b одной командой. Приходится колхозить через виртуальные устройства. Может есть нормальный готовый вариант ?
Подозреваю, что аналогичная проблема возникнет с мосфет-димером.
Привет.
Судя по всему по ид не может найти девайс из конфига, странно. Надо будет добавить проверки на это и логи по хорошему
Виртуальные девайсы не должны мешать, у самого их много.
Диммера светодиодных лент у меня нет, проверить не могу.
Здравствуйте. Там беда в имени устройства: нельзя пробелы и точки, надо строчку
var deviceId = "{}_{}".format(device.device_type, device.slave_id).toLowerCase()
заменить на
var deviceId = "{}_{}".format(device.device_type, device.slave_id).toLowerCase().replace('.', '').replace(' ', '-');
Должно помочь.
У меня в таком формате устройства тоже не находятся (почему, собственно, необходим именно такой формат?). А вот так вполне себе начинает работать:
var deviceId = device.id;
добрый день, а не подскажете как этим пользоваться?
Копируете скрипт в /etc/wb-rules/
(я делаю это через Winscp на Windows’e или по адресу fish://root@<ip_контроллера>/
в файловом менеджере на линуксе с KDE) и всё - он сразу запустится. Он будет выполнен движком wb-rules.
Посмотреть, как всё прошло, можно в логе. В веб-интерфейсе Настройки -> Системный журнал
. Чтобы быстрее найти логи движка wb-rules, в фильтре вместо “все сервисы” выберите “wb-rules.sevice”, а вместо “Все сеансы”, выберите самый первый из списка.
спасибо, это я уже сделал… вот судя по всему у меня не работает автодискавери… подскажите как поправить?
подскажите, как включить автодискавери???
В Home Assistant autodiscovery включено по умолчанию. Правильно ли у Вас настроена интеграция с mqtt?
См. здесь пункт " Установка MQTT-интеграции":
думаю правильно) те если руками в configuration.yaml я добавляю сущности - все работает.
но вот новых сущностей нет:
cat /etc/mosquitto/conf.d/bridge1.conf
connection bridge1
#address of server
address 10.10.30.152
notifications true
notification_topic /client/wb/bridge1_status
remote_username {логин}
remote_password {пасс}
restart_timeout 20
topic /devices/# both 0 “” /wb
Перепроверьте файл /etc/wb-mqtt-serial.conf
, там нет такого поля как вы пишите. Скорее всего у Вас сработала предыдущая версия.
почему, собственно, необходим именно такой формат?
Иcходя из данных этого конфига нужено получить ид который используется в имени топика контролов - /devices/.../controls
.
Предыдущая версия у меня как раз не нашла устройство, т.к. такое поле у меня имеется:
"device_type" : "WB-MR6CU",
"id" : "Relay_1",
"slave_id" : "67"
Собственно, я же сам его и заполнял при добавлении serial устройства:
Т.е., получается ответ на мой вопрос, что при отсутствии данного поля, необходимо конструировать ID в том формате, если же поле есть, нужно просто использовать его значение.