rand256/valetudo

REST api curl PUT request start_cleaning_zone_by_name

markusdahlberg opened this issue · 4 comments

Hi and thanks for a great software.

I am trying to request zoned cleanup by curl.

I am using this string

curl -X PUT -H "Content-Type: application/json" -d '[{"Zone1"}]' http://192.168.1.118/api/start_cleaning_zone_by_name

This error occurs .

Am I doing this wrong or is it a bug?

`!DOCTYPE html>

<title>Error</title>
SyntaxError: Unexpected token } in JSON at position 9
   at JSON.parse (<anonymous>)
   at parse (/snapshot/valetudo/node_modules/body-parser/lib/types/json.js:89:19)
   at /snapshot/valetudo/node_modules/body-parser/lib/read.js:121:18
   at invokeCallback (/snapshot/valetudo/node_modules/raw-body/index.js:224:16)
   at done (/snapshot/valetudo/node_modules/raw-body/index.js:213:7)
   at IncomingMessage.onEnd (/snapshot/valetudo/node_modules/raw-body/index.js:273:7)
   at IncomingMessage.emit (events.js:327:22)
   at endReadableNT (_stream_readable.js:1221:12)
   at processTicksAndRejections (internal/process/task_queues.js:84:21)
`

As for me, it tries to say that your json is wrong. You need to put an array of strings, while you're writing an array of invalid objects.
Try just '["zone1"]' or '["zone1","zone2"]' etc.

As for me, it tries to say that your json is wrong. You need to put an array of strings, while you're writing an array of invalid objects.
Try just '["zone1"]' or '["zone1","zone2"]' etc.

root@rockrobo:~# curl -X PUT -H "Content-Type: application/json" -d '["Hall"]' http://192.168.1.118/api/start_cleaning_zone_by_name;echo
Error: Zones must be array of at most 5 zones.

And this is really a bug. Probably nobody used this route for years. :(

Just fixed that, please try running this test build. See installation instructions in wiki (if you have a gen1 device, it's still applicable, just replace /etc/init/S11valetudo stop with stop valetudo and, /etc/init/S11valetudo start with start valetudo).
Sorry for the inconvenience.

It works! thanks