Files
home-assistant-tools/make_export.py
T

68 lines
2.5 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/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")