Folgende Voraussetzungen sind für den Abruf der Peilungsdaten und Uhrenstände notwendig:
Aktivierung der Peilung in WebApps über einen Auftrag bei der Firma HUTH.
Kontrollieren Sie in der Tankansicht, ob Peilungsdaten und Uhrenstände gesendet werden, nachdem die Peilung aktiviert und ein Job zur Abfrage der Daten erstellt wurde.
Hinweis: Die korrekte Übertragung von Peilwerten und Uhrenständen hängt von der Kassenkonfiguration ab. Fehlt beispielsweise die vollständige Zuordnung der Säulen / Säulen zu den Tanks, werden keine Uhrenstände übertragen. In diesem Fall wenden Sie sich an die Hotline der Firma HUTH, um die Kassenkonfiguration anzupassen. Gegebenenfalls benötigen Sie einen Verrohrungsplan Ihres Tankanlagenbauers, um die notwendigen Informationen beizubringen.
Über eine externe Anwendungsprogrammier-Schnittstelle (API) haben Sie die Möglichkeit, Peilungswerte und Uhrenstände abzufragen. Die Programmanweisungen werden im JSON-Format durchgeführt. Beispiele in C# finden Sie unten.
=> Erzeugen des API-Autorisierungsschlüssels
Abruf der zuletzt aktualisierten Forecourt-Daten (StationIDs, Peilwerte, Uhrenstände etc.) im JSON-Format (ForecourtService)
Mit dem oben erzeugten API-Autorisierungsschlüssel haben Sie nun die Möglichkeit, die zuletzt aktualisierten Forecourt-Daten über einen programmierten Abruf abzuholen:
Beispiel-Programmierung (in C#):
const string address = "https://webapps.huth.org/[mandantenname]/api/ForecourtService/FuelTankData";
var request = (HttpWebRequest)WebRequest.Create(address);
request.Accept = "application/json";
request.Headers.Add("WebApiKey", "xxxxxxxxxxxxxxxxxxxxxxxxxxxx");
var response = request.GetResponse();
var responseStream = response.GetResponseStream();
if (responseStream != null)
{
using (var reader = new StreamReader(responseStream))
{
Console.WriteLine(reader.ReadToEnd());
}
}
Result (Beispiel, Darstellung mit FIDDLER):
Feldbezeichnung |
Erläuterung |
[mandantenname] |
kundenspezifische (Händler-)Bezeichnung (wird bei der Installation von HUTH vergeben) |
counterVolume |
Zählerstand / Uhrenstand |
dateOfMeasurement |
Zeitstempel Peilung / Uhrenstand |
gaugingLevel |
Peilung in mm (peilsondenabhängig) |
gaugingVolume |
Peilung in Liter (peilsondenabhängig) |
id |
interne ID |
productId |
Zuordnung des Produkts gemäß der externen ArtikelNr aus der Kassenkonfiguration (Warengruppen) |
stationId |
interne StationID |
stationName |
Stationsname |
tankName |
Name des Tanks aus der Tankkonfiguration in der Kasse |
tankNo |
Nummer des Tanks aus der Tankkonfiguration in der Kasse |
temperature |
gepeilte Termperatur im Tank (peilsondenabhängig) |
waterLevel |
gepeilte Wasserhöhe im Tank (peilsondenabhängig) |
Update der Forecourt-Daten (Peilwerte, Uhrenstände) im JSON-Format
Für das Update der Forecourt-Daten wird die StationID der Station benötigt. Diese wird mit dem oben beschriebenen Abruf im Result zurückgegeben.
Beispiel-Programmierung (in C#):
const string address = "https://webapps.huth.org/[mandantenname]/api/ForecourtService/FuelTankUpdates";
const string stationId = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
var request = (HttpWebRequest)WebRequest.Create(address);
request.Accept = "application/json";
request.Method = "POST";
request.ContentType = "application/json";
request.Headers.Add("WebApiKey", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
using (var requestStream = request.GetRequestStream())
using (var writer = new StreamWriter(requestStream))
{
var content = string.Format("{{StationId:'{0}'}}", stationId);
writer.WriteLine(content);
}
try
{
var response = request.GetResponse();
var responseStream = response.GetResponseStream();
if (responseStream != null)
{
using (var reader = new StreamReader(responseStream))
{
Console.WriteLine(reader.ReadToEnd());
}
}
}
catch (WebException ex)
{
if (ex.Response != null && ex.Status == WebExceptionStatus.ProtocolError)
{
using (var stream = ex.Response.GetResponseStream())
if (stream != null)
{
using (var reader = new StreamReader(stream))
{
var msg = reader.ReadToEnd();
Console.WriteLine(msg);
}
}
}
}
Mögliche Responses
200 = [OK]
201 = Created (angelegt)
400 = Bad Request (fehlerhafte Anfrage)
401 = Unauthorized (keine Authentifizierung)
403 = Forbidden (fehlende Berechtigung, z.B. Zugriff von einem Rechner, dessen IP-Adresse nicht auf der Whitelist steht)
404 = Not Found
405 = Method Not Allowed
415 = Unsupported Media Type
500 = Internal Server Error (Server-Fehler)
HUTH Elektronik Systeme GmbH - Stand: 04.07.2014 - Autor: Frank-Olaf Nagel