Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Node-Red
  5. Node-red: Spritpreise einlesen

NEWS

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

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

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

Node-red: Spritpreise einlesen

Node-red: Spritpreise einlesen

Scheduled Pinned Locked Moved Node-Red
125 Posts 24 Posters 37.6k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • ruhr70R Offline
    ruhr70R Offline
    ruhr70
    wrote on last edited by
    #9

    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

    Adapter: Fritzbox, Unify Circuit
    Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

    1 Reply Last reply
    0
    • HomoranH Do not disturb
      HomoranH Do not disturb
      Homoran
      Global Moderator Administrators
      wrote on last edited by
      #10
       Viele Grüße nach Godorf ;-) 
      

      Knapp daneben [emoji6]

      Womit und wie machst du die Tabellen?

      Gruß

      Rainer

      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 -

      1 Reply Last reply
      0
      • ruhr70R Offline
        ruhr70R Offline
        ruhr70
        wrote on last edited by
        #11

        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.

        Adapter: Fritzbox, Unify Circuit
        Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

        1 Reply Last reply
        0
        • P Offline
          P Offline
          pix
          wrote on last edited by
          #12

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

          Gruß

          Pix

          ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

          1 Reply Last reply
          0
          • ruhr70R Offline
            ruhr70R Offline
            ruhr70
            wrote on last edited by
            #13

            @pix:

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

            Gruß

            Pix `

            Danke! Super Tipp!

            Adapter: Fritzbox, Unify Circuit
            Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

            1 Reply Last reply
            0
            • BluefoxB Offline
              BluefoxB Offline
              Bluefox
              wrote on last edited by
              #14

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

              1 Reply Last reply
              0
              • derAugeD Offline
                derAugeD Offline
                derAuge
                wrote on last edited by
                #15

                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
                0
                • ruhr70R Offline
                  ruhr70R Offline
                  ruhr70
                  wrote on last edited by
                  #16

                  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.

                  Adapter: Fritzbox, Unify Circuit
                  Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

                  1 Reply Last reply
                  0
                  • derAugeD Offline
                    derAugeD Offline
                    derAuge
                    wrote on last edited by
                    #17
                    {"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
                    0
                    • ruhr70R Offline
                      ruhr70R Offline
                      ruhr70
                      wrote on last edited by
                      #18

                      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.

                      Adapter: Fritzbox, Unify Circuit
                      Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

                      1 Reply Last reply
                      0
                      • derAugeD Offline
                        derAugeD Offline
                        derAuge
                        wrote on last edited by
                        #19

                        @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
                        0
                        • ruhr70R Offline
                          ruhr70R Offline
                          ruhr70
                          wrote on last edited by
                          #20

                          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

                          Adapter: Fritzbox, Unify Circuit
                          Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

                          1 Reply Last reply
                          0
                          • derAugeD Offline
                            derAugeD Offline
                            derAuge
                            wrote on last edited by
                            #21

                            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
                            0
                            • derAugeD Offline
                              derAugeD Offline
                              derAuge
                              wrote on last edited by
                              #22

                              @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
                              0
                              • ruhr70R Offline
                                ruhr70R Offline
                                ruhr70
                                wrote on last edited by
                                #23

                                bin unterwegs

                                nimm mal bitte das [0] weg.

                                Gesendet von iPhone mit Tapatalk

                                Adapter: Fritzbox, Unify Circuit
                                Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

                                1 Reply Last reply
                                0
                                • derAugeD Offline
                                  derAugeD Offline
                                  derAuge
                                  wrote on last edited by
                                  #24

                                  @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
                                  0
                                  • ruhr70R Offline
                                    ruhr70R Offline
                                    ruhr70
                                    wrote on last edited by
                                    #25

                                    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

                                    Adapter: Fritzbox, Unify Circuit
                                    Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

                                    1 Reply Last reply
                                    0
                                    • P Offline
                                      P Offline
                                      pix
                                      wrote on last edited by
                                      #26

                                      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

                                      ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

                                      1 Reply Last reply
                                      0
                                      • HomoranH Do not disturb
                                        HomoranH Do not disturb
                                        Homoran
                                        Global Moderator Administrators
                                        wrote on last edited by
                                        #27

                                        Das ist eine gute Idee. Die Optik ist super, aber….

                                        Es gibt tatsächlich Tankstellen, die mit halben cent arbeiten und z.b. den Diesel dann für 1.184 anbieten.

                                        Gruß

                                        Rainer

                                        Gesendet von meinem Cynus T7 mit Tapatalk

                                        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 -

                                        1 Reply Last reply
                                        0
                                        • ruhr70R Offline
                                          ruhr70R Offline
                                          ruhr70
                                          wrote on last edited by
                                          #28

                                          @Homoran:

                                          Das ist eine gute Idee. Die Optik ist super, aber….

                                          Es gibt tatsächlich Tankstellen, die mit halben cent arbeiten und z.b. den Diesel dann für 1.184 anbieten. `

                                          Da würde ich mir das Leben dann sehr einfach machen…

                                          Prüfen, ob der Preis auf 4 oder 9 endet.

                                          Dementsprechend in eine Steuervariable eine 4 oder 9 schreiben.

                                          Zwei Widgets übereinander legen (eins mit hoch 4 und eins mit hoch 9).

                                          Das entsprechende Widget anzeigen, je nach dem Wert der Steuervariable (Sichtbarkeit).

                                          Adapter: Fritzbox, Unify Circuit
                                          Skripte: dynamic hue, Bluetooth Scan, Multi-Ereignisliste

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          609

                                          Online

                                          32.4k

                                          Users

                                          81.3k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe