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 Tanker-König # feste Station

    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 Tanker-König # feste Station

    This topic has been deleted. Only users with topic management privileges can see it.
    • derAuge
      derAuge last edited by

      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 Reply Last reply Reply Quote 0
      • eric2905
        eric2905 last edited by

        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.

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

          @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 Reply Last reply Reply Quote 0
          • eric2905
            eric2905 last edited by

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

            Heute Abend geht's weiter 🙂

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

              in Java Skript einfach mit der anderen Variablen abgleichen?

              D.h. in der Funktion eine Abfrage

              Gesendet von iPhone mit Tapatalk

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

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

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

                  @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

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

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  661
                  Online

                  31.7k
                  Users

                  79.7k
                  Topics

                  1.3m
                  Posts

                  3
                  7
                  4150
                  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