September 12, 2019

Получаем информацию от Mikrotik в Home Assistant

В продолжении темы Mikrotik и Home Assistant поделюсь с вами костыльным способом как получать информацию от роутера основанном на php api Mikrotik

Для работы нам все так же как и прошлый раз понадобится:

  • Веб сервер поддерживающий php
  • Доступ к api mikrotik
  • 3 файла:
  1. routeros_api.class.php - собственно сам класс для работы с api mikrotik
  2. ip.php - данные авторизации mikrotik
  3. print.php - файл который нам отдает значения в json

Так как этот способ реальный костыль, то вам придется править файл print.php под свой роутер и свои задачи, значения подбирать экспериментально

Код sensors.yaml в home assistant должен выглядеть примерно так:

- platform: rest
  resource: http://192.168.1.100/mikroapi/resource_print.php
  name: Mikrotik CPU Load
  value_template: '{{ value_json.cpuload }}'
  unit_of_measurement: "%"

- platform: rest
  resource: http://192.168.1.100/mikroapi/resource_print.php
  name: Mikrotik uptime
  value_template: '{{ value_json.uptime }}'

- platform: rest
  resource: http://192.168.1.100/mikroapi/resource_print.php
  name: Mikrotik version
  value_template: '{{ value_json.version }}'

- platform: rest
  resource: http://192.168.1.100/mikroapi/resource_print.php
  name: Mikrotik bad blocks
  value_template: '{{ value_json.badblocks }}'

- platform: rest
  resource: http://ip.jsontest.com
  name: Real ip adress
  value_template: '{{ value_json.ip }}'

Код binary_sensors.yaml примерно так:

- platform: rest
  resource: http://192.168.1.100/mikroapi/interfaces_print.php
  name: Ethernet 1 running
  device_class: connectivity
  value_template: '{{ value_json.ether1_running }}'

- platform: rest
  resource: http://192.168.1.100/mikroapi/interfaces_print.php
  name: Ethernet 2 running
  device_class: connectivity
  value_template: '{{ value_json.ether2_running }}'

- platform: rest
  resource: http://192.168.1.100/mikroapi/interfaces_print.php
  name: Ethernet 3 running
  device_class: connectivity
  value_template: '{{ value_json.ether3_running }}'

- platform: rest
  resource: http://192.168.1.100/mikroapi/interfaces_print.php
  name: Ethernet 4 running
  device_class: connectivity
  value_template: '{{ value_json.ether4_running }}'

- platform: rest
  resource: http://192.168.1.100/mikroapi/interfaces_print.php
  name: Ethernet 5 running
  device_class: connectivity
  value_template: '{{ value_json.ether5_running }}'

- platform: rest
  resource: http://192.168.1.100/mikroapi/interfaces_print.php
  name: Wlan running
  device_class: connectivity
  value_template: '{{ value_json.wlan_running }}'

- platform: rest
  resource: http://192.168.1.100/mikroapi/interfaces_print.php
  name: NL VPN 99 running
  device_class: connectivity
  value_template: '{{ value_json.nl99vpn_running }}'

- platform: rest
  resource: http://192.168.1.100/mikroapi/interfaces_print.php
  name: RU VPN 99 running
  device_class: connectivity
  value_template: '{{ value_json.ru99vpn_running }}'


Все файлы вы можете скачать на канале в телеграм

Вот собственно и все, подписывайтесь на наш канал https://t.me/Home_Assistant и вступайте в дружный чат, все вопросы можете задать там https://t.me/homassistant