diff --git a/make_export.py b/make_export.py new file mode 100644 index 0000000..742beea --- /dev/null +++ b/make_export.py @@ -0,0 +1,66 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +Скрипт для генерации JSON-экспорта Open WebUI из home_assistant_tools.py. + +Использование: + 1. Скачайте home_assistant_tools.py в текущую папку + 2. Запустите: python3 make_export.py + 3. Получите файл home_assistant_tool_export.json + 4. В Open WebUI: Workspace -> Tools -> Импорт -> выберите этот JSON + +Формат JSON соответствует тому, что Open WebUI ожидает при импорте Tool. +""" + +import json +import sys +from pathlib import Path + +SRC = Path(__file__).parent / "home_assistant_tools.py" +OUT = Path(__file__).parent / "home_assistant_tool_export.json" + + +def main(): + if not SRC.exists(): + print(f"ОШИБКА: не найден {SRC}", file=sys.stderr) + print("Скачайте home_assistant_tools.py из Gitea рядом со скриптом", file=sys.stderr) + sys.exit(1) + + content = SRC.read_text(encoding="utf-8") + + payload = { + "type": "tool", + "name": "Home Assistant Smart Control", + "version": "2.2.1", + "description": ( + "Управление умным домом через Home Assistant REST API с интерпретацией " + "естественного языка. Управление светом/климатом/шторами/медиа и мониторинг " + "(окна, свет, температура, батарейки, присутствие)." + ), + "author": "ChatGPT (refactored by MiniMax-M3)", + "license": "MIT", + "content": content, + "metadata": { + "ha_default_url": "https://ha.nasweb.ru", + "ha_default_verify_ssl": False, + "source_repo": "https://gitea.nasweb.ru/host/home-assistant-tools", + }, + } + + OUT.write_text( + json.dumps(payload, ensure_ascii=False, indent=2), + encoding="utf-8", + ) + + print(f"OK: создан {OUT}") + print(f" размер: {OUT.stat().st_size:,} байт") + print() + print("Дальше:") + print(" 1. Откройте Open WebUI -> Workspace -> Tools -> Импорт") + print(" 2. В поле URL вставьте путь к этому JSON-файлу") + print(f" или загрузите его через кнопку выбора файла") + print(" 3. После импорта укажите HA Token в Valves") + + +if __name__ == "__main__": + main() \ No newline at end of file