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. Visualisierung
  4. History Adapter richtig konfiguriert?

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    10
    1
    317

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.5k

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

History Adapter richtig konfiguriert?

Geplant Angeheftet Gesperrt Verschoben Visualisierung
16 Beiträge 5 Kommentatoren 2.4k 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
    #2

    Hallo Rainer,

    die 0 ist korrekt so. Liegt am Adapter. Bei jedem Aufruf wird die Öffnungszeit geprüft. Wenn zu, dann 0.

    Damit verhindere ich, dass ein alter Preis von Vorabend angezeigt wird.

    Seltsam nur, dass da ein einzelner Wert in der Nacht empfangen wurde.

    Ack False muss ich prüfen.

    Pix

    Gesendet 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
      #3

      Hallo pix,

      Danke für die schnelle Antwort.

      Diese Tankstelle hat 24 Stunden geöffnet. Es handelt sich hier nicht um die 0 für geschlossen.

      Die störenden Nullen sind bei jeder Abfrage, bei der der vorhandene Preis sich nicht ändert.

      Ich denke daher, dass es ein Problem des Historyadapters ist.

      Auch das fehlende ack würde in diese Richtung passen.

      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 Antwort Letzte Antwort
      0
      • BluefoxB Offline
        BluefoxB Offline
        Bluefox
        schrieb am zuletzt editiert von
        #4

        @Homoran:

        Hallo pix,

        Danke für die schnelle Antwort.

        Diese Tankstelle hat 24 Stunden geöffnet. Es handelt sich hier nicht um die 0 für geschlossen.

        Die störenden Nullen sind bei jeder Abfrage, bei der der vorhandene Preis sich nicht ändert.

        Ich denke daher, dass es ein Problem des Historyadapters ist.

        Auch das fehlende ack würde in diese Richtung passen.

        Gruß

        Rainer `
        Kannst du die Ausgaben von influxdb und history vergleichen?

        1 Antwort Letzte Antwort
        0
        • HomoranH Nicht stören
          HomoranH Nicht stören
          Homoran
          Global Moderator Administrators
          schrieb am zuletzt editiert von
          #5

          Die sind identisch (gewesen).

          Im Moment ist aber influxdb deaktiviert

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

            @pix:

            Bei jedem Aufruf wird die Öffnungszeit geprüft. Wenn zu, dann 0. `
            Ich zitiere mich mal selbst und erkläre es gleich zu Unfug. Stimmt nicht, falsch erinnert:

            Der Code, der das macht, ist dieser:

            ! ```
            `// alle Stationen durchgehen
            for (var i = 0; i < 10; i++) {
            var stationid = adapter.config.stationsarray[i][0]; // sowas "a7cdd9cf-b467-4aac-8eab-d662f082511e"
            var stationname = adapter.config.stationsarray[i][1]; // sowas "Esso Hamburg Flughafenstraße"

                                // hier alle States für Status und Preise leeren (0.00 oder 0), falls nicht alle 10 Felder ausgefüllt sind (ohne ack true)
                                adapter.setState('stations.' + i + '.status',      '');
                                adapter.setState('stations.' + i + '.e5.feed',      0);
                                adapter.setState('stations.' + i + '.e5.short',     0);
                                adapter.setState('stations.' + i + '.e5.3rd',       0);
                                adapter.setState('stations.' + i + '.e5.combined', "");
                                adapter.setState('stations.' + i + '.e10.feed',     0);
                                adapter.setState('stations.' + i + '.e10.short',    0);
                                adapter.setState('stations.' + i + '.e10.3rd',      0);
                                adapter.setState('stations.' + i + '.e10.combined', "");
                                adapter.setState('stations.' + i + '.diesel.feed',  0);
                                adapter.setState('stations.' + i + '.diesel.short', 0);
                                adapter.setState('stations.' + i + '.diesel.3rd',   0);
                                adapter.setState('stations.' + i + '.diesel.combined', "");
            
                                if (stationid.length == 36) { // wenn StationID bekannt, also Settings-Feld gefüllt
                                    adapter.log.debug('Station ' + stationid + ' ' + stationname + ' wird bearbeitet ...');
                                    var status = result.prices[stationid].status;
                                    // Namen und Status in jedem Fall schreiben
                                    adapter.setState('stations.' + i + '.name', {ack: true, val: stationname});
                                    adapter.setState('stations.' + i + '.status', {ack: true, val: status});
                                    // status checken
                                    if (status.indexOf("not found") != -1) {
                                        adapter.log.warn('Station ' + stationid + ' nicht gefunden');
                                        adapter.setState('stations.' + i + '.e5.combined',     'nicht gefunden');
                                        adapter.setState('stations.' + i + '.e10.combined',    'nicht gefunden');
                                        adapter.setState('stations.' + i + '.diesel.combined', 'nicht gefunden');
                                    } else if (status.indexOf("closed") != -1) {
                                        adapter.log.debug('Station ' + stationid + ' ' + stationname + ' geschlossen');
                                        adapter.setState('stations.' + i + '.e5.combined',     'geschlossen');
                                        adapter.setState('stations.' + i + '.e10.combined',    'geschlossen');
                                        adapter.setState('stations.' + i + '.diesel.combined', 'geschlossen');
            
                                    } else if (status.indexOf("open") != -1) {
            
                                        // wenn false im Preis für e5 steht, ... 0 bleibt stehen
                                        if (!result.prices[stationid].e5) {
                                            adapter.log.debug('In Station ' + stationid + ' ' + stationname + ' kein E5 vefügbar'); 
                                        } else { 
                                            //adapter.log.debug('In Station ' + stationid + ' ' + stationname + ' kostet E5: ' + result.prices[stationid].e5 + '€');
                                            adapter.setState('stations.' + i + '.e5.feed',  {ack: true, val: parseFloat(result.prices[stationid].e5)});
                                            adapter.setState('stations.' + i + '.e5.short', {ack: true, val: cutPrice(result.prices[stationid].e5).priceshort});// zweistellig
                                            adapter.setState('stations.' + i + '.e5.3rd',   {ack: true, val: cutPrice(result.prices[stationid].e5).price3rd});// dritte stelle
                                            adapter.setState('stations.' + i + '.e5.combined', '' + cutPrice(result.prices[stationid].e5).priceshort + '<sup style="font-size: 50%">' + cutPrice(result.prices[stationid].e5).price3rd + '</sup> €');
            
                                            // Niedrigsten Preis E5 ermitteln
                                            adapter.log.debug('E5-Preis-Feld ' +  i + ' gefüllt');
                                            if ( parseFloat(result.prices[stationid].e5) < parseFloat(result.prices[cheapest_e5_stationid].e5) ) {
                                                cheapest_e5 = i;
                                                cheapest_e5_stationid = adapter.config.stationsarray[i][0];
                                                adapter.log.debug('Billigster E5 bisher: ' + cheapest_e5 + '. Tankstelle' );
                                            } else adapter.log.debug('E5: Station ' + i + ' teurer als bisher billigste Station ' + cheapest_e5);
                                        }
            
                                        if (!result.prices[stationid].e10) {
                                            adapter.log.debug('In Station ' + stationid + ' ' + stationname + ' kein E10 vefügbar'); 
                                        } else { 
                                            //adapter.log.debug('In Station ' + stationid + ' ' + stationname + ' kostet E10: ' + result.prices[stationid].e10 + '€');
                                            adapter.setState('stations.' + i + '.e10.feed', {ack: true, val: parseFloat(result.prices[stationid].e10)});
                                            adapter.setState('stations.' + i + '.e10.short', {ack: true, val: cutPrice(result.prices[stationid].e10).priceshort});
                                            adapter.setState('stations.' + i + '.e10.3rd', {ack: true, val: cutPrice(result.prices[stationid].e10).price3rd});
                                            adapter.setState('stations.' + i + '.e10.combined', '' + cutPrice(result.prices[stationid].e10).priceshort + '<sup style="font-size: 50%">' + cutPrice(result.prices[stationid].e10).price3rd + '</sup> €');
            
                                            /// Niedrigsten Preis E10 ermitteln
                                            adapter.log.debug('E10-Preis-Feld ' +  i + ' gefüllt');
                                            if ( parseFloat(result.prices[stationid].e10) < parseFloat(result.prices[cheapest_e10_stationid].e10) ) {
                                                cheapest_e10 = i;
                                                cheapest_e10_stationid = adapter.config.stationsarray[i][0];
                                                adapter.log.debug('Billigster E10 bisher: ' + cheapest_e10 + '. Tankstelle' );
                                            } else adapter.log.debug('E10: Station ' + i + ' teurer als bisher billigste Station ' + cheapest_e10);
                                        }
            
                                        if (!result.prices[stationid].diesel) {
                                            adapter.log.debug('In Station ' + stationid + ' ' + stationname + ' kein Diesel vefügbar'); 
                                        } else { 
                                            //adapter.log.debug('In Station ' + stationid + ' ' + stationname + ' kostet Diesel: ' + result.prices[stationid].diesel + '€');
                                            adapter.setState('stations.' + i + '.diesel.feed', {ack: true, val: parseFloat(result.prices[stationid].diesel)});
                                            adapter.setState('stations.' + i + '.diesel.short', {ack: true, val: cutPrice(result.prices[stationid].diesel).priceshort});
                                            adapter.setState('stations.' + i + '.diesel.3rd', {ack: true, val: cutPrice(result.prices[stationid].diesel).price3rd});
                                            adapter.setState('stations.' + i + '.diesel.combined', '' + cutPrice(result.prices[stationid].diesel).priceshort + '<sup style="font-size: 50%">' + cutPrice(result.prices[stationid].diesel).price3rd + '</sup> €');
            
                                            // Niedrigsten Preis Diesel ermitteln
                                            adapter.log.debug('Diesel-Preis-Feld ' +  i + ' gefüllt');
                                            if ( parseFloat(result.prices[stationid].diesel) < parseFloat(result.prices[cheapest_diesel_stationid].diesel) ) {
                                                cheapest_diesel = i;
                                                cheapest_diesel_stationid = adapter.config.stationsarray[i][0];
                                                adapter.log.debug('Billigster Diesel bisher: ' + cheapest_diesel + '. Tankstelle' );
                                            } else adapter.log.debug('Diesel: Station ' + i + ' teurer als bisher billigste Station ' + cheapest_diesel);
                                        }
                                    } // Ende Status "open"
                                } // Ende Station
                            } // Ende Schleife`
            

            Der Grund war der gleiche: Sollte während der Adapter läuft ein Problem mit der Verbindung zum tankerkönig-Server auftreten oder irgendwas nicht stimmen, dann soll der Preis auf 0 gesetzt werden.

            ! Nicht, dass jemand wegen eines veralteten Preises extra zur Tankstelle fährt. Lieber empfiehlt der Adapter nix, als dass er was falsches empfiehlt. Des das RESET jedes feeds vorm Neueinlesen.
            ! Ich habe das auch so gemacht, da ich annahm, dass flot (etc.) Nullen (0 oder null) auf Wunsch aus einer Linie von Daten herausstreichen können.
            ! Gruß
            ! Pix[/i][/i][/i][/i][/i]

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

              Auch da muss ich dich enttäuschen.

              Die Anzeige zeigt(e) immer Eiben gültigen Preis an.

              Was flot angeht kann man dort nur Werte mit null, nicht jedoch mit 0 beeinflussen.

              Das wat mein allerersten Versuch mit allen möglichen Varianten.

              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 Antwort Letzte Antwort
              0
              • nieIPN Offline
                nieIPN Offline
                nieIP
                schrieb am zuletzt editiert von
                #8

                Hallo

                dann könnte der Adapter statt der numerischen "0" doch besser "null" oder "" (leeres Feld) in die Datenbank schreiben ?

                Also beim "Reset" vor der neuen Abrage nicht "0" eintragen, sondern die Daten leeren?

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

                  Der Adapter schreibt bei jedem Durchlauf zuerst 0 und dann - falls vorhanden - den Preis in den Datenpunkt feed. Das kann sich im ms-Bereich abspielen. Wenn kein Preis da, dann bleibt es bei 0. Natürlich kann ich auch "null" schreiben lassen. Wenn die Grafikaufbereitung dadurch leichter wird, ist das ein schnell gmeachtes Update.

                  Mit etwas Arbeit und Zeit kann man das sogar einstellbar machen:

                  "Wenn kein neuer Preis vorhanden, schreibe Wert: "

                  • Auswahl:

                  • null

                  • 0

                  • " " (leer)

                  • letzten Wert belassen
                    Das wär vielleicht ein guter Grund für ein Update.

                  Gibt es überhaupt viele Nutzer, die damit ein Problem haben?

                  Ich habe nämlich keins, meine Kurven sehen gut aus: 261_bildschirmfoto_2016-07-21_um_12.12.56.png

                  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
                  • P Offline
                    P Offline
                    pix
                    schrieb am zuletzt editiert von
                    #10

                    Hier noch schnell meine History Einstellungen (SQL) 261_bildschirmfoto_2016-07-21_um_12.18.32.jpg 261_bildschirmfoto_2016-07-21_um_12.18.38.jpg 261_bildschirmfoto_2016-07-21_um_12.18.46.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
                    • HomoranH Nicht stören
                      HomoranH Nicht stören
                      Homoran
                      Global Moderator Administrators
                      schrieb am zuletzt editiert von
                      #11

                      OK, da kommen wir dem Problem wohl näher.

                      1. obwohl du auch nur Änderungen speichern willst, hast du alle 5 Minuten einen Wert, auch wenn er identisch war.

                      2. Wenn erst 0 und dann ein aktueller Wert gesetzt werden soll, könnte es an einer zu langsamen Antwort vom tankerkönig liegen?

                      Hat das vielleicht mit dem ACK false zu tun?

                      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 Antwort Letzte Antwort
                      0
                      • BluefoxB Offline
                        BluefoxB Offline
                        Bluefox
                        schrieb am zuletzt editiert von
                        #12

                        Es liegt daran, dass die Werte werden erst auf 0 gesetzt before die neue Werte ausgewertet werden.

                        https://github.com/Pix---/ioBroker.tank ... ain.js#L91

                        https://github.com/Pix---/ioBroker.tank ... in.js#L122

                        Das verursacht eine Änderung immer wenn die ein Lesevorgang stattfindet. Bei jedem Lesevorgang werden 2 States generiert {val: 0, ack: false} und gleich danach {val: WERT, ack: true}

                        Dass muss anders behandelt werden. Z.B. beim Start erst alles lesen:

                        adapter.getStates('*', function (err, states) {
                        	//	 und dann 
                        	// update values
                        	states['stations.cheapest.e5.feed'].val = newValue;
                        	states['stations.cheapest.e5.feed'].changed = true;
                        
                        	// Danach irgendwie so
                        	for (var id in states) {
                        		if (states[id].changed) {
                        			adapter.setState(id,  states[id].val, true);
                        		} else {
                        			adapter.setState(id, 0/''/'keine Daten');
                        		}
                        	}
                        });
                        
                        
                        1 Antwort Letzte Antwort
                        0
                        • HomoranH Nicht stören
                          HomoranH Nicht stören
                          Homoran
                          Global Moderator Administrators
                          schrieb am zuletzt editiert von
                          #13

                          Ich habe aber auch noch andere Datenpunkte, die identische Werte speichern, obwohl nur geänderte gespeichert werden sollen.

                          Hier z.b. ein tiltsensor in der Markise:
                          144_img_20160721_172843_207.jpg
                          Hier könnte ich mir vorstellen, dass der Sensor zwar vom Wind geschüttelt wird so dass der Kontakt kurz unterbrochen aber der andere noch nicht geschlossen wird.

                          Ich weiß leider nicht wie der tiltsensor funktioniert.

                          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 Antwort Letzte Antwort
                          0
                          • nieIPN Offline
                            nieIPN Offline
                            nieIP
                            schrieb am zuletzt editiert von
                            #14

                            @Bluefox:

                            Es liegt daran, dass die Werte werden erst auf 0 gesetzt before die neue Werte ausgewertet werden. `

                            Hallo

                            dann darf der Wert nicht vor der Abfrage auf 0 gesetzt werden, sondern danach, wenn die Abfrage erfolglos war.

                            Besser noch auf NULL oder "" (leer)

                            Ein Flag, ob die Abfrage erfolgreich war, gibt es ja offenbar.

                            1 Antwort Letzte Antwort
                            0
                            • HomoranH Nicht stören
                              HomoranH Nicht stören
                              Homoran
                              Global Moderator Administrators
                              schrieb am zuletzt editiert von
                              #15

                              Habe jetzt mal den Haken bei "Nur Änderungen aufzeichnen" herausgenommen.

                              Jetzt läuft es richtig:
                              144_img_20160723_182052_014.jpg
                              Die lila Tankstelle hat tatsächlich zu.

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

                                HI,

                                ist das ganze angepasst worden inzwischen? Kann nix entsprechendes finden.

                                Meine Diagramme sehen auch etwas durcheinander aus leider…

                                Tobias
                                2120_iobroker_fehler_flot_chart.jpg

                                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

                                702

                                Online

                                32.5k

                                Benutzer

                                81.7k

                                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