mattdavis90 / node-red-contrib-tado-client

Tado web API client node for Node Red
MIT License
23 stars 16 forks source link

NR spits this error after every deploy despite being properly configured/working #57

Closed obaldius closed 1 year ago

obaldius commented 1 year ago

Little else to be said:

image image

mattdavis90 commented 1 year ago

Hi,

I've only seen this when a username/password hasn't been configured but since you say it is working that seems unlikely. Can you provide more information? Such as;

What version of NodeRed are you using? What version of the library is installed? What version of node.js is running? Can you provide an export of the flow you're running? Can you provide a screenshot of the node that is causing issues? Are there any relevant logs?

Please remove any personal information from screenshots and exports.

Brewj commented 1 year ago

You don't by chance have two configurations within your Tado node do you? The one working but a second incomplete?

michael-borkowski commented 1 year ago

Hi, I have the same issue as of recently (noticed it randomly today, don't know which version this appeared in).

I didn't change anything with my username/password configuration so everything should be fine there.

One more thing I can add is this screenshot:

Screenshot from 2023-11-06 10-03-01

My details:

I'm happy to provide more help.

mattdavis90 commented 1 year ago

Hi, thanks for the extra information. That's really helpful. I'll go through each of the recent versions on a clean set up and see if I can work out where this got introduced.

michael-borkowski commented 1 year ago

Thank you so much for your help. Again, if I can be of any help, please let me know. I'm happy to test debug versions too.

mattdavis90 commented 1 year ago

I worked out the issue. When the new property for updating energy usage was added a number validator was put on the property. It looks as though NodeRed doesn't retrospectively update node's configs to include default values so undefined was left in-place. The number validator then errors saying that isn't a number. I'm updated the validation function to accept undefined or a number which seems to have fixed the issue locally for me. If you update to v0.10.8 then the little red signs should go away

michael-borkowski commented 1 year ago

Thank you so much for looking into this so fast! Interestingly, it hasn't gone away but was replaced by a different message:

Screenshot 2023-11-08 212129

Note that this node uses "Get the Current User" which doesn't have the settings that the message is complaining about. This, again, appears on all nodes, regardless of which function they actually use.

Let me know if I can help in any way - thanks!

mattdavis90 commented 1 year ago

Looks like I copy and pasted very poorly from my dev setup to the repo and somehow missed a return. v0.10.9 is now live

mattdavis90 commented 1 year ago

I've just updated my live NodeRed setup from npm and it appears to have fixed correctly for me. If @michael-borkowski you can confirm that would be awesome. Didn't mean to close the issue earlier, hit the wrong comment button

michael-borkowski commented 1 year ago

I can confirm this fixed the issue but for some reason exactly one node - the node I was looking at on v0.10.8 - was the only one with the red triangle still there after the update to v0.10.9. It only complained about tariffInCents. Since all the other nodes were fine, I just re-created it (had to do so from scratch - copying the node also copied the red triangle).

I suppose this has something to do with my attempts at v0.10.8, since no other nodes were affected. Perhaps something in that version "broke" the node in some way? Not sure if you want to just leave this as-is, assuming that the number of people who used v0.10.8 in that short time frame is low, or if you want to introduce code to more gracefully un-break nodes - In any case, this is the current node state of the node:

[
    {
        "id": "d47b3fae18a98482",
        "type": "tado",
        "z": "80c0daf0d6dc14e8",
        "configName": "ddfe6badbb177330",
        "apiCall": "getMe",
        "homeId": "",
        "acMode": "AUTO",
        "deviceId": "",
        "fanSpeed": "AUTO",
        "geoTracking": true,
        "name": "",
        "openWindowMode": true,
        "power": "on",
        "presence": "HOME",
        "reading": "",
        "readingDate": "",
        "readingId": "",
        "reportDate": "",
        "startDate": "",
        "endDate": "",
        "tariffId": "",
        "tariffInCents": "",
        "temperature": "18",
        "temperatureOffset": 0,
        "terminationTimeout": 900,
        "terminationType": "manual",
        "timetableId": "",
        "windowDetection": true,
        "windowDetectionTimeout": 900,
        "zoneId": "",
        "x": 450,
        "y": 1000,
        "wires": [
            []
        ]
    },
    {
        "id": "ddfe6badbb177330",
        "type": "tado-config",
        "name": "mic***@***.***"
    }
]

Again, thanks so much for the quick response, and for all your work overall! This extension has been incredibly valuable and I am using it very happily :)

mattdavis90 commented 1 year ago

Great to hear it's working. I had that issue with one of mine as well. I changed the API call to one that displays the tariff and change the empty string to a 0. I'll have a think and a Google around how to better handle upgrading the properties on a node. I'm sure this must be something that is documented.

No problem at all, I'm glad it works for you and is helpful.

mattdavis90 commented 1 year ago

I've opened #58 to cover the property upgrading work