Alle Moeller Xcomfort Komponenten anzeigen

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.