TankerkönigSpritpreise — ReadMe
ÜBERSICHT — FREISCHALTUNG — SCREENSHOTS
- Funktionsumfang
- Systemanforderungen
- Installation
- Hinweise zur Verwendung
4.1 Modul-Einrichtung
4.2 API-Aufrufe - Befehlsreferenz
1. Funktionsumfang
Dieses Modul liest die Spritpreise über die API von Tankerkönig.de aus.
Ihr müsst euch nur einen API-Key per E‑Mail zuschicken lassen, dann die entsprechenden Konfigurationen in
der Modul-Instanz eintragen. Es werden, unterhalb der Modul-Instanz die Variablen angelegt, in welchen
die entsprechenden Daten der jeweiligen Tankstelle(n) abgespeichert werden.
Tankerkönig API Daten stehen unter der Creative-Commons-Lizenz “CC BY 4.0”
https://creativecommons.org/licenses/by/4.0/deed.de
!ACHTUNG! HINWEISE ZUM ABFRAGE-LIMIT DER TANKERKÖNIG-API BEACHTEN!
Siehe 4.2 (Hinweise zur Verwendung — API Aufrufe)
Einstellungsmöglichkeiten in der Instanz:
- API Key (Tankerkönig API Key hier anfordern: https://creativecommons.tankerkoenig.de/)
- Intervall (Daten der Tankstellen werden alle X Sekunden abgefragt — min. ist 600 Sekunden)
- Namen mit ID (wird benötigt, wenn man 2 Tankstellen mit dem gleichen Namen im selben Ort hat)
- Logging der Preis-Variablen aktivieren (ja/nein)
- Spritpreise in den Variablen mit 2 oder 3 Nachkommastellen anzeigen
- Koordinaten vom Wohnort/Büro/… (Latitude,Longitude — für die Umkreissuche)
- Radius in km (max. 25km)
- Spritsorte (E5, E10, Diesel, Alle)
- Sortierung für die Umkreissuche (Distanz, Preis) — nur interessant für die Verwendung der Umkreissuche per Skript (Array-Sortierung)
- De/aktivierung von Variablen mit dem niedrigsten/durchschnittlichen/höchsten Preis (einstellbarer Zeitraum) für die Tankstellen in der Liste der Detailabfrage (!das Logging der Preis-Variablen muss aktiviert sein!)
- Logging der erweiterten Preis-Variablen (niedrigster/durchschnittlicher/höchster Preis im eingestellten Zeitraum) de/aktivieren
Folgende Auswahlmöglichkeiten stehen im Modul zur Verfügung (Mehrfachauswahl möglich):
- Umkreissuche (Infos und Preise zu Tankstellen im Radius von 1 bis 25 km)
- Umkreissuche — Niedrigster Preis (Geöffnete Tankstelle mit dem niedrigsten Preis für die ausgewählte Spritsorte im ausgewählten Radius)
- Detailabfrage (Detailinformationen zu bestimmten Tankstellen — Tankstellen ID's in der Instanz eintragen)
Wird eine "Abfragemethode" in der Modul-Instanz abgewählt, dann werden die zugehörigen Variablen beim Übernehmen der Einstellungen automatisch vom Modul gelöscht!
Umkreissuche
Hier bekommt ihr alle verfügbaren Tankstellen im Umkreis ausgelesen. Die Daten werden im eingestellten Intervall abgefragt, sowie beim Übernehmen der Einstellungen in der Modul-Instanz.
(Name, Marke, Anschrift, Distanz, Tankstellen-ID, Preis/e, Geöffnet)
Umkreissuche — niedrigster Preis
Hier bekommt ihr die Tankstelle ausgelesen, die den niedrigsten Preis und geöffnet hat. Die Daten werden im eingestellten Intervall abgefragt, sowie beim Übernehmen der Einstellungen in der Modul-Instanz.
(Name, Marke, Anschrift, Distanz, Tankstellen-ID, Preis/e, Geöffnet)
Detailabfrage
Hier bekommt ihr von euren "Stamm-Tankstellen" alle verfügbaren Informationen ausgelesen. Die Daten werden im eingestellten Intervall abgefragt, sowie beim Übernehmen der Einstellungen in der Modul-Instanz.
(Name, Marke, Anschrift, Tankstellen-ID, Preis E5, Preis E10, Preis Diesel, Geöffnet, Öffnungszeiten [wenn verfügbar], …)
Für die Detailabfrage müssen erst die ID's der gewünschten Tankstellen per Umkreissuche ermittelt und dann in die Modul-Instanz eingetragen werden. Danach kann die Umkreissuche wieder deaktiviert werden.
Die im Modul gewählten Auswahlen/Einstellungen können automatisch durch einen Timer aktualisiert werden. Ihr könnt aber auch die Funktionen mit "_Instanz" verwenden und so die Abfragen per Skript durchführen (die Ergebnisse werden immer auch als Array zurückgegeben).
Alternativ könnt ihr eigene Umkreissuchen/Detailabfragen durchführen, in dem ihr die Funktionen ohne "_Instanz" verwendet. Weitere Informationen dazu findet ihr in dieser Dokumentation im Abschnitt "Befehlsreferenz".
2. Systemanforderungen
- IP-Symcon ab Version 4.3
3. Installation
Über die Kern-Instanz "Module Control" folgende URL hinzufügen:
https://GITLAB-BENUTZERNAME:GITLAB-PASSWORT@gitlab.com/BY-IPS-Module/TankerkoenigSpritpreise.git
Die Modul-Instanz findet ihr dort, wo ihr sie angelegt habt.
4. Hinweise zur Verwendung
4.1 Modul-Einrichtung
- Zuerst müssen der API-Key und die Koordinaten eingetragen werden
- Danach wird der Radius zur Suche der Tankstellen eingestellt
- Die Angabe der Spritsorte findet nur bei der Umkreissuche und bei der Suche des niedrigsten Preises im Umkreis Verwendung
- Zur Ermittlung der Tankstellen-ID's sollte zu Beginn eine Umkreissuche durchgeführt werden
Hat man über die Umkreissuche alle für sich interessanten Tankstellen und ihre ID's ermittelt, trägt man diese ID's in die Detailabfrage ein und deaktiviert die normale Umkreissuche wieder
4.2 API-Aufrufe
- Die API-Aufrufe sind bei Tankerkönig.de limitiert (60 je Stunde), was aber keine wirkliche Einschränkung oder gar ein Problem darstellt!
- Seit Version 1.3 von diesem Modul werden Detailabfragen von Tankstellen in einem Zwischenspeicher gelagert, so dass eine Detailabfrage nur einmalig bei der 1. Abfrage (nach dem IPS-Start und/oder beim Übernehmen von Einstellungen in der Modul-Instanz) "live" durchgeführt wird, danach werden die aktuellen Preise und der Öffnungsstatus gesammelt über 1 API-Aufruf ermittelt und die zugehörigen Detailinformationen (Name, Anschrift, …) werden aus dem Zwischenspeicher geholt.
- Detailinformationen werden also nur unter folgenden Umständen "live" von Tankerkönig.de abgerufen und erzeugen in diesem Moment "viele" API-Aufrufe (1 API-Aufruf je Tankstelle):
1.) Beim Start von IP-Symcon
2.) Beim Übernehmen von geänderten Einstellungen in der Modul-Instanz - Die API-Aufrufe und die Verwendung des Zwischenspeichers können, nach Aktivierung von "Debug" in der Modul-Instanz, im Debug-Fenster beobachtet werden
- Detaillierte Informationen, welche Abfrage wann wie viele API-Aufrufe erzeugt, findet ihr in der Befehlsreferenz. Grundsätzlich kann man aber sagen, dass jede Abfragemethode (Detailabfrage, Preisabfrage, Umkreissuche, Umkreissuche niedrigsten Preis) im normalen Betrieb nur noch 1 API-Aufruf erzeugt — ab Modul-Version 1.3.
5. Befehlsreferenz
TKS_Update(int $InstanzID);
> max. 13 API-Aufrufe bei der 1. Abfrage (je nach Auswahl in der Modul-Instanz // max. 2 x Umkreissuche [bei jeder Abfrage], 1 x Preisabfrage, 1 x Detailinformationen für jede Tankstelle [nur bei der 1. Abfrage nach dem IPS-Start])
> bei jeder folgenden Abfrage werden maximal 3 API-Aufrufe benötigt (wenn Detailinformationen, Umkreissuche und Umkreissuche niedrigsten Preis in der Instanz aktiviert sind — was ich NICHT empfehle — siehe "Hinweise zur Verwendung")
Ruft die aktuellen Spritpreise ab und aktualisiert die Variablen.
TKS_Detailabfrage(int $InstanzID, string $TankstellenIDs);
> max. 11 API-Aufrufe (1 x Preisabfrage [bei jeder Abfrage], 1 x Detailinformationen für jede Tankstelle [nur bei der 1. Abfrage einer Tankstelle nach dem IPS-Start])
Gibt ein Array zurück mit Detailinformationen zu allen Tankstellen deren ID's an die Funktion übergeben wurden.
Mehrere Tankstellen-ID's mit Komma getrennt eingeben! Maximal sind 10 Tankstellen in einer Abfrage möglich!
TKS_Detailabfrage_Instanz(int $InstanzID);
> max. 11 API-Aufrufe (1 x Preisabfrage [bei jeder Abfrage] und 1 x Detailinformationen für jede Tankstelle [nur bei der 1. Abfrage nach dem IPS-Start])
Es werden die in der Instanz eingetragenen Tankstellen-IDs verwendet. Die Funktion aktualisiert die Variablen unterhalb der Modul-Instanz und gibt die Daten als Array zurück.
TKS_Preisabfrage(int $InstanzID, string $TankstellenIDs);
> 1 API-Aufruf [bei jeder Abfrage]
Gibt ein Array zurück mit Informationen zu den Preisen und dem Öffnungs-Status für alle Tankstellen deren ID's an die Funktion
übergeben wurden. Diese Funktion liefert, im Gegensatz zur Funktion "TKS_Detailabfrage", nur die Preise zurück und ob die
Tankstelle geöffnet ist.
Mehrere Tankstellen-ID's mit Komma getrennt eingeben! Maximal sind 10 Tankstellen in einer Abfrage möglich!
TKS_Umkreissuche(int $InstanzID, string $Latitude, string $Longitude, int $Radius, string $Sortierung, string $Spritsporte);
> 1 API-Aufruf (1 x Umkreissuche [bei jeder Abfrage])
Gibt ein Array zurück mit den Ergebnissen der Umkreissuche.
— $Radius (1–25km)
— $Sortierung (price, dist)
— $Spritsorte (E5, E10, Diesel, Alle)
TKS_Umkreissuche_Instanz(int $InstanzID);
> max. 2 API-Aufrufe (1 x Umkreissuche [bei jeder Abfrage])
Es werden die in der Instanz eingetragenen Koordinaten und Einstellungen verwendet. Die Funktion aktualisiert die Variablen unterhalb
der Modul-Instanz und gibt die Daten als Array zurück.
TKS_Umkreissuche_GuenstigsterPreis(int $InstanzID, string $Latitude, string $Longitude, int $Radius, string $Spritsorte);
> max. 2 API-Aufrufe (1 x Umkreissuche [bei jeder Abfrage], 1 x Detailinformationen zur günstigsten Tankstelle [nur bei der 1. Abfrage einer Tankstelle nach dem IPS-Start])
Gibt ein Array zurück mit Detailinformationen zur günstigsten geöffneten Tankstelle in der Nähe.
— $Radius (1–25km)
— $Spritsorte (E5, E10, Diesel)
TKS_Umkreissuche_GuenstigsterPreis_Instanz(int $InstanzID);
> max. 2 API-Aufrufe (1 x Umkreissuche [bei jeder Abfrage], 1 x Detailinformationen zur günstigsten Tankstelle [nur bei der 1. Abfrage einer Tankstelle nach dem IPS-Start])
Es werden die in der Instanz eingetragenen Koordinaten und Einstellungen verwendet. Die Funktion aktualisiert die Variablen unterhalb
der Modul-Instanz und gibt die Daten als Array zurück.