Merkwürdiges Problem mit einem Script "Objekt #12288 existiert nicht"

Ich steuere mit einem Script ein Homematic-LED-Display an. Jede der 16 LEDs hat 3 Werte für die drei Farben, die angezeigt werden können. IPS ändert nach dem verlassen des Display-Programms die Zeilen und trägt, die Kommentare in mit den eckigen Klammern ein. Warum?
Das Programm läuft übrigens…

// Bitwert der einzelenen LEDs
$LED7_rot = 4096;
$LED7_gruen = 8192;
$LED7_orange = 12288 /*[Objekt #12288 existiert nicht]*/;
$LED8_aus = 0;
$LED8_rot = 16384 /*[Objekt #16384 existiert nicht]*/;
$LED8_gruen = 32768 /*[Objekt #32768 existiert nicht]*/;
$LED8_orange = 49152 /*[Objekt #49152 existiert nicht]*/;
$LED9_aus = 0;
$LED9_rot = 65536 /*[Kein(e)]*/;
$LED9_gruen = 131072;

Hier das Display, um das es geht:


Die linken LEDs zeigen Füllstandswerte in % an. Je nach dem, ob die LED Heizungspuffer leuchtet oder die Zisterne.
Bei Interesse, hier das komplette Programm, das zyklisch aufgerufen wird.

// Bitwert der einzelenen LEDs
$LED1_aus = 0;
$LED1_rot = 1;
$LED1_gruen = 2;
$LED1_orange = 3;
$LED2_aus = 0;
$LED2_rot = 4;
$LED2_gruen = 8;
$LED2_orange = 12;
$LED3_aus = 0;
$LED3_rot = 16;
$LED3_gruen = 32;
$LED3_orange = 48;
$LED4_aus = 0;
$LED4_rot = 64;
$LED4_gruen = 128;
$LED4_orange = 192;
$LED5_aus = 0;
$LED5_rot = 256;
$LED5_gruen = 512;
$LED5_orange = 768;
$LED6_aus = 0;
$LED6_rot = 1024;
$LED6_gruen = 2048;
$LED6_orange = 3072;
$LED7_aus = 0;
$LED7_rot = 4096;
$LED7_gruen = 8192;
$LED7_orange = 12288 /*[Objekt #12288 existiert nicht]*/;
$LED8_aus = 0;
$LED8_rot = 16384 /*[Objekt #16384 existiert nicht]*/;
$LED8_gruen = 32768 /*[Objekt #32768 existiert nicht]*/;
$LED8_orange = 49152 /*[Objekt #49152 existiert nicht]*/;
$LED9_aus = 0;
$LED9_rot = 65536 /*[Kein(e)]*/;
$LED9_gruen = 131072;
$LED9_orange = 196608;
$LED10_aus = 0;
$LED10_rot = 262144;
$LED10_gruen = 524288;
$LED10_orange = 786432;
$LED11_aus = 0;
$LED11_rot = 1048576;
$LED11_gruen = 2097152;
$LED11_orange = 3145728;
$LED12_aus = 0;
$LED12_rot = 4194304;
$LED12_gruen = 8388608;
$LED12_orange = 12582912;
$LED13_aus = 0;
$LED13_rot = 16777216;
$LED13_gruen = 33554432;
$LED13_orange = 50331648;
$LED14_aus = 0;
$LED14_rot = 67108864;
$LED14_gruen = 134217728;
$LED14_orange = 201326592;
$LED15_aus = 0;
$LED15_rot = 268435456;
$LED15_gruen = 536870912;
$LED15_orange = 805306368;
$LED16_aus = 0;
$LED16_rot = 1073741824;
$LED16_gruen = 2147483648;
$LED16_orange = 3221225472;


$Matrix = 0;
//Berechnung des LED-Werts ($Matrix). Dieser representiert die eingeschalteten LEDs mit ihrer Farbe
//*
//Prüfen ob Solaranalage aktiv LED11_gruen
$Solar_in_Betrieb=GetValue(45679 /*[ETA-SH20\Solar Status]*/);
$Vergleichswert = "Kollektortemperatur niedrig";
//if (strcmp($Solar_in_Betrieb, $Vergleichswert)==0)
if ($Solar_in_Betrieb == $Vergleichswert)
 {($Matrix = $LED11_rot);
 }
else {($Matrix = $LED11_gruen);
}

//Anzeigen des Zisternenfüllstands
////Zisternen Status-LED16 einschalten (orange)
$Matrix = $Matrix+$LED16_orange;
////Ermitteln des Zisternenfüllstands in %
$Zisterne=GetValue(19527 /*[MC-Hx Modul - MC-Hx08000029\Zisterne Füllstand]*/);
////90%
if ($Zisterne >= 90 AND $Zisterne <= 100)
$Matrix = $Matrix+$LED1_gruen+$LED2_gruen+$LED3_gruen+$LED4_gruen+$LED5_gruen+$LED6_gruen+$LED7_gruen+$LED8_gruen;
else
echo ".";
////80%
if ($Zisterne >= 80 AND $Zisterne <= 89.9)
$Matrix = $Matrix+$LED1_rot+$LED2_gruen+$LED3_gruen+$LED4_gruen+$LED5_gruen+$LED6_gruen+$LED7_gruen+$LED8_gruen;
else
echo ".";
////60%
if ($Zisterne>=60 AND $Zisterne<= 79.9)
$Matrix = $Matrix+$LED1_rot+$LED2_rot+$LED3_gruen+$LED4_gruen+$LED5_gruen+$LED6_gruen+$LED7_gruen+$LED8_gruen;
else
echo ".";
////50%
if ($Zisterne>=50 AND $Zisterne<= 59.9)
$Matrix = $Matrix+$LED1_rot+$LED2_rot+$LED3_rot+$LED4_gruen+$LED5_gruen+$LED6_gruen+$LED7_gruen+$LED8_gruen;
else
echo ".";
////40%
if ($Zisterne>=40 AND $Zisterne<= 49.9)
$Matrix = $Matrix+$LED1_rot+$LED2_rot+$LED3_rot+$LED4_rot+$LED5_gruen+$LED6_gruen+$LED7_gruen+$LED8_gruen;
else
echo ".";
////30%
if ($Zisterne>=30 AND $Zisterne<= 39.9)
$Matrix = $Matrix+$LED1_rot+$LED2_rot+$LED3_rot+$LED4_rot+$LED5_rot+$LED6_gruen+$LED7_gruen+$LED8_gruen;
else
echo "eee.";
////20%
if ($Zisterne>=20 AND $Zisterne<= 29.9)
$Matrix = $Matrix+$LED1_rot+$LED2_rot+$LED3_rot+$LED4_rot+$LED5_rot+$LED6_rot+$LED7_gruen+$LED8_gruen;
else
echo ".";
////10%
if ($Zisterne>=10 AND $Zisterne<= 19.9)
$Matrix = $Matrix+$LED1_rot+$LED2_rot+$LED3_rot+$LED4_rot+$LED5_rot+$LED6_rot+$LED7_rot+$LED8_gruen;
else
echo ".";
////>10%
if ($Zisterne>=0 AND $Zisterne<= 9.9)
$Matrix = $Matrix+$LED1_aus+$LED2_aus+$LED3_aus+$LED4_aus+$LED5_aus+$LED6_aus+$LED7_aus+$LED8_rot;
else
echo ".";

//Ausgabe des LED-Werts ($Matrix)
HM_WriteValueString(12887 /*[Homematic-Komponenten\Displays\Display1\KEY]*/,"ALL_LEDS",$Matrix);

///////////////////////////////////////////////////
sleep(10);
//////////////////////////////////////////////////
//Starten Pufferspeicher-Anzeige

$Matrix = 0;
//Berechnung des LED-Werts ($Matrix). Dieser representiert die eingeschalteten LEDs mit ihrer Farbe
//*
//Prüfen ob Solaranalage aktiv LED11_gruen
$Solar_in_Betrieb=GetValue(45679 /*[ETA-SH20\Solar Status]*/);
$Vergleichswert = "Kollektortemperatur niedrig";
//if (strcmp($Solar_in_Betrieb, $Vergleichswert)==0)
if ($Solar_in_Betrieb == $Vergleichswert)
 {($Matrix = $LED11_rot);
 }
