Open peros550 opened 1 year ago
Are there any issues with POST method? To the best of my knowledge (documentation seems a bit limited in regards to POST), it looks I have a correct configuration, yet the POST request is not issued.
I See you have the debug
variable set to true. Could you provide logs full logs of booting the plugin and turning on the switch?
@Supereg Hi, I've been having problems with POST requests also.
I have this accessory:
{
"accessory": "HTTP-SWITCH",
"name": "Nuki Opener",
"switchType": "stateless",
"timeout": 1000,
"debug": true,
"onUrl": {
"url": "https://api.nuki.io/smartlock/XXX/action",
"method": "POST",
"body": {
"action": 3,
"option": 0
}
},
"headers": {
"Content-Type": "application/json",
"Authorization": "Bearer XXX"
}
}
This is a POST request tested in Postman and working fine (I've removed sensitive information) but when I trigger the switch I get the following logs in homebridge:
[10/05/2023, 17:50:58] [Nuki Opener] setStatus() doing http request...
[10/05/2023, 17:50:59] [Nuki Opener] Error occurred setting state of switch: HTTP request returned with error code 401
[10/05/2023, 17:50:59] [Nuki Opener] Body of set response is: {"detailMessage":"Your access token is not authorized","stackTrace":[],"suppressedExceptions":[]}
[10/05/2023, 17:50:59] [Nuki Opener] Resetting switch to OFF
I know that It says that my token is not authorized but the same request in Postman works great with the same bearer token in the Authorization header
@Supereg Hi, I've been having problems with POST requests also.
I have this accessory:
{ "accessory": "HTTP-SWITCH", "name": "Nuki Opener", "switchType": "stateless", "timeout": 1000, "debug": true, "onUrl": { "url": "https://api.nuki.io/smartlock/XXX/action", "method": "POST", "body": { "action": 3, "option": 0 } }, "headers": { "Content-Type": "application/json", "Authorization": "Bearer XXX" } }
This is a POST request tested in Postman and working fine (I've removed sensitive information) but when I trigger the switch I get the following logs in homebridge:
[10/05/2023, 17:50:58] [Nuki Opener] setStatus() doing http request... [10/05/2023, 17:50:59] [Nuki Opener] Error occurred setting state of switch: HTTP request returned with error code 401 [10/05/2023, 17:50:59] [Nuki Opener] Body of set response is: {"detailMessage":"Your access token is not authorized","stackTrace":[],"suppressedExceptions":[]} [10/05/2023, 17:50:59] [Nuki Opener] Resetting switch to OFF
I know that It says that my token is not authorized but the same request in Postman works great with the same bearer token in the Authorization header
@Supereg Checking the plugin initialization logs I think that the issue is that the headers are not being loaded correctly:
[10/05/2023, 18:39:33] [Nuki Opener] Initializing HTTP-SWITCH accessory...
[10/05/2023, 18:39:33] [Nuki Opener] Switch successfully configured...
[10/05/2023, 18:39:33] [Nuki Opener] Switch started with the following options:
[10/05/2023, 18:39:33] [Nuki Opener] - switchType: stateless
[10/05/2023, 18:39:33] [Nuki Opener] - onUrls: [{"method":"POST","body":"{\"action\":3,\"option\":0}","repeat":1,"delayBeforeExecution":0,"auth":{"sendImmediately":true},"headers":{},"strictSSL":false,"requestTimeout":20000,"url":"https://api.nuki.io/smartlock/XXX/action"}]
[10/05/2023, 18:39:33] [Nuki Opener] - timeout for stateless switch: 1000
Hey @pespinel,
your configuration looks faulty to me, the "headers" config property is a property of UrlObjects, try moving it into the "onUrl" config property:
"onUrl": {
"url": "https://api.nuki.io/smartlock/XXX/action",
"method": "POST",
"headers": {
"Content-Type": "application/json",
"Authorization": "Bearer XXX"
}
},
Describe the bug This is a request for help rather than a bug report Expected behavior I have a working POST url that it control's Reolink camera's embeded siren.
To Reproduce Steps to reproduce the behavior: This is my working POST url.
curl -X POST 'http://192.168.177.211/cgi-bin/api.cgi?user=admin&password=mypassword' -d '[{"cmd":"AudioAlarmPlay","action": 0, "param": {"alarm_mode": "times", "manual_switch": 1, "times": 3, "channel": 0}}]'
Version (output of
npm list -g homebridge homebridge-http-switch
)Configuration This is my configuration so far: