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. Visualisierung
  4. [Gelöst] (Problem) NASA APOD und Insight (Mars Weather API)

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.5k

[Gelöst] (Problem) NASA APOD und Insight (Mars Weather API)

Geplant Angeheftet Gesperrt Verschoben Visualisierung
vishow-to
8 Beiträge 2 Kommentatoren 461 Aufrufe 2 Watching
  • Ä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.
  • U Offline
    U Offline
    ultr4low
    schrieb am zuletzt editiert von ultr4low
    #1

    Hallo zusammen,

    Mein Name ist Nils und ich bin neu in diesem Forum.
    Ich hoffe das mir hier jemand mit meinem Problem helfen kann.

    Über die Visualisierung von ioBroker wollte ich gerne mein altes Tablet als LCARS Console verwenden ;)

    ich habe auf Grundlage dieses Posts - BING - Bild des Tages dank @Werde45 - folgendes Script für das abgreifen des "Astronomy Picture of the Day":

    createState('javascript.1.Bild', "");
    createState('javascript.1.Title', "");
    BilddesTagesNASA();
     
    function BilddesTagesNASA(){
            var url = 'https://api.nasa.gov/planetary/apod?api_key=DEMO_KEY';
            request(url, function (err, state, body){
                if (body) {
                    body = JSON.parse(body);
                    var bild = body.hdurl;
                    var title = body.title;
                    setState("javascript.1.Bild", bild);
                    setState("javascript.1.Title", title);
                } else {
                }
     
            });
    }
     
    schedule("5 0 * * *" , function(){ 
        BilddesTagesNASA();
    });  
    
    

    Läuft 1A.

    Jetzt würde ich gerne die Insight API der NASA nutzen um Wetterdaten vom Mars abzugreifen. So hätte ich auf der "Brücke" schonmal nahezu live wetterdatn von Sol III/Terra(Erde) und Sol IV/Ares(Mars) :D

    Example query: https://api.nasa.gov/insight_weather/?api_key=DEMO_KEY&feedtype=json&ver=1.0

    Der erste block sieht dann in etwa so aus. das sind temperatur werte die haben möchte

    {
      "434": {
        "AT": {
          "av": -57.432, 
          "ct": 310794, 
          "mn": -94.545, 
          "mx": -7.332
        }, 
    

    Wenn ich das obige Script umschreibe läuft das ganze aber nicht.

    function WetterMarsNASA(){
            var url = 'https://api.nasa.gov/insight_weather/?api_key=DEMO_KEY&feedtype=json&ver=1.0';
            request(url, function (err, state, body){
                if (body) {
                    body = JSON.parse(body);
                    var MarsAV = body.433.AT.av;
                    setState("javascript.2.MarsAV", MarsAV);
                } else {
                }
            });
    }
    

    liegt vermutlich an der Zahl für den "Sol" wert 433 (Marstage).
    Dieser ändert sich ja auch mit der Zeit.

    Wie bekomme ich jetzt Datenpunkte einen bestimmte (den letzten) Marstag.
    Kann ich die "Toplevel" werte in ein Array schmeissen? oder..? ach wenn ich nur ahnung von API und Jscript hätte.

    Vielen dank schonmal und schönes Wochenende allen.

    paul53P 1 Antwort Letzte Antwort
    0
    • U ultr4low

      Hallo zusammen,

      Mein Name ist Nils und ich bin neu in diesem Forum.
      Ich hoffe das mir hier jemand mit meinem Problem helfen kann.

      Über die Visualisierung von ioBroker wollte ich gerne mein altes Tablet als LCARS Console verwenden ;)

      ich habe auf Grundlage dieses Posts - BING - Bild des Tages dank @Werde45 - folgendes Script für das abgreifen des "Astronomy Picture of the Day":

      createState('javascript.1.Bild', "");
      createState('javascript.1.Title', "");
      BilddesTagesNASA();
       
      function BilddesTagesNASA(){
              var url = 'https://api.nasa.gov/planetary/apod?api_key=DEMO_KEY';
              request(url, function (err, state, body){
                  if (body) {
                      body = JSON.parse(body);
                      var bild = body.hdurl;
                      var title = body.title;
                      setState("javascript.1.Bild", bild);
                      setState("javascript.1.Title", title);
                  } else {
                  }
       
              });
      }
       
      schedule("5 0 * * *" , function(){ 
          BilddesTagesNASA();
      });  
      
      

      Läuft 1A.

      Jetzt würde ich gerne die Insight API der NASA nutzen um Wetterdaten vom Mars abzugreifen. So hätte ich auf der "Brücke" schonmal nahezu live wetterdatn von Sol III/Terra(Erde) und Sol IV/Ares(Mars) :D

      Example query: https://api.nasa.gov/insight_weather/?api_key=DEMO_KEY&feedtype=json&ver=1.0

      Der erste block sieht dann in etwa so aus. das sind temperatur werte die haben möchte

      {
        "434": {
          "AT": {
            "av": -57.432, 
            "ct": 310794, 
            "mn": -94.545, 
            "mx": -7.332
          }, 
      

      Wenn ich das obige Script umschreibe läuft das ganze aber nicht.

      function WetterMarsNASA(){
              var url = 'https://api.nasa.gov/insight_weather/?api_key=DEMO_KEY&feedtype=json&ver=1.0';
              request(url, function (err, state, body){
                  if (body) {
                      body = JSON.parse(body);
                      var MarsAV = body.433.AT.av;
                      setState("javascript.2.MarsAV", MarsAV);
                  } else {
                  }
              });
      }
      

      liegt vermutlich an der Zahl für den "Sol" wert 433 (Marstage).
      Dieser ändert sich ja auch mit der Zeit.

      Wie bekomme ich jetzt Datenpunkte einen bestimmte (den letzten) Marstag.
      Kann ich die "Toplevel" werte in ein Array schmeissen? oder..? ach wenn ich nur ahnung von API und Jscript hätte.

      Vielen dank schonmal und schönes Wochenende allen.

      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von paul53
      #2

      @ultr4low sagte:

                  var MarsAV = body.433.AT.av;                                                                                                                                                                            
      

      Wenn das Objekt-Attribut einen unzulässigen Bezeichner (beginnt mit einer Ziffer) hat:

                      var MarsAV = body['433'].AT.av;
      

      Falls es kein Objekt-Attribut, sondern der Index zu einem Array ist:

                      var MarsAV = body[433].AT.av;
      

      @ultr4low sagte in NASA APOD und Insight (Mars Weather API):

      Wie bekomme ich jetzt Datenpunkte einen bestimmte (den letzten) Marstag.

      Wenn es ein Array mit allen Marstagen ist:

                      var MarsAV = body[body.length - 1].AT.av;
      

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      U 1 Antwort Letzte Antwort
      1
      • paul53P paul53

        @ultr4low sagte:

                    var MarsAV = body.433.AT.av;                                                                                                                                                                            
        

        Wenn das Objekt-Attribut einen unzulässigen Bezeichner (beginnt mit einer Ziffer) hat:

                        var MarsAV = body['433'].AT.av;
        

        Falls es kein Objekt-Attribut, sondern der Index zu einem Array ist:

                        var MarsAV = body[433].AT.av;
        

        @ultr4low sagte in NASA APOD und Insight (Mars Weather API):

        Wie bekomme ich jetzt Datenpunkte einen bestimmte (den letzten) Marstag.

        Wenn es ein Array mit allen Marstagen ist:

                        var MarsAV = body[body.length - 1].AT.av;
        
        U Offline
        U Offline
        ultr4low
        schrieb am zuletzt editiert von
        #3

        @paul53 said in NASA APOD und Insight (Mars Weather API):

        Wenn das Objekt-Attribut einen unzulässigen Bezeichner (beginnt mit einer Ziffer) hat:

                        var MarsAV = body['433'].AT.av;
        

        Super vielen Dank. Das war genau mein Problem.
        Nun kann ich schon einmal die Datenpunkte mit den Werten erstellen.

        Ich werde mal schauen ob ich den aktuellen Marstag mit einem Counter realisieren kann. (alle 24h + 1) im Grunde interessieren mich nur die Werte des aktuellsten Tages.

        Obwohl ich dann ja eine Variable mit einem unzulässigen Wert habe :/
        geht das überhaupt?
        Und der Counter läuft nicht mehr sollte ich den Server einmal neustarten müssen :/
        Ohje Ohje ... :D
        Werde später etwas testen.

        Vielen Dank nochmal @paul53

        U 1 Antwort Letzte Antwort
        0
        • U ultr4low

          @paul53 said in NASA APOD und Insight (Mars Weather API):

          Wenn das Objekt-Attribut einen unzulässigen Bezeichner (beginnt mit einer Ziffer) hat:

                          var MarsAV = body['433'].AT.av;
          

          Super vielen Dank. Das war genau mein Problem.
          Nun kann ich schon einmal die Datenpunkte mit den Werten erstellen.

          Ich werde mal schauen ob ich den aktuellen Marstag mit einem Counter realisieren kann. (alle 24h + 1) im Grunde interessieren mich nur die Werte des aktuellsten Tages.

          Obwohl ich dann ja eine Variable mit einem unzulässigen Wert habe :/
          geht das überhaupt?
          Und der Counter läuft nicht mehr sollte ich den Server einmal neustarten müssen :/
          Ohje Ohje ... :D
          Werde später etwas testen.

          Vielen Dank nochmal @paul53

          U Offline
          U Offline
          ultr4low
          schrieb am zuletzt editiert von
          #4

          Nach tagelangen "rumprobieren" musste ich leider aufgeben.
          Bekomme die aktuellsten Werte nicht eingelesen.
          Nur wenn ich explizit einen Marstag angebe. Wie oben.
          Schade.
          Danke trotzdem.

          paul53P 1 Antwort Letzte Antwort
          0
          • U ultr4low

            Nach tagelangen "rumprobieren" musste ich leider aufgeben.
            Bekomme die aktuellsten Werte nicht eingelesen.
            Nur wenn ich explizit einen Marstag angebe. Wie oben.
            Schade.
            Danke trotzdem.

            paul53P Offline
            paul53P Offline
            paul53
            schrieb am zuletzt editiert von
            #5

            @ultr4low sagte:

            Nur wenn ich explizit einen Marstag angebe.

            Den kann man nicht ermitteln ?

            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

            1 Antwort Letzte Antwort
            1
            • U Offline
              U Offline
              ultr4low
              schrieb am zuletzt editiert von
              #6

              Ich habe mir das nun doch nochmal angeschaut.

              Es gibt ganz unten einen toplevel key der sol_keys heißt

               "sol_keys": [
                  "439", 
                  "440", 
                  "441", 
                  "442", 
                  "443", 
                  "444", 
                  "445"
                ], 
              

              Wenn ich diese Werte irgendwie in ein Array schreiben könnte. Bspw. arrSol.
              So hätte man mit arrSol[7] immer den aktuellen Wert.

              .. Oder ist das bereits ein Array?
              Ich kann noch nicht testen, Bin noch auf der Arbeit :/
              Dann etwa so?

              var sol = sol_keys[7]
              var MarsAV = body.sol.AT.av;
              

              muss ich bei der Variable sol in der Schreibweise etwas beachten? Weil ja eine Zahl dahinter steckt?

              paul53P 1 Antwort Letzte Antwort
              0
              • U ultr4low

                Ich habe mir das nun doch nochmal angeschaut.

                Es gibt ganz unten einen toplevel key der sol_keys heißt

                 "sol_keys": [
                    "439", 
                    "440", 
                    "441", 
                    "442", 
                    "443", 
                    "444", 
                    "445"
                  ], 
                

                Wenn ich diese Werte irgendwie in ein Array schreiben könnte. Bspw. arrSol.
                So hätte man mit arrSol[7] immer den aktuellen Wert.

                .. Oder ist das bereits ein Array?
                Ich kann noch nicht testen, Bin noch auf der Arbeit :/
                Dann etwa so?

                var sol = sol_keys[7]
                var MarsAV = body.sol.AT.av;
                

                muss ich bei der Variable sol in der Schreibweise etwas beachten? Weil ja eine Zahl dahinter steckt?

                paul53P Offline
                paul53P Offline
                paul53
                schrieb am zuletzt editiert von paul53
                #7

                @ultr4low sagte:

                ist das bereits ein Array?

                Ja (nach JSON.parse(body);).

                @ultr4low sagte in [Offen] (Problem) NASA APOD und Insight (Mars Weather API):

                Dann etwa so?

                var sol = body.sol_keys[6]; // beginnt mit 0
                var MarsAV = body[sol].AT.av;
                

                Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                U 1 Antwort Letzte Antwort
                1
                • paul53P paul53

                  @ultr4low sagte:

                  ist das bereits ein Array?

                  Ja (nach JSON.parse(body);).

                  @ultr4low sagte in [Offen] (Problem) NASA APOD und Insight (Mars Weather API):

                  Dann etwa so?

                  var sol = body.sol_keys[6]; // beginnt mit 0
                  var MarsAV = body[sol].AT.av;
                  
                  U Offline
                  U Offline
                  ultr4low
                  schrieb am zuletzt editiert von
                  #8

                  @paul53 Vielen vielen vielen Dank. So Klappt es. Klasse! Danke!

                  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

                  693

                  Online

                  32.7k

                  Benutzer

                  82.4k

                  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