Hommyn / local_mqtt

17 stars 0 forks source link

Need mqtt support for water boilers #1

Open avbor opened 2 years ago

avbor commented 2 years ago

Please, add mqtt support for other compatible devices, especially - water boilers (ie Electrolux Centurio IQ 2.0).

bublikOff commented 2 years ago

++

the same thing for me ... looking for mqtt to control water heater

tayanov commented 2 years ago

And water heater and kettle too

panfmik commented 2 years ago

++ water boiler Electrolux Centurio IQ 2.0

berdyshev commented 2 years ago

I would like to have the integration for my Electrolux Centurio IQ 2.0. thanks

Hommyn commented 2 years ago

Please, add mqtt support for other compatible devices, especially - water boilers (ie Electrolux Centurio IQ 2.0).

We will definitely consider making all Hommyn compatibale devices work with local mqtt.

avbor commented 2 years ago

We will definitely consider making all Hommyn compatibale devices work with local mqtt.

Cool! Is any plans for that? This may take Weeks, Months or Years? =)

Hommyn commented 2 years ago

Cool! Is any plans for that? This may take Weeks, Months or Years? =)

Among 3rd party integtation tasks we have Google Assistant (already testing) and Mail.ru voice assiatant. We can consider next integration tasks in 1st quarter of 2022.

avbor commented 2 years ago

Among 3rd party integtation tasks we have Google Assistant (already testing) and Mail.ru voice assiatant. We can consider next integration tasks in 1st quarter of 2022.

Sad (I already bought a new dongle), but better than nothing. Thx! =)

bublikOff commented 2 years ago

Cool! Is any plans for that? This may take Weeks, Months or Years? =)

Among 3rd party integtation tasks we have Google Assistant (already testing) and Mail.ru voice assiatant. We can consider next integration tasks in 1st quarter of

I think that voice control is just a one time game ... Than it will just work as it is. But things like mqtt will open much more useful possibilities ..

bublikOff commented 2 years ago

Меня другой вопрос ... А чё мы на буржуйском здесь общаемся?) Вроде суппорт то на русском разговаривает)

Hommyn commented 2 years ago

Разговаривает. Но английский текст может пригодиться и пользователям из других стран.

bublikOff commented 2 years ago

Разговаривает. Но английский текст может пригодиться и пользователям из других стран.

Если исходить из моих познаний то бойлеры не совсем электролюксовские))) или вернее имеет мало отношения к головной европейской компании Хотя может другие аппараты представлены на рынке Европы

panfmik commented 2 years ago

Cool! Is any plans for that? This may take Weeks, Months or Years? =)

Among 3rd party integtation tasks we have Google Assistant (already testing) and Mail.ru voice assiatant. We can consider next integration tasks in 1st quarter of 2022.

есть новости ?

avbor commented 2 years ago

@Hommyn Any news about water boilers and mqtt? 1st quarter of 2022 is almost over...

Hommyn commented 2 years ago

@Hommyn Any news about water boilers and mqtt? 1st quarter of 2022 is almost over...

Unfortunately nothing new here. The team works on adding new devices to Hommyn app all the time. Local mqtt forwarding has low prioritity state in the backlog.

avbor commented 2 years ago

Very sad news...

bublikOff commented 2 years ago

Very sad news... using own usb dongle is the only way to deal with this "smart" boilers ... at least Ive no problems anymore and no need to deal with Electrolux cloud

avbor commented 2 years ago

using own usb dongle

Yeah, but, I'm already have two dongle from electrolux =) And yes, also I have one custom on esp home =)

bublikOff commented 2 years ago

using own usb dongle

Yeah, but, I'm already have two dongle from electrolux =) And yes, also I have one custom on esp home =)

you can sell them as they are useless =) and grab some money back)))

Lasta2007 commented 2 years ago

@Hommyn Any news about water boilers and mqtt? 1st quarter of 2022 is almost over...

