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. Skripten / Logik
  4. Heizungssteuerung mit Siemens-Webserver OZW 672

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.3k

Heizungssteuerung mit Siemens-Webserver OZW 672

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
26 Beiträge 2 Kommentatoren 4.5k Aufrufe
  • Ä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.
  • G Offline
    G Offline
    gerry22
    schrieb am zuletzt editiert von
    #1

    Ich möchte ein Script zur Ansteuerung meiner Heizungsanlage nutzen.

    Der Heizkessel ist mit einem Siemens-Webserver OZW 672 verbunden. Mit diesem kann man per Weboberfläche auf den Webserver zugreifen und die Einstellungen an der Heizungsanlage ablesen und verändern. Es ist aber auch ein Zugriff auf einzelne Datenpunkte per "Web API" möglich.

    Diesen Webserver kann zum Beispiel an Heizungsanlagen von Brötje, ELCO oder MHG eingesetzt werden.

    Die Befehle sind folgendermaßen aufgebaut:

    Als erstes muss man sich eine SessionId holen:

    https://192.168.178.58/api/auth/login.json?user=Administrator&pwd=Password.2
    ````user und pwd habe ich vorher festgelegt
    
    ergibt folgende Ausgabe auf meinem Browser:````
        {
    
           "SessionId": "061fbcda-d881-40e5-ae54-e8d104ddf486",
    
            "Result": {
              "Success": "true"
            }
        }
    ````Die SessionId ist für jeden Befehl erforderlich und soll wohl ca. 15 Minuten gültig sein.
    
    Beispiel: Aussentemperatur auslesen (Datenpunkt 1143)
    

    https://192.168.178.58/api/menutree/read_datapoint.json?SessionId=061fbcda-d881-40e5-ae54-e8d104ddf486&Id=1143

    
    ergibt folgende Ausgabe auf meinem Browser:````
    {
    	"Data": 
    		{
    
    			"Type": "Numeric",
    			"Value": "       10.4",
    			"Unit": "°C"
    
    		},
        	"Result": 
    		{
    		"Success": "true"
        		}
    }
    

    Beispiel: Betriebsart Heizkreis 1 auslesen (Datenpunkt 556)

    https://192.168.178.58/api/menutree/read_datapoint.json?SessionId=061fbcda-d881-40e5-ae54-e8d104ddf486&Id=556
    

    ergibt folgende Ausgabe auf meinem Browser:````
    {
    "Data":
    {

    		"Type": "Enumeration",
    		"Value": "Automatik",
    		"Unit": "",
    		"EnumValue": "1"
    
    	},
    	"Result": 
    	{
    	"Success": "true"
    		}
    

    }

    
    Beispiel: Gesamte Gasenergie für Heizen und Trinkwasser auslesen (Datenpunkt 1112)
    

    https://192.168.178.58/api/menutree/read_datapoint.json?SessionId=061fbcda-d881-40e5-ae54-e8d104ddf486&Id=1112

    ergibt folgende Ausgabe auf meinem Browser:````
    {
    	"Data": 
    		{
    
    			"Type": "Numeric",
    			"Value": "     33390",
    			"Unit": "kWh"
    
    		},
        	"Result": 
    		{
    		"Success": "true"
        		}
    }
    

    Das schalten von Datenpunkten funktioniert so:

    Beispiel: Trinkwasser-Betriebsart ausschalten (Datenpunkt 1087)````
    https://192.168.178.58/api/menutree/write_datapoint.json?SessionId=061fbcda-d881-40e5-ae54-e8d104ddf486&Id=1087&Type=Enumeration&Value=0&EnumValue=0

    
    Beispiel: Trinkwasser-Betriebsart einschalten (Datenpunkt 1087)````
    https://192.168.178.58/api/menutree/write_datapoint.json?SessionId=061fbcda-d881-40e5-ae54-e8d104ddf486&Id=1087&Type=Enumeration&Value=1&EnumValue=1
    

    Bisher ist es mir leider nur gelungen mit Hilfe des Skript http://ww.iobroker.com/forum/viewtopic.php?t=4054von ruhr70 ein Objekt mit der SessionId zu erstellen und in ioBroker zu übernehmen. Leider kann ich nicht programmieren und möchte Euch deshalb um Hilfe bitten.

    Für den Anfang möchte ich alle 5 Minuten ca. 10 verschiedene Datenpunkte abfragen und im Vis darstellen und mitloggen. Später möchte ich auch z.B. Heizkeis 1 auf Absenkbetrieb und die Zirkulationspumpe ausschalten wenn die Variable Anwesenheit auf abwesend gesetzt ist. Das mache ich momentan noch mit der CCU2.

    1 Antwort Letzte Antwort
    0
    • DutchmanD Offline
      DutchmanD Offline
      Dutchman
      Developer Most Active Administrators
      schrieb am zuletzt editiert von
      #2

      Hi Gerry, schon nach JSON gesucht in Forum da gibt es so einige Beispiele wie man die Werte die du bekommst in objecten (also Datenpunkte) umwandelen kann

      (zB auch ein Script von mir wo ich auch JSON Werte von domoticz umsetze)

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

      Send from mobile device

      1 Antwort Letzte Antwort
      0
      • G Offline
        G Offline
        gerry22
        schrieb am zuletzt editiert von
        #3

        Natürlich habe ich (mehere Tage) gesucht. Kannst Du mir eventuell einen Beitrag empehlen ? Ich bin für jede Hilfe dankbar.

        1 Antwort Letzte Antwort
        0
        • DutchmanD Offline
          DutchmanD Offline
          Dutchman
          Developer Most Active Administrators
          schrieb am zuletzt editiert von
          #4

          @gerry22:

          Natürlich habe ich (mehere Tage) gesucht. Kannst Du mir eventuell einen Beitrag empehlen ? Ich bin für jede Hilfe dankbar. `

          aber sicher doch :)

          http://forum.iobroker.net/viewtopic.php … t=domoticz

          hier mal ein beispiel, das script hat noch ein par abfragen die du sicher nicht brachen wirst aber die basis logic ist da. Melde dich mal ob es hiermit klappt sonst kan man ja immernoch bisschen mehr auf die beine helfen:

          ! ```
          var objekt, results, count_import; // Connect to Domoticz API interface and list all devices try { require("request")('http://192.168.1.152:8080/json.htm?type=devices', function (error, response, results) { objekt = JSON.parse(results); ! log ("ServerTime:"+ objekt.ServerTime); log ("Reading Domoticz device list : " + objekt.status); log("Total amount of Devices found: " + objekt.result.length); ! var i,j; for (i = 0; i < objekt.result.length; i++) { // If received value is On/Off translate to boolean, otherwise use received value if ( objekt.result[i].Data == 'On') { state = true; } else if ( objekt.result[i].Data == 'Off' ) { state = false; } else { state = objekt.result[i].Data; } // Only create states for supported switchtypes if(objekt.result[i].SwitchType == "Push On Button" || objekt.result[i].SwitchType == "Doorbell" || objekt.result[i].SwitchType == "On/Off"){ //Create States for each device createState("domoticz.Devices." + objekt.result[i].Name + '.STATE', { name: objekt.result[i].Name, type: 'boolean', role: 'switch', def: 'false', idx: objekt.result[i].idx, SwitchType: objekt.result[i].SwitchType }); } else { // Error logging for unsupported devices log("Device creation failed not supported yet! DeviceName : " + objekt.result[i].Name + " | SwitchType : " + objekt.result[i].SwitchType + " | Subtype : " + objekt.result[i].SubType); } }}); } catch (e) { console.error(e); }
          ! Edit: Habe es mal ein bisschen vereinfacht siehe hier unten, du musst die URL natuerlich noch anpassen under erst dein token holen wie du bereits geschrieben hast.
          ! Diese script liest den JSON aus und erstellt fuer jeden wert ein object. Beim create state (domoticz.Devices) aendern in die baumstruktur welche due haben moechtest und type/role usw richtig definieren :
          ! `~~[code]~~var objekt, results, count_import;
          // Connect to Domoticz API interface and list all devices
          try {
          require("request")('http://192.168.1.152:8080/json.htm?type=devices', function (error, response, results) {
          objekt = JSON.parse(results);
          ! var i,j;
          for (i = 0; i < objekt.result.length; i++) {
          state = objekt.result[i].Data;
          //Create States for each device
          createState("domoticz.Devices." + objekt.result[i].Name + '.STATE', {
          name: objekt.result[i].Name,
          type: 'boolean',
          role: 'switch',
          def: 'false',
          idx: objekt.result[i].idx,
          SwitchType: objekt.result[i].SwitchType
          });

          }});
          } catch (e) { console.error(e); }`

          ! damit es dan alle 5 minuten laeuft fuegst du einfach ein cron job hinzu:
          ! `~~[code]~~schedule("*/5 * * * *", function () {
          ! // Hier dein code

          });[/code]`

          ! PS: die create state brauchst du eigentlich ja nur einmal aus zu fueren, danach dan ein setstate.
          ! hier mal ein beispiel dazu must du fuer deinen zweck umbauen hier lese ich eine JSON aus der per MQTT reinkommt dus musst es halt aus der URL holen wie in meinem script fuer create bereits beschrieben:
          ! >! [spoiler]`[code]//Read value at update on MQTT trigger
          on({id: 'mqtt.0.domoticz.out', change: "any"}, function (obj) {
          var value = obj.state.val;
          ! //Get Value & translate to data point
          var state;
          var device;
          var channel;

          //JSON values to memory
          try {
          obj = JSON.parse(getState('mqtt.0.domoticz.out').val);
          } catch (e) {
          console.error('Cannot parse: ' + getState('mqtt.0.domoticz.out').val);
          return;
          }
          channel = obj.idx;
          state = obj.nvalue;
          device = obj.name;

          ! //Log values
          log(channel);
          log(device);
          log(state);
          ! //Create states
          createState('domoticz.' + channel, {
          name: device,
          type: 'number',
          role: 'switch',
          });
          ! //Update state with value from MQTT
          setState('javascript.0.domoticz.' + channel, state, true);
          // setState("javascript.0.domoticz.Contact_Doos_2"/7/, '0');
          ! // log(device);
          // log(state);
          // log(device);
          // log(state);
          });[/code]`[/spoiler]
          ! das sind so par code schnippel die ich dazu noch habe :)[/i][/i][/i][/i][/i][/code][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]

          1 Antwort Letzte Antwort
          0
          • G Offline
            G Offline
            gerry22
            schrieb am zuletzt editiert von
            #5

            Vielen Dank, aber das übersteigt meine Fähigkeiten bei weitem. Ich schaffe es nichtmal die URL anzupassen.Geschweige denn das komplette Skript ändern.

            Bisher hole ich mir mit diesem Skript:

            ! var request = require("request");
            ! // JSON zum testen
            ! var myJson = {"SessionId": "2f70baf0-fd1f-4a86-83b8-135b2da1fba7",};
            ! var llog = true; // loging ein/aus (true/false)
            ! // url der auslzulesenden Daten
            ! var url = 'http://192.168.178.58/api/auth/login.js … Password.2';
            ! // in welchem Zeitintervall soll die ABfrage wiederholt werden
            ! var zeitintervall = "*/1 * * * *"; // alle 1 Minuten die Abfrage wiederholen
            ! // Pfad der Datenpunkte innerhalb der Javascriptinstanz
            ! var pfad = "Heizung" + ".";
            ! // Datenpunkte
            ! var SessionId = pfad + "SessionId";
            ! createState(SessionId, 0, {
            ! name: 'SessionId',
            ! desc: 'SessionId',
            ! type: 'string',
            ! role: 'value',
            ! unit: ''
            ! });
            ! function parseJson(text) {
            ! if (text === "") return {};
            ! try {
            ! json = JSON.parse(text);
            ! } catch (ex) {
            ! json = {};
            ! }
            ! if(!json) json = {};
            ! return json;
            ! }
            ! function readJson(url, callback) {
            ! request(url, function (err, state, body){
            ! if (body) {
            ! var json = parseJson(body);
            ! callback(null, json);
            ! } else {
            ! var error = "(" + err + ") ERROR bei Abfrage von: " + url;
            ! log(error, "warn");
            ! callback(error, null);
            ! }
            ! });
            ! }
            ! function jsonInDatenpunkteSchreiben(myJson) {
            ! if (llog) log("SessionId: " + myJson.SessionId,"info");
            ! setState(SessionId ,myJson.SessionId);
            ! }
            ! function main() {
            ! readJson(url, function(err,json) {
            ! if(!err) {
            ! jsonInDatenpunkteSchreiben (json);
            ! } else {
            ! log("Fehler beim Auslesen des JSON. Keine Daten erhalten.","warn");
            ! }
            ! });
            ! }
            ! // zeitlich die Abfrage wiederhohlen
            ! schedule(zeitintervall, function () {
            ! main();
            ! });
            ! // Beim Skriptstart die Werte abfragen
            ! setTimeout(main,2000);
            ! //setTimeout(jsonInDatenpunkteSchreiben (myJson),2000); // zum Testen des Beispiel-JSONs

            die SessionID, welche dann als Objekt unter Heizung gespeichert wird.

            Aber wie bekomme ich diese SessionID dann in die URL des 2. Skript zur Abfrage der einzelnen Werte?

            Ich stelle mir das eigentlich so vor:

            1. Variablen für die URL, die SessionID und die Datenpunkte anlegen.

            // url der auslzulesenden Daten (ohne SessionID und DatenpunktID)

            var url = 'https://192.168.178.58/api/menutree/read_datapoint.json?';

            // SessionID

            var SessionID = "?????? SessionID, welche als Objekt unter Heizung-SessionID gespeichert ist ";

            // in welchem Zeitintervall soll die Abfrage wiederholt werden

            var zeitintervall = "*/5 * * * *"; // alle 10 Minuten die Abfrage wiederholen

            // Pfad der Datenpunkte innerhalb der Javascriptinstanz

            var pfad = "Heizung" + ".";

            // Datenpunkte

            var id1143 = pfad + "Aussentemperatur";

            var id556 = pfad + "Betriebsart Heizkreis 1";

            var id1112 = pfad + "Gesamte Gasenergie";

            var id866 = pfad + "Fehlermeldung";

            2. Objekte für die einzelnen Datenpunkte anlegen

            createState(id1143, 0, {

            name: 'Aussentemperatur',

            desc: 'Aussentemperatur',

            type: 'Numeric',

            role: 'value',

            unit: '°C'

            });

            createState(id556, "init", {

            name: 'Betriebsart Heizkreis 1',

            desc: 'Betriebsart Heizkreis 1',

            type: 'string',

            role: 'value',

            unit: ''

            });

            createState(id1112, 0, {

            name: 'Gesamte Gasenergie',

            desc: 'Gesamte Gasenergie',

            type: 'Numeric',

            role: 'value',

            unit: 'kWh'

            });

            createState(id866, "init", {

            name: 'Fehlermeldung',

            desc: 'Fehlermeldung',

            type: 'string',

            role: 'value',

            unit: ''

            });

            Weiter komme ich leider nicht.

            Wie kann ich nun die Datenpunkte nacheinander abfragen?

            Die Abfrage URL muss für jeden Datenpunkt geändert werden.

            z.B. Aussentemperatur "https://192.168.178.58/api/menutree/rea … .json?Hier muss die SessionID hin & hier die DatenpunktID"

            Dann muss noch alles mit setState in die Objekte geschrieben werden.

            1 Antwort Letzte Antwort
            0
            • DutchmanD Offline
              DutchmanD Offline
              Dutchman
              Developer Most Active Administrators
              schrieb am zuletzt editiert von
              #6

              Kannst du mal alle Links schicken und die Ausgabe der JSON diebdar raus kommt Dan schnipple ich Mal rum.

              Mi der URL hast du richtig verstanden, Variable anlegen da Die Session ID drin speichern und Dan die Variable in URL verwenden

              Gibt Mal 2 a 3 URLs der Datenpunkte und wie die Ausgabe in deinem Browser aussieht

              ~Dutch

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

              Send from mobile device

              1 Antwort Letzte Antwort
              0
              • G Offline
                G Offline
                gerry22
                schrieb am zuletzt editiert von
                #7

                Hallo Dutch

                schaue mal bitte im meinen ersten Beitrag

                1 Antwort Letzte Antwort
                0
                • DutchmanD Offline
                  DutchmanD Offline
                  Dutchman
                  Developer Most Active Administrators
                  schrieb am zuletzt editiert von
                  #8

                  @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 Antwort Letzte Antwort
                  0
                  • G Offline
                    G Offline
                    gerry22
                    schrieb am zuletzt editiert von
                    #9

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

                    1 Antwort Letzte Antwort
                    0
                    • DutchmanD Offline
                      DutchmanD Offline
                      Dutchman
                      Developer Most Active Administrators
                      schrieb am zuletzt editiert von
                      #10

                      @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 Antwort Letzte Antwort
                      0
                      • G Offline
                        G Offline
                        gerry22
                        schrieb am zuletzt editiert von
                        #11

                        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 Antwort Letzte Antwort
                        0
                        • DutchmanD Offline
                          DutchmanD Offline
                          Dutchman
                          Developer Most Active Administrators
                          schrieb am zuletzt editiert von
                          #12

                          @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 Antwort Letzte Antwort
                          0
                          • G Offline
                            G Offline
                            gerry22
                            schrieb am zuletzt editiert von
                            #13

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

                            1 Antwort Letzte Antwort
                            0
                            • DutchmanD Offline
                              DutchmanD Offline
                              Dutchman
                              Developer Most Active Administrators
                              schrieb am zuletzt editiert von
                              #14

                              @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 Antwort Letzte Antwort
                              0
                              • G Offline
                                G Offline
                                gerry22
                                schrieb am zuletzt editiert von
                                #15

                                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&amp;pwd=Password.2)
                                
                                Username (Administrator2) und Passwort (Password.2) stimmen
                                1 Antwort Letzte Antwort
                                0
                                • DutchmanD Offline
                                  DutchmanD Offline
                                  Dutchman
                                  Developer Most Active Administrators
                                  schrieb am zuletzt editiert von
                                  #16

                                  Ok morgen weiter da stimmt was nicht in meine parse Script :/

                                  Ist halt schwer blind zu Coden :)

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

                                  Send from mobile device

                                  1 Antwort Letzte Antwort
                                  0
                                  • G Offline
                                    G Offline
                                    gerry22
                                    schrieb am zuletzt editiert von
                                    #17

                                    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&amp;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&amp;Id=1143](http://192.168.178.58/api/menutree/read_datapoint.json?sessionId=1cb30bc6-ea9f-43d7-878d-afda7943a5a1&amp;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 Antwort Letzte Antwort
                                    0
                                    • DutchmanD Offline
                                      DutchmanD Offline
                                      Dutchman
                                      Developer Most Active Administrators
                                      schrieb am zuletzt editiert von
                                      #18

                                      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 Antwort Letzte Antwort
                                      0
                                      • G Offline
                                        G Offline
                                        gerry22
                                        schrieb am zuletzt editiert von
                                        #19

                                        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 Antwort Letzte Antwort
                                        0
                                        • DutchmanD Offline
                                          DutchmanD Offline
                                          Dutchman
                                          Developer Most Active Administrators
                                          schrieb am zuletzt editiert von
                                          #20

                                          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 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

                                          792

                                          Online

                                          32.6k

                                          Benutzer

                                          82.2k

                                          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