Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Praktische Anwendungen (Showcase)
    4. [Javascript] Midas (Aquatemp) Poolheizung

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [Javascript] Midas (Aquatemp) Poolheizung

    This topic has been deleted. Only users with topic management privileges can see it.
    • O
      oxident @znyde last edited by

      @znyde Ist ja ulkig. Sollte eigentlich nicht stören ... das Skript läuft bei mir ohne Warnung durch.

      S 1 Reply Last reply Reply Quote 0
      • S
        sunnylaila @oxident last edited by

        @oxident
        bei mir kommt die Zertifikat Meldung jetzt zusätzlich zu dem reading_error.
        Hast du einen Tip wie ich rausfinden kann mit welcher web Adresse sich die App verbindet? finde leider bei google nicht wie man das rausfinden kann.

        Z 1 Reply Last reply Reply Quote 0
        • Z
          znyde @sunnylaila last edited by

          @sunnylaila

          hiermit ignorierst du die SSL Zertifkats meldung

          function updateToken() {
           
              if(token=="") {
                  log("Token Neuanforderung");
                  var request = require('request');
            
                  var options = {
                      url: cloudURL + '/app/user/login.json',
                      method: 'POST',
                      json: { "user_name": username, "password": password, "type": "2" },
                      rejectUnauthorized: false
                  };
                  
                  request(options,function (error, response, body){
                   console.log(error);
                      console.log(JSON.stringify(response));
                      if(parseInt(body.error_code)==0) {
                          
                          token = body.object_result["x-token"];
                          log("Login ok! Token " + token);
                          updateDeviceID();
                      } else {
                          // Login-Fehler
                          log("Login-Fehler in updateToken(): " + response.body, "warn");
                          token = "";
                      }
                      
                  });
              } else {
                  updateDeviceID();
              }
           
              
           
              
           
          }
           
          
          Z S 2 Replies Last reply Reply Quote 0
          • Z
            znyde @znyde last edited by

              log(JSON.stringify(body.object_result));
            

            bleibt bei mir ein leeres Array.. habe das Modul welche @sunnylaila hat

            Z S 2 Replies Last reply Reply Quote 0
            • Z
              znyde @znyde last edited by

              sorry für den Spam,

              hier eine Lösung die bei mir geholfen hat

              einfach diese Abfrage hinzufügen:

              body: {product_ids: ["1442284873216843776"]},
              
              function updateDeviceID() {
                  
                  if(token!="") {
                      var optionsDev = {
                          url: cloudURL + '/app/device/deviceList.json',
                          headers: { "x-token": token},
                          body: {product_ids: ["1442284873216843776"]},
                         
                          method: 'POST',
                          json: true,
                          
                          rejectUnauthorized: false          
                      };
              
              S 1 Reply Last reply Reply Quote 0
              • S
                sunnylaila @znyde last edited by

                @znyde
                hi hattest du denn auch vorher den Fehler :
                Error in request callback: TypeError: Cannot read properties of undefined (reading 'error_code')

                könntest du mir vielleicht dein Gesamtes Javascript mal schicken, natürlich ohne deine Login Daten.
                Dann kann ich es komplett mal einfügen.

                Danke und Gruß

                Z 1 Reply Last reply Reply Quote 0
                • Z
                  znyde @sunnylaila last edited by znyde

                  @sunnylaila

                  Bei mir ist das Modul an eine Promo Next 5 angeschlossen, das Mapping mit den Temperaturen habe ich geändert... übrigens kannst Du das in deiner App abfragen Burgermenü oben rechts -> Parametereinstellungen -> Kennwort: 022 (so war es bei mir)

                  // Midas Poolheizung
                  // v0.0.5
                  // Changelog:
                  // 0.0.5: weitere Abfragewerte hinzugefügt (Kompressor- und Ansaugtemperatur)
                  // 0.0.4: Tokenverfall jetzt 60min nach Skriptstart und nicht zu jeder vollen Stunde (Dank an dering)
                  // 0.0.3: Datenpunkte beim Start automatisch anlegen (Dank an Andy200877)
                  // 0.0.2: Token bei jedem Set-Vorgang prüfen und ggf. neu anfordern (Dank an dering)
                   
                  const username = "xxx@xxxx.com";
                  const password = "xxxxxx";
                  const interval = 30;
                   
                   
                  const cloudURL = "https://cloud.linked-go.com/cloudservice/api";
                   
                  const dpRoot = "0_userdata.0.Poolheizung";
                   
                  var token = "";
                  var tokenRefreshTimer;
                  var device = "";
                  var reachable = false;
                   
                  function clearValues() {
                      saveValue("error", true, "boolean");
                      saveValue("consumption", 0, "number");
                      saveValue("state", false, "boolean");
                  }
                   
                  function saveValue(key, value, sType) {
                      var dp = dpRoot + "." + key;
                   
                      if ( !existsState(dp )) {
                          createState(dp,value,{name: key,  type: 'number', role: 'value'}, function () {}); 
                      } else {
                          setState(dp,value,true);
                      }
                  }
                   
                  function findCodeVal(result, code) {
                      //log(code);
                      for(var i=0; i<result.length; i++) {
                          //log(result[i].code);
                          
                          if(result[i].code.indexOf(code) >= 0) {
                              return result[i].value;
                          }
                      }
                      return "";
                  }
                   
                  function createobjects() {
                      log ("erstelle Objekte");
                      createState(dpRoot + '.ambient', {read: true, write: false,  type: "number", unit:"°C", name: "Umgebungstemperatur"});
                      createState(dpRoot + '.connection', {read: true, write: false,  type: "boolean", role: "state", name: "Verbindung", def: "false"});
                      createState(dpRoot + '.consumption', {read: true, write: false,  type: "number", unit:"W", name: "Stromverbrauch", def: 0});
                      createState(dpRoot + '.error', {read: true, write: false,  type: "boolean", role: "state", name: "Fehler", def: "false"});
                      createState(dpRoot + '.errorCode', {read: true, write: false,  type: "string", name: "Fehlercode", def: ""});
                      createState(dpRoot + '.errorLevel', {read: true, write: false,  type: "number", name: "Fehlerlevel"});
                      createState(dpRoot + '.errorMessage', {read: true, write: false,  type: "string", name: "Fehlermeldung", def: ""});
                      createState(dpRoot + '.mode', {read: true, write: true,  type: "string", states: "-1:off;0:cool;1:heat;2:auto", name: "Modus", def: ""});
                      createState(dpRoot + '.silent', {read: true, write: true,  type: "boolean", role: "state", name: "Silent", def: "false"});
                      createState(dpRoot + '.state', {read: true, write: false,  type: "boolean", role: "state", name: "Status", def: "false"});
                      createState(dpRoot + '.tempIn', {read: true, write: false,  type: "number", unit:"°C", name: "Eingangstemperatur"});
                      createState(dpRoot + '.tempOut', {read: true, write: false,  type: "number", unit:"°C", name: "Ausgangstemperatur"});
                      createState(dpRoot + '.tempSet', {read: true, write: true,  type: "number", unit:"°C", name: "Solltemperatur"});
                      createState(dpRoot + '.suctionTemp', {read: true, write: false,  type: "number", unit:"°C", name: "Luftansaugtemperatur"});
                      createState(dpRoot + '.coilTemp', {read: true, write: false,  type: "number", unit:"°C", name: "Kompressortemperatur"});
                      
                      createState(dpRoot + '.rawJSON', {read: true, write: false,  type: "array", name: "komplette Rückgabe"});
                  }
                   
                  function updateToken() {
                   
                      if(token=="") {
                          log("Token Neuanforderung");
                          var request = require('request');
                    
                          var options = {
                              url: cloudURL + '/app/user/login.json',
                              method: 'POST',
                              json: { "user_name": username, "password": password, "type": "2" },
                              rejectUnauthorized: false
                          };
                          
                          request(options,function (error, response, body){
                           console.log(error);
                              console.log(JSON.stringify(response));
                              if(parseInt(body.error_code)==0) {
                                  
                                  token = body.object_result["x-token"];
                                  log("Login ok! Token " + token);
                                  updateDeviceID();
                              } else {
                                  // Login-Fehler
                                  log("Login-Fehler in updateToken(): " + response.body, "warn");
                                  token = "";
                              }
                              
                          });
                      } else {
                          updateDeviceID();
                      }
                   
                      
                   
                      
                   
                  }
                   
                  function updateDeviceID() {
                      
                      if(token!="") {
                          var optionsDev = {
                              url: cloudURL + '/app/device/deviceList.json',
                              headers: { "x-token": token},
                              body: {product_ids: ["1442284873216843776"]},
                             
                              method: 'POST',
                              json: true,
                              
                              rejectUnauthorized: false          
                          };
                   
                          var request = require('request');
                   
                          request(optionsDev,function (error, response, body1){
                    //  console.log(parseInt(body1.error_code));
                    //         console.log(JSON.stringify(response));
                     //         log(JSON.stringify(body1.object_result));
                   
                              if(parseInt(body1.error_code)==0) {
                                  
                                  //token = body.object_result["x-token"];
                                  log("Login ok! Token " + token);
                                  
                                 device = body1.object_result[0].device_code;
                                 // device=1;
                                  console.log(device);
                                  reachable = (body1.object_result[0].device_status=="ONLINE");
                                  if(reachable) {
                                      saveValue("connection", true, "boolean");
                                      if(device!="") updateDeviceStatus(device);
                                  } else {
                                      // offline
                                      device = "";
                                      saveValue("connection", false, "boolean");
                                  }
                                  
                              } else {
                                  // Login-Fehler
                                  //log("Fehler in updateDeviceID(): " + response.body);
                                  token = "";
                                  device = "";
                                  reachable = false;
                                  saveValue("connection", false, "boolean");
                              }
                              
                          });
                      }
                      
                  
                  }
                   
                  
                  function updateDeviceStatus(devicecode) {
                      if(token!="") {
                          
                          var optionsDev = {
                              url: cloudURL + '/app/device/getDeviceStatus.json',
                              headers: { "x-token": token },
                              json: { "device_code": devicecode },
                              method: 'POST',
                               rejectUnauthorized: false
                              
                          };
                   
                          var request = require('request');
                   
                          request(optionsDev,function (error, response, body){
                      
                              //log(JSON.stringify(response));
                              //log(JSON.stringify(body.object_result));
                   
                              if(parseInt(body.error_code)==0) {
                   
                                  if(body.object_result["is_fault"]==true) {
                                      // TODO: Fehlerbeschreibung abrufen
                                       //clearValues();
                                      saveValue("error", true, "boolean");
                                      updateDeviceDetails(devicecode);
                                      updateDeviceErrorMsg(devicecode);
                                  } else {
                                      // kein Fehler
                                      saveValue("error", false, "boolean");
                                      saveValue("errorMessage", "", "string");
                                      saveValue("errorCode", "", "string");
                                      saveValue("errorLevel", 0, "number");
                                      updateDeviceDetails(devicecode);
                                  }
                                  
                                  //token = body.object_result["x-token"];
                                  //log("Login ok! Token " + token);
                                  
                              } else {
                                  // Login-Fehler
                                  log("Fehler in updateDeviceStatus(): " + response.body);
                                  token = "";
                                  device = "";
                              }
                              
                          });
                      }
                  }
                   
                  function updateDeviceErrorMsg(devicecode) {
                      if(token!="") {
                          
                          var optionsDev = {
                              url: cloudURL + '/app/device/getFaultDataByDeviceCode.json',
                              headers: { "x-token": token },
                              json: { "device_code": devicecode },
                              method: 'POST',
                               rejectUnauthorized: false
                              //headers: {"content-type": "application/json"},
                              //charset: 'utf8',
                              //json: true
                              
                          };
                   
                          var request = require('request');
                   
                          request(optionsDev,function (error, response, body){
                      
                              //log(JSON.stringify(response));
                              //log(JSON.stringify(body.object_result));
                   
                              if(parseInt(body.error_code)==0) {
                   
                                  
                                  saveValue("error", true, "boolean");
                                  saveValue("errorMessage", body.object_result[0].description, "string");
                                  saveValue("errorCode", body.object_result[0].fault_code, "string");
                                  saveValue("errorLevel", body.object_result[0].error_level, "string");
                                  
                              } else {
                                  // Login-Fehler
                                  log("Fehler in updateDeviceErrorMsg(): " + response.body);
                                  token = "";
                                  device = "";
                              }
                              
                          });
                      }
                  }
                   
                  function updateDeviceDetails(devicecode) {
                      if(token!="") {
                          
                          var optionsDev = {
                              url: cloudURL + '/app/device/getDataByCode.json',
                              headers: { "x-token": token },
                            //  json: { "device_code": devicecode },
                            // R02=Heatin-Set Point,T2=inlet Water Temp, T3=Outlet Water Temp,T5=Ambient-Temp,
                            json: { "device_code": devicecode, "protocal_codes":["R02","T1","T2","T3","T5","P01","P02","Power","Mode"] },
                             
                             // json: { "device_code": devicecode, "protocal_codes":["Power","Mode","Manual-mute","T01","T02","2074","2075","2076","2077","H03","Set-Temp","R08","R09","R10","R11","R01","R02","R03","T03","1158","1159","F17","H02","T04","T05","T07","T14","T17"] },
                              // "protocal_codes":["Power","Mode","Manual-mute","T01","T02","2074","2075","2076","2077","H03","Set_Temp","R08","R09","R10","R11","R01","R02","R03","T03","1158","1159","F17","H02","T04","T05"]
                              method: 'POST',
                              rejectUnauthorized: false
                              
                          };
                   
                          var request = require('request');
                   
                          request(optionsDev,function (error, response, body){
                    console.log("update detail" + JSON.stringify(response));
                   
                              if(parseInt(body.error_code)==0) {
                   
                                  saveValue("rawJSON", body.object_result, "string");
                                  
                                  if(findCodeVal(body.object_result, "Power")=="1") {
                                      // Stromverbrauch T07 x T14 in Watt
                                      saveValue("consumption", parseFloat(findCodeVal(body.object_result, "T07")) * parseFloat(findCodeVal(body.object_result, "T14")), "number");
                   
                                      // Lüfter-Drehzahl T17
                                      saveValue("rotor", parseInt(findCodeVal(body.object_result, "T17")), "number");
                                      // Luftansaug-Temperatur T01
                                      saveValue("suctionTemp", parseFloat(findCodeVal(body.object_result, "T1")), "number");
                                      // Inlet-Temperatur T02
                                      saveValue("tempIn", parseFloat(findCodeVal(body.object_result, "T2")), "number");
                                      // outlet-Temperatur T03
                                      saveValue("tempOut", parseFloat(findCodeVal(body.object_result, "T3")), "number");
                                      // Coil-Temperatur T04
                                      saveValue("coilTemp", parseFloat(findCodeVal(body.object_result, "T04")), "number");
                                  } else {
                                      saveValue("consumption", 0, "number");
                                      saveValue("rotor", 0, "number");
                                  }
                   
                   
                   
                                  // Ziel-Temperatur Set_Temp
                                  saveValue("tempSet", parseFloat(findCodeVal(body.object_result, "Set_Temp")), "number");
                   
                                  // Umgebungs-Temperatur T05
                                  saveValue("ambient", parseFloat(findCodeVal(body.object_result, "T5")), "number");
                   
                                  // Flüstermodus Manual-mute
                                  if(findCodeVal(body.object_result, "Manual-mute")=="1") {
                                      saveValue("silent", true, "boolean");
                                  } else {
                                      saveValue("silent", false, "boolean");
                                  }
                   
                                  // Zustand Power
                                  if(findCodeVal(body.object_result, "Power")=="1") {
                                      saveValue("state", true, "boolean");
                                      saveValue("mode", findCodeVal(body.object_result,"Mode"), "string");
                                  } else {
                                      saveValue("state", false, "boolean");
                                      saveValue("mode", "-1", "string");
                                  }
                                  
                   
                   
                                  //log(findCodeVal(body.object_result, "T07"));
                                  
                              } else {
                                  // Login-Fehler
                                  log("Fehler in updateDeviceDetails(): " + response.body);
                                  token = "";
                                  device = "";
                              }
                              
                          });
                      }
                  }
                   
                  function updateDevicePower(devicecode, power) {
                      var powerOpt;
                      var powerMode = 2;
                   
                      if(power==-1) {
                          // aus
                          powerOpt = 0;
                          powerMode = -1;
                      } else if(power==0) {
                          // an und kühlen
                          powerOpt = 1;
                          powerMode = 0;
                      } else if(power==1) {
                          // an und heizen
                          powerOpt = 1;
                          powerMode = 1;
                      } else if(power==2) {
                          // an und auto
                          powerOpt = 1;
                          powerMode = 2;
                      } else {
                          log("ungülter Zustand!");
                          return;
                      }
                   
                      if(token!="") {
                          
                          var optionsDev = {
                              url: cloudURL + '/app/device/control.json',
                              headers: { "x-token": token },
                              json: {"param":[{ "device_code": devicecode, "protocol_code": "Power","value": powerOpt }]},
                              method: 'POST',
                              rejectUnauthorized: false
                          };
                   
                          var request = require('request');
                   
                          request(optionsDev,function (error, response, body){
                              //log(devicecode);
                              //log(JSON.stringify(response));
                              //log(JSON.stringify(body.object_result));
                   
                              if(parseInt(body.error_code)==0) {
                                  saveValue("mode", power, "string");
                                  if(power>=0) updateDeviceMode(device, power);
                                  
                              } else {
                                  log("Zustandsänderung fehlgeschlagen!");
                              }
                              
                          });
                      }
                  }
                   
                  function updateDeviceMode(devicecode, mode) {
                      
                   
                      if(token!="") {
                          
                          var optionsDev = {
                              url: cloudURL + '/app/device/control.json',
                              headers: { "x-token": token },
                              json: {"param":[{ "device_code": devicecode, "protocol_code": "mode","value": mode }]},
                              method: 'POST',
                              rejectUnauthorized: false
                              //headers: {"content-type": "application/json"},
                              //charset: 'utf8',
                              //json: true
                              
                          };
                   
                          var request = require('request');
                   
                          request(optionsDev,function (error, response, body){
                              //log(devicecode);
                              //log(JSON.stringify(response));
                              //log(JSON.stringify(body.object_result));
                   
                              if(parseInt(body.error_code)==0) {
                                  saveValue("mode", mode, "string");
                                  
                                  
                              } else {
                                  log("Zustandsänderung fehlgeschlagen!");
                              }
                              
                          });
                      }
                  }
                   
                  function updateDeviceSilent(devicecode, silent) {
                      
                      var silentMode;
                   
                      if(silent) {
                          silentMode = "1";
                      } else {
                          silentMode = "0";
                      }
                   
                      if(token!="") {
                          
                          var optionsDev = {
                              url: cloudURL + '/app/device/control.json',
                              headers: { "x-token": token },
                              json: {"param":[{ "device_code": devicecode, "protocol_code": "Manual-mute","value": silentMode }]},
                              method: 'POST',
                              rejectUnauthorized: false
                              //headers: {"content-type": "application/json"},
                              //charset: 'utf8',
                              //json: true
                              
                          };
                   
                          var request = require('request');
                   
                          request(optionsDev,function (error, response, body){
                              //log(devicecode);
                              //log(JSON.stringify(response));
                              //log(JSON.stringify(body.object_result));
                   
                              if(parseInt(body.error_code)==0) {
                                  saveValue("silent", silent, "boolean");
                                  
                                  
                              } else {
                                  log("Zustandsänderung fehlgeschlagen!");
                              }
                              
                          });
                      }
                  }
                   
                  function updateDeviceSetTemp(devicecode, temperature) {
                   
                      var sTemperature = temperature.toString().replace(",", ".");
                      var sMode = getState(dpRoot + ".mode").val;
                      if(sMode=="-1") {
                          //log("Gerät einschalten um Temperatur zu ändern!", 'warn');
                          return;
                      } else if(sMode=="0") {
                          sMode = "R01"; // Kühlen
                      } else if(sMode=="1") {
                          sMode = "R02"; // Heizen
                      } else if(sMode=="2") {
                          sMode = "R03"; // Auto
                      }
                   
                      
                   
                   
                      if(token!="") {
                          
                          var optionsDev = {
                              url: cloudURL + '/app/device/control.json',
                              headers: { "x-token": token },
                              json: {"param":[{ "device_code": devicecode, "protocol_code": "R01","value": sTemperature },{ "device_code": devicecode, "protocol_code": "R02","value": sTemperature },{ "device_code": devicecode, "protocol_code": "R03","value": sTemperature },{ "device_code": devicecode, "protocol_code": "Set_Temp","value": sTemperature }]},
                              method: 'POST',
                              rejectUnauthorized: false
                              //headers: {"content-type": "application/json"},
                              //charset: 'utf8',
                              //json: true
                              
                          };
                   
                          var request = require('request');
                   
                          request(optionsDev,function (error, response, body){
                              //log(devicecode);
                              //log(JSON.stringify(response));
                              //log(JSON.stringify(body.object_result));
                   
                              if(parseInt(body.error_code)==0) {
                                  saveValue("tempSet", temperature, "number");
                                  
                                  
                              } else {
                                  log("Zustandsänderung fehlgeschlagen!");
                                  log(JSON.stringify(response));
                              }
                              
                          });
                      }
                  }
                   
                  // Beginn des Skripts
                   
                  createobjects(); // DPs anlegen
                   
                  updateToken(); // Zugriffstoken erfragen und aktuelle Werte lesen
                   
                  schedule('*/' + interval + ' * * * * *', function () {
                      // regelmäßig Token und Zustand abfragen
                      updateToken();
                   
                      // gewünschte Änderungen ausführen
                      if(!getState(dpRoot + ".mode").ack) {
                          updateDevicePower(device, getState(dpRoot + ".mode").val);
                      }
                      if(!getState(dpRoot + ".silent").ack) {
                          updateDevicePower(device, getState(dpRoot + ".silent").val);
                      }
                  });
                   
                  tokenRefreshTimer = setInterval(async function () {
                      // Token verfällt nach 60min
                      token = "";
                      //log("Token nach Intervall verworfen.")
                      updateToken();
                  }, 3600000);
                   
                  on({id: dpRoot + ".mode", change: "ne", ack: false}, async function (obj) {
                      updateToken();
                      updateDevicePower(device, getState(dpRoot + ".mode").val);
                  });
                   
                  on({id: dpRoot + ".silent", change: "ne", ack: false}, async function (obj) {
                      updateToken();
                      updateDeviceSilent(device, getState(dpRoot + ".silent").val);
                  });
                   
                  on({id: dpRoot + ".tempSet", change: "ne", ack: false}, async function (obj) {
                      updateToken();
                      updateDeviceSetTemp(device, getState(dpRoot + ".tempSet").val);
                  });
                   
                  
                  S 2 Replies Last reply Reply Quote 0
                  • S
                    sunnylaila @znyde last edited by sunnylaila

                    @znyde
                    Ich habe genau die gleiche Heizung, aber meine Werte sind immer noch leer und ich bekomme einige Fehlermeldungen im Log womit ich aber leider nichts anfangen kann da ich keine Ahnung vom JavaScript habe, vielleicht kannst du dir das mal anschauen

                    Danke schonmal

                    edit

                    die Fehlermeldung habe ich selber gefunden lag an einer boolean Einstellung

                    eigentlich würde ich sagen sollte es meiner Meinung nach dem Log jetzt gehen,
                    aber unter den Objekten habe ich immer noch keine Werte stehen

                    der Log schaut jetzt so aus

                    2023-06-03 15:38:00.590	info	script.js.Poolheizung: update detail{"statusCode":200,"body":{"error_code":"0","error_msg":"Success","error_msg_code":"","object_result":[{"code":"R02","value":"26.0"},{"code":"T1","value":"17.0"},{"code":"T2","value":"27.0"},{"code":"T3","value":"27.5"},{"code":"T5","value":"33.5"},{"code":"P01","value":"2"},{"code":"P02","value":"15"},{"code":"Power","value":"1"},{"code":"Mode","value":"1"}],"is_reuslt_suc":true},"headers":{"date":"Sat, 03 Jun 2023 13:38:00 GMT","content-type":"application/json;charset=UTF-8","transfer-encoding":"chunked","connection":"close"},"request":{"uri":{"protocol":"https:","slashes":true,"auth":null,"host":"cloud.linked-go.com","port":443,"hostname":"cloud.linked-go.com","hash":null,"search":null,"query":null,"pathname":"/cloudservice/api/app/device/getDataByCode.json","path":"/cloudservice/api/app/device/getDataByCode.json","href":"https://cloud.linked-go.com/cloudservice/api/app/device/getDataByCode.json"},"method":"POST","headers":{"x-token":"41A537D337A40009B667CA964A4C3496","accept":"application/json","content-type":"application/json","content-length":102}}}
                    javascript.0
                    2023-06-03 15:38:00.172	info	script.js.Poolheizung: 0C7FEDC2A47C
                    
                    javascript.0
                    2023-06-03 15:38:00.171	info	script.js.Poolheizung: Login ok! Token 41A537D337A40009B667CA964A4C3496
                    
                    javascript.0
                    2023-06-03 15:37:30.935	info	script.js.Poolheizung: update detail{"statusCode":200,"body":{"error_code":"0","error_msg":"Success","error_msg_code":"","object_result":[{"code":"R02","value":"26.0"},{"code":"T1","value":"17.0"},{"code":"T2","value":"27.0"},{"code":"T3","value":"27.5"},{"code":"T5","value":"33.5"},{"code":"P01","value":"2"},{"code":"P02","value":"15"},{"code":"Power","value":"1"},{"code":"Mode","value":"1"}],"is_reuslt_suc":true},"headers":{"date":"Sat, 03 Jun 2023 13:37:30 GMT","content-type":"application/json;charset=UTF-8","transfer-encoding":"chunked","connection":"close"},"request":{"uri":{"protocol":"https:","slashes":true,"auth":null,"host":"cloud.linked-go.com","port":443,"hostname":"cloud.linked-go.com","hash":null,"search":null,"query":null,"pathname":"/cloudservice/api/app/device/getDataByCode.json","path":"/cloudservice/api/app/device/getDataByCode.json","href":"https://cloud.linked-go.com/cloudservice/api/app/device/getDataByCode.json"},"method":"POST","headers":{"x-token":"41A537D337A40009B667CA964A4C3496","accept":"application/json","content-type":"application/json","content-length":102}}}
                    
                    javascript.0
                    2023-06-03 15:37:30.427	info	script.js.Poolheizung: 0C7FEDC2A47C
                    
                    javascript.0
                    2023-06-03 15:37:30.426	info	script.js.Poolheizung: Login ok! Token 41A537D337A40009B667CA964A4C3496
                    

                    aber die Werte sind immer noch alle Null unter der Userdata 0 Geräte

                    1 Reply Last reply Reply Quote 0
                    • S
                      sunnylaila last edited by

                      @znyde

                      So schaut es unter Geräte aus

                      Screenshot.jpg

                      Z 1 Reply Last reply Reply Quote 0
                      • Z
                        znyde @sunnylaila last edited by

                        @sunnylaila

                        also Werte kommen laut deinem Log ja an..

                        2023-06-03 15:37:30.935	info	script.js.Poolheizung: update detail{"statusCode":200,"body":{"error_code":"0","error_msg":"Success","error_msg_code":"","object_result":[{"code":"R02","value":"26.0"},{"code":"T1","value":"17.0"},{"code":"T2","value":"27.0"},{"code":"T3","value":"27.5"},{"code":"T5","value":"33.5"},{"code":"P01","value":"2"},{"code":"P02","value":"15"},{"code":"Power","value":"1"},{"code":"Mode","value":"1"}],"is_reuslt_suc":true},"headers":{"date":"Sat, 03 Jun 2023 13:37:30 GMT","content-type":"application/json;charset=UTF-8","transfer-encoding":"chunked","connection":"close"},"request":{"uri":{"protocol":"https:","slashes":true,"auth":null,"host":"cloud.linked-go.com","port":443,"hostname":"cloud.linked-go.com","hash":null,"search":null,"query":null,"pathname":"/cloudservice/api/app/device/getDataByCode.json","path":"/cloudservice/api/app/device/getDataByCode.json","href":"https://cloud.linked-go.com/cloudservice/api/app/device/getDataByCode.json"},"method":"POST","headers":{"x-token":"41A537D337A40009B667CA964A4C3496","accept":"application/json","content-type":"application/json","content-length":102}}}
                         
                        

                        hast du meinen kompletten code genommen?
                        ansonsten musst du die Funktion

                        function updateDeviceDetails(devicecode)
                        

                        komplett übernehmen

                        1 Reply Last reply Reply Quote 0
                        • S
                          sunnylaila last edited by

                          @znyde

                          es hat anscheinend nur etwas gedauert jetzt sind alle Werte gefüllt außer TempSet,
                          ich weiß nur nicht ob der funktioniert also das ich darüber auch die Soll Temperatur einstellen kann

                          screenshot.jpg

                          danke dir schonmal sehr ich bin immer wieder begeistert über die Hilfsbereitschaft hier im Forum

                          Gruß

                          Z 1 Reply Last reply Reply Quote 0
                          • Z
                            znyde @sunnylaila last edited by znyde

                            @sunnylaila

                            damit wollte ich mich die Tage mal beschäftigen,
                            aber schön dass es bei dir auch funktioniert

                            EDIT: TempSet hat bei mir funktioniert

                            S O 2 Replies Last reply Reply Quote 0
                            • S
                              sunnylaila @znyde last edited by sunnylaila

                              @znyde
                              ja setzen geht bei mir auch verschwindet dann aber wieder die Zahl und man sieht nicht welche Temperatur gesetzt ist.

                              O 1 Reply Last reply Reply Quote 0
                              • O
                                oxident @sunnylaila last edited by

                                @sunnylaila Das Skript ist so aufgebaut, dass nach dem Setzen der Temperatur vom Server die eingestellte Temperatur abgerufen wird. Normalerweise sollte diese ja "akzeptiert" werden.

                                Wichtig ist, dass der Wert "unbestätigt" gesetzt wird. In Blockly wäre das dann "Steuere Wert" und nicht "Aktualisiere Wert".

                                Es kann dadurch natürlich vorkommen, dass es bis zum nächsten Abrufinterval noch beim alten Wert bleibt. Aber dann sollte der Wert passen. Provozieren kann man es natürlich auch mit einem Skriptneustart.

                                1 Reply Last reply Reply Quote 0
                                • O
                                  oxident @znyde last edited by oxident

                                  @znyde Wow, danke, dass Du Dich da so reinkniest. Es ist immer leichter, wenn man die Geräte selber vor Ort hat 😉

                                  Jetzt wäre es natürlich cool, wenn wir es irgendwie schaffen, unsere Quellcodes zusammenzuführen. Mein Vorschlag wäre, wir machen das, wenn es bei Dir und bei @sunnylaila funktioniert 😉

                                  Ich bin aber noch immer verwundert, dass ihr die Zertifikatsfehler bekommt und bei mir alles okay ist.

                                  1 Reply Last reply Reply Quote 0
                                  • O
                                    oxident last edited by oxident

                                    Ich habe die Verbesserungen von @znyde im ersten Post ergänzt da das Skript in dieser Form auch bei anderen Wärmepumpen zu funktionieren scheint.
                                    Habe die fixe Product-ID jetzt doch wieder rausgenommen da dies bei meiner InverPro nicht funktionierte. Hier müssten wir also noch etwas tiefer forschen wann welcher Wert gebraucht wird.

                                    Trotzdem schonmal vielen Dank an @znyde !

                                    ... aber verrätst Du mir, wie Du auf die Product-ID gekommen bist? 😉
                                    Vielleicht hilft das ja bei anderen Modellen.

                                    1 Reply Last reply Reply Quote 0
                                    • R
                                      radi71 @oxident last edited by

                                      @oxident
                                      kannst du mir mal auf die Spünge helfen und mir sagen wo ich das script finden kann?

                                      Danke und viele Grüsse Thomas

                                      O 1 Reply Last reply Reply Quote 0
                                      • O
                                        oxident @radi71 last edited by

                                        @radi71 Ganz oben im 1. Post...

                                        1 Reply Last reply Reply Quote 0
                                        • W
                                          webLuJ @oxident last edited by

                                          @oxident sagte in [Javascript] Midas (Aquatemp) Poolheizung:

                                          Kleiner Tipp am Rande an alle: Vielleicht wussten es manche schon, aber durch die Verbrauchsmessung im Adapter habe ich herausgefunden, dass der "Silent"-Mode eine Art "Sparmodus" ist und nicht, wie in meiner Anleitung der WP beschrieben, einfach nur die Tastentöne deaktiviert.

                                          Hast du die InverPRO? Es überrascht mich, dass es dort den Silent-Mode gibt!
                                          Laut https://www.poolsana.de/ratgeber-tipps/ratgeber/poolheizung/pool-waermepumpe-test-und-vergleich-2023-unterschiede-zwischen-den-einzelnen-serien hat die InverPRO keine Leistungsmodi. Was mich gerade eher zur InverPEARL tendieren lässt....

                                          O A 2 Replies Last reply Reply Quote 0
                                          • W
                                            webLuJ last edited by Homoran

                                            Hallo,
                                            weiß jemand, ob bzw. wie eine InverPEARL (https://www.poolsana.de/pool-waermepumpe-poolsana-inverpearl-17-anschluss-set-50-mm) anzusteuern ist?
                                            Laut Datenblatt kommuniziert diese mit der ‘Tuya Smart’ App, wird also wohl auch eine REST-Api in der Cloud anbieten.
                                            Hintergrund: Ich schwanke gerade zwischen einer InverPEARL (schwächer, teurer, dafür Leistungsmodi Boost,/Silence) und einer InverPRO (billiger, stärker, aber angeblich (https://www.poolsana.de/ratgeber-tipps/ratgeber/poolheizung/pool-waermepumpe-test-und-vergleich-2023-unterschiede-zwischen-den-einzelnen-serien) keine Leistungsmodi).
                                            LG, Jorgen

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            723
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            24
                                            354
                                            45947
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo