Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Heizungssteuerung mit Siemens-Webserver OZW 672

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Heizungssteuerung mit Siemens-Webserver OZW 672

    This topic has been deleted. Only users with topic management privileges can see it.
    • Dutchman
      Dutchman Developer Most Active Administrators last edited by

      @gerry22:

      Hallo Dutch

      schaue mal bitte im meinen ersten Beitrag `

      Hi Gerry,

      immer biscchen schwer zu debuggen ohne das geraet zu haben :/, probier mal bitte ob du so die session ID ins log bekommst dan koennen wir darauf weiterbauen.

      Die variable username und password musst du natuerlich setzen:

      schedule("*/1 * * * *", function () {
      
          //Username und password variable setzen
          var username = "deinusername";
          var password = "deinpassword";
          var sessionID;
      
          //URL request fuer die session ID
          try {
              require("request")('https://192.168.178.58/api/auth/login.json?user=' + username + '&pwd=' + password, function (error, response, results) {
              objekt = JSON.parse(results);
              });
      
              //Session ID in variable speichern
              sessionID = object.SessionId;
              //Session ID ins log schreiben
              log (sessionID);
      
              } catch (e) { console.error(e); }
      });
      
      

      das script sollte eigentlich jede minute die URL aufrufen und die session ID ins log schreiben

      wen das dan geht koennen wir die session ID spaeter wieder in der URL benutzen, zb:

              //Benutze die session ID fuer andere URL abfragen
              try {
              require("request")('192.168.178.58/api/menutree/read_datapoint.json?SessionId=' + sessionID, function (error, response, results) {
              objekt = JSON.parse(results);
              });
      
              } catch (e) { console.error(e); }
      
      
      1 Reply Last reply Reply Quote 0
      • G
        gerry22 last edited by

        Ich bekomme folgende Fehlermeldung(in rot): 21:37:01.003 [error] javascript.0 script.js.Skript4: ReferenceError: object is not defined

        1 Reply Last reply Reply Quote 0
        • Dutchman
          Dutchman Developer Most Active Administrators last edited by

          @gerry22:

          Ich bekomme folgende Fehlermeldung(in rot): 21:37:01.003 [error] javascript.0 script.js.Skript4: ReferenceError: object is not defined `

          ups schnellheitsfehler, bitte nochmal mit:

          schedule("*/1 * * * *", function () {
              var objekt;
          
              //Username und password variable setzen
              var username = "deinusername";
              var password = "deinpassword";
              var sessionID;
          
              //URL request fuer die session ID
              try {
                  require("request")('https://192.168.178.58/api/auth/login.json?user=' + username + '&pwd=' + password, function (error, response, results) {
                  objekt = JSON.parse(results);
                  });
          
                  //Session ID in variable speichern
                  sessionID = object.SessionId;
                  //Session ID ins log schreiben
                  log (sessionID);
          
                  } catch (e) { console.error(e); }
          
          });
          
          
          1 Reply Last reply Reply Quote 0
          • G
            gerry22 last edited by

            Gleiche Fehlermeldung - Muss oben eventuell "var object;" stehen ?

            Aber auch dann kommt eine Fehlermeldung : [error] javascript.0 script.js.Skript5: TypeError: Cannot read property 'SessionId' of undefined

            1 Reply Last reply Reply Quote 0
            • Dutchman
              Dutchman Developer Most Active Administrators last edited by

              @gerry22:

              Gleiche Fehlermeldung - Muss oben eventuell "var object;" stehen ?

              Aber auch dann kommt eine Fehlermeldung : [error] javascript.0 script.js.Skript5: TypeError: Cannot read property 'SessionId' of undefined `

              ich werde alt… in reihe 16 ein schreibfeher, sessionID = object.SessionId; muss sein sessionID = objekt.SessionId;

              var objekt hatte ich ja schon eingefuegt das war vorhin der fehler 🙂

              nochmal:

              schedule("*/1 * * * *", function () {
                  var objekt;
              
                  //Username und password variable setzen
                  var username = "deinusername";
                  var password = "deinpassword";
                  var sessionID;
              
                  //URL request fuer die session ID
                  try {
                      require("request")('https://192.168.178.58/api/auth/login.json?user=' + username + '&pwd=' + password, function (error, response, results) {
                      objekt = JSON.parse(results);
                      });
              
                      //Session ID in variable speichern
                      sessionID = objekt.SessionId;
                      //Session ID ins log schreiben
                      log (sessionID);
              
                      } catch (e) { console.error(e); }
              
              });
              
              
              1 Reply Last reply Reply Quote 0
              • G
                gerry22 last edited by

                Leider wieder eine Fehlermeldung : [error] javascript.0 script.js.Skript6: TypeError: Cannot read property 'SessionId' of undefined

                1 Reply Last reply Reply Quote 0
                • Dutchman
                  Dutchman Developer Most Active Administrators last edited by

                  @gerry22:

                  Leider wieder eine Fehlermeldung : [error] javascript.0 script.js.Skript6: TypeError: Cannot read property 'SessionId' of undefined ` ]

                  die generierte URL stimmer aber hoffe ich, mach mal:

                  schedule("*/1 * * * *", function () {
                      var objekt;
                  
                      //Username und password variable setzen
                      var username = "deinusername";
                      var password = "deinpassword";
                      var sessionID;
                  
                      log('https://192.168.178.58/api/auth/login.json?user=' + username + '&pwd=' + password);
                  
                  });
                  
                  

                  und gebe das resultat in deinem browser ein, dan muesstest du die ausgabe in deinem browser bekommen:

                      {
                  
                         "SessionId": "zuefaelligeID",
                  
                          "Result": {
                            "Success": "true"
                          }
                      }
                  
                  
                  1 Reply Last reply Reply Quote 0
                  • G
                    gerry22 last edited by

                    Ich bekomme das````
                    {

                    "SessionId": "895ef41c-cd0f-4468-b88f-3a9e1a66576d",
                    
                    "Result": {
                    	"Success": "true"
                    }
                    

                    }

                    
                    Es wurde dieser Link erzeugt: javascript.0 script.js.Skript7: [https://192.168.178.58/api/auth/login.j … Password.2](https://192.168.178.58/api/auth/login.json?user=Administrator2&pwd=Password.2)
                    
                    Username (Administrator2) und Passwort (Password.2) stimmen
                    1 Reply Last reply Reply Quote 0
                    • Dutchman
                      Dutchman Developer Most Active Administrators last edited by

                      Ok morgen weiter da stimmt was nicht in meine parse Script 😕

                      Ist halt schwer blind zu Coden 🙂

                      –-----------------------

                      Send from mobile device

                      1 Reply Last reply Reply Quote 0
                      • G
                        gerry22 last edited by

                        Ich glaube das ich den Fehler gefunden habe.

                        Wenn ich//Session ID in variable speichern sessionID = object.SessionId; //Session ID ins log schreiben log (sessionID);direkt unter````
                        objekt = JSON.parse(results);

                        
                        Hier nochmal das komplette Script mit ein paar Test-log`s````
                        schedule("*/1 * * * *", function () {
                            var objekt;
                        
                            //Username und password variable setzen
                            var username = "Admin3";
                            var password = "Password_3";
                            var sessionId;
                        
                            //(TEST)
                            log('http://192.168.178.58/api/auth/login.json?user=' + username + '&pwd=' + password);
                        
                            //URL request fuer die session ID
                            try {
                                require("request")
                                ('http://192.168.178.58/api/auth/login.json?user=' + username + '&pwd=' + password, function (error, response, results) {
                                objekt = JSON.parse(results);
                        
                            //(TEST)results ins log schreiben    
                                log (results);
                        
                            //Session ID in variable speichern    
                                sessionId = objekt.SessionId;
                        
                            //Session ID ins log schreiben    
                                log (sessionId);
                        
                            //(TEST)URL zur Json-Abfrage der Außentemperatur (Id=1143) erzeugen
                                log('http://192.168.178.58/api/menutree/read_datapoint.json?sessionId=' + sessionId + '&Id=1143'); 
                        
                                });
                        
                                } catch (e) { console.error(e); }
                        
                        });
                        ````Und hier die Log-Datei:  ` > 00:10:00.593 [info] javascript.0 Start javascript script.js.test32
                        > 
                        > 00:10:00.594 [info] javascript.0 script.js.test32: registered 0 subscriptions and 1 schedule
                        > 
                        > 00:10:00.594 [info] javascript.0 script.js.test32: [http://192.168.178.58/api/auth/login.js … Password_3](http://192.168.178.58/api/auth/login.json?user=Admin3&pwd=Password_3)
                        > 
                        > 00:10:01.681 [info] javascript.0 script.js.test32: { "SessionId": "1cb30bc6-ea9f-43d7-878d-afda7943a5a1", "Result": { "Success": "true" } }
                        > 
                        > 00:10:01.683 [info] javascript.0 script.js.test32: 1cb30bc6-ea9f-43d7-878d-afda7943a5a1
                        > 
                        > 00:10:01.683 [info] javascript.0 script.js.test32: [http://192.168.178.58/api/menutree/read … a1&Id=1143](http://192.168.178.58/api/menutree/read_datapoint.json?sessionId=1cb30bc6-ea9f-43d7-878d-afda7943a5a1&Id=1143)
                        > 
                        > 00:10:37.880 [info] javascript.0 Stop script script.js.test32 `  
                        
                        Aber leider funktioniert die erzeugte URL zur Abfrage des Datenpunktes nicht. Ich erhalte eine "session not valid" Meldung.
                        1 Reply Last reply Reply Quote 0
                        • Dutchman
                          Dutchman Developer Most Active Administrators last edited by

                          ehm ja du hast den fehler gefunden war auch bloede von mir um die log variable auserhalb der function ab zu fragen das kan natuerlich nicht gehen 😕

                          warum jezt aber die meldung "session not valid" kommt ist mor nicht ganz klar, eventuell kan man dieselbe session ID nicht abfragen UND im browser aufrufen

                          was passiert den wen du einfach in der function die abfrager der URL zur temperatur hinzufuegst, dieser code hier sollte das machen.

                          Ist eine erweiterung deines codes mit abfrage der URL temperatur und schreiber der varible value aus der JSON ins log:

                          schedule("*/1 * * * *", function () {
                              var objekt;
                          
                              //Username und password variable setzen
                              var username = "Admin3";
                              var password = "Password_3";
                              var sessionId;
                          	var value
                          
                              //(TEST)
                              log('http://192.168.178.58/api/auth/login.json?user=' + username + '&pwd=' + password);
                          
                              //URL request fuer die session ID
                              try {
                                  require("request")
                                  ('http://192.168.178.58/api/auth/login.json?user=' + username + '&pwd=' + password, function (error, response, results) {
                                  objekt = JSON.parse(results);
                          
                              //(TEST)results ins log schreiben    
                                  log (objekt);
                          
                              //Session ID in variable speichern    
                                  sessionId = objekt.SessionId;
                          
                              //Session ID ins log schreiben    
                                  log (sessionId);
                          
                              //(TEST)URL zur Json-Abfrage der Außentemperatur (Id=1143) erzeugen
                                  log('http://192.168.178.58/api/menutree/read_datapoint.json?sessionId=' + sessionId + '&Id=1143'); 
                          
                          	// URL der Temperatur abfragen und in eine variable schreiben	
                          		require("request")
                          		('http://192.168.178.58/api/menutree/read_datapoint.json?sessionId=' + sessionId + '&Id=1143'){
                          		objekt = JSON.parse(results);
                          		value = objekt.Value;
                          
                          		log (objekt)
                          		log(value)
                          
                          		}});
                          
                                  } catch (e) { console.error(e); }
                          
                          });
                          
                          
                          1 Reply Last reply Reply Quote 0
                          • G
                            gerry22 last edited by

                            Leider wieder ein error.
                            ` > Log

                            13:23:14.920 [info] javascript.0 Start javascript script.js.test33

                            13:23:14.921 [error] javascript.0 script.js.test33 compile failed: SyntaxError: Unexpected token { `

                            1 Reply Last reply Reply Quote 0
                            • Dutchman
                              Dutchman Developer Most Active Administrators last edited by

                              hatte einen fehler in der request function, nochmal:

                              schedule("*/1 * * * *", function () {
                                  var objekt;
                              
                                  //Username und password variable setzen
                                  var username = "Admin3";
                                  var password = "Password_3";
                                  var sessionId;
                                  var value;
                              
                                  //(TEST)
                                  log('http://192.168.178.58/api/auth/login.json?user=' + username + '&pwd=' + password);
                              
                                  //URL request fuer die session ID
                                  try {
                                      require("request")
                                      ('http://192.168.178.58/api/auth/login.json?user=' + username + '&pwd=' + password, function (error, response, results) {
                                      objekt = JSON.parse(results);
                              
                                  //(TEST)results ins log schreiben    
                                      log (objekt);
                              
                                  //Session ID in variable speichern    
                                      sessionId = objekt.SessionId;
                              
                                  //Session ID ins log schreiben    
                                      log (sessionId);
                              
                                  //(TEST)URL zur Json-Abfrage der Außentemperatur (Id=1143) erzeugen
                                      log('http://192.168.178.58/api/menutree/read_datapoint.json?sessionId=' + sessionId + '&Id=1143'); 
                              
                                  // URL der Temperatur abfragen und in eine variable schreiben
                                      require("request")
                                      ('http://192.168.178.58/api/menutree/read_datapoint.json?sessionId=' + sessionId + '&Id=1143', function (error, response, results){
                                         objekt = JSON.parse(results);
                                         value = objekt.Value;
                              
                                         log (objekt);
                                         log(value);
                              
                                      });
                              
                                      });
                              
                                      } catch (e) { console.error(e); }
                              
                              });
                              
                              
                              1 Reply Last reply Reply Quote 0
                              • G
                                gerry22 last edited by

                                ` > Log

                                13:58:33.457 [info] javascript.0 Start javascript script.js.test34

                                13:58:33.458 [info] javascript.0 script.js.test34: registered 0 subscriptions and 1 schedule

                                13:59:00.463 [info] javascript.0 script.js.test34: http://192.168.178.58/api/auth/login.js … Password_3

                                13:59:01.471 [info] javascript.0 script.js.test34: [object Object]

                                13:59:01.472 [info] javascript.0 script.js.test34: 6e35b358-92a5-4e38-ba99-636db9829d64

                                13:59:01.472 [info] javascript.0 script.js.test34: http://192.168.178.58/api/menutree/read … 64&Id=1143

                                13:59:01.525 [info] javascript.0 script.js.test34: [object Object]

                                13:59:01.526 [info] javascript.0 script.js.test34: undefined

                                13:59:06.980 [info] javascript.0 Stop script script.js.test34 `

                                1 Reply Last reply Reply Quote 0
                                • G
                                  gerry22 last edited by

                                  Ich habe unten mal ein````
                                  log (results);

                                  
                                  Leider erhalte ich den "valid"-Fehler.
                                  

                                  Log
                                  14:47:49.788 [info] javascript.0 Stop script script.js.test34
                                  14:47:50.050 [info] javascript.0 Start javascript script.js.test34
                                  14:47:50.051 [info] javascript.0 script.js.test34: registered 0 subscriptions and 1 schedule
                                  14:48:00.173 [info] javascript.0 script.js.test34: http://192.168.178.58/api/auth/login.json?user=Admin3&pwd=Password_3
                                  14:48:01.068 [info] javascript.0 script.js.test34: [object Object]
                                  14:48:01.070 [info] javascript.0 script.js.test34: 1c8248fb-ead5-40db-8304-99e536d23193
                                  14:48:01.070 [info] javascript.0 script.js.test34: http://192.168.178.58/api/menutree/read_datapoint.json?sessionId=1c8248fb-ead5-40db-8304-99e536d23193&Id=1143
                                  14:48:01.126 [info] javascript.0 script.js.test34: { "Result": { "Success": "false", "Error": { "Txt": "session not valid", "Nr": "2" } } }
                                  14:48:01.128 [info] javascript.0 script.js.test34: [object Object]
                                  14:48:01.128 [info] javascript.0 script.js.test34: undefined

                                  
                                  Auf der CCU2 hole ich die SessionId so:````
                                  var url = "https://192.168.178.58/api/auth/login.json?user=Administrator&pwd=Password.2";
                                  dom.GetObject("CUxD.CUX2801001:1.CMD_SETS").State("wget -q --no-check-certificate -O - '"#url#"'");
                                  dom.GetObject("CUxD.CUX2801001:1.CMD_QUERY_RET").State(1);
                                  string srueck = dom.GetObject("CUxD.CUX2801001:1.CMD_RETS").State();
                                  ! if ( (srueck.Find("false") == -1) && (srueck) ) {
                                  string tmpa  = srueck.StrValueByIndex(",",0).StrValueByIndex(":",1);
                                  string sSID = tmpa.Substr(2, tmpa.Length()-3);
                                  WriteLine(" SessionID erfolgreich geholt:"#sSID);
                                  

                                  Wenn ich es hier mit ioBroker nicht hinbekomme dann muss ich das Script wohl auf der CCU2 weiter laufen lassen und die SessionId von dort an ioBroker übergeben. Das müsste doch gehen.

                                  1 Reply Last reply Reply Quote 0
                                  • Dutchman
                                    Dutchman Developer Most Active Administrators last edited by

                                    Es liegt nicht am ioBroker sondern unserer Dummheit 😉

                                    Ich verstehe nur nicht wo der Fehler liegt die Session ID sieht ok aus, trotzdem schluckt er die nicht

                                    –-----------------------

                                    Send from mobile device

                                    1 Reply Last reply Reply Quote 0
                                    • Dutchman
                                      Dutchman Developer Most Active Administrators last edited by

                                      Probier Mal objekt.Data.Value anstatt Objekt.Value

                                      –-----------------------

                                      Send from mobile device

                                      1 Reply Last reply Reply Quote 0
                                      • G
                                        gerry22 last edited by

                                        Ich habe bei der zweiten Abfrage die Apostroph durch Anführungszeichen ersetzt.````
                                        schedule("*/1 * * * *", function () {
                                        var objekt;

                                        //Username und password variable setzen
                                        var username = "Admin3";
                                        var password = "Password_3";
                                        var sessionId;
                                        var value;
                                        
                                        //(TEST)
                                        log('http://192.168.178.58/api/auth/login.json?user=' + username + '&pwd=' + password);
                                        
                                        //URL request fuer die session ID
                                        try {
                                            require("request")
                                            ('http://192.168.178.58/api/auth/login.json?user=' + username + '&pwd=' + password, function (error, response, results) {
                                            objekt = JSON.parse(results);
                                        
                                        //(TEST)results ins log schreiben    
                                            log (objekt);
                                        
                                        //Session ID in variable speichern    
                                            sessionId = objekt.SessionId;
                                        
                                        //Session ID ins log schreiben    
                                            log (sessionId);
                                        
                                        //(TEST)URL zur Json-Abfrage der Außentemperatur (Id=1143) erzeugen
                                            log('http://192.168.178.58/api/menutree/read_datapoint.json?sessionId=' + sessionId + '&Id=1143'); 
                                        
                                        // URL der Temperatur abfragen und in eine variable schreiben
                                            require("request")
                                            ("http://192.168.178.58/api/menutree/read_datapoint.json?SessionId=" + sessionId + "&Id=1143", function (error, response, results){
                                               objekt = JSON.parse(results);
                                               log (results);
                                        
                                               value = objekt.Data.Value;
                                        
                                               log(value);
                                        
                                            });
                                        
                                            });
                                        
                                            } catch (e) { console.error(e); }
                                        

                                        });

                                        ergibt folgendes Log:
                                          ` > Log
                                        > 
                                        > 01:14:10.660 [info] javascript.0 Start javascript script.js.test40
                                        > 
                                        > 01:14:10.661 [info] javascript.0 script.js.test40: registered 0 subscriptions and 1 schedule
                                        > 
                                        > 01:15:00.661 [info] javascript.0 script.js.test40: [http://192.168.178.58/api/auth/login.js … Password_3](http://192.168.178.58/api/auth/login.json?user=Admin3&pwd=Password_3)
                                        > 
                                        > 01:15:01.563 [info] javascript.0 script.js.test40: [object Object]
                                        > 
                                        > 01:15:01.564 [info] javascript.0 script.js.test40: 04b3cec8-5e9b-4792-95c1-85dbfdd7cf0d
                                        > 
                                        > 01:15:01.565 [info] javascript.0 script.js.test40: [http://192.168.178.58/api/menutree/read … 0d&Id=1143](http://192.168.178.58/api/menutree/read_datapoint.json?sessionId=04b3cec8-5e9b-4792-95c1-85dbfdd7cf0d&Id=1143)
                                        > 
                                        > 01:15:01.894 [info] javascript.0 script.js.test40: { "Data": { "Type": "Numeric", "Value": " 14.2", "Unit": "°C" }, "Result": { "Success": "true" } }
                                        > 
                                        > 01:15:01.897 [info] javascript.0 script.js.test40: 14.2
                                        > 
                                        > 01:15:08.812 [info] javascript.0 Stop script script.js.test40 ` 
                                        1 Reply Last reply Reply Quote 0
                                        • Dutchman
                                          Dutchman Developer Most Active Administrators last edited by

                                          Und siehe da im Log steht jetzt auch der Wert 14.2 also geschafft !

                                          01:15:01.897 [info] javascript.0 script.js.test40: 14.2

                                          Als nästen Schritt wolltest du das jetzt in ein object schreiben und dan alle x Minuten Update ?

                                          –-----------------------

                                          Send from mobile device

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

                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          651
                                          Online

                                          32.0k
                                          Users

                                          80.4k
                                          Topics

                                          1.3m
                                          Posts

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