Skip to content

Instantly share code, notes, and snippets.

@silentroach
Last active July 4, 2025 08:40
Show Gist options
  • Save silentroach/d9cb5c8d0bfda55bd535c85132def42a to your computer and use it in GitHub Desktop.
Save silentroach/d9cb5c8d0bfda55bd535c85132def42a to your computer and use it in GitHub Desktop.
Поддержка Royal Thermo Fenix DC через Hommyn -> MQTT -> Home Assistant

У меня на сервере NixOS и конфиги у меня выглядят немного более дружелюбно, здесь же прикладываю то, что им генерится, поэтому формат может быть чуть менее читабельный, тут сорян.

Как в целом сделать так, чтобы через MQTT к этому всему получить доступ, можно почитать где-то тут

# выключатель дисплея на панели
- switch:
availability:
- payload_available: 'false'
payload_not_available: 'true'
topic: rusclimate/15/31db2a07bbd7dff65909e3b8240db5fd/state/error/connection
command_topic: rusclimate/15/31db2a07bbd7dff65909e3b8240db5fd/control/backlight
icon: mdi:brightness-6
name: Royal Thermo Fenix DC Backlight
payload_off: '0'
payload_on: '1'
state_off: '0'
state_on: '1'
state_topic: rusclimate/15/31db2a07bbd7dff65909e3b8240db5fd/state/backlight
unique_id: royal_thermo_fenix_dc_31db2a07bbd7dff65909e3b8240db5fd_backlight
# управление вертикальными и горизонтальными жалюзи (правильно назвал?) ведется через
# один топик, где в значении закодировано сразу несколько показателей, поэтому храним его
# отдельно, а в самом модуле управления читаем текущее значение отсюда
- sensor:
name: Royal Thermo Fenix DC Program Raw Data
state_topic: rusclimate/15/31db2a07bbd7dff65909e3b8240db5fd/state/program_data/0
unique_id: royal_thermo_fenix_dc_program_raw
# сам теплонасос
- climate:
availability:
- payload_available: 'false'
payload_not_available: 'true'
topic: rusclimate/15/31db2a07bbd7dff65909e3b8240db5fd/state/error/connection
current_temperature_topic: rusclimate/15/31db2a07bbd7dff65909e3b8240db5fd/state/sensor/temperature
fan_mode_command_template: "{% if value == \"auto\" %}\n {{ 0 }}\n{% elif value\
\ == \"quiet\" %}\n {{ 1 }}\n{% elif value == \"low\" %}\n {{ 2 }}\n{% elif\
\ value == \"medium\" %}\n {{ 3 }}\n{% elif value == \"high\" %}\n {{ 4 }}\n\
{% elif value == \"turbo\" %}\n {{ 5 }}\n{% endif %}\n"
fan_mode_command_topic: rusclimate/15/31db2a07bbd7dff65909e3b8240db5fd/control/speed
fan_mode_state_template: "{% if value == \"0\" %}\n auto\n{% elif value == \"\
1\" %}\n quiet\n{% elif value == \"2\" %}\n low\n{% elif value == \"3\" %}\n\
\ medium\n{% elif value == \"4\" %}\n high\n{% elif value == \"5\" %}\n turbo\n\
{% endif %}\n"
fan_mode_state_topic: rusclimate/15/31db2a07bbd7dff65909e3b8240db5fd/state/speed
fan_modes:
- auto
- quiet
- low
- medium
- high
- turbo
icon: mdi:heat-pump
initial: 24
max_temp: 35
min_temp: 10
mode_command_template: "{% if value == \"off\" %}\n {{ 0 }}\n{% elif value ==\
\ \"auto\" %}\n {{ 1 }}\n{% elif value == \"cool\" %}\n {{ 2 }}\n{% elif value\
\ == \"dry\" %}\n {{ 3 }}\n{% elif value == \"heat\" %}\n {{ 4 }}\n{% elif\
\ value == \"fan_only\" %}\n {{ 5 }}\n{% endif %}\n"
mode_command_topic: rusclimate/15/31db2a07bbd7dff65909e3b8240db5fd/control/mode
mode_state_template: "{% if value == \"0\" %}\n off\n{% elif value == \"1\" %}\n\
\ auto\n{% elif value == \"2\" %}\n cool\n{% elif value == \"3\" %}\n dry\n\
{% elif value == \"4\" %}\n heat\n{% elif value == \"5\" %}\n fan_only\n{%\
\ endif %}\n"
mode_state_topic: rusclimate/15/31db2a07bbd7dff65909e3b8240db5fd/state/mode
modes:
- auto
- 'off'
- cool
- heat
- dry
- fan_only
name: Royal Thermo Fenix DC
precision: 0.1
retain: true
swing_horizontal_mode_command_template: "{% set current = states('sensor.royal_thermo_fenix_dc_program_raw_data')\
\ | default('00000000') %}\n{% set encoded = 0 %}\n\n{% if value == \"off\"\
\ %}\n {% set encoded = 0 %}\n{% elif value == \"on\" %}\n {% set encoded\
\ = 1 %}\n{% elif value == \"<<\" %}\n {% set encoded = 2 %}\n{% elif value\
\ == \"<\" %}\n {% set encoded = 3 %}\n{% elif value == \"|\" %}\n {% set\
\ encoded = 4 %}\n{% elif value == \">\" %}\n {% set encoded = 5 %}\n{% elif\
\ value == \">>\" %}\n {% set encoded = 6 %}\n{% endif %}\n\n{{ current[:3]\
\ + encoded|string + current[4:] }}\n"
swing_horizontal_mode_command_topic: rusclimate/15/31db2a07bbd7dff65909e3b8240db5fd/control/program_data/0
swing_horizontal_mode_state_template: "{% set encoded = value[3] | int %}\n\n\
{% if encoded == 0 %}\n off\n{% elif encoded == 1 %}\n on\n{% elif encoded\
\ == 2 %}\n <<\n{% elif encoded == 3 %}\n <\n{% elif encoded == 4 %}\n |\n\
{% elif encoded == 5 %}\n >\n{% elif encoded == 6 %}\n >>\n{% endif %}\n"
swing_horizontal_mode_state_topic: rusclimate/15/31db2a07bbd7dff65909e3b8240db5fd/state/program_data/0
swing_horizontal_modes:
- 'off'
- 'on'
- '<<'
- <
- '|'
- '>'
- '>>'
swing_mode_command_template: "{% set current = states('sensor.royal_thermo_fenix_dc_program_raw_data')\
\ | default('00000000') %}\n{% set encoded = 0 %}\n\n{% if value == \"off\"\
\ %}\n {% set encoded = 0 %}\n{% elif value == \"on\" %}\n {% set encoded\
\ = 1 %}\n{% elif value == \"10\" %}\n {% set encoded = 2 %}\n{% elif value\
\ == \"30\" %}\n {% set encoded = 3 %}\n{% elif value == \"50\" %}\n {% set\
\ encoded = 4 %}\n{% elif value == \"70\" %}\n {% set encoded = 5 %}\n{% elif\
\ value == \"90\" %}\n {% set encoded = 6 %}\n{% endif %}\n\n{{ current[:1]\
\ + encoded|string + current[2:]}}\n"
swing_mode_command_topic: rusclimate/15/31db2a07bbd7dff65909e3b8240db5fd/control/program_data/0
swing_mode_state_template: "{% set encoded = value[1] | int %}\n\n{% if encoded\
\ == 0 %}\n off\n{% elif encoded == 1 %}\n on\n{% elif encoded == 2 %}\n \
\ 10\n{% elif encoded == 3 %}\n 30\n{% elif encoded == 4 %}\n 50\n{% elif\
\ encoded == 5 %}\n 70\n{% elif encoded == 6 %}\n 90\n{% endif %}\n"
swing_mode_state_topic: rusclimate/15/31db2a07bbd7dff65909e3b8240db5fd/state/program_data/0
swing_modes:
- 'off'
- 'on'
- '10'
- '30'
- '50'
- '70'
- '90'
temperature_command_template: '{{value | int}}'
temperature_command_topic: rusclimate/15/31db2a07bbd7dff65909e3b8240db5fd/control/temperature
temperature_state_topic: rusclimate/15/31db2a07bbd7dff65909e3b8240db5fd/state/temperature
temperature_unit: C
unique_id: royal_thermo_fenix_dc_31db2a07bbd7dff65909e3b8240db5fd
@BoroBro
Copy link

BoroBro commented Jul 4, 2025

Спасибо. У меня RTFI-24HN8 и отличаются топики публикуемые донглом. Нет раздела control, всё напрямую лежит в state. В остальном совпадают и есть еще штук 5-7 настроек. Если вы не против, то когда свой конфиг сделаю попозже, положу тут? Вдруг кому пригодится.

@silentroach
Copy link
Author

да без проблем

но возможно стоит сделать свой гист и дать на него ссылку и здесь и в том треде)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment