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


PHP IPS_ApplyChanges函数代码示例

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


在下文中一共展示了IPS_ApplyChanges函数的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: ApplyChanges

 public function ApplyChanges()
 {
     //Never delete this line!
     parent::ApplyChanges();
     //Variablenprofil erstellen
     $this->RegisterProfileBooleanEx("HMON.OfflineOnline", "Network", "", "", array(array(false, "Offline", "", 0xff0000), array(true, "Online", "", 0xff00)));
     if ($this->ReadPropertyString("HostName") != "" and $this->ReadPropertyString("HostAdresse") != "") {
         //Status setzen
         $this->SetStatus(102);
         //Variablen erstellen
         $this->RegisterVariableBoolean("HostStatus", "Host - Status", "HMON.OfflineOnline");
         $this->RegisterVariableBoolean("HostBenachrichtigungsFlag", "Tmp");
         IPS_SetHidden($this->GetIDForIdent("HostBenachrichtigungsFlag"), true);
         $this->RegisterVariableInteger("HostLastOnline", "Host - Zuletzt online", "~UnixTimestamp");
         IPS_SetIcon($this->GetIDForIdent("HostLastOnline"), "Calendar");
         //Logging aktivieren
         if ($this->ReadPropertyBoolean("LoggingAktiv") === true) {
             $ArchiveHandlerID = IPS_GetInstanceListByModuleID('{43192F0B-135B-4CE7-A0A7-1475603F3060}')[0];
             AC_SetLoggingStatus($ArchiveHandlerID, $this->GetIDForIdent("HostStatus"), true);
             IPS_ApplyChanges($ArchiveHandlerID);
         } else {
             $ArchiveHandlerID = IPS_GetInstanceListByModuleID('{43192F0B-135B-4CE7-A0A7-1475603F3060}')[0];
             AC_SetLoggingStatus($ArchiveHandlerID, $this->GetIDForIdent("HostStatus"), false);
             IPS_ApplyChanges($ArchiveHandlerID);
         }
         //Timer erstellen
         $this->SetTimerInterval("HMON_UpdateTimer", $this->ReadPropertyInteger("Intervall"));
         $this->SetTimerByIdent_InSekunden("HMON_BenachrichtigungOfflineTimer", false);
         IPS_SetHidden($this->GetIDForIdent("HMON_BenachrichtigungOfflineTimer"), true);
         //Update
         $this->Update();
     } else {
         $this->SetStatus(206);
     }
     //Fehlerhafte Konfiguration melden
     if ($this->ReadPropertyBoolean("PushMsgAktiv") === true and $this->ReadPropertyInteger("WebFrontInstanceID") == "") {
         $this->SetStatus(201);
     }
     if ($this->ReadPropertyBoolean("EMailMsgAktiv") === true and $this->ReadPropertyInteger("SmtpInstanceID") == "") {
         $this->SetStatus(202);
     }
     if ($this->ReadPropertyBoolean("EigenesSkriptAktiv") === true and $this->ReadPropertyInteger("EigenesSkriptID") == "") {
         $this->SetStatus(203);
     }
     if ($this->ReadPropertyBoolean("PushMsgAktiv") === false and $this->ReadPropertyBoolean("EMailMsgAktiv") === false and $this->ReadPropertyBoolean("EigenesSkriptAktiv") === false and $this->ReadPropertyBoolean("OfflineBenachrichtigung") === true) {
         $this->SetStatus(204);
     }
     if ($this->ReadPropertyBoolean("OfflineBenachrichtigung") === false and $this->ReadPropertyBoolean("OnlineBenachrichtigung") === true) {
         $this->SetStatus(205);
     }
 }
开发者ID:BayaroX,项目名称:BY_HostMonitor,代码行数:51,代码来源:module.php

示例3: ApplyChanges

 public function ApplyChanges()
 {
     //Never delete this line!
     parent::ApplyChanges();
     if (trim($this->ReadPropertyString('Apikey')) == "") {
         $this->SetStatus(104);
     } else {
         $this->SetStatus(102);
     }
     if (trim($this->ReadPropertyString('Apikey')) != $this->ReadPropertyString('Apikey')) {
         @IPS_SetProperty($this->InstanceID, 'Apikey', trim($this->ReadPropertyString('Apikey')));
         @IPS_ApplyChanges($this->InstanceID);
     }
 }
开发者ID:Nall-chan,项目名称:IPSVoiceRSS,代码行数:14,代码来源:module.php

