Ich habe das Problem wenn ich z.B CreateScriptByName nutze wird das Script erstellt aber nicht !
Aber nicht mit Inhalt befüllt!
Kann mir jemand erklären wo dran das liegt!!
Nutzen tue das ich Installationsscript aus diesem Beitrag!
https://www.symcon.de/forum/threads/16083-Chromoflex-RC-Steuerung-mit-RGB-Fader-und-Color-Picker
Da wird CreateScriptByName genutzt.
paresy
24. Juni 2015 um 14:59
2
Evtl. \ gegen / tauschen? Du kannst auch auf die IPS_SetScriptContent Methode umstellen
paresy
Ja das war die Lösung! Danke
Nach langer Zeit möchte noch ein Chromoflex-RC zufügen und scheitere an der CreateScriptByName Funktion.
Ich habe es auch mit
versucht aber bekomme mehr oder weniger den gleichen Fehler! Im String der übergeben wird
if ($_IPS['SENDER'] == "WebFront")
moniert.
Hier mal das Test Skript:
<?php
$ZielSkript_Name = "TestSkript";
$ParentID = $_IPS['SELF'];
$Script_ID = @IPS_GetScriptIDByName($ZielSkript_Name, $ParentID);
if ($Script_ID === false) {
fopen("$ZielSkript_Name.ips.php","w");
$Script_Path = "$ZielSkript_Name.ips.php";
$Script_ID = IPS_CreateScript(0);
$Script = IPS_GetScript($Script_ID);
unlink(IPS_GetKernelDir() . '/scripts/' . $Script['ScriptFile']);
IPS_SetScriptFile($Script_ID, $Script_Path);
IPS_SetParent($Script_ID, $ParentID);
IPS_SetName($Script_ID, $ZielSkript_Name);
$Script_Inhalt =
'<?php
// Hier steht der Inhalt vom Ziel-Skript
echo "Ich bin ein neues Skript!";
if ($_IPS['SENDER'] == "WebFront")
{
SetValue($_IPS['VARIABLE'], $_IPS['VALUE']);
}
?>';
IPS_SetScriptContent($Script_ID, $Script_Inhalt);
}
else {
echo "Das Skript mit dem Namen '$ZielSkript_Name' existiert bereits!";
}
?>
Und die Fehlermeldung:
Parse error: syntax error, unexpected identifier "SENDER" in C:\ProgramData\Symcon\scripts\55458.ips.php on line 23
Was ist daran falsch?
Du hast ein den Scriptinhalt IN den einfachen Hochkommatar '
das ist soweit auch in Ordnung. Aber innerhalb des Scripts auch. Daher musst du die im Script mit einem \
escapen. Sieht dann z.B. so aus:
if ($_IPS[\'SENDER\'] == "WebFront")
Danke geht. (Auch bei der alten CreateScriptByName Variante)