Um alle Z-Wave Geräte in IP-Symcon herauszufinden, die batteriebetrieben sind kann folgende Funktion in einem Script genutzt werden:
function getBatteryNodes($ZW_ConfiguratorID, $ZW_GatewayID) {
$ZW_Nodes = ZW_GetKnownDevices($ZW_ConfiguratorID);
$BatteryNodes = array();
$i = 0;
foreach ($ZW_Nodes as $ZW_Node) {
if ($ZW_Node["InstanceID"] > 0) {
$NodeClasses =IPS_GetProperty($ZW_Node["InstanceID"], 'NodeClasses');
$NodeClasses = substr($NodeClasses, 1, -1);
$NodeClasses = explode(",", $NodeClasses);
//Class 128 = Battery
if(in_array("128",$NodeClasses)){
$BatteryNodes[$i] = $ZW_Node["NodeID"];
$i++;
}
}
}
return $BatteryNodes;
}
Der Aufruf der Funktion erfolgt folgendermaßen:
$Nodes = getBatteryNodes(12345, 54321);
Die Funktion liefert ein Array mit allen IDs der batteriebetriebenen Z-Wave Geräten.
2 Kommentare
Alexander · 16. Dezember 2019 um 12:47
Hallo,
die Funktion ist sehr interessant, weil die Klassen und nicht eine Bezeichnung ausgewertet werden. Leider wird in Zeile 7 eine Fehlermeldung erzeugt: „Eigenschaft NodeClasses nicht gefunden“. In der Dokumentation von IP-Symcon https://www.symcon.de/service/dokumentation/befehlsreferenz/instanzenverwaltung/konfiguration/ips-setproperty/ (IPS_SetProperty listet alle Eigenschaften, welche auch für IPS_GetProperty gültig sind) wird die Eigenschaft NodeClasses auch nicht aufgeführt.
Hat sich etwas geändert? Wie kann das Problem gelöst werden?
Danke.
Alexander
Schnittcher · 16. Dezember 2019 um 14:05
Hallo Alexander,
ich selbst habe leider keine Z-Wave mehr und kann es nicht testen.
Grüße,
Kai