Code: Alles auswählen
! Tankerkönig angepasst (c) by Alchy v0.6
! Fehlerhandling hinzugefügt,Namensvergabe selber möglich,
var apikey = "++++++++++++++++++++"; !Ihr API-Key
var tankids = "676eb983-e637-40a9-a794-7a360b748e3f,2264a000-d8a4-4793-993c-fbb0b762fb50,51d4b626-a095-1aa0-e100-80009459e03a" ; ! Alle gewünschten Tankstellen komma separiert. Auch nur eine geht natürlich !
var tankname = "Tankstelle1,Tankstelle2,Tankstelle3"; ! Eigene Namen der Tanken, in selber Reihenfolge wie die obigen IDs
! URL der tankerkoenig.de API
string tankerKoenigURL = "https://creativecommons.tankerkoenig.de/json/detail.php";
string slist = "";
string srueck = "FEHLER";
! Nun über alle ausgesuchten Tankstellen iterieren.
string tankid;
integer count = 0;
foreach(tankid, tankids.Split(",")) {
count = count + 1;
string cmd = "/usr/local/addons/cuxd/curl --trace trace.txt -k -X GET -H \"Content-Type:application/json\" -G " # "-d id=" # tankid # " -d apikey=" # apikey # " " #tankerKoenigURL;
! curl Abfrage starten
if (dom.GetObject(ID_DATAPOINTS).Get("CUxD.CUX2801001:3.CMD_SETS")){
dom.GetObject(ID_DATAPOINTS).Get("CUxD.CUX2801001:3.CMD_SETS").State(cmd);
dom.GetObject(ID_DATAPOINTS).Get("CUxD.CUX2801001:3.CMD_QUERY_RET").State(1);
var srueck = dom.GetObject(ID_DATAPOINTS).Get("CUxD.CUX2801001:3.CMD_RETS").State();
}else{WriteLine("FEHLER Datenpunkt");}
! Name
var name = tankname.StrValueByIndex(",",count-1);
! offen
var posValueStart = ",\"isOpen\":";
var posValueEnd = ",";
var posValue = srueck.Find(posValueStart) + posValueStart.Length();
var open = srueck.Substr(posValue, 10).StrValueByIndex(posValueEnd, 0);
if (open == "true" ) { open = true; }else{ open = false;}
var e5 = "-zu-";
var e10 = "-zu-";
var diesel ="-zu-";
if (open){
! Preis e5
var posValueStart = ",\"e5\":";
var posValueEnd = ",";
var posValue = srueck.Find(posValueStart) + posValueStart.Length();
var e5= srueck.Substr(posValue, 10).StrValueByIndex(posValueEnd, 0);
integer error = e5.Find("erro"); if (error> -1) { e5 = "Fehler";}
!Preis e10
var posValueStart = ",\"e10\":";
var posValueEnd = ",";
var posValue = srueck.Find(posValueStart) + posValueStart.Length();
var e10 = srueck.Substr(posValue, 10).StrValueByIndex(posValueEnd, 0);
integer error = e10.Find("erro"); if (error> -1) { e10 = "Fehler";}
! Preis Diesel
var posValueStart = ",\"diesel\":";
var posValueEnd = ",";
var posValue = srueck.Find(posValueStart) + posValueStart.Length();
var diesel = srueck.Substr(posValue, 10).StrValueByIndex(posValueEnd, 0);
integer error = diesel.Find("erro"); if (error> -1) { diesel = "Fehler";}
}
slist = slist#name #" - " #diesel#" / " #e10 # " / " #e5 #"\n"; ! Beispielverwendung, alle Daten in eine Variable schreiben
}
WriteLine(slist); ! Ausgabe auf dem Bildschirm
! speichern in einer Systemvariablen ACHTUNG diese NICHT auf der Startseite Klickibunti einfügen
! Abfrage gibt es die Systemvariable
if (dom.GetObject(ID_SYSTEM_VARIABLES).Get("Tanken")){
! wenn ja, Speichern von slist in der Systemvariablen
dom.GetObject(ID_SYSTEM_VARIABLES).Get("Tanken").State(slist);}else{WriteLine("FEHLER: SysVar nicht vorhanden");}