Wie erkennt man die Script ID, die IPS_runScript ausführt

Guten Morgen,

Ich habe ein kleines Script, welches eine Pumpe ausschaltet. Dieses Script wird von Anderen, mittels IPS_runscript gestartet. Irgend jemand schaltet die Pumpe ständig aus und ich finde den Verursacher nicht. Mit $_IPS[‚SENDER‘] finde ich nur heraus, dass es der runscript Befehl ist.
Kann Jemand helfen?

Grüße Jens

Eine Idee wäre mal zu suchen ob du irgendwo eine laufende Zweitinstallation von IPS hast (alter Lap,Testsystem etc), weil da suchst du sonst lange. Dann würde ich, wenn die Pumpe schaltet, nach dem Zeitpunkt einfach im IPS Log suchen, dann siehst gleich wer das Script startet.(außer natürlich eben keine Zweitinstallation, da habe ich mal viel Zeit mit suchen verloren)

Nachtrag, je nach Geraetetyp könnte auch eine Direktverbindung oder gruppenschaltung das Auslösen… Zbsp HM oder Eaton, da musst du in den jeweiligen GW-Stationen schauen. Davon sieht IPS gar nichts.

Danke für die schnelle Antwort,

ich habe mich sicher falsch ausgedrückt. Wenn ich in das kleine Script
setvalue(12345,$_IPS[‚SENDER‘]);
echo getvalue(12345);
schreibe,
erscheint

run_script

Ich möchte aber die ID also 54321, wo dieses run_script ausgeführt wird

Moin!

Du könntest in den anderen Skripten statt mit „IPS_RunScript“ mit „IPS_RunScriptEx“ die anderen Skripte starten und so die SkriptID mit übergeben und dann im Ziel-Skript auch auswerten/ausgeben!

Grüße,
Chris

Der üblich Mangel von IPS, diskutiert hier

Abhilfe mit „workaround“: bei allen Aufrufen eines anders Skriptes (und das muß es ja sein, wenn $_IPS[‚SENDER‘] == ‚RunScript‘ ist, dann ist das Skript durch eine der IPS_RunScript Funktionen ausgeführt worden) selbst die Parameter mitgeben:

IPS_RunScriptEx(xxxxx, Array ( 'TRIG' => $_IPS['SELF'], 'Parameter'=>$SonstigeWerte));  

In der Praxis heißt das für Dich: alle Skripte bei den Funktionen IPS_RunScript/IPS_RunScriptWait/IPS_RunScriptEx/IPS_RunScriptWaitEx überarbeiten :loveips:

Viele Grüsse
Harald

Danke Leute,

habe ich verstanden.
Mit --in allen Dateien ersetzen-- sollte das leicht machbar sein! :slight_smile:
Könnt ihr mir noch helfen das IPS_GetName($_IPS[‚SELF‘])." Zeile:".LINE." Zeit:".date(„H.i.s“) in die Formel zu packen und im Zielscript in ein setvaluestring(12345) zu schreiben? Bei Arrays habe ich oft eine Hirnblockade. :o

Grüße Jens