Habe ein kleines Script geschrieben um eine Auflistung der in IPS installierten Moeller Xcomfort Komponenten zu erhalten.
$guid_arr = array(
"{D2DCE381-19A7-4D14-B819-49C0539BC350}",
"{27DD9788-802E-45B7-BA54-FB97141398F7}",
"{8050FEEC-C875-4BDD-9143-D15134B89D35}",
"{1B7B5B7D-CAA9-4AB5-B9D8-EC805EC955AD}",
"{3040A77D-3E9C-42D4-A1B6-329EFE8086DB}",
"{DCBD8143-83AB-4068-8FC0-0C92A93AA8A8}",
"{1A1C4C67-C99D-4D3E-8A34-23581CE8CCAA}",
"{591B4A05-E5BF-4EEA-BC34-36E6F1CC9D56}",
"{DA2FCC12-2DE1-404A-8A5E-1C6AF05F96A2}");
foreach($guid_arr as $guid)
{
$info_arr = IPS_GetInstanceListByModuleID($guid);
$module = IPS_GetModule($guid);
echo "
"."Modulname: ".$module['ModuleName']."
";
$info_summe = array();
foreach($info_arr as $info)
{
$name = IPS_GetName($info);
$ort = IPS_GetLocation($info);
$info_summe[] = "Ort: ".$ort." = > Name: ".$name." (ID: ".$info.")";
}
sort($info_summe);
$erg = count($info_summe);
if($erg >= 1)
{
for($i=0;$i<$erg;$i++)
{
echo $info_summe[$i]."
";
}
}
else
{
echo "Keine Objekte in diesem Modul vorhanden."."
";
}
}
$guid_arr = array(
"{D2DCE381-19A7-4D14-B819-49C0539BC350}",
"{27DD9788-802E-45B7-BA54-FB97141398F7}",
"{8050FEEC-C875-4BDD-9143-D15134B89D35}",
"{1B7B5B7D-CAA9-4AB5-B9D8-EC805EC955AD}",
"{3040A77D-3E9C-42D4-A1B6-329EFE8086DB}",
"{DCBD8143-83AB-4068-8FC0-0C92A93AA8A8}",
"{1A1C4C67-C99D-4D3E-8A34-23581CE8CCAA}",
"{591B4A05-E5BF-4EEA-BC34-36E6F1CC9D56}",
"{DA2FCC12-2DE1-404A-8A5E-1C6AF05F96A2}");
$ergebnis = array();
$arr_nummer = 0;
foreach($guid_arr as $guid)
{
$info_summe = array();
$arr_nummer = $arr_nummer+1;
$info_arr = IPS_GetInstanceListByModuleID($guid); //einzelne Instanzinfos zum Modul holen
$module = IPS_GetModule($guid); //Infos zum einzelnen Modul
$info_summe[] = "
"."Modulname: ".$module['ModuleName'];
if(count($info_arr) == 0)
{
$info_summe[] = "Keine Objekte in diesem Modul vorhanden.";
}
$info_summe_umg = implode("
", $info_summe);
$ergebnis[$arr_nummer] = $info_summe_umg;
//einzelnes Modul nach Instanzen durchsuchen
$instanz_info = array();
foreach($info_arr as $info)
{
$name = IPS_GetName($info);
$ort = IPS_GetLocation($info);
$x = explode("\\", $ort);
$anz = count($x);
unset($x[$anz-1]);
$ort = implode("\\", $x);
$instanz_info[] = "Ort: ".$ort." = > Name: ".$name." (ID: ".$info.")";
sort($instanz_info); //Instanzen je Modul nach Ort sortieren
}
$instanz_info_erg = implode("
", $instanz_info);
$arr_nummer = $arr_nummer+1;
$ergebnis[$arr_nummer] = $instanz_info_erg;
}
$info_summe = implode("
", $ergebnis);
echo $info_summe;
Aktualisierte Fassung mit Sortierfunktion nach Ort im Objektbaum.
Installation:
Einfach in ein leeres Script kopieren und aufrufen.
$info_summe in ein Memofeld im Dashboard oder in einer Textbox im WebFront ausgeben.