IPS_RunScriptWaitEx funktioniert nicht mehr mit der 2.5

Nach dem aufspielen der 2.5. werden die variablen nicht mehr an das aufgerufene Script übergeben.

Aufruf :

IPS_RunScriptWaitEx(44319 /*[Scripte\Spezial\Sichere Ausführung\Safe Execution Jalousien Aktoren]*/,
                                Array("BlINDID" => $Blind_Control_Data[$Counter]["Blind_ID" ],
                                        "MAXCOUNT" => GetValueInteger(32350 /*[Eigene Globale Variablen\Blinds\Error Values\AnzahlVersuche]*/),
                                        "LEVEL" => GetValueFloat(28627 /*[Eigene Globale Variablen\Blinds\Position\Blindsup value]*/),
                                        "SLEEP" => GetValueInteger(45624 /*[Eigene Globale Variablen\Blinds\Error Values\Wartezeit]*/)));
                                        IPSLogger_Inf(c_LogId,IPS_GetName($Blind_Control_Data[$Counter]["Blind_ID" ])." auf Open Position fahren ");
                                         SetValueInteger($Blind_Control_Data[$Counter]["Mode_Status_ID"],1);
                                         SetValueInteger($Blind_Control_Data[$Counter]["Mode_Select_ID"],5);

Scrit mit der ID 44319 :


<?

include "IPSLogger.ips.php";
define( "c_LogId", "Safe Jalousien" );


$check = false;
$Counter = 0;

while ( ! $check )
{
                $check = @HM_WriteValueFloat( $BlINDID, "LEVEL", $LEVEL );
                IPS_Sleep( $SLEEP );
                $Counter++;
                if ( $Counter >= $MAXCOUNT )
                {
                                $check = true;
                }
                else
                {

                }

}
/* HM_RequestStatus($BlINDID,"LEVEL");*/


?>

Fehlermeldung und Logfile sind angefügt. Bin für jeden Hinweis dankbar

logfile1325017774.txt (96.9 KB)

Du hast die __autoinclude.php im Skriptorder aber nicht verändert, oder?

Du kannst dir wahrscheinlich behelfen, indem du auf die neue, korrekte $_IPS Veriante umsteigst :slight_smile:

paresy

Ich würde das array mal auseinandernehmen und einzelne Werte probieren, bei mir geht es.

autoinclude wurde von mir nicht veraendert. sry fuer die bloede frage aber was ist die korrekte $IPS_variante ???

Die Doku 2.5 sagt :

Neu: $IPS_* ist nun per $_IPS[li]
[/li]
Das ist mir leider zu kryptisch.

Heißt es das ? : $_IPS_RunScriptWaitEx[„Var1“,1];

IPS_RunScriptWait ist ja eine function da gilt das nicht…

Neu: $IPS_* ist nun per $_IPS[li] gilt nur für Variablen,
[/li]
es ändern sich zwar auch einige functionen aber nicht diese :slight_smile:

Danke Dave aber dann muss Paresy etwas anderes mit

gemeint haben

Beispiel:


	$IPS_SENDER = $_IPS['SENDER'];
	$IPS_SELF = $_IPS['SELF'];
	$IPS_THREAD = $_IPS['THREAD'];

Danke, jetzt hab ich es verstanden und in der Doku auch gefunden. Leider hilft es mir bei meinem Problem (siehe oben nicht) weiter. Irgendetwas hat sich bei der 2.5. bei der Parameter Übergabe von aufgerufenen Scripts geändert.

Probiere mal nur:


IPS_RunScriptWaitEx(44319 /*[Scripte\Spezial\Sichere Ausführung\Safe Execution Jalousien Aktoren]*/,
                                Array("MAXCOUNT" => GetValueInteger(32350 /*[Eigene Globale Variablen\Blinds\Error Values\AnzahlVersuche]*/),
                                        "LEVEL" => GetValueFloat(28627 /*[Eigene Globale Variablen\Blinds\Position\Blindsup value]*/),
                                        "SLEEP" => GetValueInteger(45624 /*[Eigene Globale Variablen\Blinds\Error Values\Wartezeit]*/)));

$BlINDID mal manuell setzen.

Die Array Übergabe funktioniert nicht mehr mit 2.5
Das Problem hatte ich auch mit Goolgecharts.
Schaue dir einfach einmal die Konfig-Datei an.
Ich habe es mit inculde gelöst.

Da gilt dies auch. Ich habe die Doku auch entsprechend angepasst.

Kann es vielleicht am IPSLogger liegen? Das ist das einzige, was noch in deinem Skript davor läuft…

@meike: Array im Array wird nun korrekterweise unterbunden. Sein Vorhaben sollte korrekt funktionieren.

paresy

OK Ich werde mir morgen ein 2.5 Test System aufbauen und melde mich dann. Bin im Moment wieder auf die 2.4 umgestiegen da meine Heizungssteuerung mit der 2.5 aus dem oben genannten Grund verrückt spielte und es im Moment etwas zu warm wurde :frowning:

Danke an Alle für die schnelle Unterstützung

array Funktioniert, habe ich probiert.
Die IPSLogger Idee von paresy solltest Du auf alle Fälle mal probieren.

Das war die Lösung :

Mein script sieht jetzt so aus und funktioniert :


<?

include "IPSLogger.ips.php";
define( "c_LogId", "Safe Jalousien" );


$check = false;
$Counter = 0;

while ( ! $check )
{
				$check = @HM_WriteValueFloat( $_IPS['BlINDID'], "LEVEL", $_IPS['LEVEL'] );
				IPS_Sleep($_IPS['SLEEP']);
				$Counter++;
				if ( $Counter >= $_IPS['MAXCOUNT'] )
				{

								$check = true;
				}
				else
				{

				}

}


?>

Das wird eine ganze Menge Arbeit werden alles umzuschreiben :frowning: Aber wozu haben wir Wochenenden :slight_smile:

Das ganze hat mich ca. 8 Stunden gekostet.

Google Chart und IPS Logger haben problemlos in der aktuellen Version funktioniert, Danke Jungs (Brownson + Mike0_0) habt Ihr gut auf die 2.5 vorbereitet.

Etwas suchen musste ich bei den Fehlermeldungen ohne Verweis auf die Script ID. Passiert wenn man scripte in den Ereignisaufruf einbaut und dabei nicht die $_IPS[li] verwendet. War mühsam aber das Logfile hatte alle Info`s.
[/li]
Vielen Dank nochmal an alle für die Unterstützung bei der Fehlersuche

Damit bist du für die 3.x gut gerüstet. Trotzdem sollte es für die 2.5 nicht notwendig sein. Falls jemand das selbe Problem hat, wäre ich sehr daran Interessiert, unter welchen Umständen dieses Problem auftritt.

paresy