Для того, чтобы посчитать сколько по времени работало определенное устройство, в Home Assistant используется платформа history_stats. С ее помощью можно, например, вести подсчет времени работы умной розетки, к которой подключен телевизор / обогреватель / компьютер или другая техника. Или можно посчитать сколько времени Вы находились дома, сколько по времени был включен свет и так далее.

Для реализации задачи создаем новый файл (с любым названием и расширением yaml) в папке sensor (создается при выносе конфигурации во внешние файлы) и прописываем туда:

- platform: history_stats
  name: TV.today
  entity_id: switch.wifi_xiaomi_socket
  state: "on"
  type: time
  start: "{{ now().replace(hour=0, minute=0, second=0) }}"
  end: "{{ now() }}"
  • В поле entity_id: прописываем сущность, которую будем отслеживать. Найти ее можно в панели разработчика, на вкладке «Состояния». В моем случае это Wi-Fi розетка Xiaomi, к которой подключен ПК и TV.
  • В поле state: задаем статус, при нахождении в котором сущности, будет вестись подсчет времени.
  • В полях start: и end: задается время начала и время окончания подсчета.

Например, для вывода времени работы за сегодня нужно написать как приведено в примере выше. За вчера:

end: "{{ now().replace(hour=0, minute=0, second=0) }}"
duration:
  hours: 24

При этом строчка start: не нужна, прописанное в строчке end: указывает, что считать до 00:00 сегодняшнего дня, а duration позволяет указать продолжительность (за 24 часа). Аналогичным образом можно вывести значение и за месяц, прописав вместо hours значение days. Если планируется выводить на экран значения за разные промежутки времени, то копируем код из первого примера нужное количество раз, меняя при этом поля start, end и duration.

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

- platform: template
  sensors:
    tvtoday:
      friendly_name: 'Компьютер был включен сегодня'
      value_template: "{{ state_attr('sensor.tv_today', 'value') }}"
      icon_template: mdi:clock-outline

Это позволит вывести в интерфейс правильные значения времени. Название (третья строчка, вместо tvtoday) задаем любое, sensor.tv_today меняем на свое, которое присвоили в начале файла. В итоге должно получиться так:

Время работы ПК

Первая строчка – первый созданный сенсор. Вторая – второй, отдающий время в нужном формате.

Я у себя вывел значения за сегодня и за предыдущий день:

Сколько был включен

Ссылки на другие уроки по настройке Home Assistant.

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