WouterEekhout / MMM-Tado

A MagicMirror Module for your Tado Smart Thermostat.
MIT License
7 stars 6 forks source link

doesnt display any data #1

Closed dinkybluebug closed 7 years ago

dinkybluebug commented 7 years ago

Hi, this isnt working for me - the module doesnt show any data.

Any ideas why?

The following output is present in the console.

Load script: modules/MMM-Tado//MMM-Tado.js module.js:415 Module registered: MMM-Tado loader.js:152 Bootstrapping module: MMM-Tado loader.js:182 Load script: modules/MMM-Tado//js/lib/jquery.min.js loader.js:182 Load script: modules/MMM-Tado//js/lib/lodash.min.js loader.js:182 Load script: modules/MMM-Tado//js/tado-client.js loader.js:157 Scripts loaded for: MMM-Tado loader.js:192 Load stylesheet: modules/MMM-Tado//css/MMM-Tado.css loader.js:192 Load stylesheet: modules/MMM-Tado//css/font-awesome-4.7.0/css/font-awesome.min.css loader.js:159 Styles loaded for: MMM-Tado loader.js:161 Translations loaded for: MMM-Tado module.js:117 MMM-Tado received a system notification: ALL_MODULES_STARTED module.js:117 MMM-Tado received a system notification: DOM_OBJECTS_CREATED MMM-Tado.js:95 Uncaught TypeError: Cannot read property 'celsius' of null at MMM-Tado.js:95 at u (lodash.min.js:1) at Function.gf (lodash.min.js:2) at MMM-Tado.js:76 at u (lodash.min.js:1) at Function.gf (lodash.min.js:2) at Class.getDom (MMM-Tado.js:60) at updateDom (main.js:99) at Object.updateDom (main.js:472) at Class.updateDom (module.js:296) tado-client.js:16 Uncaught TypeError: callback is not a function at Object.success (tado-client.js:16) at fire (jquery.js:3187) at Object.fireWith [as resolveWith] (jquery.js:3317) at done (jquery.js:8785) at XMLHttpRequest. (jquery.js:9151) tado-client.js:16 Uncaught TypeError: callback is not a function at Object.success (tado-client.js:16) at fire (jquery.js:3187) at Object.fireWith [as resolveWith] (jquery.js:3317) at done (jquery.js:8785) at XMLHttpRequest. (jquery.js:9151)

WouterEekhout commented 7 years ago

Hi,

Thank you for your feedback. I'm sorry to read that it doesn't work for you. Can you send me the JSON information from the following link. Especially the last link is important, but you will need the information from the first two links to get there. Replace YOUR_PASSWORD and YOUR_USERNAME with your Tado password and username.

  1. https://my.tado.com/api/v2/me?password=YOUR_PASSWORD&username=YOUR_USERNAME , save the homes.id as HOME_ID for the next link
  2. https://my.tado.com/api/v2/homes/HOME_ID/zones?password=YOUR_PASSWORD&username=YOUR_USERNAME , there will be atleast two zones for in this JSON file. Save each of them as ZONE_ID for the next step
  3. https://my.tado.com/api/v2/homes/HOME_ID/zones/ZONE_ID/state?password=YOUR_PASSWORD&username=YOUR_USERNAME

Does the information show after 5 minutes (update interval)?

Thank you !

dinkybluebug commented 7 years ago

Hi... @WouterEekhout - thanks for your reply. After 5 mins the error repeats.

Output for zone 1 (heating) is:

{ "tadoMode": "HOME", "geolocationOverride": false, "geolocationOverrideDisableTime": null, "preparation": null, "setting": { "type": "HEATING", "power": "ON", "temperature": { "celsius": 21, "fahrenheit": 69.8 } }, "overlayType": null, "overlay": null, "link": { "state": "ONLINE" }, "activityDataPoints": { "heatingPower": { "type": "PERCENTAGE", "percentage": 100, "timestamp": "2017-01-10T16:36:37.246Z" } }, "sensorDataPoints": { "insideTemperature": { "celsius": 20.02, "fahrenheit": 68.04, "timestamp": "2017-01-10T16:41:05.997Z", "type": "TEMPERATURE", "precision": { "celsius": 0.1, "fahrenheit": 0.1 } }, "humidity": { "type": "PERCENTAGE", "percentage": 47.6, "timestamp": "2017-01-10T16:41:05.997Z" } } }

Output for Zone 0 (water) is: { "tadoMode": "HOME", "geolocationOverride": true, "geolocationOverrideDisableTime": "2017-01-11T06:00:00Z", "preparation": null, "setting": { "type": "HOT_WATER", "power": "OFF", "temperature": null }, "overlayType": null, "overlay": null, "link": { "state": "ONLINE" }, "activityDataPoints": {}, "sensorDataPoints": {} }

dinkybluebug commented 7 years ago

Also @WouterEekhout Where did you find the documentation about the Tado API v2 - I couldnt find this anywhere

Many thanks

Marc

WouterEekhout commented 7 years ago

Thank you for this information. I see the problem. My HOT_WATER control in zone 0 is on and yours in turned off, see my json below. The fix is in Github. Can you pull the latest version and check if this fix solves your problem?

{
    "tadoMode": "HOME",
    "geolocationOverride": false,
    "geolocationOverrideDisableTime": null,
    "preparation": null,
    "setting": {
        "type": "HOT_WATER",
        "power": "ON",
        "temperature": {
            "celsius": 55,
            "fahrenheit": 131
        }
    },
    "overlayType": null,
    "overlay": null,
    "link": {
        "state": "ONLINE"
    },
    "activityDataPoints": {},
    "sensorDataPoints": {}
}
WouterEekhout commented 7 years ago

@dinkybluebug There is no official documentation about a Tado API of any kind. So it is possible that there are more bugs in the code, regarding situations that I simply do not know about, such as yours. I contacted the Tado helpdesk to ask about the documentation and their response was:

We don't support the API or provide documentation. You need to find the documentation online published by other users.

So I went looking on Google and found the following library: node-tado by dVelopment: https://github.com/dVelopment/node-tado. Looking at the code I could understand how the API works, this is why I mention this developer in de README file.

PS: I'm using your SONOS-module, great work! I made one alteration. In the sonos.css I added the code below. This show the image in grayscale, making it fit the style of the rest .sonos ul .art img { height: 100px; -webkit-filter: grayscale(1); }

dinkybluebug commented 7 years ago

Yes I think this is working... it displays the module now and no errors.

No hot water data - but then tado doesnt monitor the temperature of my hot water - so thats good.

WouterEekhout commented 7 years ago

Happy to read that it is fixed! Enjoy!