#!/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()