v2.5.4
Highlights
Big WS-V2 firmware sweep driven by GizmoGoody's F2 Ultra UV retest (#4) plus a Studio-bundle audit across every model.
Fixes
- Entity-ID migration: stable across reloads. The legacy ↔ friendly-name ping-pong is gone; orphaned legacy entries from earlier cycles are cleaned up so recorder history rebinds correctly.
- DEVICE_CONFIG push fan-out: Studio ↔ HA toggle desync (Beep / Cover check / Fill light / IR LED) — switches now reflect device-side changes within one push cycle instead of waiting 5 s for the next poll.
- Job events fire when launched from xTool Studio, not just from the controller button. Driven directly off
/work/result+/device/statuspushes. - DuctFanV3 (IF2 2.0) M9082 parser: positional token parsing — the firmware version string used to leak into other fields.
- Camera snap proceeds past
/v1/filetransfer/downloadcode -99errors (F2 Ultra UV firmware 40.130.021); thefile_streamdescriptor still works.
New entities
- Safety key binary sensor — reclassified
machine_lockas USB safety-key presence (PLUG device class, polarity flipped). Studio reads the same field asUsbKeyLockStatus. - Stops when moved switch — V2
workingModeHANDLE/NORMAL enum, replacing the old (wrongly-wired) Lock check. - Device sleep switch — F1 / F2 family, drives
autoSleepEnable. - Z-axis homing button — F2 Ultra UV, sends Studio's
/v1/laser-head/focus/control {action:"goTo", autoHome:1}. - Fill light front / Fill light back — F2 family dual-LED enclosure (split from the single-channel entity).
- IF2 2.0 — single Fan Select with 7 options (
Auto Regular,Auto Quiet,Off,1–4) backed byM9064 <mode><gear>. Replaces the prior mode + manual-gear pair. - IF2 2.0 — post-run timer Number entity backed by
M9085 T<seconds>.
Renames (Studio-aligned)
- Beep → Buzzer reminders
- Gap check → Stops when enclosure opened
- IR LED global → Red dot
- IF2 BT-buzzer switch → Buzzer
- IF2 preset select → Fan
Removed
- Flame-alarm 3-state Select + Flame-level Select (firmware exposes only an on/off
flameAlarmtoggle). - Fill-light auto-off Number + Filter check switch (no firmware backing — Studio-bundle audit confirmed).
- Working-mode diagnostic sensor (redundant with the new Stops when moved switch).
- Lock check switch (was wired to the wrong field; replaced by Stops when moved).
- IF2 standalone serial-number sensor (now on the connected-device's
serial_number). - Beep / Cover check / Lock check diagnostic mirror binary sensors (redundant — config switches reflect state correctly in both directions).
/v1/device/operate-logprobe (returnedcode -2: invalid requeston every reconnect; not exposed by any V2 firmware audited).
Quality of life
- Cameras consolidated 4 → 2 on F2 family — one entity per physical lens serves both stills and live MJPEG.
- REST poll cycles short-circuit when a device is offline (helps multi-device setups where one device drops off the network).
- IF2 accessory's product SN now appears as the connected device's serial_number on the HA device page.
M1 Ultra(V2) gets the Safety key + Stops-when-moved entity set.