September 13, 2019

Управляем MikroTIk из Home Assistant

В заключительной части нашего путешествия по костылям мы научимся управлять нашим роутером Mikrotik из интерфейса Home Assistant.

Прежде чем начать что то делать, настоятельно рекомендую ознакомится с предыдущими двумя частями

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

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

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

Файл control.php вам придется редактировать под себя, так как ID у вас будут свои.

в HASS выглядит примерно так:

- platform: command_line
  switches:
    mikro_reboot:
      command_on: curl -k "192.168.1.100/mikroapi/control.php?reboot"
      friendly_name: Reboot mikrotik

- platform: command_line
  switches:
    hassio_vpn:
      command_on: curl -k "192.168.1.100/mikroapi/control.php?vpn_hass=on"
      command_off: curl -k "192.168.1.100/mikroapi/control.php?vpn_hass=off"
      command_state: curl -k "192.168.1.100/mikroapi/route_print.php"
      value_template: '{{ value_json.hass_vpn }}'
      friendly_name: Hassio vpn

- platform: command_line
  switches:
    xbox_vpn:
      command_on: curl -k "192.168.1.100/mikroapi/control.php?vpn_xbox=on"
      command_off: curl -k "192.168.1.100/mikroapi/control.php?vpn_xbox=off"
      command_state: curl -k "192.168.1.100/mikroapi/route_print.php"
      value_template: '{{ value_json.xbox_vpn }}'
      friendly_name: Xbox vpn

- platform: command_line
  switches:
    ether1:
      command_on: curl -k "192.168.1.100/mikroapi/control.php?eth_1=off"
      command_off: curl -k "192.168.1.100/mikroapi/control.php?eth_1=on"
      command_state: curl -k "192.168.1.100/mikroapi/interfaces_print.php"
      value_template: '{{ value_json.ether1_disabled }}'
      friendly_name: Ethernet 1 off

ну и так далее....

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

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