ottoszika / node-red-contrib-ewelink Goto Github PK
View Code? Open in Web Editor NEWNodeRED nodes for eWeLink smart devices
Home Page: https://ottoszika.github.io/node-red-contrib-ewelink
License: MIT License
NodeRED nodes for eWeLink smart devices
Home Page: https://ottoszika.github.io/node-red-contrib-ewelink
License: MIT License
Hi, first of all thaks a bunch for providing this really promising plugin :)
It will definitely help people have their first foray into home automation with Node Red :)
As I'm a lazy person, I would like to be able to get everything fully dynamic, and just use one single output node to control my devices.
Would it be possible to override the Device Id option with msg.deviceID ? It could be done either literally by specifying {{msg.deviceId}} in the config panel, or hidden in the node constructor somewhere.
I've tried both with no success, this is above my current node.js skills
Thanks !
Nicolas
I understand that there is no way to use multiple connections (so app and node-red nodes won't work together) - so I created a new email account, shared the devices with that email account, and now this email account is dedicated to NodeRed. However, it seems that I cannot even use 2 node-red-contrib-ewelink nodes. One says connected, the other has its connection failing (even though they are both using the same ewelink credentials configuration. So do I need to create a different email address for each node? There has to be a better way...
Am getting the error
"RequestError: Error: getaddrinfo ENOTFOUND australia-api.coolkit.cc australia-api.coolkit.cc:8080"
Even when I change the region in the configuration to eu, ch or leave blank it continues to create a url with australia in it.
Some over in node red forum also has similiar issue
https://discourse.nodered.org/t/node-red-contrib-ewelink/19195
I attempted to set up my ewelink credentials, but apparently didn't get something right. Now that I have deleted the credentials, I can't do anything.
Just installed, and when going to list devices at my account (eu region):
RequestError: Error: certificate has expired
Hi
Since yesterday 10h, I have authentication error....nothing has changed on my side so I am wondering if sonoff has changed something on server side??
Add a basic boilerplate node with some tests
Hi and thank you kindly for your work.
After restarting my router - which briefly interrupted my Internet connection - I get the following error from Node Red:
UnhandledPromiseRejectionWarning: Error: Can't send data because WebSocket is not opened. at exports.throwIf (/root/.node-red/node_modules/websocket-as-promised/dist/index.js:3470:11) at WebSocketAsPromised.send (/root/.node-red/node_modules/websocket-as-promised/dist/index.js:554:7) at Timeout.setInterval [as _onTimeout] (/root/.node-red/node_modules/ewelink-api/mixins/websocket/openWebSocketMixin.js:38:17) at ontimeout (timers.js:436:11) at tryOnTimeout (timers.js:300:5) at listOnTimeout (timers.js:263:5) at Timer.processTimers (timers.js:223:10) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1) e:18884) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
It seems that once the connection is lost, websocket does not get reopened and node-red-contrib-ewelink becomes unusable until a full restart of Node-Red.
Good Day
Please could you assist me ... I live in South Africa and cant seem to find the correct code for the "country" setting
I have tried the following:
"RequestError: Error: getaddrinfo ENOTFOUND za-api.coolkit.cc za-api.coolkit.cc:8080"
Hello, using the eWeLink app. it is possible to view the instantaneous values of the Voltage, Current & Power, from the POWR2.
The accumulated Energy Consumption kWh (power usage over time) is useful, the instantaneous values would be additionally useful, and in someways more useful, on NodeRed, where decisions could be made on, say overcurrent monitoring, Voltage monitoring (voltage drops causing failure) or power monitoring for load shedding.
I feel sure many would find this useful & and it is available in Tasmota :
Message | Unit | Description
TotalStartTime | Date | DateTime of calculation for Total
Total | kWh | Total Energy usage including Today
Yesterday | kWh | Total Energy usage between 00:00 and 24:00 yesterday
Today | kWh | Total Energy usage today from 00:00 until now
Period | Wh | Energy usage between previous message and now
Power | W | Current effective power load
ApparentPower | W | Power load on the cable = sqrt(Power^2 + ReactivePower^2)
ReactivePower | W | Reactive load
Factor | ย | The ratio of the real power flowing to the load to the apparent power in the circuit
Voltage | V | Current line voltage
Current | A | Current line current
Is it possible for you to implement this feature?
So that out of the box Sonoff POWR2 can be used without re-flashing.
That is the value of your NodeRed contribution no re-flashing!
Thank you for what you have done it is great so far.
๐๐
They values get updated only when I have eWeLink app opened on my phone.
Dear,
firstly, thanks a lot for your work! I am so happy that I am able to integrate my ewelink devices with node-red.
There seems to be only one issue that I am having, and that is that the ewelink connection gets lost when I reboot my Raspberry Pi (on which node-red is running). To re-establish the connection, I need to open node-red, edit the config of the ewelink-node and click update on the authentication information (no need to rewrite anything). Then it node-red connects with ewelink again.
Any way to circumvent this issue?
Kind regards,
Hi, i was wondering if there is something it could be done to add the sensor name to the ewelink response.
In the response i currently get this:
{
"action": "update",
"deviceid": "",
"apikey": "",
"userAgent": "device",
"ts": 0,
"params": {
"cmd": "trigger",
"rfTrig2": "2020-02-21T21:27:40.000Z"
},
"from": "device"
}
Instead of the sensor name i get a rFTringX where X is the index number of the sensor.
If i want to retrieve the name i have to get the device object and check tags.zyx_info[X].name
Can be done something about it?
When I inject on, off or toggle I receive: "TypeError: Cannot convert undefined or null to object"
Any ideas why it fails.
Hi,
first of all, thanks for your great job.
I'd like to specify the deviceId inside the message sent to the node and not always inside the node itself, like msg.deviceId= .....
It should be a simple fix, in ewelink-connect.js, just replace the row:
evaluatedParams.unshift(deviceId);
with something following row:
evaluatedParams.unshift(deviceId || msg.deviceId ? msg.deviceId.trim() : '');
In this way it the deviceId is not specified inside the node configuration, it will use the one specified inside the message.
Do you agree with me?
Thanks
Claudio
Add for power-state node via configuration
When I am trying to enter in the devices my credentials I need the enter email. on my ewelink account I have only region, phone number and password. I dont have an email address.
Where do I need to add on ewelink account the email?
Hello there,
Thank you for your efforts to accomplish this node.
I have configured my device (WDYK model: ZJSB9-80 J) a smart circuit breaker that is working perfectly with EWELINK app.
However when I define the device in node red I receive "authentication error" most of the time.
I tried to switch it on through PowerStateOut node and I get a result as described below but the switch still OFF.
{
"status": "ok",
"state": "on"
}
Any thoughts?
Thank you
Add node icons, change the labels to make pretty :)
Hi and once again thank you for your efforts
I am raising this issue as the device nodes does not pass the response object from the http in node to the http response node. This causes a error in the http response node. It would be better if the ewelink device node forwarded on all msg elements not just the payload.
The params list being mutated each time, so the list is growing and the order of params doesn't match
Hi trying to set this up after recent changes mean eWelink does not work with IFTTT unless you pay. I think this is IFTTT forcing ITEAD to pay.
So look at this add on - I want to use Bigtimer to turn an SLAMPER on / off dawn to dusk.
No recent updates to this code I wondered if the new Authentication system used by ITEAD is supported?
I enter by credentials and region but nothing works tried eu, uk, UK, EU
I think eWelink have now moved their Auth to a new provider and wanted to check if anyone has this working. Ideally in the UK
This is a very nice contrib node, thank you. I use it to control lights, heat, water heater etc... at our cottage. It has however (I believe) a serious issue that causes my entire node-red app to eventually lock up.
It works marvelously so long as it has exclusive and unfettered access to the eWelink account. When the eWelink account is logged into from another source (like a cell phone on the way to the cottage to turn the lights on) it starts to behave badly.
When this occurs the nodes turn to yellow (connecting) and stay that way. Eventually, the computer CPU usage goes up 15 or 20 times normal and RAM usage is maxed out, eventually causing node-red to lock up. Since it is remote I rely on access via VNC and that will not work so I have to go to the device and power cycle it.
I have caught node-red-log messages when the problem starts to escalate that indicate the errors causing problems have to do with ewelink and mentions things about unmet promises.
Would you please look at node-red-contrib-ewelink behavior when the eWelink account is accessed from an alternate source?
EDIT: It seems issue #84 is very similar to what I am experiencing.
EDIT: Otto I just noticed a reply you provided back in December about "Unfortunately multiple sessions are not supported. This was the reason of implementing a global connection. " I suspect this is part of (if not, the) problem. If this cannot be remedied (and I'm hoping it can be) then some work should be probably be done to prevent ewelink from driving node-red into a melt down due to the unmet promises issue. I'd really hate to have to remove the ewelink nodes.
Thanks
st
Respect indentations
long ago creating eWeLink Credentials as numeric phone number. test a email adress, can connect node-red.. not my account with a numeric number.
Hi,
This is a marvelous plugin. I have been installed it this day, but I have found two issues.
First:
I will have to set the password at eWeLink Credentials window, almost every time if I change something in a node because it always changes something by itself.
eWeLink Credentials field often shows some kinds of code (eg.: 86356054.2fcbbb) instead of e-mail | region.
Second:
I add your every nodes and some nodes especially temperature, humidity, temperature/humidity are disconnected, and they sent the following msg:
StatusCodeError: 503 - "\r\n<title>503 Service Temporarily Unavailable</title>\r\n<body bgcolor="white">\r\n
Run tests on Travis CI
Hi I am using ewelink-generic-device node to control a garage door. The problem I am having is the response time performance - its taking in the region of 4-6 seconds for the node to execute which is too slow for my use case. If I perform the action in the eWeLink app, the response is pretty much instantaneous. Would be great to overcome this issue if possible.
Tim
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.