Задача: Я хочу, чтобы я мог видеть в Home Assistant результат выполнения Shell скрипта/команды.

К примеру, я хочу получить значение текущей температуры и вывести его в Home Assistant. Чтобы получить данные температуры с одного из аэропортов города Москвы, задействую свою заметку: "Мониторинг погоды посредством Zabbix"

Шаг №1: Установку Home Assistant произвел по заметке “Как установить Home Assistant on Ubuntu 18.04 Server”

Шаг №2: На системе где у меня развернут Home Assistant "Шаг №1" устанавливаю утилиту weather-util которую я беру из заметки выше, затем добиваюсь чтобы на выходе было десятичное число градусов:

ekzorchik@srv-bionic:~$ sudo apt-get install -y weather-util

ekzorchik@srv-bionic:~$ weather UUDD | grep Temperature | awk  '{print $4}' | cut -c 2,3

18

Шаг №3: Подключаю файл настроек по извлечению информации о погоде в главный конфигурационный файл configuration.yaml:

ekzorchik@srv-bionic:~$ sudo nano /home/homeassistant/.homeassistant/configuration.yaml
sensor:
  - platform: command_line
    name: 'Moscow Temp'
    command: "/usr/bin/weather UUDD | grep Temperature | awk  '{print $4}' | cut -c 2,3"
    unit_of_measurement: "°C"
    scan_interval: 30

После не забываем сохранить внесенные изменения.

Часть ответственная за выполнение команды

Шаг №4: Перезапускаем Home Assistant, либо через Web (заметка “Кнопка “Перезапустить” в Home Assistant”), либо через консоль:

ekzorchik@srv-bionic:~$ sudo systemctl restart home-assistant@homeassistant.service && sudo systemctl status home-assistant@homeassistant.service | head -n5

Шаг №5:  Результат:

http://(IP&DNS):8123 (http://172.33.33.15:8123) – user&pass – Общие и вот новый элемент где значится температура извлеченная через команды Ubuntu.

Элемент где значится температура извлеченная через команды Ubuntu.

Шаг №6: Но не хорошо захломлять configuration.yaml, лучше получение отдельных значений вынести в отдельный файл, к примеру sensor.yaml

ekzorchik@srv-bionic:~$ sudo nano /home/homeassistant/.homeassistant/configuration.yaml
default_config:
tts:
  - platform: google_translate
group: !include groups.yaml
automation: !include automations.yaml
script: !include scripts.yaml
sensor: !include sensor.yaml
scene: !include scenes.yaml

Шаг №7: Теперь содержимое sensor.yaml

ekzorchik@srv-bionic:~$ sudo nano /home/homeassistant/.homeassistant/sensor.yaml
ekzorchik@srv-bionic:~$ cat /home/homeassistant/.homeassistant/sensor.yaml
- platform: command_line
  name: 'Moscow Temp'
  command: "/usr/bin/weather UUDD | grep Temperature | awk  '{print $4}' | cut -c 2,3"
  unit_of_measurement: "°C"
  scan_interval: 30
ekzorchik@srv-bionic:~$

Шаг №8: Перезапускаем Home Assistant, либо через Web (заметка “Кнопка “Перезапустить” в Home Assistant”), либо через консоль:

ekzorchik@srv-bionic:~$ sudo systemctl restart home-assistant@homeassistant.service && sudo systemctl status home-assistant@homeassistant.service | head -n5
● home-assistant@homeassistant.service - Home Assistant
   Loaded: loaded (/etc/systemd/system/home-assistant@homeassistant.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2020-07-07 10:29:12 MSK; 192ms ago
 Main PID: 11972 (hass)
    Tasks: 1 (limit: 1108)
ekzorchik@srv-bionic:~$

Шаг №9: Смотрю логи:

ekzorchik@srv-bionic:~$ tail -f /home/homeassistant/.homeassistant/home-assistant.log

ошибок нет

Шаг №10: Проверяю через Webинтерфейс и значение отображается:

К примеру температура на 10:35 07.07.2020

К примеру температура на 10:35 07.07.2020

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

На этом я прощаюсь, с уважением автор блога Олло Александр aka ekzorchik.