Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Node-Red
    5. Node-red: Spritpreise einlesen

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Node-red: Spritpreise einlesen

    This topic has been deleted. Only users with topic management privileges can see it.
    • Homoran
      Homoran Global Moderator Administrators last edited by

      Habe inzwischen selber das System erkannt ([0]…) und weiter rumgebastelt.
      144_iobroker_nodered_sprit_2.jpg

      @ruhr70:

      Diese Tabelle ist Spitze, wie hast du die generiert. Das war das, was ich gestern suchte.

      ich wollte auch mehr Infos rausholen.

      lt.Tanklerkönig gibt es dafür aber zwei abfragen, einmal "list" und einmal "detail"

      Gruß

      Rainer

      1 Reply Last reply Reply Quote 0
      • Homoran
        Homoran Global Moderator Administrators last edited by

        Ich habe nochmal weitergespielt und versucht bestimmte Tankstellen auszulesen.

        irgendwie scheint es nicht zu klappen, wenn Tankstellen geschlossen sind.

        Daraufhin habe ich mal einen anderen flow versucht:

        [{"id":"f43c2035.0bc3e","type":"inject","name":"Abfrage alle 15min starten","topic":"","payload":"","payloadType":"date","repeat":"900","crontab":"","once":true,"x":152,"y":558,"z":"9e1279a2.61ed88","wires":[["85444a5a.7abbb8","ff83a1a3.007c6","a7ee9dc6.58116","5388aedb.ac775","7469e67a.8b9618","4cae17ec.b351e8"]]},{"id":"85444a5a.7abbb8","type":"http request","name":"Tankerkoenig mit API abfragen","method":"GET","ret":"obj","url":"https://creativecommons.tankerkoenig.de/json/list.php?lat=50.893151&lng=6.9657667&rad=1&sort=dist&type=diesel&apikey=K E Y","x":521,"y":95,"z":"9e1279a2.61ed88","wires":[["ebc81b8e.1437e8"]]},{"id":"1e693115.e196cf","type":"debug","name":"","active":true,"console":"false","complete":"false","x":1042,"y":39,"z":"9e1279a2.61ed88","wires":[]},{"id":"ebc81b8e.1437e8","type":"function","name":"Daten extrahieren","func":"msg1 = {};\nmsg1.payload = msg.payload.stations[0].name;\n\nmsg2 = {};\nmsg2.payload = msg.payload.stations[0].street;\n\nmsg3 = {};\nmsg3.payload = msg.payload.stations[0].houseNumber;\n\nmsg4 = {};\nmsg4.payload = msg.payload.stations[0].price;\n\nreturn [msg1,msg2,msg3,msg4];","outputs":"4","x":769,"y":95,"z":"9e1279a2.61ed88","wires":[["1e693115.e196cf"],["f5204af4.0adfb8"],["dff4d929.200b28"],["7d69bcf0.829644","84d48ee.f7b2b7"]]},{"id":"84d48ee.f7b2b7","type":"debug","name":"","active":true,"console":"false","complete":"false","x":1040,"y":148,"z":"9e1279a2.61ed88","wires":[]},{"id":"dff4d929.200b28","type":"debug","name":"","active":true,"console":"false","complete":"false","x":1036,"y":111,"z":"9e1279a2.61ed88","wires":[]},{"id":"f5204af4.0adfb8","type":"debug","name":"","active":true,"console":"false","complete":"false","x":1039,"y":74,"z":"9e1279a2.61ed88","wires":[]},{"id":"ff83a1a3.007c6","type":"http request","name":"Tankerkoenig mit API abfragen","method":"GET","ret":"obj","url":"https://creativecommons.tankerkoenig.de/json/list.php?lat=50.8990027&lng=6.9540347&rad=1&sort=dist&type=diesel&apikey=K E Y","x":520,"y":258,"z":"9e1279a2.61ed88","wires":[["b9eb86a6.461478"]]},{"id":"9cb060b8.634fa","type":"debug","name":"","active":true,"console":"false","complete":"false","x":1038,"y":204,"z":"9e1279a2.61ed88","wires":[]},{"id":"b9eb86a6.461478","type":"function","name":"Daten extrahieren","func":"msg1 = {};\nmsg1.payload = msg.payload.stations[0].name;\n\nmsg2 = {};\nmsg2.payload = msg.payload.stations[0].street;\n\nmsg3 = {};\nmsg3.payload = msg.payload.stations[0].houseNumber;\n\nmsg4 = {};\nmsg4.payload = msg.payload.stations[0].price;\n\nreturn [msg1,msg2,msg3,msg4];","outputs":"4","x":765,"y":258,"z":"9e1279a2.61ed88","wires":[["9cb060b8.634fa"],["dcf00ebb.230ff"],["5a2cafa1.a5d35"],["5015d0a5.afea3","a6e00459.591ff8"]]},{"id":"5015d0a5.afea3","type":"debug","name":"","active":true,"console":"false","complete":"false","x":1034,"y":312,"z":"9e1279a2.61ed88","wires":[]},{"id":"5a2cafa1.a5d35","type":"debug","name":"","active":true,"console":"false","complete":"false","x":1032,"y":276,"z":"9e1279a2.61ed88","wires":[]},{"id":"dcf00ebb.230ff","type":"debug","name":"","active":true,"console":"false","complete":"false","x":1035,"y":239,"z":"9e1279a2.61ed88","wires":[]},{"id":"a7ee9dc6.58116","type":"http request","name":"Tankerkoenig mit API abfragen","method":"GET","ret":"obj","url":"https://creativecommons.tankerkoenig.de/json/list.php?lat=50.8580184&lng=6.9646159&rad=1&sort=dist&type=diesel&apikey=K E Y","x":514,"y":413,"z":"9e1279a2.61ed88","wires":[["795bad8d.86a454"]]},{"id":"790c1e85.86f3e","type":"debug","name":"","active":true,"console":"false","complete":"false","x":1037,"y":358,"z":"9e1279a2.61ed88","wires":[]},{"id":"795bad8d.86a454","type":"function","name":"Daten extrahieren","func":"msg1 = {};\nmsg1.payload = msg.payload.stations[0].name;\n\nmsg2 = {};\nmsg2.payload = msg.payload.stations[0].street;\n\nmsg3 = {};\nmsg3.payload = msg.payload.stations[0].houseNumber;\n\nmsg4 = {};\nmsg4.payload = msg.payload.stations[0].price;\n\nreturn [msg1,msg2,msg3,msg4];","outputs":"4","x":764,"y":413,"z":"9e1279a2.61ed88","wires":[["790c1e85.86f3e"],["3203ed64.cdfc12"],["a7a536d2.585ac8"],["2867900c.d7987","16c04316.e93fbd"]]},{"id":"2867900c.d7987","type":"debug","name":"","active":true,"console":"false","complete":"false","x":1033,"y":466,"z":"9e1279a2.61ed88","wires":[]},{"id":"a7a536d2.585ac8","type":"debug","name":"","active":true,"console":"false","complete":"false","x":1031,"y":430,"z":"9e1279a2.61ed88","wires":[]},{"id":"3203ed64.cdfc12","type":"debug","name":"","active":true,"console":"false","complete":"false","x":1034,"y":393,"z":"9e1279a2.61ed88","wires":[]},{"id":"7d69bcf0.829644","type":"ioBroker out","name":"Diesel Verteilerkreis","topic":"Diesel_Verteilerkreis","ack":"true","autoCreate":"true","x":1262,"y":145,"z":"9e1279a2.61ed88","wires":[]},{"id":"a6e00459.591ff8","type":"ioBroker out","name":"Diesel Star Brühler Straße","topic":"Diesel_star","ack":"true","autoCreate":"true","x":1266,"y":313,"z":"9e1279a2.61ed88","wires":[]},{"id":"16c04316.e93fbd","type":"ioBroker out","name":"Diesel Metro","topic":"Diesel_metro","ack":"true","autoCreate":"true","x":1259,"y":464,"z":"9e1279a2.61ed88","wires":[]},{"id":"7469e67a.8b9618","type":"http request","name":"Tankerkoenig mit API abfragen","method":"GET","ret":"obj","url":"https://creativecommons.tankerkoenig.de/json/list.php?lat=50.893151&lng=6.9657667&rad=1&sort=dist&type=e5&apikey=K E Y","x":515,"y":608,"z":"9e1279a2.61ed88","wires":[["7746034c.88b9fc"]]},{"id":"c1604de1.3e9fb","type":"debug","name":"","active":true,"console":"false","complete":"false","x":1037,"y":552,"z":"9e1279a2.61ed88","wires":[]},{"id":"7746034c.88b9fc","type":"function","name":"Daten extrahieren","func":"msg1 = {};\nmsg1.payload = msg.payload.stations[0].name;\n\nmsg2 = {};\nmsg2.payload = msg.payload.stations[0].street;\n\nmsg3 = {};\nmsg3.payload = msg.payload.stations[0].houseNumber;\n\nmsg4 = {};\nmsg4.payload = msg.payload.stations[0].price;\n\nreturn [msg1,msg2,msg3,msg4];","outputs":"4","x":768,"y":608,"z":"9e1279a2.61ed88","wires":[["c1604de1.3e9fb"],["fb673b92.0498c8"],["6752f2ef.98ad0c"],["d3dfa1cb.2c206","9947461b.66b8b8"]]},{"id":"9947461b.66b8b8","type":"debug","name":"","active":true,"console":"false","complete":"false","x":1035,"y":661,"z":"9e1279a2.61ed88","wires":[]},{"id":"6752f2ef.98ad0c","type":"debug","name":"","active":true,"console":"false","complete":"false","x":1031,"y":624,"z":"9e1279a2.61ed88","wires":[]},{"id":"fb673b92.0498c8","type":"debug","name":"","active":true,"console":"false","complete":"false","x":1034,"y":587,"z":"9e1279a2.61ed88","wires":[]},{"id":"4cae17ec.b351e8","type":"http request","name":"Tankerkoenig mit API abfragen","method":"GET","ret":"obj","url":"https://creativecommons.tankerkoenig.de/json/list.php?lat=50.8990027&lng=6.9540347&rad=1&sort=dist&type=e5&apikey=K E Y","x":519,"y":764,"z":"9e1279a2.61ed88","wires":[["c95cc0bd.36a34"]]},{"id":"cbeeb167.34115","type":"debug","name":"","active":true,"console":"false","complete":"false","x":1033,"y":710,"z":"9e1279a2.61ed88","wires":[]},{"id":"c95cc0bd.36a34","type":"function","name":"Daten extrahieren","func":"msg1 = {};\nmsg1.payload = msg.payload.stations[0].name;\n\nmsg2 = {};\nmsg2.payload = msg.payload.stations[0].street;\n\nmsg3 = {};\nmsg3.payload = msg.payload.stations[0].houseNumber;\n\nmsg4 = {};\nmsg4.payload = msg.payload.stations[0].price;\n\nreturn [msg1,msg2,msg3,msg4];","outputs":"4","x":770,"y":764,"z":"9e1279a2.61ed88","wires":[["cbeeb167.34115"],["b79b2d1c.4864d"],["2f01c3a8.d0fe3c"],["e5a2c197.1a5d4","10e313f5.ef1cec"]]},{"id":"e5a2c197.1a5d4","type":"debug","name":"","active":true,"console":"false","complete":"false","x":1029,"y":818,"z":"9e1279a2.61ed88","wires":[]},{"id":"2f01c3a8.d0fe3c","type":"debug","name":"","active":true,"console":"false","complete":"false","x":1027,"y":782,"z":"9e1279a2.61ed88","wires":[]},{"id":"b79b2d1c.4864d","type":"debug","name":"","active":true,"console":"false","complete":"false","x":1030,"y":745,"z":"9e1279a2.61ed88","wires":[]},{"id":"5388aedb.ac775","type":"http request","name":"Tankerkoenig mit API abfragen","method":"GET","ret":"obj","url":"https://creativecommons.tankerkoenig.de/json/list.php?lat=50.8580184&lng=6.9646159&rad=1&sort=dist&type=e5&apikey=K E Y","x":521,"y":924,"z":"9e1279a2.61ed88","wires":[["565b7f0.fa9a48"]]},{"id":"46f30145.b90d","type":"debug","name":"","active":true,"console":"false","complete":"false","x":1032,"y":867,"z":"9e1279a2.61ed88","wires":[]},{"id":"565b7f0.fa9a48","type":"function","name":"Daten extrahieren","func":"msg1 = {};\nmsg1.payload = msg.payload.stations[0].name;\n\nmsg2 = {};\nmsg2.payload = msg.payload.stations[0].street;\n\nmsg3 = {};\nmsg3.payload = msg.payload.stations[0].houseNumber;\n\nmsg4 = {};\nmsg4.payload = msg.payload.stations[0].price;\n\nreturn [msg1,msg2,msg3,msg4];","outputs":"4","x":770,"y":924,"z":"9e1279a2.61ed88","wires":[["46f30145.b90d"],["2f81f08e.d07e1"],["847629c1.7b89d8"],["2eb7227.fd148de","8dd45ac2.722ba8"]]},{"id":"2eb7227.fd148de","type":"debug","name":"","active":true,"console":"false","complete":"false","x":1028,"y":975,"z":"9e1279a2.61ed88","wires":[]},{"id":"847629c1.7b89d8","type":"debug","name":"","active":true,"console":"false","complete":"false","x":1026,"y":939,"z":"9e1279a2.61ed88","wires":[]},{"id":"2f81f08e.d07e1","type":"debug","name":"","active":true,"console":"false","complete":"false","x":1029,"y":902,"z":"9e1279a2.61ed88","wires":[]},{"id":"d3dfa1cb.2c206","type":"ioBroker out","name":"E5 Verteilerkreis","topic":"e5_Verteilerkreis","ack":"true","autoCreate":"true","x":1257,"y":658,"z":"9e1279a2.61ed88","wires":[]},{"id":"10e313f5.ef1cec","type":"ioBroker out","name":"E5 Star Brühler Straße","topic":"e5_star","ack":"true","autoCreate":"true","x":1261,"y":819,"z":"9e1279a2.61ed88","wires":[]},{"id":"8dd45ac2.722ba8","type":"ioBroker out","name":"E5 Metro","topic":"e5_metro","ack":"true","autoCreate":"true","x":1262,"y":977,"z":"9e1279a2.61ed88","wires":[]}]
        

        Dazu habe ich für jede Tankstelle eine Abfrage beim Tankerkönig mit exakten Koordinaten und einem radius von 1 (geht es auch kleiner? 0 hat er nicht genommen) und sort=dist(ance).
        144_iobroker_nodered_sprit_fix.jpg

        Außerdem gibt er mir Name, Straße und Hausnummer mit aus, dadurch sehe ich ob es die Richtige Tanke ist, wobei das wichtiger ist, wenn man nach Preis sortiert.

        Beim verwenden des Flows bitte euren apikey und die Koordinaten der gewünschten Tanke eingeben

        Gruß

        Rainer

        1 Reply Last reply Reply Quote 0
        • ruhr70
          ruhr70 last edited by

          Hallo Rainer,

          schöner flow 🙂

          Wenn Du gezielt Tankstellen abfragen willst, dann kannst Du das über die ID der Tankstelle und der Detailabfrage machen.

          Beispiel, Abfrage der Tankstelle mit der ID 646a461e-2341-4b5f-8f8b-09edc8f7d22c

          https://creativecommons.tankerkoenig.de … 5552056644

          (funktioniert ohne den API-Key)

          Dort findest Du dann auch die Öffnungszeiten der Tankstelle.

          Folgende Datenfelder werden ausgegeben:

          327_2015-04-23_tankerk_nig_detailabfrage.jpg

          Viele Grüße nach Godorf 😉

          Michael

          1 Reply Last reply Reply Quote 0
          • Homoran
            Homoran Global Moderator Administrators last edited by

             Viele Grüße nach Godorf ;-) 
            

            Knapp daneben [emoji6]

            Womit und wie machst du die Tabellen?

            Gruß

            Rainer

            1 Reply Last reply Reply Quote 0
            • ruhr70
              ruhr70 last edited by

              Ich habe mir einen speziellen JSON Editor installiert.

              In meinem Fall Cocoa JSON Editor für den Mac.

              Und dann einfach "neue Datei aus Zwischenablage" auswählen.

              1 Reply Last reply Reply Quote 0
              • P
                pix last edited by

                http://codebeautify.org/jsonviewer ist auch ganz praktisch.

                Gruß

                Pix

                1 Reply Last reply Reply Quote 0
                • ruhr70
                  ruhr70 last edited by

                  @pix:

                  http://codebeautify.org/jsonviewer ist auch ganz praktisch.

                  Gruß

                  Pix `

                  Danke! Super Tipp!

                  1 Reply Last reply Reply Quote 0
                  • Bluefox
                    Bluefox last edited by

                    Es gibt auch plugin für notepad++ - JSTool
                    48_json.png

                    1 Reply Last reply Reply Quote 0
                    • derAuge
                      derAuge last edited by

                      so,

                      nachdem ich nun auch wieder ein TestSystem laufen habe wollte ich auch weiter mit NODE-RED testen

                      ` > msg.payload = msg.payload.stations[1].price;

                      return msg; `

                      wenn ich diese function nehme bekomme ich immer eine Fehlermeldung

                      TypeError: Cannot read property '1' of undefined (line 1, col 35)
                      
                      
                      	25 Apr 20:00:18 - [error] [function:Station 1] TypeError: Cannot read property '1' of undefined (line 1, col 35)
                      
                      

                      was mache ich falsch?

                      wie ist da der Stand bei euch?

                      Gruß

                      derAuge

                      1 Reply Last reply Reply Quote 0
                      • ruhr70
                        ruhr70 last edited by

                        Was kommt denn, wenn Du die URL, die Du im http response node eingetragen hast, direkt im Browser eingibst?

                        Kannst Du das Ergebnis hier posten.

                        stations[1] ist die zweite Tankstelle.

                        Vielleicht ergibt Dein eingestellter Radius ja weniger als eine Tankstelle.

                        1 Reply Last reply Reply Quote 0
                        • derAuge
                          derAuge last edited by

                          {"license":"CC BY 4.0 -  http:\/\/creativecommons.tankerkoenig.de","data":"MTS-K","stations":[{"name":"JET BORKEN NORDRING 46-48","lat":51.84667,"lng":6.84642,"brand":"JET","dist":1.7,"price":1.189,"id":"XXXX","street":"NORDRING 46-48","houseNumber":null,"postCode":46325,"place":"BORKEN"},{"name":"AVIA Tankstelle","lat":51.852592,"lng":6.864203,"brand":"AVIA","dist":0.4,"price":1.199,"id":"11652441-f3fc-4fc9-a87a-664db366b5af","street":"Ahauser Stra\u00dfe","houseNumber":"21","postCode":46325,"place":"Borken"},{"name":"AVIA Tankstelle","lat":51.85873,"lng":6.8657813,"brand":"AVIA","dist":0.8,"price":1.199,"id":"XXXX","street":"Ahauser Stra\u00dfe","houseNumber":"84","postCode":46325,"place":"Borken"},{"name":"A. Kuenstler GmbH","lat":51.86033,"lng":6.87505,"brand":"A. Kuenstler GmbH","dist":1,"price":1.199,"id":"XXXX","street":"Landwehr","houseNumber":"27","postCode":46325,"place":"Borken"},{"name":"AVIA Service Station","lat":51.857345,"lng":6.875487,"brand":"Freie Tankstelle","dist":0.8,"price":1.239,"id":"XXXX","street":"Otto-Hahn-Str.","houseNumber":"35","postCode":46325,"place":"Borken"},{"name":"Autozentrum Ebber GmbH & Co.KG","lat":51.83871,"lng":6.85797,"brand":"Westfalen","dist":1.6,"price":1.239,"id":"XXXX","street":"Raesfelder Str.","houseNumber":"24","postCode":46325,"place":"Borken"},{"name":"Aral Tankstelle","lat":51.844696,"lng":6.843055,"brand":"ARAL","dist":2,"price":1.239,"id":"XXXX","street":"Nordring","houseNumber":"178","postCode":46325,"place":"Borken"}]}
                          
                          

                          1620_betriebsstundenzaehler_097.js

                          1 Reply Last reply Reply Quote 0
                          • ruhr70
                            ruhr70 last edited by

                            Um Deine zweite Frage zu beantworten… es funktioniert wunderbar.

                            Deine URL ermittelt sieben Tankstellen.

                            Deine Funktion müsste den Preis der 2. Tankstelle ermitteln (derzeit AVIA), 1,199 EUR.

                            Ich würde jetzt ein Debug node direkt hinter dem http response node setzen. Dann müsste die Ausgabe rauskommen, die Du vorhin gepostet hattest.

                            1 Reply Last reply Reply Quote 0
                            • derAuge
                              derAuge last edited by

                              @ruhr70:

                              Um Deine zweite Frage zu beantworten… es funktioniert wunderbar.

                              Deine URL ermittelt sieben Tankstellen.

                              Deine Funktion müsste den Preis der 2. Tankstelle ermitteln (derzeit AVIA), 1,199 EUR.

                              Ich würde jetzt ein Debug node direkt hinter dem http response node setzen. Dann müsste die Ausgabe rauskommen, die Du vorhin gepostet hattest. `

                              genau das habe ich ja gemacht
                              315_tanker.png

                              ich schreich ja auch in eine Datei

                              Da kann ich ja sehen was abgeholt wurde

                              aber die Funktion (Station 1) bringt nur die Fehlermeldung

                              msg.payload = msg.payload.stations[1].price;
                              return msg;
                              
                              1 Reply Last reply Reply Quote 0
                              • ruhr70
                                ruhr70 last edited by

                                der Returntyp aus der http Abfrage ist falsch.

                                Du nutzt noch Text aus dem ersten Beispiel ganz oben.

                                Um JSON mit dem Script auszugeben muss der Returntyp auf Objekt stehen.

                                D.h. Deine erste Funktion wird dann nicht mehr korrekt funktionieren.

                                Gesendet von iPhone mit Tapatalk

                                1 Reply Last reply Reply Quote 0
                                • derAuge
                                  derAuge last edited by

                                  Super

                                  Danke für den Tipp

                                  Wenn es als Objekt übergeben wird
                                  315_node-red_json-objekt.png
                                  dann funktioniert es

                                  Gruß

                                  derAuge

                                  1 Reply Last reply Reply Quote 0
                                  • derAuge
                                    derAuge last edited by

                                    @ruhr70:

                                    Hallo Rainer,

                                    schöner flow 🙂

                                    Wenn Du gezielt Tankstellen abfragen willst, dann kannst Du das über die ID der Tankstelle und der Detailabfrage machen.

                                    Beispiel, Abfrage der Tankstelle mit der ID 646a461e-2341-4b5f-8f8b-09edc8f7d22c

                                    https://creativecommons.tankerkoenig.de … 5552056644

                                    (funktioniert ohne den API-Key)

                                    Dort findest Du dann auch die Öffnungszeiten der Tankstelle.

                                    Folgende Datenfelder werden ausgegeben:
                                    filename="2015-04-23 Tankerkönig Detailabfrage.jpg" index="0">~~
                                    Viele Grüße nach Godorf 😉

                                    Michael `

                                    Hallo Michael,

                                    das möchte ich auch umsetzen.

                                    nutze ein GET mit "https://creativecommons.tankerkoenig.de/json/detail.php + id + Key"

                                    wird als JSON- Objekt übergeben

                                    Das speichen in deiner Datei ergibt folgenden Inhalt:

                                    {
                                    	"license" : "CC BY 4.0 -  http://creativecommons.tankerkoenig.de",
                                    	"data" : "MTS-K",
                                    	"station" : {
                                    		"id" : "51d4b6b0-a095-1aa0-e100-80009459e03a",
                                    		"name" : "JET BORKEN NORDRING 46-48",
                                    		"brand" : "JET",
                                    		"street" : "NORDRING 46-48",
                                    		"houseNumber" : null,
                                    		"postCode" : 46325,
                                    		"place" : "BORKEN",
                                    		"overrides" : [],
                                    		"openUntil" : 1430172000,
                                    		"isOpen" : true,
                                    		"e5" : 1.509,
                                    		"e10" : 1.489,
                                    		"diesel" : 1.279,
                                    		"lat" : 51.84667,
                                    		"lng" : 6.84642,
                                    		"state" : null,
                                    		"openingTimes" : [{
                                    				"text" : "Montag, Dienstag, Mittwoch, Donnerstag",
                                    				"start" : "05:00:00",
                                    				"end" : "00:00:00"
                                    			}, {
                                    				"text" : "Freitag, Sonntag",
                                    				"start" : "07:00:00",
                                    				"end" : "00:00:00"
                                    			}, {
                                    				"text" : "Samstag",
                                    				"start" : "06:00:00",
                                    				"end" : "00:00:00"
                                    			}
                                    		]
                                    	}
                                    }
                                    
                                    

                                    nun möchte ich über eine Funktion ein einige Daten heraus filtern

                                    z.B.:

                                    msg1 = {};
                                    msg1.payload = msg.payload.station[0].name;
                                    msg2 = {};
                                    msg2.payload = msg.payload.station[0].diesel;
                                    msg3 = {};
                                    msg3.payload = msg.payload.station[0].isOpen;
                                    msg4 = {};
                                    msg4.payload = msg.payload.station[0].openUntil;
                                    
                                    return [msg1,msg2,msg3,msg4];
                                    
                                    

                                    das funktioniert leider nicht. :oops: Ich habe da wohl noch einiges nicht verstanden

                                    folgende Fehlermeldung:

                                    • TypeError: Cannot read property '0' of undefined (line 1, col 39
                                    • node-red-0 2015-04-26 13:12:57 error 26 Apr 13:12:57 - [error] [function:(detail) Daten extrahieren] TypeError: Cannot read property '0' of undefined (line 1, col 39)

                                    Was mache ich falsch?

                                    Gruß

                                    derAuge

                                    1 Reply Last reply Reply Quote 0
                                    • ruhr70
                                      ruhr70 last edited by

                                      bin unterwegs

                                      nimm mal bitte das [0] weg.

                                      Gesendet von iPhone mit Tapatalk

                                      1 Reply Last reply Reply Quote 0
                                      • derAuge
                                        derAuge last edited by

                                        @ruhr70:

                                        bin unterwegs

                                        nimm mal bitte das [0] weg. `

                                        Danke für den Tipp.

                                        So geht es:

                                        msg1 = {};
                                        msg1.payload = msg.payload.station.name;
                                        msg2 = {};
                                        msg2.payload = msg.payload.station.diesel;
                                        msg3 = {};
                                        msg3.payload = msg.payload.station.isOpen;
                                        msg4 = {};
                                        msg4.payload = msg.payload.station.openUntil;
                                        
                                        return [msg1,msg2,msg3,msg4];
                                        
                                        

                                        Dann kann ich nun weiter testen (lernen)

                                        Gruß

                                        derAuge

                                        1 Reply Last reply Reply Quote 0
                                        • ruhr70
                                          ruhr70 last edited by

                                          na, dann sind wir da ähnlich weit.

                                          hab mit dem Thema auch gerade erst angefangen.

                                          wie ich das verstanden habe hängt es von der Struktur des JSON ab, Ob du [] brauchst oder nicht.

                                          wenn es mehrere Werte geben kann ist der Teil als Array (?) strukturiert. dann brauchst du die Klammern. Das erkennt man an der Baumstruktur

                                          sorry für den chaotischer Text. Er ist per Spracheingabe diktiert.

                                          Gesendet von iPhone mit Tapatalk

                                          1 Reply Last reply Reply Quote 0
                                          • P
                                            pix last edited by

                                            Hallo,

                                            mich hat bei der Ausgabe der Spritpreise die dritte Stelle nach dem Komma (Hoch 9) gestört. In Deutschland wird sie zur Berechnung herangezogen,im Sprachgebrauch aber nie genannt. Zur Anzeige in VIS habe ich deshalb ein kleines Skript geschrieben, dass den Preis auf zwei Nachkommastellen setzt, ohne zu runden.

                                            /* System VIS Spritpreis
                                            
                                            Skript kürzt Spritpreis aus Node Red um eine Stelle (von drei auf zwei Stellen nach dem Komma)
                                            in Vis Widget wird die Entität ⁹ (hoch 9) bzw mit <sup>9</sup> angehängt.
                                            (aus 1.119 wird 1.11hoch9)
                                            
                                            erstellt: 28.04.2015 von pix
                                            */
                                            
                                            // Erstellen der Variablen
                                            createState('Sprit_Preis_kurz');
                                            
                                            var idPreis = "node-red.0.sprit_preis"/*sprit_preis*/
                                                idPreis_kurz = "javascript.0.Sprit_Preis_kurz";
                                            
                                            // Preis kürzen
                                            on( {
                                                id: idPreis,
                                                valGt: 0
                                            }, function (data) {
                                                var rechenwert = data.newState.val * 100; // 100facher Preis jetzt mit einer Nachkommastelle
                                                rechenwert = Math.floor(rechenwert); // Nachkommastelle (.9) wird abgeschnitten
                                                rechenwert = rechenwert/100; // es bleiben zwei Nachkommastellen
                                                setState(idPreis_kurz, rechenwert);
                                            
                                            });
                                            

                                            261_bildschirmfoto_2015-04-28_um_15.49.52.jpg

                                            Voranstellen HTML:````
                                            Diesel

                                            HTML anhängen:````
                                            <sup>9</sup> €
                                            

                                            Font-Size: 30px

                                            261_bildschirmfoto_2015-04-28_um_15.53.35.jpg

                                            Gruß

                                            Pix

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            736
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            24
                                            125
                                            33968
                                            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