Hi All,
I am pretty new to nodejs and openhab and I can’t seem to get it to change the state of a switch. I am sure I am doing something stupid and wrong, please save me.
var http = require('http');
function dumpError(err) {
if (typeof err === 'object') {
if (err.message) {
console.log('\nMessage: ' + err.message);
}
if (err.stack) {
console.log('\nStacktrace:');
console.log('====================');
console.log(err.stack);
}
} else {
console.log('dumpError :: argument is not an object');
}
}
function setStateZWaveSwitch(itemName, state) {
return new Promise(function(resolve, reject) {
try {
http.request({
"host": '127.0.0.1',
"method": 'PUT',
"port": 8080,
"path": `/rest/items/${itemName}/state`,
"header": { "Content-Type": "text/plain" },
"body": `${state}`
}, function(response) {
var buf = '';
//another chunk of data has been recieved, so append
response.on('data', function(chunk) {
buf += chunk;
});
//the whole response has been recieved, so we just print it out here
response.on('end', function() {
resolve(buf);
});
}).on('error', function(e) {
dumpError(e);
reject(e);
}).end();
} catch(e) {
dumpError(e);
reject(e);
}
});
}
setStateZWaveSwitch('zwave_device_3afa7b64_node2_switch_binary', 'OFF').then(function(res) {
console.log(res);
}, function(e) {
dumpError(e);
});
it responds with:
{
“error”: {
“message”: "State could not be parsed: ",
“http-code”: 400
}
}