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.

    MMM-Tado wrong units

    Scheduled Pinned Locked Moved Troubleshooting
    28 Posts 3 Posters 5.1k Views 4 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.
    • StoffbeuteluweS Offline
      Stoffbeuteluwe Project Sponsor @sdetweil
      last edited by

      @sdetweil it is metric

      S 1 Reply Last reply Reply Quote 0
      • S Offline
        sdetweil @Stoffbeuteluwe
        last edited by

        @Stoffbeuteluwe so, the original code should have worked…

        Sam

        How to add modules

        learning how to use browser developers window for css changes

        StoffbeuteluweS 1 Reply Last reply Reply Quote 0
        • StoffbeuteluweS Offline
          Stoffbeuteluwe Project Sponsor @sdetweil
          last edited by

          @sdetweil without your fix it does not work in my case

          S 1 Reply Last reply Reply Quote 0
          • S Offline
            sdetweil @Stoffbeuteluwe
            last edited by

            @Stoffbeuteluwe hmm…

            can u share the top of your config.js, before the modules:[ line

            thanks

            Sam

            How to add modules

            learning how to use browser developers window for css changes

            StoffbeuteluweS 1 Reply Last reply Reply Quote 0
            • StoffbeuteluweS Offline
              Stoffbeuteluwe Project Sponsor @sdetweil
              last edited by

              @sdetweil Hello, after module update same problem
              and your fix don’t work anymore…can you help me again?

              var config = {
              	address: "0.0.0.0", // Address to listen on, can be:
              	                      // - "0.0.0.0", "127.0.0.1", "::1" to listen on loopback interface
              	                      // - another specific IPv4/6 to listen on a specific interface
              	                      // - "", "0.0.0.0", "::" to listen on any interface
              	                      // Default, when address config is left out, is "0.0.0.0"
              	port: 8080,
              	ipWhitelist: [], // Set [] to allow all IP addresses
              	                                                       // or add a specific IPv4 of 192.168.1.5 :
              	                                                       // ["127.0.0.1", "::ffff:127.0.0.1", "::1", "::ffff:192.168.1.5"],
              	                                                       // or IPv4 range of 192.168.3.0 --> 192.168.3.15 use CIDR format :
              	                                                       // ["127.0.0.1", "::ffff:127.0.0.1", "::1", "::ffff:192.168.3.0/28"],
              
              	language: "de",
              	timeFormat: 24,
              	units: "metric",
              
              	modules: [
              
              S 1 Reply Last reply Reply Quote 0
              • S Offline
                sdetweil @Stoffbeuteluwe
                last edited by

                @Stoffbeuteluwe ok, need an editor for this…

                line 26 of MMM-Tado.js, leave alone

                change all the other this.config.units to self.config.units

                change them all, then change line 26 back to this.

                I have opened issue 11
                https://github.com/WouterEekhout/MMM-Tado/issues/11

                Sam

                How to add modules

                learning how to use browser developers window for css changes

                StoffbeuteluweS 1 Reply Last reply Reply Quote 0
                • StoffbeuteluweS Offline
                  Stoffbeuteluwe Project Sponsor @sdetweil
                  last edited by Stoffbeuteluwe

                  @sdetweil no luck…sorry, I have changed 4x this into self
                  but I am not sure with the line 26

                  /**
                   * Created by Wouter Eekhout on 06/01/2017.
                   */
                  Module.register("MMM-Tado", {
                      // Default module config.
                      defaults: {
                          username: '',
                          password: '',
                          updateInterval: 300000,
                      },
                  
                      tadoMe: {},
                      tadoHomes: [],
                  
                      getStyles: function () {
                          return [
                              this.file('css/MMM-Tado.css'),
                          ];
                      },
                  
                      start: function () {
                          if (this.config.updateInterval < this.defaults.updateInterval){
                              this.config.updateInterval = this.defaults.updateInterval;
                          }
                  
                          this.config.units = self.config.units;
                          this.sendSocketNotification('CONFIG', this.config);
                      },
                  
                      // Override dom generator.
                      getDom: function () {
                          let self = this;
                          let wrapper = document.createElement("div");
                          wrapper.className = "tado-info";
                  
                          this.tadoHomes.forEach(home => {
                              let homeWrapper = document.createElement("div");
                              homeWrapper.className = "tado-home";
                  
                              let logoWrapper = document.createElement("i");
                              logoWrapper.className = "tado-icon-tado_logo tado-logo";
                              homeWrapper.appendChild(logoWrapper);
                  
                              let tableWrapper = document.createElement("table");
                              tableWrapper.className = "tado-table small";
                  
                              home.zones.forEach(zone => {
                                  let rowWrapper = document.createElement("tr");
                  
                                  if (zone.type === "HOT_WATER") {
                                      let firstTableDataWrapper = document.createElement("td");
                                      firstTableDataWrapper.className = "tado-table-name";
                  
                                      let zoneNameWrapper = document.createElement("span");
                                      zoneNameWrapper.innerText = zone.name;
                                      firstTableDataWrapper.appendChild(zoneNameWrapper);
                                      rowWrapper.appendChild(firstTableDataWrapper);
                  
                                      let secondTableDateWrapper = document.createElement("td");
                                      secondTableDateWrapper.className = "tado-table-data";
                  
                                      let temperatureWrapper = document.createElement("span");
                                      let temperatureIconWrapper = document.createElement("i");
                                      temperatureIconWrapper.className = "fa fa-thermometer-half";
                                      temperatureWrapper.appendChild(temperatureIconWrapper);
                                      if (zone.state.setting.temperature == null) {
                                          var temperatureTextWrapper = document.createTextNode(zone.state.setting.power);
                                      } else {
                                          if (self.config.units === "metric") {
                                              var temperatureTextWrapper = document.createTextNode(zone.state.setting.temperature.celsius + "°");
                                          } else {
                                              var temperatureTextWrapper = document.createTextNode(zone.state.setting.temperature.fahrenheit + "°");
                                          }
                                      }
                                      temperatureWrapper.appendChild(temperatureTextWrapper);
                                      secondTableDateWrapper.appendChild(temperatureWrapper);
                  
                                      rowWrapper.appendChild(secondTableDateWrapper);
                                  }
                                  else if (zone.type === "HEATING") {
                                      let firstTableDataWrapper = document.createElement("td");
                                      firstTableDataWrapper.className = "tado-table-name";
                  
                                      let zoneNameWrapper = document.createElement("span");
                                      zoneNameWrapper.innerText = zone.name;
                                      firstTableDataWrapper.appendChild(zoneNameWrapper);
                                      rowWrapper.appendChild(firstTableDataWrapper);
                  
                                      let secondTableDateWrapper = document.createElement("td");
                                      secondTableDateWrapper.className = "tado-table-data";
                  
                                      //current temperature
                                      let temperatureWrapper = document.createElement("span");
                                      temperatureWrapper.className = "bright";
                                      let temperatureIconWrapper = document.createElement("i");
                                      temperatureIconWrapper.className = "fa fa-thermometer-half";
                                      temperatureWrapper.appendChild(temperatureIconWrapper);
                                      if (self.config.units === "metric") {
                                          var temperatureTextWrapper = document.createTextNode(zone.state.sensorDataPoints.insideTemperature.celsius + "°");
                                      } else {
                                          var temperatureTextWrapper = document.createTextNode(zone.state.sensorDataPoints.insideTemperature.fahrenheit + "°");
                                      }
                                      temperatureWrapper.appendChild(temperatureTextWrapper);
                                      if (zone.state.activityDataPoints.heatingPower.percentage > 0) {
                                          //The zone is heating
                                          let heatingWrapper = document.createElement("i");
                                          heatingWrapper.className = "fa fa-fire bright";
                                          temperatureWrapper.appendChild(heatingWrapper);
                                      }
                                      secondTableDateWrapper.appendChild(temperatureWrapper);
                  
                                      //target temperature
                                      let temperatureTargetWrapper = document.createElement("span");
                                      temperatureTargetWrapper.className = "xsmall";
                                      let temperatureTargetIconWrapper = document.createElement("i");
                                      temperatureTargetIconWrapper.className = "fa fa-thermometer-half";
                                      temperatureTargetWrapper.appendChild(temperatureTargetIconWrapper);
                                      if (zone.state.setting.temperature == null) {
                                          var temperatureTargetTextWrapper = document.createTextNode(zone.state.setting.power);
                                      } else {
                                          if (self.config.units === "metric") {
                                              var temperatureTargetTextWrapper = document.createTextNode(zone.state.setting.temperature.celsius + "°");
                                          } else {
                                              var temperatureTargetTextWrapper = document.createTextNode(zone.state.setting.temperature.fahrenheit + "°");
                                          }
                                      }
                                      temperatureTargetWrapper.appendChild(temperatureTargetTextWrapper);
                                      secondTableDateWrapper.appendChild(temperatureTargetWrapper);
                  
                                      let breakLine = document.createElement("br");
                                      secondTableDateWrapper.appendChild(breakLine);
                  
                                      let humidityWrapper = document.createElement("span");
                                      let humidityIconWrapper = document.createElement("i");
                                      humidityIconWrapper.className = "fa fa-tint";
                                      humidityWrapper.appendChild(humidityIconWrapper);
                                      let humidityTextWrapper = document.createTextNode(zone.state.sensorDataPoints.humidity.percentage + "%");
                                      humidityWrapper.appendChild(humidityTextWrapper);
                                      secondTableDateWrapper.appendChild(humidityWrapper);
                  
                                      rowWrapper.appendChild(secondTableDateWrapper);
                                  }
                                  else if (zone.type === "AIR_CONDITIONING") {
                                      let firstTableDataWrapper = document.createElement("td");
                                      firstTableDataWrapper.className = "tado-table-name";
                  
                                      let zoneNameWrapper = document.createElement("span");
                                      zoneNameWrapper.innerText = zone.name;
                                      firstTableDataWrapper.appendChild(zoneNameWrapper);
                                      rowWrapper.appendChild(firstTableDataWrapper);
                  
                                      let secondTableDateWrapper = document.createElement("td");
                                      secondTableDateWrapper.className = "tado-table-data";
                  
                                      //current temperature
                                      let temperatureWrapper = document.createElement("span");
                                      temperatureWrapper.className = "bright";
                                      let temperatureIconWrapper = document.createElement("i");
                                      temperatureIconWrapper.className = "fa fa-thermometer-half";
                                      temperatureWrapper.appendChild(temperatureIconWrapper);
                                      if (self.config.units === "metric") {
                                          var temperatureTextWrapper = document.createTextNode(zone.state.sensorDataPoints.insideTemperature.celsius + "°");
                                      } else {
                                          var temperatureTextWrapper = document.createTextNode(zone.state.sensorDataPoints.insideTemperature.fahrenheit + "°");
                                      }
                                      temperatureWrapper.appendChild(temperatureTextWrapper);
                                      if (zone.state.setting.mode === "HEAT") {
                                          //The zone is heating
                                          let heatingWrapper = document.createElement("i");
                                          heatingWrapper.className = "fa fa-fire bright";
                                          temperatureWrapper.appendChild(heatingWrapper);
                                      }
                                      else if (zone.state.setting.mode === "COOL") {
                                          //The zone is cooling
                                          let coolingWrapper = document.createElement("i");
                                          coolingWrapper.className = "fa fa-snowflake bright";
                                          temperatureWrapper.appendChild(coolingWrapper);
                                      }
                                      secondTableDateWrapper.appendChild(temperatureWrapper);
                  
                                      //target temperature
                                      let temperatureTargetWrapper = document.createElement("span");
                                      temperatureTargetWrapper.className = "xsmall";
                                      let temperatureTargetIconWrapper = document.createElement("i");
                                      temperatureTargetIconWrapper.className = "fa fa-thermometer-half";
                                      temperatureTargetWrapper.appendChild(temperatureTargetIconWrapper);
                                      if (zone.state.setting.temperature == null) {
                                          var temperatureTargetTextWrapper = document.createTextNode(zone.state.setting.power);
                                      } else {
                                          if (self.config.units === "metric") {
                                              var temperatureTargetTextWrapper = document.createTextNode(zone.state.setting.temperature.celsius + "°");
                                          } else {
                                              var temperatureTargetTextWrapper = document.createTextNode(zone.state.setting.temperature.fahrenheit + "°");
                                          }
                                      }
                                      temperatureTargetWrapper.appendChild(temperatureTargetTextWrapper);
                                      secondTableDateWrapper.appendChild(temperatureTargetWrapper);
                  
                                      let breakLine = document.createElement("br");
                                      secondTableDateWrapper.appendChild(breakLine);
                  
                                      let humidityWrapper = document.createElement("span");
                                      let humidityIconWrapper = document.createElement("i");
                                      humidityIconWrapper.className = "fa fa-tint";
                                      humidityWrapper.appendChild(humidityIconWrapper);
                                      let humidityTextWrapper = document.createTextNode(zone.state.sensorDataPoints.humidity.percentage + "%");
                                      humidityWrapper.appendChild(humidityTextWrapper);
                                      secondTableDateWrapper.appendChild(humidityWrapper);
                  
                                      rowWrapper.appendChild(secondTableDateWrapper);
                                  } else {
                                      //don't add it
                                      return;
                                  }
                  
                                  tableWrapper.appendChild(rowWrapper);
                              });
                  
                              homeWrapper.appendChild(tableWrapper);
                              wrapper.appendChild(homeWrapper);
                          });
                          return wrapper;
                      },
                  
                      socketNotificationReceived: function(notification, payload) {
                          if (notification === 'NEW_DATA') {
                              this.tadoMe = payload.tadoMe;
                              this.tadoHomes = payload.tadoHomes;
                              this.updateDom();
                          }
                      }
                  });
                  
                  S 2 Replies Last reply Reply Quote 0
                  • S Offline
                    sdetweil @Stoffbeuteluwe
                    last edited by

                    @Stoffbeuteluwe weird… i’ll be back on in about 6 hours, do you know how to use the debugger?
                    ctrl-shift-i on teh keyboard, select the sources tab, navigate the left tree to find the module and filename, click
                    shows in middle window

                    scroll down to one of the if (self.config.units lines (make sure u have that type unit in the tado data)
                    click the number on the start of the line, it should turn blue

                    hit refresh

                    the code will stop there
                    mouse over the self and a box will pop up showing what self points to, then config
                    same… units should say metric

                    Sam

                    How to add modules

                    learning how to use browser developers window for css changes

                    StoffbeuteluweS 1 Reply Last reply Reply Quote 0
                    • S Offline
                      sdetweil @Stoffbeuteluwe
                      last edited by

                      @Stoffbeuteluwe said in MMM-Tado wrong units:

                      but I am not sure with the line 26

                      nothing… it will copy the system units to the module units info

                      Sam

                      How to add modules

                      learning how to use browser developers window for css changes

                      1 Reply Last reply Reply Quote 0
                      • W Offline
                        WouterEekhout
                        last edited by WouterEekhout

                        @Stoffbeuteluwe I’ve updated the code with the suggestions of @sdetweil . For now I put it into a separate branch. If this solutions works for you, I will push it to the master branch.

                        Execute the following:

                        git pull
                        git checkout incorrect_pointer_in_getdom
                        

                        Will you let us know if this solved your problem?

                        StoffbeuteluweS 1 Reply Last reply Reply Quote 0
                        • 1
                        • 2
                        • 3
                        • 2 / 3
                        • 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