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

Leave a Reply

Your email address will not be published. Required fields are marked *

en_USEnglish