Hallo,
ich habe hier schon tolle Routing Tabellen für das Webfront gesehen - ob sie unter 4.0 laufen, weiß ich nicht. Ich habe mir aus den Beispielen eine einfache Texttabelle erstellt:
<?
// erstellt eine Routing Tabelle für ZWave-Module
// benötigt wird eine String-Variable ($txt_id) mit dem Profil ~TextBox
// zur Darstellung im Webfront
// eigene Werte einsetzen
$gw_id = 12345 /*[Z-Wave Gateway]*/;
$conf_id = 12345 /*[Z-Wave Configurator]*/;
$txt_id = 12345 /*Routing Tabelle im Webfront als string*/;
// Array aller ZWave-Module, ist UNSORTIERT
$d_list = ZW_GetKnownDevices($conf_id);
// Array sortieren
function _cmp($a, $b)
{
return $a['NodeID'] > $b['NodeID'];
}
usort($d_list, "_cmp");
// zweidimensionales Array erstellen mit Nodes und zugehörigem Routing
$i = 0;
foreach($d_list as $list)
{
// Untergruppen werden nicht benötigt
if(intval($list['NodeSubID']) > 0)
{
continue;
}
$nodes[$i]["NODEID"] = intval($list["NodeID"]);
$nodes[$i]["KNOWNIDS"] = ZW_RoutingGetNodes($gw_id, intval($nodes[$i]["NODEID"]));
$i = $i+1;
}
// Kopfzeile der Tabelle
$tableText = ".";
foreach($nodes as $node)
{
$tableText .= " ".$node["NODEID"];
}
$tableText .= "
";
// Zeilen in der Tabelle
foreach($nodes as $node_z)
{
$z = $node_z["NODEID"];
$tableText .= $z;
// Spalten in der Tabelle
foreach($nodes as $node_s)
{
$s = $node_s["NODEID"];
$found = " -";
// routed nodes
foreach($node_z["KNOWNIDS"] as $dev)
{
if($s === $dev)
{
$found = " X";
break;
}
}
$tableText .= $found;
}
$tableText .= "
";
}
// Text in TextBox für Webfront setzen
SetValue($txt_id, $tableText);
?>
Die Tabelle hat natürlich den Nachteil, dass dargestellten Zeichen nicht gleich groß sind. Für ein großes Netz ist sie wohl eher ungeeignet.
Grüße, Gerhard