SCratORS / SmartIntercom

Умный домофон на ESP
GNU Affero General Public License v3.0
157 stars 19 forks source link

Мануал. Делаем управление домофоном через телеграм #3

Closed DivanX10 closed 3 years ago

DivanX10 commented 3 years ago

Внешний вид клавиатуры image

Создадим автоматизацию. Создайте например файлик с таким именем domofon_control_telegram.yaml и вставьте код ниже. Сам файлик domofon_control_telegram.yaml закидываем в automation old, это автоматизация через yaml. У меня настроено так automation old: !include_dir_merge_list includes/automation

- alias: 'Телеграм: Домофон. Управление'
  description: Управление домофоном через телеграм
  trigger:
  - platform: event
    event_type: telegram_callback
    event_data: {}
  condition: []
  action:
  - choose:
    - conditions:
      - condition: template
        value_template: '{{ trigger.event.data.command == ''/domofon'' }}'
      sequence:
      - service: telegram_bot.send_message
        data:
          target: '{{ trigger.event.data.chat_id }}'
          message: &msg |
            {{'\U00002699'}} **Режим работы домофона**
#Клавиатура
          inline_keyboard: &keyb
          - '{% set domofon_modes = states("input_select.smart_domofon_scrators_modes") %}
             {% if domofon_modes == "Не активен" %} {{"🟢"}}
             {% else %} {{"🔴"}}
             {% endif %} 
             Не активен:/domofon_not_active,
             {% set domofon_modes = states("input_select.smart_domofon_scrators_modes") %}
             {% if domofon_modes == "Открывать всегда" %} {{"🟢"}}
             {% else %} {{"🔴"}}
             {% endif %} 
             Открывать всегда:/domofon_open_always'
          - '{% if is_state("switch.smart_domofon_scrators_mute", "on") %} {{"🟢"}}
             {% else %} {{"🔴"}} 
             {% endif %}
             Беззвучный режим:/domofon_mute,
             {% set domofon_modes = states("input_select.smart_domofon_scrators_modes") %}
             {% if domofon_modes == "Сброс вызова" %} {{"🟢"}}
             {% else %} {{"🔴"}}
             {% endif %} 
             Сброс вызова:/domofon_reset_call'
          - '{% set domofon_modes = states("input_select.smart_domofon_scrators_modes") %}
             {% if domofon_modes == "Сброс вызова если нет ответа" %} {{"🟢"}}
             {% else %} {{"🔴"}}
             {% endif %} 
             Сброс вызова если нет ответа:/domofon_resetting_call_no_response'
          - Назад:/backhome

#Кнопка №1. Не активен
    - conditions:
      - condition: template
        value_template: '{{ trigger.event.data.command == "/domofon_not_active" }}'
      sequence:
      - service: input_select.select_option
        target:
          entity_id: input_select.smart_domofon_scrators_modes
        data:
          option: Не активен
      - delay:
          milliseconds: 300
      - service: telegram_bot.edit_message
        data:
          message_id: '{{ trigger.event.data.message.message_id }}'
          chat_id: '{{ trigger.event.data.user_id }}'
          callback_query_id: '{{ trigger.event.data.id }}'
          message: *msg
          inline_keyboard: *keyb

#Кнопка №2. Открывать всегда
    - conditions:
      - condition: template
        value_template: '{{ trigger.event.data.command == "/domofon_open_always" }}'
      sequence:
      - service: input_select.select_option
        target:
          entity_id: input_select.smart_domofon_scrators_modes
        data:
          option: Открывать всегда
      - delay:
          milliseconds: 300
      - service: telegram_bot.edit_message
        data:
          message_id: '{{ trigger.event.data.message.message_id }}'
          chat_id: '{{ trigger.event.data.user_id }}'
          callback_query_id: '{{ trigger.event.data.id }}'
          message: *msg
          inline_keyboard: *keyb

#Кнопка №3. Беззвучный режим
    - conditions:
      - condition: template
        value_template: '{{ trigger.event.data.command == "/domofon_mute" }}'
      sequence:
      - service: switch.toggle
        target:
          entity_id: switch.smart_domofon_scrators_mute
      - delay:
          milliseconds: 300
      - service: telegram_bot.edit_message
        data:
          message_id: '{{ trigger.event.data.message.message_id }}'
          chat_id: '{{ trigger.event.data.user_id }}'
          callback_query_id: '{{ trigger.event.data.id }}'
          message: *msg
          inline_keyboard: *keyb

