Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. gerry22

    NEWS

    • Neues Video "KI im Smart Home" - ioBroker plus n8n

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    • Wir empfehlen: Node.js 22.x

    G
    • Profile
    • Following 0
    • Followers 1
    • Topics 2
    • Posts 15
    • Best 0
    • Groups 0

    gerry22

    @gerry22

    0
    Reputation
    20
    Profile views
    15
    Posts
    1
    Followers
    0
    Following
    Joined Last Online

    gerry22 Follow

    Latest posts made by gerry22

    • RE: Heizungssteuerung mit Siemens-Webserver OZW 672

      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 ` 
      posted in Skripten / Logik
      G
      gerry22
    • RE: Heizungssteuerung mit Siemens-Webserver OZW 672

      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.

      posted in Skripten / Logik
      G
      gerry22
    • RE: Heizungssteuerung mit Siemens-Webserver OZW 672

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

      posted in Skripten / Logik
      G
      gerry22
    • RE: Heizungssteuerung mit Siemens-Webserver OZW 672

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

      posted in Skripten / Logik
      G
      gerry22
    • RE: Heizungssteuerung mit Siemens-Webserver OZW 672

      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.
      posted in Skripten / Logik
      G
      gerry22
    • RE: Fehlerhafte Json-Abfrage - Bitte um Hilfe

      Informationen zu dem Webserver findest Du hier :

      http://www.buildingtechnologies.siemens … 2_001.aspx

      und hier :

      http://www.siemens.com/download?A6V10743816

      > könnte ich oder jemand das Mal Lokal nachbauen? Das kann ich leider nicht beurteilen.

      Ich nutze dieses Teil momentan in Verbindung mit der CCU2 und kann dort Datenpunkte abfragen, loggen und verändern.

      Eigentlich wollte ich nur von der CCU2 auf den Raspi mit ioBroker "umziehen" - vor allem wegen der Visualisierung und um die CCU2 zu entlasten.

      posted in Skripten / Logik
      G
      gerry22
    • Fehlerhafte Json-Abfrage - Bitte um Hilfe

      Guten Abend,

      ich möchte mit dem Befehl````
      http://192.168.178.58/api/auth/login.json?user=Administator3&pwd=Password_3

      
      Wenn ich diesen Befehl händisch eingebe erhalte ich folgende Ausgabe im Browser:````
      {
      
      	"SessionId": "1eef474c-a06f-4d30-8704-07bb64aeee05",
      
          "Result": {
      		"Success": "true"
          }
      }
      

      Zur Abrage verwende ich folgendes Script:

      ! var request = require("request");
      ! // JSON zum testen
      ! var myJson = {"SessionId": "6dff6df9-3cb7-4724-bb64-849d4b2df209",};
      ! var llog = true; // loging ein/aus (true/false)
      ! // url der auslzulesenden Daten
      ! var url = 'http://192.168.178.58/api/auth/login.js … Password_3';
      ! // in welchem Zeitintervall soll die ABfrage wiederholt werden
      ! var zeitintervall = "*/2 * * * *"; // alle 2 Minuten die Abfrage wiederholen
      ! // Pfad der Datenpunkte innerhalb der Javascriptinstanz
      ! var pfad = "Heizung" + ".";
      ! // Datenpunkte
      ! var SessionId = pfad + "SessionId_OZW";
      ! createState(SessionId, 0, {
      ! name: 'SessionId_OZW',
      ! desc: 'SessionId_OZW',
      ! 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_OZW: " + 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
      Anscheinend funktioniert auch alles. Das Objekt wird angelegt und eine 36-stellige SessionID wird als SessionId_OZW gespeichert.

      Zum Test habe ich dann mal die gespeicherte SessionId_OZW dann mal für einen weiteren händischen Abfragebefehl benutzt.````
      http://192.168.178.58/api/menutree/read_datapoint.json?SessionId=bf71542c-a677-4d40-9b39-120ca406a149&Id=1143

      
      Daraufhin erhalte ich die Meldung:````
      {	
      	"Result": {
      		"Success": "false",
      		"Error": {
      			"Txt": "session not valid",
      			"Nr": "2"
      		}
      	}
      }
      

      Wenn ich jedoch eine händische Abfrage machehttp://192.168.178.58/api/auth/login.json?user=Administator3&pwd=Password_3und dann die dort angezeigte SessionID mit der Eingabehttp://192.168.178.58/api/menutree/read_datapoint.json?SessionId=bf71542c-a677-4d40-9b39-120ca406a149&Id=1143verwende erhalte ich die richtige Antwort````
      {
      "Data":
      {

      		"Type": "Numeric",
      		"Value": "       10.4",
      		"Unit": "°C"
      
      	},
      	"Result": 
      	{
      	"Success": "true"
      		}
      

      }

      
      Also werden wohl mit dem Script fehlerhafte SessionId_OZW erzeugt?
      
      Deshalb meine Fragen:
      
      Habe ich Fehler in dem Script ? (falsche Deklaration, fehlerhafte Variablen usw.)
      
      oder
      
      Muss eventuell eine Verzögerung oder Pause in das Script eingearbeitet werden ? Wenn ja, wo und wie ?
      
      oder
      
      Kann es an der URL liegen ? Ich frage hier einen Siemens-Webserver ab. Eigentlich kann man nur "https://"-Adressen abfragen. Man kann bei diesem Webserver aber auch "Web-Zugang via http" zulassen, Das habe ich gemacht.
      
      Wie kann man mit Javascript "https://"-Abfragen machen ? Gibt es so etwas wie "-no-check-certificate" ?
      
      Bitte entschuldigt meine Amateurfragen aber ich bin blutiger Anfänger.
      
      Vielen Dank
      posted in Skripten / Logik
      G
      gerry22
    • RE: Heizungssteuerung mit Siemens-Webserver OZW 672

      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
      posted in Skripten / Logik
      G
      gerry22
    • RE: Heizungssteuerung mit Siemens-Webserver OZW 672

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

      posted in Skripten / Logik
      G
      gerry22
    • RE: Heizungssteuerung mit Siemens-Webserver OZW 672

      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

      posted in Skripten / Logik
      G
      gerry22
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo