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

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Heizungssteuerung mit Siemens-Webserver OZW 672

    This topic has been deleted. Only users with topic management privileges can see it.
    • 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

                        828
                        Online

                        31.7k
                        Users

                        79.8k
                        Topics

                        1.3m
                        Posts

                        2
                        26
                        4284
                        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