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.
    • F
      Fitti last edited by

      Hi Pix,

      bezüglich der Styles Anpassung wie http://forum.iobroker.org/viewtopic.php?f=32&t=614&start=80#p11465 beschrieben:

      Das funktioniert nicht bei mir.

      Nutze ich die Standard Einstellungen in den Widget-Eeinstellungen funktioniert es.

      Ich habe im JS Code die Tabelle mit der ID sprit versehen:

      var tabelle = formatierungen + '
      
      Im Widget gemäß Deines Bildes die ID aufgerufen und verschiedenste Tests gemacht. Leider alle ohne Erfolg.
      

      {javascript.1.Sprit.billigste_Tankstelle.Tabelle}

      
      Frage mich also, was ich falsch mache, da es ja anscheinend bei euch geht.
      
      Viele Grüße,
      
      Fitti
      
      
      1 Reply Last reply Reply Quote 0
      • P
        pix last edited by

        Hallo Fitti,

        ich habe die Vorgehensweise "Platzierung der Styling Anweisungen" noch einmal überprüft.

        Du hast recht, es funktioniert nicht immer. Ich bin darauf gekommen, es so wie oben beschrieben zu machne, da ich beim Parsen der Seite eines Verkehrsbetriebs gleich die ganze Tabelle inkl. HTML-Anweisungen in ioBroker übernommen habe. Da funktionierten Style Anweisungen im Basic HTML Widget. Sorry, wenn ich Verwirrung gestiftet habe.

        Also: Style Anweisungen gehören in den CSS Reiter rechts. Am besten unter Projekt, nicht unter global. Dennoch macht es weiterhin Sinn, einzelne Tabellen mit durch Klassen/ID zu unterscheiden. 261_bildschirmfoto_2015-09-18_um_19.50.08.jpg
        Ich nehme hiermit auch zurück, dass ich http://forum.iobroker.org/viewtopic.php?f=30&t=1371&p=11501#p11501 hätte. Das war mein Fehler. :shock: Alles ist noch da

        Letztlich ist der CSS Editor dafür ja da. Und bunt ist er auch 😄

        Gruß

        Pix

        1 Reply Last reply Reply Quote 0
        • F
          Fitti last edited by

          @pix:

          @Fitti:

          scheint also nicht zu funktionieren - es wird nicht sauber die leeren Einträge abgefangen. Der Code funktioniert, aber nur, wenn die Daten in den Javascript Einstellungen hinterlegt sind. Deshalb habe ich den Code dahin geändert. Im alten Code wurden die Variablen noch manuell befüllt.
          Hmm - verstehe ich hier was falsch?

          Die GeoKoords-Werte waren ja nicht gesetzt. Mit den JS-Zeilen

          var geo = getObject('system.adapter.javascript.' + teile[1]);
          if (geo && geo.native) {
              breite = geo.native.latitude;
              laenge = geo.native.longitude;
              if (logging) log('Spritpreis - Geokoordinaten aus Javascript-Adapter gelesen');
          

          Wird doch aber genau abgefragt, ob diese gesetzt sind. Erst dann dürfte er in die if Schleife rein. Oder was ist .native genau?

          Wenn .native doch noch irgendwas anderes und somit eigentlich immer true ist, würde ich den code so schreiben:

          ...
          if (geo && geo.native && geo.native.latitude && geo.native.longitude) {
              ...
          

          oder ein

          ...
          if (geo && geo.native && (geo.native.latitude > 1) && (geo.native.longitude > 1)) {
              ...
          

          Bin mir nicht sicher, ob es auch mit floats geht. Aber Du weißt ja was ich meine. 😄

          @pix:

          @Fitti:

          Kannst Du nicht im ersten Posting die fertigen Scripte eintragen `
          Nee, das kann ich leider nicht. Denn

          … `
          Okay, das kann man akzeptieren. Ich habe es halt mit anderen Foren verglichen, wo wir dann doch sozusagen die letzten "Stände" - durchaus mehrere Varianten- immer im ersten Thread eingetragen haben. Somit wurde etwas die Nachfragen reduziert, da kaum einer noch hundert Einträge durchackert. Dann nimmt man doch das alte Skript (der Neue Leser, der interessiert einsteigt), wo noch der eine oder andere Fehler drinnen ist und schon gab es kuddelmuddel, da weiter hinten dann teilweise die Fragen auf die letzte Variante (die, die bereits von Anfang an dabei sind) oder die erste Variante (halt der Neueinsteiger) genommen wurde.

          Klar wurde der erste Eintrag länger - aber ich empfinde es durchaus als lesbarer. War halt nur so eine Idee… 8-)

          Viele Grüße,

          Fitti

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

            @Fitti:

            würde ich den code so schreiben:

            ...
            if (geo && geo.native && geo.native.latitude && geo.native.longitude) {
                ...
            ```` `  
            

            Ja, so muss geprüft werden, ob Werte eingtragen sind.

            ...
            if (geo.native.latitude && geo.native.longitude) {
                ...
            

            sollte auch funktionieren.

            1 Reply Last reply Reply Quote 0
            • F
              Fritzo81 last edited by

              Hallo,

              ich hätte da mal eine Frage, hab den ganzen Nachmittag schon rumprobiert,

              was und wo muß ich in ein Wiget eingeben, damit mir die Preise angezeigt werden? (Welches Widget)

              Gruß Fritzo

              1 Reply Last reply Reply Quote 0
              • L
                looxer01 last edited by

                @Fritzo81:

                was und wo muß ich in ein Wiget eingeben, damit mir die Preise angezeigt werden? (Welches Widget) `

                Hi,

                also ich habe es sehr einfach gehalten und ein Basic HTML Widget verwendet

                Du schreibst ja mit Node Red in ein ioBroker object. Die objekt-ID des objektes gibst du dort unter ALLGEMEIN ein.

                sieht dann so aus bei mir:

                305_benzinpreis.jpg

                1 Reply Last reply Reply Quote 0
                • F
                  Fritzo81 last edited by

                  Hi looxer,

                  ich hab beides probiert, mit node-red und mit java.

                  Bei java bekomme ich ja eine ID erstellt, bei node hab ich die nicht gefunden.

                  Kannst du mal dein Widget exportieren?

                  1 Reply Last reply Reply Quote 0
                  • L
                    looxer01 last edited by

                    bei Node Red ebenfalls- :
                    305_benzinpreis2.jpg

                    nur solltest du dann eine sinnvole object-ID migeben. z.B.

                    nodered.0.Bezinzpreise.Aral_Diesel

                    nodered.0.Bezinzpreise.Aral_E10

                    nodered.0.Bezinzpreise.Aral_E5

                    etc (habe ich zwar noch nicht getestet, sollte aber gehen)

                    oder wie auch immer. Das Widget was ich da habe ist ja nur fuer den Preis.

                    Zusaetzlich dann noch Texte und das jeweilige Image.

                    Das Widget mit den Preisen ist ein Basic HTML. Da traegst du einfach die vorher definierte ID ein

                    unter Javarscript sähe das so aus, was du uebrigens auch machen kannst. Erst in javascript die create states und die IDs in rode ned eingeben. Ist aber ein Umweg

                    createState('Benzinpreise.Aral_Diesel',0);

                    createState('Benzinpreise.Aral_E10',0);

                    createState('Benzinpreise.Aral_E5',0);

                    vG Looxer

                    1 Reply Last reply Reply Quote 0
                    • D
                      Defaekator last edited by

                      Hallo zusammen und vielen Dank für die vielen Skripte und Flows,

                      ich würde gerne eine ähnliche View anlegen wie ruhr70 mit den 4 Tankstellen inkl. Markenzeichen und zusätzlichen günstigsten Tanke.

                      Habe den Flow mit Tankstellen im Umkreis importiert, allerdings scheitert es bei mir momentan schon daran, was bei http request bei url eingetragen werden muss (api und tankstellen ID? aber wie genau?)

                      Wäre sehr dankbar für einen kleinen Schubs in die richtige Richtung.

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

                        @Jens1809:

                        Hi,

                        auch wenn es vielleicht nicht mehr ganz aktuell ist aber hier ein etwas anderer Lösungsansatz von mir.

                        Ich mag nicht tausend verschiedene Elemente im Flow zu haben und habe deswegen die ganzen Teile in eine Funktion gepackt die mir einen HTML Table in die Variable schreibt und ich nur noch im VIS die Variable einem HTML Element zuweisen muss. Da ich das Design von Tankekoenig.de als gelungen empfinde habe ich es gleich noch übernommen für die Liste.

                        Das ganze sieht dann so aus:

                        filename="vis.JPG" index="0">~~ `

                        Hi,

                        ich versuche gerade eine Kombination aus verschiedenen Abfragen zu basteln. Auf der Übersichtsseite meines Tablets reicht mir eine "kurze" Tabelle der Tankstellen. Wenn ich dann auf das entprechende Widget Tippe möchte ich das ein neuer View sich öffnet auf dem ich dann diese Abfrage sehen kann.

                        Den Wechsel zu dem Subview habe ich hinbekommen. Aber welches Widget nutze ich am besten zur Darstellung der Abfrage? Cool wäre es auch wenn beim Drücken des Widget auf der Übersichtsseite Zeitgleich die Anfrage aktualisiert werden würde. Wie kann ich das zwischen Widget und NodeRed verknüpfen?

                        Danke für eure Hilfe

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

                          @Defaekator:

                          Cool wäre es auch wenn beim Drücken des Widget auf der Übersichtsseite Zeitgleich die Anfrage aktualisiert werden würde. `
                          Das wünsche ich mir auch, ist aber bisher nicht möglich. Die Views und Unterviews werden alle gleichzeitig vom Browser geladen und jeweils nur auf Kommando einzeln gezeigt. Ein zweiter Auslöser für das Aktualisieren des Skriptes ist also immer noch nötig. Ich finde aber, das ist nicht zuviel der Mühe. 😉

                          @wendy2702:

                          Aber welches Widget nutze ich am besten zur Darstellung der Abfrage? `
                          Das Basic HTML Widget für die Darstellung der Tabelle. Die CSS-Formatierungen gehören in den Reiter CSS/Projekt, zu finden neben den Widget Einstellungen rechts im VIS Editor.

                          Ich nutze das Widget so mit einem Binding

                          [{"tpl":"tplHtml","data":{"visibility-cond":"==","visibility-val":1,"refreshInterval":"0","name":"Sprit Tabelle billigste Tankstellen","html":"{javascript.2.Sprit.billigste_Tankstelle.Tabelle}"},"style":{"left":"70px","top":"5px","color":"rgba(250,250,250,0.9)","font-family":"","font-size":"12px","width":"250px","height":"auto","z-index":"21"},"widgetSet":"basic"}]
                          

                          Gruß

                          Pix

                          1 Reply Last reply Reply Quote 0
                          • H
                            HKF8770 last edited by

                            Hallo,

                            anbei meine Abfrage bei Tankerkönig

                            https://creativecommons.tankerkoenig.de/json/list.php?lat=48.5932300&lng=9.7136800&&rad=5&sort=price&type=diesel&isOpen=true&apikey=29ba20ab-1102-9349-fdbc-0530b920441a
                            

                            Ich bekomme dann folgende Antwort

                            {"license":"CC BY 4.0 -  http:\/\/creativecommons.tankerkoenig.de","data":"MTS-K","stations":[{"name":"TOTAL DEGGINGEN","lat":48.59667,"lng":9.715833,"brand":"TOTAL","dist":0.4,"price":1.069,"id":"f9dbc0e3-cb97-4f88-9678-7d351c7015b7","street":"KOENIGSTR.","houseNumber":"52","postCode":73326,"place":"DEGGINGEN","isOpen":false},{"name":"Aral Tankstelle","lat":48.5816536,"lng":9.684212,"brand":"ARAL","dist":2.5,"price":1.069,"id":"ad7a3c98-50c8-4d97-880d-172d4a0cfca8","street":"Bahnhofstra\u00dfe","houseNumber":"4-8","postCode":73342,"place":"Bad Ditzenbach","isOpen":false},{"name":"AVIA Station","lat":48.6057,"lng":9.76001,"brand":"AVIA","dist":3.7,"price":1.069,"id":"57d278b6-8b14-4b2a-b9a7-b831484bff68","street":"Robert-Bosch-Stra\u00dfe","houseNumber":"2","postCode":73337,"place":"Bad \u00dcberkingen-Hausen","isOpen":true}]}
                            

                            soweit so gut. Aber ich möchte hier nur die Tankstellen angezeigt bekommen die auch auf sind, also "isOpen":true

                            Wie mache ich das? Habe versuchshalber in der Abfrage schon "&isOpen=true" ergänzt, bringt aber nichts.

                            Hat einer ne Idee oder das schon mal realisiert

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

                              Hallo,

                              kannst du bitte mal dein Skript posten? Es gab so viele Versionen im Forum, dass ich jetzt nicht einfach mit einem Neuen kommen will. Zeig mir deins und ich baue die Änderung ein.

                              Gruß

                              Pix

                              1 Reply Last reply Reply Quote 0
                              • L
                                looxer01 last edited by

                                Hi Pix,

                                mein Node red BenzinFlow funzt gerade nicht. Ich bekomme folgende Meldung:

                                ode-red-0 2016-02-01 16:50:07 error 1 Feb 16:50:07 - [error] [http request:Tankerkoenig ARAL API abfragen] TypeError: Object # has no method 'handleStatus'

                                weisst du was das sein koennte ?

                                (werde wohl mal auf script umstellen)

                                vG Looxer

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

                                  Hallo Looxer,

                                  habe node-red schon länger nicht mehr in Betrieb. Also keine Ahnung, tut mir leid.

                                  Gruß,

                                  Pix

                                  1 Reply Last reply Reply Quote 0
                                  • L
                                    looxer01 last edited by

                                    na klar, ich werde auch umstellen. Bringt nix mit mehreren Baustellen.

                                    Danke dir.

                                    Looxer

                                    1 Reply Last reply Reply Quote 0
                                    • ?
                                      A Former User last edited by

                                      Hallo zusammen,

                                      erstmal ein riesen LOB das Script ist der Hammer…..

                                      Ich habe allerdings ein paar Fragen dazu 🙂

                                      Und ich habe erst 3 Tage Kenntnisse mit iobroker 😉

                                      @all:

                                      Wie bekomme ich es hin, das ich alle Benzinsorten angezeigt bekomme?

                                      Ich habe bereits zwei Scripte im iobroker einmal mit Diesel und einmal mit E5 nur wie rufe ich die parallel ab?

                                      Wie kann ich spezielle Tankstellen in der Umgebung abfragen?

                                      @Ruhr70:

                                      Würdest du mir/uns dein Widget zur Verfügung stellen? Finde das richtig gut 🙂

                                      Hoffe auf Antworten

                                      Liebe grüße

                                      louski

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

                                        @louski:

                                        @Ruhr70:

                                        Würdest du mir/uns dein Widget zur Verfügung stellen? Finde das richtig gut 🙂 `

                                        Oh ja da bin ich auch drum verlegen zumal ich grad den Durchblick verloren habe 😞

                                        Java Script läuft und Werte kommen. Json Objekt und Tabellenobjekt wurde angelegt und gefüllt.

                                        Nur wie zeige ich mir das nun an im vis ? Welches Widget welchen Code. Da habe ich den Überblick verloren 😞

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

                                          Schnell von unterwegs: Tabelle kann im Basic HTML Widget angezeigt werden.

                                          Gruß

                                          Pix

                                          Gesendet mit Tapatalk

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

                                            Und was trage ich wo in dem Widget ein?

                                            Unter html was ? Wenn ja was ?

                                            UPDATE:

                                            Bin drauf reingefallen. Habe unter html den javascript-Adapter eingetragen aber nix wurde mir angezeigt –> bis ich mal aufs View gegangen bin und siehe da alles da nur wirds im Editor anscheinend nicht angezeigt 🙂
                                            9054_menueansicht.png

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            1.1k
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

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