После приобретения фитнес браслета 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. Установка мобильных приложений
Скачиваем и устанавливаем необходимое ПО на ваш телефон:
- Tasker
- Home Assistant Plug-In for Tasker
- Notify for Amazfit & Zepp (необходима PRO-лицензия)
Добавляем все приложения в автозагрузку и отключаем контроль фоновой активности:
После запускаем 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 появятся данные, переданные с браслета.