Humor me, and go for a simple approach by seeing if you can get the auth token with the below approach, if you can, build it up from there.
I don't use Miele, so not sure what else could be at fault, if this still fails
Set your creds in the function
node - The HTTP Request
node, handles all the rest
[{"id":"caa9182d6bf17da5","type":"http request","z":"2d7bf6e3.84c97a","name":"","method":"POST","ret":"obj","paytoqs":"ignore","url":"https://api.mcs3.miele.com/thirdparty/token/","tls":"","persist":false,"proxy":"","insecureHTTPParser":false,"authType":"","senderr":false,"headers":[{"keyType":"Content-Type","keyValue":"","valueType":"other","valueValue":"application/x-www-form-urlencoded"}],"x":595,"y":1280,"wires":[["86bc668b598281c8"]]},{"id":"e374d018058eb540","type":"inject","z":"2d7bf6e3.84c97a","name":"","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":140,"y":1280,"wires":[["40d10d3cf51a6502"]]},{"id":"40d10d3cf51a6502","type":"function","z":"2d7bf6e3.84c97a","name":"Set Request VARS (edit me)","func":"const ClientID = 'xxxxxxxx'\nconst ClientSecret = 'xxxxxxxx'\nconst Username = 'xxxxxxxx'\nconst Password = 'xxxxxxxx'\nconst VG = 'de-DE'\n\n\nmsg.payload = {\n \"grant_type\": \"password\",\n \"client_id\" : ClientID,\n \"client_secret\" : ClientSecret,\n \"username\": Username,\n \"password\": Password,\n \"vg\" : VG\n}\n\nreturn msg","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":370,"y":1280,"wires":[["caa9182d6bf17da5"]]},{"id":"86bc668b598281c8","type":"debug","z":"2d7bf6e3.84c97a","name":"debug 3","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":785,"y":1280,"wires":[]}]
Note: What I am seeing is a requirement for redirect_uri
which does not appear to be optional, and there appears to be various steps according to below
https://www.miele.com/developer/authorization.html