BestEx
27. Dezember 2011 um 22:27
1
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)
paresy
27. Dezember 2011 um 22:53
2
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
paresy
Ich würde das array mal auseinandernehmen und einzelne Werte probieren, bei mir geht es.
BestEx
27. Dezember 2011 um 23:07
4
autoinclude wurde von mir nicht veraendert. sry fuer die bloede frage aber was ist die korrekte $IPS_variante ???
BestEx
27. Dezember 2011 um 23:39
5
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];
BestEx:
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
BestEx
27. Dezember 2011 um 23:49
7
Danke Dave aber dann muss Paresy etwas anderes mit
gemeint haben
Beispiel:
$IPS_SENDER = $_IPS['SENDER'];
$IPS_SELF = $_IPS['SELF'];
$IPS_THREAD = $_IPS['THREAD'];
BestEx
28. Dezember 2011 um 00:00
9
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.
paresy
28. Dezember 2011 um 00:12
12
DaveRichter:
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
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
BestEx
28. Dezember 2011 um 00:13
13
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
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.
BestEx
28. Dezember 2011 um 07:14
15
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 Aber wozu haben wir Wochenenden
BestEx
28. Dezember 2011 um 23:35
16
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
paresy
29. Dezember 2011 um 02:26
17
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