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

  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.2k

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

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

Node-red: Spritpreise einlesen

Geplant Angeheftet Gesperrt Verschoben Node-Red
125 Beiträge 24 Kommentatoren 37.6k 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.
  • P Offline
    P Offline
    pix
    schrieb am zuletzt editiert von
    #92

    @Homoran:

    Hallo pix,
    @pix:

    theoretisch reicht es, das Wort "diesel" gegen das Wort "e5" [klein geschrieben] zu tauschen (im Bereich // Parameter festlegen). `
    so hatte ich es gemacht
    @Homoran:

    ein weiteres Script mit anderem namen "billigstes_e5" angelegt. Darin habe ich nur das Wort "diesel" gegen "e5" getauscht. `
    Sicherheitshalber dann in einer zweiten Instanz des javascript Adapters.

    Dann hätten die datenpunkte ja bis auf das js.1.Sprit.billigste_Tankstelle.1.Diesel.Preis_kurz für e5 statt der js.0.Sprit.billigste_Tankstelle.1.Diesel.Preis_kurz für echtes Diesel identisch angelegt werden müssen - oder?

    Die Punkte wurden jedoch nicht angelegt. `

    Im Skript wird ja gar nicht auf die Instanz eingegangen. Die ist eigentlich egal (bis auf die eine Stelle unten: Sprit aktualisieren. Da steht im Skript noch Instanz javascript.2.Sprit.aktualisieren, wobei man das "javascript.2." auch weglassen kann, da ja das Objekt in diesem Skript angelegt wurde).

    :idea: :lol:

    Beim Schreiben der Zeilen hier drüber fällt mir was ein:

    Wenn mit createState im Skript ein Objekt angelegt wird, kann das ja im gleichen Skript auch ohne die Instanz angesprochen werden. Wenn es allerdings in einem anderen Skript (egal ob gleiche oder fremde Instanz) angelegt wurde, muss der Adapter und die Instanznummer mit angegeben werden. Da diese ganze Latte von Objekte bereits im Diesel-Skript angelegt wurden

    // Objekte erstellen (mit Struktur)
    createState('Sprit.billigste_Tankstelle.Tabelle', {name: 'Billigste Tankstelle - Tabelle'});
    createState('Sprit.billigste_Tankstelle.json', {name: 'Billigste Tankstelle - JSON'});
    createState('Sprit.billigste_Tankstelle.1.Name', {name: 'Billigste Tankstelle - Name'});
    createState('Sprit.billigste_Tankstelle.1.Marke', {name: 'Billigste Tankstelle - Marke'});
    createState('Sprit.billigste_Tankstelle.1.ID', {name: 'Billigste Tankstelle - ID'});
    createState('Sprit.billigste_Tankstelle.1.Adresse.Strasse', {name: 'Billigste Tankstelle - Strasse'});
    createState('Sprit.billigste_Tankstelle.1.Adresse.Hausnummer', {name: 'Billigste Tankstelle - Hausnummer'});
    createState('Sprit.billigste_Tankstelle.1.Adresse.PLZ', {name: 'Billigste Tankstelle - PLZ'});
    createState('Sprit.billigste_Tankstelle.1.Adresse.Ort', {name: 'Billigste Tankstelle - Ort'});
    createState('Sprit.billigste_Tankstelle.1.Adresse.Laenge', {name: 'Billigste Tankstelle - geografische Laenge', unit: '°'});
    createState('Sprit.billigste_Tankstelle.1.Adresse.Breite', {name: 'Billigste Tankstelle - geografische Breite', unit: '°'});
    createState('Sprit.billigste_Tankstelle.1.Adresse.Entfernung', {name: 'Billigste Tankstelle - Entfernung', unit: 'km'});
    
    

    kann es sein sein, dass der Adapter muckt, wenn du die

    • nochmal anlegen willst oder

    • sie ohne die korrekte Adresse javascript.[Nummer].*** ansprechen willst.
      Daher mein quck&dirty Tipp:

    Das Diesel Skript löschen, alle Objekte Sprit.billigste_Tankstelle*** löschen

    Die Instanz mit dem E5-Skript neu starten (es werden alle Objekte neu angelegt).

    Wenn man beide Sorten will, dann muss man in einem Skript die Erstellung der o.g. Objekte entfernen.

    Klappt das dann?

    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 Antwort Letzte Antwort
    0
    • HomoranH Nicht stören
      HomoranH Nicht stören
      Homoran
      Global Moderator Administrators
      schrieb am zuletzt editiert von
      #93

      Nicht, dass wir aneinander vorbeireden.

      @pix:

      Im Skript wird ja gar nicht auf die Instanz eingegangen. `
      korrekt, aber ich ging davon aus, dass wenn die datenpunkte in einer Instanz bereits angelegt sind, es zu Problemen kommt.

      Deswegen 2. Instanz angelegt, Skriptkopie darin gestartet ("e5" statt "diesel" - alles andere gleich) - werden dann nicht die Datenpunkte mit der anderen Instanznummer vornedran neu angelegt??

      @pix:

      kann es sein sein, dass der Adapter muckt, wenn du die

      nochmal anlegen willst oder

      sie ohne die korrekte Adresse javascript.[Nummer].*** ansprechen willst. `
      ersteres hatte ich vermutet, zweites hatte ich als Lösung gesehen 😞

      @pix:

      Daher mein quck&dirty Tipp:

      Das Diesel Skript löschen, alle Objekte Sprit.billigste_Tankstelle*** löschen

      Die Instanz mit dem E5-Skript neu starten (es werden alle Objekte neu angelegt). `
      Werde ich ausprobieren, wenn ich es halbwegs verstanden hab 😉

      @pix:

      Wenn man beide Sorten will, dann muss man in einem Skript die Erstellung der o.g. Objekte entfernen. `
      …und damit hängst du mich dann wieder ab.

      warum werden bei 2 identischen Skripts in 2 verschiedenen Instanzen nicht alle Datenpunkte doppelt (nur in dem jeweiligen Ordner der Instanz) angelegt??

      @pix:

      Klappt das dann? `
      Ich werde berichten!

      Danke

      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 Antwort Letzte Antwort
      0
      • P Offline
        P Offline
        pix
        schrieb am zuletzt editiert von
        #94

        @Homoran:

        Nicht, dass wir aneinander vorbeireden.

        …

        warum werden bei 2 identischen Skripts in 2 verschiedenen Instanzen nicht alle Datenpunkte doppelt (nur in dem jeweiligen Ordner der Instanz) angelegt?? `
        Du hast natürlich Recht: bei zwei Skripten in zwei Instanzen werden natürlich auch alle Objekte zweimal angelegt.

        Kannst du mir mal dein Skript senden?

        Pix

        Gesendet von meinem iPhone mit Tapatalk

        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 Antwort Letzte Antwort
        0
        • HomoranH Nicht stören
          HomoranH Nicht stören
          Homoran
          Global Moderator Administrators
          schrieb am zuletzt editiert von
          #95

          Ich glaub's nicht!

          Ich hatte bereits alles gelöscht.

          jetzt nochmal javascript.1 aktiviert, das Script aus javascript.0 rüberkopiert und "diesel" gegen "e5" ausgetauscht.

          restart und die Werte sind da :!: :!:

          Dann kann ich mich ja mal ans zerhacken des Scripts begeben und die Variablennamen ändern, …...

          Danke und gute Nacht

          Rainer

          ... aber ich kapier's nicht

          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 Antwort Letzte Antwort
          0
          • S Offline
            S Offline
            Sven2013
            schrieb am zuletzt editiert von
            #96

            @pix:

            Hallo Sven,

            bin aus dem Urlaub wieder da und helfe, wie versprochen, weiter :lol:

            Vielen Dank dafür. ich hoffe dein Urlaub war sonnig und erholsam…

            @Sven2013:

            1. Wie kann ich die Tabelle formatieren? Abstand zwischen den Zeilen / Dicke Überschrift `
            Das ist hier angegeben:
            @pix:

            Kleine Variante:

            CODE: ALLES AUSWÄHLEN

            var formatierungen = ''; // CSS Formatierungen der Tabelle `
            Es sind CSS Formatierungen. Um das etwas besser zu bearbeiten kannst du auch im Widget Basic HTML die Formatierungen angeben:

            Das habe ich glaube ich verstanden. Ich habe den Code copiert und im widget beider Karteikarte CSS eingefügt. Jetzt habe ich eine Tabelle die jede zweite Zeile grau hinterlegt ist. Schonmal schicker als vorher. Kann ich hier auch die Spaltenbreiten ändern?

            Damit gilt das für die ganze Seite. Deshalb empfehle ich die Verwendung von Klassen oder ID (hier zB "sprit") für die einzelnen Tabellen, damit verschiedene Tabellen auf der Seite nicht alle gleich formatiert werden.

            var formatierungen = ''; // CSS Formatierungen der Tabelle 
                            var tabelle = formatierungen + ''; // ggf weitere Formatierungen
            
            oder eben im Widget analog dazu zum Beispiel für __th__:
             Du kannst für die Formatierung ein eigenes Widget anlegen oder die Formatierung mit in das Widget mit der Tablelle reinlegen, egal.
            
            Die Beiden oberen Absätze habe ich nicht verstanden, kannst du mir nochmal erklären was ich damit anfangen kann?
            
            ~~@Sven2013:~~ 
            
            > 2\. Kann ich auch Benzinpreise einlesen statt Diesel? Denn wenn ich den Wert diesel in super oder super E5 ändere hängt sich das script nur auf. `  
            
            Ja, das geht natürlich, da Tankerkönig auch die E5 und E10 Preise mitliefert. Statt "Diesel" wird das Wort "E5" bzw. "E10" verwendet.
            
            Vielen Dank das klappt super!
            
            Gruß Sven
            
            | Station | Straße | Preis |
            | --- | --- | --- |
            
            ```` ` 
            1 Antwort Letzte Antwort
            0
            • P Offline
              P Offline
              pix
              schrieb am zuletzt editiert von
              #97

              @Sven2013:

              Das habe ich glaube ich verstanden. Ich habe den Code copiert und im widget beider Karteikarte CSS eingefügt. Jetzt habe ich eine Tabelle die jede zweite Zeile grau hinterlegt ist. Schonmal schicker als vorher. Kann ich hier auch die Spaltenbreiten ändern?

              Damit gilt das für die ganze Seite. Deshalb empfehle ich die Verwendung von Klassen oder ID (hier zB "sprit") für die einzelnen Tabellen, damit verschiedene Tabellen auf der Seite nicht alle gleich formatiert werden.

              CODE: ALLES AUSWÄHLEN

              var formatierungen = ''; // CSS Formatierungen der Tabelle

              var tabelle = formatierungen + ''; // ggf weitere Formatierungen

              oder eben im Widget analog dazu zum Beispiel für th:

              CODE: ALLES AUSWÄHLEN

              Du kannst für die Formatierung ein eigenes Widget anlegen oder die Formatierung mit in das Widget mit der Tablelle reinlegen, egal.

              Die Beiden oberen Absätze habe ich nicht verstanden, kannst du mir nochmal erklären was ich damit anfangen kann?

              Hallo Sven,

              vielen Dank, der Urlaub war sehr schön.

              Die CSS Fomatierungen kann mann entweder direkt im Skript mit einbauen (wobei man bei jeder Änderung ja das Skript neu starten müsste) oder in VIS unterbringen.

              Letzteres bringt einige Vorteile:

              Du kannst die Formatierung in Attribute innerhalb eines Basic HTML Widgets schreiben. Da jedes Widget aller Views beim Laden der Projekts mitgeladen wird, werden auch die Formatierungen auf alle Elemente des Projekts angewendet. Das muss einem klar sein, wenn man an mehreren Stellen zB HTML Tabellen oder Listen verwendet.

              Ob du ein eigenes Basic HTML Widget verwendest oder die Style-Anweisungen in das gleiche Widget wie das Binding schreibst, spielt also keine Rolle.

              EDIT 18.9.15 (pix): Ich empfehle die Nutzung des CSS Editors in VIS

              Für die doppelte Höhe einer Reihe/Zeile geht zB

              tr {
                  line-height: 2em;
              }
              ````oder in diesem Falle
              
              

              #sprit tr {
              line-height: 2em;
              }

              
              Gruß
              
              Pix
              
              | Station | Straße | Preis |
              | --- | --- | --- | ` 

              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 Antwort Letzte Antwort
              0
              • S Offline
                S Offline
                Sven2013
                schrieb am zuletzt editiert von
                #98

                Hallo Pix,

                vielen Dank für deine Erklärung. ich habe das soweit verstanden. Allerdings habe ich noch eine Frage:

                Wo binde ich die CSS Formatierung im Widget genau ein?

                Gruß Sven

                1 Antwort Letzte Antwort
                0
                • P Offline
                  P Offline
                  pix
                  schrieb am zuletzt editiert von
                  #99

                  @Sven2013:

                  Wo binde ich die CSS Formatierung im Widget genau ein? `
                  Hallo Sven,

                  am besten im Basic HTML Widget. Hie ein Screenshot mit einer Beispiel-CSS-Anweisung: 261_bildschirmfoto_2015-09-17_um_02.01.43.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 Antwort Letzte Antwort
                  0
                  • S Offline
                    S Offline
                    Sven2013
                    schrieb am zuletzt editiert von
                    #100

                    Hallo Pix,

                    hab es hinbekommen :-)) Natürlich nur dank dir. 1000 Dank für deine Geduld.

                    Gruss Sven

                    1 Antwort Letzte Antwort
                    0
                    • F Offline
                      F Offline
                      Fitti
                      schrieb am zuletzt editiert von
                      #101

                      So, wollte auch das hier testen. Vorab - es geht nun, aber mit ein paar Startschwierigkeiten:

                      API besorgt und eingetragen. Ist nun alles mittlerweile etwas unübersichtlich geworden. Ich habe Diesel, also habe ich das Skript aus http://forum.iobroker.org/viewtopic.php?f=32&t=614&p=11530&hilit=Spritpreise+einlesen#p10482 genommen.

                      <u><size size="150">1.) Fehler:</size></u>

                      Im logging kommt nach dem Start des Skriptes der Fehler:

                      ! javascript-1 2015-09-18 18:07:49 error at script.js.Billigste_Tankstelle:48:18
                      ! javascript-1 2015-09-18 18:07:49 error script.js.Billigste_Tankstelle: TypeError: Cannot call method 'split' of undefined

                      Also scheint er Probleme beim Auslesen meiner Java-Instanz zu haben. Ich habe auch extra eine weitere angelegt - also java.1

                      Der betroffene Code ist:

                      var dpID = getIdByName('Billigste Tankstelle - JSON');
                      var teile = dpID.split('.');
                      

                      Wenn ich nun in den Objekten schaue sehe ich die angelegten Variable:
                      578_2015-09-18_1813.png

                      Warum klappt das nicht beim allerersten mal? Bei einem Neustart des Skriptes ging es dann.

                      <u><size size="150">2.) Fehler:</size></u>

                      Starte ich nun noch einmal JS.1 und das Skript neu, kommen folgende Fehler:

                      ! bananapi 2015-09-18 18:16:19 info host.bananapi Restart adapter system.adapter.javascript.1 because enabled
                      ! bananapi 2015-09-18 18:16:19 error host.bananapi instance system.adapter.javascript.1 terminated with code 6 (uncaught exception)
                      ! javascript.1 2015-09-18 18:16:19 error TypeError: Cannot read property '0' of undefined at Request._callback (script.js.Billigste_Tankstelle:82:71) at Request.self.callback (/opt/iobroker/node_modules/iobroker.javascript/node_modul
                      ! javascript.1 2015-09-18 18:16:19 error uncaught exception: Cannot read property '0' of undefined
                      ! javascript.1 2015-09-18 18:16:19 info javascript.1 script.js.Billigste_Tankstelle: Billigste Station im Radius von 5km
                      ! javascript.1 2015-09-18 18:16:19 info javascript.1 script.js.Billigste_Tankstelle: –------------ Spritpreise -----------
                      ! javascript.1 2015-09-18 18:16:19 info javascript.1 script.js.Billigste_Tankstelle: registered 1 subscription and 1 schedule
                      ! javascript.1 2015-09-18 18:16:19 info javascript.1 script.js.Billigste_Tankstelle: Spritpreis - Geokoordinaten aus Javascript-Adapter gelesen
                      ! javascript.1 2015-09-18 18:16:19 info javascript.1 Start javascript script.js.Billigste_Tankstelle
                      ! javascript.1 2015-09-18 18:16:18 info javascript.1 received all objects
                      ! javascript.1 2015-09-18 18:16:16 info javascript.1 received all states
                      ! javascript.1 2015-09-18 18:16:11 info javascript.1 requesting all objects
                      ! javascript.1 2015-09-18 18:16:11 info javascript.1 requesting all states
                      ! javascript.1 2015-09-18 18:16:11 info javascript.1 starting. Version 0.5.7 in /opt/iobroker/node_modules/iobroker.javascript
                      ! bananapi 2015-09-18 18:16:05 info host.bananapi instance system.adapter.javascript.1 started with pid 16610
                      ! bananapi 2015-09-18 18:15:35 info host.bananapi Restart adapter system.adapter.javascript.1 because enabled
                      ! bananapi 2015-09-18 18:15:35 error host.bananapi instance system.adapter.javascript.1 terminated with code 6 (uncaught exception)
                      ! javascript.1 2015-09-18 18:15:35 error uncaught exception: Cannot read property '0' of undefined
                      ! javascript.1 2015-09-18 18:15:35 info javascript.1 script.js.Billigste_Tankstelle: Billigste Station im Radius von 5km
                      ! javascript.1 2015-09-18 18:15:35 info javascript.1 script.js.Billigste_Tankstelle: -------------- Spritpreise -----------
                      ! javascript.1 2015-09-18 18:15:34 info javascript.1 script.js.Billigste_Tankstelle: registered 1 subscription and 1 schedule
                      ! javascript.1 2015-09-18 18:15:34 info javascript.1 script.js.Billigste_Tankstelle: Spritpreis - Geokoordinaten aus Javascript-Adapter gelesen
                      ! javascript.1 2015-09-18 18:15:34 info javascript.1 Start javascript script.js.Billigste_Tankstelle
                      ! javascript.1 2015-09-18 18:15:33 info javascript.1 received all objects
                      ! javascript.1 2015-09-18 18:15:30 info javascript.1 received all states
                      ! javascript.1 2015-09-18 18:15:25 info javascript.1 requesting all objects
                      ! javascript.1 2015-09-18 18:15:25 info javascript.1 requesting all states
                      ! javascript.1 2015-09-18 18:15:25 info javascript.1 starting. Version 0.5.7 in /opt/iobroker/node_modules/iobroker.javascript

                      Hier fehlten schlicht meine Koordinaten in der js.1.

                      Der Code

                      if (geo && geo.native) {
                          breite = geo.native.latitude;
                          laenge = geo.native.longitude;
                          if (logging) log('Spritpreis - Geokoordinaten aus Javascript-Adapter gelesen');
                      } else { // falls nicht in den Adaptereinstellungen festgelegt, manuelle Werte
                          breite = '48';
                          laenge = '11';
                          if (logging) log('Spritpreis - Geokoordinaten manuell eingetragen');
                      }
                      

                      scheint also nicht zu funktionieren - es wird nicht sauber die leeren Einträge abgefangen.

                      <u>Eine Bitte vielleicht noch an pix:</u>

                      Kannst Du nicht im ersten Posting die fertigen Scripte eintragen - bei über 100 Einträgen steigt man da kaum noch durch. :?

                      Aber viel wichtiger: Danke für die coole Arbeit!

                      So long,

                      Fitti

                      "Es wird die Zeit kommen, da ihr euch entscheiden müsst zwischen dem, was richtig ist, und dem, was bequem ist."
                      Plural von Status ist auch Status!

                      1 Antwort Letzte Antwort
                      0
                      • P Offline
                        P Offline
                        pix
                        schrieb am zuletzt editiert von
                        #102

                        @Fitti:

                        Warum klappt das nicht beim allerersten mal? Bei einem Neustart des Skriptes ging es dann. `
                        Wenn ich das wüsste, würde ich nicht jedes mal wieder ansagen, die Instanz neu zu starten. Also ist der 1. Fehler kein Fehler, mehr ein Stolperstein.
                        @Sven2013:

                        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.
                        @Fitti:

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

                        • Das Ganze ist so gewachsen. Der erste Code wird veröffentlicht und von allen beteiligten Forumsmitglieder diskutiert, verbessert und in verschiedene Richtungen, nach verschiedenen Bedürfnissen verändert und meist verbessert.

                        • Das ist kein Adapter mit Garantie. Es ist ein Skript, ein Vorschlag. Es gibt immer viele Wege. Mal macht es Sinn, den einen sauberen Weg zu gehen, mal geht man den schnellen und schmutzigen und mal benutzt man einfach ein Schnipsel, den man selbst noch nicht ganz kapiert.

                        • Die Sammlung fertiger (funktionierender) Skripte liegt in der Doku. Solange ein Skript nicht ausreichend gut durchläuft, sollte es aber nicht dorthin. Das erzeugt mehr Verwirrung als Durchblick.

                        @Fitti:

                        Aber viel wichtiger: Danke für die coole Arbeit! `
                        Das freut mich sehr. Danke.

                        😛

                        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 Antwort Letzte Antwort
                        0
                        • F Offline
                          F Offline
                          Fitti
                          schrieb am zuletzt editiert von
                          #103

                          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
                          
                          

                          "Es wird die Zeit kommen, da ihr euch entscheiden müsst zwischen dem, was richtig ist, und dem, was bequem ist."
                          Plural von Status ist auch Status!

                          1 Antwort Letzte Antwort
                          0
                          • P Offline
                            P Offline
                            pix
                            schrieb am zuletzt editiert von
                            #104

                            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

                            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 Antwort Letzte Antwort
                            0
                            • F Offline
                              F Offline
                              Fitti
                              schrieb am zuletzt editiert von
                              #105

                              @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

                              "Es wird die Zeit kommen, da ihr euch entscheiden müsst zwischen dem, was richtig ist, und dem, was bequem ist."
                              Plural von Status ist auch Status!

                              1 Antwort Letzte Antwort
                              0
                              • paul53P Offline
                                paul53P Offline
                                paul53
                                schrieb am zuletzt editiert von
                                #106

                                @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.

                                Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                1 Antwort Letzte Antwort
                                0
                                • F Offline
                                  F Offline
                                  Fritzo81
                                  schrieb am zuletzt editiert von
                                  #107

                                  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 Antwort Letzte Antwort
                                  0
                                  • L Offline
                                    L Offline
                                    looxer01
                                    schrieb am zuletzt editiert von
                                    #108

                                    @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 Antwort Letzte Antwort
                                    0
                                    • F Offline
                                      F Offline
                                      Fritzo81
                                      schrieb am zuletzt editiert von
                                      #109

                                      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 Antwort Letzte Antwort
                                      0
                                      • L Offline
                                        L Offline
                                        looxer01
                                        schrieb am zuletzt editiert von
                                        #110

                                        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 Antwort Letzte Antwort
                                        0
                                        • D Offline
                                          D Offline
                                          Defaekator
                                          schrieb am zuletzt editiert von
                                          #111

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

                                          557

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          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