Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Datenpunkte in json zusammenfassen

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Datenpunkte in json zusammenfassen

    This topic has been deleted. Only users with topic management privileges can see it.
    • T
      Torsten_MG last edited by

      Hallo,

      ich habe mit ein bisschen Unterstützung einiger Leute es hinbekommen, dass ich für meinen Abfahrtmonitor (Bus) alle relevanten Daten in Datenpunkte ablegen konnte.

      Hier mal der Code, den ich jetzt verwende:

      schedule('* * * * *', datenlesen); // jede minute
      var request = require('request');
      var logging = true;
      
      createState('Verkehr.Aktualisieren', false, {
              desc: 'Werte aktualisieren',
              type: 'boolean',
              def:  false,
              role: 'indicator'    
      });
      for(let i = 0; i < 4; i++) {
      	createState('Verkehr.Richtung_xx.Startzeit'+i, 0, {
      		});
      	createState('Verkehr.Richtung_xx.Verspaetung'+i, 0, {
      		});	
      	createState('Verkehr.Richtung_xx.Haltestelle'+i, 0, {
      		});
      	createState('Verkehr.Richtung_xx.Linie'+i, 0, {
      		});
      	createState('Verkehr.Richtung_xx.tats_zeit'+i, 0, {
      		});
      		}
      function datenlesen() {
          //Zuhause nach Zentrum
          var link = 'https://vrrf.finalrewind.org/xxx/xxx.json?frontend=json&offset=1&platform=1' ;
          log('Verkehr Daten einlesen');
          request(link, function (error, response, body) {
              if (!error && response.statusCode == 200) {
                  var result;
                  try{
                      result = JSON.parse(body);
      
                      if (logging) log('Kein Fehler beim Einlesen Verkehr Daten');
      
                  } catch (e) {
                      log('Parse Fehler (Roofi Modul):' + e);
                  }    
                  if (result) {
      
                      var Startzeit;
                      var Verspaetung;
                      var Haltestelle;
                      var Linie;
                      var TatsZeit;
      
      			for(let j = 0; j < 4; j++) {
      				//Startzeit
                      if (logging) log(result.raw[j].sched_time);
      				//Verspaetung
                      if (logging) log(result.raw[j].delay);
      				//Ziel Haltestelle
                      if (logging) log(result.raw[j].destination);
      				//Linie
                      if (logging) log(result.raw[j].line);
      				//Tatsächliche Zeit
                      if (logging) log(result.raw[j].time);
      
                      Startzeit = result.raw[j].sched_time;
                      Verspaetung = result.raw[j].delay;
                      Haltestelle = result.raw[j].destination;
                      Linie = result.raw[j].line;
                      TatsZeit = result.raw[j].time;
      
                      setState("javascript.0.Verkehr.Richtung_xx.Startzeit"+j,Startzeit);
                      setState("javascript.0.Verkehr.Richtung_xx.Verspaetung"+j,Verspaetung);
                      setState("javascript.0.Verkehr.Richtung_xx.Haltestelle"+j,Haltestelle);
                      setState("javascript.0.Verkehr.Richtung_xx.Linie"+j,Linie);
                      setState("javascript.0.Verkehr.Richtung_xx.tats_zeit"+j,TatsZeit);
                  }    
      
                      setState("javascript.0.Verkehr.Aktualisieren", false);
                      setState("javascript.0.VIS.Overlay", 5);
                  //    setState("javascript.0.VIS.Overlay_iPhoneX", 5);
                  }
              } else log('Fehler (Verkehr Daten Abfrage: ' + error);
          });   // Ende request 
          log('Verkehr Daten eingelesen');
      }
      datenlesen ();
      

      Jetzt hätte ich aber gerne, dass diese Daten wieder in eine JSON zusammengefasst werden für meine Tabelle in vis. Wie kann ich das Umsetzen?

      1 Reply Last reply Reply Quote 0
      • foxriver76
        foxriver76 Developer last edited by

        Geht es dir allgemein darum, wie du ein JSON aus Datenpunkten erstellen kannst. Grundsätzlich ist JSON ziemlich tief verankert in JS, wie es der Name ja vermuten lässt.

        Du kannst einfach ein JSON Objekt initialisieren

        let meinJSONObjekt = {}; // alternativ = new Object();
        
        

        und dieses Objekt erweitern

        meinJSONObjekt.zahl = 1; 
        meinJSOnObjekt.zeichenkette = 'test';
        
        

        wenn du dir das dann in lesbarer Form ausgeben möchtest:

        console.log(JSON.stringify(meinJSONObjekt));
        
        

        die Ausgabe wird in etwa so aussehen:

        {
        	"zahl": 1,
        	"zeichenkette": "test"
        }
        
        

        beste Grüße

        fox

        1 Reply Last reply Reply Quote 0
        • T
          Torsten_MG last edited by

          danke, werde ich mir später mal anschauen ob ich das hinbekomme!

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

          Support us

          ioBroker
          Community Adapters
          Donate

          447
          Online

          31.7k
          Users

          79.9k
          Topics

          1.3m
          Posts

          2
          3
          1161
          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