Восстановлен make_export.py - генератор JSON-экспорта

This commit is contained in:
2026-07-29 19:29:11 +03:00
parent 451ce7fa96
commit 8432ab4448
+68
View File
@@ -0,0 +1,68 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Генератор JSON-экспорта Open WebUI из home_assistant_tools.py.
Запуск:
1. Скачайте оба файла в одну папку
2. python3 make_export.py
3. Получите home_assistant_tool.json
Или одной командой (Linux/macOS/TrueNAS/Proxmox):
curl -sSL https://gitea.nasweb.ru/host/home-assistant-tools/raw/branch/main/make_export.py | python3
"""
import json
import sys
import urllib.request
from pathlib import Path
SRC = Path(__file__).parent / "home_assistant_tools.py"
OUT = Path(__file__).parent / "home_assistant_tool.json"
# Если запущен из stdin (через curl | python3) — качаем .py сами
if not SRC.exists():
print("home_assistant_tools.py не найден рядом, скачиваю...", file=sys.stderr)
url = "https://gitea.nasweb.ru/host/home-assistant-tools/raw/branch/main/home_assistant_tools.py"
try:
SRC.write_text(urllib.request.urlopen(url, timeout=15).read().decode("utf-8"), encoding="utf-8")
print("OK: скачан", SRC, file=sys.stderr)
except Exception as e:
print("ОШИБКА скачивания:", e, file=sys.stderr)
sys.exit(1)
content = SRC.read_text(encoding="utf-8")
payload = {
"type": "tool",
"name": "Home Assistant Smart Control",
"version": "2.2.2",
"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("OK: создан", OUT)
print("Размер:", OUT.stat().st_size, "байт")
print()
print("Дальше:")
print(" 1. Открой Open WebUI -> Workspace -> Tools -> Импорт")
print(" 2. В поле URL вставь путь к этому JSON или загрузи файл")
print(" 3. Укажи HA Token в Valves")