Скрипт Lighting ZONT позволяет управлять выходом контроллера ZONT по восходу и закату солнца. К выходу контроллера подключено внешнее реле. К реле подключена нагрузка, которой скрипт будет управлять. Если lighting_schedule.json не заполнен, то данные о восходе и закате солнца подтягиваются с ресурса sunrise-sunset.org Есть возможность вручную редактировать включение и отключение освещения. Документация для получения токена контроллера ZONT тут.
Скрипт работает только для токена пользователя с одним устройством. Токен получается для имени и логина назначенных производителем контроллера(на карточке в комплекте). При необходимости расширения функционала пишите в issues.
- ZONT H2000+
- ZONT H1000+
Для запуска приложения проделайте следующие шаги:
- Склонируйте репозиторий.
- Перейдите в каталог со скриптом и создайте виртуальное окружение:
cd lighting_zont/
python -m venv venv
- Активируйте виртуальное окружение:
source venv\scripts\activate
- Установите зависимости:
python -m pip install -r requirements.txt
- Создайте в каталоге приложения файл .env:
touch .env
- Заполните файл .env по примеру example_env.
- Запустите скрипт:
python main.py
С помощью API клиента (например postman) отправьте POST запрос на endpoint https://zont-online.ru/api/get_authtoken Этот метод должен отправляться с аутентификацией по паролю.
- Закодируйте свой логин пароль в Base64 формат.
- воспользуйтесь любыми кодировщиком, например этим.
- формат кодирования login:password
- Добавьте в Headers post запроса поля со своими значениями:
- Authorization
- X-ZONT-Client
- Content-Type
- Полученный токен внесите в файл .env в поле XZONTTOKEN
Отправьте post запрос на адресс https://zont-online.ru/api/devices c ключами Headers (значения подставьте свои):
- X-ZONT-Token
- X-ZONT-Client
- Content-Type
Тело запроса:
{
"load_io": true
}
Далее ищем в ответе id контроллера (device id) и id кнопки управления освещением (object id)
- XZONTTOKEN - токен авторизации ZONT API
- XZONTCLIENT - ваш адрес электронной почты
- DEVICEID - id вашего контроллера
- OBJECTID - id элемента кнопка
- TIMEZONE - ваша временная зона
- TIMEOFFSETON - корректировка времени включения освещения полученного из сети
- TIMEOFFSETOFF - корректировка времени выключения освещения полученного из сети
- LATITUDE - широта вашего населённого пункта
- LONGITUDE - долгота вашего населённого пункта