NEWS
[gelöst] http request
-
den javaScript adpater hast du mal auf debug gestellt?
siehst du eigentlich irgendwo einen log, dass er versucht diesen request abzuschicken?
-
den javaScript adpater hast du mal auf debug gestellt? ` jupp
@homecineplexx:siehst du eigentlich irgendwo einen log, dass er versucht diesen request abzuschicken? ` nein
ich fasse mal zusammen:
deine Code-Zeile erzeugt keine Befehle und auch keine Logeinträge
var request = require('request'); request("http://192.168.2.37:8091/SetState.pl?R16=1&RT16=0").on('error', function (e) { log(e, 'error');});
Ich hatte dann mal aus dem https://www.npmjs.com/package/request was probiert:
var request = require('request'); request("http://192.168.2.37:8091/SetState.pl?R16=1&RT16=0", function (error, response, body) { log('error: ' + error); log('response: ' + JSON.stringify(response)); log('body: ' + body); });
erzeugt dann dieses Log:````
12:58:34.714 [info] javascript.0 script.js.Testscripte.Skript1: error: null
12:58:34.715 [info] javascript.0 script.js.Testscripte.Skript1: response: {"statusCode":401,"body":"","headers":{"server":"PoolController","www-authenticate":"Poolauth realm="NeedPassword"","content-type":"text/html"},"request":{"uri":{"protocol":"http:","slashes":true,"auth":null,"host":"192.168.2.37:8091","port":"8091","hostname":"192.168.2.37","hash":null,"search":"?R16=1&RT16=0","query":"R16=1&RT16=0","pathname":"/SetState.pl","path":"/SetState.pl?R16=1&RT16=0","href":"http://192.168.2.37:8091/SetState.pl?R16=1&RT16=0"},"method":"GET","headers":{}}}
12:58:34.716 [info] javascript.0 script.js.Testscripte.Skript1: body:da steht was von "****Poolauth realm=\"NeedPassword\****". Also erweitert mit den Zeilen die ich bei request-npm gefunden habe (ob das richtig ist, sein mal dahin gestellt):```` request({ method: 'POST', uri: 'http://192.168.2.37:8091/SetState.pl?R16=1&RT16=0', auth: [{ 'user': 'admin', 'pass': 'admin', 'sendImmediately': false }] }, function (error, response, body) { log('error: ' + error); log('response: ' + response); //log('response: ' + JSON.stringify(response)); log('body: ' + body); }); */
erzeug dieses Log:````
13:04:02.185 [info] javascript.0 script.js.Testscripte.Skript1: error: Error: no auth mechanism defined
13:04:02.185 [info] javascript.0 script.js.Testscripte.Skript1: response: undefined
13:04:02.185 [info] javascript.0 script.js.Testscripte.Skript1: body: undefinedHmmm, nun gehts nicht weiter…
-
und so?
var requestTest = require('request'), var options = { url: 'http://192.168.2.37:8091/SetState.pl?R16=1&RT16=0', method: 'POST', formData: { 'username':'admin', 'password':'admin' } } requestTest(options, function (error, response, body) { log('error: ' + error); log('response: ' + JSON.stringify(response)); log('body: ' + body); });
-
und so?
var requestTest = require('request'), var options = { url: 'http://192.168.2.37:8091/SetState.pl?R16=1&RT16=0', method: 'POST', formData: { 'username':'admin', 'password':'admin' } } requestTest(options, function (error, response, body) { log('error: ' + error); log('response: ' + JSON.stringify(response)); log('body: ' + body); }); ```` `
ergibt das: ` > 14:45:24.506 [info] javascript.0 script.js.Testscripte.Skript1: error: Error: read ECONNRESET
14:45:24.523 [info] javascript.0 script.js.Testscripte.Skript1: response: undefined
14:45:24.523 [info] javascript.0 script.js.Testscripte.Skript1: body: undefined `
habe in der ersten Zeile mal das "Komma" mit einem "Semikolon" getauscht?
-
Sorry war ein Schreibfehler.
Natürlich so.
Aber du bekommst keine Authfehler mehr?
var requestTest = require('request'); var options = { url: 'http://192.168.2.37:8091/SetState.pl?R16=1&RT16=0', method: 'POST', formData: { 'username':'admin', 'password':'admin' } }; requestTest(options, function (error, response, body) { log('error: ' + error); log('response: ' + JSON.stringify(response)); log('body: ' + body); });
-
Sorry war ein Schreibfehler.
Natürlich so.
Aber du bekommst keine Authfehler mehr?
var requestTest = require('request'); var options = { url: 'http://192.168.2.37:8091/SetState.pl?R16=1&RT16=0', method: 'POST', formData: { 'username':'admin', 'password':'admin' } }; requestTest(options, function (error, response, body) { log('error: ' + error); log('response: ' + JSON.stringify(response)); log('body: ' + body); }); ```` ` Nein.
-
Schaltet dein Teil jetzt mal?
-
Schaltet dein Teil jetzt mal? ` Ne tuts leider nicht…
-
mal was anderes. siehst du auf dem 192.168.2.37:8091, den du steuern möchtest, irgendwelche logs?
-
mal was anderes. siehst du auf dem 192.168.2.37:8091, den du steuern möchtest, irgendwelche logs? ` Logs in dem Sinne sind da nicht zu holen.
ABER, ich habe jetzt was gefunden was auch klappt.
var request = require('request'), username = "admin", password = "admin", url = 'http://192.168.2.37:8091/SetState.pl?R16=0&RT16=0', auth = "Basic " + new Buffer(username + ":" + password).toString("base64"); request({ url : url, headers : {'Authorization' : auth} }, function (error, response, body) { log('error: ' + error); log('response: ' + JSON.stringify(response)); log('body: ' + body); } );
erzeugt dann dieses LOG und schaltet auch das Relais im Controler:
08:23:02.308 [info] javascript.0 script.js.Testscripte.Skript1: error: null 08:23:02.310 [info] javascript.0 script.js.Testscripte.Skript1: response: {"statusCode":200,"body":"0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0\n","headers":{"server":"PoolController V.1.6.8","connection":"close","content-type":"text/plain; charset=ISO-8859-1"},"request":{"uri":{"protocol":"http:","slashes":true,"auth":null,"host":"192.168.2.37:8091","port":"8091","hostname":"192.168.2.37","hash":null,"search":"?R16=0&RT16=0","query":"R16=0&RT16=0","pathname":"/SetState.pl","path":"/SetState.pl?R16=0&RT16=0","href":"http://192.168.2.37:8091/SetState.pl?R16=0&RT16=0"},"method":"GET","headers":{"Authorization":"Basic YWxxxx46xxxxaWxxxx=="}}} 08:23:02.310 [info] javascript.0 script.js.Testscripte.Skript1: body: 0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0
nochmal danke an alle die so geduldig waren.