mirror of
https://github.com/skydiver/ewelink-api.git
synced 2025-12-21 13:23:05 +01:00
* updated dependencies * code linting * added new app id & app secret * cleanup requests payloads * remove unused function * update test cases * enabled firmware tests * refactor getDevice to use right api endpoint * error messages improvements * error messages improvements * error messages improvements * error messages improvements * error messages improvements * payload cleanup * refactor setDevicePowerState to use right api endpoint * update test exepectation * removed deprecated class * updated tests to reflect new error codes * error messages improvements * refactoring project structure: devices methods refactoring project sturcture * refactoring project structure: firmware methods * refactoring project structure: temperature/humidity * refactoring project structure: credentials methods * refactoring project structure: power usage methods * refactoring project structure: power state methods * refactoring project structure: websocket methods * removed deprecated login method from docs * refactoring project structure: power usage methods * refactoring project structure: zeroconf classes * refactoring project structure: websocket classes * refactoring project structure: zeroconf classes * refactor and cleanup * refactoring project structure: firmware methods * moved parsers to own directory * update tests with methods renames * export missing temperature/humidity methods * removed unused package * refactor and cleanup * fix test expectation * refactoring project structure: moved data files * refactoring project structure: moved data files * refactoring project structure: moved helpers files * refactoring project structure: moved helpers files * refactoring project structure: moved payload files * refactor and cleanup * refactor getDevicePowerState * setDevicePowerState returns channel * convert error 400 to 404 for clarity * updated test cases * remove console.log * cache path for zeroconf cache files * installed nock * using nock to simulate server requests during testing * moved credentials file to config folder * update request url when using nock * refactor nock helper file * move cooldown delay to setupTests file * updating testing instructions * restored delete code block * fix wrong error code * accept phone number to login to ewelink * added test cases for initialize main class * improvements on class initialization parameters * allow login using phone number * rename test file * updated test case * fixed regression bug * Release v3.0.0 - use node-fetch (#87) * replaced deprecated request library with node-fetch * refactor: moved makeRequest to own mixin file * refactor to use node-fetch * fixes * update config * created helper method * constant rename * ignore files from final package * version bump
1.6 KiB
1.6 KiB
serverless
On a serverless scenario you need to instantiate the class on every request.
So, instead of using email and password on every api call, you can login the first time then use auth credentials for future requests.
Default region of this library is
us. If your are in a different one, you must specify region parameter or error 400/401 will be returned.
/* first request: get access token and api key */
(async () => {
const connection = new ewelink({
email: '<your ewelink email>',
password: '<your ewelink password>',
region: '<your ewelink region>',
});
const credentials = await connection.getCredentials();
const accessToken = credentials.at;
const apiKey = credentials.user.apikey
const region = credentials.region;
})();
/* second request: use access token to request devices */
(async () => {
const newConnection = new ewelink({
at: accessToken,
region: region
});
const devices = await newConnection.getDevices();
console.log(devices);
})();
/* third request: use access token to request specific device info */
(async () => {
const thirdConnection = new ewelink({
at: accessToken,
region: region
});
const device = await thirdConnection.getDevice('<your device id>');
console.log(device);
})();
/* fourth request: use access token and api key to toggle specific device info */
(async () => {
const anotherNewConnection = new ewelink({
at: accessToken,
region: region
});
await anotherNewConnection.toggleDevice('<your device id>');
})();
If you don't know your region, use getRegion method