Hallo,
habe eine Script zum Anlegen der 12 Input sowie 12 Outputs eines Wut 57630. (siehe unten)
Nun möchte ich die Channels auch per Script den Variablen zuweisen. In den 3 IPS-Funktionen WUT… (Strg+Space) gibt es da nichts Dokumentiertes.
Habe irgendwo den Befehl „WUT_SetIONum“ her. Nur macht der weder, was ich erhoffte, noch gibt es Suchtreffer im Forum bzw. in der IPS-Hilfe. Es gibt aber auch keine Fehlermeldung. Den Befehl gibt es also doch?
Dann muss ich den Teilen ja noch das passende WuT-Gateway geben. Wie mache ich das automatisiert?
<?
// unterhalb von Script wird eine neue Kategorie angelegt, daruntern dann die neuen Instanzen.
// erstellt W&T Inputs und Outputs mit Standard-Namen z.B. WuT Outout 0
$category_id = IPS_CreateCategory();
IPS_SetParent($category_id, $IPS_SELF);
IPS_SetName($category_id, "WuT Inputs");
$inputs = 12;
for ($i=0;$i<$inputs;$i++)
{
$instance_id = IPS_CreateInstance("{C3D0F82C-CD07-4AA8-AE5C-7AD983FE91F3}"); // Instanz-ID für WuT_Input
IPS_SetParent($instance_id, $category_id);
IPS_SetName($instance_id, "WuT Input ".$i);
IPS_SetPosition($instance_id, $i);
WUT_SetIONum($instance_id, $i);
}
$category_id = IPS_CreateCategory();
IPS_SetParent($category_id, $IPS_SELF);
IPS_SetName($category_id, "WuT Outputs");
$outputs = 12;
for ($i=0;$i<$outputs;$i++)
{
$instance_id = IPS_CreateInstance("{E85C40B3-C1E9-4A60-85C7-6CDDA3D8D7BF}"); // Instanz-ID für WuT_Output
IPS_SetParent($instance_id, $category_id);
IPS_SetName($instance_id, "WuT Output ".$i);
IPS_SetPosition($instance_id, $i);
WUT_SetIONum($instance_id, $i);
}
?>
EDIT: Punkt 1 konnte ich mit einem
IPS_ApplyChanges($instance_id);
beheben. Bleibt noch die Zuweisung der übergeordneten Instanz.
EDIT 2: Auch das konnte ich mit viel Suchen und Probieren hinbekommen. Ob es DER Weg ist, weiß ich nicht, aber funktionieren tut es:
<?
// unterhalb von diesem Script werden zwei neue Kategorien angelegt
// erstellt darunter dann die neuen Instanzen der Ein- bzw. Augänge mit Standard-Namen z.B. Web-IO 2 Input 0
// gleiche Bezeichnung im Info-Feld für eine bessere spätere Zuordnung
// das WuT Gateway vorher anlegen (automatisch wird ein WWW-Reader erstellt)
$name = "Web-IO 2";
$gateway = 56121 /*[WuT Gateway 2]*/;
// -----------------------------------------------------------------------------
// Ab hier nichts mehr ändern!
$category_id = IPS_CreateCategory();
IPS_SetParent($category_id, $IPS_SELF);
IPS_SetName($category_id, $name . " Inputs");
$inputs = 12;
for ($i=0;$i<$inputs;$i++)
{
$instance_id = IPS_CreateInstance("{C3D0F82C-CD07-4AA8-AE5C-7AD983FE91F3}"); // Instanz-ID für WuT_Input
IPS_SetParent($instance_id, $category_id);
IPS_SetName($instance_id, $name . " Input ".$i);
IPS_SetInfo($instance_id, $name . " Input ".$i);
IPS_SetPosition($instance_id, $i);
WUT_SetIONum($instance_id, $i);
IPS_ApplyChanges($instance_id);
IPS_ConnectInstance($instance_id, $gateway);
}
$category_id = IPS_CreateCategory();
IPS_SetParent($category_id, $IPS_SELF);
IPS_SetName($category_id, $name . " Output");
$outputs = 12;
for ($i=0;$i<$outputs;$i++)
{
$instance_id = IPS_CreateInstance("{E85C40B3-C1E9-4A60-85C7-6CDDA3D8D7BF}"); // Instanz-ID für WuT_Output
IPS_SetParent($instance_id, $category_id);
IPS_SetName($instance_id, $name . " Output ".$i);
IPS_SetInfo($instance_id, $name . " Output ".$i);
IPS_SetPosition($instance_id, $i);
WUT_SetIONum($instance_id, $i);
IPS_ApplyChanges($instance_id);
IPS_ConnectInstance($instance_id, $gateway);
}
?>