Заинтересовала меня найденная на просторах интернета заметка посвященная, как посредством Ubuntu инструментов производить отслеживание устройств, которые подключены к домашнему роутеру. А вот выводить собственно куда буду в Home Assistant. Считаю, что важно начать что-то делать, чем смотреть как сделано у других и откладывать заметки в «Избранное», а там хоть время с пользой и может в голове уложится и сделается лучше, чем у автора.

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

Шаг №2: Чтобы отслеживать устройства (буду рассматривать только те, которые работают через TCP/IP) подключенные к домашнему роутеру, как через Ethernet так и через беспроводное соединение, т.е. Wi-Fi буду через утилиту nmap:

root@srv-proxmox:~# ssh -l ekzorchik 172.33.33.15

ekzorchik@srv-bionic:~$ sudo apt-get install -y net-tools nmap

Шаг №3: Произвожу настройку configuration.yaml на работу с nmap_tracker: (https://www.home-assistant.io/integrations/nmap_tracker/

ekzorchik@srv-bionic:~$ sudo nano /home/homeassistant/.homeassistant/configuration.yaml
default_config:
tts:
  - platform: google_translate
device_tracker:
  - platform: nmap_tracker
    interval_seconds: 60
    hosts:
      -	 172.33.33.0/24
    home_interval: 10
group: !include groups.yaml
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml

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

На заметку: по задействованным параметрам

  • "interval_seconds: 60" — это настройка говорит HA что нужно запускать сканирование сети один раз в минуту
  • "hosts: 172.33.33.0/24" — это означает что будут проверяться включено ли устройство для всех ip адресов 172.33.33.*
  • "home_interval: 10" — это означает что HA будет считать, что устройство больше не дома через 10 минут после последнего нахождения в сети

На заметку: После изменения файла configuration.yaml нужно перезапустить Home Assistant.

ekzorchik@srv-bionic:~$ sudo systemctl restart home-assistant@homeassistant.service

Шаг №4: После смотрим статус перезапуска сервиса – поднялся ли он или нет, если нет, то значит неправильный синтаксис:

ekzorchik@srv-bionic:~$ sudo systemctl status home-assistant@homeassistant.service

Jul 03 13:29:00 srv-bionic systemd[1]: Stopped Home Assistant.

Jul 03 13:29:00 srv-bionic systemd[1]: Started Home Assistant.

Jul 03 13:29:01 srv-bionic hass[979]: 2020-07-03 13:29:01 ERROR (SyncWorker_0) [homeassistant.util.yaml.loader] mapping values are not allowed here

Jul 03 13:29:01 srv-bionic hass[979]:   in "/home/homeassistant/.homeassistant/configuration.yaml", line 16, column 22

Jul 03 13:29:01 srv-bionic hass[979]: 2020-07-03 13:29:01 ERROR (MainThread) [homeassistant.bootstrap] Failed to parse configuration.yaml: mapping values are not all

Jul 03 13:29:01 srv-bionic hass[979]:   in "/home/homeassistant/.homeassistant/configuration.yaml", line 16, column 22. Activating safe mode

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

2020-07-03 13:37:38 WARNING (MainThread) [homeassistant.setup] Setup of zone is taking over 10 seconds.

2020-07-03 13:37:38 WARNING (MainThread) [homeassistant.setup] Setup of logbook is taking over 10 seconds.

2020-07-03 13:37:38 ERROR (MainThread) [homeassistant.components.updater] Timeout fetching Home Assistant update data

^C

Шаг №5: После перезапуска сервиса проверяем какие устройства сейчас в сети:

На заметку: Home Assistant складывает информацию про все найденные устройства в файл known_devices.yaml в каталоге /home/homeassistant/.homeassistant/

ekzorchik@srv-bionic:~$ sudo  nano /home/homeassistant/.homeassistant/known_devices.yaml 

gateway:
  icon:
  mac: B8:69:F4:2F:D1:6C
  name: _gateway
  picture:
  track: true

60_a4_4c_2b_3b_36:
  icon:
  mac: 60:A4:4C:2B:3B:36
  name: 60_a4_4c_2b_3b_36
  picture:
  track: true

cc_2d_e0_e5_16_de:
  icon:
  mac: CC:2D:E0:E5:16:DE
  name: cc_2d_e0_e5_16_de
  picture:
  track: true

e0_d5_5e_75_9b_d9:
  icon:
  mac: E0:D5:5E:75:9B:D9
  name: e0_d5_5e_75_9b_d9
  picture:
  track: true

00_fd_45_fc_c4_2e:
  icon:
  mac: 00:FD:45:FC:C4:2E
  name: 00_fd_45_fc_c4_2e
  picture:
  track: true

18_d2_76_45_21_dc:
  icon:
  mac: 18:D2:76:45:21:DC
  name: 18_d2_76_45_21_dc
  picture:
  track: true
ekzorchik@srv-bionic:~$

На заметку: Home Assistant запускает утилиту “nmap”, а с ее помощью получается список всех устройств с мак адресами которые формируются в файле known_devices.yaml, те которые включены.

Шаг №6: Как видно из содержимого, файл known_devices.yaml можно заполнить информацией об устройствах:

  • добавить иконку
  • переименовать для удобства, что найденный MAC-адрес устройства – это то или иное устройство
  • добавить картинку

Пример:

ekzorchik@srv-bionic:~$ sudo nano /home/homeassistant/.homeassistant/known_devices.yaml
devicename:
    name: ekznotik
    mac: 12:34:56:78:90:01 
    picture: https://lin.ekzorchik.ru/images/ekznotik.png
    icon: mdi:account (‘mdi:devices’)
    gravatar:
    track: yes/on/true
    consider_home: 

Пример после заполнения информации об устройстве:

ekzorchik@srv-bionic:~$ sudo systemctl restart home-assistant@homeassistant.service

http://IP&DNS:8123 (http://172.33.33.15:8123) – Настройки – Объекты – вижу объект «Mikrotik», щелкаю по нему один раз левой кнопкой мыши

Вижу объект "Микротик"

И после нажимаю на

Перехожу в свойства объекта

Вижу свою иконку, именование устройства и другую различную информацию.

Вижу свою иконку, именование устройства и другую различную информацию.

Т.к. я пока только разбираю, то в последствии все изображения будут у меня локально. Я придерживаюсь правила не зависеть ни от кого.

Также редактировать конфигурационные файлы можно через Web, а не через консоль:

http://IP&DNS:8123 (http://172.33.33.15:8123) – Панель разработчика – Состояния – нахожу в списке актуальных объектов объект с MAC адресом своего роутера, кликаю по нему и могу произвести настройки:

Информация об объекте сети через Web-интерфейс

Но я больше люблю консоль.

Пока на этом я остановлюсь, в последующих заметках будет более интересное и раскрывающее как все же добавлять элементы на главную страницу и т.д.

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