Для простой реализации такого мониторинга можно использовать как простые средства из репозитория HACS в Home Assistant так и более навороченные. Рассмотрим оба варианта, возможно кому-то хватит и простой реализации.
Пример 1. Простая реализация через HACS репозитормй auto-entities. Ищем, качаем, ставим. Примерный код (вы можете изменить код по своему усмотрению, вариантов реализаций разнообразная) будет выглядить следующим образом.
cards: - type: custom:auto-entities card: type: entities show_header_toggle: false title: Истекает заряд на АКБ (<20%) filter: include: - entity_id: sensor.*_battery exclude: - state: "off" - state: "unavailable" - state: ">20" - entity_id: sensor.vacuum_battery sort: method: state reverse: false numeric: true count: 100
В данном примере : мы собираем все сущности от датчиков с батарейками с именем sensor.*_battery (это стандартная политика наименований датчиков в сети). Возможно у вас будут другие варианты, все это индивидуально. С помощью фильтра filter мы отфутболиваем не нужные нам статусы проблемных устройств – те что не доступны в сети “unavailable”, те что отключены “off”, те что значения заряда > 20%, а также сенсор заряда АКБ нашего пылесоса например Xiaomi/etc. так как это зарядное устройство и нам оно не нужно в общем списке). Таким образом имеем картину в интерфейсе Home Assistant (у меня нашлось только 2 таких датчика с низким зарядом менее 20%)
Тут вроде все понятно и практично. Перейдем к более интересным примерам. Для этого из HACS установим дополнительный модуль репозитория Battery State Card. В HACS есть несколько интересных модулей, но пока остановимся на этом.
Выбираем Install (Установить). У меня он уже установлен, поэтому кнопки Install нет на скрине выше. Установили, перегрузили Home Assistant, двигаемся далее.
Пример 2. Красившая реализация. 🙂 Создадим список устройств заряд которых менее 15% с цветовой раскраской заряда. Цвета заряда используются стандартные (не такие яркие), конфигурировать мы их пока не будем. Дефолтные значения : от 100 и до 50 – зеленый, от 50 и до 20 – желтый и от 20 и менее – красный.
- type: vertical-stack cards: - type: custom:battery-state-card title: "Пример-2. Заряд (<15%)" sort_by_level: "asc" entities: filter: include: # filters for auto-adding - name: entity_id value: "sensor.*_battery" exclude: - name: state value: 15 operator: ">" - name: state value: "Unavailable" - name: state value: "Battery*"
Пример-3. Разнообразим цветовой гаммой. Создадим список только из устройств заряд которых менее 15% с цветовой раскраской по нашему усмотрению (более красный), добавим последнее состояние датчика опроса, отсортируем по значению от большего к меньшему, выведем только 1 датчик на экран (если будет более датчиков, то список можно будет раскрыть кликом мыши) для примера, ну и применим фильтры из примера 1.
- type: vertical-stack cards: - type: custom:battery-state-card title: "Истекает заряд на датчиках (<15%)" sort_by_level: "asc" collapse: 4 secondary_info: last_updated color_thresholds: - value: 15 color: "red" entities: filter: include: # filters for auto-adding - name: entity_id value: "sensor.*_battery" exclude: - name: state value: 15 operator: ">" - name: state value: "Unavailable" - name: state value: "Battery*"
Пример-4. Создадим список всех устройств заряда с градиентом, добавим последнее состояние датчика опроса, отсортируем по значению от большего к меньшему, выведем только 5 значений датчиков на экран (если будет более то список можно будет раскрыть) для примера, ну и применим фильтры из примера 1.
- type: vertical-stack cards: - type: custom:battery-state-card title: "Текущий заряд на датчиках" sort_by_level: "asc" collapse: 5 secondary_info: last_updated color_gradient: - "#ff0000" # red - "#ffff00" # yellow - "#00ff00" # green entities: filter: include: # filters for auto-adding - name: entity_id value: "sensor.*_battery" exclude: - name: state value: "Unavailable" - name: state value: "Battery*"
Пример-5.Создадим список всех устройств заряда с яркими цветами и добавим синий, добавим последнее состояние датчика опроса, отсортируем по значению от большего к меньшему, выведем только 10 значений датчиков на экран (если будет более то список можно будет раскрыть) для примера, ну и применим фильтры из примера 1. Значения заряда от 70% и до 40% будет синим.
- type: vertical-stack cards: - type: custom:battery-state-card title: "Заряд на датчиках" sort_by_level: "asc" collapse: 10 secondary_info: last_updated color_thresholds: - value: 15 color: "red" - value: 40 color: "yellow" - value: 70 color: "blue" - value: 100 color: "green" entities: filter: include: # filters for auto-adding - name: entity_id value: "sensor.*_battery" exclude: - name: state value: "Unavailable" - name: state value: "Battery*"
Реализации вариантов хватает. Дерзайте.
auto-entities это моя лажа. Исправим.
подскажите, а в auto-entities можно цвета менять? да и вообще – в документации ни слова про state_color…
или отголоски старой версии либо ошибка. исправил.