示例4: ApplyChanges

 public function ApplyChanges()
 {
     // Diese Zeile nicht löschen
     parent::ApplyChanges();
     //Variablenprofil anlegen
     if (!IPS_VariableProfileExists("Megabyte")) {
         IPS_CreateVariableProfile("Megabyte", 2);
         IPS_SetVariableProfileValues("Megabyte", 0, 0, 2);
         IPS_SetVariableProfileText("Megabyte", "", " MB");
     }
     if ($this->ReadPropertyString("IPS_Pfad") != "" and $this->ReadPropertyString("Netzwerkkarte") != "") {
         //Variablen erstellen
         $this->RegisterVariableFloat("CPU_idle", "CPU-Auslastung", "Humidity.F", 1);
         $this->RegisterVariableFloat("CPU_volts", "CPU-Spannung", "Volt", 2);
         $this->RegisterVariableFloat("CPU_temp", "CPU-Temperatur", "Temperature", 3);
         $this->RegisterVariableFloat("HDD_total", "Gesamt Speicherplatz", "Megabyte", 4);
         $this->RegisterVariableFloat("HDD_used", "Belegter Speicherplatz", "Megabyte", 5);
         $this->RegisterVariableFloat("HDD_percent", "HDD-Belegung", "Humidity.F", 6);
         $this->RegisterVariableFloat("HDD_symcon", "IPS-Speicherbelegung", "Megabyte", 7);
         $this->RegisterVariableFloat("RAM_total", "Gesamt RAM", "Megabyte", 8);
         $this->RegisterVariableFloat("RAM_used", "Benutzer RAM", "Megabyte", 9);
         $this->RegisterVariableFloat("RAM_percent", "RAM-Auslastung", "Humidity.F", 10);
         $this->RegisterVariableString("System_Info", "System Informationen", "HTMLBox", 11);
         //Timer zeit setzen
         $this->SetTimerInterval("Update", $this->ReadPropertyInteger("UpdateInterval") * 1000);
     } else {
         //Instanz ist inaktiv
         $this->SetStatus(104);
     }
     //Variablen Logging Aktivieren / Deaktivieren
     $archiveHandlerID = IPS_GetInstanceListByModuleID('{43192F0B-135B-4CE7-A0A7-1475603F3060}')[0];
     AC_SetLoggingStatus($archiveHandlerID, $this->GetIDForIdent("CPU_idle"), $this->ReadPropertyBoolean("logCPU_idle"));
     AC_SetLoggingStatus($archiveHandlerID, $this->GetIDForIdent("CPU_volts"), $this->ReadPropertyBoolean("logCPU_volts"));
     AC_SetLoggingStatus($archiveHandlerID, $this->GetIDForIdent("CPU_temp"), $this->ReadPropertyBoolean("logCPU_temp"));
     AC_SetLoggingStatus($archiveHandlerID, $this->GetIDForIdent("HDD_total"), $this->ReadPropertyBoolean("logHDD_total"));
     AC_SetLoggingStatus($archiveHandlerID, $this->GetIDForIdent("HDD_used"), $this->ReadPropertyBoolean("logHDD_used"));
     AC_SetLoggingStatus($archiveHandlerID, $this->GetIDForIdent("HDD_percent"), $this->ReadPropertyBoolean("logHDD_percent"));
     AC_SetLoggingStatus($archiveHandlerID, $this->GetIDForIdent("HDD_symcon"), $this->ReadPropertyBoolean("logHDD_symcon"));
     AC_SetLoggingStatus($archiveHandlerID, $this->GetIDForIdent("RAM_total"), $this->ReadPropertyBoolean("logRAM_total"));
     AC_SetLoggingStatus($archiveHandlerID, $this->GetIDForIdent("RAM_used"), $this->ReadPropertyBoolean("logRAM_used"));
     AC_SetLoggingStatus($archiveHandlerID, $this->GetIDForIdent("RAM_percent"), $this->ReadPropertyBoolean("logRAM_percent"));
     IPS_ApplyChanges($archiveHandlerID);
     copy(IPS_GetKernelDir() . "modules/IPS_PI_Monitor/PI_Monitor/Raspi-PGB001.png", IPS_GetKernelDir() . "webfront/user/Raspi-PGB001.png");
 }
开发者ID:Matzel687,项目名称:IPS_PI_Monitor,代码行数:44,代码来源:module.php

示例5: 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/locative") {
                 if ($hook['TargetID'] == $TargetID) {
                     return;
                 }
                 $hooks[$index]['TargetID'] = $TargetID;
                 $found = true;
             }
         }
         if (!$found) {
             $hooks[] = array("Hook" => "/hook/locative", "TargetID" => $TargetID);
         }
         IPS_SetProperty($ids[0], "Hooks", json_encode($hooks));
         IPS_ApplyChanges($ids[0]);
     }
 }
开发者ID:mcbeyel,项目名称:IPSLocative,代码行数:22,代码来源:module.php

示例6: ApplyChanges

    public function ApplyChanges()
    {
        // get instance id
        $instanceid = IPS_GetInstance($this->InstanceID)['InstanceID'];
        // rename instance
        $room = $this->ReadPropertyString("Room");
        if ($room != "") {
            IPS_SetName($instanceid, $room);
        }
        // check device
        $deviceip = $this->ReadPropertyString("DeviceIP");
        $timeout = $this->ReadPropertyString("Timeout");
        if ($deviceip != "") {
            // check device availability
            if ($timeout && Sys_Ping($deviceip, $timeout) != true) {
                //    throw new Exception("Device ".$deviceip." is not available");
                die("Unable to connect to device {$deviceip}");
            }
            include_once __DIR__ . "/bose_soundtouch_api.php";
            $bosedevice = new BoseSoundTouchAPI($deviceip);
            $result = $bosedevice->getDeviceNowPlayingAPI();
            // get device id for multiroom
            $deviceid = $this->ReadPropertyString("DeviceID");
            if ($deviceid == "" and $deviceip != "") {
                $deviceid = $result['deviceid'];
                IPS_SetProperty($instanceid, "DeviceID", "" . $deviceid . "");
                if (IPS_HasChanges($instanceid)) {
                    IPS_ApplyChanges($instanceid);
                }
            }
        }
        // never delete this line!
        parent::ApplyChanges();
        /////////////////////////////////////////////////////////////////////////////////////////////////////////
        // create profiles
        /////////////////////////////////////////////////////////////////////////////////////////////////////////
        //create zone profiles for multiroom
        $allboseinstances = IPS_GetInstanceListByModuleID("{4836EF46-FF79-4D6A-91C9-FE54F1BDF2DB}");
        // create profile for each instance / device
        foreach ($allboseinstances as $key => $instanceid) {
            $multiroomprofilename = "bose.Device" . $instanceid . "MasterZones";
            // delete zone profiles
            if (IPS_VariableProfileExists($multiroomprofilename)) {
                IPS_DeleteVariableProfile($multiroomprofilename);
            }
            IPS_CreateVariableProfile($multiroomprofilename, 1);
            // set values for profile
            foreach ($allboseinstances as $key => $value) {
                if ($instanceid == $value) {
                    IPS_SetVariableProfileAssociation($multiroomprofilename, "0", "Off", "", 0xff);
                } else {
                    $instancename = IPS_GetName($value);
                    if ($instancename != "") {
                        IPS_SetVariableProfileAssociation($multiroomprofilename, "" . ($key + 1) . "", "" . $instancename . "", "", 0xff);
                    }
                }
            }
        }
        // create volume slider profile
        $volumesliderprofilename = "bose.VolumeSlider";
        if (!IPS_VariableProfileExists($volumesliderprofilename)) {
            IPS_CreateVariableProfile($volumesliderprofilename, 1);
        }
        IPS_SetVariableProfileValues($volumesliderprofilename, 0, 100, 1);
        IPS_SetVariableProfileText($volumesliderprofilename, "", "%");
        IPS_SetVariableProfileIcon($volumesliderprofilename, "Speaker");
        // play pause preset
        $playpauseprofilename = "bose.PlayPause";
        if (!IPS_VariableProfileExists($playpauseprofilename)) {
            IPS_CreateVariableProfile($playpauseprofilename, 1);
        }
        IPS_SetVariableProfileAssociation($playpauseprofilename, "0", "Pause", "", 0xff);
        IPS_SetVariableProfileAssociation($playpauseprofilename, "1", "Play", "", 0xff);
        IPS_SetVariableProfileIcon($playpauseprofilename, "HollowArrowRight");
        // create presets and radiolocations profiles
        $instanceid = IPS_GetInstance($this->InstanceID)['InstanceID'];
        $radiostationsprofilename = "bose.Device" . $instanceid . "RadioStations";
        if (!IPS_VariableProfileExists($radiostationsprofilename)) {
            IPS_CreateVariableProfile($radiostationsprofilename, 1);
        }
        $radiolocationsprofilename = "bose.Device" . $instanceid . "RadioLocations";
        if (!IPS_VariableProfileExists($radiolocationsprofilename)) {
            IPS_CreateVariableProfile($radiolocationsprofilename, 1);
        }
        // get device presets
        if ($deviceip != "") {
            include_once __DIR__ . "/bose_soundtouch_api.php";
            $bosedevice = new BoseSoundTouchAPI($deviceip);
            $result = $bosedevice->getDevicePresetsAPI();
            for ($i = 0; $i < 6; $i++) {
                $value = $i + 1;
                $radiostationname = $result->preset[$i]->ContentItem->itemName;
                $radiostationlocation = $result->preset[$i]->ContentItem["location"];
                IPS_SetVariableProfileAssociation($radiostationsprofilename, "" . $value . "", "" . $radiostationname . "", "", 0xff);
                IPS_SetVariableProfileAssociation($radiolocationsprofilename, "" . $value . "", "" . $radiostationlocation . "", "", 0xff);
            }
            IPS_SetVariableProfileIcon($radiostationsprofilename, "Cloud");
        }
        // create timer hour profile
        $timerhourprofilename = "bose.TimerHour";
//.........这里部分代码省略.........
开发者ID:ubittner,项目名称:SymconBoseSoundTouch,代码行数:101,代码来源:module.php

示例7: GetRomID

 /**
  * OneWireLan_GetRomID
  * @return string
  */
 public function GetRomID()
 {
     if ($_IPS['SENDER'] != "RunScript") {
         trigger_error("Do not use this function!", E_USER_WARNING);
         return;
     }
     if ($this->ReadPropertyString("ROMId")) {
         trigger_error("ROMId is not empty!", E_USER_WARNING);
         return;
     }
     $ModuleID_r = IPS_GetInstanceListByModuleID("{21C81179-662C-46E5-BB0E-F3E18EF75637}");
     $resultat = $this->SendDataToParent(json_encode(array("DataID" => "{C7DF8BCB-7CF7-4AD9-B636-5A3DEFE4E034}", "Buffer" => "NEW")));
     if ($resultat == "") {
         trigger_error("Interface is closed!", E_USER_WARNING);
         return;
     }
     $Data = json_decode($resultat);
     switch ($this->ReadPropertyInteger("DataType")) {
         case 0:
             foreach ($Data->DS18B20 as $Key => $Value) {
                 $ROMId = $Key;
                 foreach ($ModuleID_r as $ID) {
                     if (IPS_GetProperty($ID, "ROMId") == $Key) {
                         $ROMId = "";
                     }
                 }
                 if ($ROMId != "") {
                     IPS_SetProperty($this->InstanceID, "ROMId", $ROMId);
                     IPS_ApplyChanges($this->InstanceID);
                     echo "New ROMID: " . $ROMId . " found and saved! PLEASE CLOSE THE WINDOW!";
                     return;
                 }
             }
             echo "No New ROMId for DS18B20 found!";
             return;
             break;
         case 2:
             foreach ($Data->DS18S20 as $Key => $Value) {
                 $ROMId = $Key;
                 foreach ($ModuleID_r as $ID) {
                     if (IPS_GetProperty($ID, "ROMId") == $Key) {
                         $ROMId = "";
                     }
                 }
                 if ($ROMId != "") {
                     IPS_SetProperty($this->InstanceID, "ROMId", $ROMId);
                     IPS_ApplyChanges($this->InstanceID);
                     echo "New ROMID: " . $ROMId . " found and saved! PLEASE CLOSE THE WINDOW!";
                     return;
                 }
             }
             echo "No New ROMId for DS18S20 found!";
             return;
             break;
         case 1:
             foreach ($Data->DS2438 as $Key => $Value) {
                 $ROMId = $Key;
                 foreach ($ModuleID_r as $ID) {
                     if (IPS_GetProperty($ID, "ROMId") == $Key) {
                         $ROMId = "";
                     }
                 }
                 if ($ROMId != "") {
                     IPS_SetProperty($this->InstanceID, "ROMId", $ROMId);
                     IPS_ApplyChanges($this->InstanceID);
                     echo "New ROMID: " . $ROMId . " found and saved! PLEASE CLOSE THE WINDOW!";
                     return;
                 }
             }
             echo "No New ROMId for DS2438 found!";
             return;
             break;
     }
 }
开发者ID:Charykun,项目名称:SymconOneWireLan,代码行数:78,代码来源:module.php

示例8: ApplyChanges

 public function ApplyChanges()
 {
     //Never delete this line!
     parent::ApplyChanges();
     $ArchivID = IPS_GetInstanceListByModuleID("{43192F0B-135B-4CE7-A0A7-1475603F3060}");
     $ArchivID = $ArchivID[0];
     $this->RegisterProfile(1, "WITHINGS_M_Groesse", "Gauge", "", " cm");
     $this->RegisterProfile(1, "WITHINGS_M_Puls", "Graph", "", " bpm");
     $this->RegisterProfile(2, "WITHINGS_M_Kilo", "", "", " kg", false, false, false, 1);
     $this->RegisterProfile(2, "WITHINGS_M_Prozent", "", "", " %", false, false, false, 1);
     $this->RegisterProfile(2, "WITHINGS_M_BMI", "", "", " kg/m²", false, false, false, 1);
     $this->RegisterProfile(1, "WITHINGS_M_Blutdruck", "", "", " mmHg");
     $this->RegisterProfileGender("WITHINGS_M_Gender", "", "", "", array(array(0, "maennlich", "", 0xff), array(1, "weiblich", "", 0xff0000)));
     $id = $this->RegisterVariableString("name", "Name", "~String", 0);
     $id = $this->RegisterVariableInteger("gender", "Geschlecht", "WITHINGS_M_Gender", 2);
     $id = $this->RegisterVariableString("birthdate", "Geburtstag", "~String", 1);
     $id = $this->RegisterVariableInteger("height", "Groesse", "WITHINGS_M_Groesse", 3);
     $parent = IPS_GetParent($id);
     $CatID = false;
     if ($this->ReadPropertyBoolean("BloodMeasures") == true) {
         $CatID = $this->CreateKategorie("Blutdruck", $parent);
         if ($CatID === false) {
             throw new Exception("Kategorie Blutdruck nicht definiert");
         }
         $VariablenID = @IPS_GetVariableIDByName("Diastolic", $CatID);
         if ($VariablenID === false) {
             $id = $this->RegisterVariableInteger("diastolicblood", "Diastolic", "WITHINGS_M_Blutdruck", 2);
             IPS_SetParent($id, $CatID);
         }
         $VariablenID = @IPS_GetVariableIDByName("Systolic", $CatID);
         if ($VariablenID === false) {
             $id = $this->RegisterVariableInteger("systolicblood", "Systolic", "WITHINGS_M_Blutdruck", 1);
             IPS_SetParent($id, $CatID);
         }
         $VariablenID = @IPS_GetVariableIDByName("Puls", $CatID);
         if ($VariablenID === false) {
             $id = $this->RegisterVariableInteger("heartpulse", "Puls", "WITHINGS_M_Puls", 3);
             IPS_SetParent($id, $CatID);
         }
         $VariablenID = @IPS_GetVariableIDByName("DatumUhrzeit", $CatID);
         if ($VariablenID === false) {
             $id = $this->RegisterVariableInteger("timestamp", "DatumUhrzeit", "~UnixTimestamp", 0);
             IPS_SetParent($id, $CatID);
         }
     }
     $logging = $this->ReadPropertyBoolean("BloodLogging");
     if ($CatID) {
         if ($logging) {
             $this->Logging("BloodLogging wird eingeschaltet");
         } else {
             $this->Logging("BloodLogging wird ausgeschaltet");
         }
         $id = IPS_GetVariableIDByName("Diastolic", $CatID);
         if (AC_GetLoggingStatus($ArchivID, $id) != $logging) {
             AC_SetLoggingStatus($ArchivID, $id, $logging);
             IPS_ApplyChanges($ArchivID);
         }
         $id = IPS_GetVariableIDByName("Systolic", $CatID);
         if (AC_GetLoggingStatus($ArchivID, $id) != $logging) {
             AC_SetLoggingStatus($ArchivID, $id, $logging);
             IPS_ApplyChanges($ArchivID);
         }
         $id = IPS_GetVariableIDByName("Puls", $CatID);
         if (AC_GetLoggingStatus($ArchivID, $id) != $logging) {
             AC_SetLoggingStatus($ArchivID, $id, $logging);
             IPS_ApplyChanges($ArchivID);
         }
         $status = $this->ReadPropertyBoolean("BloodVisible");
         $this->KategorieEnable($parent, "Blutdruck", $status);
     }
     $CatID = false;
     if ($this->ReadPropertyBoolean("BodyMeasures") == true) {
         $CatID = $this->CreateKategorie("Waage", $parent);
         if ($CatID === false) {
             throw new Exception("Kategorie Waage nicht definiert");
         }
         $VariablenID = @IPS_GetVariableIDByName("DatumUhrzeit", $CatID);
         if ($VariablenID === false) {
             $id = $this->RegisterVariableInteger("timestamp", "DatumUhrzeit", "~UnixTimestamp", 0);
             IPS_SetParent($id, $CatID);
         }
         $VariablenID = @IPS_GetVariableIDByName("Gewicht", $CatID);
         if ($VariablenID === false) {
             $id = $this->RegisterVariableFloat("weight", "Gewicht", "WITHINGS_M_Kilo", 1);
             IPS_SetParent($id, $CatID);
         }
         $VariablenID = @IPS_GetVariableIDByName("Fettfrei Anteil", $CatID);
         if ($VariablenID === false) {
             $id = $this->RegisterVariableFloat("fatfree", "Fettfrei Anteil", "WITHINGS_M_Kilo", 3);
             IPS_SetParent($id, $CatID);
         }
         $VariablenID = @IPS_GetVariableIDByName("Fett Anteil", $CatID);
         if ($VariablenID === false) {
             $id = $this->RegisterVariableFloat("fatmassweight", "Fett Anteil", "WITHINGS_M_Kilo", 2);
             IPS_SetParent($id, $CatID);
         }
         $VariablenID = @IPS_GetVariableIDByName("Fett Prozent", $CatID);
         if ($VariablenID === false) {
             $id = $this->RegisterVariableFloat("fatradio", "Fett Prozent", "WITHINGS_M_Prozent", 4);
             IPS_SetParent($id, $CatID);
//.........这里部分代码省略.........
开发者ID:1007,项目名称:Symcon1007_Withings,代码行数:101,代码来源:module.php

示例9: CreateENDevice

 /**
  * Create a new EnergyDev instance and set its properties
  * @param array $data parsed record
  * @param String $caps String semicolon seperated capabilities of this device
  * @return int new Instance ID
  */
 private function CreateENDevice($data, $caps)
 {
     $instID = 0;
     $Device = $data['Id'];
     $typ = $data['Typ'];
     $ModuleID = $this->module_interfaces['EnergyDev'];
     if (IPS_ModuleExists($ModuleID)) {
         //return $result;
         $this->debug(__FUNCTION__, "Create Device {$Device},Type {$typ}");
         $instID = IPS_CreateInstance($ModuleID);
         if ($instID > 0) {
             IPS_ConnectInstance($instID, $this->InstanceID);
             //Parents are ourself!
             IPS_SetProperty($instID, 'DeviceID', $Device);
             IPS_SetProperty($instID, 'Class', __CLASS__);
             IPS_SetProperty($instID, 'Typ', $typ);
             IPS_SetProperty($instID, 'CapList', $caps);
             IPS_SetProperty($instID, 'Debug', $this->isDebug());
             //follow debug settings from splitter
             IPS_SetName($instID, "{$typ} ID {$Device}");
             $ident = __CLASS__ . "_EN_{$Device}";
             $ident = preg_replace("/\\W/", "_", $ident);
             //nicht-Buchstaben/zahlen entfernen
             IPS_SetIdent($instID, $ident);
             IPS_ApplyChanges($instID);
             $cat = $this->GetCategory();
             $pcat = $this->GetParentCategory();
             $ident = preg_replace("/\\W/", "_", $cat);
             //nicht-Buchstaben/zahlen entfernen
             $catid = @IPS_GetObjectIDByIdent($ident, $pcat);
             if ($catid == 0) {
                 $catid = IPS_CreateCategory();
                 IPS_SetName($catid, $cat);
                 if (IPS_SetIdent($catid, $ident) && IPS_SetParent($catid, $pcat)) {
                     IPS_LogMessage(__CLASS__, "Category {$cat} Ident {$ident} ({$catid}) created");
                 } else {
                     IPS_LogMessage(__CLASS__, "Category {$cat} Ident {$ident} ({$catid}) FAILED");
                 }
             }
             $this->debug(__FUNCTION__, "Category:{$catid}");
             if (!IPS_SetParent($instID, $catid)) {
                 $this->debug(__FUNCTION__, "SetParent to Cat {$catid} failed");
             }
             $this->debug(__FUNCTION__, 'New ID:' . $instID);
             //if instID
         } else {
             $this->debug(__FUNCTION__, 'Instance  is not created!');
         }
     }
     //module exists
     return $instID;
 }
开发者ID:Tommi2Day,项目名称:ipsymcon-phpmodule-by-Tommi,代码行数:58,代码来源:module.php

示例10: AddIRCode

 protected function AddIRCode($ircode, $irid)
 {
     $code = "IRCode" . $irid;
     $label = "IRLabel" . $irid;
     //$instance = IPS_GetInstance($this->InstanceID)["InstanceID"];
     IPS_SetProperty($this->InstanceID, $code, $ircode);
     //IRCode setzten.
     $IRLabel = $this->ReadPropertyString($label);
     if (empty($IRLabel)) {
         IPS_SetProperty($this->InstanceID, $label, "Neuer Code");
         //IRLabel provisorisch setzten.
     }
     $NumberIRCodes = $this->ReadPropertyString("NumberIRCodes");
     $NumberIRCodes = $NumberIRCodes + 1;
     $this->CreateProfileIR($NumberIRCodes);
     IPS_SetProperty($this->InstanceID, "NumberIRCodes", $NumberIRCodes);
     //IRCode setzten.
     IPS_SetProperty($this->InstanceID, "LearnIRCode", false);
     //Haken entfernen.
     IPS_ApplyChanges($this->InstanceID);
     //Neue Konfiguration übernehmen
     IPS_LogMessage("IRCode" . $irid . " hinzugefügt:", $ircode);
     // Status aktiv
     $this->SetStatus(102);
 }
开发者ID:Wolbolar,项目名称:IPSymconAIOGateway,代码行数:25,代码来源:module.php

示例11: CreateEnergyDevice

 /**
  * Create a new EnergyDev instance and set its properties
  * @param array $data parsed record
  * @param String $caps String semicolon seperated capabilities of this device
  * @return int new Instance ID
  */
 private function CreateEnergyDevice($data, $caps)
 {
     $instID = 0;
     $Device = $data['Id'];
     $typ = $data['Typ'];
     $name = $data['Name'];
     $branch = $data['Branch'];
     unset($data['Branch']);
     if (!$name) {
         $name = "XS1 {$branch} {$Device}";
     }
     $class = __CLASS__ . "-EN";
     //$host = $this->GetHost();
     $ModuleID = $this->module_interfaces['EnergyDev'];
     if (IPS_ModuleExists($ModuleID)) {
         //return $result;
         $this->debug(__FUNCTION__, 'Device:' . $Device);
         $instID = IPS_CreateInstance($ModuleID);
         if ($instID > 0) {
             IPS_SetProperty($instID, 'DeviceID', $Device);
             IPS_SetProperty($instID, 'Class', $class);
             IPS_SetProperty($instID, 'Typ', $typ);
             IPS_SetProperty($instID, 'CapList', $caps);
             IPS_SetProperty($instID, 'Debug', $this->isDebug());
             //follow debug settings from splitter
             IPS_SetName($instID, "XS1 {$branch} '{$name}'");
             $ident = $class . "_" . $branch . "_{$Device}";
             $ident = preg_replace("/\\W/", "_", $ident);
             //nicht-Buchstaben/zahlen entfernen
             IPS_SetIdent($instID, $ident);
             IPS_ConnectInstance($instID, $this->InstanceID);
             IPS_ApplyChanges($instID);
             //set category
             $cat = $this->GetCategory() . " {$branch}" . "s";
             $pcat = $this->GetParentCategory();
             $ident = preg_replace("/\\W/", "_", $cat);
             //fix naming
             $catid = @IPS_GetObjectIDByIdent($ident, $pcat);
             if ($catid == 0) {
                 $catid = IPS_CreateCategory();
                 IPS_SetName($catid, $cat);
                 if (IPS_SetIdent($catid, $ident) && IPS_SetParent($catid, $pcat)) {
                     IPS_LogMessage($class, "Category {$cat} Ident {$ident} ({$catid}) created");
                 } else {
                     IPS_LogMessage($class, "Category {$cat} Ident {$ident} ({$catid}) FAILED");
                 }
             }
             $this->debug(__FUNCTION__, "Category:{$catid}");
             if (!IPS_SetParent($instID, $catid)) {
                 $this->debug(__FUNCTION__, "SetParent Instance {$instID} to Cat {$catid} failed, Dropping instance");
                 IPS_DeleteInstance($instID);
                 $instID = 0;
             } else {
                 $this->debug(__FUNCTION__, 'New ID:' . $instID);
             }
             //if instID
         } else {
             $this->debug(__FUNCTION__, 'Instance  is not created!');
         }
     }
     //module exists
     return $instID;
 }
开发者ID:Tommi2Day,项目名称:ipsymcon-phpmodule-by-Tommi,代码行数:69,代码来源:module.php

示例12: ApplyData

  public function ApplyData($data) {
    $data = (array)$data;
    $state = (array)$data['state'];

    /*
     * Properties
     */

    $dirty = false;

    $modelid = utf8_decode((string)$data['modelid']);
    $type = utf8_decode((string)$data['type']);
    $name = utf8_decode((string)$data['name']);
    if (IPS_GetProperty($this->InstanceID, 'ModelId') != $modelid) {
      IPS_SetProperty($this->InstanceID, 'ModelId', $modelid);
      $dirty = true;
    }
    if (IPS_GetProperty($this->InstanceID, 'Type') != $type) {
      IPS_SetProperty($this->InstanceID, 'Type', $type);
      $dirty = true;
    }
    if (IPS_GetName($this->InstanceID) != $name) {
      IPS_SetName($this->InstanceID, $name);
      $dirty = true;
    }

    // Setze den Modus
    if (isset($state['ct']) && isset($state['hue'])) {
      // HUE+CT Lamp
      $lightFeature = 0;
    } elseif(isset($state['hue'])) {
      // HUE Lamp
      $lightFeature = 1;
    } elseif(isset($state['ct'])) {
      // CT Lamp
      $lightFeature = 2;
    } else {
      // Lux Lamp
      $lightFeature = 3;
    }

    if (IPS_GetProperty($this->InstanceID, 'LightFeatures') != $lightFeature) {
      IPS_SetProperty($this->InstanceID, 'LightFeatures', $lightFeature);
      $dirty = true;
    }

    if ($dirty) IPS_ApplyChanges($this->InstanceID);

    /*
     * Variables
     */

    $stateId = $this->RegisterVariableBoolean("STATE", "Zustand", "~Switch");
    $this->EnableAction("STATE");
    IPS_SetPosition($stateId, 1);

    $cmId = $this->RegisterVariableInteger("COLOR_MODE", "Modus", "ColorModeSelect.Hue");
    $this->EnableAction("COLOR_MODE");
    IPS_SetPosition($cmId, 2);
    IPS_SetIcon($cmId, 'ArrowRight');

    $briId = $this->RegisterVariableInteger("BRIGHTNESS", "Helligkeit", "~Intensity.100");
    $this->EnableAction("BRIGHTNESS");
    IPS_SetIcon($briId, 'Sun');
    IPS_SetPosition($briId, 5);

    if ($lightFeature == 0 || $lightFeature == 1) {
      $hueId = $this->RegisterVariableInteger("HUE", "Hue");
      IPS_SetHidden($hueId, true);
    } else {
      $delete = @IPS_GetObjectIDByIdent("HUE", $this->InstanceID);
      if ($delete !== false) IPS_DeleteVariable($delete);
    }

    if ($lightFeature == 0) {
      IPS_SetVariableCustomProfile($cmId, 'ColorModeSelect.Hue');
      IPS_SetHidden($cmId, false);
    } else {
      IPS_SetHidden($cmId, true);
    }

    if ($lightFeature == 0 || $lightFeature == 2) {
      $ctId = $this->RegisterVariableInteger("COLOR_TEMPERATURE", "Farbtemperatur", "~Intensity.100");
      $this->EnableAction("COLOR_TEMPERATURE");
      IPS_SetIcon($ctId, 'Bulb');
      IPS_SetPosition($ctId, 4);
    } else {
      $delete = @IPS_GetObjectIDByIdent("COLOR_TEMPERATURE", $this->InstanceID);
      if ($delete !== false) IPS_DeleteVariable($delete);
    }

    if ($lightFeature == 0 || $lightFeature == 1) {
      $colorId = $this->RegisterVariableInteger("COLOR", "Farbe", "~HexColor");
      $this->EnableAction("COLOR");
      IPS_SetPosition($colorId, 3);
      IPS_SetIcon($colorId, 'Bulb');

      $satId = $this->RegisterVariableInteger("SATURATION", utf8_decode("Sättigung"), "~Intensity.100");
      $this->EnableAction("SATURATION");
      IPS_SetIcon($satId, 'Intensity');
//.........这里部分代码省略.........
开发者ID:Vansdan,项目名称:SymconHUE,代码行数:101,代码来源:module.php

示例13: GenerateShutter

		/**
		* 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:
		*
		* LJ_GenerateShutter($id, $Start, $End);
		*
		*/
		public function GenerateShutter($Start, $End)
		{
			
			$qid = @IPS_GetObjectIDByIdent("KNXQuick", 0);
			if($qid === false) {
				$qid = IPS_CreateCategory();
				IPS_SetName($qid, "KNX quick");
				IPS_SetIdent($qid, "KNXQuick");
			}
			
			$sid = @IPS_GetObjectIDByIdent("Shutter", $qid);
			if($sid === false) {
				$sid = IPS_CreateCategory();
				IPS_SetName($sid, "Shutter");
				IPS_SetIdent($sid, "Shutter");
				IPS_SetParent($sid, $qid);
				IPS_SetPosition($sid, 2);
			}
			
			for($i=$Start; $i<=$End; $i++) {
				for($j=0; $j<=9; $j++) {
					$iid = @IPS_GetObjectIDByIdent("Shutter".strtoupper(dechex($i).$j), $sid);
					if($iid === false) {
						$iid = IPS_CreateInstance("{24A9D68D-7B98-4D74-9BAE-3645D435A9EF}");
						IPS_SetName($iid, "Shutter (Group ".strtoupper(dechex($i)).", Channel ".$j.")");
						IPS_SetIdent($iid, "Shutter".strtoupper(dechex($i)).$j);
						IPS_SetParent($iid, $sid);
						IPS_SetProperty($iid, "GroupMoveAddress1", 14);
						IPS_SetProperty($iid, "GroupMoveAddress2", 0);
						IPS_SetProperty($iid, "GroupMoveAddress3", ($i*16)+$j);
						IPS_SetProperty($iid, "GroupStopAddress1", 14);
						IPS_SetProperty($iid, "GroupStopAddress2", 1);
						IPS_SetProperty($iid, "GroupStopAddress3", ($i*16)+$j);
						if($j > 0) {
							$mapping = Array();
							$mapping[] = Array(
								"GroupAddress1" => 14,
								"GroupAddress2" => 0,
								"GroupAddress3" => $i*16
							);
							$mapping[] = Array(
								"GroupAddress1" => 14,
								"GroupAddress2" => 0,
								"GroupAddress3" => 240
							);
							$mapping[] = Array(
								"GroupAddress1" => 14,
								"GroupAddress2" => 0,
								"GroupAddress3" => 240+$j
							);
							IPS_SetProperty($iid, "GroupMoveMapping", json_encode($mapping));
							$mapping = Array();
							$mapping[] = Array(
								"GroupAddress1" => 14,
								"GroupAddress2" => 1,
								"GroupAddress3" => $i*16
							);
							$mapping[] = Array(
								"GroupAddress1" => 14,
								"GroupAddress2" => 1,
								"GroupAddress3" => 240
							);
							$mapping[] = Array(
								"GroupAddress1" => 14,
								"GroupAddress2" => 1,
								"GroupAddress3" => 240+$j
							);
							IPS_SetProperty($iid, "GroupStopMapping", json_encode($mapping));
						}
						IPS_ApplyChanges($iid);
					}
				}
			}
			
			echo "Done.";
			
		}		
开发者ID:symcon,项目名称:SymconLJ,代码行数:84,代码来源:module.php

示例14: Variable_GetOrSet

function Variable_GetOrSet($name, $parent, $value)
{
    global $Logging;
    $VarID = @IPS_GetVariableIDByName($name, $parent);
    if (!$VarID) {
        if ($name == "Name" or $name == "Marke" or $name == "ID" or $name == "Anschrift") {
            $VarID = IPS_CreateVariable(3);
        } elseif ($name == "Geöffnet_von" or $name == "Geöffnet_bis") {
            $VarID = IPS_CreateVariable(3);
            $ProfilName = "GeoffnetVonBis_Tankstelle_TK";
            if (!IPS_VariableProfileExists($ProfilName)) {
                IPS_CreateVariableProfile($ProfilName, 3);
                IPS_SetVariableProfileText($ProfilName, "", " Uhr");
                IPS_SetVariableProfileIcon($ProfilName, "Clock");
            }
            IPS_SetVariableCustomProfile($VarID, $ProfilName);
        } elseif ($name == "Geöffnet") {
            $VarID = IPS_CreateVariable(0);
            $ProfilName = "Geoeffnet_Tankstelle_TK";
            if (!IPS_VariableProfileExists($ProfilName)) {
                IPS_CreateVariableProfile($ProfilName, 0);
                IPS_SetVariableProfileAssociation($ProfilName, 0, "Geschlossen", "", -1);
                IPS_SetVariableProfileAssociation($ProfilName, 1, "Geöffnet", "", -1);
                IPS_SetVariableProfileIcon($ProfilName, "Information");
            }
            IPS_SetVariableCustomProfile($VarID, $ProfilName);
        } elseif ($name == "Distanz") {
            $VarID = IPS_CreateVariable(2);
            $ProfilName = "Distanz_Tankstelle_TK";
            if (!IPS_VariableProfileExists($ProfilName)) {
                IPS_CreateVariableProfile($ProfilName, 2);
                IPS_SetVariableProfileText($ProfilName, "", "km");
                IPS_SetVariableProfileDigits($ProfilName, 1);
                IPS_SetVariableProfileIcon($ProfilName, "Distance");
            }
            IPS_SetVariableCustomProfile($VarID, $ProfilName);
        } elseif ($name == "Preis" or $name == "Preis_E5" or $name == "Preis_E10" or $name == "Preis_Diesel") {
            if ($value === NULL) {
                return;
            }
            $VarID = IPS_CreateVariable(2);
            $ProfilName = "Euro_Tankstelle_TK";
            if (!IPS_VariableProfileExists($ProfilName)) {
                IPS_CreateVariableProfile($ProfilName, 2);
                IPS_SetVariableProfileText($ProfilName, "", "€");
                IPS_SetVariableProfileDigits($ProfilName, 3);
                IPS_SetVariableProfileIcon($ProfilName, "Euro");
            }
            IPS_SetVariableCustomProfile($VarID, $ProfilName);
            if ($Logging) {
                $ArchiveHandlerID = IPS_GetInstanceListByModuleID('{43192F0B-135B-4CE7-A0A7-1475603F3060}')[0];
                AC_SetLoggingStatus($ArchiveHandlerID, $VarID, true);
                IPS_ApplyChanges($ArchiveHandlerID);
            }
        }
        IPS_SetName($VarID, $name);
        IPS_SetParent($VarID, $parent);
    }
    SetValue($VarID, $value);
}
开发者ID:BayaroX,项目名称:tankerkoenig-ip-symcon,代码行数:60,代码来源:ip-symcon.php

示例15: AddAddress

 protected function AddAddress(string $address)
 {
     $instance = IPS_GetInstance($this->InstanceID)["InstanceID"];
     IPS_SetProperty($instance, "LEDAdresse", $address);
     //Adresse setzten.
     IPS_SetProperty($instance, "LearnAddressLED", false);
     //Haken entfernen.
     IPS_ApplyChanges($instance);
     //Neue Konfiguration übernehmen
     IPS_LogMessage("LED Controller Adresse hinzugefügt:", $address);
 }
开发者ID:Wolbolar,项目名称:IPSymconAIOGateway,代码行数:11,代码来源:module.php


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