Statusabfrage mit Fehlern

  • Liebe DoorPi-Entwickler,


    während der fortschreitenden Integration von DoorPi mit FHEM bin ich auf folgende Inkonsistenzen bei der Statusabfrage gestoßen:


    1. Im Feld "additional_infos" der einzelnen Einträge von "history_event" wurden einzelne Apostrophe statt doppelter Anführungszeichen verwendet. Als Folge davon wird der nachfolgende Inhalt (fett in der folgenden Zeile) nicht als strukturiertes JSON erkannt, sondern nur als String. Sollte sich leicht beheben lassen.


    "additional_infos": "{'call_state': 13, 'state': 'Call terminated', 'remote_uri': 'sip:722622@192.168.0.254'}",


    2. Im Feld "start_time" der einzelnen Einträge von "history_event" wurden die doppelten Anführungszeichen vergessen, dort steht jetzt z.B.


    "start_time": 1461076523.81


    statt - wie es richtig wäre


    "start_time": "1461076523.81"


    Beides lässt sich natürlich bei einer Statusabfrage via FHEM leicht beheben - ist aber m.E. als Bug auf der DoorPi-Seite zu behandeln.


    Möglicherweise sind in dem JSON noch weitere Fehler. Ist aber m.E. für einen "Status" mit mehr als 4000 Zeilen sowieso etwas lang, z.B. tauchen darin auch die ganzen Hilfetexte auf. Könnte man die nicht herauslassen ?


    LG


    pah

  • Stimmt nicht. Denn rund um den String bei den "additional_infos tauchen" noch doppelte Anführungszeichen auf. DoorPi gibt aus


    "additional_infos": "{'call_state': 13, 'state': 'Call terminated', 'remote_uri': 'sip:722622@192.168.0.254'}",


    JSON-konform wäre


    "additional_infos": {'call_state': 13, 'state': 'Call terminated', 'remote_uri': 'sip:722622@192.168.0.254'},


    ohne die zusätzlichen Anführungszeichen. Das ist also ein echter Fehler.



    Bei der "start_time" ist das zwar eine Ermessensfrage. An anderer Stelle habt ihr das aber eben mit Anführungszeichen gelöst, z.B. als


    "bouncetime": "2000",


    Das ist also nicht ganz konsistent.


    LG


    pah

  • Noch eine Inkonsistenz, die mir ebenfalls nach einem echten Fehler aussieht.


    Bei der Statusabfrage wird als


    "additional_infos": "{'last_record_filename': '/usr/local/etc/DoorPi/records/2016-04-22_12-14-59.wav'}",



    angegeben. Der tatsächliche Filename lautet aber


    /usr/local/etc/DoorPi/records/2016-04-22_12-14-48.wav.
    Der Unterschied beträgt nicht immer 11 Sekunden - vielmehr stimmt der Filename mit dem Startzeit des Calls überein.


    LG


    pah