bytespider / bytespider/Meross

Empty response from MSL120

Open
#119 13 comments 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
141
Forks
21
PR merge metrics
No merged PRs in 30d

Description

Product: MSL120
OS: Cachy OS
Project Version: built from github master branch

Sorry to bother since this may not be an issue with your tool per-se, but of course I'm not sure where else to ask that's relevant.

I'm trying to connect an MSL120 to my local MQTT broker. The bulb was working fine via Meross LAN over HTTP, but I pulled it down and reset it (turn off/on quickly 5 times to get blinking light and WiFi AP created).

When I connect to the AP and then run `meross info`

I get:

```
> meross info

(node:37197) ExperimentalWarning: Importing JSON modules is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
(node:37208) ExperimentalWarning: Importing JSON modules is an experimental feature and might change at any time
(Use `node --trace-warnings ...` to show where the warning was created)
2026-01-09 15:33:01 DEBUG: Transport initialized. Credentials: {"userId":0,"key":"meross"} {"name":"transport"}
2026-01-09 15:33:01 DEBUG: HTTPTransport initialized with URL: http://10.10.10.1/config {"name":"http"}
2026-01-09 15:33:01 DEBUG: Setting transport for device 00000000000000000000000000000000 to HTTPTransport {"name":"device","transport":{"id":"http://10.10.10.1/config","timeout":10000,"credentials":{"userId":0,"key":"meross"},"url":"http://10.10.10.1/config"}}
2026-01-09 15:33:01 INFO: Fetching device information for 00000000000000000000000000000000 {"name":"device"}
2026-01-09 15:33:01 DEBUG: Signing message dda7198d49784cfc834dbf0df4d0fc67 {}
2026-01-09 15:33:01 HTTP: POST http://10.10.10.1/config {"Content-Type":"application/json; charset=utf-8","Accept":"application/json"} {"header":{"method":"GET","namespace":"Appliance.System.All","from":"http://10.10.10.1/config","messageId":"dda7198d49784cfc834dbf0df4d0fc67","timestamp":1767990782,"sign":"b644fab56eb3c3c03f83b4b0ad1681c0"},"payload":{}} {"name":"request","requestId":"dda7198d49784cfc834dbf0df4d0fc67","request":{"method":"POST","headers":{"Content-Type":"application/json; charset=utf-8","Accept":"application/json"},"body":"{\"header\":{\"method\":\"GET\",\"namespace\":\"Appliance.System.All\",\"from\":\"http://10.10.10.1/config\",\"messageId\":\"dda7198d49784cfc834dbf0df4d0fc67\",\"timestamp\":1767990782,\"sign\":\"b644fab56eb3c3c03f83b4b0ad1681c0\"},\"payload\":{}}"}}
request to http://10.10.10.1/config failed, reason: Parse Error: Missing expected CR after response line
Error stack:
FetchError: request to http://10.10.10.1/config failed, reason: Parse Error: Missing expected CR after response line
at ClientRequest. (file:///home/chris/Downloads/meross/node_modules/node-fetch/src/index.js:108:11)
at ClientRequest.emit (node:events:531:35)
at Socket.socketOnData (node:_http_client:549:9)
at Socket.emit (node:events:531:35)
at addChunk (node:internal/streams/readable:559:12)
at readableAddChunkPushByteMode (node:internal/streams/readable:510:3)
at Readable.push (node:internal/streams/readable:390:5)
at TCP.onStreamRead (node:internal/stream_base_commons:190:23)⏎
```

Confused, since it seemed the HTTP header strictness issue was resolved in the pass, I tried sending the POST directly with curl:

```
❯ curl -v --raw \
-H "Content-Type: application/json; charset=utf-8" \
-H "Accept: application/json" \
-X POST http://10.10.10.1/config \
--data-binary '{"header":{"method":"GET","namespace":"Appliance.System.All","from":"http://10.10.10.1/config","messageId":"36563b24219c40b9af1df64836122d34","timestamp":1767991225,"sign":"d4d4351e8b81c65d6ef6c1af7aab866f"},"payload":{}}'
Note: Unnecessary use of -X or --request, POST is already inferred.
* Trying 10.10.10.1:80...
* Established connection to 10.10.10.1 (10.10.10.1 port 80) from 10.10.10.2 port 58032
* using HTTP/1.x
> POST /config HTTP/1.1
> Host: 10.10.10.1
> User-Agent: curl/8.18.0
> Content-Type: application/json; charset=utf-8
> Accept: application/json
> Content-Length: 221
>
* upload completely sent off: 221 bytes
* Empty reply from server
* shutting down connection #0
curl: (52) Empty reply from server
```

Ever see anything like this? Maybe the device isn't in the right state, but having it reset where I can connect to its AP I would assume means it's "ready" for this. Did I miss that I need to unpair it from my Meross account or something?

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.