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. Fehlerhafte Json-Abfrage - Bitte um Hilfe

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

Fehlerhafte Json-Abfrage - Bitte um Hilfe

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
4 Beiträge 2 Kommentatoren 715 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

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

      Hi Gerry, ich probiere auch noch den Fehler in anderen Script zu finden was ich erstellt hatte nur da mir die source fehlt ist das mühsam.

      Was für ein Gerät ist das genau, könnte ich oder jemand das Mal Lokal nachbauen?

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

      Send from mobile device

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

        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.

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

          Ok eventuell jemand noch eine Idee? Ich Schau sonst Mal was am Wochenende anliegt maar wieder zu viel Project (Arbeit und privat :/)

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

          Send from mobile device

          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

          752

          Online

          32.6k

          Benutzer

          82.1k

          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