Skip to content

Latest commit

 

History

History
117 lines (92 loc) · 8.75 KB

doc_tankerkoenig_de.md

File metadata and controls

117 lines (92 loc) · 8.75 KB

Logo

ioBroker.tankerkoenig

Number of Installations stable Version NPM version Downloads

NPM

Tests: Test and Release

Beschreibung

🇩🇪 Dieser Adapter liefert die Spritpreise für 10 festgelegte Tankstellen über den JSON Feed der Internetseite tankerkoenig.de. Die Daten werden in Objekte gespeichert, um in ioBroker.vis verarbeitet zu werden. Der Adapter verwendet die Seite prices.php, welche beim Quellserver von tankerkoenig.de durch die gleichzeitige Abfrage vieler Stationen und die Rückgabe von nur wenigen Daten insgesamt sehr viel weniger Datenverkehr verursacht, als die Abfrage über list.php (Umkreissuche) oder detail.php (Einzelabfrage einer Tankstelle). Auf die beiden anderen Formen der Abfrage wurde bewusst verzichtet. Somit ist keine Umkreissuche (zB sortiert nach Preis) und keine Lieferung genauerer Daten (Straße, Marke, Hausnummer, etc.) möglich. Die jeweils günstigste Tankstelle für die drei Spritsorten E5, E10 und Diesel werden in einem separaten Kanal gespeichert.

Einstellungen

API-Key

Der API Schlüssel ist auf der Seite von Tankerkönig erhältlich. Die 36-stellige Zeichenkette muss hier eingetragen werden.

Tankstellen

Es können bis zu 10 Tankstellen abgefragt werden. Dazu ist die Eingabe der Tankstellen ID nötig. Die ID für jede Tankstelle erhält man auf tankerkoenig.de. Sie ist ebenfalls 36-stellig. Zusätzlich kann ein eigener Name für die Station hinterlegt werden. alt text alt text

Über dieses Fenster werden die neuen Stationen hinzugefügt, man kann direkt in der Karte darunter die Stadions-ID auslesen und in das Feld oben kopieren. Es gibt 2 Möglichkeiten, die ID in das Feld zu kopieren:

  • Du markierst die ID und kopierst sie mit Strg+C oder du klickst mit der rechten Maustaste auf Kopieren und fügst sie dann in das Feld ein.
  • Du kannst auch auf die Schaltfläche Copy klicken, dann wird der gesamte Inhalt kopiert, und du kannst ihn dann entweder direkt in das Feld einfügen. Oder du klickst auf die Schaltfläche Paste, dann wird nur die ID in das Feld eingefügt.

Dazu muss man aber zulassen, dass der Browser auf die Zwischenablage zugreifen darf. (dies funktioniert nur, wenn Ihr Admin mit https läuft und Sie die Seite mit https aufrufen)

alt text

Unter der Rabatt Optionen kann man zwischen den Rabatt Varianten ⇨ Euro / Prozent auswählen und für welchen Kraftstoffart der Rabatt gilt (Standard sind alle ausgewählt)

alt text

Werte auf 0 setzen

Aktivieren Sie diese Funktion, wenn die Preise auf 0 gesetzt werden sollen, wenn die Tankstelle geschlossen ist.
Wenn die Funktion ausgeschaltet ist, werden die Preise als ungültig gesetzt, siehe unten.

Ungültige Preise

Wenn eine Tankstelle keine Preise für E5, E10 oder Diesel liefert, z. B. bei einer geschlossenen Station, wird der Preis sich nicht ändern stattdessen wird die state Qualität auf Qualitätscode 0x40 => Ersatzwert aus Gerät gesetzt, der state wird dann orange angezeigt.

alt text

Aktivierung

Der Adapter läuft als Daemon (nicht im Schedule Modus) und startet regulär alle fünf Minuten. Die Daten des Quellfeeds werden vom Server bei tankerkoenig.de nur alle 4min aktualisiert, daher macht eine häufigere Abfrage der Daten keinen Sinn und verursacht nur überflüssigen Datenverkehr und kostet Ressourcen. Größere Intervalle sind jederzeit einstellbar.

Datenpunkte

