High-level command implementation for Nefit Easy™.
Use this library in moderation: don't flood the backend with new connections made every X seconds. Instead, if you want to poll the backend for data, create a connection once and reuse it for each command. In the end, it's your own responsibility to not get blocked because of excessive (ab)use.
$ npm i nefit-easy-commands
const NefitEasyCommands = require('nefit-easy-commands');
const client = NefitEasyCommands({
serialNumber : NEFIT_SERIAL_NUMBER,
accessKey : NEFIT_ACCESS_KEY,
password : NEFIT_PASSWORD,
[ requestTimeout : Number ]
});
client.status([skipOutdoorTemperature]) : Promise
If skipOutdoorTemperature
is true
, the client won't make an extra request to retrieve the current outdoor temperature.
client.pressure() : Promise
client.hotWaterSupply() : Promise
client.location() : Promise
client.program() : Promise
client.userMode() : Promise
client.setHotWaterSupply(value : String) : Promise
value
should be one of on
/off
.
client.setUserMode(value : String) : Promise
value
should be one of manual
/clock
.
client.setTemperature(value : [Number|String]) : Promise
value
can be prefixed with a specifier to add a bit of logic to changing the setpoint.
The specifier can contain a base for relative changes:
setpoint
: this is the current target temperature;in house temp
: this is the current measured temperature;
Valid specifiers:
> VALUE
: only change setpoint to "VALUE" if it's larger than the current setpoint;< VALUE
: only change setpoint to "VALUE" if it's smaller than the current setpoint;setpoint + VALUE
: increase the setpoint by "VALUE"setpoint - VALUE
: decrease the setpoint by "VALUE"in house temp + VALUE
: change the setpoint to in house temperature + "VALUE"in house temp - VALUE
: change the setpoint to in house temperature - "VALUE"
Examples:
- "Set the thermostat to 21°C, but only if it's not already set higher than that."
client.setTemperature('> 21').then(...)
- "Increase the setpoint by 2.5°C"
client.setTemperature('setpoint + 2.5').then(...)
- "Set the setpoint to the current in house temperature and add 2.5°C"
client.setTemperature('in house temp + 2.5').then(...)