homematic-community / XML-API

HomeMatic CCU Addon implementing a xml request functionality
https://github.com/homematic-community/XML-API
GNU General Public License v3.0
122 stars 27 forks source link

xmlapi/sysvarlist.cgi verursacht je Text- und Logikvariable zwei ReGaHss Einträge im Log #45

Closed Michael-K-at-GitHub closed 1 year ago

Michael-K-at-GitHub commented 4 years ago

Stellt man die ReGa auf Loglevel Info, erhält man je Variable des Typs Text und des Typs Logik folgende Einträge im Log

local0.info ReGaHss: Info: metadata property 'MIN' does not exist [GetMinProperty():iseDOMdp.cpp:326] local0.info ReGaHss: Info: metadata property 'MAX' does not exist [GetMaxProperty():iseDOMdp.cpp:359]

Vermutung: Variabeln des Typs Text und des Typs Logik (und mutmaßlich andere Typen) haben keinen Min und keinen Max Wert. sysvarlist.cgi Zeile 52 und 53 fragt diese Werte aber unabhängig vom Typ ab

    Write("' min='"); WriteXML( oSysVar.ValueMin());
    Write("' max='"); WriteXML( oSysVar.ValueMax());

und erzeugt damit die beiden Info-Zeilen von ReGa.

Dies ließe sich umgehen mit

    Write("' min='");
    if (oSysVar.ValueType() == 4) {
        WriteXML( oSysVar.ValueMin());
    }
    Write("' max='");
    if (oSysVar.ValueType() == 4) {
        WriteXML( oSysVar.ValueMax());
    }

Warum ist dieses Issue relevant: Debugged man die eigenen Programme (Rega auf Info), dann findet man die "MIN" has no poperty Einträge irgendwo unmotiviert im Log, sieht aber nicht, dass die gar nicht von den eigenen Programmen, sondern vom xmlapi kommen.

TODO Prüfen, ob Type==4 der einzige Datentype mit min/max Werten ist (laut WebOberfläche ja, aber ich sehe nicht tiefer hinein, ob es etwas anderes gibt)

REPRODUCE

TESTCASE