thka
26. Dezember 2010 um 10:33
1
Ich möchte über ein Script ein neues Script anlegen, und hab dabei das Problem einen Variablenamen zu erstellen.
Wie kann ich die Variable $ID_Rollladen1 anlegen? sobald ich das $ Zeichen voranstelle wird die ID erzeugt und nicht der Text.
Als Ergebnis möchte ich im Script $ID_Rollladen1 = 12345; stehen haben
$script_inhalt ="<?"."
";
$script_inhalt.="/*"."
";
$script_inhalt.="//Sript wurde automatisch angelegt"."
";
$script_inhalt.="$ID_Rollladen1= $ID_Rollladen1;"."
";
$script_inhalt.="?>"."
";
$fn = IPS_GetKernelDir()."scripts\\".$Script_name.".ips.php";
$handle=fopen($fn,"w");
fwrite($handle,$script_inhalt);
fclose($handle);
UVoigi
26. Dezember 2010 um 11:03
2
$ScriptID = @IPS_GetScriptIDByName($ScriptNAME, $ParentID);
if ($ScriptID == 0){
$ScriptID = IPS_CreateScript(0);
IPS_SetName($ScriptID, $ScriptNAME);
IPS_SetParent($ScriptID, $ParentID);
IPS_SetInfo($ScriptID, "This script was created by: #$IPS_SELF#");
Vieleicht so, musst es nur noch anpassen.
thka
26. Dezember 2010 um 11:24
4
kann ich $ID_Rollladen1 nicht mit einem hochkomma oder so erstellen damit die ID nicht erzeugt wird? das wird ja sonst sehr kompliziert
der automatisch angelegte Script sollte dann in etwa so aussehen:
<?
//
// Script zum öffnen/schließen des Fenster Rollladen im Wohnzimmer
// Rollladen offen = True
//
$id_Geraet = 29025 /*[COM-Server 8000]*/;
$id_WZ_Rollladen_Fenster = 59560 /*[Wohnzimmer\Rollladen Fenster\Rollladen Fenster]*/;
if (GetValueBoolean($id_WZ_Rollladen_Fenster) == False)
{
// Befehl senden WZ Rolladen Fenster auffahren
CSCK_SendText($id_Geraet,chr(0x02)."052502".chr(0x03)); // Rollladen 1 öffnen
IPS_Sleep(200);
for($i=0; $i <= 5; $i++)
{
// Befehl senden Rolladen Fenster auffahren
if (GetValueBoolean($id_WZ_Rollladen_Fenster) == False)
{
CSCK_SendText($id_Geraet,chr(0x02)."052502".chr(0x03)); // Rollladen 1 Fenster auffahren
IPS_Sleep(200);
}
}
}
else
{
// Befehl senden WZ Rolladen Fenster zufahren
CSCK_SendText($id_Geraet,chr(0x02)."052503".chr(0x03)); // Rollladen 1 schließen
IPS_Sleep(200);
for($i=0; $i <= 5; $i++)
{
// Befehl senden Rolladen Fenster zufahren
if (GetValueBoolean($id_WZ_Rollladen_Fenster) == true)
{
CSCK_SendText($id_Geraet,chr(0x02)."052503".chr(0x03)); // Rollladen 1 Fenster zufahren
IPS_Sleep(200);
}
}
}
?>
thka
26. Dezember 2010 um 11:29
5
Ferengi-Master:
'$ID_Rollladen1='
… ist die ganze Magie.
so habe ich mir das auch gedacht, geht aber leider nicht bei mir
$script_inhalt.="'$id_Geraet=' $id_Geraet;"."
";
das ergebnis ist dann zwei mal die ID im Script
‚29025=‘ 29025;
$script_inhalt.='$ID_Rollladen1='."$ID_Rollladen1;
";