Fehleranalyse bei der Entwicklung mit HomeServer URL-Endpoints
Inhalt

1.Einleitung

In diesem Artikel werden Hinweise gegeben, die das Debuggen und die Fehleranalyse bei der Entwicklung mit der HomeServer URL-Endpoints Schnittstelle ermöglichen.

2.Allgemeine Hinweise

  • Statuscodes auswerten:
    Jede Nachricht des Clients über HTTP und WebSocket wird vom HomeServer/FacilityServer beantwortet. Wird eine Nachricht nicht beantwortet, liegt wahrscheinlich ein grundlegendes Problem mit der Kommunikation vor.
    Die Antwort vom HS/FS beinhaltet einen Statuscode. Dieser gibt Auskunft darüber, ob der HS/FS die Nachricht des Clients auswerten und bearbeiten kann. In diesem Fall ist der Statuscode 0. Ist dies nicht der Fall, gibt des HS/FS einen Statuscode zurück der ungleich 0 ist. Eine Auflistung der möglichen Statuscodes mit ihrer jeweiligen Bedeutung befindet sich in der Dokumentation HomeServer URL-Endpoints.
    Eine Nachricht an den HS/FS kann erst dann als zugestellt betrachtet werden, wenn dieser mit Statuscode 0 antwortet. Dies bedeutet allerdings nicht, dass die in der Nachricht eventuell angegebene Methode (z.B. ein Kommunikationsobjekt auf einen Wert setzen oder eine Sequenz starten) bereits vom HS/FS ausgeführt wurde.
  • Informationen auf der Debug-Seite:
    • Bereich Exceptions:
      • Liefert der HS/FS einen Statuscode ungleich 0 an den Client zurück, werden hier eine oder auch mehrere Exceptions aufgelistet, die einen Hinweis auf den Fehler in der Nachricht des Clients liefern können.
    • Bereich WS:
      • In diesem Bereich werden verschiedene statistische Informationen zur WebSocket Schnittstelle des HS/FS angeboten. Es werden u.a. die derzeit aktiven Verbindungen angezeigt.

3.Hinweise zum Einsatz der URL-Endpoints JavaScript API

  • Debugger des Browsers nutzen:
    In fast allen modernen Browsern stehen JavaScript Debugger entweder von Haus aus (Chrome und Internet Explorer) oder als Plugin (Firebug für Firefox und Safari) zur Verfügung.
  • In den Callback-Methoden den Fehlerparameter auswerten:
    Wird einer Methode der API ein Callback übergeben, so weist dieses in seiner Signatur stets einen Fehlerparameter (err) auf. Ist dieser beim Aufruf der Callback-Methode gesetzt (also nicht undefined), muss im Code entsprechend darauf reagiert werden.
  • Beispiel:
    var connectionOptions = {"host": homeserverIp, "port": homeserverPort};
    var homeServerConnection = HomeServerConnector.createConnection(name, password, connectionOptions);
    var camArchCorridor = homeServerConnection.getCameraArchive('SC@camArchCorridor');
    camArchCorridor.getPicture(userPictureId, function(err, pictureId, dataUrl){
        if(err){
            console.error("camArchCorridor.getPicture() failed!", err);
            showErrorToUser("Kamerabild konnte nicht abgerufen werden.")
            return;
        }
        showImage(pictureId, dataUrl);
    });
  • Quellcode der URL-Endpoints JavaScript API verwenden:
    Um Fehler auszuwerten die innerhalb der API auftreten oder die Abläufe der API nachzuvollziehen bzw. zu debuggen, kann statt der für den Produktiveinsatz optimierten Version hs.min.js der Quellcode der API verwendet/eingebunden werden. Die Datei hs.src.js befindet sich im Verzeichnis URL-Endpoints\JS\API\src.