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 Comments
Alexander · 16. December 2019 at 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. December 2019 at 14:05
Hallo Alexander,
ich selbst habe leider keine Z-Wave mehr und kann es nicht testen.
Grüße,
Kai