Hello, i want to connect my M2 with Home Assistant.
The connection seems to be ok. But on some push on button on home assistant, i have the error : Échec de l'exécution de l'action button/press. V2 PUT /v1/peripheral/param returned code 404: API not found
Puhs button are :
Exhaust fan
Fill light
Home laser head
Home XY
all switch button configuration
Start, pause or resume jobs seems to be ok.
2026-07-15 14:22:20.221 DEBUG (MainThread) [custom_components.xtool.protocols.ws_v2.protocol] V2 TX POST /v1/platform/device/state/sync txn=763 params=None data=None
2026-07-15 14:22:20.272 DEBUG (MainThread) [custom_components.xtool.protocols.ws_v2.protocol] V2 RX binary chunk len=211 head=babe0000c904e78dc8207b0a09226461
2026-07-15 14:22:20.272 DEBUG (MainThread) [custom_components.xtool.protocols.ws_v2.protocol] V2 RX event type=request url=None txn=120210848
2026-07-15 14:22:20.272 DEBUG (MainThread) [custom_components.xtool.protocols.ws_v2.protocol] V2 push url= module=None type=None info=None
2026-07-15 14:22:20.272 DEBUG (MainThread) [custom_components.xtool.protocols.ws_v2.protocol] V2 unhandled push event: {'data': {'/v1/platform/device/state': {'mode': 'Sleep'}}, 'method': 'REPORT', 'params': {}, 'timestamp': 1784118140188, 'transactionId': 120210848, 'type': 'request'}
2026-07-15 14:22:20.272 DEBUG (MainThread) [custom_components.xtool.coordinator] Manually updated xtool_MLMK610001ZE260528H096349 data
2026-07-15 14:22:20.276 DEBUG (MainThread) [custom_components.xtool.protocols.ws_v2.protocol] V2 RX binary chunk len=185 head=babe0000af04bb2cf8c67b0a09226461
2026-07-15 14:22:20.276 DEBUG (MainThread) [custom_components.xtool.protocols.ws_v2.protocol] V2 RX event type=request url=None txn=120210849
2026-07-15 14:22:20.276 DEBUG (MainThread) [custom_components.xtool.protocols.ws_v2.protocol] V2 push url= module=None type=None info=None
2026-07-15 14:22:20.277 DEBUG (MainThread) [custom_components.xtool.protocols.ws_v2.protocol] V2 unhandled push event: {'data': {'/v1/platform/device/alarm': []}, 'method': 'REPORT', 'params': {}, 'timestamp': 1784118140209, 'transactionId': 120210849, 'type': 'request'}
2026-07-15 14:22:20.277 DEBUG (MainThread) [custom_components.xtool.coordinator] Manually updated xtool_MLMK610001ZE260528H096349 data
2026-07-15 14:22:20.297 DEBUG (MainThread) [custom_components.xtool.protocols.ws_v2.protocol] V2 RX binary chunk len=1130 head=babe000460045b1d38807b0a09226461
2026-07-15 14:22:20.297 DEBUG (MainThread) [custom_components.xtool.protocols.ws_v2.protocol] V2 RX event type=request url=None txn=120210850
2026-07-15 14:22:20.298 DEBUG (MainThread) [custom_components.xtool.protocols.ws_v2.protocol] V2 push url= module=None type=None info=None
2026-07-15 14:22:20.298 DEBUG (MainThread) [custom_components.xtool.protocols.ws_v2.protocol] V2 unhandled push event: {'data': {'/v1/platform/device/machine-info': {'deviceCode': 'JS002', 'deviceId': '12991489595960773', 'deviceName': 'xTool_M2_ae1eaa', 'firmware': {'buildTime': '2026-06-18 18:52:37', 'modules': [{'appVersion': '0.10.3', 'bootVersion': '0.2.4', 'hardVersion': '0.0.1', 'name': 'MotionController'}, {'appVersion': '0.6.3', 'bootVersion': '0.2.4', 'hardVersion': '0.0.1', 'name': 'LaserController'}], 'version': '40.141.010.01.ht03'}, 'sku': '55667456', 'sn': 'MLMK610001ZE260528H096349', 'uuid': 'a94a5e48-2e73-5278-b200-421a08056655'}, '/v1/platform/wifi/info': {'bandMhz': 0, 'bssid': '24:a4:3c:df:00:de', 'channel': 2, 'freq': '2.4GHz', 'ifName': 'wlan0', 'ipAddress': '192.168.2.111', 'linkSpeedmbps': 65, 'rssiDbm': -40, 'security': 'WPA2_PSK', 'sigPercent': 95, 'ssid': 'IOT'}}, 'method': 'REPORT', 'params': {}, 'timestamp': 1784118140230, 'transactionId': 120210850, 'type': 'request'}
2026-07-15 14:22:20.298 DEBUG (MainThread) [custom_components.xtool.coordinator] Manually updated xtool_MLMK610001ZE260528H096349 data
2026-07-15 14:22:20.299 DEBUG (MainThread) [custom_components.xtool.protocols.ws_v2.protocol] V2 RX binary chunk len=110 head=babe0000640403ea8e0a7b0a0922636f
2026-07-15 14:22:20.299 DEBUG (MainThread) [custom_components.xtool.protocols.ws_v2.protocol] V2 RX event type=response url=None txn=763
2026-07-15 14:22:20.299 DEBUG (MainThread) [custom_components.xtool.protocols.ws_v2.protocol] V2 RX POST /v1/platform/device/state/sync txn=763 data={}
2026-07-15 14:22:20.300 DEBUG (MainThread) [custom_components.xtool.protocols.ws_v2.protocol] V2 TX GET /v1/project/peripheral/lid txn=764 params=None data=None
2026-07-15 14:22:20.317 DEBUG (MainThread) [custom_components.xtool.protocols.ws_v2.protocol] V2 RX binary chunk len=154 head=babe000090049a9f09937b0a0922636f
2026-07-15 14:22:20.317 DEBUG (MainThread) [custom_components.xtool.protocols.ws_v2.protocol] V2 RX event type=response url=None txn=764
2026-07-15 14:22:20.317 DEBUG (MainThread) [custom_components.xtool.protocols.ws_v2.protocol] V2 RX GET /v1/project/peripheral/lid txn=764 data={'state': False}
2026-07-15 14:22:20.317 DEBUG (MainThread) [custom_components.xtool.protocols.ws_v2.protocol] V2 TX GET /v1/project/device/coordinate txn=765 params=None data=None
2026-07-15 14:22:20.340 DEBUG (MainThread) [custom_components.xtool.protocols.ws_v2.protocol] V2 RX binary chunk len=177 head=babe0000a704d0ca226a7b0a0922636f
2026-07-15 14:22:20.340 DEBUG (MainThread) [custom_components.xtool.protocols.ws_v2.protocol] V2 RX event type=response url=None txn=765
2026-07-15 14:22:20.340 DEBUG (MainThread) [custom_components.xtool.protocols.ws_v2.protocol] V2 RX GET /v1/project/device/coordinate txn=765 data={'x': 0.0, 'y': 0.0, 'z': 0.0}
2026-07-15 14:22:20.340 DEBUG (MainThread) [custom_components.xtool.protocols.ws_v2.protocol] V2 parts_control TX mcode='M9098' prefix=b'Gsd\x01\x00' b64=8EdzZAEATTkwOTgKUPc=
2026-07-15 14:22:20.340 DEBUG (MainThread) [custom_components.xtool.protocols.ws_v2.protocol] V2 TX POST /v1/parts/control txn=766 params=None data={'link': 'uart485', 'data_b64': '8EdzZAEATTkwOTgKUPc='}
2026-07-15 14:22:20.369 DEBUG (MainThread) [custom_components.xtool.protocols.ws_v2.protocol] V2 RX binary chunk len=118 head=babe00006c04d6ef7d967b0a0922636f
2026-07-15 14:22:20.370 DEBUG (MainThread) [custom_components.xtool.protocols.ws_v2.protocol] V2 RX event type=response url=None txn=766
2026-07-15 14:22:20.370 DEBUG (MainThread) [custom_components.xtool.protocols.ws_v2.protocol] V2 RX POST /v1/parts/control txn=766 code=404 msg=API not found
2026-07-15 14:22:20.370 DEBUG (MainThread) [custom_components.xtool.protocols.ws_v2.protocol] V2 parts_control M9098 failed: V2 POST /v1/parts/control returned code 404: API not found
2026-07-15 14:22:20.370 DEBUG (MainThread) [custom_components.xtool.coordinator] Accessory M9098 reply: None
2026-07-15 14:22:20.370 DEBUG (MainThread) [custom_components.xtool.coordinator] Finished fetching xtool_MLMK610001ZE260528H096349 data in 0.149 seconds (success: True)
2026-07-15 14:22:21.522 DEBUG (MainThread) [custom_components.xtool.protocols.ws_v2.protocol] V2 RX binary chunk len=109 head=babe0000630492f161267b0a0922636f
2026-07-15 14:22:21.522 DEBUG (MainThread) [custom_components.xtool.protocols.ws_v2.protocol] V2 RX event type=response url=None txn=65510
Pre-submission checklist
Bug description
Hello, i want to connect my M2 with Home Assistant.
The connection seems to be ok. But on some push on button on home assistant, i have the error :
Échec de l'exécution de l'action button/press. V2 PUT /v1/peripheral/param returned code 404: API not foundPuhs button are :
Exhaust fan
Fill light
Home laser head
Home XY
all switch button configuration
Start, pause or resume jobs seems to be ok.
Device model
Other / not listed
Firmware version
40.141.010.01.ht03
Integration version
2.6.1
Home Assistant version
2026.7.0
Steps to reproduce
Power on device
connect with HA
push button on HA
Expected behaviour
working fine :)
Actual behaviour
Error on push
Debug logs
Screenshots / additional context
No response