Просьба подсказать как правильно настроить обмен по Modbus TCP между WB7 и SprutHub. Базовые вводные:
WB7 настроен, обновлен на текущую дату, работает. Сервер модбас на 502 порту запущен, работает, его я вижу и через консоль отдельные параметры могу читать;
SH (через stick на MOD4) настроен, работает (обмен по MQTT проходит, устройства вижу). Настроен на SH Modbus TCP контроллер - ошибок не выдает, сервер на WB7 видит.
SH не находит устройства на Modbus TCP, а при добавлении в ручную пишет устройство недоступно (хотя я могу прочесть отдельные проброшенные топики, если вручную прописываю адрес, регистр). Думаю, что не совсем корректно понимаю настройку Modbus на WB7. По умолчанию в Шлюз MQTT - Modbus RTU/TCP slave попадают все устройства и автоматом каждому отдельному параметру присваиваются ID данных Modbus и Начальный адрес. С ID данных Modbus понятно и если я хочу получать данные по одному адресу, просто всем параметрам присваиваю одинаковый адрес. А что на счет Начальный адрес? и остальных параметров? надо ли их править?
При настройках ниже я не могу считать данные в SH (при использовании соответствующего шаблона, и в целом не видит устройство). Подскажите, пож-та, как правильно настроить?
Прежде чем разбирать настройки шлюза, уточню главное: зачем вам в этой схеме Modbus TCP?
Вы упомянули, что MQTT уже настроен и устройства в Sprut.hub видны. Это и есть основной способ интеграции контроллера со Sprut.hub — у нас он описан пошагово, вместе с примером добавления устройства здесь.
Со стороны Sprut.hub настройка MQTT-контроллера описана здесь.
Если задача в том, чтобы завести устройства WB в Sprut.hub и управлять ими, она у вас уже решена и Modbus не нужен вовсе. Шаблоны наших устройств для Sprut.hub рассчитаны именно на MQTT: устройство настраивается штатным образом в веб-интерфейсе контроллера, а Sprut.hub подхватывает его каналы из брокера.
У меня две задачи: 1) познавательно-обучательная - понять и попробовать это сделать; 2) прикладная.
С прикладной задачей связан следующий кейс. Обмен между WB7-SH настроен по MQQT сейчас. Выяснилось, что шаблон работает как единое устройство и в интерфейсе все плитки управления/индикации, которые относятся к одному устройству можно переносить в “Комнату” конкретную только вместе! Т.е., если физически на одном WB-LED, н-р, 2 канала управляют светом Кухни, а два канала Гостиной, то в SH они все будут либо в одной комнате, либо в другой, а я хотел их разнести (хотя понимаю, что по сути это просто программная реализация интерфейса SH и некая его текущая “ущербность”). Поэтому, поддержка SH подсказала 2 варианта: 1) заводить виртуальные устройства (по мне так сейчас это двойная работа, но ок, как вариант, хотя думаю в алгоритма потом тоже нюансы будут); 2) реализовать на ModBus, так как в этом случае, можно по сути, как я понимаю, логически сделать разделение на этапе настройки ModBus в WB7 физического устройства и его топиков на отдельные логические устройства, которые будут уже залетать в SH.
Я бы начал разбираться с Home Assistant, это по усилиям - примерно так же (но есть хорошая и полная документация!). А по пользе - намного больше. Начиная с того что в нем можно реализовать вот вообще все что угодно.
Просто как пример: Я сделал тачпанель управления умным домом чтобы вам тоже пришлось / Хабр
Та же интеграция с WB возможна несколькими путями. И как раз по ним сможем что-то подсказать, так как ПО открыто и широко используется.
Нет, не совсем верно. Насколько знаю - SH будет воспринимать устройство (именно Modbus устройство, целиком) своим шаблоном. То есть нужно реализовать все регистры устрйоства на тех же адресах.
ЗЫ: Возможно, плохо, непонятно описал. Имею в виду что смена интерфейса Modbus rtu → Modbus TCP не поменяет работу шаблонов SH.
Да, откровенно говоря, за два дня работы beta-тестером в мой второй основательный подход и попытку настроить автоматизацию на SH видимо подходит к окончательному и логичному завершению - перейти на HA. К сожалению, SH очень сырая система (а я еще умудрился 3.0 накатить) со своей только разработчикам понятной логикой работы, настройки и архитектурой (в текущем виде боюсь до пенсии не успеть сделать как надо).
Касательно HA начал вопрос прорабатывать уже. И я так понимаю, что на WB7 нет смысла ставить (а новую версию и не поставишь), так как прекращена поддержка текущего процессора? Какой будет самый нормальный вариант с текущей версией WB7 (я изначально за подход минимального количества внешних систем и интеграцией)?
Я несколько раз пробовал, не смог, к сожалению. HA я могу заставить работать как надо мне.
Старые сборки, под 32 бита - можно, на контроллере с 2ГБ вполне хорошо работает. Но запускается минуты две, это да.
Я бы начал с HA в виртуальной машине. Общается с контроллером он по сети - так что совершенно нет разницы где его ставить.
Потом - сложно, конечно, советовать. От потребных ресурсов, если тот же видеонаблюдение интегрировать - то контроллера не хватит совсем.
Ну и из опыта: рекомендую для начала, конечно попробовать “ручную” настройку а потом перейти к MQTT discovery.
То есть сразу на контроллере под объекты создавать структуру понятную HA. Пример: Массовый перенос устройств из Wirenboard 8 в Алису - #4 by BrainRoot
Для освещения - один скрипт, в котором создаются все объекты, для, например, климата - другой.