home-assistant-libs / python-matter-server

Python server to interact with Matter
Apache License 2.0
489 stars 76 forks source link

Device command, invalid arguments? #858

Open olavt opened 2 months ago

olavt commented 2 months ago

I have some code that worked before. Not sure when this broke, since I haven't tested it in a while.

This is the message I'm sending and the response I get back:

[17.08.2024 19:31:09.716 INF] MatterServerClient.SendCommandAsync: Sending command: { "message_id": "23", "command": "device_command", "args": { "node_id": 2, "endpoint_id": 1, "cluster_id": 6, "command_name": "Off", "payload": null } } [17.08.2024 19:31:09.718 INF] MatterServerClient.ReceiveFromWebSocket: 60 bytes received. [17.08.2024 19:31:09.719 INF] Received response: { "message_id": "23", "error_code": 8, "details": "" }

In the Python Matter Server log I get:

2024-08-17 19:31:09.717 (MainThread) ERROR [matter_server.server.client_handler] [548423327568] Error while handling: device_command (node 2): InvalidArguments

What is the problem with the "devive_command" message?

What argument is invalid?

olavt commented 2 months ago

It seems like the issue is using null for payload and not {} (empty object). Using null in the past was not triggering the InvalidArguments error.

Is this caused by a change in Python Matter Server, or in the Matter SDK?

marcelveldt commented 2 months ago

It seems like the issue is using null for payload and not {} (empty object). Using null in the past was not triggering the InvalidArguments error.

Is this caused by a change in Python Matter Server, or in the Matter SDK?

marcelveldt commented 2 months ago

null is an actual value - maybe better just omit the payload