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.
|
||||
|
||||
## [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
|
||||
|
||||
**[!WARNING!]**
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
name: OpenClaw Assistant
|
||||
version: "0.5.50"
|
||||
version: "0.5.51"
|
||||
slug: openclaw_assistant
|
||||
description: Run OpenClaw Assistant (OpenClaw-compatible) as a Home Assistant add-on.
|
||||
url: https://github.com/techartdev/OpenClawHomeAssistant
|
||||
@@ -95,9 +95,14 @@ options:
|
||||
enable_openai_api: false
|
||||
|
||||
# Force IPv4-first DNS result ordering for Node fetch/network calls.
|
||||
# Useful on networks where IPv6 resolution exists but IPv6 egress is broken
|
||||
# (can affect Telegram API polling in some HAOS/VM setups).
|
||||
force_ipv4_dns: false
|
||||
# Most HAOS VMs lack IPv6 egress, causing web_fetch / Telegram timeouts.
|
||||
# Default: true (recommended). Set to false only if you need IPv6.
|
||||
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:
|
||||
@@ -122,4 +127,5 @@ schema:
|
||||
gateway_trusted_proxies: str?
|
||||
enable_openai_api: bool?
|
||||
force_ipv4_dns: bool?
|
||||
nginx_log_level: list(full|minimal)?
|
||||
|
||||
|
||||
@@ -9,8 +9,8 @@ http {
|
||||
include /etc/nginx/mime.types;
|
||||
default_type application/octet-stream;
|
||||
|
||||
# Log to stdout/stderr (container-friendly)
|
||||
access_log /dev/stdout;
|
||||
# Logging (configurable via nginx_log_level option)
|
||||
__NGINX_ACCESS_LOG__
|
||||
error_log /dev/stderr notice;
|
||||
|
||||
sendfile on;
|
||||
|
||||
@@ -30,6 +30,7 @@ def main():
|
||||
disk_used = os.environ.get('DISK_USED', '')
|
||||
disk_avail = os.environ.get('DISK_AVAIL', '')
|
||||
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 = os.environ.get('GW_TOKEN', '')
|
||||
@@ -37,7 +38,21 @@ def main():
|
||||
gw_path = '' if public_url.endswith('/') else '/'
|
||||
|
||||
# ── 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)
|
||||
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")
|
||||
GATEWAY_AUTH_MODE=$(jq -r '.gateway_auth_mode // "token"' "$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")
|
||||
NGINX_LOG_LEVEL=$(jq -r '.nginx_log_level // "minimal"' "$OPTIONS_FILE")
|
||||
|
||||
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" \
|
||||
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" \
|
||||
NGINX_LOG_LEVEL="$NGINX_LOG_LEVEL" \
|
||||
python3 /render_nginx.py
|
||||
|
||||
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-съвместим клиент.
|
||||
force_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.
|
||||
force_ipv4_dns:
|
||||
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.
|
||||
force_ipv4_dns:
|
||||
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.
|
||||
force_ipv4_dns:
|
||||
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.
|
||||
force_ipv4_dns:
|
||||
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.
|
||||
force_ipv4_dns:
|
||||
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