MagicMirror Forum
    • Recent
    • Tags
    • Unsolved
    • Solved
    • MagicMirror² Repository
    • Documentation
    • 3rd-Party-Modules
    • Donate
    • Discord
    • Register
    • Login
    A New Chapter for MagicMirror: The Community Takes the Lead
    Read the statement by Michael Teeuw here.

    Tado module?

    Scheduled Pinned Locked Moved Requests
    35 Posts 5 Posters 30.8k Views 5 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • C Offline
      charliwest
      last edited by

      Don’t really get how to build these modules, although will take a stab at reading through some docs, but was wondering if anyone is already working on a tado module, I found this https://github.com/dVelopment/node-tado which I think might be useful as well?

      D 1 Reply Last reply Reply Quote 0
      • D Offline
        dinkybluebug245 @charliwest
        last edited by

        This would be awesome!

        1 Reply Last reply Reply Quote 0
        • C Offline
          charliwest
          last edited by

          OK, well I have had a play and I can get this working via the API with curl commands…I guess its s start, then I looked at the module docs and woosh, it went right over my head. If it helps anyone here is the process for doing it in bash.

          ##Fill in your email and your password
          USERNAME=you@youremail.com
          PASSWORD=yourPassword
          ####You probably don’t want to edit below here####
          ##Grabs a cookie to stash your session details
          curl --silent “https://my.tado.com/j_spring_security_check?j_password=$PASSWORD&j_username=$USERNAME” --data-binary “{}” --cookie-jar /tmp/tadocookies
          ##Grabs your unique home ID from a bunch of info
          curl --silent “https://my.tado.com/api/v1/me” -H “Referer: https://my.tado.com/” --cookie /tmp/tadocookies > homeId
          HOMEID=$(grep -o “homeId.," homeId| awk -F, ‘{print $1}’|awk -F: ‘{print $2}’)
          ##Now uses your home ID to get the current temp of your home and displays it
          curl --silent “https://my.tado.com/api/v1/home/$HOMEID/hvacState” -H “Referer: https://my.tado.com/” --cookie /tmp/tadocookies > temp
          TEMP=$(grep -o "celsius.
          ,” temp| awk -F, ‘{print $1}’|awk -F: ‘{print $2}’)
          echo “$TEMP”

          If someone can use that to make an MMM pretty please ;)

          1 Reply Last reply Reply Quote 0
          • K Offline
            krisalexroberts
            last edited by

            Has anyone been able to look at this yet?

            1 Reply Last reply Reply Quote 0
            • K Offline
              krisalexroberts
              last edited by

              There is a tado API, but I don’t know how to use this to display data on the MagicMirror

              https://my.tado.com/mobile/1.9/getCurrentState?username=xxxxxxxxxxxx@xxxxx.xxx&password=yyyyyyyyyyyyyyyyy
              I guess in its simplest form, we just need a module which connects to the above URL and then pulls information based on specific strings. eg: “insideTemp”:20.61

              I can do this in Python… not Javascript though

              Example of output

              {“success”:true,“operation”:“HOME”,“preheating”:false,“preheatingTargetOperation”:null,“autoOperation”:“HOME”,“operationTrigger”:“SYSTEM”,“insideTemp”:20.61,“setPointTemp”:20.8,“controlPhase”:“STEADY”,“currentUserPrivacyEnabled”:false,“currentUserGeoStale”:null,“deviceUpdating”:false,“homeId”:xxx,“heatingOn”:true,“internetGatewayType”:“GW02”,“internetGatewayConnected”:true,“heatingMuscleType”:“BU01”,“heatingMuscleConnected”:true,“insideTemperatureSensorType”:“RU01”,“insideTemperatureSensorConnected”:true,“settingsEnabled”:true,“fallbackOperation”:false,“helpUrl”:“https://support.tado.com/hc/","pendingDeviceInstallation”:false}

              1 Reply Last reply Reply Quote 0
              • D Offline
                dinkybluebug245
                last edited by dinkybluebug245

                I think the following variables would be quite useful.

                Insidetemp - displayed as a number
                setPointTemp - displayed as a number
                heatingon - displayed as an flame icon if set to true

                Maybe like this

                21.3° / 15.2° / 0_1479296200918_upload-f38c73ad-e4a6-4519-9068-47ca54312530

                Where the first temp in bold is current temp, the next is the trigger temperature (ie when the heating would come on) Would anyone else add anything different?

                Perhaps mode might be useful as well, as an icon which is held in variable autoOperation. I think the different options here are HOME, AWAY, MANUAL, and the other one for nighttime (not sure what this is called)

                1 Reply Last reply Reply Quote 0
                • C Offline
                  charliwest
                  last edited by

                  I tweaked the bash script to the api @krisalexroberts suggested as it takes a lot less to do it, and at @dinkybluebug245’s suggestion added the extra readings…although not sure how the pi will read the hex values? But it works on mac

                  USERNAME=you@your.email
                  PASSWORD=yourPassword
                  curl --silent “https://my.tado.com/mobile/1.9/getCurrentState?username=“$USERNAME”&password=“$PASSWORD”” > temp
                  insideTemp=$(grep -o “insideTemp." temp| awk ‘{print substr($1,13,4)}’)
                  setPointTemp=$(grep -o "setPointTemp.
                  ” temp| awk ‘{print substr($1,15,4)}’)
                  heatingOn=$(if grep -q “"heatingOn":true” temp; then
                  echo ‘\xf0\x9f\x94\xa5’
                  else
                  echo ‘\xf0\x9f\x9a\xab’
                  fi)
                  echo “$insideTemp” / “$setPointTemp” / “$heatingOn”

                  D 2 Replies Last reply Reply Quote 0
                  • D Offline
                    dinkybluebug245 @charliwest
                    last edited by

                    @charliwest - so how does this all get written up as a magic mirror module? do you know?

                    1 Reply Last reply Reply Quote 0
                    • C Offline
                      charliwest
                      last edited by

                      Yeah no idea about nodejs stuff, spoke to a friend today who is hoping to build a magicmirror (I still havent had time to set mine up at all). He is keen to have a look at this with me. We will hopefully sit down over a couple of beers next week and see if we can bash something out.
                      Anyone else who already knows more about modules happy for them to take the above and make it work…
                      @dinkybluebug245 did you test the above, even though only a bash script, still pretty cool

                      strawberry 3.141S 1 Reply Last reply Reply Quote 0
                      • strawberry 3.141S Offline
                        strawberry 3.141 Project Sponsor Module Developer @charliwest
                        last edited by

                        @charliwest I would have some sparetime tonight, therefore I could help out if someone with a tado acc would like to join me

                        Please create a github issue if you need help, so I can keep track

                        K 1 Reply Last reply Reply Quote 0
                        • K Offline
                          krisalexroberts @strawberry 3.141
                          last edited by

                          @strawberry-3.141 i have availability tonight

                          D 1 Reply Last reply Reply Quote 0
                          • D Offline
                            dinkybluebug245 @krisalexroberts
                            last edited by

                            @strawberry-3-141 - Hello - I can help over the weekend, and next week - evenings this week Im busy

                            1 Reply Last reply Reply Quote 0
                            • strawberry 3.141S Offline
                              strawberry 3.141 Project Sponsor Module Developer
                              last edited by

                              would be great to get someone with other devices than a heating unit

                              Please create a github issue if you need help, so I can keep track

                              D K 2 Replies Last reply Reply Quote 0
                              • D Offline
                                dinkybluebug245 @strawberry 3.141
                                last edited by

                                @strawberry-3.141 can’t help with that. But if you need some else to test tado heating api. I can help.

                                1 Reply Last reply Reply Quote 0
                                • K Offline
                                  krisalexroberts @strawberry 3.141
                                  last edited by

                                  @strawberry-3.141 I’ll be getting radiator thermostats in the next few weeks but no cooling

                                  1 Reply Last reply Reply Quote 1
                                  • D Offline
                                    dinkybluebug245 @charliwest
                                    last edited by dinkybluebug245

                                    @charliwest This didnt work for me…

                                    I got this error:

                                    tado.sh: line 5: unexpected EOF while looking for matching `"’
                                    tado.sh: line 12: syntax error: unexpected end of file

                                    the contents of tado.sh, is:

                                    USERNAME=xxx
                                    PASSWORD=xxxx
                                    curl --silent “https://my.tado.com/mobile/1.9/getCurrentState?username=“$USERNAME”&password=“$PASSWORD”” > temp
                                    insideTemp=$(grep -o “insideTemp." temp| awk ‘{print substr($1,13,4)}’)
                                    setPointTemp=$(grep -o "setPointTemp.” temp| awk ‘{print substr($1,15,4)}’)
                                    heatingOn=$(if grep -q ““heatingOn”:true” temp; then
                                    echo '\xf0\x9f\x94\xa5’
                                    else
                                    echo '\xf0\x9f\x9a\xab’
                                    fi)
                                    echo “$insideTemp” / “$setPointTemp” / “$heatingOn”

                                    1 Reply Last reply Reply Quote 0
                                    • C Offline
                                      charliwest
                                      last edited by

                                      @dinkybluebug245 probably a cut and paste error with the ticks, try from here https://github.com/charliwest/random_scripts/blob/master/tado2

                                      D 1 Reply Last reply Reply Quote 0
                                      • D Offline
                                        dinkybluebug245 @charliwest
                                        last edited by

                                        @charliwest Thanks for the response, I get a different error now,

                                        grep: temp: No such file or directory
                                        grep: temp: No such file or directory
                                        tado.sh: command substitution: line 16: syntax error near unexpected token fi' 'ado.sh: command substitution: line 16: fi)
                                        /

                                        C 1 Reply Last reply Reply Quote 0
                                        • C Offline
                                          charliwest @dinkybluebug245
                                          last edited by

                                          @dinkybluebug245 there shouldn’t be a line 16, can you double check the file u made is correct. Where are you running the script from? Also it says something about ado.sh … not sure what that’s referring to?

                                          D 1 Reply Last reply Reply Quote 0
                                          • D Offline
                                            dinkybluebug245 @charliwest
                                            last edited by dinkybluebug245

                                            @charliwest Yes you’re right… file wasnt created correctly.

                                            output now is

                                            20.5 / 10," / \xf0\x9f\x9a\xab

                                            seems to work, but your comment on how the pi would deal with hex values was right, and because the second value only has two digits (10) Im assuming this is why its picking up the characters ,"

                                            1 Reply Last reply Reply Quote 0

                                            Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                            Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                            With your input, this post could be even better 💗

                                            Register Login
                                            • 1
                                            • 2
                                            • 1 / 2
                                            • First post
                                              Last post
                                            Enjoying MagicMirror? Please consider a donation!
                                            MagicMirror created by Michael Teeuw.
                                            Forum managed by Sam, technical setup by Karsten.
                                            This forum is using NodeBB as its core | Contributors
                                            Contact | Privacy Policy