Files
ewelink-api/docs/available-methods/openwebsocket.md
Martin M 098011b285 Release v2.0.0 (#44)
* Added arpTableSolver (#18)

* Added arpTableSolver

* fix package import

* linting class

* changed arp library

* refactor arp class

* using arpping fork

* refactor arpTableSolver class

* Added Zero Conf functionality (LAN mode) (#46)

* added crypto-js

* zeroconf helper functions

* zeroconf update payload

* new method to save devices cache file

* class renamed

* refactor Zeroconf class

* return cached device if exists

* moved method to get local ip address

* fix mac addresses without leading zeroes

* refactor Zeroconf class

* using new zeroconf functionality

* zeroconf working with single and multichannel devices

* save device mixin enhancement

* working on zeroconf test cases

* catch errors on filesystem methods

* zeroconf: added extra test cases

* better error handling

* zeroconf: 100% code coverage

* removed deprecated login method

* updates on credentials file

* version bump

* Docs for v2.0 (#52)

* added v1 docs

* added zeroconf docs

* updated readme

* docs updated

* removed zeroconf article warning

* updated vscode config

Co-authored-by: Luis Llamas <luisllamas@hotmail.com>
2020-01-11 01:39:29 -03:00

70 lines
1.5 KiB
Markdown

# openWebSocket
Opens a socket connection to eWeLink and listen for realtime events.
### Usage
The `openWebSocket` method requires a callback function as an argument.
Once an event is received, the callback function will be executed with the server message as argument.
```js
// instantiate class
const connection = new ewelink({
email: '<your ewelink email>',
password: '<your ewelink password>',
region: '<your ewelink region>',
});
// login into eWeLink
await connection.login();
// call openWebSocket method with a callback as argument
const socket = await connection.openWebSocket(async data => {
// data is the message from eWeLink
console.log(data)
});
```
### Response example
If everything went well, the first message will have the following format:
```js
{
error: 0,
apikey: '12345678-9012-3456-7890-123456789012',
config: {
hb: 1,
hbInterval: 12345
},
sequence: '1234567890123'
}
```
When a device change his status, a similar message will be returned:
```js
{
action: 'update',
deviceid: '1234567890',
apikey: '12345678-9012-3456-7890-123456789012',
userAgent: 'device',
sequence: '1234567890123'
ts: 0,
params: {
switch: 'on'
},
from: 'device',
seq: '11'
}
```
### Notes
* Because of the nature of a socket connection, the script will keep running until the connection gets closed.
* `openWebSocket` will return the socket instance
* if you need to manually kill the connection, just run `socket.close()` (where socket is the variable used).