From 3a51dadce29db9c72b917e51e6024fce0f35c1d9 Mon Sep 17 00:00:00 2001 From: Home Assistant Version Control Date: Thu, 8 Oct 2026 16:17:25 +0000 Subject: [PATCH] 6 files --- .ha_mcp/logs/mcp_usage.jsonl | 2 + custom_components/spoolman/manifest.json | 17 ++++ custom_components/spoolman/services.yaml | 81 +++++++++++++++++++ .../spoolman/translations/de.json | 42 ++++++++++ .../spoolman/translations/en.json | 42 ++++++++++ zigbee2mqtt/state.json | 16 ++-- 6 files changed, 192 insertions(+), 8 deletions(-) create mode 100644 custom_components/spoolman/manifest.json create mode 100644 custom_components/spoolman/services.yaml create mode 100644 custom_components/spoolman/translations/de.json create mode 100644 custom_components/spoolman/translations/en.json diff --git a/.ha_mcp/logs/mcp_usage.jsonl b/.ha_mcp/logs/mcp_usage.jsonl index 9fcd2a96..2b2dd54c 100644 --- a/.ha_mcp/logs/mcp_usage.jsonl +++ b/.ha_mcp/logs/mcp_usage.jsonl @@ -3931,3 +3931,5 @@ {"timestamp": "2026-10-08T16:11:23.098974+00:00", "tool_name": "ha_search", "parameters": {"query": "sparkx", "domain_filter": null, "area_filter": null, "search_types": null, "limit": 100, "offset": 0, "exact_match": true, "include_hidden": true, "include_config": false, "group_by_domain": false, "per_domain_limit": null, "state_filter": null, "result_fields": null, "fields": null, "config_time_budget": null, "ctx": {"_STATE_TTL_SECONDS": 86400}}, "execution_time_ms": 316.97583198547363, "success": true, "error_message": null, "response_size_bytes": 20477, "user_context": null} {"timestamp": "2026-10-08T16:12:18.934998+00:00", "tool_name": "ha_get_history", "parameters": {"entity_ids": "sensor.sparkx_i7_active_filament_slot", "source": "history", "start_time": "7d", "end_time": null, "minimal_response": true, "significant_changes_only": true, "limit": null, "offset": null, "period": "day", "statistic_types": null, "order": "desc", "fields": null, "ctx": {"_STATE_TTL_SECONDS": 86400}}, "execution_time_ms": 226.3033390045166, "success": true, "error_message": null, "response_size_bytes": 13734, "user_context": null} {"timestamp": "2026-10-08T16:16:05.799787+00:00", "tool_name": "ha_manage_hacs", "parameters": {"action": "add_repository", "repository_id": null, "version": null, "repository": "Disane87/spoolman-homeassistant", "category": "integration"}, "execution_time_ms": 4220.387935638428, "success": true, "error_message": null, "response_size_bytes": 1250, "user_context": null} +{"timestamp": "2026-10-08T16:16:16.165404+00:00", "tool_name": "ha_manage_hacs", "parameters": {"action": "download", "repository_id": "697133774", "version": null, "repository": null, "category": null}, "execution_time_ms": 6061.239242553711, "success": true, "error_message": null, "response_size_bytes": 611, "user_context": null} +{"timestamp": "2026-10-08T16:17:18.739901+00:00", "tool_name": "ha_restart", "parameters": {"confirm": true}, "execution_time_ms": 24916.510343551636, "success": true, "error_message": null, "response_size_bytes": 180, "user_context": null} diff --git a/custom_components/spoolman/manifest.json b/custom_components/spoolman/manifest.json new file mode 100644 index 00000000..0fdd5cdf --- /dev/null +++ b/custom_components/spoolman/manifest.json @@ -0,0 +1,17 @@ +{ + "domain": "spoolman", + "name": "Spoolman", + "codeowners": [ + "@disane87" + ], + "config_flow": true, + "dependencies": [], + "documentation": "https://github.com/Disane87/spoolman-homeassistant", + "homekit": {}, + "iot_class": "local_polling", + "issue_tracker": "https://github.com/Disane87/spoolman-homeassistant/issues", + "requirements": [], + "ssdp": [], + "version": "0.0.0", + "zeroconf": [] +} diff --git a/custom_components/spoolman/services.yaml b/custom_components/spoolman/services.yaml new file mode 100644 index 00000000..258389e4 --- /dev/null +++ b/custom_components/spoolman/services.yaml @@ -0,0 +1,81 @@ +patch_spool: + name: "Patch Spool" + description: "A custom service to patch spool data" + fields: + id: + name: "ID" + description: "The ID of the spool" + example: 123 + required: true + first_used: + name: "First Used" + description: "The first time the spool was used" + example: "2019-08-24T14:15:22Z" + last_used: + name: "Last Used" + description: "The last time the spool was used" + example: "2019-08-24T14:15:22Z" + filament_id: + name: "Filament ID" + description: "The ID of the filament used in the spool" + example: 0 + price: + name: "Price" + description: "The price of the spool" + example: 20.0 + initial_weight: + name: "Initial Weight" + description: "The initial weight of the spool including filament" + example: 200.0 + spool_weight: + name: "Spool Weight" + description: "The weight of the empty spool" + example: 200.0 + remaining_weight: + name: "Remaining Weight" + description: "The remaining weight of the filament on the spool" + example: 800.0 + used_weight: + name: "Used Weight" + description: "The weight of the filament used from the spool" + example: 200.0 + location: + name: "Location" + description: "The storage location of the spool" + example: "Shelf A" + lot_nr: + name: "Lot Number" + description: "The lot number of the filament" + example: "52342" + comment: + name: "Comment" + description: "Any comments about the spool" + example: "" + archived: + name: "Archived" + description: "Whether the spool is archived" + example: false + extra: + name: "Extra" + description: "Any extra properties for the spool" + example: + property1: "string" + property2: "string" + +use_spool_filament: + name: "Use Spool Filament" + description: "Use a weight (or length) of filament for a spool." + fields: + id: + name: "ID" + description: "The ID of the spool." + example: 123 + required: true + use_weight: + name: "Used Weight" + description: "The weight of the filament to use from the spool (in g)." + example: 10 + use_length: + name: "Used Length" + description: "The length of the filament to use from the spool (in mm)." + example: 100 diff --git a/custom_components/spoolman/translations/de.json b/custom_components/spoolman/translations/de.json new file mode 100644 index 00000000..1927c6c1 --- /dev/null +++ b/custom_components/spoolman/translations/de.json @@ -0,0 +1,42 @@ +{ + "config": { + "step": { + "user": { + "title": "Konfiguration", + "data": { + "spoolman_url": "Host (inkl. Protokol)", + "update-interval": "Update Interval (Minuten)", + "show_archived": "Archivierte anzeigen", + "notification_threshold_info": "Schwellenwert Info", + "notification_threshold_warning": "Schwellenwert Warnung", + "notification_threshold_critical": "Schwellenwert Kritisch", + "klipper_url": "Klipper URL", + "klipper_url_desc": "Klipper URL" + } + } + }, + "error": { + "already_configured": "Device is already configured" + }, + "abort": { + "already_configured": "Device is already configured" + } + }, + "options": { + "step": { + "init": { + "title": "Konfiguration", + "data": { + "spoolman_url": "Host (inkl. Protokol)", + "update-interval": "Update Interval (Minuten)", + "show_archived": "Archivierte anzeigen", + "notification_threshold_info": "Schwellenwert Info", + "notification_threshold_warning": "Schwellenwert Warnung", + "notification_threshold_critical": "Schwellenwert Kritisch", + "klipper_url": "Klipper URL", + "klipper_url_desc": "Klipper URL" + } + } + } + } +} diff --git a/custom_components/spoolman/translations/en.json b/custom_components/spoolman/translations/en.json new file mode 100644 index 00000000..ef029436 --- /dev/null +++ b/custom_components/spoolman/translations/en.json @@ -0,0 +1,42 @@ +{ + "config": { + "step": { + "user": { + "title": "Configuration", + "data": { + "spoolman_url": "Host (incl. protocol)", + "update-interval": "Update interval (minutes)", + "show_archived": "Show archived", + "notification_threshold_info": "Threshold Info", + "notification_threshold_warning": "Threshold Warning", + "notification_threshold_critical": "Threshold Critical", + "klipper_url": "Klipper url", + "klipper_url_desc": "Klipper url" + } + } + }, + "error": { + "already_configured": "Device is already configured" + }, + "abort": { + "already_configured": "Device is already configured" + } + }, + "options": { + "step": { + "init": { + "title": "Konfiguration", + "data": { + "spoolman_url": "Host (incl. protocol)", + "update-interval": "Update interval (minutes)", + "show_archived": "Show archived", + "notification_threshold_info": "Threshold Info", + "notification_threshold_warning": "Threshold Warning", + "notification_threshold_critical": "Threshold Critical", + "klipper_url": "Klipper url", + "klipper_url_desc": "Klipper url" + } + } + } + } +} diff --git a/zigbee2mqtt/state.json b/zigbee2mqtt/state.json index 840ce7af..1c2c7f79 100644 --- a/zigbee2mqtt/state.json +++ b/zigbee2mqtt/state.json @@ -27,8 +27,8 @@ "led_brightness": 100, "countdown_to_turn_off": 0, "countdown_to_turn_on": 0, - "power": 1.9, - "current": 0.09, + "power": 2.1, + "current": 0.1, "energy": 54.02, "power_factor": 0.23, "update": { @@ -77,8 +77,8 @@ "voltage": 117.8, "state": "ON", "ac_frequency": 60, - "energy": 210.29, - "power": 104, + "energy": 210.3, + "power": 105.2, "current": 0.95, "power_factor": 0.93, "update": { @@ -98,10 +98,10 @@ "voltage": 119.3, "energy": 100.67, "state": "ON", - "power": 10.3, + "power": 11.4, "current": 0.32, "ac_frequency": 60, - "power_factor": 0.52, + "power_factor": 0.5, "update": { "state": "idle", "installed_version": 268513381, @@ -114,12 +114,12 @@ }, "0xffffb40e060895b3": { "state": "ON", - "voltage": 118.9, + "voltage": 119.4, "ac_frequency": 60, "energy": 14.2, "current": 0.01, "power": 0.2, - "power_factor": 0.11, + "power_factor": 0.13, "linkquality": 116, "update": { "state": "idle",