Управляем MikroTIk из Home Assistant
В заключительной части нашего путешествия по костылям мы научимся управлять нашим роутером Mikrotik из интерфейса Home Assistant.
Прежде чем начать что то делать, настоятельно рекомендую ознакомится с предыдущими двумя частями
Для работы нам все так же как и прошлый раз понадобится:
- Веб сервер поддерживающий php
- Доступ к api mikrotik
- 4 файла:
- routeros_api.class.php - собственно сам класс для работы с api mikrotik
- ip.php - данные авторизации mikrotik
- print.php - файл который нам отдает значения в json для обратной связи
- 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