else {($Matrix = $LED11_gruen);
}

//Anzeigen des Pufferspeichers
////Pufferspeicher-Status-LED14 (orange) einschalten
$Matrix = $Matrix+$LED14_orange;
////Ermitteln des Pufferspeichers in %
$Puffer=GetValue(14107 /*[ETA-SH20\Pufferladung]*/);
////90%
if ($Puffer >= 90 AND $Puffer <= 100)
$Matrix = $Matrix+$LED1_gruen+$LED2_gruen+$LED3_gruen+$LED4_gruen+$LED5_gruen+$LED6_gruen+$LED7_gruen+$LED8_gruen;
else
echo ".";
////80%
if ($Puffer >= 80 AND $Puffer <= 89.9)
$Matrix = $Matrix+$LED1_rot+$LED2_gruen+$LED3_gruen+$LED4_gruen+$LED5_gruen+$LED6_gruen+$LED7_gruen+$LED8_gruen;
else
echo ".";
////60%
if ($Puffer>=60 AND $Puffer<= 79.9)
$Matrix = $Matrix+$LED1_rot+$LED2_rot+$LED3_gruen+$LED4_gruen+$LED5_gruen+$LED6_gruen+$LED7_gruen+$LED8_gruen;
else
echo ".";
////50%
if ($Puffer>=50 AND $Puffer<= 59.9)
$Matrix = $Matrix+$LED1_rot+$LED2_rot+$LED3_rot+$LED4_gruen+$LED5_gruen+$LED6_gruen+$LED7_gruen+$LED8_gruen;
else
echo ".";
////40%
if ($Puffer>=40 AND $Puffer<= 49.9)
$Matrix = $Matrix+$LED1_rot+$LED2_rot+$LED3_rot+$LED4_rot+$LED5_gruen+$LED6_gruen+$LED7_gruen+$LED8_gruen;
else
echo ".";
////30%
if ($Puffer>=30 AND $Puffer<= 39.9)
$Matrix = $Matrix+$LED1_rot+$LED2_rot+$LED3_rot+$LED4_rot+$LED5_rot+$LED6_gruen+$LED7_gruen+$LED8_gruen;
else
echo "eee.";
////20%
if ($Puffer>=20 AND $Puffer<= 29.9)
$Matrix = $Matrix+$LED1_rot+$LED2_rot+$LED3_rot+$LED4_rot+$LED5_rot+$LED6_rot+$LED7_gruen+$LED8_gruen;
else
echo ".";
////10%
if ($Puffer>=10 AND $Puffer<= 19.9)
$Matrix = $Matrix+$LED1_rot+$LED2_rot+$LED3_rot+$LED4_rot+$LED5_rot+$LED6_rot+$LED7_rot+$LED8_gruen;
else
echo ".";
////>10%
if ($Puffer>=0 AND $Puffer<= 9.9)
$Matrix = $Matrix+$LED1_aus+$LED2_aus+$LED3_aus+$LED4_aus+$LED5_aus+$LED6_aus+$LED7_aus+$LED8_rot;
else
echo ".";

//Ausgabe des LED-Werts ($Matrix)
HM_WriteValueString(12887 /*[Homematic-Komponenten\Displays\Display1\KEY]*/,"ALL_LEDS",$Matrix);


IPS interpretiert 5 stellige Zahlen in enem bestimmten Bereich als ID´s.
Es kann nicht zwischen einem Wert und einer ID unterscheiden.

Wie Thomas schon schrieb.
Weiss nicht ob man das Verhalten in IPS einstellen kann.

Benutzt du eine CCU?

Weiss nicht ob man das Verhalten in IPS einstellen kann.

Wurde schon gewünscht, geht aber (noch) nicht.

Man kann es bei Werten umgehen.

Beispiel:


//mit Kommentar
$i = 50000; 
//ohne Kommentar
$i = 1*50000;