Задача: Я хочу, чтобы я мог видеть в 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.
Шаг №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
Круто, вот теперь данная заметка стала полезной, т.к. есть задача и малыми шагами от и до происходит ее реализация по шагам, причем двумя способами. Опять же тут нет ничего нового, но начинать нужно с малого и собирать информацию в одном месте.
На этом я прощаюсь, с уважением автор блога Олло Александр aka ekzorchik.