Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

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

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.7k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.1k

[Javascript] Midas (Aquatemp) Poolheizung

Geplant Angeheftet Gesperrt Verschoben Praktische Anwendungen (Showcase)
359 Beiträge 25 Kommentatoren 78.0k Aufrufe 25 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • 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
    schrieb am zuletzt editiert von
    #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 Antwort Letzte Antwort
    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
      schrieb am zuletzt editiert von
      #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 Antwort Letzte Antwort
      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
        schrieb am zuletzt editiert von
        #69

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

        1 Antwort Letzte Antwort
        0
        • Z Offline
          Z Offline
          znyde
          schrieb am zuletzt editiert von
          #70

          hier scheint das Zertifkat der Seite abgelaufen zu sein:

          {'code':'CERT_HAS_EXPIRED'}
          
          O 1 Antwort Letzte Antwort
          0
          • Z znyde

            hier scheint das Zertifkat der Seite abgelaufen zu sein:

            {'code':'CERT_HAS_EXPIRED'}
            
            O Offline
            O Offline
            oxident
            schrieb am zuletzt editiert von
            #71

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

            S 1 Antwort Letzte Antwort
            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
              schrieb am zuletzt editiert von
              #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 Antwort Letzte Antwort
              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 Offline
                Z Offline
                znyde
                schrieb am zuletzt editiert von
                #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 Antworten Letzte Antwort
                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 Offline
                  Z Offline
                  znyde
                  schrieb am zuletzt editiert von
                  #74
                    log(JSON.stringify(body.object_result));
                  

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

                  Z S 2 Antworten Letzte Antwort
                  0
                  • Z znyde
                      log(JSON.stringify(body.object_result));
                    

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

                    Z Offline
                    Z Offline
                    znyde
                    schrieb am zuletzt editiert von
                    #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 Antwort Letzte Antwort
                    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
                      schrieb am zuletzt editiert von
                      #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 Antwort Letzte Antwort
                      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 Offline
                        Z Offline
                        znyde
                        schrieb am zuletzt editiert von 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 Antworten Letzte Antwort
                        0
                        • Z 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 Offline
                          S Offline
                          sunnylaila
                          schrieb am zuletzt editiert von sunnylaila
                          #78

                          @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 Antwort Letzte Antwort
                          0
                          • S Offline
                            S Offline
                            sunnylaila
                            schrieb am zuletzt editiert von
                            #79

                            @znyde

                            So schaut es unter Geräte aus

                            Screenshot.jpg

                            Z 1 Antwort Letzte Antwort
                            0
                            • S sunnylaila

                              @znyde

                              So schaut es unter Geräte aus

                              Screenshot.jpg

                              Z Offline
                              Z Offline
                              znyde
                              schrieb am zuletzt editiert von
                              #80

                              @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 Antwort Letzte Antwort
                              0
                              • S Offline
                                S Offline
                                sunnylaila
                                schrieb am zuletzt editiert von
                                #81

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

                                  @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 Offline
                                  Z Offline
                                  znyde
                                  schrieb am zuletzt editiert von znyde
                                  #82

                                  @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 Antworten Letzte Antwort
                                  0
                                  • Z 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 Offline
                                    S Offline
                                    sunnylaila
                                    schrieb am zuletzt editiert von sunnylaila
                                    #83

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

                                    O 1 Antwort Letzte Antwort
                                    0
                                    • S sunnylaila

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

                                      O Offline
                                      O Offline
                                      oxident
                                      schrieb am zuletzt editiert von
                                      #84

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

                                        O Offline
                                        O Offline
                                        oxident
                                        schrieb am zuletzt editiert von oxident
                                        #85

                                        @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 Antwort Letzte Antwort
                                        0
                                        • O Offline
                                          O Offline
                                          oxident
                                          schrieb am zuletzt editiert von oxident
                                          #86

                                          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 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          1.0k

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe