HUB-C2000PP и MQTT
|
|
regressor | Дата: Воскресенье, 05.02.2023, 11:59 | Сообщение # 1 |
Группа: Проверенные
Сообщений: 31
Статус: Оффлайн
| Добрый день. У меня есть необходимость подключить пожарку-охранку болида к умному дому на home assistant. Пожарка охранка сделана на базе C2000-КДЛ + C2000-ПП. Питание от РИП-12RS с которого тоже хочется данные завести в home assistant. Сначала хотел напрямую данные брать через modbus, но с C2000-ПП данные РИП-а получить не вышло так как их надо в 2 запроса получать - сначала адрес записать, а потом значение вычитать.
Нашел программу HUB-C2000PP, которая при помощи конфига uprog нормально все получает, но остался вопрос как эту программу с home assistant подружить. В arm-skif в скриптах вроде как был MQTT. Но в скриптах hub-c2000pp mqtt not defined. Пульта С2000М нет.
Может кто подскажет как проще всего подружить Болид с C2000-ПП и home assistant ?
|
|
| |
arm-skif | Дата: Воскресенье, 05.02.2023, 12:35 | Сообщение # 2 |
Группа: Администраторы
Сообщений: 835
Статус: Оффлайн
| Добрый день. Программа HUB-C2000PP не поддерживает MQTT, но я планирую добавить в нее MQTT. Может в течении месяца.
|
|
| |
regressor | Дата: Воскресенье, 05.02.2023, 12:59 | Сообщение # 3 |
Группа: Проверенные
Сообщений: 31
Статус: Оффлайн
| Понял. Тогда сажусь в позу ждуна А такой вопрос - там в HUB-C2000PP вроде как какой-то локальный сервер есть - он тоже через шифрование ? У HA вроде есть возможность еще через http дергать значения.Добавлено (05.02.2023, 14:26) --------------------------------------------- Посмотрел код HUB-C2000PP. Пока жду MQTT - попробую впилить API от esphome (https://github.com/esphome/esphome/tree/dev/esphome/components/api), это наверное самая правильная интеграция получится.
|
|
| |
arm-skif | Дата: Воскресенье, 05.02.2023, 15:43 | Сообщение # 4 |
Группа: Администраторы
Сообщений: 835
Статус: Оффлайн
| HUB-C2000PP это сервер (HUB-C2PP.exe) и конфигуратор (Configurator.exe). Между ними шифрование когда они обмениваются по сети. Шифрования нет если обе программы запущены в одном каталоге.
|
|
| |
regressor | Дата: Воскресенье, 05.02.2023, 16:07 | Сообщение # 5 |
Группа: Проверенные
Сообщений: 31
Статус: Оффлайн
| А. Понял. Это CanalLocal компонент получается. Я пока думаю какой лучше способ интеграции выбрать.
1. Своя интеграция в HA на питоне, которая напрямую в modbus данные берет. Но там видимо проблемой будет запрашивать все равномерно, очередь какую-то городить и т.п. 2. Своя интеграция в HA, которая будет запрашивать данные у HUB_C2000PP через локальный линк. Тут HUB_C2000PP сама занимается очередью и планированием запросов. Плюс можно использовать конфигуратор и родной uprog. 3. Встроить api от того же esphome как самую адекватную в HUB_C2000PP - тогда оно будет автоматически обнаруживаться HA, NR и прочими.
Мне наверное вариант 2 проще всего будет реализовать.
|
|
| |
arm-skif | Дата: Воскресенье, 05.02.2023, 20:26 | Сообщение # 6 |
Группа: Администраторы
Сообщений: 835
Статус: Оффлайн
| Вспомнил, что в телеграм-группе PlcAutomations человек делал интеграцию HA через NodeRed: https://t.me/PlcAutomationsBolid/55411
А мне конечно легче интегрироваться с HA через HUB-C2000PP + MQTT, но я правда HA не пользуюсь, попробую сделать как вижу, а потом подправим.
CanalLocal использует кроссплатформенный класс QLocalSocket в Qt, его в HA будет не просто реализовать. Нужно как-то по другому, например просто через TCP или UDP.
|
|
| |
regressor | Дата: Среда, 08.02.2023, 05:42 | Сообщение # 7 |
Группа: Проверенные
Сообщений: 31
Статус: Оффлайн
| Интеграции для HA пишутся на питоне. Для питона есть pyqt. По иде должно через него заработать.
Еще такой вопрос - сервер hub2000pp хранит считанные переменные у себя в памяти пока он запущен? А то у меня возникает ощущение, что когда я конфигуратор запускаю, он все заново вычитывает. Так получается с любым клиентом будет ?
|
|
| |
arm-skif | Дата: Среда, 08.02.2023, 08:24 | Сообщение # 8 |
Группа: Администраторы
Сообщений: 835
Статус: Оффлайн
| Сервер всё в памяти хранит и отдает клиентам по их запросу.
|
|
| |
regressor | Дата: Воскресенье, 19.02.2023, 08:12 | Сообщение # 9 |
Группа: Проверенные
Сообщений: 31
Статус: Оффлайн
| В общем после пары дней изысканий решил что ну его нафик этот pyqt. Очень уж проблемный он и установить его просто из зависимостей не выйдет.
Пробую через JSEngine и UDP (и HA и HUB-C2000PP на одной машине живут). Вот только есть проблема - как в js скрипте получить список активных зон modbus, разделов и реле ? nSh не дается - возвращает undefined.
Сунулся в эти qt_meta_stringdata_JSEngine / qt_meta_data_JSEngine и с наскоку не очень понял как туда добавить еще один метод (например getShState без параметров).
Плюс не нашел как получить в js скрипте тип зоны.
Вопрос не актуален. Лет 10 как на Qt ничего не делал и забыл совсем про эти моки...
Нашел include/JSEngine/JSEngine.h и добавил туда QVariant getShList(void) {return QVariant::fromValue(mConfigC2000PP->getListSh());} после чего список зон появился.
Добавил измененные файлы: в UdpSocket.h добавил параметр port отправителя (чтобы можно было в ответ слать пакеты), в JSEngine.h добавил getShList, getRlList, getPartList, getShNum, getShType, getShPart
Не знаю уж почему. Файлы не добавляются
Сообщение отредактировал regressor - Воскресенье, 19.02.2023, 11:32 |
|
| |
arm-skif | Дата: Понедельник, 20.02.2023, 08:54 | Сообщение # 10 |
Группа: Администраторы
Сообщений: 835
Статус: Оффлайн
| Я хочу добавить MQTT не в сценарии, а как отдельную вкладку в конфигураторе. Не хочу сильно усложнять сценарии. На праздники постараюсь сделать.
|
|
| |
regressor | Дата: Понедельник, 20.02.2023, 14:04 | Сообщение # 11 |
Группа: Проверенные
Сообщений: 31
Статус: Оффлайн
| Я собственно уже сваял интеграцию для HA Добавляется интеграция, там вводишь хост-порт и оно вытягивает весь набор к себе. Осталось доделать нормальное отображение событий и сделать чтобы тревоги отрабатывали. Скрипт js слушает udp порт и при получении запроса отправляет полностью все дерево датчиков, реле и разделов. Плюс отправляет через udp изменения.
Правда пришлось в скрипте прописать отдельным словариком соответствие раздела и типа датчика. Потому что этой информации как я понял у HUB-C2000PP нет:
Код var sensor_types = { 1: "doorSensor", 2: "motionSensor", 3: "temperatureSensor", 4: "humiditySensor", 5: "smokeSensor", 6: "smokeSensor", 7: "smokeSensor", 8: "smokeSensor", 9: "statusSensor", 10: "ripOutputSensor", 11: "ripCurrentSensor", 12: "ripBatteryVoltageSensor", 13: "ripBatteryLevelSensor", 14: "ripInputVoltageSensor", 15: "statusSensor", 16: "statusSensor", }
Ну и методов добавил в JSEngine.
|
|
| |
arm-skif | Дата: Понедельник, 20.02.2023, 14:10 | Сообщение # 12 |
Группа: Администраторы
Сообщений: 835
Статус: Оффлайн
|
|
|
| |
regressor | Дата: Среда, 22.02.2023, 03:51 | Сообщение # 13 |
Группа: Проверенные
Сообщений: 31
Статус: Оффлайн
| Подскажите, а получится в ваш код добавить мои изменения ? Я планирую интеграцию выложить на гитхабе вместе с js скриптом, но оно работать не будет, если не добавить в JSEngine методы. Там пока (еще доделываю постановку-снятие зон) получилось следующее:
1. UdpSocket.h в readDatagram добавился параметр port прототип: void readDatagram(QString datagram, QString host, quint16 port); плюс вызов: emit readDatagram(QString::fromUtf8(datagram), sender.toString(), senderPort);
2. JSEngine.h добавились методы: int getShNum(quint16 nSh) { return mConfigC2000PP->getShNum(nSh);} int getShType(quint16 nSh) { return mConfigC2000PP->getShType(nSh);} int getShPart(quint16 nSh) { return mConfigC2000PP->getShPart(nSh);} int getShDev(quint16 nSh) { return mConfigC2000PP->getShDev(nSh);}
QVariant getShList(void) {return QVariant::fromValue(mConfigC2000PP->getListSh());} QVariant getRlList(void) {return QVariant::fromValue(mConfigC2000PP->getListRl());} QVariant getPartList(void) {return QVariant::fromValue(mConfigC2000PP->getListPart());}
Получается вот такая вот картинка (автоматическая панель HA сразу после добавления интеграции):
Все датчики добавляются в виде нескольких сущностей. Для ДИП34 это бинарный датчик (сработка/нет сработки) + текущий статус. Для adc такая же история. Реле пока не подключены, но будут примерно так же работать (я тут психанул и сделал платку 20х50х12 тиристорную для кдлки). Поскольку протокол ДПЛС никто так и не описал пришлось купить табличку и взять с нее контроллер. Т.е. для КДЛки это табличка, а в реальности маленький тиристорный модуль:
И по поводу телеграмм бота есть вопрос - это специально было сделано, что взаимодействие идет именно с ботом, а не с чатом, куда бот добавлен ? У меня например семейный чат, куда было бы логичнее сообщения слать.
|
|
| |
arm-skif | Дата: Среда, 22.02.2023, 08:47 | Сообщение # 14 |
Группа: Администраторы
Сообщений: 835
Статус: Оффлайн
| Да, получится. Добавлю это в новую версию.
Табличка дешевле всего, но например если нужно два реле, то можно взять СП2, получится дешевле. Для 220В есть кстати компактные твердотельные реле Omron G3MB-202P с управлением 5/12/24 В. Та же оптопара и симистор, но в одном компактном корпусе. Но оптопара там немного поумнее, включает симистор при переходе 220В через ноль. На али даже есть готовые платы с этими реле и клеммниками, но для arduino, с управлением 5 В, на 12 В нужно искать.
|
|
| |
regressor | Дата: Среда, 22.02.2023, 14:06 | Сообщение # 15 |
Группа: Проверенные
Сообщений: 31
Статус: Оффлайн
| Я когда этого франкенштейна лепил тоже сначала хотел поставить реле твердотельное умное. Но там очень жесткие ограничения на потребляемый от ДПЛС шины ток.
В итоге пришлось найти самую малопотребляющую оптопару. Умные реле с переходом через 0 имеют от 5ма и выше. А тут если правильно помню не больше 2 можно. В оригинальной табличке там 817 оптопара стоит и резистор запаян на какой-то совсем запредельно низкий ток.Добавлено (23.02.2023, 14:49) --------------------------------------------- Начал проверять интеграцию и обнаружил странность. События вроде приходят нормально (в сценарии hub.signalUpdateSh.connect(updateSh), а updateSh отсылает udp уведомление). Снимаю дымовой датчик - вижу udp пакетом прилетает событие Потеря связи с ШС + в scripts.log падает запись. Зажимаю на датчике кнопку "тест" и вижу в конфигураторе событие "тест извещателя", но ни в логе ни udp пакета нет.... Бага? Добавлено (23.02.2023, 15:57) --------------------------------------------- Нашел причину проблемы с тестом извещателя. Оказывается это не статус шлейфа, а событие. Сделал костыльно - в c2000pp.cpp в строку 1197 добавил код:
Код if (event==19) { // Если это тест извещателя - отправим уведомление setShState(nSh, 19); }
Теперь обновление в интеграцию приходит. Костыль конечно, но мне помогло.Добавлено (24.02.2023, 15:43) --------------------------------------------- Вроде все доделал. И push уведомления, и управление разделами и реле. И даже работает все. Вот только в какой-то момент разделы перестали ставиться-сниматься. Отправляю из интеграции или из конфигуратора запрос постановки/снятия раздела и c2000пп перестает вообще работать с приборами - сам отвечает, но лампа на нем либо непрерывно горит, либо погашена и опрос не идет. Дергаю его по питанию - начинает опрашивать. Прошивка последняя. Капец. С этим болидом постоянно какие-то приколы
|
|
| |
arm-skif | Дата: Суббота, 25.02.2023, 15:59 | Сообщение # 16 |
Группа: Администраторы
Сообщений: 835
Статус: Оффлайн
| Не стоит смешивать события и состояния шлейфов. Из состояния "Тест извещателя" он как потом вернется во взят/снят если с ним ничего не делать?
У С2000-ПП разных версий есть некоторые странности, я пытаюсь их обойти, но не всегда получается. Например если управлять реле, которыми ПП управлять не может, например реле не существует или прибор автономно управляет своим реле, то ПП 1.3х зависает и помогает только его перезагрузка по питанию. Или вот недавно прошил КДЛ до 2.35 и обнаружил что ПП 1.3х зависает при попытке взять/снять пожарные шлейфы. У ПП 2.х тоже есть небольшие приколы, но он по крайней мере хотя бы не зависает. Но зато может перезагрузиться на ровном месте
|
|
| |
regressor | Дата: Суббота, 25.02.2023, 16:18 | Сообщение # 17 |
Группа: Проверенные
Сообщений: 31
Статус: Оффлайн
| Он из состояния "тест извещателя" возвращается при следующем же опросе - т.е. меньше чем через секунду.
По ПП понял. Буду дрючить техподдержку Болида.Добавлено (25.02.2023, 16:22) --------------------------------------------- Интеграцию доделал, шлифанул и запустил у себя в работу. Выложил на гитхабе: https://github.com/Regressor/hass-hubc2000pp
Все отлично опрашивается, adc адекватно меняется, реле включаются/выключаются (у меня кстати 1.32 и включение/выключение отсутствующего реле зависания не вызывает). Сработка датчика в клиенте home assistant меньше чем за секунду появляется.
Пробросил все это в яндекс-дом и теперь алису можно спросить насчет температуры-влажности и сработок датчиков + реле поуправлять.
С разделами все не очень, но по ним попробую Болидовцев попинать. Ну вдруг получится.
|
|
| |
arm-skif | Дата: Суббота, 25.02.2023, 16:41 | Сообщение # 18 |
Группа: Администраторы
Сообщений: 835
Статус: Оффлайн
| Скажут, что 1.32 больше не поддерживается (и возможно 2 тоже), покупайте версию 3.0, скоро выйдет
Насчет разделов. Посмотрите какие типы шлейфов входят в разделы. Я делал костыль для ПП 1.3х, если в раздел входит шлейф тип 6, то этим разделом управляем пошлейфно. Может еще на какие типы это распространить.
|
|
| |
regressor | Дата: Понедельник, 27.02.2023, 15:23 | Сообщение # 19 |
Группа: Проверенные
Сообщений: 31
Статус: Оффлайн
| В техподдержке Болида попросили конфиги и описание что я делаю. Скинул им конфиги и скриншоты как я с помощью mbpoll пытаюсь снять зону и как с2000-пп после этого себя ведет. Сразу в лес не послали. Будем посмотреть что из этого выйдет.
По пошлейфной постановке - у меня есть раздел 2 в котором только с2000-bt (две зоны типа 6 - температура и влажность). При постановке-снятии тоже зависает
Сообщение отредактировал regressor - Понедельник, 27.02.2023, 15:25 |
|
| |
balyan | Дата: Среда, 01.03.2023, 15:35 | Сообщение # 20 |
Группа: Проверенные
Сообщений: 22
Статус: Оффлайн
| Цитата regressor ( ) Интеграцию доделал, шлифанул и запустил у себя в работу. Выложил на гитхабе: https://github.com/Regressor/hass-hubc2000pp Добрый день! Спасибо вам и автору сайта за Ваш труд! Для меня тема очень актуальна. Сам занимаюсь монтажом ОПС и дома себе собрал сигнализацию которую также хотелось бы прокинуть в HA, но к сожалению мои познания в программировании практически = 0. В вашей инструкции на github вы пишете о программе старше версии 2.0.2 , на форуме http://forum-bolid.ru/viewtopic.php?f=219&t=5793 нашел файлы автора с программой, но там как раз таки версия 2.0.2 которая как я понял не рекомендуется.А где же взять последнее обновление этой программы ? (на этом сайте ее не нашел). И есть-ли какая-нибудь более подробная пошаговая инструкция по установке ПО на ПК и дальнейшем запуске интеграции в HA? PS: (в моем случае ПК с ОС Debian 11 на который установлен HA в докер контейнере), буду очень признателен если вы сможете пошагово разжевать куда двигаться. С2000-ПП настроен на стенде, опрос идет а что дальше не совсем понятно.
|
|
| |
arm-skif | Дата: Среда, 01.03.2023, 15:38 | Сообщение # 21 |
Группа: Администраторы
Сообщений: 835
Статус: Оффлайн
| Версия 2.1.0 появится на этой неделе. Осталось кое-что доделать.
|
|
| |
regressor | Дата: Среда, 01.03.2023, 16:25 | Сообщение # 22 |
Группа: Проверенные
Сообщений: 31
Статус: Оффлайн
| Цитата balyan ( ) И есть-ли какая-нибудь более подробная пошаговая инструкция по установке ПО на ПК и дальнейшем запуске интеграции в HA? Более подробную инструкцию не делал. Я внес в исходники программы 2.0.2 несколько изменений (в 13 сообщении описаны - при желании можно самому добавить и пересобрать) и попросил автора добавить их в новую версию. Новая версия как я понял будет еще и с mqtt (т.е. это еще один способ пробросить все в HA) и она пока не готова.
Собственно там все просто с интеграцией. 1. Настроить программу HUB-C2000PP чтобы все было красиво, все работало и все описания были заполнены. 2. В окне ввода текста вкладки "Сценарии" конфигуратора заменить содержимое на script.js из моего репозитория, поправить в самом начале список соответствия номера зоны типу датчика и нажать кнопку сохранить. 3. Докер контейнер HA либо перезапустить с network_mode: "host" либо пробросить в него порт 22001/udp 4. В папку конфигурации HA в подкаталог custom_components скопировать каталог hubc2000pp из репозитория 5. Перезапустить HA 6. В настройках выбрать "Добавить интеграцию", в поиске написать hub, кликнуть найденную интеграцию и нажать запустить с настройками по умолчанию если сервер hub-c2000pp находится на той же машине. 7. Если все хорошо - все что есть в программе автоматически заедет в HA в виде устройств и различных элементов (сенсоров, свичей, зон и т.п.).
|
|
| |
arm-skif | Дата: Среда, 01.03.2023, 16:39 | Сообщение # 23 |
Группа: Администраторы
Сообщений: 835
Статус: Оффлайн
| Mqtt пока не будет. Я думал оно уже и не требуется раз есть интеграция. Если что, позже добавлю, иначе до новой версии так и не доберусь.
В новой версии будет: - Изменения сценариев из этой ветки форума. - Возможность сохранить/восстановить целиком всю конфигурацию программы (вместе со сценарием и вообще всем) одним файлом. - База данных АЦП/счетчиков с возможностью настроить гистерезис сохранения данных а так же графики АЦП/счетчиков за нужный промежуток времени. - Измененный телеграм. Появятся меню с отображением шлейфов/разделов/реле в виде списка в дополнении к уже существующим отображениям в виде таблицы. И еще ко всем спискам добавлена кнопка "обновить". - Для Orange новая файловая система OverlayFS, объединяющая два раздела с файловыми системами: erofs и f2fs. Этим сейчас занимаюсь, пока не готово.
|
|
| |
regressor | Дата: Четверг, 02.03.2023, 08:43 | Сообщение # 24 |
Группа: Проверенные
Сообщений: 31
Статус: Оффлайн
| Вот если в телеграмме будет возможность сделать работу с чатом, а не ботом напрямую будет вообще огонь.
|
|
| |
arm-skif | Дата: Четверг, 02.03.2023, 08:56 | Сообщение # 25 |
Группа: Администраторы
Сообщений: 835
Статус: Оффлайн
| Клиент вместо бота? Это было в первой версии, но потом телеграм начал менять API и я перешел на бота. Тем более у бота есть кнопки, а у клиента нет.
|
|
| |
regressor | Дата: Четверг, 02.03.2023, 09:50 | Сообщение # 26 |
Группа: Проверенные
Сообщений: 31
Статус: Оффлайн
| Я просто может не в курсе как оно все работает. Есть же возможность взаимодействовать с ботом внутри группового чата. Т.е. создается чат, в нем находятся люди. В чат добавляется бот, потом достается из обновлений бота chat_id и далее весь обмен с ботом идет внутри этого чата. И уведомления туда же от бота прилетают. У меня задача в семейном чате получать уведомления от бота и ставить-снимать.
А в текущей реализации мне в приватном чате бот пишет и я ему команды пишу.
|
|
| |
arm-skif | Дата: Четверг, 02.03.2023, 09:53 | Сообщение # 27 |
Группа: Администраторы
Сообщений: 835
Статус: Оффлайн
| Так и работает. Вот бот в группе, можно попробовать: https://t.me/+DjjzqTS6K5gwNWVi
|
|
| |
balyan | Дата: Четверг, 02.03.2023, 11:10 | Сообщение # 28 |
Группа: Проверенные
Сообщений: 22
Статус: Оффлайн
| Цитата regressor ( ) 1. Настроить программу HUB-C2000PP чтобы все было красиво, все работало и все описания были заполнены.2. В окне ввода текста вкладки "Сценарии" конфигуратора заменить содержимое на script.js из моего репозитория, поправить в самом начале список соответствия номера зоны типу датчика и нажать кнопку сохранить. Добрый день! Я правильно понимаю что для настройки программы необходим графический интерфейс, с помощью терминала возможна настройка (если графическая оболочка отсутствует на сервере)?
|
|
| |
arm-skif | Дата: Четверг, 02.03.2023, 11:12 | Сообщение # 29 |
Группа: Администраторы
Сообщений: 835
Статус: Оффлайн
| Программа HUB-C2000PP клиент-серверная. У нее есть сетевой графический интерфейс.
|
|
| |
regressor | Дата: Четверг, 02.03.2023, 12:50 | Сообщение # 30 |
Группа: Проверенные
Сообщений: 31
Статус: Оффлайн
| Цитата arm-skif ( ) Программа HUB-C2000PP клиент-серверная. У нее есть сетевой графический интерфейс. У меня сервер и HA запущены на rpi (cm4). Программу для настройки (конфигуратор) можно как из под windows запустить так и на линуксе с графикой - отлично все работает. Шикарно сделано. Особенно телеграмм бот с его менюшками.
Правда с ботом я видимо что-то не так делаю - у меня бот все уведомления о сработках непосредственно мне шлет в личные, а не в группу, куда я его добавил.
|
|
| |
arm-skif | Дата: Четверг, 02.03.2023, 12:55 | Сообщение # 31 |
Группа: Администраторы
Сообщений: 835
Статус: Оффлайн
| Нужно в группе что-нибудь написать (или /start, или обратиться к нему по имени, не помню), после этого в конфигураторе у бота появится эта группа. Насколько помню, у группы ID отображается со знаком минус "-". И дальше в конфигураторе настроить отправку сообщений для этой группы.
|
|
| |
regressor | Дата: Четверг, 02.03.2023, 13:20 | Сообщение # 32 |
Группа: Проверенные
Сообщений: 31
Статус: Оффлайн
| Ох. Оно живое! Спасибо!
|
|
| |
balyan | Дата: Четверг, 02.03.2023, 17:19 | Сообщение # 33 |
Группа: Проверенные
Сообщений: 22
Статус: Оффлайн
| Цитата arm-skif ( ) Программа HUB-C2000PP клиент-серверная. У нее есть сетевой графический интерфейс. Очень хорошая для меня новость! Жду не дождусь выхода новой версии, чтобы опробовать у себя)
|
|
| |
arm-skif | Дата: Понедельник, 06.03.2023, 01:17 | Сообщение # 34 |
Группа: Администраторы
Сообщений: 835
Статус: Оффлайн
| Версия 2.1.0
|
|
| |
arm-skif | Дата: Понедельник, 06.03.2023, 09:23 | Сообщение # 35 |
Группа: Администраторы
Сообщений: 835
Статус: Оффлайн
| regressor, у вас на GitHub ссылка на arm-skif.ru, лучше сделайте ссылку на один из форумов болид (официальный или не официальный) с программой. Просто на arm-skif.ru нет описания этой программы, хотя да, сама она на нем лежит. Не хотел лишний раз мозолить глаза болидовцам Иначе люди будут дольше искать где скачать.
|
|
| |
balyan | Дата: Понедельник, 06.03.2023, 11:05 | Сообщение # 36 |
Группа: Проверенные
Сообщений: 22
Статус: Оффлайн
| Цитата arm-skif ( ) Версия 2.1.0 Добрый день! Подскажите пожалуйста. Как поставить программу на Debian, мой алгоритм действий : 1) Скачиваю исходные библиотеки по ссылке http://arm-skif.ru/download/HUB-C2000PP/HUB-C2000PP_src.7z 2) Распаковываю архив и перемещаю содержимое в home/balyanibl у меня появляется пака по адресу home/balyanib/HUB-C2000PP_2.1.0_scr 3)Перехожу по указанному пути в папку Server cd /home/balyanibl/HUB-C2000PP_2.1.0_scr/Server 3)Выполняю команду qmake HUB-C2PP.pro 4)Выполняю команду make Что дальше? Где должен появиться исполняемый файл HUB-C2000PP и как его запустить?Добавлено (06.03.2023, 11:14) ---------------------------------------------
Цитата balyan ( ) Что дальше? Где должен появиться исполняемый файл HUB-C2000PP и как его запустить? Снимаю вопрос. Запустил файл с именем HUB-C2PP сервер появился. Видимо в инструкции неточность, там указано "После окончания сборки в каталоге появится исполняемый файл HUB-C2000PP".Добавлено (07.03.2023, 08:52) --------------------------------------------- @regressor, @arm-skif Добрый день! Хотел еще раз Вас поблагодарить за ваш огромный труд, за основу которую положили в создание самого ПО и саму идею интеграции в унмый дом HA ! Подскажите, возможно-ли сделать программу HUB-C2000PP дополнением в Hassio, чтобы можно было установить, допустим из пользовательского репозитория магазина дополнений HUCS и запускать в Doker совместно с ассистентом, без дополнительных перенаправлений портов и пересоздания работающего контейнера? Просто не совсем тема понятна с этой частью конечной интеграции продукта, в том числе тема реализации автоматического запуска программы HUB-C2000PP при запуске системы. Думаю расширенный мануал или реализация предлагаемого метода установки может поспособствовать удобству интеграции оборудования в умный дом HA пользователям с недостаточным опытом общения с OS Linux. Наверное большая часть пользователей использует именно такой метод установки - в Doker контейнер, реализую его по готовым мануалам из сети интернет. Вряд-ли эта часть пользователей с ходу способна осилить все эти действия из того, что написано в инструкции к интеграции: (https://github.com/Regressor/hass-hubc2000pp)
|
|
| |
regressor | Дата: Вторник, 07.03.2023, 13:47 | Сообщение # 37 |
Группа: Проверенные
Сообщений: 31
Статус: Оффлайн
| @arm-skif ссылку поправил
@balyan Сделать все через HACS точно не получится - там просто насколько я понял нет возможности запускать сторонние приложения. Плюс скорее всего в контейнер при таком запуске придется /dev/ttyUSB0 пробрасывать.
В принципе можно попробовать сделать докер-контейнер с HUB-C2000PP (а может автор уже сделал) - это чуть облегчит запуск для обычных пользователей, но пока руки даже не знаю когда дойдут.
Автоматический запуск я у себя сделал путем создания файла /etc/systemd/system/hub2000pp.service со следующим содержимым (путь до выполняемого файла надо поправить не забыть!):
[Unit]Description=hub2000pp After=network.target
[Service]ExecStart=/opt/hub-c2000pp/HUB-C2PP ExecStop=/bin/kill ${MAINPID} Restart=on-failure
[Install]WantedBy=multi-user.target
После создания этого файла можно выполнить 2 команды:
Код sudo systemctl daemon-reload sudo systemctl enable hub2000pp.service
И собственно сервис после этого будет запускаться автоматически
Инструкцию сделаю подробнее как чуть разгребусь.
Сообщение отредактировал regressor - Четверг, 09.03.2023, 09:13 |
|
| |
balyan | Дата: Вторник, 07.03.2023, 17:11 | Сообщение # 38 |
Группа: Проверенные
Сообщений: 22
Статус: Оффлайн
| Цитата regressor ( ) Плюс скорее всего в контейнер при таком запуске придется /dev/ttyUSB0 пробрасывать Нужно не забывать про С2000-Ethernet , у меня на нем запустилось с пол пинка и работает)
Цитата regressor ( ) В принципе можно попробовать сделать докер-контейнер с HUB-C2000PP (а может автор уже сделал) - это чуть облегчит запуск для обычных пользователей, но пока руки даже не знаю когда дойдут. Тоже решение...Цитата regressor ( ) Автоматический запуск я у себя сделал путем создания файла /etc/systemd/system/hub2000pp.service со следующим содержимым (путь до выполняемого файла надо поправить не забыть!): Про демонов читал но пока не понял, воспользуюсь Вашим мануалом, но пока по факту даже в ручном запуске программы, Hassio когда пытаюсь добавить интеграцию не видит сервер, видимо как раз из-за перенаправления портов...
Цитата regressor ( ) (а может автор уже сделал Подождем комментарии автора ), а то что он будет крутиться в отдельном контейнере разве не будет проблемой взаимодействия с HA?
|
|
| |
arm-skif | Дата: Вторник, 07.03.2023, 17:58 | Сообщение # 39 |
Группа: Администраторы
Сообщений: 835
Статус: Оффлайн
| Я с контейнерами не разбирался, с HA тоже. Мне как-то ближе OrangePI zero и телеграм
|
|
| |
regressor | Дата: Среда, 08.03.2023, 01:56 | Сообщение # 40 |
Группа: Проверенные
Сообщений: 31
Статус: Оффлайн
| Если контейнеры в одной сети запущены, то между ними все замечательно без всяких пробросов бегает, а обращаться можно по имени контейнера, а не по ip адресу. Если C2000-Ethernet то вообще все отлично будет работать.
Интеграция должна видеть сервер HUB-C2000PP даже без перенаправления портов - перенаправление нужно, чтобы события приходили моментально. Без перенаправления тоже будет работать, но события будут через минуту приходить.
Вы скрипт в конфигураторе поменяли ? Ошибок не было ?
|
|
| |
arm-skif | Дата: Среда, 08.03.2023, 06:47 | Сообщение # 41 |
Группа: Администраторы
Сообщений: 835
Статус: Оффлайн
| Заменил QVariant, чтобы не было лишнего преобразования. В скрипт, который по умолчанию, добавил новые функции, чтобы было видно что они есть. Проверил работу новых функций.
|
|
| |
balyan | Дата: Среда, 08.03.2023, 21:32 | Сообщение # 42 |
Группа: Проверенные
Сообщений: 22
Статус: Оффлайн
| Цитата regressor ( ) Автоматический запуск я у себя сделал путем создания файла /etc/systemd/system/hub2000pp.service со следующим содержимым (путь до выполняемого файла надо поправить не забыть!):Код
[Unit]Description=hub2000pp After=network.target
[Service]ExecStart=/opt/hub-c2000pp/HUB-C2PP ExecStop=/bin/kill ${MAINPID} Restart=on-failure
[Install]WantedBy=multi-user.target
После создания этого файла можно выполнить 2 команды: Код sudo systemctl daemon-reload sudo systemctl enable hub2000pp.service
И собственно сервис после этого будет запускаться автоматически
Инструкцию сделаю подробнее как чуть разгребусь. Добрый вечер! Подскажите пожалуйста, что не так ?
Создал файл в Nano: nano /etc/systemd/system/hub2000pp.service
со следующим содержанием:
[Unit]Description=HUB-C2PP After=network.target
[Service]ExecStart= /home/balyanibl/HUB-C2000PP_2.1.0_src/Server/HUB-C2PP ExecStop=/bin/kill ${MAINPID} Restart=on-failure
[Install]WantedBy=multi-user.target
Перезагрузил демонов: sudo systemctl daemon-reload Запускаю: sudo systemctl enable hub2000pp.service Получаю сообщение: Failed to enable unit: File hub2000pp.service: Bad message
Мой файл с программой лежит по пути /home/balyanibl/HUB-C2000PP_2.1.0_src/Server/HUB-C2PP
|
|
| |
regressor | Дата: Четверг, 09.03.2023, 07:06 | Сообщение # 43 |
Группа: Проверенные
Сообщений: 31
Статус: Оффлайн
| Мой косяк - после [Service]enter нужен
Короче это какой-то глюк форума я пишу [Service]потому нажимаю ентер и пишу ExecStart=/opt/hub-c2000pp/HUB-C2PP а форум берет и ентеры и пробелы между замыкающей квадратной скобкой и следующим текстом убирает. Там везде где [xxxx]надо ентеры поставить чтобы дальше с новой строки текст был.
Вот так должно быть:
Сообщение отредактировал regressor - Четверг, 09.03.2023, 09:18 |
|
| |
balyan | Дата: Четверг, 09.03.2023, 11:24 | Сообщение # 44 |
Группа: Проверенные
Сообщений: 22
Статус: Оффлайн
| Цитата regressor ( ) Мой косяк - после [Service]enter нужен[Service]ExecStart=/opt/hub-c2000pp/HUB-C2PP Заработало в такой интерпретации: [Unit](тут должен быть ENTER) Description=HUB-C2PP After=network.target [Service](тут должен быть ENTER) ExecStart= /home/balyanibl/HUB-C2000PP_2.1.0_src/Server/HUB-C2PP ExecStop=/bin/kill ${MAINPID} Restart=on-failure [Install](тут должен быть ENTER) WantedBy=multi-user.target
Еще вопрос, вот этот скрипт : https://github.com/Regressor/hass-hubc2000pp/blob/master/script.js его содержимое добавил в содержимое сценариев конфигуратора C2000-HUB после основного текста который был. Изменил : var host = "192.168.1.33"; var port = 22000; const DLM = "__DLM__";
и типы сенсоров (на моем стенде их 2 : var sensor_types = { 1: "smokeSensor", 2: "motionSensor", } Больше в скрипте не чего не менял, возможно нужно что-то еще?
Добавляю интеграцию в HA - эти датчики залетают и отображаются как бинарные сенсоры, но при этом они не изменяют своего состояния и нет возможности снять или поставить на охрану. (в настройках С2000-ПП тип зоны датчиков "1" ), хотя через конфигуратор шлейфы управляются и в журнале событий приходят соответствующие уведомления.
|
|
| |
regressor | Дата: Четверг, 09.03.2023, 15:15 | Сообщение # 45 |
Группа: Проверенные
Сообщений: 31
Статус: Оффлайн
| Скорее всего если под датчиком движения попрыгать минуту, то он обновиться в HA. Если так, то проблема в том, что udp пакеты из HUB-C2000PP не могут попасть в порт 22001.
Т.е. команды проходят, а push-обновления не долетают.
В инструкции вот этот вот пункт: "Если у вас home assistant запущен в виде docker контейнера необходимо добавить перенаправление порта 22001/udp и пересоздать контейнер (только если контейнер home assistant не запущен в режиме host)"
|
|
| |
balyan | Дата: Четверг, 09.03.2023, 16:38 | Сообщение # 46 |
Группа: Проверенные
Сообщений: 22
Статус: Оффлайн
| Цитата regressor ( ) Если так, то проблема в том, что udp пакеты из HUB-C2000PP не могут попасть в порт 22001. Как узнать в каком режиме запущен HA в host или нет? Напоминаю что у меня C2000-Ethernet , ранее вы говорили, что не должно быть с этим проблем или это не так? ) Не думаю что у меня получится пересоздать контейнер, с ходу, я бы может и попробовал, но для начала хотя бы адекватно закинуть что имеется )
Про порт 22001 в скрипте не чего нет, там указан только var port = 22000 в самом начале и всё; (м. б. чего-то не понимаю конечно )
При пробросе датчиков в HA не появились "кнопки" как в Вашем примере, на скрине панели управления ("кнопки" которые позволяют снять с охраны или поставить на охрану). Всё то что добавилось - одной кучей и находится в одном помещении без разделения по датчикам просто бинарные сенсоры и sensor status, которые показывают только взят снят, а тревоги или что то еще не показывают
Моя схема подключения такая: С2000М-МИП-12RS-С2000-КДЛ-устройства ДПЛС. В самом КДЛ уже сейчас подключены ДИП-34, С2000-ПИК-СТ и собственно С2000-ИК (его поставил потому, что в вашем примере нет С2000-ПИК и я подумал, что дело может быть в этом на примере почему не отображается тревога движения).
Цитата regressor ( ) Скорее всего если под датчиком движения попрыгать минуту, то он обновиться в HA. Суть в том, что С2000-КДЛ не присылает пульту постоянные события по RS об одной сработке например ИК (или дымового) зашитого в его конфигурацию, событие отправлено из С2000-КДЛ - и его буфер событий очистился сразу, сколько не прыгай или не дыми, только если это не технологический ШС).
Не могли бы вы выложить Вашу конфигурацию из UPROG прибора C2000-КДЛ и самого С2000-ПП, а также сделать копию скриптов конфигуратора С2000-HUB , у меня все таки подозрение что что-то я не доделал или сделал не так как надо.......
Также еще не дошел до этого, но уже есть вопрос про интеграцию допустим реле например (С2000-КПБ) какой термин из "словаря" var sensor_types нужно указать чтобы устройство пробросилось в HA с нормальным названием и типом устройства? Насколько я понял набор этого словаря ограничен теми устройствами что у вас есть на руках, а другие добавить как-нибудь можно?
Сообщение отредактировал balyan - Четверг, 09.03.2023, 16:39 |
|
| |
balyan | Дата: Четверг, 09.03.2023, 21:13 | Сообщение # 47 |
Группа: Проверенные
Сообщений: 22
Статус: Оффлайн
| arm-skif, Добрый вечер! Подскажите возможно подключить бот который используется для оповещения в другой программе по тому же, который используется в другом устройстве токену? Или нужно создавать отдельного бота? Ввожу в настройки токен - состояние не подключено пишет
Сообщение отредактировал balyan - Пятница, 10.03.2023, 07:29 |
|
| |
regressor | Дата: Пятница, 10.03.2023, 08:08 | Сообщение # 48 |
Группа: Проверенные
Сообщений: 31
Статус: Оффлайн
| Порт 22001/udp открывается на HA чтобы ловить push пакеты от HUB-C2000PP. Он должен быть проброшен внутрь.
Режим сети и список сетей можно посмотреть командой docker inspect hass -f "{{json .NetworkSettings.Networks }}" (у меня контейнер называется hass)
У вас кнопки не появились, потому что в HA у вас автоматическая панель. Она когда авто - ведет себя мягко говоря странно Иногда распадается как у меня на скриншоте, а иногда в кучу. Я от автоматических давно избавился - настраиваю все вручную.
Для реле не надо указывать тип. Оно в ПП идет в отдельном столбце и там вариантов кроме "реле" нет. В HA попадает как один или несколько switch-ей.
Копия моего скрипта HUB на git я ее как есть выложил.
|
|
| |
arm-skif | Дата: Пятница, 10.03.2023, 08:32 | Сообщение # 49 |
Группа: Администраторы
Сообщений: 835
Статус: Оффлайн
| balyan, добрый день. Одновременно с одним токеном должна работать только одна программа.
|
|
| |
regressor | Дата: Пятница, 10.03.2023, 08:45 | Сообщение # 50 |
Группа: Проверенные
Сообщений: 31
Статус: Оффлайн
| А. Еще. Я посмотрел скриншот и понял, что у вас видимо в HUB-C2000PP не заданы описания зон, реле и разделов (их можно отредактировать в конфигураторе и сохранить на сервер). Возможно поэтому разделы и не появились - там вроде я проверку делал, если нет описания - не показывать.
|
|
| |