Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Praktische Anwendungen (Showcase)
  4. [Javascript] Midas (Aquatemp) Poolheizung

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    3.5k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.1k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.5k

[Javascript] Midas (Aquatemp) Poolheizung

Scheduled Pinned Locked Moved Praktische Anwendungen (Showcase)
359 Posts 25 Posters 83.8k Views 25 Watching
  • 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.
  • O oxident

    @zahnpasta83 Hmm, da bin ich überfragt. Mal ganz blöd gefragt: Hast Du mal versucht, Deine Zugangsdaten im Skript einzugeben?

    Was kommt da für eine Fehlermeldung?

    Vielleicht hast du ja Glück und es läuft über den gleichen Anbieter...

    Z Offline
    Z Offline
    Zahnpasta83
    wrote on last edited by
    #58

    @oxident Das habe ich probiert aber es kommt nichts an

    O 1 Reply Last reply
    0
    • Z Zahnpasta83

      @oxident Das habe ich probiert aber es kommt nichts an

      O Offline
      O Offline
      oxident
      wrote on last edited by
      #59

      @zahnpasta83 Gibt's denn irgendeine Fehlermeldung vom Skript?

      Z 1 Reply Last reply
      0
      • O oxident

        @zahnpasta83 Gibt's denn irgendeine Fehlermeldung vom Skript?

        Z Offline
        Z Offline
        Zahnpasta83
        wrote on last edited by
        #60

        @oxident Jopp, er sagt "Error in request callback: TypeError: Cannot read properties of undefined (reading 'device_code')"

        O 1 Reply Last reply
        0
        • Z Zahnpasta83

          @oxident Jopp, er sagt "Error in request callback: TypeError: Cannot read properties of undefined (reading 'device_code')"

          O Offline
          O Offline
          oxident
          wrote on last edited by
          #61

          @zahnpasta83 Ahh, Mist. Genau wie bei @Fuxx-0.

          Ich denke (erstmal), da geht leider nix. Sorry!

          1 Reply Last reply
          0
          • S Offline
            S Offline
            sunnylaila
            wrote on last edited by
            #62

            Hallo zusammen, ich habe gerade versucht auch meine Poolheizung hinzuzufügen,
            in der Aqua Temp App sehe ich alles,
            leider bekomme ich im Javascript immer nur eine Fehlermeldung und sonst passiert nichts, leider bin ich im Javascript völliger Anfänger, vielleicht kann mir ja hier jemand helfen.

            Fehlermeldung:

            13:39:30.300 info javascript.0 (28843) Stop script script.js.Pool
            13:39:31.076 info javascript.0 (28843) Start javascript script.js.Pool
            13:39:31.084 error javascript.0 (28843) script.js.Pool compile failed:
            at script.js.Pool:543

            Gruß Sunnylaila

            O 1 Reply Last reply
            0
            • S sunnylaila

              Hallo zusammen, ich habe gerade versucht auch meine Poolheizung hinzuzufügen,
              in der Aqua Temp App sehe ich alles,
              leider bekomme ich im Javascript immer nur eine Fehlermeldung und sonst passiert nichts, leider bin ich im Javascript völliger Anfänger, vielleicht kann mir ja hier jemand helfen.

              Fehlermeldung:

              13:39:30.300 info javascript.0 (28843) Stop script script.js.Pool
              13:39:31.076 info javascript.0 (28843) Start javascript script.js.Pool
              13:39:31.084 error javascript.0 (28843) script.js.Pool compile failed:
              at script.js.Pool:543

              Gruß Sunnylaila

              O Offline
              O Offline
              oxident
              wrote on last edited by
              #63

              @sunnylaila Klingt lösbar ;-)
              Könntest Du mal schauen, ob in der Log-Anzeige von ioBroker vielleicht noch mehr dazu steht?

              S 2 Replies Last reply
              0
              • O oxident

                @sunnylaila Klingt lösbar ;-)
                Könntest Du mal schauen, ob in der Log-Anzeige von ioBroker vielleicht noch mehr dazu steht?

                S Offline
                S Offline
                sunnylaila
                wrote on last edited by
                #64

                @oxident
                Hallo, anbei die Meldungen aus dem Log

                	2023-06-01 09:36:22.358	error	at processImmediate (node:internal/timers:468:21)
                
                javascript.0
                2023-06-01 09:36:22.358	error	at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.javascript/main.js:1527:17)
                
                javascript.0
                2023-06-01 09:36:22.358	error	at /opt/iobroker/node_modules/iobroker.javascript/main.js:2053:17
                
                javascript.0
                2023-06-01 09:36:22.358	error	at prepareScript (/opt/iobroker/node_modules/iobroker.javascript/main.js:1955:37)
                
                javascript.0
                2023-06-01 09:36:22.357	error	at createVM (/opt/iobroker/node_modules/iobroker.javascript/main.js:1702:21)
                
                javascript.0
                2023-06-01 09:36:22.357	error	at new Script (node:vm:100:7)
                
                javascript.0
                2023-06-01 09:36:22.357	error	SyntaxError: Unexpected identifier
                
                javascript.0
                2023-06-01 09:36:22.356	error	^
                
                javascript.0
                2023-06-01 09:36:22.356	error	A F D 4 Antworten Letzte Antwort 1. Juni 2022, 20:59
                
                javascript.0
                2023-06-01 09:36:22.355	error	script.js.Pool compile failed:
                 at script.js.Pool:543
                
                1 Reply Last reply
                0
                • O oxident

                  @sunnylaila Klingt lösbar ;-)
                  Könntest Du mal schauen, ob in der Log-Anzeige von ioBroker vielleicht noch mehr dazu steht?

                  S Offline
                  S Offline
                  sunnylaila
                  wrote on last edited by
                  #65

                  @oxident
                  Hallo ich habe es jetzt hinbekommen das JavaScript unter userdata angelegt wird
                  nur leider bleiben alle Werte leer und im Log bekomme ich folgende Fehlermeldung

                  Error in request callback: TypeError: Cannot read properties of undefined (reading 'device_code')

                  O 1 Reply Last reply
                  0
                  • S sunnylaila

                    @oxident
                    Hallo ich habe es jetzt hinbekommen das JavaScript unter userdata angelegt wird
                    nur leider bleiben alle Werte leer und im Log bekomme ich folgende Fehlermeldung

                    Error in request callback: TypeError: Cannot read properties of undefined (reading 'device_code')

                    O Offline
                    O Offline
                    oxident
                    wrote on last edited by
                    #66

                    @sunnylaila Das ist ja ärgerlich. Genau diese Meldung kommt auch wenn man eine Wärmepumpe mit einer anderen App hat. Kannst Du ein Bild Deines Wifi-Adapters posten?

                    S 1 Reply Last reply
                    0
                    • O oxident

                      @sunnylaila Das ist ja ärgerlich. Genau diese Meldung kommt auch wenn man eine Wärmepumpe mit einer anderen App hat. Kannst Du ein Bild Deines Wifi-Adapters posten?

                      S Offline
                      S Offline
                      sunnylaila
                      wrote on last edited by
                      #67

                      @oxident
                      Hier der Bild welchen Adapter ich nutze, er ist nur in der Heizung verbaut deswegen komme ich schlecht dran.

                      IMG_8030.jpeg

                      O 1 Reply Last reply
                      0
                      • S sunnylaila

                        @oxident
                        Hier der Bild welchen Adapter ich nutze, er ist nur in der Heizung verbaut deswegen komme ich schlecht dran.

                        IMG_8030.jpeg

                        O Offline
                        O Offline
                        oxident
                        wrote on last edited by
                        #68

                        @sunnylaila Sieht aus, wie meiner... nur halt deutlich neueres Datum.

                        Da stehe ich gerade auf dem Schlauch. Hättest Du die Möglichkeit, herauszufinden, mit welchem Server die App auf dem Handy kommuniziert?

                        Vielleicht haben die für neuere Geräte die Adresse gewechselt.

                        S 1 Reply Last reply
                        0
                        • O oxident

                          @sunnylaila Sieht aus, wie meiner... nur halt deutlich neueres Datum.

                          Da stehe ich gerade auf dem Schlauch. Hättest Du die Möglichkeit, herauszufinden, mit welchem Server die App auf dem Handy kommuniziert?

                          Vielleicht haben die für neuere Geräte die Adresse gewechselt.

                          S Offline
                          S Offline
                          sunnylaila
                          wrote on last edited by
                          #69

                          @oxident
                          hi, wo sollte ich das sehen können?
                          in der aquatemp app sehe ich leider nichts von Serveradressen.

                          1 Reply Last reply
                          0
                          • Z Online
                            Z Online
                            znyde
                            Developer
                            wrote on last edited by
                            #70

                            hier scheint das Zertifkat der Seite abgelaufen zu sein:

                            {'code':'CERT_HAS_EXPIRED'}
                            
                            O 1 Reply Last reply
                            0
                            • Z znyde

                              hier scheint das Zertifkat der Seite abgelaufen zu sein:

                              {'code':'CERT_HAS_EXPIRED'}
                              
                              O Offline
                              O Offline
                              oxident
                              wrote on last edited by
                              #71

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

                              S 1 Reply Last reply
                              0
                              • O oxident

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

                                S Offline
                                S Offline
                                sunnylaila
                                wrote on last edited by
                                #72

                                @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
                                0
                                • S sunnylaila

                                  @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 Online
                                  Z Online
                                  znyde
                                  Developer
                                  wrote on last edited by
                                  #73

                                  @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
                                  0
                                  • Z znyde

                                    @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 Online
                                    Z Online
                                    znyde
                                    Developer
                                    wrote on last edited by
                                    #74
                                      log(JSON.stringify(body.object_result));
                                    

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

                                    Z S 2 Replies Last reply
                                    0
                                    • Z znyde
                                        log(JSON.stringify(body.object_result));
                                      

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

                                      Z Online
                                      Z Online
                                      znyde
                                      Developer
                                      wrote on last edited by
                                      #75

                                      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
                                      0
                                      • Z znyde
                                          log(JSON.stringify(body.object_result));
                                        

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

                                        S Offline
                                        S Offline
                                        sunnylaila
                                        wrote on last edited by
                                        #76

                                        @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
                                        0
                                        • S sunnylaila

                                          @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 Online
                                          Z Online
                                          znyde
                                          Developer
                                          wrote on last edited by znyde
                                          #77

                                          @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
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          378

                                          Online

                                          32.7k

                                          Users

                                          82.4k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe