So, hab den Fehler wohl gefunden. Kommt direkt ausm OCCU.
Ich würde dich bitten, es mal zu verifizieren...
Dafür in der Datei
/www/rega/esp/datapointconfigurator.fn ganz unten die Funktion
HideCertainParameters ändern und an allen 3 Stellen aus
tmp irgendeinen anderen Bezeichner machen, z.B.
tmpHCP:
Code: Alles auswählen
function ::HideCertainParameters() {
string tmpHCP;
string param2Exclude = "IDENTIFY_DURATION,IDENTIFICATION_MODE_KEY_VISUAL,IDENTIFICATION_MODE_LCD_BACKLIGHT,IDENTIFY_TARGET_LEVEL,STATUS_FLAG_ERROR,STATUS_FLAG_LOW_BAT,STATUS_FLAG_PLAYING_FILE_ACTIVE,STATUS_FLAG_PLAYLIST_ACTIVE,ERROR_CODE_STATUS";
showParam = true;
! Check if datapoint is no sysvar
if (! oDP.IsTypeOf( OT_VARDP )) {
foreach (tmpHCP, param2Exclude.Split(",")) {
if (oDP.HSSID().Find(tmpHCP) != -1) {
showParam = false;
return;
}
}
}
return;
}
Bei mir war danach der Fehler weg.
Das Problem ist wohl, dass Variablen in der CCU systemweit/global definiert und verfügbar sind.
Die Variable
tmp wird bereits verwendet in der
/www/rega/pages/tabs/control/hdevichannels.htm:135.
In dem folgenden foreach(...) erfolgt dann der Aufruf der
dcCreate()-Methode in der
/www/rega/esp/datapointconfigurator.fn, die das Steuerelement (Temperatur/Feuchte) erzeugt.
Für die datapointconfigurator.fn sind WEATHER.TEMPERATURE und WEATHER.HUMIDITY ein UNKNOWN Control, weshalb darin wiederum die
CreateUnknown()-Methode aufgerufen wird.
Und nur in dieser wird weiterhin in die
HideCertainParameters() verzweigt.
Dort wird
tmp überschrieben und die foreach(...) in der
/www/rega/pages/tabs/control/hdevichannels.htm ist hinüber, sobald das Gerät mehr als 1 Kanal hat (die Schleife also mindestens ein weiteres Mal durchlaufen werden soll).