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

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

de_DEGerman
en_USEnglish de_DEGerman