feat: add support for xTool Apparel Printer, P2 CO2 Laser, and F1 Ultra - #9
Open
jmassardo wants to merge 1 commit into
Open
feat: add support for xTool Apparel Printer, P2 CO2 Laser, and F1 Ultra#9jmassardo wants to merge 1 commit into
jmassardo wants to merge 1 commit into
Conversation
Adds sensors, fixes, and model corrections derived from live hardware
probing against three xTool devices not previously tested by this
integration.
xTool Apparel Printer (DT001):
- 11 new sensors: ink levels (C/K/M/W/Y), cleaning fluid, waste fluid,
CPU temp, ambient temp, ambient humidity, heating status
- 4 new binary sensors: heater connected, film buffer ready,
film position ready, powder loop running
- DT001-specific protocol subclass with ink/water bottle polling,
push event parsing, and runtime-infos telemetry override
- New has_inkjet_sensors capability flag gating DT001-only entities
P2 CO2 Laser (REST V1):
- Fix V1 UDP discovery: accept mismatched requestId on unicast probes
(P2 firmware 40.21.x returns requestId:0 instead of echoing)
- Parse laserType string/list from machineInfo (shows '55W CO2'
instead of incorrect 'Diode')
- Parse firmware from dict format ({package_version:...})
- Parse hardware board revision from machineInfo hardware dict
- Fallback in REST coordinator when /gethardwaretype returns
non-JSON 'Not Implement' text
F1 Ultra (WS V2 — GS002):
- Remove incorrect model flags (has_smoking_fan, has_uv_fire,
has_display_screen, has_laser_head_position) that caused rejected
peripheral queries
- Remove has_runtime_stats flag: GS002 firmware only returns session
counts, not time-based stats — prevents 5 always-unknown sensors
- Cache /v1/device/configs GET as unsupported (returns code 1)
All V2 devices:
- Extract cpuTemp from runtime-infos in base protocol (ungated sensor
entity available to all V2 models)
- Parse hardware board revision from machineInfo in V2 protocol
- Surface hw_version in Home Assistant device info panel
- Add _hardware_version attribute to base XtoolCoordinator
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 1c43386c-5811-4b49-b97a-78815a2fd1ca
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds sensors, protocol fixes, and model corrections for three xTool devices not previously supported by the integration. Rebased on v2.6.5.
xTool Apparel Printer (DT001)
has_inkjet_sensorscapability flag gating DT001-only entitiesP2 CO2 Laser (REST V1)
F1 Ultra
Conflict resolution
has_inkjet) alongside our Apparel Printer sensors (has_inkjet_sensors) — different device families, no overlap.