Отправка уведомлений в VK
Установка и настройка интеграции Home Assistant для отправки сообщений в VK.

В связи с ограничением доступа к Telegram имеет смысл настроить резервный канал уведомлений, например в VK. Готовой интеграции для VK не нашлось, поэтому мы написали свою, которая устанавливается через HACS и настраивается через веб-интерфейс.
Если вы хотите настроить уведомления в MAX, то это будет сделать в разы сложнее из-за того что на платформе пока нет возможности создать ботов для всех желающих
Настройка сообщества VK
Для того чтобы с помощью бота отправлять сообщения вам нужно создать своё сообщество (не забудьте сделать сообщество закрытым). После создания сообщества перейдите в раздел управления сообществом в раздел Дополнительно → Работа с API и создайте новый ключ доступа. Запишите созданный ключ - он нам понадобится для настройки интеграции.
Рекомендуем выбрать сразу следующие разрешения:
- Разрешить приложению доступ к управлению сообществом
- Разрешить приложению доступ к сообщениям сообщества
- Разрешить приложению доступ к фотографиям сообщества
- Разрешить приложению доступ к документам сообщества


В разделе управления сообществом перейдите в раздел Сообщения, включите Сообщения сообщества и сохраните изменения. После этого на странице сообщества появится кнопка Сообщения, нажмите на нее и отправьте любое сообщение.

Настройка Long Poll API
Для того чтобы бот мог подключаться к VK для получения входящих сообщений обязательно включите Long Poll API и выберите тип Входящее сообщение.


Установка интеграции VK Notify
Перейдите в HACS, справа вверху нажмите на кнопку с тремя точками, из меню выберите Пользовательские репозитории, в открывшемся окне введите:
- Репозиторий:
https://github.com/udocs-ru/ha_vk_notify - Тип:
Интеграция

После добавления репозитория обновите страницу HACS, в поиске найдите VK Notify, перейдите на страницу интеграции и нажмите Скачать в правом нижнем углу страницы.
Настройки → Система, в правом верхнем углу нажмите на кнопку и подтвердите перезагрузку.Настройка интеграции VK Notify
В Home Assistant перейдите в раздел Настройки → Устройства и службы, на вкладке Интеграции в правом нижнем углу нажмите на кнопку Добавить интеграцию, в открывшемся окне в поиске введите VK Notify и нажмите на найденную интеграцию.

В первом окне настроек интеграции введите API токен, введите произвольное название и нажмите Подтвердить.

- Токен доступа: API ключ сообщества, который получали ранее в настройках сообщества
- Название: Произвольное название, которое будет отображаться в автоматизациях.
Далее выберите тип подключения в зависимости от того с какими правами доступа вы получили API ключ:

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

Проверка
Перед тем как создавать автоматизации удобней всего проверить работоспособность интеграции через Инструменты разработчика.
Отправка сообщения
В Home Assistant перейдите Настройки → Инструменты разработчика → Действия. В поле действия с помощью поиска найдите и выберите Отправить сообщение уведомления - notify.send_message.
- Цель: Выберите название, которое вы указывали в настройках интеграции.
- Сообщение: Любое текстовое сообщение для теста.

После нажатия на кнопку Выполнить действие вам должно прийти сообщение от имени вашего сообщества.
Отправка фото
В Home Assistant перейдите Настройки → Инструменты разработчика → Действия. В поле действия с помощью поиска найдите и выберите Отправить фото - vk_notify.send_photo.
- Цель: Выберите название, которое вы указывали в настройках интеграции.
- URL: Укажите адрес изображения в интернете или локальной сети
- Файл: Укажите путь до локального файл изображения на сервере (путь должен быть добавлен в
allowlist_external_dirs) - Подпись: Любое текстовое сообщение для теста.

После нажатия на кнопку Выполнить действие вам должно прийти сообщение с фотографией от имени вашего сообщества.
Получение сообщений
В Home Assistant перейдите Настройки → Инструменты разработчика → События. В пункте Подписаться на событие в поле Событие введите vk_notify_text и нажмите кнопку Начать слушать.

Перейдите в VK в чат с ботом и отправьте любое сообщение, на странице Инструменты разработчика должны появиться данные о полученном сообщении. Так же бот при получении сообщений вызывает метод о прочтении сообщения, это можно увидеть по двум галочкам в чате.
Точно так же вы можете подписаться на событие vk_notify_command, в отличии от vk_notify_text это событие обрабатывает только сообщения в чате, которые начинаются с /. Например при отправке /light on придёт сообщение с командой light и аргументом on.
Создание чатов сообщества в VK
Если вам необходимо чтобы уведомления видели не только вы, то лучше всего создать чат с ботом и отправлять сообщения туда. Вы можете создать несколько подключений и отправлять разные типы уведомлений в разные чаты.
Чаты сообщества чуть отличаются от обычных чатов, для того чтобы создать такой чат перейдите в Управление сообществом, в правом меню выберите Чаты и нажмите Создать чат.

После создания чата вы можете в него перейти и настроить описание и аватарку, а так же поделиться ссылкой для приглашения других пользователей. Список доступных чатов отображается на главной странице сообщества в разделе "Чаты".
Если вы уже настроили интеграцию, то можете перейти в список записей для интеграции и через меню выбрать Перенастроить. Для отображения списка доступных чатов интеграция запросит их через API.
Итог
Теперь вы можете совместно или вместо других интеграций использовать уведомления в VK. Небольшие примеры автоматизаций приведены в статье про настройку уведомлений в Telegram или на странице GitHub.
Если вам не хватает каких-то функций в данной интеграции, то напишите об этом в комментариях - мы постараемся их реализовать.
Обсуждение
Как я удачно наткнулся на эту интеграцию - именно то что нужно. Спасибо.
Планируется добавить форматирование текста сообщений? VK не так удобно устроен как telegram в этом смысле, но возможности форматирования есть: https://dev.vk.com/ru/reference/objects/message **(format_data)**
Правда придется парсить текст вручную по формату HTML или Markdown, приводя его к требованиям VK.
Для управления стеной нужен токен получаемый через oauth и то судя по документации эти методы недоступны всем по умолчанию, нужно запрашивать у вк специальные права. oauth-токен это совсем другой механизм, с его помощью нельзя управлять ботом в чате.
Все, понял, для обработки команд нужно чтобы ключ был добавлен как Long Poll API
Подскажите, что может быть с настройками, не прилетают события при тестировании в девелопере?
Может ламерский вопрос, но всеже...
А какой вид токена для этого должен быть? и как его получить? было б замечательно хоть какую инструкцию...
На vk не отправляйте, там я смотрел ничего не вышло... только чуть ИП не открыл 😁
Нет, к сожалению такой возможности нет. Такое ощущение что и публикация не стену не должна работать с этим типом токена, но видимо в вк где-то баг.
и добавление клавиатуры в чат, былобы круто
а как редактировать запись на стене? вообще будет такая возможность? никак не смог победить .... а хотелось чтоб висела одна запись и на ней отображались данные из ha.
тогда ждем меню с нетерпением
ВК не воспринимает такие ссылки как команды или ссылки и принудительно их никак не сделать ссылками. Но меню с кнопками в сообщении и под клавиатурой сейчас в разработке.



