Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Node-Red
  5. Node-red: Spritpreise einlesen Tanker-König # feste Station

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

Node-red: Spritpreise einlesen Tanker-König # feste Station

Geplant Angeheftet Gesperrt Verschoben Node-Red
7 Beiträge 3 Kommentatoren 4.3k Aufrufe
  • Ä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.
  • derAugeD Offline
    derAugeD Offline
    derAuge
    schrieb am zuletzt editiert von
    #1

    angeregt und mit Unterstützung von Pix http://forum.iobroker.org/viewtopic.php … =614#p4245 (Tankstellenliste) habe ich mich daran gemacht und frage nun feste Stationen (Tankstellendetail) ab.

    315_node-red_sprit_festestationen.png
    Die Ausgabe (DEBUG) (File) ist nur in der Testpase eingetragen

    ! [{
    ! "id" : "3f588390.c195dc",
    ! "type" : "inject",
    ! "name" : "Start jede Minute",
    ! "topic" : "",
    ! "payload" : "",
    ! "payloadType" : "none",
    ! "repeat" : "60",
    ! "crontab" : "",
    ! "once" : false,
    ! "x" : 110,
    ! "y" : 239,
    ! "z" : "231298ee.7d60a8",
    ! "wires" : [["7c7cf3c6.9c3e0c", "9f59d3d4.abb41"]]
    ! }, {
    ! "id" : "3d026af5.dc1cc6",
    ! "type" : "function",
    ! "name" : "(detail) Daten extrahieren",
    ! "func" : "msg1 = {};\nmsg1.payload = msg.payload.station.name;\nmsg2 = {};\nmsg2.payload = msg.payload.station.diesel;\nmsg3 = {};\nmsg3.payload = msg.payload.station.isOpen;\nmsg4 = {};\nmsg4.payload = msg.payload.station.openUntil;\n\nreturn [msg1,msg2,msg3,msg4];",
    ! "outputs" : "4",
    ! "valid" : true,
    ! "x" : 475,
    ! "y" : 152,
    ! "z" : "231298ee.7d60a8",
    ! "wires" : [["abe59ec.d7f736", "1ef03bb6.425ebc"], ["abe59ec.d7f736", "4fe7115b.f9d01"], ["abe59ec.d7f736", "537d422c.f8774c"], ["abe59ec.d7f736"]]
    ! }, {
    ! "id" : "7c7cf3c6.9c3e0c",
    ! "type" : "http request",
    ! "name" : "Station 1 (Jet)",
    ! "method" : "GET",
    ! "ret" : "obj",
    ! "url" : "https://creativecommons.tankerkoenig.de … key=xxxxxx",
    ! "x" : 252,
    ! "y" : 128,
    ! "z" : "231298ee.7d60a8",
    ! "wires" : [["3d026af5.dc1cc6", "3fb7cdea.cf70ca"]]
    ! }, {
    ! "id" : "9f59d3d4.abb41",
    ! "type" : "http request",
    ! "name" : "Station 2 (AVIA)",
    ! "method" : "GET",
    ! "ret" : "obj",
    ! "url" : "https://creativecommons.tankerkoenig.de … key=xxxxxx",
    ! "x" : 252,
    ! "y" : 359,
    ! "z" : "231298ee.7d60a8",
    ! "wires" : [["f11bfd5d.2e79a8", "726f1740.a9e1"]]
    ! }, {
    ! "id" : "3fb7cdea.cf70ca",
    ! "type" : "file",
    ! "name" : "Station1",
    ! "filename" : "/opt/iobroker/Station1.txt",
    ! "appendNewline" : true,
    ! "overwriteFile" : "false",
    ! "x" : 420,
    ! "y" : 102,
    ! "z" : "231298ee.7d60a8",
    ! "wires" : []
    ! }, {
    ! "id" : "f11bfd5d.2e79a8",
    ! "type" : "file",
    ! "name" : "Station2",
    ! "filename" : "/opt/iobroker/Station2.txt",
    ! "appendNewline" : true,
    ! "overwriteFile" : "false",
    ! "x" : 417,
    ! "y" : 331,
    ! "z" : "231298ee.7d60a8",
    ! "wires" : []
    ! }, {
    ! "id" : "abe59ec.d7f736",
    ! "type" : "debug",
    ! "name" : "Ausgabe",
    ! "active" : true,
    ! "console" : "false",
    ! "complete" : "payload",
    ! "x" : 835,
    ! "y" : 97,
    ! "z" : "231298ee.7d60a8",
    ! "wires" : []
    ! }, {
    ! "id" : "1ef03bb6.425ebc",
    ! "type" : "ioBroker out",
    ! "name" : "Name der Sprit-Station JET",
    ! "topic" : "sprit_station_jet_name",
    ! "ack" : "true",
    ! "autoCreate" : "true",
    ! "x" : 893,
    ! "y" : 145,
    ! "z" : "231298ee.7d60a8",
    ! "wires" : []
    ! }, {
    ! "id" : "4fe7115b.f9d01",
    ! "type" : "ioBroker out",
    ! "name" : "Preis Diesel Sprit-Station JET",
    ! "topic" : "sprit_station_jet_price",
    ! "ack" : "true",
    ! "autoCreate" : "true",
    ! "x" : 899,
    ! "y" : 194,
    ! "z" : "231298ee.7d60a8",
    ! "wires" : []
    ! }, {
    ! "id" : "537d422c.f8774c",
    ! "type" : "ioBroker out",
    ! "name" : "Geöffnet Sprit-Station JET",
    ! "topic" : "sprit_station_jet_isOpen",
    ! "ack" : "true",
    ! "autoCreate" : "true",
    ! "x" : 889,
    ! "y" : 242,
    ! "z" : "231298ee.7d60a8",
    ! "wires" : []
    ! }, {
    ! "id" : "726f1740.a9e1",
    ! "type" : "function",
    ! "name" : "(detail) Daten extrahieren",
    ! "func" : "msg1 = {};\nmsg1.payload = msg.payload.station.name;\nmsg2 = {};\nmsg2.payload = msg.payload.station.diesel;\nmsg3 = {};\nmsg3.payload = msg.payload.station.isOpen;\nmsg4 = {};\nmsg4.payload = msg.payload.station.openUntil;\n\nreturn [msg1,msg2,msg3,msg4];",
    ! "outputs" : "4",
    ! "valid" : true,
    ! "x" : 475,
    ! "y" : 379,
    ! "z" : "231298ee.7d60a8",
    ! "wires" : [["18bbbe17.60caa2", "1c459f43.8d0bf1"], ["18bbbe17.60caa2", "ba0aedce.612798"], ["18bbbe17.60caa2", "1edff58b.bd120a"], ["18bbbe17.60caa2"]]
    ! }, {
    ! "id" : "18bbbe17.60caa2",
    ! "type" : "debug",
    ! "name" : "Ausgabe",
    ! "active" : true,
    ! "console" : "false",
    ! "complete" : "payload",
    ! "x" : 835,
    ! "y" : 324,
    ! "z" : "231298ee.7d60a8",
    ! "wires" : []
    ! }, {
    ! "id" : "1c459f43.8d0bf1",
    ! "type" : "ioBroker out",
    ! "name" : "Name der Sprit-Station AVIA",
    ! "topic" : "sprit_station_avia_name",
    ! "ack" : "true",
    ! "autoCreate" : "true",
    ! "x" : 893,
    ! "y" : 372,
    ! "z" : "231298ee.7d60a8",
    ! "wires" : []
    ! }, {
    ! "id" : "ba0aedce.612798",
    ! "type" : "ioBroker out",
    ! "name" : "Preis Diesel Sprit-Station AVIA",
    ! "topic" : "sprit_station_avia_price",
    ! "ack" : "true",
    ! "autoCreate" : "true",
    ! "x" : 899,
    ! "y" : 421,
    ! "z" : "231298ee.7d60a8",
    ! "wires" : []
    ! }, {
    ! "id" : "1edff58b.bd120a",
    ! "type" : "ioBroker out",
    ! "name" : "Geöffnet Sprit-Station AVIA",
    ! "topic" : "sprit_station_avia_isOpen",
    ! "ack" : "true",
    ! "autoCreate" : "true",
    ! "x" : 889,
    ! "y" : 469,
    ! "z" : "231298ee.7d60a8",
    ! "wires" : []
    ! }
    ! ]
    Der Key und die IDs müssen eingetragen werden

    Der Unterschied liegt in der GET-Abfrage:

    GET mit "https://creativecommons.tankerkoenig.de/json/detail.php + id + Key" # wird als JSON-Objekt übergeben

    Dann erfolgt die Funktion: (detail) Daten extrahieren

    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];
    
    

    Hier wird der Name und der Preis des Diesel extrahiert.

    Weiterhin ob die Tanke noch offen ist. (Hoffe das funktioniert entgegen der Beschreibung: isOpen

    Öffnungsstatus zum Zeitpunkt der Abfrage; immer true, da nur Informationen aktuell geöffneter Tankstellen zurückgegeben werden

    Die "Wie lange noch offen" habe ich noch nicht verstanden

    Infos hierzu stehen unter : https://creativecommons.tankerkoenig.de/#techInfo

    Die Objekte stehen nun zur Verfügung:

    315_node-red_sprit_datenpunkte.png

    Alle Datenpunkte werden bei veränderung aufgezeichnet

    Gruß

    derAuge

    1 Antwort Letzte Antwort
    0
    • eric2905E Offline
      eric2905E Offline
      eric2905
      schrieb am zuletzt editiert von
      #2

      Und wenn man dann noch das Pushover für node-red installiert, kann man sich die Werte aufs iPhone usw. schicken lassen (mache ich derzeit so).

      Wenn ich nachher zu Hause bin, poste ich noch was dazu.

      Momentan bastle ich nich daran, das mir nur Änderungen geschickt werden - momentan bekomme ich jede Stunde "meine" drei Tankstellen gemeldet.

      Roses are red, violets are blue,

      if I listen to metal, my neighbours do too

      1 Antwort Letzte Antwort
      0
      • derAugeD Offline
        derAugeD Offline
        derAuge
        schrieb am zuletzt editiert von
        #3

        @eric2905:

        Und wenn man dann noch das Pushover für node-red installiert, kann man sich die Werte aufs iPhone usw. schicken lassen (mache ich derzeit so).

        Wenn ich nachher zu Hause bin, poste ich noch was dazu.

        Momentan bastle ich nich daran, das mir nur Änderungen geschickt werden - momentan bekomme ich jede Stunde "meine" drei Tankstellen gemeldet. `

        Die Idee ist gut

        wie / wo kann ich zwei "payload" in einer funktion vergleichen?

        Über
        315_node-red_iobrokernode.png
        kann ich den aktuellen (letzten) Wert ja auslesen.

        Nun muss ich diesen mit dem neu ermittelten Wert vergleichen.

        Bei Veränderung erfolgt eine Aktion die den Namen der Tanke und den alten / neuen Spritpreist (per Mail) meldet

        315_node-red_sprit_test_.png

        Hat da jemand eine Idee / Anregung dazu? (wo kann man so etwas nachlesen / lernen?)

        Gruß

        derAuge

        1 Antwort Letzte Antwort
        0
        • eric2905E Offline
          eric2905E Offline
          eric2905
          schrieb am zuletzt editiert von
          #4

          Tante Google usw. haben mir bisher erzählt, das es keine zwei "Input" (Payload) gibt …. Suche auch noch.

          Heute Abend geht's weiter :-)

          Roses are red, violets are blue,

          if I listen to metal, my neighbours do too

          1 Antwort Letzte Antwort
          0
          • ruhr70R Offline
            ruhr70R Offline
            ruhr70
            schrieb am zuletzt editiert von
            #5

            in Java Skript einfach mit der anderen Variablen abgleichen?

            D.h. in der Funktion eine Abfrage

            Gesendet von iPhone mit Tapatalk

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

            1 Antwort Letzte Antwort
            0
            • eric2905E Offline
              eric2905E Offline
              eric2905
              schrieb am zuletzt editiert von
              #6

              Hab ich mir auch überlegt. Werde es nachher mal probieren.

              Roses are red, violets are blue,

              if I listen to metal, my neighbours do too

              1 Antwort Letzte Antwort
              0
              • eric2905E Offline
                eric2905E Offline
                eric2905
                schrieb am zuletzt editiert von
                #7

                @eric2905:

                Und wenn man dann noch das Pushover für node-red installiert, kann man sich die Werte aufs iPhone usw. schicken lassen (mache ich derzeit so). `
                Installation von Pushover für node-red:

                Infos stammen von hier : https://www.npmjs.com/package/node-red-node-pushover

                Davon ausgehend, dass das Installationsverzeichnis von ipBroker "/opt/iobroker" ist,

                in das Verzeichnis "/opt/iobroker/node_modules" wechseln

                Dort dann "npm install node-red-node-pushover" aufrufen

                Anschließend den Raspi (oder wo immer es läuft) neu starten (Neustart des node-red-Adapters hat bei mir nicht gefruchtet).

                cd /opt/iobroker/node_modules
                npm install node-red-node-pushover
                

                Anschließend steht in node-red dann ein neuer Output "pushover" zur Verfügung

                355_pushover_1.png

                In Pushover selber legt man sich ggf. einen neue Applikation (z.B. Tanken) an und kopiert sich die dazugehörige App-ID.

                Die Konfiguration des Pushover-Output ist relativ einfach:

                • Unter "Title" wird ein sprechender Name vergeben

                • Bei "Priority" kann die PrO der Meldung (-1 bis 2) eingesetzt werden

                • Bei "User key" wird der persönliche User key eingetragen

                • Bei "API token" die App-ID (siehe oben)

                • Und "Name" habe ich leer gelassen

                355_pushover_2.png

                Funktioniert bei mir tadellos.

                Gruß,

                Eric

                Roses are red, violets are blue,

                if I listen to metal, my neighbours do too

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


                Support us

                ioBroker
                Community Adapters
                Donate

                381

                Online

                32.6k

                Benutzer

                82.1k

                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