Unfortunately nothing new here. The team works on adding new devices to Hommyn app all the time. Local mqtt forwarding has low prioritity state in the backlog.

Хорошо бы все же увеличить приоритет на эту опцию, сейчас системы умного дома очень популярны.

bublikOff commented 2 years ago

@Hommyn Any news about water boilers and mqtt? 1st quarter of 2022 is almost over...

Unfortunately nothing new here. The team works on adding new devices to Hommyn app all the time. Local mqtt forwarding has low prioritity state in the backlog.

Хорошо бы все же увеличить приоритет на эту опцию, сейчас системы умного дома очень популярны.

не третье своё время на выспрашивание функционала ... по крайней мере функционал для управления бойлером и конвекторами ... и вроде как кондеями присутствует в виде решения на базе ESP. В частности у меня бойлеры управляються через ESP и Home Assistant

DeKaN commented 2 years ago

@Lasta2007

  1. настраиваете на вашем локальном MQTT сервере поддержку SSL (на порте 8883, сертификат не обязательно валидный)
  2. добавляете на роутере dns-запись для mqtt.cloud.rusklimat.ru с ip адресом вашего локального MQTT сервера (например, для Keenetic ip host mqtt.cloud.rusklimat.ru 192.168.X.Y)
  3. отключаете и снова подаёте питание на устройство (так проще васего очистить dns-кеш на нём)
  4. открываете логи MQTT сервера и ищете там записи вида time="XXXX" level=debug msg="to auth record: YYYY". В этой строке будет с какой учёткой устройство пытается подключиться в формате auth-<username>-<password> или auth-<username>-<password><trash> (подсказка - username=rusclimate)
  5. добавляете учётку в MQTT сервере и ждёте, когда устройство подключится

В случае успеха у вас появится новый топик rusclimate/<device_type>/<device_token>/state (device_type и device_token можно найти в ссылке "поделиться устройством")

PS: пароль скорее всего одинаковый для всех и зашит в донгле, писать не буду здесь

zloi-litovets commented 2 years ago

@DeKaN Auth record приходит в таком формате: to auth record: [97 99 108 45 116 101 115 116 45 122 105 103 98 101 101 50 109 113 116 116 47 98 114 105 100 103 101 47 108 111 103 103 105 110 103 45 109 113 116 116 106 115 95 56 54 48 56 98 100 102 50 45 49 218 57 163 238 94 107 75 13 50 85 191 239 149 96 24 144 175 216 7 9]\n" с этим можно что-то сделать?

DeKaN commented 2 years ago

@zloi-litovets вам нужен ASCII to text converter. Можете найти любой, только проверьте, что выдаёт для вашего случая acl-test-zigbee2mqtt/bridge<...>. Некоторые ломаются, если числа не из 3 цифр (надо дописывать нули: 97 -> 097)

zloi-litovets commented 2 years ago

@DeKaN благодарю. Удалось увидеть топики устройства (бойлер), но увы, кроме топиками с ошибками нет больше ничего.

DeKaN commented 2 years ago

@zloi-litovets т.е. у вас появился только rusclimate/<device_type>/<device_token>/state/error? Попробуйте поменять режим устройства, может тогда появятся ещё топики

zloi-litovets commented 2 years ago

@DeKaN именно этот топик и появился. Изменения режимов ни на что не влияют.

zdch26 commented 1 year ago

Есть предположение, что метод с логом (просмотр username/password) больше не работает. По крайней мере у меня TLS с локальным MQTT сервером не срастается (возможно, добавили проверку сертификата на стороне устройства) и до следующего этапа не доходит.

DeKaN commented 1 year ago

@zdch26 у вас приходило обновление прошивки на устройство? на mqtt.cloud.rusklimat.ru до сих пор истёкший сертификат, вряд ли включили валидацию на уровне mqtt

Hommyn commented 1 year ago

Есть предположение, что метод с логом (просмотр username/password) больше не работает. По крайней мере у меня TLS с локальным MQTT сервером не срастается (возможно, добавили проверку сертификата на стороне устройства) и до следующего этапа не доходит.

Спасибо. Проверим. Возможно, зацепили при последнем обновлении.

zdch26 commented 1 year ago

@DeKaN каюсь, решал немного другую задачу и лихо написал.

  1. Какое-то время назад пытался подключаться к "реальному" mqtt.cloud.rusklimat.ru сторонним клиентом (mqtt сервер от русклимат, но попытка сходить на него не приложением и забрать статус), вот здесь с валидацией сертификатов встретил проблему
  2. ваш метод сегодня попробовал (mqtt сервер локальный, перенаправление на него), там все как и писали. Но как отвечал выше @zloi-litovets появляется только один топик для бойлера rusclimate/7/23b4ad345<еще_много_символов>/state/error/connection
DeKaN commented 1 year ago

@zdch26 для того, чтобы ходить на официальный надо:

  1. выключить валидацию сертификата на клиенте
  2. использовать логин rusclimate_app
  3. использовать MQTT Client ID Android 62ab1bb1033343e19c7838d4f97235b6 (там фильтрация по Android + uuid)
  4. подписываться сразу на топик rusclimate/7/<token>/state/#

Я пытался настроить локальный mqtt сервер на зеркалирование значений, но он некорректно реагирует на форсирование client id, поэтому я просто настроил в Mosquitto SSL на 8883 порту, добавил пользователя и переопределил имя сервера

Кстати, на официальном mqtt сейчас для моего устройства картина такая, как у вас во втором пункте. Может вы к нему подключаетесь клиентом?

zdch26 commented 1 year ago

@DeKaN mqtt.cloud.rusklimat.ru не дает подключаться с логином rusclimate_app и тем же паролем (как от устройства), поэтому к нему точно не подключался. Но что характерно сейчас сама попытка подключения уже наблюдается.

DeKaN commented 1 year ago

@zdch26 там другой пароль, начинается на 42, а не на 87 как у логина rusclimate Пароль зашит в приложении, ищется достаточно просто по логину или хосту

zdch26 commented 1 year ago

там другой пароль, начинается на 42, а не на 87 как у логина rusclimate

@DeKaN спасибо. Да, с паролем на '42' подключется и выдает информацию после подписки на топик rusclimate/7/.../state/# Но вот с публикацией (управлением) пока без результа бъюсь. Дайте наводку) Пробовал разные варианты типичных топиков (.../cmd, .../command и т.д.) с вариантами передачи значени json и без, но "брыкается" брокер. Да, облако Rusclimate, видимо, "живет" здесь https://www.syncleo-iot.com/ (там же и Polaris и Bork, кстати), но никакой документации не нашел.

shadowbiz commented 1 year ago

А на прямую с IP бойлера по API нельзя хотя бы температуру воды считать?

DeKaN commented 1 year ago

@zdch26 команды через запись в rusclimate/7/<token>/control/xxxx

zdch26 commented 1 year ago

@DeKaN спасибо, по моей задаче (подключение к mqtt.cloud.rusklimat.ru внешним клиентом) картинка сложилась.

Параллельно посмотрел по подключению к локальному mqtt брокеру, добавлю в копилку.

DeKaN commented 1 year ago

у меня используется 2.0.11 (через HA addons), ошибок не возникает изображение

возможно из-за того, что моё устройство проставляет с QoS = 0

zdch26 commented 1 year ago

Предполагаю, что дело в устройствах (их mqtt клиентах), могли быть реализованы по разному (я упражняюсь с Zanussi Artendo, что за донгл внутри - не смотрел). Чтобы проверить что именно шлет устройство по хорошему нужно сетевой дамп посмотреть, для этого разобрать TLS трафик, для этого (без mitm и танцев с бубном) дождаться mosquitto 2.1 #https://github.com/eclipse/mosquitto/issues/632.

baradetsky commented 1 year ago

