Интеграция Amazfit Band 5 в Home Assistant

После приобретения фитнес браслета Amazfit Band 5 захотелось перенести все его метрики в систему умного дома Home Assistant. Беглое изучение вопроса в интернете привело к нахождению одной инструкции, датированной 2019 годом. Однако, несмотря на это, было решено написать свою статью, которая является скорее адаптацией той информации под собственные потребности, нежели просто переводом.

Реализовывать задуманное будем через Tasker, а так как стандартное приложение для управления браслетом Zepp не умеет с ним работать, то вместо него воспользуемся Notify for Amazfit & Zepp (в качестве аналога можно выбрать Tools & Amazfit, документация здесь). До тех пор, пока официальное приложение Home Assistant для Android не научится напрямую взаимодействовать с Tasker`ом, придется использовать сторонний плагин.

1. Настройка Home Assistant

Добавляем необходимые сенсоры:

sensor:

  # Частота сердечных сокращений
  - platform: mqtt
    name: health_pulse
    state_topic: "amazfit/pulse"
    unit_of_measurement: "уд/мин"
    icon: mdi:heart-pulse

  # Количество пройденных шагов
  - platform: mqtt
    name: health_steps
    state_topic: "amazfit/steps"
    unit_of_measurement: "шаг."
    icon: mdi:shoe-print

  # Заряд аккумулятора
  - platform: mqtt
    name: health_battery
    state_topic: "amazfit/battery"
    device_class: battery
    unit_of_measurement: "%"

binary_sensor:

  # Состояние сна
  - platform: mqtt
    name: health_sleep
    state_topic: "amazfit/sleep"

С помощью customize.yaml устанавливаем для них названия:

sensor.health_pulse:
  friendly_name: "Пульс (ЧСС)"
sensor.health_steps:
  friendly_name: "Пройдено шагов"
sensor.health_battery:
  friendly_name: "Заряд аккумулятора"
binary_sensor.health_sleep:
  friendly_name: "Состояние сна"
  icon: mdi:sleep

Настраиваем карточку Lovelace:

- title: "Здоровье"
  path: health
  icon: mdi:heart-half-full
  cards:
    - type: entities
      title: "Amazfit Band 5"
      show_header_toggle: false
      entities:
        - sensor.health_pulse
        - sensor.health_steps
        - binary_sensor.health_sleep
        - sensor.health_battery

Создаем долгосрочный токен доступа в настройках профиля вашего пользователя:

2. Установка мобильных приложений

Скачиваем и устанавливаем необходимое ПО на ваш телефон:

Добавляем все приложения в автозагрузку и отключаем контроль фоновой активности:

После запускаем Notify for Amazfit & Zepp и выполняем сопряжение с браслетом, следуя инструкциям на экране. Возможно, приложению понадобятся дополнительные разрешения, о чем оно при необходимости само предупредит.

Далее в правом верхнем углу нажимаем на иконку конверта, переходим в раздел "Инструменты" и включаем опцию "Интеграция с Tasker":

3. Настройка передачи значений

Заходим в Tasker, открываем вкладку "TASKS" и с помощью кнопки "+" добавляем новую задачу. После ввода названия откроется список действий. В данный момент он пуст, нам необходимо добавить новое действие с помощью соответствующей кнопки. Выбираем "Плагин" -> "Home Assistant Plug-in for Tasker" -> "Call Service". Убираем задержку и переходим к редактированию конфигурации. Добавляем адрес и токен доступа Home Assistant в настройки, указываем название службы и данные, которые ей необходимо передать. Проводим тестовую отправку, и если все хорошо - выходим назад к содержимому вкладки "TASKS".

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

Задача Служба Данные
HA MQTT: amazfit/pulse mqtt.publish {"topic": "amazfit/pulse", "payload": "%value"}
HA MQTT: amazfit/steps mqtt.publish {"topic": "amazfit/steps", "payload": "%value"}
HA MQTT: amazfit/battery mqtt.publish {"topic": "amazfit/battery", "payload": "%value"}
HA MQTT: amazfit/sleep (on) mqtt.publish {"topic": "amazfit/sleep", "payload": "on"}
HA MQTT: amazfit/sleep (off) mqtt.publish {"topic": "amazfit/sleep", "payload": "off"}

После переходим на вкладку "PROFILES" и добавляем новый элемент "Событие" -> "Система" -> "Intent Received". В поле "Действие" вводим имя необходимого интента и связываем созданную запись с соответствующей задачей.

Похожим образом добавляем все из списка:

Действие Задача
com.mc.miband.heartRateGot HA MQTT: amazfit/pulse
com.mc.miband.stepsGot HA MQTT: amazfit/steps
com.mc.miband.batteryStatGot HA MQTT: amazfit/battery
com.mc.miband.tasker.fellAsleep HA MQTT: amazfit/sleep (on)
com.mc.miband.tasker.wokeUp HA MQTT: amazfit/sleep (off)

Применяем изменения и выходим из программы.

4. Результат

Если все было сделано правильно, то спустя некоторое время в Home Assistant появятся данные, переданные с браслета.

Внимание! Все действия, описанные выше, вы вополняете на свой страх и риск. Автор не несет никакой ответственности за любой вред, причиненный пользователю или третьим лицам в результате использования материалов, программного обеспечения и другой информации, размещенной на данной странице.

Обсуждение

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *