当前位置: 首页>>代码示例>>PHP>>正文


PHP IPS_GetProperty函数代码示例

本文整理汇总了PHP中IPS_GetProperty函数的典型用法代码示例。如果您正苦于以下问题:PHP IPS_GetProperty函数的具体用法?PHP IPS_GetProperty怎么用?PHP IPS_GetProperty使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了IPS_GetProperty函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: ApplyChanges

 public function ApplyChanges()
 {
     //Never delete this line!
     parent::ApplyChanges();
     $change = false;
     // Zwangskonfiguration des ClientSocket
     $ParentID = $this->GetParent();
     if (!($ParentID === false)) {
         if (IPS_GetProperty($ParentID, 'Host') != $this->ReadPropertyString('Host')) {
             IPS_SetProperty($ParentID, 'Host', $this->ReadPropertyString('Host'));
             $change = true;
         }
         if (IPS_GetProperty($ParentID, 'Port') != $this->ReadPropertyInteger('Port')) {
             IPS_SetProperty($ParentID, 'Port', $this->ReadPropertyInteger('Port'));
             $change = true;
         }
         $ParentOpen = $this->ReadPropertyBoolean('Open');
         // Keine Verbindung erzwingen wenn Host leer ist, sonst folgt später Exception.
         if (IPS_GetProperty($ParentID, 'Open') != $ParentOpen) {
             IPS_SetProperty($ParentID, 'Open', $ParentOpen);
             $change = true;
         }
         if ($change) {
             @IPS_ApplyChanges($ParentID);
         }
     }
     /* Eigene Profile
      */
     //Workaround für persistente Daten der Instanz
     // Wenn wir verbunden sind, am Gateway mit listen anmelden für Events
     if ($this->ReadPropertyBoolean('Open') and $this->HasActiveParent($ParentID)) {
         $this->SetStatus(102);
     }
 }
开发者ID:hermanthegerman2,项目名称:Logamatic4000,代码行数:34,代码来源:module.php

示例2: ProcessHookData

 /**
  * This function will be available automatically after the module is imported with the module control.
  * Using the custom prefix this function will be callable from PHP and JSON-RPC through:
  *
  * LOCATIVE_ProcessHookData($id);
  *
  */
 public function ProcessHookData()
 {
     if ($_IPS['SENDER'] == "Execute") {
         echo "This script cannot be used this way.";
         return;
     }
     if (IPS_GetProperty($this->InstanceID, "Username") != "" || IPS_GetProperty($this->InstanceID, "Password") != "") {
         if (!isset($_SERVER['PHP_AUTH_USER'])) {
             $_SERVER['PHP_AUTH_USER'] = "";
         }
         if (!isset($_SERVER['PHP_AUTH_PW'])) {
             $_SERVER['PHP_AUTH_PW'] = "";
         }
         if ($_SERVER['PHP_AUTH_USER'] != IPS_GetProperty($this->InstanceID, "Username") || $_SERVER['PHP_AUTH_PW'] != IPS_GetProperty($this->InstanceID, "Password")) {
             header('WWW-Authenticate: Basic Realm="Locative WebHook"');
             header('HTTP/1.0 401 Unauthorized');
             echo "Authorization required";
             return;
         }
     }
     /**
     			The following $_POST data are slightly different from Geofency
     			**/
     if (!isset($_POST['device']) || !isset($_POST['id']) || !isset($_POST['trigger'])) {
         IPS_LogMessage("Locative", "Malformed data: " . print_r($_POST, true));
         return;
     }
     $trigger = strtolower(isset($_POST["trigger"]) ? $_POST["trigger"] : "");
     $name = htmlentities(utf8_decode(isset($_REQUEST["name"]) ? $_REQUEST["name"] : "Home"));
     IPS_LogMessage("IPSLocative", print_r($_REQUEST, true));
     $deviceID = $this->CreateInstanceByIdent($this->InstanceID, $this->ReduceGUIDToIdent($_POST['device']), "Device");
     SetValue($this->CreateVariableByIdent($deviceID, "Latitude", "Latitude", 2), floatval($_POST['latitude']));
     SetValue($this->CreateVariableByIdent($deviceID, "Longitude", "Longitude", 2), floatval($_POST['longitude']));
     SetValue($this->CreateVariableByIdent($deviceID, "Time", "Time", 1, "~UnixTimestamp"), $_POST['timestamp']);
     SetValue($this->CreateVariableByIdent($deviceID, "LastTrigger", "LastTrigger", 3), $trigger);
     $varID = $this->CreateVariableByIdent($deviceID, $name, $name, 0, "~Presence");
     switch ($trigger) {
         case "enter":
             SetValue($varID, 1);
             echo "Welcome!";
             break;
         case "exit":
             SetValue($varID, 0);
             echo "Bye!";
             break;
         case "test":
             $status = isset($_GET["status"]) ? $_GET["status"] == "1" : false;
             echo "Test for {$name} received. Status {$status}";
             SetValue($varID, $status);
             break;
     }
 }
开发者ID:mcbeyel,项目名称:IPSLocative,代码行数:59,代码来源:module.php

示例3: RegisterHook

 private function RegisterHook($Hook, $TargetID)
 {
     $ids = IPS_GetInstanceListByModuleID("{015A6EB8-D6E5-4B93-B496-0D3F77AE9FE1}");
     if (sizeof($ids) > 0) {
         $hooks = json_decode(IPS_GetProperty($ids[0], "Hooks"), true);
         $found = false;
         foreach ($hooks as $index => $hook) {
             if ($hook['Hook'] == "/hook/ips4WinDeviceReg") {
                 if ($hook['TargetID'] == $TargetID) {
                     return;
                 }
                 $hooks[$index]['TargetID'] = $TargetID;
                 $found = true;
             }
         }
         if (!$found) {
             $hooks[] = array("Hook" => "/hook/ips4WinDeviceReg", "TargetID" => $TargetID);
         }
         IPS_SetProperty($ids[0], "Hooks", json_encode($hooks));
         IPS_ApplyChanges($ids[0]);
     }
 }
开发者ID:Seb0815,项目名称:ips4Windows,代码行数:22,代码来源:module.php

示例4: RequestRead

 public function RequestRead()
 {
     $Address = 0x0 + ($this->ReadPropertyInteger("Phase") - 1) * 2;
     $Volt = $this->SendDataToParent(json_encode(array("DataID" => "{E310B701-4AE7-458E-B618-EC13A1A6F6A8}", "Function" => 3, "Address" => $Address, "Quantity" => 2, "Data" => "")));
     if ($Volt === false) {
         return;
     }
     $Volt = unpack("n*", substr($Volt, 2));
     $Address = 0xc + ($this->ReadPropertyInteger("Phase") - 1) * 2;
     $Ampere = $this->SendDataToParent(json_encode(array("DataID" => "{E310B701-4AE7-458E-B618-EC13A1A6F6A8}", "Function" => 3, "Address" => $Address, "Quantity" => 2, "Data" => "")));
     if ($Ampere === false) {
         return;
     }
     $Ampere = unpack("n*", substr($Ampere, 2));
     $Address = 0x12 + ($this->ReadPropertyInteger("Phase") - 1) * 2;
     $Watt = $this->SendDataToParent(json_encode(array("DataID" => "{E310B701-4AE7-458E-B618-EC13A1A6F6A8}", "Function" => 3, "Address" => $Address, "Quantity" => 2, "Data" => "")));
     if ($Watt === false) {
         return;
     }
     $Watt = unpack("n*", substr($Watt, 2));
     $Address = 0x46 + ($this->ReadPropertyInteger("Phase") - 1) * 2;
     $KWh = $this->SendDataToParent(json_encode(array("DataID" => "{E310B701-4AE7-458E-B618-EC13A1A6F6A8}", "Function" => 3, "Address" => $Address, "Quantity" => 2, "Data" => "")));
     if ($KWh === false) {
         return;
     }
     $KWh = unpack("n*", substr($KWh, 2));
     if (IPS_GetProperty(IPS_GetInstance($this->InstanceID)['ConnectionID'], "SwapWords")) {
         SetValue($this->GetIDForIdent("Volt"), ($Volt[1] + ($Volt[2] << 16)) / 10);
         SetValue($this->GetIDForIdent("Ampere"), ($Ampere[1] + ($Ampere[2] << 16)) / 1000);
         SetValue($this->GetIDForIdent("Watt"), ($Watt[1] + ($Watt[2] << 16)) / 10);
         SetValue($this->GetIDForIdent("kWh"), ($KWh[1] + ($KWh[2] << 16)) / 10);
     } else {
         SetValue($this->GetIDForIdent("Volt"), ($Volt[2] + ($Volt[1] << 16)) / 10);
         SetValue($this->GetIDForIdent("Ampere"), ($Ampere[2] + ($Ampere[1] << 16)) / 1000);
         SetValue($this->GetIDForIdent("Watt"), ($Watt[2] + ($Watt[1] << 16)) / 10);
         SetValue($this->GetIDForIdent("kWh"), ($KWh[2] + ($KWh[1] << 16)) / 10);
     }
 }
开发者ID:symcon,项目名称:SymconBC,代码行数:38,代码来源:module.php

示例5: SendSwitchData

 /**
  * Forward Switch data to SwitchDev instances
  * Create one if needed
  * @param array $data
  */
 private function SendSwitchData($data)
 {
     //parsing was OK, start distributing
     $this->debug(__FUNCTION__, 'Prepare');
     $class = __CLASS__ . "-SW";
     $Device = $data['DeviceID'];
     $typ = $data['Typ'];
     $found = false;
     $instID = 0;
     $caps = "Switch;Dimmer;Timer;FS20;TimerActionCode";
     $instances = IPS_GetInstanceListByModuleID($this->module_interfaces['SwitchDev']);
     foreach ($instances as $instID) {
         $I = IPS_GetInstance($instID);
         $iid = (string) IPS_GetProperty($instID, 'DeviceID');
         $ityp = (string) IPS_GetProperty($instID, 'Typ');
         $iclass = (string) IPS_GetProperty($instID, 'Class');
         $this->debug(__FUNCTION__, "Check my Device '{$Device}'' with Instance {$instID}({$iid})");
         if ($I['ConnectionID'] == $this->InstanceID) {
             //my child
             if ($iid == $Device && $iclass == $class && $ityp == $typ) {
                 $this->debug(__FUNCTION__, 'Use existing ID:' . $instID);
                 $found = true;
                 break;
             }
             //if destdevice
         }
         //if
     }
     //for
     if (!$found) {
         //no free instance available, have to create a new one
         if ($this->ReadPropertyBoolean('AutoCreate') == true) {
             //new instance needed
             $this->debug(__FUNCTION__, 'CREATE NEW Device');
             $instID = $this->CreateSwitchDevice($data, $caps);
             $found = true;
         } else {
             $this->debug(__FUNCTION__, 'Creating FS20 Device ID ' . $Device . ' disabled by Property AutoCreate');
             IPS_LogMessage($class, 'Creating FS20 Device ID ' . $Device . ' disabled by Property AutoCreate');
         }
         //if autocreate
     }
     //if found
     if ($found && $instID > 0) {
         //send record to children
         $json = json_encode(array("DataID" => $this->module_interfaces['SWD-RX'], "DeviceID" => $data['DeviceID'], "Typ" => $data['Typ'], "Class" => $class, "SWData" => $data));
         $this->debug(__FUNCTION__, $json);
         @$this->SendDataToChildren($json);
         $datum = date('Y-m-d H:i:s', time());
         $vid = @$this->GetIDForIdent('LastUpdate');
         if ($vid) {
             SetValueString($vid, $datum);
         }
     }
     //found
 }
开发者ID:Tommi2Day,项目名称:ipsymcon-phpmodule-by-Tommi,代码行数:61,代码来源:module.php

示例6: isDebug

 /**
  * check if debug is enabled
  * @return bool
  */
 protected function isDebug()
 {
     $debug = @IPS_GetProperty($this->InstanceID, 'Debug');
     return $debug === true;
 }
开发者ID:Tommi2Day,项目名称:ipsymcon-phpmodule-by-Tommi,代码行数:9,代码来源:module_helper.php

示例7: SetSpdifInput

 public function SetSpdifInput($input_instance)
 {
     $ip = $this->ReadPropertyString("IPAddress");
     $timeout = $this->ReadPropertyString("TimeOut");
     if ($timeout && Sys_Ping($ip, $timeout) != true) {
         throw new Exception("Sonos Box " . $ip . " is not available");
     }
     if (@GetValue($this->GetIDForIdent("MemberOfGroup"))) {
         $this->SetGroup(0);
     }
     include_once __DIR__ . "/sonosAccess.php";
     $sonos = new SonosAccess($ip);
     $sonos->SetAVTransportURI("x-sonos-htastream:" . IPS_GetProperty($input_instance, "RINCON") . ":spdif");
     $sonos->Play();
 }
开发者ID:mcbeyel,项目名称:SymconSonos,代码行数:15,代码来源:module.php

示例8: GetIPGateway

 protected function GetIPGateway()
 {
     $ParentID = $this->GetParent();
     $IPGateway = IPS_GetProperty($ParentID, 'Host');
     return $IPGateway;
 }
开发者ID:Wolbolar,项目名称:IPSymconAIOGateway,代码行数:6,代码来源:module.php

