Потребовалось тут выключать\включать правило в ip/firewall/filter в микротике. На данный момент нашел три компонента для работы с микротиком. Стандартная, которая ничего не умеет, кроме как обнаружить есть ли микротик в сети. Простенький компонент, но без документации. Серьезный компонент, работающий по winbox api.
Но мне хотелось более простого варианта. Чтобы не грузить лишние компоненты в Home Assistant (HA). И такой вариант есть - это работа через ssh.
Подключаем SSH Public Key Authentication
С паролем работать из HA с ssh непросто, по-крайней мере я нашел кучу тем без ответа как это делать и сразу перешекл к рабочему и более правильному варианту - авторизация по публичному ключу. Там все стандартно, создем пару ключей на клиенте (HA), закидываем публичный на микротик:
ha_user@ha:~$ ssh-keygen -t rsa ha_user@ha:~$ scp ~/.ssh/id_rsa.pub admin@192.168.1.1:mykey.pub
Далее импортируем файл публичного ключа в пользователя:
Настраиваем Switch в Home Assistant.
switch: - platform: command_line switches: rule_1: command_on: "ssh -i ~/.ssh/id_rsa -o StrictHostKeyChecking=no admin@192.168.1.1 '/ip firewall filter disable 1'" command_off: "ssh -i ~/.ssh/id_rsa -o StrictHostKeyChecking=no admin@192.168.1.1 '/ip firewall filter enable 1'" command_state: "ssh -i ~/.ssh/id_rsa -o StrictHostKeyChecking=no admin@192.168.1.1 '/put [ip firewall filter get number=1 disabled]'" value_template: '{{ value == "true" }}' friendly_name: Rule 1
value_template - параметр который работает с ответом от command_state. Так как command_state нам возвращает "true"\"false" а не "0" как трубет command_state, то используем его. Конечно, лучше завести нового пользователя в микротике, с ограничением прав только на данные операции. Выключатель готов:
Комментариев нет:
Отправить комментарий