homebridge-http-switch
homebridge-http-switch copied to clipboard
Request for Help with POST
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)
- homebridge: 1.6.0
- homebridge-http-switch: v0.5.36
Configuration This is my configuration so far:
{
"accessory": "HTTP-SWITCH",
"name": "Reolink Siren",
"switchType": "stateless",
"timeout": 3000,
"debug": true,
"onUrl": {
"url": "http://192.168.177.211/cgi-bin/api.cgi?user=admin&password=mypassword",
"method": "POST",
"headers": {
"Content-Type": "application/json"
},
"body": {
"cmd": "AudioAlarmPlay",
"action": 0,
"param": {
"alarm_mode": "times",
"manual_switch": 1,
"times": 3,
"channel": 0
}
}
}
}
Unfortunately, the plugin does not trigger the siren with the above configuration. Any ideas?
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 OFFI 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"
}
},