Benutzer-Werkzeuge

Webseiten-Werkzeuge


howto:debug

Dies ist eine alte Version des Dokuments!


Fehlersuche

Prinzipielles

Daten nehmen bei Volkszähler einen klar definierten Weg durch das System. Dieser führt vom Zaehler über Lesekopf, vzlogger und Middleware zum Frontend.

Wenn irgendwo am Ende nichts, oder nicht das Erwartete ankommt, gilt es den Weg der Daten zurück zu verfolgen und die Stelle zu finden aber der das Verhalten unerwartet ist.

Fehlersuche ist ein strukturierter Prozess- kein Rätselraten!

Schrittweise Fehlersuche

Verlauf in Reihenfolge der Daten am Beispiel eines Zählers mit Infrarotschnittstelle.

  • Zaehler
    • werden Daten überhaupt gesendet (Digitalkamera, vorher mit Fernbedienung testen ob diese IR-Impulse sichtbar machen kann)
  • IR-Kopf
    • werden Daten empfangen (Einfacher Test: IR-Kopf 1-2 cm ueber eine weiße Fläche halten, mit HTerm Daten senden, diese sollten sofort wieder empfangen werden da reflektiert)
  • serielle Schnittstelle
    • werden Daten empfangen (Terminal-Programm)
    • sind die Daten gueltige Daten fuer ein bekanntes Protokoll?
      • Port-Parameter korrekt? Baudrate, Frameformat (SML, Binaer, beginnt mit 1b1b1b1b) (D0, Ascii-Text mit Obis-IDs).
      • Braucht der Zähler evtl. einen Stubs um Daten zu senden (pullseq)?
      • Im Wiki nach Zähler und Konfiguration recherchieren.
  • vzlogger
    • welche Version ist installiert (vzlogger -v)
    • laeuft er ueberhaupt, oder stuerzt er wegen Bugs ab (z.B. mit top oder ps aux | grep vzlogger überprüfen)
    • ist die Konfiguration korrekt (/etc/vzlogger.conf)
    • stimmt die UUID?
    • was steht im logfile (/var/log/vzlogger.conf)
    • ist das Logging überhaupt eingeschaltet (loglevel: 15 für die Fehlersuche)
    • werden die Daten korrekt dekodiert? („Got <n> new readings from meter“)
    • werden die Werte Kanaelen zugeordnet? („Reading: id=… value=… ts=…“)
    • werden die Werte zur middleware gesendet? („CURL: *“)
  • Middleware
    • welche Version ist installiert (git log -n 1 im Ordner /var/www/volkszaehler.org ausführen)
    • kommen die Requests an (webserver access_log)
    • werden die Werte in die Datenbank geschrieben (mysql-client)
  • Frontend
    • ist die richtige UUID ausgewählt (gleiche UUID wie in der vzlogger.conf)
    • ist der Kanal richtig konfiguriert (Typ und Auflösung)
    • werden überhaupt Daten angezeigt
    • welche Requests werden an die middleware gestellt und wie sieht die JSON Antwort aus? (firebug, 'network' tab) webconsole.png
    • werden korrekte Daten angezeigt
    • wenn Daten inkorrekt angezeigt werden: wie sehen die Rohdaten aus (gleiche URL wie zur Abfrage der Daten mit &options=raw angehängt)

Weitere Hilfe

Wenn das alles nicht hilft bitte eine konkrete Fehlermeldung an die Mailingliste contact schicken (statt „hilfe! es funktioniet nicht!“ dann zB.: „middleware schreibt nichts in die datenbank“).

Folgende Angaben sind für die weitere Unterstützung Pflicht:

  • Zählertyp
  • Plattform (welche Hardware (Raspi? Version?), welche Software- offizielles VZ Image oder Selbstbau)
  • vzlogger Version
  • vzlogger.conf
  • vzlogger.log mit Loglevel 15

Im Fall von Crashes des vzlogger bitte auch folgende Informationen ergänzen:

  • wann/wie wurden die letzten Updates gefahren
  • was ist alles (am Raspi) angeschlossen, v.a. welche Erweiterungen, wie erfolgt die Stromversorgung (wieviel Ampere)
  • wie sieht die rc.local aus
howto/debug.1451994503.txt.gz · Zuletzt geändert: 2016/01/05 12:48 von andig