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

  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. json aus Tankerkönig Adapter parsen

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.3k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.0k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.4k

json aus Tankerkönig Adapter parsen

Geplant Angeheftet Gesperrt Verschoben JavaScript
18 Beiträge 4 Kommentatoren 1.9k Aufrufe 4 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.
  • S Offline
    S Offline
    sveni_lee
    schrieb am zuletzt editiert von
    #1

    Hallo,

    ich versuche grad die json aus dem Tankerkönig Adapter zu parsen aber irgendwir komme ich das nicht wirklich weiter.

    json:

    {"ok":true,"license":"CC BY 4.0 -  https:\/\/creativecommons.tankerkoenig.de","data":"MTS-K","prices":
    	{"005056ba-7cb6-1ed5-8cbd-4897fe54e42b":{"status":"open","e5":1.269,"e10":1.219,"diesel":1.039},
    	 "aa1c6fb6-439a-4915-8ad8-0f67697a65e2":{"status":"open","e5":1.279,"e10":1.229,"diesel":1.049},
    	 "5a5ed93f-84aa-4517-dc7c-c888f278b5c7":{"status":"open","e5":1.289,"e10":false,"diesel":1.049},
    	 "6649f1c1-5154-4641-945c-96419ea88f01":{"status":"open","e5":1.299,"e10":1.249,"diesel":1.059},
    	 "533abf42-a618-4d18-802e-fabdf0429269":{"status":"open","e5":1.289,"e10":1.239,"diesel":1.049},
    	 "528da962-bd28-4f5d-8bd0-cc01ba9b538c":{"status":"open","e5":1.279,"e10":1.229,"diesel":1.049},
    	 "51d4b47c-a095-1aa0-e100-80009459e03a":{"status":"open","e5":1.269,"e10":1.219,"diesel":1.039}
    	}
    }
    

    mein bisheriger Versuch:

    on({id:'tankerkoenig.0.json'}, function (obj) {    
    
      let data = JSON.parse(obj.state.val); 
      if(data){
          for (let i = 0; i < (data.prices).length; i++) {   
    
              let name = data.price[i]
                log(name)
      }        
    })
    

    (data.prices).length ist aber seinbar nicht definiert.
    Aber wie komme ich an die Werte aus der JSON?

    F 1 Antwort Letzte Antwort
    0
    • S sveni_lee

      Hallo,

      ich versuche grad die json aus dem Tankerkönig Adapter zu parsen aber irgendwir komme ich das nicht wirklich weiter.

      json:

      {"ok":true,"license":"CC BY 4.0 -  https:\/\/creativecommons.tankerkoenig.de","data":"MTS-K","prices":
      	{"005056ba-7cb6-1ed5-8cbd-4897fe54e42b":{"status":"open","e5":1.269,"e10":1.219,"diesel":1.039},
      	 "aa1c6fb6-439a-4915-8ad8-0f67697a65e2":{"status":"open","e5":1.279,"e10":1.229,"diesel":1.049},
      	 "5a5ed93f-84aa-4517-dc7c-c888f278b5c7":{"status":"open","e5":1.289,"e10":false,"diesel":1.049},
      	 "6649f1c1-5154-4641-945c-96419ea88f01":{"status":"open","e5":1.299,"e10":1.249,"diesel":1.059},
      	 "533abf42-a618-4d18-802e-fabdf0429269":{"status":"open","e5":1.289,"e10":1.239,"diesel":1.049},
      	 "528da962-bd28-4f5d-8bd0-cc01ba9b538c":{"status":"open","e5":1.279,"e10":1.229,"diesel":1.049},
      	 "51d4b47c-a095-1aa0-e100-80009459e03a":{"status":"open","e5":1.269,"e10":1.219,"diesel":1.039}
      	}
      }
      

      mein bisheriger Versuch:

      on({id:'tankerkoenig.0.json'}, function (obj) {    
      
        let data = JSON.parse(obj.state.val); 
        if(data){
            for (let i = 0; i < (data.prices).length; i++) {   
      
                let name = data.price[i]
                  log(name)
        }        
      })
      

      (data.prices).length ist aber seinbar nicht definiert.
      Aber wie komme ich an die Werte aus der JSON?

      F Offline
      F Offline
      fastfoot
      schrieb am zuletzt editiert von fastfoot
      #2

      @sveni_lee sagte in json aus Tankerkönig Adapter parsen:

      Aber wie komme ich an die Werte aus der JSON?

      let myStations = getObject('system.adapter.tankerkoenig.0').native.stationsarray;
      let json = JSON.parse(getState('tankerkoenig.0.json').val);
      let stations = Object.keys(json.prices);
      stations.forEach((station,i) => {
          myStations.forEach((arr, j) => {
              if(arr[0] == station) log(arr[1] + ': ' + json.prices[station].e5);
          });
      })
      

      iobroker läuft unter Docker auf QNAP TS-451+
      SkriptRecovery: https://forum.iobroker.net/post/930558

      S 1 Antwort Letzte Antwort
      0
      • F fastfoot

        @sveni_lee sagte in json aus Tankerkönig Adapter parsen:

        Aber wie komme ich an die Werte aus der JSON?

        let myStations = getObject('system.adapter.tankerkoenig.0').native.stationsarray;
        let json = JSON.parse(getState('tankerkoenig.0.json').val);
        let stations = Object.keys(json.prices);
        stations.forEach((station,i) => {
            myStations.forEach((arr, j) => {
                if(arr[0] == station) log(arr[1] + ': ' + json.prices[station].e5);
            });
        })
        
        S Offline
        S Offline
        sveni_lee
        schrieb am zuletzt editiert von
        #3

        @fastfoot

        danke... das hat funktioniert :-)

        HomoranH 1 Antwort Letzte Antwort
        0
        • S sveni_lee

          @fastfoot

          danke... das hat funktioniert :-)

          HomoranH Offline
          HomoranH Offline
          Homoran
          Global Moderator Administrators
          schrieb am zuletzt editiert von
          #4

          @sveni_lee Darf man fragen warum du die json aus dem Adapter parsen willst?
          Was möchtest du machen was der Adapter nicht kann?

          Oder:
          Warum benötigst du den Adapter, wenn du die json selber parsen willst?
          Da kannst du sie dir ja selber direkt vom Tankerkönig runterladen - ohne Adapter.

          :thinking_face: :confused: :thinking_face:

          kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

          der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

          S F 2 Antworten Letzte Antwort
          0
          • HomoranH Homoran

            @sveni_lee Darf man fragen warum du die json aus dem Adapter parsen willst?
            Was möchtest du machen was der Adapter nicht kann?

            Oder:
            Warum benötigst du den Adapter, wenn du die json selber parsen willst?
            Da kannst du sie dir ja selber direkt vom Tankerkönig runterladen - ohne Adapter.

            :thinking_face: :confused: :thinking_face:

            S Offline
            S Offline
            sveni_lee
            schrieb am zuletzt editiert von
            #5

            @Homoran

            klar darf man das Fragen.
            Ich möchte einfach das ergebnis so umwandeln, das es in das Materialdesign Table widget passt.
            Ich würde gern das ergebnis sortiert nach Preis anzeigen lassen mit Icon (img)...

            1 Antwort Letzte Antwort
            0
            • HomoranH Homoran

              @sveni_lee Darf man fragen warum du die json aus dem Adapter parsen willst?
              Was möchtest du machen was der Adapter nicht kann?

              Oder:
              Warum benötigst du den Adapter, wenn du die json selber parsen willst?
              Da kannst du sie dir ja selber direkt vom Tankerkönig runterladen - ohne Adapter.

              :thinking_face: :confused: :thinking_face:

              F Offline
              F Offline
              fastfoot
              schrieb am zuletzt editiert von
              #6

              @Homoran sagte in json aus Tankerkönig Adapter parsen:

              Warum benötigst du den Adapter, wenn du die json selber parsen willst?

              Anders gefragt: Warum bietet der Adapter die json an, wenn sie doch 'unnötig' ist :-)

              iobroker läuft unter Docker auf QNAP TS-451+
              SkriptRecovery: https://forum.iobroker.net/post/930558

              HomoranH 1 Antwort Letzte Antwort
              0
              • F fastfoot

                @Homoran sagte in json aus Tankerkönig Adapter parsen:

                Warum benötigst du den Adapter, wenn du die json selber parsen willst?

                Anders gefragt: Warum bietet der Adapter die json an, wenn sie doch 'unnötig' ist :-)

                HomoranH Offline
                HomoranH Offline
                Homoran
                Global Moderator Administrators
                schrieb am zuletzt editiert von
                #7

                @fastfoot sagte in json aus Tankerkönig Adapter parsen:

                Warum bietet der Adapter die json an

                weil er sie auch braucht zum auswerten ;-)

                Wenn deine Wünsch nicht mit dem Adapter gehen, wäre das doch ggf. ein feature request das in den Adapter einzubauen.

                @sveni_lee sagte in json aus Tankerkönig Adapter parsen:

                das es in das Materialdesign Table widget passt.

                also fehlt da ein bestimmtes format der Ausgabe????

                kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                F S 2 Antworten Letzte Antwort
                0
                • HomoranH Homoran

                  @fastfoot sagte in json aus Tankerkönig Adapter parsen:

                  Warum bietet der Adapter die json an

                  weil er sie auch braucht zum auswerten ;-)

                  Wenn deine Wünsch nicht mit dem Adapter gehen, wäre das doch ggf. ein feature request das in den Adapter einzubauen.

                  @sveni_lee sagte in json aus Tankerkönig Adapter parsen:

                  das es in das Materialdesign Table widget passt.

                  also fehlt da ein bestimmtes format der Ausgabe????

                  F Offline
                  F Offline
                  fastfoot
                  schrieb am zuletzt editiert von
                  #8

                  @Homoran sagte in json aus Tankerkönig Adapter parsen:

                  weil er sie auch braucht zum auswerten

                  Das wäre ja noch kein Grund, sie nach aussen weiterzugeben, tut der Covid19 Adapter ja auch nicht

                  Wenn deine Wünsch nicht mit dem Adapter gehen, wäre das doch ggf. ein feature request das in den Adapter einzubauen.

                  mir reicht das json, um meine Wünsche alleine umzusetzen :-) Der Adapter dient in meinem Fall tatsächlich nur dazu, eine bequeme Konfiguration zu haben. Da ich jetzt so langsam mit VIS anfange, steht als nächstes eine json Tabelle an, die leicht in die VIS eingebunden werden kann

                  iobroker läuft unter Docker auf QNAP TS-451+
                  SkriptRecovery: https://forum.iobroker.net/post/930558

                  1 Antwort Letzte Antwort
                  0
                  • HomoranH Homoran

                    @fastfoot sagte in json aus Tankerkönig Adapter parsen:

                    Warum bietet der Adapter die json an

                    weil er sie auch braucht zum auswerten ;-)

                    Wenn deine Wünsch nicht mit dem Adapter gehen, wäre das doch ggf. ein feature request das in den Adapter einzubauen.

                    @sveni_lee sagte in json aus Tankerkönig Adapter parsen:

                    das es in das Materialdesign Table widget passt.

                    also fehlt da ein bestimmtes format der Ausgabe????

                    S Offline
                    S Offline
                    sveni_lee
                    schrieb am zuletzt editiert von
                    #9

                    @Homoran sagte in json aus Tankerkönig Adapter parsen:

                    @sveni_lee sagte in json aus Tankerkönig Adapter parsen:

                    das es in das Materialdesign Table widget passt.

                    also fehlt da ein bestimmtes format der Ausgabe????

                    ja... lt. GitHub muß e ein Json array aus Objecten sein.

                    [
                    	{
                    		"img": "/vis.0/myImages/erlebnis_50.png",
                    		"name": "Empire",
                    		"betriebszeit": "4h 06m",
                    		"funk": "5G",
                    		"ip": "10.0.0.1"
                    	},
                    	{
                    		"img": "/vis.0/myImages/erlebnis_100.png",
                    		"name": "Handy",
                    		"betriebszeit": "13m",
                    		"funk": "5G",
                    		"ip": "10.0.0.2"
                    	},
                    	{
                    		"img": "/vis.0/myImages/erlebnis_100.png",
                    		"name": "Harmony Hub - Wohnzimmer",
                    		"betriebszeit": "18T 07h 21m",
                    		"funk": "2G",
                    		"ip": "10.0.0.3"
                    	}
                    ]
                    

                    da ich aber nicht weiß ob dies für die Allgemeinheit von interesse ist versuche ich es über ein script zu lösen. Ich versuche es zu vermeiden Adapter durch meine speziellen wünsche "aufzublasen".

                    bisher ist mein versuch aber och nicht von erfolg gekröhnt... :-)

                    var station_png = {"005056ba-7cb6-1ed5-8cbd-4897fe54e42b" : "/vis.0/Star.png",
                                        "aa1c6fb6-439a-4915-8ad8-0f67697a65e2" : "/vis.0/ESSO.png",
                                        "5a5ed93f-84aa-4517-dc7c-c888f278b5c7" : "/vis.0/Test/img/Tanken/Gulf-Tankstelle.png",
                                        "6649f1c1-5154-4641-945c-96419ea88f01" : "/vis.0/Test/img/Tanken/total.png",
                                        "533abf42-a618-4d18-802e-fabdf0429269" : "/vis.0/Test/img/Tanken/Shell_logo.svg.png",
                                        "528da962-bd28-4f5d-8bd0-cc01ba9b538c" : "/vis.0/Test/img/Tanken/Shell_logo.svg.png",
                                        "51d4b47c-a095-1aa0-e100-80009459e03a" : "/vis.0/Jet.png"
                                        };
                    
                    var materialDesignWidgets = {};
                    on({id:'tankerkoenig.0.json'}, function (obj) {    
                    
                        let json_tank = getState('0_userdata.0.materialdesignwidgets.tankerkoeningTabelle').val;
                     
                        if (json_tank) {
                            try {
                    
                                json_tank = JSON.parse(json_tank);
                    
                            } catch (e) {
                                json_tank = [];
                                console.warn('Wert ist kein JSON string! Wert wird ersetzt!');
                            }
                        } else {
                            json_tank = [];
                        }
                    
                    let myStations = getObject('system.adapter.tankerkoenig.0').native.stationsarray;
                    
                    let json = JSON.parse(getState('tankerkoenig.0.json').val);
                    
                    let stations = Object.keys(json.prices);
                    
                    stations.forEach((station,i) => {
                    
                        myStations.forEach((arr, j) => {
                    
                            if(arr[0] == station) {
                      
                                log(arr[1] + ': ' + json.prices[station].diesel + " - " + json.prices[station].status);
                    
                                materialDesignWidgets.sendTo = function (img ='', name = '', preis = '', status ='' ) {
                                
                                    json_tank.push(
                                    {
                                        "img": station_png[station],
                                        "name": arr[1],
                                        "preis": json.prices[station].diesel,
                                        "status": json.prices[station].status
                                    })
                            
                                setState('0_userdata.0.materialdesignwidgets.tankerkoeningTabelle', JSON.stringify(json_tank), true);
                    
                            }}
                        });
                        
                    })
                    })
                    
                    1 Antwort Letzte Antwort
                    0
                    • S Offline
                      S Offline
                      sveni_lee
                      schrieb am zuletzt editiert von
                      #10

                      so, ich hab's hnbekommen.
                      das skript schreibt jetzt ein JSON Array aus Objekten in einen Datenpunkt.
                      und den kann man dann im Materialdesignwidget Table verwenden.

                      var station_png = {"005056ba-7cb6-1ed5-8cbd-4897fe54e42b" : "/vis.0/Star.png",
                                          "aa1c6fb6-439a-4915-8ad8-0f67697a65e2" : "/vis.0/ESSO.png",
                                          "5a5ed93f-84aa-4517-dc7c-c888f278b5c7" : "/vis.0/Test/img/Tanken/Gulf-Tankstelle.png",
                                          "6649f1c1-5154-4641-945c-96419ea88f01" : "/vis.0/Test/img/Tanken/total.png",
                                          "533abf42-a618-4d18-802e-fabdf0429269" : "/vis.0/Test/img/Tanken/Shell_logo.svg.png",
                                          "528da962-bd28-4f5d-8bd0-cc01ba9b538c" : "/vis.0/Test/img/Tanken/Shell_logo.svg.png",
                                          "51d4b47c-a095-1aa0-e100-80009459e03a" : "/vis.0/Jet.png"
                                          };
                      
                      
                      on({id:'tankerkoenig.0.json'}, function (obj) {    
                      
                          let json_tank = '';
                          json_tank = [];
                      
                      let myStations = getObject('system.adapter.tankerkoenig.0').native.stationsarray;
                      
                      let json = JSON.parse(getState('tankerkoenig.0.json').val);
                      
                      let stations = Object.keys(json.prices);
                      
                      stations.forEach((station,i) => {
                      
                          myStations.forEach((arr, j) => {
                      
                              if(arr[0] == station) {
                                  
                                      json_tank.push(
                                      {
                                          "img": station_png[station],
                                          "name": arr[1],
                                          "preis": json.prices[station].diesel,
                                          "status": json.prices[station].status
                                      })
                      
                                  setState('0_userdata.0.materialdesignwidgets.tankerkoeningTabelle', JSON.stringify(json_tank), true);
                      
                              }
                          });
                          
                      })
                      })
                      
                      F 1 Antwort Letzte Antwort
                      0
                      • S sveni_lee

                        so, ich hab's hnbekommen.
                        das skript schreibt jetzt ein JSON Array aus Objekten in einen Datenpunkt.
                        und den kann man dann im Materialdesignwidget Table verwenden.

                        var station_png = {"005056ba-7cb6-1ed5-8cbd-4897fe54e42b" : "/vis.0/Star.png",
                                            "aa1c6fb6-439a-4915-8ad8-0f67697a65e2" : "/vis.0/ESSO.png",
                                            "5a5ed93f-84aa-4517-dc7c-c888f278b5c7" : "/vis.0/Test/img/Tanken/Gulf-Tankstelle.png",
                                            "6649f1c1-5154-4641-945c-96419ea88f01" : "/vis.0/Test/img/Tanken/total.png",
                                            "533abf42-a618-4d18-802e-fabdf0429269" : "/vis.0/Test/img/Tanken/Shell_logo.svg.png",
                                            "528da962-bd28-4f5d-8bd0-cc01ba9b538c" : "/vis.0/Test/img/Tanken/Shell_logo.svg.png",
                                            "51d4b47c-a095-1aa0-e100-80009459e03a" : "/vis.0/Jet.png"
                                            };
                        
                        
                        on({id:'tankerkoenig.0.json'}, function (obj) {    
                        
                            let json_tank = '';
                            json_tank = [];
                        
                        let myStations = getObject('system.adapter.tankerkoenig.0').native.stationsarray;
                        
                        let json = JSON.parse(getState('tankerkoenig.0.json').val);
                        
                        let stations = Object.keys(json.prices);
                        
                        stations.forEach((station,i) => {
                        
                            myStations.forEach((arr, j) => {
                        
                                if(arr[0] == station) {
                                    
                                        json_tank.push(
                                        {
                                            "img": station_png[station],
                                            "name": arr[1],
                                            "preis": json.prices[station].diesel,
                                            "status": json.prices[station].status
                                        })
                        
                                    setState('0_userdata.0.materialdesignwidgets.tankerkoeningTabelle', JSON.stringify(json_tank), true);
                        
                                }
                            });
                            
                        })
                        })
                        
                        F Offline
                        F Offline
                        fastfoot
                        schrieb am zuletzt editiert von
                        #11

                        @sveni_lee sagte in json aus Tankerkönig Adapter parsen:

                        so, ich hab's hnbekommen.
                        das skript schreibt jetzt ein JSON Array aus Objekten in einen Datenpunkt.
                        und den kann man dann im Materialdesignwidget Table verwenden.

                        var station_png = {"005056ba-7cb6-1ed5-8cbd-4897fe54e42b" : "/vis.0/Star.png",
                                            "aa1c6fb6-439a-4915-8ad8-0f67697a65e2" : "/vis.0/ESSO.png",
                                            "5a5ed93f-84aa-4517-dc7c-c888f278b5c7" : "/vis.0/Test/img/Tanken/Gulf-Tankstelle.png",
                                            "6649f1c1-5154-4641-945c-96419ea88f01" : "/vis.0/Test/img/Tanken/total.png",
                                            "533abf42-a618-4d18-802e-fabdf0429269" : "/vis.0/Test/img/Tanken/Shell_logo.svg.png",
                                            "528da962-bd28-4f5d-8bd0-cc01ba9b538c" : "/vis.0/Test/img/Tanken/Shell_logo.svg.png",
                                            "51d4b47c-a095-1aa0-e100-80009459e03a" : "/vis.0/Jet.png"
                                            };
                        
                        
                        on({id:'tankerkoenig.0.json'}, function (obj) {    
                        
                            let json_tank = '';
                            json_tank = [];
                        
                        let myStations = getObject('system.adapter.tankerkoenig.0').native.stationsarray;
                        
                        let json = JSON.parse(getState('tankerkoenig.0.json').val);
                        
                        let stations = Object.keys(json.prices);
                        
                        stations.forEach((station,i) => {
                        
                            myStations.forEach((arr, j) => {
                        
                                if(arr[0] == station) {
                                    
                                        json_tank.push(
                                        {
                                            "img": station_png[station],
                                            "name": arr[1],
                                            "preis": json.prices[station].diesel,
                                            "status": json.prices[station].status
                                        })
                        
                                    setState('0_userdata.0.materialdesignwidgets.tankerkoeningTabelle', JSON.stringify(json_tank), true);
                        
                                }
                            });
                            
                        })
                        })
                        

                        Gratuliere! Auch wenn es funktioniert, das setState() sollte zwischen die Zeilen 41 und 42, sonst wird der State bei jeder Station der Tankerkoenig-json geschrieben

                        iobroker läuft unter Docker auf QNAP TS-451+
                        SkriptRecovery: https://forum.iobroker.net/post/930558

                        S liv-in-skyL 2 Antworten Letzte Antwort
                        0
                        • F fastfoot

                          @sveni_lee sagte in json aus Tankerkönig Adapter parsen:

                          so, ich hab's hnbekommen.
                          das skript schreibt jetzt ein JSON Array aus Objekten in einen Datenpunkt.
                          und den kann man dann im Materialdesignwidget Table verwenden.

                          var station_png = {"005056ba-7cb6-1ed5-8cbd-4897fe54e42b" : "/vis.0/Star.png",
                                              "aa1c6fb6-439a-4915-8ad8-0f67697a65e2" : "/vis.0/ESSO.png",
                                              "5a5ed93f-84aa-4517-dc7c-c888f278b5c7" : "/vis.0/Test/img/Tanken/Gulf-Tankstelle.png",
                                              "6649f1c1-5154-4641-945c-96419ea88f01" : "/vis.0/Test/img/Tanken/total.png",
                                              "533abf42-a618-4d18-802e-fabdf0429269" : "/vis.0/Test/img/Tanken/Shell_logo.svg.png",
                                              "528da962-bd28-4f5d-8bd0-cc01ba9b538c" : "/vis.0/Test/img/Tanken/Shell_logo.svg.png",
                                              "51d4b47c-a095-1aa0-e100-80009459e03a" : "/vis.0/Jet.png"
                                              };
                          
                          
                          on({id:'tankerkoenig.0.json'}, function (obj) {    
                          
                              let json_tank = '';
                              json_tank = [];
                          
                          let myStations = getObject('system.adapter.tankerkoenig.0').native.stationsarray;
                          
                          let json = JSON.parse(getState('tankerkoenig.0.json').val);
                          
                          let stations = Object.keys(json.prices);
                          
                          stations.forEach((station,i) => {
                          
                              myStations.forEach((arr, j) => {
                          
                                  if(arr[0] == station) {
                                      
                                          json_tank.push(
                                          {
                                              "img": station_png[station],
                                              "name": arr[1],
                                              "preis": json.prices[station].diesel,
                                              "status": json.prices[station].status
                                          })
                          
                                      setState('0_userdata.0.materialdesignwidgets.tankerkoeningTabelle', JSON.stringify(json_tank), true);
                          
                                  }
                              });
                              
                          })
                          })
                          

                          Gratuliere! Auch wenn es funktioniert, das setState() sollte zwischen die Zeilen 41 und 42, sonst wird der State bei jeder Station der Tankerkoenig-json geschrieben

                          S Offline
                          S Offline
                          sveni_lee
                          schrieb am zuletzt editiert von
                          #12

                          @fastfoot

                          ja, danke! habe ich umgesetzt. Ich hab auch noch eine sortierfunktion eingebaut. So ist jetzt immer die günstigste Tankstelle oben...

                          var station_png = {"005056ba-7cb6-1ed5-8cbd-4897fe54e42b" : "/vis.0/Star.png",
                                              "aa1c6fb6-439a-4915-8ad8-0f67697a65e2" : "/vis.0/ESSO.png",
                                              "5a5ed93f-84aa-4517-dc7c-c888f278b5c7" : "/vis.0/Test/img/Tanken/Gulf-Tankstelle.png",
                                              "6649f1c1-5154-4641-945c-96419ea88f01" : "/vis.0/Test/img/Tanken/total.png",
                                              "533abf42-a618-4d18-802e-fabdf0429269" : "/vis.0/Test/img/Tanken/Shell_logo.svg.png",
                                              "528da962-bd28-4f5d-8bd0-cc01ba9b538c" : "/vis.0/Test/img/Tanken/Shell_logo.svg.png",
                                              "51d4b47c-a095-1aa0-e100-80009459e03a" : "/vis.0/Jet.png"
                                              };
                          
                          
                          on({id:'tankerkoenig.0.json'}, function (obj) {    
                          
                              let json_tank = '';
                              json_tank = [];
                          
                          let myStations = getObject('system.adapter.tankerkoenig.0').native.stationsarray;
                          
                          let json = JSON.parse(getState('tankerkoenig.0.json').val);
                          
                          let stations = Object.keys(json.prices);
                          
                          stations.forEach((station,i) => {
                          
                              myStations.forEach((arr, j) => {
                          
                                  if(arr[0] == station) {
                                      
                                          json_tank.push(
                                          {
                                              "img": station_png[station],
                                              "name": arr[1],
                                              "preis": json.prices[station].diesel,
                                              "status": json.prices[station].status
                                          })
                          
                                  }
                              });
                              
                          })
                          
                              json_tank.sort(function (a, b) {
                          
                                  return a.preis == b.preis ? 0 : +(a.preis > b.preis) || -1;
                          
                              });
                          
                           setState('0_userdata.0.materialdesignwidgets.tankerkoeningTabelle', JSON.stringify(json_tank), true);
                          })
                          
                          1 Antwort Letzte Antwort
                          0
                          • F fastfoot

                            @sveni_lee sagte in json aus Tankerkönig Adapter parsen:

                            so, ich hab's hnbekommen.
                            das skript schreibt jetzt ein JSON Array aus Objekten in einen Datenpunkt.
                            und den kann man dann im Materialdesignwidget Table verwenden.

                            var station_png = {"005056ba-7cb6-1ed5-8cbd-4897fe54e42b" : "/vis.0/Star.png",
                                                "aa1c6fb6-439a-4915-8ad8-0f67697a65e2" : "/vis.0/ESSO.png",
                                                "5a5ed93f-84aa-4517-dc7c-c888f278b5c7" : "/vis.0/Test/img/Tanken/Gulf-Tankstelle.png",
                                                "6649f1c1-5154-4641-945c-96419ea88f01" : "/vis.0/Test/img/Tanken/total.png",
                                                "533abf42-a618-4d18-802e-fabdf0429269" : "/vis.0/Test/img/Tanken/Shell_logo.svg.png",
                                                "528da962-bd28-4f5d-8bd0-cc01ba9b538c" : "/vis.0/Test/img/Tanken/Shell_logo.svg.png",
                                                "51d4b47c-a095-1aa0-e100-80009459e03a" : "/vis.0/Jet.png"
                                                };
                            
                            
                            on({id:'tankerkoenig.0.json'}, function (obj) {    
                            
                                let json_tank = '';
                                json_tank = [];
                            
                            let myStations = getObject('system.adapter.tankerkoenig.0').native.stationsarray;
                            
                            let json = JSON.parse(getState('tankerkoenig.0.json').val);
                            
                            let stations = Object.keys(json.prices);
                            
                            stations.forEach((station,i) => {
                            
                                myStations.forEach((arr, j) => {
                            
                                    if(arr[0] == station) {
                                        
                                            json_tank.push(
                                            {
                                                "img": station_png[station],
                                                "name": arr[1],
                                                "preis": json.prices[station].diesel,
                                                "status": json.prices[station].status
                                            })
                            
                                        setState('0_userdata.0.materialdesignwidgets.tankerkoeningTabelle', JSON.stringify(json_tank), true);
                            
                                    }
                                });
                                
                            })
                            })
                            

                            Gratuliere! Auch wenn es funktioniert, das setState() sollte zwischen die Zeilen 41 und 42, sonst wird der State bei jeder Station der Tankerkoenig-json geschrieben

                            liv-in-skyL Offline
                            liv-in-skyL Offline
                            liv-in-sky
                            schrieb am zuletzt editiert von liv-in-sky
                            #13

                            @fastfoot gelöscht

                            nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                            1 Antwort Letzte Antwort
                            0
                            • liv-in-skyL Offline
                              liv-in-skyL Offline
                              liv-in-sky
                              schrieb am zuletzt editiert von
                              #14

                              @sveni_lee cooles script - vorallem wie hast du das gefunden :

                              let myStations = getObject('system.adapter.tankerkoenig.0').native.stationsarray;
                              

                              ist das ok, wenn ich das script klaue und für ein html tabellen script nutze?

                              Image 10.png

                              nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                              S 1 Antwort Letzte Antwort
                              0
                              • liv-in-skyL liv-in-sky

                                @sveni_lee cooles script - vorallem wie hast du das gefunden :

                                let myStations = getObject('system.adapter.tankerkoenig.0').native.stationsarray;
                                

                                ist das ok, wenn ich das script klaue und für ein html tabellen script nutze?

                                Image 10.png

                                S Offline
                                S Offline
                                sveni_lee
                                schrieb am zuletzt editiert von
                                #15

                                @liv-in-sky

                                natürlich das okay... dafür ist doch so eine Community da. :-)

                                dieser spezielle teil kommt aber tatsächlich von @fastfoot

                                let myStations = getObject('system.adapter.tankerkoenig.0').native.stationsarray; 
                                

                                ich kannte getObject() bisher auch nicht aber das eröffnet mir gerade wieder noch mehr Mögichkeiten.

                                liv-in-skyL 2 Antworten Letzte Antwort
                                0
                                • S sveni_lee

                                  @liv-in-sky

                                  natürlich das okay... dafür ist doch so eine Community da. :-)

                                  dieser spezielle teil kommt aber tatsächlich von @fastfoot

                                  let myStations = getObject('system.adapter.tankerkoenig.0').native.stationsarray; 
                                  

                                  ich kannte getObject() bisher auch nicht aber das eröffnet mir gerade wieder noch mehr Mögichkeiten.

                                  liv-in-skyL Offline
                                  liv-in-skyL Offline
                                  liv-in-sky
                                  schrieb am zuletzt editiert von
                                  #16

                                  @sveni_lee

                                  danke dir

                                  getObject war mir nicht neu - nur der pfad system.adapter.tank.... - wußte nicht, das da daten sind

                                  also auch dank an @fastfood

                                  tabelle:

                                  https://forum.iobroker.net/topic/37609/html-tabelle-für-tankerkönig

                                  nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                                  1 Antwort Letzte Antwort
                                  0
                                  • S sveni_lee

                                    @liv-in-sky

                                    natürlich das okay... dafür ist doch so eine Community da. :-)

                                    dieser spezielle teil kommt aber tatsächlich von @fastfoot

                                    let myStations = getObject('system.adapter.tankerkoenig.0').native.stationsarray; 
                                    

                                    ich kannte getObject() bisher auch nicht aber das eröffnet mir gerade wieder noch mehr Mögichkeiten.

                                    liv-in-skyL Offline
                                    liv-in-skyL Offline
                                    liv-in-sky
                                    schrieb am zuletzt editiert von
                                    #17

                                    @sveni_lee

                                    für welches widget hast du dein script gemacht ?

                                    nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                                    S 1 Antwort Letzte Antwort
                                    0
                                    • liv-in-skyL liv-in-sky

                                      @sveni_lee

                                      für welches widget hast du dein script gemacht ?

                                      S Offline
                                      S Offline
                                      sveni_lee
                                      schrieb am zuletzt editiert von
                                      #18

                                      @liv-in-sky
                                      bei mir füttert es das "MaterialDesign Table"...
                                      das klappt super...

                                      1 Antwort Letzte Antwort
                                      1
                                      Antworten
                                      • In einem neuen Thema antworten
                                      Anmelden zum Antworten
                                      • Älteste zuerst
                                      • Neuste zuerst
                                      • Meiste Stimmen


                                      Support us

                                      ioBroker
                                      Community Adapters
                                      Donate

                                      172

                                      Online

                                      32.4k

                                      Benutzer

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