Коллеги, ну так что, будете развивать тему MQTT для устройств Hommyn?? Очень хочется научить свой кондер Electrolux работать с Home Assistant без прокладки в виде УД Яндекса

DeKaN commented 1 year ago

@baradetsky я сделал так для своего кондиционера, потом добавил в секцию mqtt конфига для HA:

climate:
  - name: "Room Air Condition"
    unique_id: "electrolux_ac_<MAC>"
    retain: true
    initial: 23
    icon: mdi:air-conditioner
    current_temperature_topic: "rusclimate/8/<TOKEN>/state/sensor/temperature"
    temperature_state_topic: "rusclimate/8/<TOKEN>/state/temperature"
    fan_mode_state_topic: "rusclimate/8/<TOKEN>/state/speed"
    fan_mode_command_topic: "rusclimate/8/<TOKEN>/control/speed"
    mode_state_topic: "rusclimate/8/<TOKEN>/state/mode"
    mode_command_topic: "rusclimate/8/<TOKEN>/control/mode"
    fan_mode_state_template: >
      {% if value == 3 %}
        high
      {% elif value == 2 %}
        medium
      {% elif value == 1 %}
        low
      {% else %}
        auto
      {% endif %}
    fan_mode_command_template: >
      {% if value == "high" %}
        {{ 3 }}
      {% elif value == "medium" %}
        {{ 2 }}
      {% elif value == "low" %}
        {{ 1 }}
      {% else %}
        {{ 0 }}
      {% endif %}
    mode_state_template: >
      {% if value == 5 %}
        fan_only
      {% elif value == 4 %}
        heat
      {% elif value == 3 %}
        dry
      {% elif value == 2 %}
        cool
      {% elif value == 1 %}
        auto
      {% else %}
        off
      {% endif %}
    mode_command_template: >
      {% if value == "fan_only" %}
        {{ 5 }}
      {% elif value == "heat" %}
        {{ 4 }}
      {% elif value == "dry" %}
        {{ 3 }}
      {% elif value == "cool" %}
        {{ 2 }}
      {% elif value == "auto" %}
        {{ 1 }}
      {% else %}
        {{ 0 }}
      {% endif %}

Если у вашей модели другие режимы, то подберите нужные значения, наблюдая за MQTT при изменениях через приложение (оно будет общаться по UDP в локальной сети)

DurandAN commented 1 year ago

Try to use other MQTT broker for breather like emqx.io, not Mosquitto. Mosquitto didn't want to work in any way. No problems with MQTT for Ballu ASP-200 with emqx.io:

mqtt

WeslyG commented 1 year ago

Вот чет тоже понять не могу, настроил сертификаты, но в логах лишь.

2023-05-08 20:35:36: Client <unknown> closed its connection.
2023-05-08 20:35:40: New connection from 10.0.0.1:58990 on port 8883.
2023-05-08 20:35:41: OpenSSL Error[0]: error:1417C0C7:SSL routines:tls_process_client_certificate:peer did not return a certificate

Mqtt explorer правда без валидации сертов тоже не коннектит на порт 8883, что странно (и лог такой же). Видимо серты не корректно поставил?

Andrew55529 commented 1 year ago

Вот чет тоже понять не могу, настроил сертификаты, но в логах лишь.

2023-05-08 20:35:36: Client <unknown> closed its connection.
2023-05-08 20:35:40: New connection from 10.0.0.1:58990 on port 8883.
2023-05-08 20:35:41: OpenSSL Error[0]: error:1417C0C7:SSL routines:tls_process_client_certificate:peer did not return a certificate

Mqtt explorer правда без валидации сертов тоже не коннектит на порт 8883, что странно (и лог такой же). Видимо серты не корректно поставил?

А зачем тебе проверять сертификат? Устройства на это не смотрят

WeslyG commented 1 year ago

Все, разобрался, была та же проблема что к mosquitto не подключался с такой же ошибкой как и выше, смигрировал на emqx всю инсталляцию HA (вообще без проблем смигрировал если что, да и ssl на emqx из коробки включаются), и все полетело! Спасибо большое всем за этот тред, он очень помог.