Die Datenpunkte werden dynamisch erstellt, das heißt, wen man eine Station anlegt werden Datenpunkte dazu angelegt (Maximal 10 Stationen) alt text Unter den verschiedenen Kraftstoffart werden die folgenden Datenpunkte:

  • feed (Preis mit drei Dezimalstellen als Number)
  • short (Preis mit zwei Dezimalstellen (ungerundet) als String)
  • 3rd (dritte Dezimalstelle des Preises zur Darstellung der Hochzahl in VIS)
  • combined (fertig HTML formatiert mit Preis und hochgestellter dritter Dezimalstelle oder ggf. Öffnungsstatus [closed/not found] zur einfachen Darstellung mit VIS HTML Widget)

Unter jeder Kraftstoffart gibt es noch einen weiteren Ordner minmax in dem die Datenpunkte für die Min und Max Preise der Tankstelle angelegt werden. Sie werden nur für den einen Tag gespeichert und werden am nächsten Tag wieder auf 0 gesetzt und neu befüllt.

Außerdem werden noch fünf Datenpunkte auf in der jeweiligen Station erstellt:

  • discount (Rabatt in Euro / Prozent als Number)
  • discounted (Zeigt an, ob ein Rabatt aktiv ist oder nicht)
  • status (Station geöffnet?)
  • name (vom Nutzer vergebener Name der Tankstelle)
  • station_id (Tankerkönig ID der Tankstelle)

Zusätzlich werden noch den die günstigsten Tankstellen aus der Liste in die Kanäle ermittelt

  • cheapest.E5
  • chepest.E10
  • cheapest.diesel

Auf der Stations ebenen werden weitere fünf Datenpunkte erstellt:

  • adapterStatus (zeigt den status vom adapter an mögliche Werte: idle / automatic request / manual request / detail request / requet timeout 1min / write states / request Error / offline)
  • json (JSON Daten der Tankstelle)
  • jsonTable (json Tabelle für die vis nur die json Daten kein Widget)

alt text

  • lastUpdate (Zeitpunkt der letzten Aktualisierung)
  • refresh (Dies ist ein Button, mit dem man die Daten manuell aktualisieren kann ACHTUNG nach einmaligen auslösen ist es für 1 minute nicht mehr möglich die manuelle Aktualisierung auszulösen)

Innerhalb dieser Kanäle ist die jeweils günstigste Tankstelle für die genannte Kraftstoffart angelegt. Bieten mehrere Tankstellen einen Treibstoff zum gleichen Preis an, wird die Station ausgegeben, die in den Einstellungen zuerst/ganz oben eingetragen wurde.

VIS Nutzung

Der Datenpunkt combined lässt sich in VIS mit diesem Widget darstellen

[{"tpl":"tplHtml","data":{"visibility-cond":"==","visibility-val":1,"refreshInterval":"0","gestures-offsetX":0,"gestures-offsetY":0,"signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"html":"<span style=\"font-size: 80%; padding: 0 20px 0 5px;\">Diesel</span>{tankerkoenig.0.stations.0.diesel.combined}"},"style":{"left":"634px","top":"745px","z-index":"20","width":"228px","height":"36px","background-color":"","color":"rgba(225,225,225,1)","font-size":"30px","text-align":"center","background":"rgba(250,0,0,0.1)"},"widgetSet":"basic"}]

Der Inhalt des Datenpunktes combined wird mit einer CSS-Klasse übergeben. Die Klassen sind station_open,station_closed und station_notfound. Durch die Verwendung von CSS-Definitionen im VIS Editor können so (nicht nur farblich) unterschiedliche Darstellungen für die Zustände "geöffnet" (zB normal), "geschlossen" (zB rote Schrift) und "nicht gefunden" (zB gelbe Schrift) erzielt werden.

.station_open {
    color: blue; 
}
.station_closed {
    color: red !important; /* !important kann ggf. weggelassen werden */
}
.station_notfound {
    color: yellow !important; /* !important kann ggf. weggelassen werden */
}
.station_no_prices {
    color: yellow !important; /* !important kann ggf. weggelassen werden */
}

/* € sign */
.station_combined_euro {
    font-family: Times;
    font-size: 80%;
}