feat: Update changelog and configuration for version 0.5.51
- Set default `force_ipv4_dns` to true to prevent web_fetch timeouts in HAOS VMs. - Introduced `nginx_log_level` option to control access log verbosity. - Updated translations for new configuration options.
This commit is contained in:
@@ -2,6 +2,14 @@
|
|||||||
|
|
||||||
All notable changes to the OpenClaw Assistant Home Assistant Add-on will be documented in this file.
|
All notable changes to the OpenClaw Assistant Home Assistant Add-on will be documented in this file.
|
||||||
|
|
||||||
|
## [0.5.51] - 2026-02-23
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- **`web_fetch failed: fetch failed`**: changed `force_ipv4_dns` default to **true**. Node 22 tries IPv6 first; most HAOS VMs lack IPv6 egress, causing outbound `web_fetch` / HTTP tool calls to time out.
|
||||||
|
|
||||||
|
### Added
|
||||||
|
- **`nginx_log_level` option** (`minimal` / `full`, default `minimal`): suppresses repetitive Home Assistant health-check and polling requests (`GET /`, `GET /v1/models`, `POST /tools/invoke`) from the nginx access log.
|
||||||
|
|
||||||
## [0.5.50] - 2026-02-23
|
## [0.5.50] - 2026-02-23
|
||||||
|
|
||||||
**[!WARNING!]**
|
**[!WARNING!]**
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
name: OpenClaw Assistant
|
name: OpenClaw Assistant
|
||||||
version: "0.5.50"
|
version: "0.5.51"
|
||||||
slug: openclaw_assistant
|
slug: openclaw_assistant
|
||||||
description: Run OpenClaw Assistant (OpenClaw-compatible) as a Home Assistant add-on.
|
description: Run OpenClaw Assistant (OpenClaw-compatible) as a Home Assistant add-on.
|
||||||
url: https://github.com/techartdev/OpenClawHomeAssistant
|
url: https://github.com/techartdev/OpenClawHomeAssistant
|
||||||
@@ -95,9 +95,14 @@ options:
|
|||||||
enable_openai_api: false
|
enable_openai_api: false
|
||||||
|
|
||||||
# Force IPv4-first DNS result ordering for Node fetch/network calls.
|
# Force IPv4-first DNS result ordering for Node fetch/network calls.
|
||||||
# Useful on networks where IPv6 resolution exists but IPv6 egress is broken
|
# Most HAOS VMs lack IPv6 egress, causing web_fetch / Telegram timeouts.
|
||||||
# (can affect Telegram API polling in some HAOS/VM setups).
|
# Default: true (recommended). Set to false only if you need IPv6.
|
||||||
force_ipv4_dns: false
|
force_ipv4_dns: true
|
||||||
|
|
||||||
|
# Nginx access log verbosity:
|
||||||
|
# full: log all requests (useful for debugging)
|
||||||
|
# minimal: suppress repetitive HA health-check and polling requests (default)
|
||||||
|
nginx_log_level: minimal
|
||||||
|
|
||||||
|
|
||||||
schema:
|
schema:
|
||||||
@@ -122,4 +127,5 @@ schema:
|
|||||||
gateway_trusted_proxies: str?
|
gateway_trusted_proxies: str?
|
||||||
enable_openai_api: bool?
|
enable_openai_api: bool?
|
||||||
force_ipv4_dns: bool?
|
force_ipv4_dns: bool?
|
||||||
|
nginx_log_level: list(full|minimal)?
|
||||||
|
|
||||||
|
|||||||
@@ -9,8 +9,8 @@ http {
|
|||||||
include /etc/nginx/mime.types;
|
include /etc/nginx/mime.types;
|
||||||
default_type application/octet-stream;
|
default_type application/octet-stream;
|
||||||
|
|
||||||
# Log to stdout/stderr (container-friendly)
|
# Logging (configurable via nginx_log_level option)
|
||||||
access_log /dev/stdout;
|
__NGINX_ACCESS_LOG__
|
||||||
error_log /dev/stderr notice;
|
error_log /dev/stderr notice;
|
||||||
|
|
||||||
sendfile on;
|
sendfile on;
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ def main():
|
|||||||
disk_used = os.environ.get('DISK_USED', '')
|
disk_used = os.environ.get('DISK_USED', '')
|
||||||
disk_avail = os.environ.get('DISK_AVAIL', '')
|
disk_avail = os.environ.get('DISK_AVAIL', '')
|
||||||
disk_pct = os.environ.get('DISK_PCT', '')
|
disk_pct = os.environ.get('DISK_PCT', '')
|
||||||
|
nginx_log_level = os.environ.get('NGINX_LOG_LEVEL', 'minimal')
|
||||||
|
|
||||||
# Token comes from environment (best-effort CLI query in run.sh)
|
# Token comes from environment (best-effort CLI query in run.sh)
|
||||||
token = os.environ.get('GW_TOKEN', '')
|
token = os.environ.get('GW_TOKEN', '')
|
||||||
@@ -37,7 +38,21 @@ def main():
|
|||||||
gw_path = '' if public_url.endswith('/') else '/'
|
gw_path = '' if public_url.endswith('/') else '/'
|
||||||
|
|
||||||
# ── nginx.conf ──────────────────────────────────────────────
|
# ── nginx.conf ──────────────────────────────────────────────
|
||||||
conf = tpl.replace('__TERMINAL_PORT__', terminal_port)
|
# Build access_log directive (minimal suppresses HA health-check / polling noise)
|
||||||
|
if nginx_log_level == 'minimal':
|
||||||
|
access_log_block = (
|
||||||
|
'# Suppress repetitive HA health-check / polling requests\n'
|
||||||
|
' map $http_user_agent $loggable {\n'
|
||||||
|
' ~HomeAssistant 0;\n'
|
||||||
|
' default 1;\n'
|
||||||
|
' }\n'
|
||||||
|
' access_log /dev/stdout combined if=$loggable;'
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
access_log_block = 'access_log /dev/stdout;'
|
||||||
|
|
||||||
|
conf = tpl.replace('__NGINX_ACCESS_LOG__', access_log_block)
|
||||||
|
conf = conf.replace('__TERMINAL_PORT__', terminal_port)
|
||||||
|
|
||||||
# Build HTTPS gateway proxy block (only for lan_https mode)
|
# Build HTTPS gateway proxy block (only for lan_https mode)
|
||||||
https_block = ''
|
https_block = ''
|
||||||
|
|||||||
@@ -52,8 +52,9 @@ GATEWAY_PORT=$(jq -r '.gateway_port // 18789' "$OPTIONS_FILE")
|
|||||||
ENABLE_OPENAI_API=$(jq -r '.enable_openai_api // false' "$OPTIONS_FILE")
|
ENABLE_OPENAI_API=$(jq -r '.enable_openai_api // false' "$OPTIONS_FILE")
|
||||||
GATEWAY_AUTH_MODE=$(jq -r '.gateway_auth_mode // "token"' "$OPTIONS_FILE")
|
GATEWAY_AUTH_MODE=$(jq -r '.gateway_auth_mode // "token"' "$OPTIONS_FILE")
|
||||||
GATEWAY_TRUSTED_PROXIES=$(jq -r '.gateway_trusted_proxies // empty' "$OPTIONS_FILE")
|
GATEWAY_TRUSTED_PROXIES=$(jq -r '.gateway_trusted_proxies // empty' "$OPTIONS_FILE")
|
||||||
FORCE_IPV4_DNS=$(jq -r '.force_ipv4_dns // false' "$OPTIONS_FILE")
|
FORCE_IPV4_DNS=$(jq -r '.force_ipv4_dns // true' "$OPTIONS_FILE")
|
||||||
ACCESS_MODE=$(jq -r '.access_mode // "custom"' "$OPTIONS_FILE")
|
ACCESS_MODE=$(jq -r '.access_mode // "custom"' "$OPTIONS_FILE")
|
||||||
|
NGINX_LOG_LEVEL=$(jq -r '.nginx_log_level // "minimal"' "$OPTIONS_FILE")
|
||||||
|
|
||||||
export TZ="$TZNAME"
|
export TZ="$TZNAME"
|
||||||
|
|
||||||
@@ -603,6 +604,7 @@ GW_PUBLIC_URL="$GW_PUBLIC_URL" GW_TOKEN="$GW_TOKEN" TERMINAL_PORT="$TERMINAL_POR
|
|||||||
ENABLE_HTTPS_PROXY="$ENABLE_HTTPS_PROXY" HTTPS_PROXY_PORT="$GATEWAY_PORT" \
|
ENABLE_HTTPS_PROXY="$ENABLE_HTTPS_PROXY" HTTPS_PROXY_PORT="$GATEWAY_PORT" \
|
||||||
GATEWAY_INTERNAL_PORT="$GATEWAY_INTERNAL_PORT" ACCESS_MODE="$ACCESS_MODE" \
|
GATEWAY_INTERNAL_PORT="$GATEWAY_INTERNAL_PORT" ACCESS_MODE="$ACCESS_MODE" \
|
||||||
DISK_TOTAL="$DISK_TOTAL" DISK_USED="$DISK_USED" DISK_AVAIL="$DISK_AVAIL" DISK_PCT="$DISK_PCT" \
|
DISK_TOTAL="$DISK_TOTAL" DISK_USED="$DISK_USED" DISK_AVAIL="$DISK_AVAIL" DISK_PCT="$DISK_PCT" \
|
||||||
|
NGINX_LOG_LEVEL="$NGINX_LOG_LEVEL" \
|
||||||
python3 /render_nginx.py
|
python3 /render_nginx.py
|
||||||
|
|
||||||
echo "Starting ingress proxy (nginx) on :48099 ..."
|
echo "Starting ingress proxy (nginx) on :48099 ..."
|
||||||
|
|||||||
@@ -88,4 +88,10 @@ configuration:
|
|||||||
description: Активиране на OpenAI-съвместим Chat Completions ендпойнт. Позволява използването на OpenClaw като разговорен агент в HA Assist pipeline чрез Extended OpenAI Conversation (HACS) или всеки OpenAI-съвместим клиент.
|
description: Активиране на OpenAI-съвместим Chat Completions ендпойнт. Позволява използването на OpenClaw като разговорен агент в HA Assist pipeline чрез Extended OpenAI Conversation (HACS) или всеки OpenAI-съвместим клиент.
|
||||||
force_ipv4_dns:
|
force_ipv4_dns:
|
||||||
name: Принудителен IPv4 DNS ред
|
name: Принудителен IPv4 DNS ред
|
||||||
description: Принудително задава IPv4-приоритет при DNS резолв за Node мрежови заявки. Полезно е, когато IPv6 DNS се резолвира, но IPv6 интернет маршрутизацията е неработеща (може да влияе на Telegram API polling).
|
description: Принудително задава IPv4-приоритет при DNS резолв. Повечето HAOS VM нямат IPv6 изход — предизвиква web_fetch и Telegram грешки. Препоръчително ВКЛЮЧЕНО (по подразбиране).
|
||||||
|
nginx_log_level:
|
||||||
|
name: Nginx ниво на логове
|
||||||
|
description: "Подробност на логовете на nginx проксито. 'minimal' (по подразбиране) потиска повтарящи се HA health-check заявки. 'full' логва всичко."
|
||||||
|
options:
|
||||||
|
minimal: "Минимално (потискане на HA polling шум)"
|
||||||
|
full: "Пълно (логване на всички заявки)"
|
||||||
|
|||||||
@@ -88,4 +88,10 @@ configuration:
|
|||||||
description: OpenAI-kompatiblen Chat Completions Endpunkt aktivieren. Ermöglicht die Verwendung von OpenClaw als Gesprächsagent in der HA Assist Pipeline über Extended OpenAI Conversation (HACS) oder jeden OpenAI-kompatiblen Client.
|
description: OpenAI-kompatiblen Chat Completions Endpunkt aktivieren. Ermöglicht die Verwendung von OpenClaw als Gesprächsagent in der HA Assist Pipeline über Extended OpenAI Conversation (HACS) oder jeden OpenAI-kompatiblen Client.
|
||||||
force_ipv4_dns:
|
force_ipv4_dns:
|
||||||
name: IPv4-DNS-Reihenfolge erzwingen
|
name: IPv4-DNS-Reihenfolge erzwingen
|
||||||
description: Erzwingt IPv4-vorrangige DNS-Auflösung für Node-Netzwerkaufrufe. Nützlich, wenn IPv6-DNS aufgelöst wird, aber IPv6-Internet-Routing nicht funktioniert (kann Telegram-API-Polling beeinträchtigen).
|
description: Erzwingt IPv4-vorrangige DNS-Auflösung. Die meisten HAOS-VMs haben keinen IPv6-Ausgang — verursacht web_fetch- und Telegram-Timeouts. Empfohlen EIN (Standard).
|
||||||
|
nginx_log_level:
|
||||||
|
name: Nginx Log-Level
|
||||||
|
description: "Ausführlichkeit des Nginx-Zugriffslogs. 'minimal' (Standard) unterdrückt wiederholte HA-Healthcheck- und Polling-Anfragen. 'full' protokolliert alles."
|
||||||
|
options:
|
||||||
|
minimal: "Minimal (HA-Polling-Rauschen unterdrücken)"
|
||||||
|
full: "Vollständig (alle Anfragen protokollieren)"
|
||||||
|
|||||||
@@ -88,4 +88,10 @@ configuration:
|
|||||||
description: Enable OpenAI-compatible Chat Completions endpoint. Allows using OpenClaw as a conversation agent in HA Assist pipeline via Extended OpenAI Conversation (HACS) or any OpenAI-compatible client.
|
description: Enable OpenAI-compatible Chat Completions endpoint. Allows using OpenClaw as a conversation agent in HA Assist pipeline via Extended OpenAI Conversation (HACS) or any OpenAI-compatible client.
|
||||||
force_ipv4_dns:
|
force_ipv4_dns:
|
||||||
name: Force IPv4 DNS Order
|
name: Force IPv4 DNS Order
|
||||||
description: Force IPv4-first DNS ordering for Node network calls. Useful when IPv6 DNS resolves but IPv6 internet routing is broken (can affect Telegram API polling).
|
description: Force IPv4-first DNS ordering for Node network calls. Most HAOS VMs lack IPv6 egress, causing web_fetch and Telegram timeouts. Recommended ON (default).
|
||||||
|
nginx_log_level:
|
||||||
|
name: Nginx Log Level
|
||||||
|
description: "Access log verbosity for the built-in nginx proxy. 'minimal' (default) suppresses repetitive HA health-check and polling requests. 'full' logs everything."
|
||||||
|
options:
|
||||||
|
minimal: "Minimal (suppress HA polling noise)"
|
||||||
|
full: "Full (log all requests)"
|
||||||
|
|||||||
@@ -88,4 +88,10 @@ configuration:
|
|||||||
description: Activar endpoint de Chat Completions compatible con OpenAI. Permite usar OpenClaw como agente de conversación en HA Assist pipeline mediante Extended OpenAI Conversation (HACS) o cualquier cliente compatible con OpenAI.
|
description: Activar endpoint de Chat Completions compatible con OpenAI. Permite usar OpenClaw como agente de conversación en HA Assist pipeline mediante Extended OpenAI Conversation (HACS) o cualquier cliente compatible con OpenAI.
|
||||||
force_ipv4_dns:
|
force_ipv4_dns:
|
||||||
name: Forzar orden DNS IPv4
|
name: Forzar orden DNS IPv4
|
||||||
description: Fuerza el orden de DNS con prioridad IPv4 para llamadas de red de Node. Útil cuando el DNS IPv6 resuelve, pero el enrutamiento IPv6 a Internet falla (puede afectar el polling de la API de Telegram).
|
description: Fuerza prioridad IPv4 en DNS. La mayoría de VMs HAOS no tienen salida IPv6 — causa errores en web_fetch y Telegram. Recomendado ACTIVADO (por defecto).
|
||||||
|
nginx_log_level:
|
||||||
|
name: Nivel de log Nginx
|
||||||
|
description: "Nivel de detalle del log de acceso de nginx. 'minimal' (por defecto) suprime las solicitudes repetitivas de health-check y polling de HA. 'full' registra todo."
|
||||||
|
options:
|
||||||
|
minimal: "Mínimo (suprimir ruido de polling HA)"
|
||||||
|
full: "Completo (registrar todas las solicitudes)"
|
||||||
|
|||||||
@@ -88,4 +88,10 @@ configuration:
|
|||||||
description: Włącz endpoint Chat Completions kompatybilny z OpenAI. Pozwala używać OpenClaw jako agenta konwersacji w HA Assist pipeline przez Extended OpenAI Conversation (HACS) lub dowolnego klienta kompatybilnego z OpenAI.
|
description: Włącz endpoint Chat Completions kompatybilny z OpenAI. Pozwala używać OpenClaw jako agenta konwersacji w HA Assist pipeline przez Extended OpenAI Conversation (HACS) lub dowolnego klienta kompatybilnego z OpenAI.
|
||||||
force_ipv4_dns:
|
force_ipv4_dns:
|
||||||
name: Wymuś kolejność DNS IPv4
|
name: Wymuś kolejność DNS IPv4
|
||||||
description: Wymusza preferowanie IPv4 przy rozwiązywaniu DNS dla wywołań sieciowych Node. Przydatne, gdy DNS IPv6 się rozwiązuje, ale routing IPv6 do Internetu nie działa (może wpływać na polling API Telegrama).
|
description: Wymusza priorytet IPv4 w DNS. Większość VM HAOS nie ma wyjścia IPv6 — powoduje błędy web_fetch i Telegram. Zalecane WŁĄCZONE (domyślnie).
|
||||||
|
nginx_log_level:
|
||||||
|
name: Poziom logów Nginx
|
||||||
|
description: "Szczegółowość logów dostępu nginx. 'minimal' (domyślnie) pomija powtarzające się żądania health-check i polling HA. 'full' loguje wszystko."
|
||||||
|
options:
|
||||||
|
minimal: "Minimalny (pominięcie szumu polling HA)"
|
||||||
|
full: "Pełny (logowanie wszystkich żądań)"
|
||||||
|
|||||||
@@ -88,4 +88,10 @@ configuration:
|
|||||||
description: Habilitar endpoint de Chat Completions compatível com OpenAI. Permite usar o OpenClaw como agente de conversação no pipeline do HA Assist via Extended OpenAI Conversation (HACS) ou qualquer cliente compatível com OpenAI.
|
description: Habilitar endpoint de Chat Completions compatível com OpenAI. Permite usar o OpenClaw como agente de conversação no pipeline do HA Assist via Extended OpenAI Conversation (HACS) ou qualquer cliente compatível com OpenAI.
|
||||||
force_ipv4_dns:
|
force_ipv4_dns:
|
||||||
name: Forçar ordem DNS IPv4
|
name: Forçar ordem DNS IPv4
|
||||||
description: Força a ordem de DNS com prioridade para IPv4 nas chamadas de rede do Node. Útil quando o DNS IPv6 resolve, mas o roteamento IPv6 para a internet está quebrado (pode afetar o polling da API do Telegram).
|
description: Força prioridade IPv4 no DNS. A maioria das VMs HAOS não tem saída IPv6 — causa erros em web_fetch e Telegram. Recomendado LIGADO (padrão).
|
||||||
|
nginx_log_level:
|
||||||
|
name: Nível de log Nginx
|
||||||
|
description: "Detalhamento do log de acesso do nginx. 'minimal' (padrão) suprime requisições repetitivas de health-check e polling do HA. 'full' registra tudo."
|
||||||
|
options:
|
||||||
|
minimal: "Mínimo (suprimir ruído de polling HA)"
|
||||||
|
full: "Completo (registrar todas as requisições)"
|
||||||
|
|||||||
Reference in New Issue
Block a user