#Кнопка №4. Сброс вызова
    - conditions:
      - condition: template
        value_template: '{{ trigger.event.data.command == "/domofon_reset_call" }}'
      sequence:
      - service: input_select.select_option
        target:
          entity_id: input_select.smart_domofon_scrators_modes
        data:
          option: Сброс вызова
      - delay:
          milliseconds: 300
      - service: telegram_bot.edit_message
        data:
          message_id: '{{ trigger.event.data.message.message_id }}'
          chat_id: '{{ trigger.event.data.user_id }}'
          callback_query_id: '{{ trigger.event.data.id }}'
          message: *msg
          inline_keyboard: *keyb

#Кнопка №5. Сброс вызова если нет ответа
    - conditions:
      - condition: template
        value_template: '{{ trigger.event.data.command == "/domofon_resetting_call_no_response" }}'
      sequence:
      - service: input_select.select_option
        target:
          entity_id: input_select.smart_domofon_scrators_modes
        data:
          option: Сброс вызова если нет ответа
      - delay:
          milliseconds: 300
      - service: telegram_bot.edit_message
        data:
          message_id: '{{ trigger.event.data.message.message_id }}'
          chat_id: '{{ trigger.event.data.user_id }}'
          callback_query_id: '{{ trigger.event.data.id }}'
          message: *msg
          inline_keyboard: *keyb
    default: []
  mode: restart
SCratORS commented 3 years ago

Спасибо!

SAOPP commented 3 years ago

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

DivanX10 commented 3 years ago

Спасибо!

и вам спасибо за отличный проект )

gidiara commented 2 years ago

Я просто в восторге... Как вам фразочка: " Сам файлик domofon_control_telegram.yaml закидываем в automation old, это автоматизация через yaml. У меня настроено так automation old: !include_dir_merge_list includes/automation" Я загрузил в ESP недоразумение в виде ESPhome. Установил туда domofon.yaml Но что означает вышеуказанная фраза... Куда, простите, вставлять этот файл??? В какую bin прошивку или где Вы вообще нашли automation old??? Какое-то надругательство, а не инструкция. Где telegram chat ID, где токен?? Горите в аду, как говорится...

DivanX10 commented 2 years ago

Я просто в восторге... Как вам фразочка: " Сам файлик domofon_control_telegram.yaml закидываем в automation old, это автоматизация через yaml. У меня настроено так automation old: !include_dir_merge_list includes/automation" Я загрузил в ESP недоразумение в виде ESPhome. Установил туда domofon.yaml Но что означает вышеуказанная фраза... Куда, простите, вставлять этот файл??? В какую bin прошивку или где Вы вообще нашли automation old??? Какое-то надругательство, а не инструкция. Где telegram chat ID, где токен?? Горите в аду, как говорится...

А кто виноват, что вы не понимаете, я, вы или автор этого проекта? Я виноват в том, что по своему желанию выложив этот код вы не понимаете что с ним делать? Я виноват в том, что вы ленитесь читать документации? Может вам стоит потратить время на чтение документации, зайти в чат в телеграм и воспользоваться поиском? Может вам я еще чем-то должен? Вы видимо не понимаете что такое open source, а тем более issue в гитхабе. Никто, ничего, никому не должен, желающие выкладывают инфу так, как хотят, а могут вообще ничего не выкладывать.

Это не инструкция, а всего лишь мой вариант кода, который я выложил сюда ПО СВОЕМУ ЖЕЛАНИЮ. Тут не нужна документация, ибо есть код и кто мало-мальски знает Home Assistant и умеет читать документацию, тот без труда это сделает, но на худой момент спрашивают в чате smartintercom

1) Про !include_dir_merge_list includes/automation читаем здесь

2) Про телеграм читаем здесь

P.S: Этот код уже устарел. Почему устарел? Ответ можно найти здесь

slgeo commented 1 year ago

Я просто в восторге... Как вам фразочка: " Сам файлик domofon_control_telegram.yaml закидываем в automation old, это автоматизация через yaml. У меня настроено так automation old: !include_dir_merge_list includes/automation" Я загрузил в ESP недоразумение в виде ESPhome. Установил туда domofon.yaml Но что означает вышеуказанная фраза... Куда, простите, вставлять этот файл??? В какую bin прошивку или где Вы вообще нашли automation old??? Какое-то надругательство, а не инструкция. Где telegram chat ID, где токен?? Горите в аду, как говорится...

Человек поделился трудами, а вы чушь какую-то несете, забанить неадеквата