Skip to content

Commit

Permalink
IPSComponent - Fixed IPSComponentSwitch_ZW
Browse files Browse the repository at this point in the history
  • Loading branch information
Andreas Brauneis committed Jul 22, 2019
1 parent 5350eeb commit d723bf6
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,21 +10,21 @@
/**
* @class IPSComponentSwitch_ZW
*
* Definiert ein IPSComponentSwitch_ZW Object, das ein IPSComponentSwitch Object für Z-Wave implementiert.
* Definiert ein IPSComponentSwitch_ZW Object, das ein IPSComponentSwitch Object für Z-Wave implementiert.
*
* @author Andreas Tibud
* @version
* Version 2.50.1, 22.04.2012<br/>
*/

IPSUtils_Include ('IPSComponentSwitch.class.php', 'IPSLibrary::app::core::IPSComponent::IPSComponentSwitch');

class IPSComponentSwitch_ZW extends IPSComponentSwitch {

private $instanceId;
private $channel;

// Welche Klassen unterstütz der Schalter?
// Welche Klassen unterstütz der Schalter?
private $b_class_basic = false;
private $b_class_switch = false;
private $b_class_multi = false;
Expand All @@ -38,10 +38,16 @@ class IPSComponentSwitch_ZW extends IPSComponentSwitch {
*/
public function __construct($instanceId, $channel=0) {
$this->instanceId = IPSUtil_ObjectIDByPath($instanceId);
// Bei Multiinstanz fähigen Schalter gleich den Kanal merken
// Bei Multiinstanz fähigen Schalter gleich den Kanal merken
$this->channel = (int)$channel;
//Ermittlung der unterstützten Klassen
$classes = ZW_GetNodeClasses((int)$instanceId);

//Ermittlung der unterstützten Klassen
if ((float)IPS_GetKernelVersion() >= 5.1) {
$classes = json_decode(ZW_GetInformation((int)$instanceId), true);

This comment has been minimized.

Copy link
@paresy

paresy Jul 26, 2019

Hi Andreas,

so sollte es besser klappen:

$i = json_decode(ZW_GetInformation((int)$instanceId), true);
$classes = array_merge(json_decode($i["NodeClasses"], true), json_decode($i["NodeSecureClasses"], true));

} else {
$classes = ZW_GetNodeClasses((int)$instanceId);
}

foreach ($classes as $class) {
switch ((int)$class){
case 32:
Expand All @@ -55,14 +61,13 @@ public function __construct($instanceId, $channel=0) {
break;
}
}

}

/**
* @public
*
* Funktion liefert String IPSComponent Constructor String.
* String kann dazu benützt werden, das Object mit der IPSComponent::CreateObjectByParams
* String kann dazu benützt werden, das Object mit der IPSComponent::CreateObjectByParams
* wieder neu zu erzeugen.
*
* @return string Parameter String des IPSComponent Object
Expand All @@ -77,7 +82,7 @@ public function GetComponentParams() {
* Function um Events zu behandeln, diese Funktion wird vom IPSMessageHandler aufgerufen, um ein aufgetretenes Event
* an das entsprechende Module zu leiten.
*
* @param integer $variable ID der auslösenden Variable
* @param integer $variable ID der auslösenden Variable
* @param string $value Wert der Variable
* @param IPSModuleSwitch $module Module Object an das das aufgetretene Event weitergeleitet werden soll
*/
Expand All @@ -90,8 +95,8 @@ public function HandleEvent($variable, $value, IPSModuleSwitch $module){
*
* Zustand Setzen
*
* @param boolean $value Wert für Schalter
* @param integer $onTime Zeit in Sekunden nach der der Aktor automatisch ausschalten soll (nicht unterstützt)
* @param boolean $value Wert für Schalter
* @param integer $onTime Zeit in Sekunden nach der der Aktor automatisch ausschalten soll (nicht unterstützt)
*/
public function SetState($value, $onTime=false) {
// Ein Binary Switch
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Version="2.50.68"
Version="2.50.69"
InstallVersion="2.50.1"
ModuleNamespace="IPSLibrary::app::core::IPSComponent"
[App]
Expand Down Expand Up @@ -184,3 +184,4 @@ IPSLogger="2.50.2"
2.50.66="Neue Axis Kamera Anbindung (P1344)"
2.50.67="Fixed MediaPlayer Component"
2.50.68="Added IPSComponentShutter_Tasmota.class"
2.50.69="Anpassung von IPSComponentSwitch_ZW an v5.1"

0 comments on commit d723bf6

Please sign in to comment.