Externe Abfrage von Peilungsdaten und Uhrenständen

 

Folgende Voraussetzungen sind für den Abruf der Peilungsdaten und Uhrenstände notwendig:

  1. Aktivierung der Peilung in WebApps über einen Auftrag bei der Firma HUTH.

  2. 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