У меня долгое время лежал без дела старый ipad 2. Я захотел его использовать для отображения данных от некоторых датчиков из моего Home Assistant сервера. Но увы, приложение на ipad 2 поставить нельзя, а браузер такой старый, что даже страницу авторизации Home Assistant отобразить уже не может. Я так и не смог найти ни одного удобного варианта решения этой проблемы (вариант удалённого запуска браузера и использования VNC я за удобный не считаю). И тогда я решил это решение создать. Так появился сервис HASFOB (Home Assistant Service for Old Browsers), исходный код которого я выложил на GitHub: https://github.com/FaceHoof/HASFOB Так же я выложил уже собранные версии для Windows и Linux: https://github.com/FaceHoof/HASFOB/releases

Итак, как же работает этот сервис? Сервис авторизуется на указанном Home Assistant сервере с помощью токена, собирает информацию от указанных в конфигурационном файле датчиков и предоставляет простую веб страницу с этими данными.

Пример внешнего вида страницы
Пример внешнего вида страницы

Далее я расскажу как запустить этот сервис. Предположим, что по указанной выше ссылке вы скачали архив HASFOB_for_Windows.zip, распаковали его и среди прочего видите в каталоге файл Token.txt. Этот файл будет хранить наш токен авторизации (не обязательно оставлять этот файл именно в каталоге проекта, но об этом ниже). Чтобы получить токен, вам надо авторизоваться в ваш Home Assistant, нажать на своё имя в левом нижнем углу, перейти на вкладку «Безопасность», и нажать на кнопку «Создать токен». Назвать его можете как угодно. Сам токен надо скопировать в файл Token.txt, предварительно удалив остальное содержимое.

!Обращаю внимание, что сервис никак не шифрует ваш токен!!! Сервис предназначен только для работы внутри локальной сети!

Теперь необходимо открыть файл configuration.xml. Каждый параметр этого файла подписан, так что я остановлюсь только на необходимых для запуска.

  • homeAssistantServer — адрес вашего Home Assistant сервера.

  • homeAssistantPort — порт вашего Home Assistant сервера.

  • homeAssistantTokenFile — полный путь к файлу Token.txt.

  • servicePort — порт, на котором будет поднят сервис, отображающий нашу веб страницу с данными.

В блоке sensors вам нужно указать хотя бы один датчик. Для примера там указано три датчика. Вот пример одного из них:

<sensors>
        <sensor>
            <entityId>sensor.waterlevelsensor_ultrasonicwaterlevelsensor</entityId>
            <friendlyName>Water level</friendlyName>
            <decimalPlaces>0</decimalPlaces>
        </sensor>
</sensors>

entityId нужно узнать в своём Home Assistant, а friendlyName можете указать какой вам угодно, это исключительно для удобства.

Помимо простого отображения данных, сервис так же может управлять переключателями (их указание не обязательно). Вот пример указания переключателя в соответствующем блоке:

<switches> 
	<switch> 
		<entityId>switch.powersoketforwaterpomp_socket_1</entityId>
	        <friendlyName>Waterpomp</friendlyName>
	</switch>
</switches>

Всё, после редактирования конфигурационного файла, можно пробовать запустить сервис. Чтобы сделать это без установки, из командной строки запустите файл HasfobService.exe. Если всё хорошо, то в командной строке должна появиться информация о запросах к сервису с кодом 200. Теперь переходим в браузер, заходим на адрес компьютера, на котором запущен наш сервис (не забываем указать порт из servicePort) и смотрим на данные. Если вас всё устраивает, то можно установить сервис как службу Windows. Для этого достаточно запустить приложение с параметром «‑i».

Одной из особенностей HASFOB является то, что файл веб страницы лежит отдельно и вы можете отредактировать его под свои предпочтения. Для этого всего лишь нужно открыть файл WebPage.html в удобном для вас редакторе кода и внести необходимые изменения, после чего перезапустить сервис.

Пожалуй, это всё. Я буду рад, если данный сервис пригодится кому‑то кроме меня самого =)