Hallo Zusammen,
ich versuche immer noch den Fehlermeldungen auf den Grund zu gehen:
18.08.2018 07:31:17 | ScriptEngine | Ergebnis für Ereignis 11258
Warning: Objekt mit Ident TemperatureChange wurde nicht gefunden in /var/lib/symcon/scripts/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_Device.class.php on line 620
Warning: Variable #0 existiert nicht in /var/lib/symcon/scripts/IPSLibrary/app/modules/IPSShadowing/IPSShadowing_Device.class.php on line 620
Die Line 620 in ipsshadowing_Device Skript sieht so aus:
public function ChangeSetting($controlId, $value) {
if (GetValue($controlId)<>$value) {
if (IPS_GetIdent($controlId)==c_Control_Automatic) {
// Ab hier beginnt line 620:
if (GetValue(IPS_GetObjectIDByIdent(c_Control_TempChange, $this->deviceId))) {
SetValue(IPS_GetObjectIDByIdent(c_Control_TempChange, $this->deviceId), false);
}
} else {
}
if (GetValue(IPS_GetObjectIDByIdent(c_Control_ManualChange, $this->deviceId))) {
SetValue(IPS_GetObjectIDByIdent(c_Control_ManualChange, $this->deviceId), false);
}
SetValue($controlId, $value);
IPSShadowing_LogChange($this->deviceId, $value, $controlId);
$this->SetStatus();
}
}
Was kann ich machen, um den Fehler weiter einzugrenzen. Hat jemand Ansätze, wie ich hier weiter vorgehen kann?
Ist das überhaupt ein Fehler in IPSShadowing Skript oder könnte es it dem Update auf IPS 5.0 zu tun haben?
Was bedeutet Variable 0# existiert nicht und warum finde ich diese Variable nicht? Für mich klingt das nach einer systeminternen Fehlermeldung, weil sich die ID auch so ungewöhnlich anhört.
Hier zur Vollständigkeit das auslösende Skript. Wobei für mich es so aussieht, dass das nicht der Grund ist.
<?
IPSUtils_Include("IPSShadowing.inc.php", "IPSLibrary::app::modules::IPSShadowing");
IPSUtils_Include("IPSLogger.inc.php", "IPSLibrary::app::core::IPSLogger");
if ($_IPS['SENDER'] == 'Variable'){
//Terrassentür, Device4
if ($_IPS['VARIABLE'] == 21252 /*[Erdgeschoss\Wohn-/Kochbereich\Türkontakt_EG_Gartentür\STATE]*/){
$zustand = GetValue($_IPS['VARIABLE']);
$deviceId = 30692 /*[Erdgeschoss\Wohn-/Kochbereich\Rolladenaktor_WHZ_Gartentür]*/ ;
$manual = 28340 /*[Program\IPSLibrary\data\modules\IPSShadowing\Devices\Device4\ManualChange]*/ ;
$automatik = 24112 /*[Program\IPSLibrary\data\modules\IPSShadowing\Devices\Device4\Automatic]*/ ;
$fullopen = true;
switchState($zustand, $deviceId, $manual, $automatik, $fullopen);
}
//Schlafzimmer, Device5
if ($_IPS['VARIABLE'] == 36995 /*[Erdgeschoss\Schlafzimmer\Fensterkontakt_Schlafzimmer\STATE]*/){
$zustand = GetValue($_IPS['VARIABLE']);
$deviceId = 17977 /*[Erdgeschoss\Schlafzimmer\Rolladenaktor Schlafzimmer]*/ ;
$manual = 28420 /*[Program\IPSLibrary\data\modules\IPSShadowing\Devices\Device5\ManualChange]*/;
$automatik = 13276 /*[Program\IPSLibrary\data\modules\IPSShadowing\Devices\Device5\Automatic]*/ ;
$fullopen = false;
switchState($zustand, $deviceId, $manual, $automatik, $fullopen);
}
}
//ab hier nichts ändern
function switchState($zustand, $deviceId, $manual, $automatik, $fullopen){
IPS_Sleep(500); //Warten
switch($zustand){
case 0 /*Geschlossen*/:
$profileManager = new IPSShadowing_ProfileManager();
$profileManager->UpdateProfileInfos();
$device = new IPSShadowing_Device($deviceId);
$device->ChangeSetting($manual, false);
$device->ChangeSetting($automatik, true);
$device->CheckPrograms($profileManager);
break;
case 1 /*Geöffnet*/:
$profileManager = new IPSShadowing_ProfileManager();
$profileManager->UpdateProfileInfos();
$device = new IPSShadowing_Device($deviceId);
$device->ChangeSetting($automatik, false);
$device->ChangeSetting($manual, true);
$device->CheckPrograms($profileManager);
if (GetValue(43376 /*[Location Control\Ist es Tag]*/) == true){
$device = $device->MoveByControl(c_MovementId_Opened);
}else{
if ($fullopen == true){
$device = $device->MoveByControl(c_MovementId_Opened);
}else{
$device = $device->MoveByControl(c_MovementId_90);
}
}
break;
}
}
?>
Ich bin für jeden Hinweis dankbar!!!