From 314a19b8ea41de6a5e70e6fd14e83b79f014ab5a Mon Sep 17 00:00:00 2001 From: Home Assistant Version Control Date: Wed, 14 Oct 2026 17:07:53 +0000 Subject: [PATCH] .ha_mcp/logs/mcp_usage.jsonl, zigbee2mqtt/state.json --- .ha_mcp/logs/mcp_usage.jsonl | 3 +++ zigbee2mqtt/state.json | 46 ++++++++++++++++++------------------ 2 files changed, 26 insertions(+), 23 deletions(-) diff --git a/.ha_mcp/logs/mcp_usage.jsonl b/.ha_mcp/logs/mcp_usage.jsonl index eaa5bb15..f6f351b4 100644 --- a/.ha_mcp/logs/mcp_usage.jsonl +++ b/.ha_mcp/logs/mcp_usage.jsonl @@ -4495,3 +4495,6 @@ {"timestamp": "2026-10-14T13:53:19.193153+00:00", "tool_name": "ha_eval_template", "parameters": {"template": "{% set job_g = v_job_g | float(0) %}\n{% set gcol = v_gcol | string | replace('#','') | lower %}\n{% set mono = v_mono %}\n{% set cols = namespace(list=[]) %}\n{% for n in ['1','2','3','4'] %}\n{% set cc = states('sensor.sparkx_i7_cfs_box_1_slot_' ~ n ~ '_color') | replace('#','') | lower %}\n{% if cc not in ['','none','unknown','unavailable'] %}{% set cols.list = cols.list + [cc] %}{% endif %}\n{% endfor %}\n{% set per_slot = gcol if (mono and gcol != '' and gcol in cols.list) else '' %}\n{% set mono_offline = mono and gcol != '' and gcol not in cols.list %}\n{% set ns = namespace(req=[], short=[], missing=[], loaded=[], avail=0) %}\n{% for n in ['1','2','3','4'] %}\n{% set c = states('sensor.sparkx_i7_cfs_box_1_slot_' ~ n ~ '_color') | replace('#','') | lower %}\n{% set cname = states('sensor.sparkx_i7_slot_' ~ n ~ '_color_name') %}\n{% set flabel = states('sensor.sparkx_i7_cfs_box_1_slot_' ~ n ~ '_filament') %}\n{% set label = 'Slot ' ~ n ~ ' ' ~ (cname if cname not in ['','unknown','unavailable'] else (flabel if flabel not in ['','unknown','unavailable'] else ('#' ~ (c | upper)))) %}\n{% set sp = namespace(id='', rem=0) %}\n{% for e in integration_entities('spoolman') if e.endswith('_color_hex') %}\n{% if sp.id == '' and (states(e) | replace('#','') | lower) == c and (state_attr(e[:-10],'location') | default('', true) | lower) == 'cfs lite' %}\n{% set sp.id = e[:-10] %}\n{% set sp.rem = states(e[:-10]) | float(0) %}\n{% endif %}\n{% endfor %}\n{% if sp.id != '' %}\n{% set ns.avail = ns.avail + sp.rem %}\n{% set ns.loaded = ns.loaded + [label ~ ': ' ~ (sp.rem | round(1)) ~ ' g'] %}\n{% endif %}\n{% if job_g > 0 %}\n{% set req = job_g if (per_slot == '' or c == per_slot) else 0 %}\n{% if req > 0 %}\n{% if sp.id == '' %}\n{% set ns.missing = ns.missing + [label ~ ' (#' ~ (c | upper) ~ ')'] %}\n{% elif sp.rem < req %}\n{% set ns.short = ns.short + [label ~ ': ' ~ (sp.rem | round(1)) ~ ' g left, up to ' ~ req ~ ' g needed'] %}\n{% else %}\n{% set ns.req = ns.req + [label ~ ': ' ~ (sp.rem | round(1)) ~ ' g left, up to ' ~ req ~ ' g needed'] %}\n{% endif %}\n{% endif %}\n{% endif %}\n{% endfor %}\n{% if job_g <= 0 %}Cannot verify: slicer filament estimate not available yet.{% if ns.loaded %} Loaded: {{ ns.loaded | join('; ') }}.{% endif %}\n{% elif mono_offline %}Cannot verify: this looks like a single-colour print of #{{ gcol | upper }}, which is not in a loaded CFS slot.\n{% elif ns.short %}NOT ENOUGH filament - possible shortfall:\n{{ ns.short | join('\\n') }}{% if ns.req %}\nOK: {{ ns.req | join('; ') }}{% endif %}{% if ns.missing %}\nNo Spoolman spool matched for: {{ ns.missing | join(', ') }}{% endif %}\n{% elif ns.req %}Enough filament:\n{{ ns.req | join('\\n') }}{% if ns.missing %}\nNo Spoolman spool matched for: {{ ns.missing | join(', ') }}{% endif %}\n{% else %}Cannot verify: could not match this job's filament to a loaded CFS slot.{% endif %}", "condition": null, "variables": {"v_job_g": 150, "v_gcol": "", "v_mono": false}, "strict": false, "timeout": 3, "report_errors": true}, "execution_time_ms": 356.2769889831543, "success": true, "error_message": null, "response_size_bytes": 4097, "user_context": null} {"timestamp": "2026-10-14T13:53:19.207342+00:00", "tool_name": "ha_eval_template", "parameters": {"template": "{% set job_g = v_job_g | float(0) %}\n{% set gcol = v_gcol | string | replace('#','') | lower %}\n{% set mono = v_mono %}\n{% set cols = namespace(list=[]) %}\n{% for n in ['1','2','3','4'] %}\n{% set cc = states('sensor.sparkx_i7_cfs_box_1_slot_' ~ n ~ '_color') | replace('#','') | lower %}\n{% if cc not in ['','none','unknown','unavailable'] %}{% set cols.list = cols.list + [cc] %}{% endif %}\n{% endfor %}\n{% set per_slot = gcol if (mono and gcol != '' and gcol in cols.list) else '' %}\n{% set mono_offline = mono and gcol != '' and gcol not in cols.list %}\n{% set ns = namespace(req=[], short=[], missing=[], loaded=[], avail=0) %}\n{% for n in ['1','2','3','4'] %}\n{% set c = states('sensor.sparkx_i7_cfs_box_1_slot_' ~ n ~ '_color') | replace('#','') | lower %}\n{% set cname = states('sensor.sparkx_i7_slot_' ~ n ~ '_color_name') %}\n{% set flabel = states('sensor.sparkx_i7_cfs_box_1_slot_' ~ n ~ '_filament') %}\n{% set label = 'Slot ' ~ n ~ ' ' ~ (cname if cname not in ['','unknown','unavailable'] else (flabel if flabel not in ['','unknown','unavailable'] else ('#' ~ (c | upper)))) %}\n{% set sp = namespace(id='', rem=0) %}\n{% for e in integration_entities('spoolman') if e.endswith('_color_hex') %}\n{% if sp.id == '' and (states(e) | replace('#','') | lower) == c and (state_attr(e[:-10],'location') | default('', true) | lower) == 'cfs lite' %}\n{% set sp.id = e[:-10] %}\n{% set sp.rem = states(e[:-10]) | float(0) %}\n{% endif %}\n{% endfor %}\n{% if sp.id != '' %}\n{% set ns.avail = ns.avail + sp.rem %}\n{% set ns.loaded = ns.loaded + [label ~ ': ' ~ (sp.rem | round(1)) ~ ' g'] %}\n{% endif %}\n{% if job_g > 0 %}\n{% set req = job_g if (per_slot == '' or c == per_slot) else 0 %}\n{% if req > 0 %}\n{% if sp.id == '' %}\n{% set ns.missing = ns.missing + [label ~ ' (#' ~ (c | upper) ~ ')'] %}\n{% elif sp.rem < req %}\n{% set ns.short = ns.short + [label ~ ': ' ~ (sp.rem | round(1)) ~ ' g left, up to ' ~ req ~ ' g needed'] %}\n{% else %}\n{% set ns.req = ns.req + [label ~ ': ' ~ (sp.rem | round(1)) ~ ' g left, up to ' ~ req ~ ' g needed'] %}\n{% endif %}\n{% endif %}\n{% endif %}\n{% endfor %}\n{% if job_g <= 0 %}Cannot verify: slicer filament estimate not available yet.{% if ns.loaded %} Loaded: {{ ns.loaded | join('; ') }}.{% endif %}\n{% elif mono_offline %}Cannot verify: this looks like a single-colour print of #{{ gcol | upper }}, which is not in a loaded CFS slot.\n{% elif ns.short %}NOT ENOUGH filament - possible shortfall:\n{{ ns.short | join('\\n') }}{% if ns.req %}\nOK: {{ ns.req | join('; ') }}{% endif %}{% if ns.missing %}\nNo Spoolman spool matched for: {{ ns.missing | join(', ') }}{% endif %}\n{% elif ns.req %}Enough filament:\n{{ ns.req | join('\\n') }}{% if ns.missing %}\nNo Spoolman spool matched for: {{ ns.missing | join(', ') }}{% endif %}\n{% else %}Cannot verify: could not match this job's filament to a loaded CFS slot.{% endif %}", "condition": null, "variables": {"v_job_g": 150, "v_gcol": "FFFFFF", "v_mono": true}, "strict": false, "timeout": 3, "report_errors": true}, "execution_time_ms": 369.60887908935547, "success": true, "error_message": null, "response_size_bytes": 3942, "user_context": null} {"timestamp": "2026-10-14T15:43:36.773373+00:00", "tool_name": "ha_get_hacs_info", "parameters": {"action": "search", "query": "localtuya", "category": null, "installed_only": false, "max_results": 10, "offset": 0, "repository_id": null, "ctx": {"_STATE_TTL_SECONDS": 86400}}, "execution_time_ms": 467.132568359375, "success": true, "error_message": null, "response_size_bytes": 1266, "user_context": null} +{"timestamp": "2026-10-14T17:07:46.458566+00:00", "tool_name": "ha_config_get_dashboard", "parameters": {"url_path": null, "list_only": false, "force_reload": false, "entity_id": null, "card_type": null, "heading": null, "include_config": false, "include_screenshot": false, "view_path": null, "mode": "search", "query": "sensor.sparkx_i7_cfs_box_1_slot_1_color"}, "execution_time_ms": 325.758695602417, "success": true, "error_message": null, "response_size_bytes": 8833, "user_context": null} +{"timestamp": "2026-10-14T17:07:46.474373+00:00", "tool_name": "ha_config_get_dashboard", "parameters": {"url_path": null, "list_only": true, "force_reload": false, "entity_id": null, "card_type": null, "heading": null, "include_config": false, "include_screenshot": false, "view_path": null, "mode": null, "query": null}, "execution_time_ms": 340.7409191131592, "success": true, "error_message": null, "response_size_bytes": 2533, "user_context": null} +{"timestamp": "2026-10-14T17:07:51.836219+00:00", "tool_name": "ha_config_get_dashboard", "parameters": {"url_path": "sparkx-i7", "list_only": false, "force_reload": false, "entity_id": null, "card_type": null, "heading": null, "include_config": false, "include_screenshot": false, "view_path": "__list__", "mode": null, "query": null}, "execution_time_ms": 195.58191299438477, "success": false, "error_message": "{\n \"success\": false,\n \"error\": {\n \"code\": \"RESOURCE_NOT_FOUND\",\n \"message\": \"Dashboard view path '__list__' is not found.\",\n \"suggestion\": \"Use a view_path returned by ha_config_get_dashboard\"\n },\n \"url_path\": \"sparkx-i7\",\n \"view_path\": \"__list__\",\n \"available_view_paths\": [\n \"print\",\n \"history\",\n \"cfs-fans\",\n \"spoolman\"\n ]\n}", "response_size_bytes": null, "user_context": null} diff --git a/zigbee2mqtt/state.json b/zigbee2mqtt/state.json index 2cc7c7cd..acf5a463 100644 --- a/zigbee2mqtt/state.json +++ b/zigbee2mqtt/state.json @@ -4,7 +4,7 @@ "state": "ON", "led_brightness": 100, "countdown_to_turn_off": 0, - "voltage": 119.8, + "voltage": 118.2, "countdown_to_turn_on": 0, "ac_frequency": 60, "power_factor": 0.11, @@ -27,10 +27,10 @@ "led_brightness": 100, "countdown_to_turn_off": 0, "countdown_to_turn_on": 0, - "power": 3.9, - "current": 0.11, - "energy": 56.3, - "power_factor": -0.23, + "power": 1.9, + "current": 0.09, + "energy": 56.31, + "power_factor": 0.17, "update": { "state": "idle", "installed_version": 268513381, @@ -45,10 +45,10 @@ "state": "ON", "led_brightness": 100, "countdown_to_turn_off": 0, - "voltage": 119.1, + "voltage": 118.6, "countdown_to_turn_on": 0, - "energy": 108.81, - "power_factor": 0.31, + "energy": 108.83, + "power_factor": 0.2, "ac_frequency": 60, "update": { "state": "idle", @@ -58,7 +58,7 @@ "latest_release_notes": null }, "linkquality": 145, - "power": 0.3, + "power": 0.2, "current": 0.01, "power_on_behavior": "on" }, @@ -74,13 +74,13 @@ "led_brightness": 100, "countdown_to_turn_off": 0, "countdown_to_turn_on": 0, - "voltage": 118.5, + "voltage": 116.6, "state": "ON", "ac_frequency": 60, - "energy": 221, - "power": 101.7, - "current": 0.92, - "power_factor": 0.95, + "energy": 221.03, + "power": 102, + "current": 0.91, + "power_factor": 0.39, "update": { "state": "idle", "installed_version": 268513381, @@ -95,11 +95,11 @@ "led_brightness": 100, "countdown_to_turn_off": 0, "countdown_to_turn_on": 0, - "voltage": 119.7, - "energy": 103.59, + "voltage": 118.3, + "energy": 103.6, "state": "ON", - "power": 17.8, - "current": 0.27, + "power": 32.3, + "current": 0.48, "ac_frequency": 60, "power_factor": 0.54, "update": { @@ -114,12 +114,12 @@ }, "0xffffb40e060895b3": { "state": "ON", - "voltage": 119.8, + "voltage": 118.3, "ac_frequency": 60, "energy": 15.19, "current": 0, "power": 0.2, - "power_factor": 0, + "power_factor": 0.11, "linkquality": 116, "update": { "state": "idle", @@ -136,14 +136,14 @@ "0xffffb40e0608864e": { "led_brightness": 100, "countdown_to_turn_off": 0, - "voltage": 120, + "voltage": 118.8, "energy": 36.92, "countdown_to_turn_on": 0, "state": "ON", "current": 0.02, "ac_frequency": 60, "power": 0.3, - "power_factor": 0.14, + "power_factor": 0.19, "update": { "state": "idle", "installed_version": 268513381, @@ -224,7 +224,7 @@ }, "0xb40e060fffe717c5": { "battery": 100, - "occupancy": false, + "occupancy": true, "tamper": false, "battery_low": false, "linkquality": 145,