Fehlermeldung - welches Skript???

Hallo,

ich bekomme leider immer wieder folgende Fehlermeldung:

Leider kann ich nicht erkennen, auf welches Skript sie sich bezieht - kann hier jemand weiterhelfen, wie „Script /-“ zu verstehen ist?

Danke und viele Grüße…

Aufgrund des Verdachts, dass eine zu beschreibende String-Var dahintersteckt habe ich folgendes Skript gebastelt, das getriggert wird, wenn sich die LogString verändert:

$msg = GetValueString(38203 /*[Program\IPSLibrary\data\core\IPSLogger\IPSLogger\HtmlOut_MsgList]*/);                         
if (strpos($msg, 'Limit von 1024kb überschritten') !== false)                                                            
    {
    $all = IPS_GetVariableList();                                                                                        
    $ids = array();                                                                                                        
    
    foreach($all AS $value)                                                                                                
        {
        if ((IPS_GetVariable($value)['VariableType'] == 3) && (IPS_GetVariable($value)['VariableIsLocked'] == true))     
            {
            $ids[] = $value;                                                                                            
            }
        }
    $string = implode(",", $ids);                                                                                         
    SetValueString(43893 /*[Test\Testkript2\Text]*/, $string);                                                          
    $handy = substr($string, 0, 255);                                                                                   
    if ($handy != "")
        {
        WFC_PushNotification(49045 /*[CustomApp]*/, 'Mitteilung Hausautomatisierung', $handy, '', 0);                       
        }
    else
        {
        WFC_PushNotification(49045 /*[CustomApp]*/, 'Mitteilung Hausautomatisierung', 'Keine ID der fehlerhaften StringVar', '', 0);
        }
    }  

Ich bekomme die Meldung „Keine ID der fehlerhaften StringVar“ und die Var 43893 bleibt leer, nur der Zeitstempel verändert sich.

Nach meinem Verständnis ist damit bestätigt, dass eine String-Var gesperrt ist und die Fehlermeldung auslöst - wie aber kann diese keine IPS-ID haben???

Für Hilfe und Ideen bin ich nach wie vor dankbar…!

Nein. Die Fehlermeldung sagt, dass du mehr als 1024kB in die Variable schreiben wolltest. Das ist einfach nicht erlaubt. Wenn keine Skript ID in der Fehlermeldung siehst ist es ein Indikator dass ein Ereignis dies ausfuhren will.

paresy

Danke, Paresy. Aber ich möchte ja zunächst über das gepostet Skript die ID der (zu beschreibenden, aber gesperrten) Variablen (nicht des Skripts, das beschreiben möchte) rausfinden und hier bekomme ich nichts - die Variable muss doch eine ID haben…?!?

Da in der Fehlermeldung von IPSLogger darüber keine Info darüber ist, wird es schwierig sein diese ID herauszufinden. Du müsstest also überlegen wer so viel Inhalt schreiben könnte um den Fehler zu finden.

paresy

Danke. Aber die ID versuche ich doch über das Skript in #2 herauszufinden. Offenbar gibt es ja auch eine gesperrte String-Variable, ansonsten würde ich die Meldung auf das Handy ja nicht bekommen. Nur eine ID für die gesperrte Variable gibt es offenbar nicht. Oder stimmt in dem Skript in #2 zur ID-Ermittlung etwas nicht?

Eine Variable ist nur Locked wenn diese über deinem Lizenzlimit liegt. Ist das bei dir der Fall?

paresy

Ah, ok, danke. Das war dann ein Missverständnis.

Ich habe eine Unlimited Lizenz. Deshalb wundert es mich dann allerdings, dass die if-Schleife eröffnet ist?!?

Da muss ich mir bei rd. 850 String-Variablen wohl was anderes einfallen lassen, um die richtige zu finden.

So, ich habe den Übeltäter über dieses Skript gefunden (falls es mal jemand gebrauchen kann):

$msg = GetValueString(30119 /*[Program\IPSLibrary\data\core\IPSLogger\IPSLogger\SingleOut_Msg]*/);					
if (strpos($msg, 'überschritten') !== false)																					
	{
	$all = IPS_GetVariableList();								                                                        
	$ids = array();																					                   
	
	foreach($all AS $value)																								
		{
		if ((IPS_GetVariable($value)['VariableType'] == 3) && ($value != 30119 /*[Program\IPSLibrary\data\core\IPSLogger\IPSLogger\SingleOut_Msg]*/) && ($value != 38203 /*[Program\IPSLibrary\data\core\IPSLogger\IPSLogger\HtmlOut_MsgList]*/) && ((IPS_GetVariable($value)['VariableChanged'] == IPS_GetVariable(30119 /*[Program\IPSLibrary\data\core\IPSLogger\IPSLogger\SingleOut_Msg]*/)['VariableChanged']) or (IPS_GetVariable($value)['VariableChanged'] == (IPS_GetVariable(30119 /*[Program\IPSLibrary\data\core\IPSLogger\IPSLogger\SingleOut_Msg]*/)['VariableChanged'] - 1)))) 	
			{
			$ids[] = $value;																							
			}
		}
	$string = implode(",", $ids); 																						
	SetValueString(43893 /*[Test\Testkript2\Text]*/, $string);                                                          
    $handy = substr($string, 0, 255);                                                                                  
    if ($handy != "")
		{
		WFC_PushNotification(49045 /*[CustomApp]*/, 'Mitteilung Hausautomatisierung', $handy, '', 0); 				      
		}
	else
		{
		WFC_PushNotification(49045 /*[CustomApp]*/, 'Mitteilung Hausautomatisierung', 'Keine ID der fehlerhaften StringVar', '', 0); 
		}
	}	

Viele Grüße…