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