andr2000 Опубліковано: 14 грудня 2020 Поділитись Опубліковано: 14 грудня 2020 що саме цікавить? приатачів всього потроху, "один день не вдома" та інше Приветствую! А можете показать конфигурацию ebusd? /usr/bin/ebusd --enabledefine --enablehex --updatecheck=off --accesslevel=* -d /dev/ttyUSB0 --configpath=/etc/ebusd/en --mqtthost=127.0.0.1 --mqttport=1883 -l /var/log/ebusd.log Никак не пойму, как его заставить постоянно выдавать параметры в mqtt-брокер... Для цього використовуються poll priority для параметрів, почитайте тут в темі було. В мене в конфігурації вони теж встановлюються, шукайте по слову poll Взагалі Home Assistant це пасивна система, тобто ХА не опитує датчики самостійно, а очікує що датчики самі оновлюють свій стан. MQTT не оновлює, якщо значення не змінювалось (не розглядаємо persistent message). Тому я примусово встановлюю приіоритети полінгу на старті. Також пол пріорітет можливо встановити в csv файлі конфігурації: дивиться формат файлу. 1 Посилання на коментар Поділитися на інших сайтах More sharing options...
Wild Rat Опубліковано: 18 грудня 2020 Поділитись Опубліковано: 18 грудня 2020 Подскажите, пожалуйста, как через канал TCP или MQTT заставить ebusd отправить broadcast-сообщение (например vdatetime)? Посилання на коментар Поділитися на інших сайтах More sharing options...
andr2000 Опубліковано: 21 грудня 2020 Поділитись Опубліковано: 21 грудня 2020 заставить ebusd отправить broadcast-сообщение (например vdatetime) Мені здається змусити відправити не вийде. З цим кодом я регулярно отримую броадкасти і без цього: cat sensor/sensor_ebusd.yaml ################################################################################ # broadcast sensors ################################################################################ - platform: mqtt name: "ebusd outside temperature" device_class: temperature unit_of_measurement: "°C" state_topic: "ebusd/broadcast/outsidetemp" availability_topic: "ebusd/global/signal" payload_available: "true" payload_not_available: "false" qos: 1 # value: 16.0 value_template: > {{ '%0.1f' | format(value | float) }} - platform: mqtt name: "ebusd system time" state_topic: "ebusd/broadcast/vdatetime" availability_topic: "ebusd/global/signal" payload_available: "true" payload_not_available: "false" qos: 1 # value: 22:26:32;26.10.2019 value_template: > {% set values = value.split(";") %} {{ '%s %s' | format(values[1], values[0]) }} Посилання на коментар Поділитися на інших сайтах More sharing options...
Wild Rat Опубліковано: 21 грудня 2020 Поділитись Опубліковано: 21 грудня 2020 С броадкастом уже разобрался - в файле broadcast.csv необходимо добавить опцию разрешающую отправку. Только формат даты установленный там для vdatetime - BDA не правильный, так как подразумевает день недели в формате Sunday=0x06, а надо чтобы был в ISO-формате Sunday=0x07. А такого формата данных в ebusd нет. Я написал разработчику - посмотрим, что ответит. Посилання на коментар Поділитися на інших сайтах More sharing options...
andr2000 Опубліковано: 21 грудня 2020 Поділитись Опубліковано: 21 грудня 2020 в файле broadcast.csv необходимо добавить опцию разрешающую отправку Гм, я не змінював і все ок... Посилання на коментар Поділитися на інших сайтах More sharing options...
Wild Rat Опубліковано: 21 грудня 2020 Поділитись Опубліковано: 21 грудня 2020 Эти факторы никак не влияют на нормальный приём и расшифровку этих сообщений. Только если вы хотите отправить своё сообщение vdatetime. Посилання на коментар Поділитися на інших сайтах More sharing options...
silvan Опубліковано: 21 грудня 2020 Поділитись Опубліковано: 21 грудня 2020 Для цього використовуються poll priority для параметрів, почитайте тут в темі було. В мене в конфігурації вони теж встановлюються, шукайте по слову poll Взагалі Home Assistant це пасивна система, тобто ХА не опитує датчики самостійно, а очікує що датчики самі оновлюють свій стан. MQTT не оновлює, якщо значення не змінювалось (не розглядаємо persistent message). Тому я примусово встановлюю приіоритети полінгу на старті. Також пол пріорітет можливо встановити в csv файлі конфігурації: дивиться формат файлу. Так и не разобрался ((( перебрал всю доку ebusd, но так и не понял как его заставить публиковать параметры в mqtt переодически... раз в 30 сек к примеру. В структуре csv тоже не нашел столбца, который за это отвечает Посилання на коментар Поділитися на інших сайтах More sharing options...
Wild Rat Опубліковано: 21 грудня 2020 Поділитись Опубліковано: 21 грудня 2020 Так и не разобрался ((( перебрал всю доку ebusd, но так и не понял как его заставить публиковать параметры в mqtt переодически... раз в 30 сек к примеру. В структуре csv тоже не нашел столбца, который за это отвечает В csv-файлах можно заменить r в столбце "# type (r[1-9];w;u)" на r1 по r9 в зависимости от желаемой частоты опроса. Или, по MQTT удобнее всего выставлять эту частоту отправив на адрес параметра, который необходимо обновлять "ebusd/устройство/параметр/get" значение "?1" или "?9" - в зависимости от желаемой частоты опроса. Во обеих случаях цифра обозначает, что этот параметр будет обновляться 1 - каждый цикл, 2 - каждый второй, и т.д. Но если этот параметр выставлен через команду MQTT, его необходимо пере выставлять после перезапуска ebusd. 2 Посилання на коментар Поділитися на інших сайтах More sharing options...
andr2000 Опубліковано: 21 грудня 2020 Поділитись Опубліковано: 21 грудня 2020 отправив на адрес параметра, который необходимо обновлять "ebusd/устройство/параметр/get" Я викладав свою повну конфігурацію, там це є... Посилання на коментар Поділитися на інших сайтах More sharing options...
silvan Опубліковано: 21 грудня 2020 Поділитись Опубліковано: 21 грудня 2020 В csv-файлах можно заменить r в столбце "# type (r[1-9];w;u)" на r1 по r9 в зависимости от желаемой частоты опроса. Или, по MQTT удобнее всего выставлять эту частоту отправив на адрес параметра, который необходимо обновлять "ebusd/устройство/параметр/get" значение "?1" или "?9" - в зависимости от желаемой частоты опроса. Во обеих случаях цифра обозначает, что этот параметр будет обновляться 1 - каждый цикл, 2 - каждый второй, и т.д. Но если этот параметр выставлен через команду MQTT, его необходимо пере выставлять после перезапуска ebusd. Спасибо огромное, заработало! В продолжение, Вы уже реализовали управление котлом? Если правильно понял, то реализовывать нужно через SetModeOverride. В терминале команда отправляется вроде... Нашел даже скрипт для Home Assistant для реализации кривой обогрева github.com/john30/ebusd-configuration/issues/170#issuecomment-709592197 Но пока не соображу как это все связать вместе... Нет серьезного опыта в Home Assistant Посилання на коментар Поділитися на інших сайтах More sharing options...
Wild Rat Опубліковано: 21 грудня 2020 Поділитись Опубліковано: 21 грудня 2020 Спасибо огромное, заработало! В продолжение, Вы уже реализовали управление котлом? Если правильно понял, то реализовывать нужно через SetModeOverride. Эти все манипуляции нужны если у вас нет комнатного термостата подключенного по e-bus, и вы хотите из Home Assistant эмулировать его работу. Если такой термостат имеется, то правильнее отдавать команды ему, изменяя необходимые параметры, а работой котла будет уже управлять он. Посилання на коментар Поділитися на інших сайтах More sharing options...
silvan Опубліковано: 21 грудня 2020 Поділитись Опубліковано: 21 грудня 2020 Эти все манипуляции нужны если у вас нет комнатного термостата подключенного по e-bus, и вы хотите из Home Assistant эмулировать его работу. Если такой термостат имеется, то правильнее отдавать команды ему, изменяя необходимые параметры, а работой котла будет уже управлять он. Такой термостат отсутствует... Оценив стоимость всех компонентов Vaillant для нормального управления (термостат, модуль управления насосами, модуль удаленного управления), думал как раз реализовать все на home assistant (raspberry с ebusd, raspberry с haas, esphome для управления насосами и датчики температуры). Полноценно имитировать термостат vaillant еще никто не умеет? Если нет, то видимо придется покупать хотя бы простой... Посилання на коментар Поділитися на інших сайтах More sharing options...
andr2000 Опубліковано: 21 грудня 2020 Поділитись Опубліковано: 21 грудня 2020 Полноценно имитировать термостат vaillant еще никто не умеет? https://www.stroimdom.com.ua/forum/showpost.php?p=5182100&postcount=62 Можливо буде корисним Посилання на коментар Поділитися на інших сайтах More sharing options...
Wild Rat Опубліковано: 21 грудня 2020 Поділитись Опубліковано: 21 грудня 2020 Такой термостат отсутствует... Полноценно имитировать термостат vaillant еще никто не умеет? Если нет, то видимо придется покупать хотя бы простой... Можно использовать термостат Protherm Thermolink P - он дешевле моделей Vaillant. Можно к котлу подключить датчик уличной температуры, и котёл будет сам управлять отоплением по наружной температуре. Останется только выбрать угол и базу кривой отопления (их можно менять и по шине e-bus). Можно управлять котлом из Home Assistant как будто это термостат - как раз эта тема затронута в процитированной вами ссылке. Добавлено через 59 минут По поводу управлением отоплением - есть разные методы: Фиксированная температура теплоносителя в котле. Котёл просто поддерживает заданную температуру теплоносителя - базовая функция которую умеет котёл "из коробки". Фиксированная температура теплоносителя в котле, в термостатом вкл/выкл. Котёл поддерживает заданную температуру теплоносителя, когда замкнуты контакты термостата (термостат замыкает их, когда температура в комнате ниже необходимой), и ничего не делает, когда контакты разомкнуты. Как предыдущий, но если термостат подключен по шине e-bus, он будет корректировать температуру теплоносителя. Погодо-зависимое регулирование (с уличным датчиком, можно и без термостата). Котёл выбирает температуру теплоносителя по кривой отопления. Угол кривой необходимо выбрать исходя из теплопотерь помещения, а базу - исходя из желаемой температуры в помещении. Идеальный вариант - термостат подключен по шине e-bus и есть внешний датчик. Тогда термостат сам подстраивает угол наклона кривой отопления, база кривой подстраивается исходя из выставленной температуры отопления, температура теплоносителя берётся из этой кривой, а сигнал на обогрев зависит от текущей температуры. Все эти варианты управления можно организовать на базе Home Assistant, просто с разной сложностью. Посилання на коментар Поділитися на інших сайтах More sharing options...
KuzMax Опубліковано: 7 січня 2021 Поділитись Опубліковано: 7 січня 2021 Приехала моя прелессссссттть (ebus-usb адаптер) Исполнение отличное, завелась без бубнов. Спасибо, @Denz Котёл у меня Valliant TurboTEC plus с баком для воды. Сервис ebusd поднял на четвёртой малинке, котёл нашёлся, на опросы отвечает. Дальше буду вникать в сервисы типа Home Assistent и прочие чудеса автоматизации и мониторинга. Добавлено через 3 минуты У меня, кстати, тоже нет комнатных термостатов, тоже буду шаманить без них 2 Посилання на коментар Поділитися на інших сайтах More sharing options...
silvan Опубліковано: 28 січня 2021 Поділитись Опубліковано: 28 січня 2021 Ну в целом получилось повторить термостат eBus на Home Assistant Спасибо за помощь 1 Посилання на коментар Поділитися на інших сайтах More sharing options...
KuzMax Опубліковано: 28 січня 2021 Поділитись Опубліковано: 28 січня 2021 Конфигурационные файлы покажете? Посилання на коментар Поділитися на інших сайтах More sharing options...
alexob Опубліковано: 28 січня 2021 Автор Поділитись Опубліковано: 28 січня 2021 Ну в целом получилось повторить термостат eBus на Home Assistant Спасибо за помощь Нормуль. Все четко. Я тож перешёл на mqtt - работает система как часики. Посилання на коментар Поділитися на інших сайтах More sharing options...
silvan Опубліковано: 29 січня 2021 Поділитись Опубліковано: 29 січня 2021 Конфигурационные файлы покажете? я не большой спец в hass. Ногами не пинать, если чтоhass_home_config-master.zip 2 Посилання на коментар Поділитися на інших сайтах More sharing options...
KuzMax Опубліковано: 25 березня 2021 Поділитись Опубліковано: 25 березня 2021 я не большой спец в hass Спасибо, очень помогли ваши конфиги! На текущий момент у меня: - Развернут hass - Реализовано выключение котла по питанию через реле, заведённое на рубильник HASS. Делал наспех на розетке. В след версии заведу внутрь котла на прерыватель специальный. Делал уезжая с дачи, на случай неудачи с управлением по EBUS. - Cервис ebusd по MQTT передаёт параметры котла, буду настраивать красивый экран управления и мониторинга - Вот только что получилось передать управляющую команду по EBUS, котёл по команде вырубился. Управление по питанию уже не очень актуально. Текущие вопросы в проработке: - Котёл "забывает" настройку SetModeOverride и заново включается. Это что получается, HASS (или внешний термостат) должен долбить настройкой по котлу постоянно, чтоб тот не своевольничал?! - Управление по питанию настраивал простыми триггерами на температуру в зале: a) если менее 10 - перевести реле подачи питания на котёл ВКЛ б) если выше 15 - перевести реле подачи питания на котёл ВЫКЛ Триггеры повесил на смену показаний датчика t, и на смену данных в регулировочных input_number, для отработки новых пожеланий пользователя. Так вот, на новое значение input_number триггерит безошибочно, а на новые значения t, вошедшие в диапазон триггера срабатывает 1 раз из 10. Полтергейст. Посилання на коментар Поділитися на інших сайтах More sharing options...
alexob Опубліковано: 25 березня 2021 Автор Поділитись Опубліковано: 25 березня 2021 Спасибо, очень помогли ваши конфиги! На текущий момент у меня: - Развернут hass - Реализовано выключение котла по питанию через реле, заведённое на рубильник HASS. Делал наспех на розетке. В след версии заведу внутрь котла на прерыватель специальный. Делал уезжая с дачи, на случай неудачи с управлением по EBUS. - Cервис ebusd по MQTT передаёт параметры котла, буду настраивать красивый экран управления и мониторинга - Вот только что получилось передать управляющую команду по EBUS, котёл по команде вырубился. Управление по питанию уже не очень актуально. Текущие вопросы в проработке: - Котёл "забывает" настройку SetModeOverride и заново включается. Это что получается, HASS (или внешний термостат) должен долбить настройкой по котлу постоянно, чтоб тот не своевольничал?! - Управление по питанию настраивал простыми триггерами на температуру в зале: a) если менее 10 - перевести реле подачи питания на котёл ВКЛ б) если выше 15 - перевести реле подачи питания на котёл ВЫКЛ Триггеры повесил на смену показаний датчика t, и на смену данных в регулировочных input_number, для отработки новых пожеланий пользователя. Так вот, на новое значение input_number триггерит безошибочно, а на новые значения t, вошедшие в диапазон триггера срабатывает 1 раз из 10. Полтергейст. Чтобы понять в чем дело нужно автоматизации ваши смотреть Посилання на коментар Поділитися на інших сайтах More sharing options...
KuzMax Опубліковано: 25 березня 2021 Поділитись Опубліковано: 25 березня 2021 Это не совсем тема про конфиги HASS, спрячу под спойлер - id: '1616499389833' alias: Включение тестового реле description: '' trigger: - platform: numeric_state above: input_number.t_for_boiler_lock_on entity_id: sensor.narodmon_temperature - platform: state entity_id: input_number.t_for_boiler_lock_on condition: - condition: numeric_state entity_id: sensor.narodmon_temperature above: input_number.t_for_boiler_lock_on action: - type: turn_on device_id: fb9e9e347ec5b2af7f6fa81ad4652c57 entity_id: switch.relay_2 domain: switch mode: single - id: '1616583769146' alias: Выключение тестового реле description: '' trigger: - platform: numeric_state entity_id: sensor.narodmon_temperature below: input_number.t_for_boiler_lock_off - platform: state entity_id: input_number.t_for_boiler_lock_off condition: - condition: numeric_state entity_id: sensor.narodmon_temperature below: input_number.t_for_boiler_lock_off action: - type: turn_off device_id: fb9e9e347ec5b2af7f6fa81ad4652c57 entity_id: switch.relay_2 domain: switch mode: single Вот эти две тестовые автоматизации должны триггерить при переходе порога с датчика (а порог вынесен input_number) или при смене порога input_number.t_for_boiler_lock_off в новое значение, если новое значение уже под/над порогом триггера. В результате триггер должен переключать тестовое реле. Хм. Конечно можно дёргать триггер безусловно по датчику t, при каждом его изменении. Также, как он дёргается безусловно по смене input_number. А в action пускать только если condition выполнен... Попробую... Посилання на коментар Поділитися на інших сайтах More sharing options...
alexob Опубліковано: 25 березня 2021 Автор Поділитись Опубліковано: 25 березня 2021 Мне кажется у вас конфликтует условие below в в секции trigger и условие below в секции condition. Попробуйте сократить автоматизацию, временно выбросив реакцию на изменени input_number, как я показал под спойлером. Если все будет работать, то для input_number лучше создать отдельную автоматизацию с секцией condition. А чтобы не плодить одинаковые action - вынесите его в скрипт и дергайте этот скрипт с обеих, получившихся автоматизаций - id: '1616499389833' alias: Включение тестового реле description: '' trigger: - platform: numeric_state above: input_number.t_for_boiler_lock_on entity_id: sensor.narodmon_temperature action: - type: turn_on device_id: fb9e9e347ec5b2af7f6fa81ad4652c57 entity_id: switch.relay_2 domain: switch mode: single Посилання на коментар Поділитися на інших сайтах More sharing options...
silvan Опубліковано: 29 березня 2021 Поділитись Опубліковано: 29 березня 2021 - Котёл "забывает" настройку SetModeOverride и заново включается. Это что получается, HASS (или внешний термостат) должен долбить настройкой по котлу постоянно, чтоб тот не своевольничал?! Да, требуется постоянно посылать команду. Тут тема интересная... Сам управляющий контур котла состоит из двух частей: плата управления и внешний блок управления (крутилка с дисплеем). Так вот как я понял, они соединены также по ebus, ну или по аналогии. И внешний блок также с периодичностью посылает команде плате. Как показал мой котел на практике - раз в 5 минут. Также работает и комнатный блок управления по ebus - постоянной посылает сигналы. И еще: если на панели котла поставить допустим t носителя 50, то функцией SetModeOverride больше 50 поставить не удастся. Имейте ввиду. 1 Посилання на коментар Поділитися на інших сайтах More sharing options...
silvan Опубліковано: 29 березня 2021 Поділитись Опубліковано: 29 березня 2021 - Управление по питанию настраивал простыми триггерами на температуру в зале: a) если менее 10 - перевести реле подачи питания на котёл ВКЛ б) если выше 15 - перевести реле подачи питания на котёл ВЫКЛ Триггеры повесил на смену показаний датчика t, и на смену данных в регулировочных input_number, для отработки новых пожеланий пользователя. Так вот, на новое значение input_number триггерит безошибочно, а на новые значения t, вошедшие в диапазон триггера срабатывает 1 раз из 10. Полтергейст. Попробуй посмотреть в сторону механизма запуска python скриптов средствами haas. Я сделал так: # Температура кривой нагрева внутри if 7 <= datetime.datetime.now().hour <= 22: ti = float(hass.states.get('input_number.heating_curve_temp_inside_day').state) else: ti = float(hass.states.get('input_number.heating_curve_temp_inside_night').state) # Коэффициент кривой нагрева #factor = 0.6 factor = float(hass.states.get('input_number.heating_curve_factor').state) # Температура на улице ta = float(hass.states.get('sensor.ebusd_bai_outdoors_temperature').state) #ta = float(hass.states.get('weather.home').attributes['temperature']) #logger.info("ti = {0}; factor = {1}; ta = {2}".format(ti,factor,ta)) # Требуемая температура носителя flow_temp = float(round(ti*factor-ta*factor+ti,1)) flowtempdesired = str(flow_temp) hwctempdesired = str(hass.states.get('input_number.hwc_temp_desired').state) disablehc = "0" if hass.states.get('input_boolean.heating_disable').state == "off" else "1" disablehwcload = "0" if hass.states.get('input_boolean.heating_hwc_disable').state == "off" else "1" service_data = {'name': 'SetModeOverride', 'value': '0;{};{};-;-;{};0;{};-;0;0;0'.format(flowtempdesired, hwctempdesired, disablehc, disablehwcload)} logger.info("==== Flow temp {0} for conditions: ti={1}, factor={2}, ta={3}. Other data: disablehc={4}, disablehwcload={5}".format(flow_temp,ti,factor,ta,disablehc,disablehwcload)) hass.services.call('ebusd', 'ebusd_write', service_data, False) logger.info(service_data) И в автоматизации запуск этого скрипта раз в минуту. 1 Посилання на коментар Поділитися на інших сайтах More sharing options...
Рекомендовані повідомлення
Створіть акаунт або увійдіть у нього для коментування
Ви маєте бути користувачем, щоб залишити коментар
Створити акаунт
Зареєструйтеся для отримання акаунта. Це просто!
Зареєструвати акаунтУвійти
Вже зареєстровані? Увійдіть тут.
Увійти зараз