mattdavis90 / node-red-contrib-tado-client

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

Simple help question #38

Closed madradrakie closed 3 years ago

madradrakie commented 3 years ago

Hello,

I'am trying to get the tado client working but need some help.

I'am simply trying to set the temperature for a specific device but it is not working. I configured the tado node with the home id and selected the function Set a zone's overlay.. I also configured the other requested data. The input message to trigger the node contains the following code:

msg.payload J: { "setting": { "type": "HEATING", "power": "ON", "temperature": { "celsius": 21 } } }

Unfortanuatly, the temperate as set in the node itself is send tot the tado and not the information as inputed in the input. Does anybody knows what i am doing wrong?

Thanks in advance.

mattdavis90 commented 3 years ago

Hi, thanks for using the library. The node expects that the parameters are set in the top level of the msg object. Something like

{
    "power": "ON",
    "temperature": 21
}

should achieve what you're after.

madradrakie commented 3 years ago

Thanks Matt for your answer. Unfortunately it is still not working. Could you maybe send an example of how your flow is working?

I have set an inject node with msg.payload = {} {"setting":{"type":"HEATING","power":"ON","temperature":{"celsius":21}}}

The Tado node is set on SetZoneOverlay and all the field contain information. To test if the inject node overwrite the temperature value i put 18 degrees in the Tado node.

Op di 31 aug. 2021 om 21:35 schreef Matt Davis @.***>:

Hi, thanks for using the library. The node expects that the parameters are set in the top level of the msg object. Something like

{ "power": "ON", "temperature": 21 }

should achieve what you're after.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/mattdavis90/node-red-contrib-tado-client/issues/38#issuecomment-909547398, or unsubscribe https://github.com/notifications/unsubscribe-auth/AND6N5XR5SP52XBVKFT5AMDT7UVG7ANCNFSM5DCQILIQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

mattdavis90 commented 3 years ago

Hi madradrakie, the issue is that you're putting the content into msg.payload instead of msg and the structure is slightly incorrect. The example I showed above should work on an inject node but for completeness here is a flow that should work if you enter your Tado credentials. Hope this helps.

[
    {
        "id": "e587f42f7616fa77",
        "type": "tab",
        "label": "Flow 1",
        "disabled": false,
        "info": ""
    },
    {
        "id": "c844438ffd15c67d",
        "type": "inject",
        "z": "e587f42f7616fa77",
        "name": "",
        "props": [
            {
                "p": "temperature",
                "v": "21",
                "vt": "num"
            },
            {
                "p": "power",
                "v": "on",
                "vt": "str"
            },
            {
                "p": "type",
                "v": "heating",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "x": 80,
        "y": 140,
        "wires": [
            [
                "bd2fc0ae5834348b"
            ]
        ]
    },
    {
        "id": "bd2fc0ae5834348b",
        "type": "tado",
        "z": "e587f42f7616fa77",
        "configName": "d1cf260f.0bb368",
        "apiCall": "setZoneOverlay",
        "homeId": "1234",
        "deviceId": "",
        "zoneId": "1",
        "power": "on",
        "temperature": "18",
        "terminationType": "manual",
        "terminationTimeout": 900,
        "name": "",
        "reportDate": "",
        "presence": "HOME",
        "geoTracking": true,
        "temperatureOffset": 0,
        "windowDetection": true,
        "windowDetectionTimeout": 900,
        "openWindowMode": true,
        "timetableId": "",
        "x": 230,
        "y": 140,
        "wires": [
            [
                "feafedd1d240c031"
            ]
        ]
    },
    {
        "id": "feafedd1d240c031",
        "type": "debug",
        "z": "e587f42f7616fa77",
        "name": "",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "statusVal": "",
        "statusType": "auto",
        "x": 390,
        "y": 140,
        "wires": []
    },
    {
        "id": "d1cf260f.0bb368",
        "type": "tado-config",
        "name": ""
    }
]
madradrakie commented 3 years ago

and another simple question but i can not figure it out. How do i set the inject node to msg. The only option i have is msg.(someyhing). When i delete payload , the inject node is not working. Thanks again for helping me out..... (i'am still learning nodered every day ;-))

image

mattdavis90 commented 3 years ago

Hi,

If you use the add button (near the bottom of the panel) to create 3 fields; name them power, temperature, and type. Then set them to string, number, and string respectively. Then add in the values it should work. You should end up with something like the following.

Screenshot-20210907200847-589x819

madradrakie commented 3 years ago

wow, that was super simple! Thank you for your patience and help. It is working! 👍

mattdavis90 commented 3 years ago

No problem. Glad I could help and glad you're using the library. Let me know if there's anything else. I'll close this for now.