Andrew55529 commented 1 year ago

Все, разобрался, была та же проблема что к mosquitto не подключался с такой же ошибкой как и выше, смигрировал на emqx всю инсталляцию HA (вообще без проблем смигрировал если что, да и ssl на emqx из коробки включаются), и все полетело! Спасибо большое всем за этот тред, он очень помог.

А какая версия mqtt на emqx? У меня получилось что котел подключается к версии 1.5.8 а дальше не в какую. А приложение не хочет). Ради экспериментов запускал дома 2 версии 2.что-то там и 1.5.8. Строил между ними мост и смотрел команды.

WeslyG commented 1 year ago

Все, разобрался, была та же проблема что к mosquitto не подключался с такой же ошибкой как и выше, смигрировал на emqx всю инсталляцию HA (вообще без проблем смигрировал если что, да и ssl на emqx из коробки включаются), и все полетело! Спасибо большое всем за этот тред, он очень помог.

А какая версия mqtt на emqx? У меня получилось что котел подключается к версии 1.5.8 а дальше не в какую. А приложение не хочет). Ради экспериментов запускал дома 2 версии 2.что-то там и 1.5.8. Строил между ними мост и смотрел команды.

У меня подключался бойлер Electrolux EWH 100 SmartInverter? Версия emqx 5.0.24 (последнюю ставил из стора ha через аддоны). Как я понял из документации, это MQTT 5.x, т.е версии emqx вроде как соотвествуют версии mqtt (но тут не уверен). mqtt explorer не показывает почему то $SYS топик..

Andrew55529 commented 1 year ago

Все, разобрался, была та же проблема что к mosquitto не подключался с такой же ошибкой как и выше, смигрировал на emqx всю инсталляцию HA (вообще без проблем смигрировал если что, да и ssl на emqx из коробки включаются), и все полетело! Спасибо большое всем за этот тред, он очень помог.

А какая версия mqtt на emqx? У меня получилось что котел подключается к версии 1.5.8 а дальше не в какую. А приложение не хочет). Ради экспериментов запускал дома 2 версии 2.что-то там и 1.5.8. Строил между ними мост и смотрел команды.

У меня подключался бойлер Electrolux EWH 100 SmartInverter? Версия emqx 5.0.24 (последнюю ставил из стора ha через аддоны). Как я понял из документации, это MQTT 5.x, т.е версии emqx вроде как соотвествуют версии mqtt (но тут не уверен). mqtt explorer не показывает почему то $SYS топик..

У меня emqx работает прекрасно. Но жрет больше гига оперативы. И в итоге крашиться иногда.

anym1re commented 1 year ago

@Lasta2007

  1. настраиваете на вашем локальном MQTT сервере поддержку SSL (на порте 8883, сертификат не обязательно валидный)
  2. добавляете на роутере dns-запись для mqtt.cloud.rusklimat.ru с ip адресом вашего локального MQTT сервера (например, для Keenetic ip host mqtt.cloud.rusklimat.ru 192.168.X.Y)
  3. отключаете и снова подаёте питание на устройство (так проще васего очистить dns-кеш на нём)
  4. открываете логи MQTT сервера и ищете там записи вида time="XXXX" level=debug msg="to auth record: YYYY". В этой строке будет с какой учёткой устройство пытается подключиться в формате auth-<username>-<password> или auth-<username>-<password><trash> (подсказка - username=rusclimate)
  5. добавляете учётку в MQTT сервере и ждёте, когда устройство подключится

В случае успеха у вас появится новый топик rusclimate/<device_type>/<device_token>/state (device_type и device_token можно найти в ссылке "поделиться устройством")

PS: пароль скорее всего одинаковый для всех и зашит в донгле, писать не буду здесь

"зашит в донгле", скажи, пожалуйста, что ты имеешь в виду, или можешь подсказать куда копать, чтобы найти этот пароль, спасибо