示例9: die

    if ($parent === false) {
        die("Manuelle Angabe der ID für Gewerke nicht vorhanden!");
    }
}
if ($ScriptCat == 0) {
    $ScriptCat = GetOrCreateCategoryByName(0, "Aktions-Scripte");
} else {
    $parent = @IPS_GetObject($ScriptCat);
    if ($parent === false) {
        die("Manuelle Angabe der ID für Scripte nicht vorhanden!");
    }
}
$HMDevices = IPS_GetInstanceListByModuleID("{EE4A81C6-5C90-4DB7-AD2F-F6BBD521412E}");
$HMAdresses = array();
foreach ($HMDevices as $HMDevice) {
    $HMAdresses[] = IPS_GetProperty($HMDevice, "Address");
}
foreach ($HMCcuAddress as $Key) {
    $HMParent = $HMSockets[$Key];
    if (IPS_GetInstance($HMParent)['InstanceStatus'] != 102) {
        if (IPS_GetInstance($HMParent)['InstanceStatus'] >= 200) {
            if (@IPS_ApplyChanges($HMSocket) === false) {
                echo "Homematic-Socket (" . IPS_GetName($HMParent) . ") mit der InstanzID " . $HMParent . " konnte nicht reaktiviert werden." . PHP_EOL;
            }
        }
        if (IPS_GetInstance($HMParent)['InstanceStatus'] != 102) {
            echo "Homematic-Socket (" . IPS_GetName($HMParent) . ") mit der InstanzID " . $HMParent . " ist nicht aktiv." . PHP_EOL;
            echo "  Überspinge alle Geräte dieser CCU" . PHP_EOL;
            echo "--------------------------------------------------------------------" . PHP_EOL;
            continue;
        }
开发者ID:Nall-chan,项目名称:HomematicEasyInstall,代码行数:31,代码来源:Script.php

示例10: SendENData

 /**
  * Forward Energy data to EnergyDev instances
  * Create one if needed
  * @param $caps string
  * @param $data array
  */
 private function SendENData($caps, $data)
 {
     $this->debug(__FUNCTION__, 'Prepare');
     $datum = date('Y-m-d H:i:s', time());
     $data['Date'] = $datum;
     $Device = $data['Id'];
     $typ = $data['Typ'];
     $branch = $data['Branch'];
     $found = false;
     $instID = 0;
     $class = __CLASS__ . "-EN";
     $instances = IPS_GetInstanceListByModuleID($this->module_interfaces['EnergyDev']);
     foreach ($instances as $instID) {
         $I = IPS_GetInstance($instID);
         $iid = (string) IPS_GetProperty($instID, 'DeviceID');
         $ityp = (string) IPS_GetProperty($instID, 'Typ');
         $iclass = (string) IPS_GetProperty($instID, 'Class');
         //$this->debug(__FUNCTION__, "Check my Device '$Device'' with Instance $instID($iid)");
         if ($I['ConnectionID'] == $this->InstanceID) {
             //my child
             if ($iid == $Device && $iclass == $class && $ityp == $typ) {
                 $this->debug(__FUNCTION__, 'Use existing ID:' . $instID);
                 $found = true;
                 break;
             }
             //if destdevice
         }
         //if
     }
     //for
     if (!$found) {
         //no free instance available, have to create a new one
         if ($this->ReadPropertyBoolean('AutoCreate') == true) {
             //new instance needed
             $this->debug(__FUNCTION__, 'CREATE NEW Energy Device ' . $Device);
             $instID = $this->CreateEnergyDevice($data, $caps);
             $found = true;
         } else {
             $this->debug(__FUNCTION__, "Creating XS1 {$branch} Energy Device " . $Device . ' disabled by Property AutoCreate');
             IPS_LogMessage(__CLASS__, "Creating XS1 {$branch} Energy Device " . $Device . ' disabled by Property AutoCreate');
         }
         //if autocreate
     }
     //if found
     if ($found && $instID > 0) {
         //send record to children
         $json = json_encode(array("DataID" => $this->module_interfaces['EN-RX'], "DeviceID" => $Device, "Typ" => $typ, "Class" => $class, "ENData" => $data));
         $this->debug(__FUNCTION__, "Json:" . $json);
         @$this->SendDataToChildren($json);
     }
     //found
 }
开发者ID:Tommi2Day,项目名称:ipsymcon-phpmodule-by-Tommi,代码行数:58,代码来源:module.php

示例11: ReadBatteryStates

 private function ReadBatteryStates()
 {
     $InstanzIDsListAll[] = IPS_GetInstanceListByModuleID("{A89F8DFA-A439-4BF1-B7CB-43D047208DDD}");
     // FHT
     $InstanzIDsListAll[] = IPS_GetInstanceListByModuleID("{2FD7576A-D2AD-47EE-9779-A502F23CABB3}");
     // FS20 HMS
     $InstanzIDsListAll[] = IPS_GetInstanceListByModuleID("{EE4A81C6-5C90-4DB7-AD2F-F6BBD521412E}");
     // HomeMatic
     $InstanzIDsListAll[] = IPS_GetInstanceListByModuleID("{101352E1-88C7-4F16-998B-E20D50779AF6}");
     // Z-Wave
     $a = 0;
     $l = 0;
     foreach ($InstanzIDsListAll as $InstanzIDsList) {
         foreach ($InstanzIDsList as $InstanzID) {
             $InstanzHersteller = IPS_GetInstance($InstanzID);
             $InstanzHersteller = $InstanzHersteller["ModuleInfo"]["ModuleName"];
             switch ($InstanzHersteller) {
                 case "FHT":
                     $InstanzHersteller = "FHT";
                     break;
                 case "HMS":
                     $InstanzHersteller = "HMS";
                     break;
                 case "HomeMatic Device":
                     $InstanzHersteller = "HomeMatic";
                     break;
                 case "Z-Wave Module":
                     $InstanzHersteller = "Z-Wave";
                     break;
             }
             //FHT
             $VarID = @IPS_GetObjectIDByIdent('LowBatteryVar', $InstanzID);
             if ($VarID !== false and $InstanzHersteller == "FHT") {
                 $Var = IPS_GetVariable($VarID);
                 $VarLastUpdated = $Var["VariableUpdated"];
                 $VarLastUpdatedDiffSek = time() - $VarLastUpdated;
                 $DeviceID = IPS_GetProperty($InstanzID, "Address");
                 $LowBat = GetValueBoolean($VarID);
                 if ($LowBat === true) {
                     $Batterien_AR["Alle"][$a]["Name"] = $this->Umlaute_Ersetzen(IPS_GetName($InstanzID));
                     if ($this->ReadPropertyBoolean("NamenParentObjekt1CB") == true) {
                         $ParentID = $this->ParentIDermitteln("ParentNr1NS", $InstanzID);
                         $ParentNameTabelle = $this->Umlaute_Ersetzen($this->ReadPropertyString("NameParentTabelle1TB"));
                         $Batterien_AR["Alle"][$a][$ParentNameTabelle] = $this->Umlaute_Ersetzen(IPS_GetName($ParentID));
                     }
                     if ($this->ReadPropertyBoolean("NamenParentObjekt2CB") == true) {
                         $ParentID = $this->ParentIDermitteln("ParentNr2NS", $InstanzID);
                         $ParentNameTabelle = $this->Umlaute_Ersetzen($this->ReadPropertyString("NameParentTabelle2TB"));
                         $Batterien_AR["Alle"][$a][$ParentNameTabelle] = $this->Umlaute_Ersetzen(IPS_GetName($ParentID));
                     }
                     if ($this->ReadPropertyBoolean("NamenParentObjekt3CB") == true) {
                         $ParentID = $this->ParentIDermitteln("ParentNr3NS", $InstanzID);
                         $ParentNameTabelle = $this->Umlaute_Ersetzen($this->ReadPropertyString("NameParentTabelle3TB"));
                         $Batterien_AR["Alle"][$a][$ParentNameTabelle] = $this->Umlaute_Ersetzen(IPS_GetName($ParentID));
                     }
                     $Batterien_AR["Alle"][$a]["Batterie"] = "LEER";
                     $Batterien_AR["Alle"][$a]["Hersteller"] = $InstanzHersteller;
                     $Batterien_AR["Alle"][$a]["ID"] = $DeviceID;
                     $Batterien_AR["Alle"][$a]["Hersteller_ID"] = $InstanzHersteller . " - " . $DeviceID;
                     $Batterien_AR["Alle"][$a]["LetztesVarUpdateTimestamp"] = $VarLastUpdated;
                     $Batterien_AR["Alle"][$a]["LetztesVarUpdateVorSek"] = $VarLastUpdatedDiffSek;
                     $Batterien_AR["Leer"][$l]["Name"] = $this->Umlaute_Ersetzen(IPS_GetName($InstanzID));
                     if ($this->ReadPropertyBoolean("NamenParentObjekt1CB") == true) {
                         $ParentID = $this->ParentIDermitteln("ParentNr1NS", $InstanzID);
                         $ParentNameTabelle = $this->Umlaute_Ersetzen($this->ReadPropertyString("NameParentTabelle1TB"));
                         $Batterien_AR["Leer"][$l][$ParentNameTabelle] = $this->Umlaute_Ersetzen(IPS_GetName($ParentID));
                     }
                     if ($this->ReadPropertyBoolean("NamenParentObjekt2CB") == true) {
                         $ParentID = $this->ParentIDermitteln("ParentNr2NS", $InstanzID);
                         $ParentNameTabelle = $this->Umlaute_Ersetzen($this->ReadPropertyString("NameParentTabelle2TB"));
                         $Batterien_AR["Leer"][$l][$ParentNameTabelle] = $this->Umlaute_Ersetzen(IPS_GetName($ParentID));
                     }
                     if ($this->ReadPropertyBoolean("NamenParentObjekt3CB") == true) {
                         $ParentID = $this->ParentIDermitteln("ParentNr3NS", $InstanzID);
                         $ParentNameTabelle = $this->Umlaute_Ersetzen($this->ReadPropertyString("NameParentTabelle3TB"));
                         $Batterien_AR["Leer"][$l][$ParentNameTabelle] = $this->Umlaute_Ersetzen(IPS_GetName($ParentID));
                     }
                     $Batterien_AR["Leer"][$l]["Batterie"] = "LEER";
                     $Batterien_AR["Leer"][$l]["Hersteller"] = $InstanzHersteller;
                     $Batterien_AR["Leer"][$l]["ID"] = $DeviceID;
                     $Batterien_AR["Leer"][$l]["Hersteller_ID"] = $InstanzHersteller . " - " . $DeviceID;
                     $Batterien_AR["Leer"][$l]["LetztesVarUpdateTimestamp"] = $VarLastUpdated;
                     $Batterien_AR["Leer"][$l]["LetztesVarUpdateVorSek"] = $VarLastUpdatedDiffSek;
                     $a++;
                     $l++;
                 } else {
                     $Batterien_AR["Alle"][$a]["Name"] = $this->Umlaute_Ersetzen(IPS_GetName($InstanzID));
                     if ($this->ReadPropertyBoolean("NamenParentObjekt1CB") == true) {
                         $ParentID = $this->ParentIDermitteln("ParentNr1NS", $InstanzID);
                         $ParentNameTabelle = $this->Umlaute_Ersetzen($this->ReadPropertyString("NameParentTabelle1TB"));
                         $Batterien_AR["Alle"][$a][$ParentNameTabelle] = $this->Umlaute_Ersetzen(IPS_GetName($ParentID));
                     }
                     if ($this->ReadPropertyBoolean("NamenParentObjekt2CB") == true) {
                         $ParentID = $this->ParentIDermitteln("ParentNr2NS", $InstanzID);
                         $ParentNameTabelle = $this->Umlaute_Ersetzen($this->ReadPropertyString("NameParentTabelle2TB"));
                         $Batterien_AR["Alle"][$a][$ParentNameTabelle] = $this->Umlaute_Ersetzen(IPS_GetName($ParentID));
                     }
                     if ($this->ReadPropertyBoolean("NamenParentObjekt3CB") == true) {
                         $ParentID = $this->ParentIDermitteln("ParentNr3NS", $InstanzID);
                         $ParentNameTabelle = $this->Umlaute_Ersetzen($this->ReadPropertyString("NameParentTabelle3TB"));
//.........这里部分代码省略.........
开发者ID:BayaroX,项目名称:BY_BatterieMonitor,代码行数:101,代码来源:module.php

示例12: explode

            if ($sleeptimer) {
                $SleeptimerArray = explode(":", $sonos->GetSleeptimer());
                $SleeptimerMinutes = $SleeptimerArray[0] * 60 + $SleeptimerArray[1];
                if ($SleeptimerArray[2]) {
                    $SleeptimerMinutes = $SleeptimerMinutes + 1;
                }
            } else {
                $SleeptimerMinutes = 0;
            }
            SetValueInteger(IPS_GetObjectIDByName("Sleeptimer", IPS_GetParent($_IPS["SELF"])), $SleeptimerMinutes);
        }
    }
    $nowPlaying = GetValueString(IPS_GetObjectIDByName("nowPlaying", IPS_GetParent($_IPS["SELF"])));
    if ($actuallyPlaying != $nowPlaying) {
        SetValueString(IPS_GetObjectIDByName("nowPlaying", IPS_GetParent($_IPS["SELF"])), $actuallyPlaying);
    }
}
// Set Group Volume
if (IPS_GetProperty(IPS_GetParent($_IPS["SELF"]), "GroupCoordinator")) {
    $groupMembers = GetValueString(IPS_GetObjectIDByName("GroupMembers", IPS_GetParent($_IPS["SELF"])));
    $groupMembersArray = array();
    if ($groupMembers) {
        $groupMembersArray = array_map("intval", explode(",", $groupMembers));
    }
    $groupMembersArray[] = IPS_GetParent($_IPS["SELF"]);
    $GroupVolume = 0;
    foreach ($groupMembersArray as $key => $ID) {
        $GroupVolume += GetValueInteger(IPS_GetObjectIDByName("Volume", $ID));
    }
    SetValueInteger(IPS_GetObjectIDByName("GroupVolume", IPS_GetParent($_IPS["SELF"])), intval(round($GroupVolume / sizeof($groupMembersArray))));
}
开发者ID:mcbeyel,项目名称:SymconSonos,代码行数:31,代码来源:_updateStatus.php

示例13: SetValue

  public function SetValue($key, $value) {
    $stateId = IPS_GetObjectIDByIdent('STATE', $this->InstanceID);
    $cmId = IPS_GetObjectIDByIdent('COLOR_MODE', $this->InstanceID);
    $ctId = @IPS_GetObjectIDByIdent('COLOR_TEMPERATURE', $this->InstanceID);
    $briId = IPS_GetObjectIDByIdent('BRIGHTNESS', $this->InstanceID);
    $satId = @IPS_GetObjectIDByIdent('SATURATION', $this->InstanceID);
    $hueId = @IPS_GetObjectIDByIdent('HUE', $this->InstanceID);
    $colorId = @IPS_GetObjectIDByIdent('COLOR', $this->InstanceID);

    $stateValue = GetValueBoolean($stateId);
    $cmValue = $cmId ? GetValueInteger($cmId) : 0;
    $ctValue = $ctId ? (500 - round(347 * GetValueInteger($ctId) / 100)) : 0;
    $briValue = round(GetValueInteger($briId)*2.54);
    $satValue = $satId ? round(GetValueInteger($satId)*2.54) : 0;
    $hueValue = $hueId ? GetValueInteger($hueId) : 0;
    $colorValue = $colorId ? GetValueInteger($colorId) : 0;

    switch ($key) {
      case 'STATE':
        $stateNewValue = $value;
        break;
      case 'COLOR':
        $colorNewValue = $value;
        $stateNewValue = true;
        $hex = str_pad(dechex($value), 6, 0, STR_PAD_LEFT);
        $hsv = $this->HEX2HSV($hex);
        SetValueInteger($colorId, $value);
        $hueNewValue = $hsv['h'];
        $briNewValue = $hsv['v'];
        $satNewValue = $hsv['s'];
        $cmNewValue = 0;
        break;
      case 'BRIGHTNESS':
        $briNewValue = $value;
        $stateNewValue = true;
        if (IPS_GetProperty($this->InstanceID, 'LightFeatures') != 3) {
          if ($cmValue == '0') {
            $newHex = $this->HSV2HEX($hueValue, $satValue, $briNewValue);
            SetValueInteger($colorId, hexdec($newHex));
            $hueNewValue = $hueValue;
            $satNewValue = $satValue;
          } else {
            $ctNewValue = $ctValue;
          }
        }
        break;
      case 'SATURATION':
        $cmNewValue = 0;
        $satNewValue = $value;
        $stateNewValue = true;
        $newHex = $this->HSV2HEX($hueValue, $satNewValue, $briValue);
        SetValueInteger($colorId, hexdec($newHex));
        $hueNewValue = $hueValue;
        $briNewValue = $briValue;
        break;
      case 'COLOR_TEMPERATURE':
        $cmNewValue = 1;
        $ctNewValue = $value;
        $briNewValue = $briValue;
        break;
      case 'COLOR_MODE':
        $cmNewValue = $value;
        $stateNewValue = true;
        if ($cmNewValue == 1) {
          $ctNewValue = $ctValue;
          IPS_SetHidden($colorId, true);
          IPS_SetHidden($ctId, false);
          IPS_SetHidden($satId, true);
        } else {
          $hueNewValue = $hueValue;
          $satNewValue = $satValue;
          $briNewValue = $briValue;
          $newHex = $this->HSV2HEX($hueValue, $satValue, $briValue);
          SetValueInteger($colorId, hexdec($newHex));
          IPS_SetHidden($colorId, false);
          IPS_SetHidden($ctId, true);
          IPS_SetHidden($satId, false);
        }
        break;
    }

    $changes = array();
    if (isset($stateNewValue)) {
      SetValueBoolean($stateId, $stateNewValue);
      $changes['on'] = $stateNewValue;
    }
    if (isset($hueNewValue)) {
      SetValueInteger($hueId, $hueNewValue);
      $changes['hue'] = $hueNewValue;
    }
    if (isset($satNewValue)) {
      SetValueInteger($satId, round($satNewValue * 100 / 254));
      $changes['sat'] = $satNewValue;
    }
    if (isset($briNewValue)) {
      SetValueInteger($briId, round($briNewValue * 100 / 254));
      $changes['bri'] = $briNewValue;
    }
    if (isset($ctNewValue)) {
      SetValueInteger($ctId, 100 - round(($ctNewValue - 153) * 100 / 347));
//.........这里部分代码省略.........
开发者ID:Vansdan,项目名称:SymconHUE,代码行数:101,代码来源:module.php

示例14: SendWSData

 /**
  * Forward weather data to WSDev instances
  * Create one if needed
  * @param $weather_data
  */
 private function SendWSData($weather_data)
 {
     //parsing was OK, start distributing
     $this->debug(__FUNCTION__, 'Prepare');
     $class = __CLASS__;
     $ts = $weather_data['date'];
     $datum = date('Y-m-d H:i:s', $ts);
     foreach ($this->sensors as $Device) {
         if (!isset($weather_data[$Device])) {
             continue;
         }
         $data = array();
         $caps = '';
         $id = $weather_data[$Device]['Id'];
         $typ = $weather_data[$Device]['Typ'];
         $data['Date'] = $datum;
         foreach ($this->fieldlist as $cap) {
             if (isset($weather_data[$Device][$cap])) {
                 $data[$cap] = $weather_data[$Device][$cap];
                 $caps .= ";" . $cap;
             }
         }
         $this->debug(__FUNCTION__, "Sensor: {$id} Caps: {$caps} Prepared Data:" . print_r($data, true));
         $found = false;
         $instID = 0;
         $instances = IPS_GetInstanceListByModuleID($this->module_interfaces['WSDEV']);
         foreach ($instances as $instID) {
             $I = @IPS_GetInstance($instID);
             if ($I && $I['ConnectionID'] == $this->InstanceID) {
                 //my child
                 $iid = (string) IPS_GetProperty($instID, 'DeviceID');
                 $ityp = (string) IPS_GetProperty($instID, 'Typ');
                 $iclass = (string) IPS_GetProperty($instID, 'Class');
                 if ($iid == $Device && $ityp == $typ && $iclass == $class) {
                     $this->debug(__FUNCTION__, 'Use existing ID:' . $instID);
                     $found = true;
                     break;
                 }
                 //if destdevice
             }
             //if
         }
         //for
         if (!$found) {
             //no free instance available, have to create a new one
             if ($this->ReadPropertyBoolean('AutoCreate') == true) {
                 //new instance needed
                 $instID = $this->CreateWSDevice($data, $caps);
                 if ($instID > 0) {
                     //new instance needed
                     $this->debug(__FUNCTION__, 'CREATE Device with Caps: ' . $caps);
                     $found = true;
                 }
             } else {
                 $this->debug(__FUNCTION__, 'Creating Device ID ' . $Device . ' disabled by Property AutoCreate');
                 IPS_LogMessage($class, 'Creating Device ID ' . $Device . ' disabled by Property AutoCreate');
             }
             //if autocreate
         }
         //if found
         if ($found && $instID > 0) {
             //send record to children
             $json = json_encode(array("DataID" => $this->module_interfaces['WS-RX'], "DeviceID" => $Device, "Typ" => $typ, "Class" => $class, "WSData" => $data));
             $this->debug(__FUNCTION__, $json);
             @$this->SendDataToChildren($json);
             $this->log_weather($data);
         }
         //found
     }
     //for
     $this->debug(__FUNCTION__, 'Finished');
 }
开发者ID:Tommi2Day,项目名称:ipsymcon-phpmodule-by-Tommi,代码行数:77,代码来源:module.php

示例15: SendEnData

 /**
  * Forward data to EnergyDev instances
  * Create one if needed
  * @param array $data
  * @param string $caps
  */
 private function SendEnData($data, $caps)
 {
     //parsing was OK, start distributing
     $this->debug(__FUNCTION__, 'Prepare');
     $class = $data['Class'];
     $id = $data['Id'];
     $typ = $data['Typ'];
     $found = false;
     $instID = 0;
     $instances = IPS_GetInstanceListByModuleID($this->module_interfaces['EnergyDev']);
     foreach ($instances as $instID) {
         $I = IPS_GetInstance($instID);
         $iid = (string) IPS_GetProperty($instID, 'DeviceID');
         $ityp = (string) IPS_GetProperty($instID, 'Typ');
         $iclass = (string) IPS_GetProperty($instID, 'Class');
         if ($I['ConnectionID'] == $this->InstanceID) {
             //my child
             if ($iid == $id && $iclass == $class && $ityp == $typ) {
                 $this->debug(__FUNCTION__, 'Use existing ID:' . $instID);
                 $found = true;
                 break;
             }
             //if destdevice
         }
         //if
     }
     //for
     if (!$found) {
         //no free instance available, have to create a new one
         if ($this->ReadPropertyBoolean('AutoCreate') == true) {
             //new instance needed
             $this->debug(__FUNCTION__, 'CREATE NEW Device');
             $instID = $this->CreateENDevice($data, $caps);
             $found = true;
         } else {
             $this->debug(__FUNCTION__, 'Creating Device ID ' . $id . ' disabled by Property AutoCreate');
             IPS_LogMessage($class, 'Creating Device ID ' . $id . ' disabled by Property AutoCreate');
         }
         //if autocreate
     }
     //if found
     //drop counterfactor from data
     if (isset($data['CounterFactor'])) {
         unset($data['CounterFactor']);
     }
     if ($found && $instID > 0) {
         //send record to children
         $json = json_encode(array("DataID" => $this->module_interfaces['EN-RX'], "DeviceID" => $data['Id'], "Typ" => $data['Typ'], "Class" => $class, "ENData" => $data));
         $this->debug(__FUNCTION__, $json);
         @$this->SendDataToChildren($json);
         $datum = date('Y-m-d H:i:s', time());
         $vid = @$this->GetIDForIdent('LastUpdate');
         if ($vid) {
             SetValueString($vid, $datum);
         }
     }
     //found
 }
开发者ID:Tommi2Day,项目名称:ipsymcon-phpmodule-by-Tommi,代码行数:64,代码来源:module.php


注:本文中的IPS_GetProperty函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。