Während bei dem Testscript alles einwandfrei funktionierte, funktioniert es nicht in den Produktiven echten Variablen, dort wird mir nur der Name der Obersten Instanz statt dem Gerät der Variable verwendet.
Guten Morgen @tobiasr. danke für deine Hilfe. Habe den Screenshot angehangen - ich möchte erreichen, das wenn der Status von LOWBATT (32074) den Wert „Batterie Schwach“ annimmt, das dann der PHP Code ausgeführt wird (Mail senden) - da in allem Scripten der selbe Code sein soll, will ich nicht den Namen hart eincodieren, sondern auslesen - dazu möchte ich gerne den Namen der Instanz verwenden (in dem Beispiel z.B. Flur Thermostat, ID 45674).
Noch besser wäre es, wenn ich ein Script haben (z.B. batterie-email mit der ID 12345, so das ich dann per IPS_RunScript(12345) als PHP Code in jeder Batterievariablen von allen Thermostasten hinterlegen - so brauche ich nur noch an einer Stelle z.B. Anpassungen vornehmen.
Während ich erst mal mit einer Testvariable getestet hatte, hatte alles funktioniert - nur beim Übertragen auf die echten Variablen wird mir entweder gar nichts angezeigt oder der Namen der Hauptkategorie angezeigt, bei dem Befehl: strtoupper(IPS_GetName($_IPS[‚VARIABLE‘]))
59862 ist eine Stringvariable so das ich schneller testen kann. Sowohl mit als auch ohne GetParent stand da immer das drin was ich wollte. Als Trigger habe ich erst eine eigene Bool und danach die Leistung einer Steckdose genommen damit sich da auch was tut. Ich konnte es nicht nachstellen.
Statt RunScript musst Du RunScriptEx benutzen damit Du die ID der Variablen übergeben kannst. Aufruf wäre dann:
Danke für eure Hilfe - und besonders anke für den Tip mit dem Modul Ralf. Wenn das funktioniert, kann ich mir den ganzen Aufwand natürlich sparen. Es ist echt schon unglaublich was wir alles feines im Modulstore haben.