0) { $ID = @IPS_GetObjectIDByIdent ($VarIdentPrefix."Regen_Trigger" , $ScriptID["Mower_Auswertung"] ); if ($ID === false) { $ID = IPS_CreateEvent(0); //Ausgelöstes Ereignis IPS_SetEventTrigger($ID, 1, $esregnetID); //Bei Änderung von Variable mit ID 15754 IPS_SetParent($ID, $ScriptID["Mower_Auswertung"]); //Ereignis zuordnen IPS_SetIdent($ID,$VarIdentPrefix."Regen_Trigger"); IPS_SetEventActive($ID, true); //Ereignis aktivieren } } // ------------------------------------------------------------------------------------------------------------------------------------------------------ // Lege Profil Modus an // ------------------------------------------------------------------------------------------------------------------------------------------------------ $varProfilName=$VarIdentPrefix."Modus"; if (!IPS_VariableProfileExists($varProfilName)) { IPS_CreateVariableProfile($varProfilName,1); IPS_SetVariableProfileText($varProfilName,"",""); IPS_SetVariableProfileAssociation($varProfilName, 1, "Automatisch", "",0x00ff00 );//grün IPS_SetVariableProfileAssociation($varProfilName, 3, "Home", "",0xffff00 );//gelb IPS_SetVariableProfileAssociation($varProfilName, 0, "Manuell", "",0xff0000 );//rot } // ------------------------------------------------------------------------------------------------------------------------------------------------------ // Profil Mähsaison anlegen // ------------------------------------------------------------------------------------------------------------------------------------------------------ $varProfilName=$VarIdentPrefix."Saison"; if (!IPS_VariableProfileExists($varProfilName)) { IPS_CreateVariableProfile($varProfilName,1); IPS_SetVariableProfileText($varProfilName,"",""); IPS_SetVariableProfileAssociation($varProfilName, 0, "Sommer", "", 0x00ff00);//grün IPS_SetVariableProfileAssociation($varProfilName, 1, "Winter", "", 0xff0000 );//rot } // ------------------------------------------------------------------------------------------------------------------------------------------------------ // Profil Temperatur_setup anlegen // ------------------------------------------------------------------------------------------------------------------------------------------------------ $varProfilName=$VarIdentPrefix."Temperatur_Setup"; if (!IPS_VariableProfileExists($varProfilName)) { IPS_CreateVariableProfile($varProfilName,1); IPS_SetVariableProfileText($varProfilName,"","°C"); IPS_SetVariableProfileValues($varProfilName, 0, 30, 1); IPS_SetVariableProfileIcon($varProfilName, "Temperature"); } // ------------------------------------------------------------------------------------------------------------------------------------------------------ // Profil Wartezeit_nach_Regen anlegen // ------------------------------------------------------------------------------------------------------------------------------------------------------ $varProfilName=$VarIdentPrefix."Wartezeit"; if (!IPS_VariableProfileExists($varProfilName)) { IPS_CreateVariableProfile($varProfilName,1); IPS_SetVariableProfileText($varProfilName,""," min."); IPS_SetVariableProfileValues($varProfilName, 0, 60, 5); IPS_SetVariableProfileIcon($varProfilName, "Clock"); } // ------------------------------------------------------------------------------------------------------------------------------------------------------ // Profil Betriebsdatenabfrage anlegen // ------------------------------------------------------------------------------------------------------------------------------------------------------ $varProfilName=$VarIdentPrefix."Timer"; if (!IPS_VariableProfileExists($varProfilName)) { IPS_CreateVariableProfile($varProfilName,1); IPS_SetVariableProfileText($varProfilName,"","sek."); IPS_SetVariableProfileAssociation($varProfilName, 10, "10", "", -1); IPS_SetVariableProfileAssociation($varProfilName, 20, "20", "", -1 ); IPS_SetVariableProfileAssociation($varProfilName, 30, "30", "", -1 ); IPS_SetVariableProfileAssociation($varProfilName, 40, "40", "", -1 ); IPS_SetVariableProfileAssociation($varProfilName, 50, "50", "", -1 ); IPS_SetVariableProfileAssociation($varProfilName, 60, "60", "", -1 ); } // ------------------------------------------------------------------------------------------------------------------------------------------------------ // Profil AnAus anlegen // ------------------------------------------------------------------------------------------------------------------------------------------------------ $varProfilName=$VarIdentPrefix."AusAn"; if (!IPS_VariableProfileExists($varProfilName)) { IPS_CreateVariableProfile($varProfilName,1); IPS_SetVariableProfileText($varProfilName,"",""); IPS_SetVariableProfileAssociation($varProfilName, 0, "Aus", "", 0xff0000 );//rot IPS_SetVariableProfileAssociation($varProfilName, 1, "An", "", 0x00ff00 );//grün } // ------------------------------------------------------------------------------------------------------------------------------------------------------ // Profil Tastatur anlegen // ------------------------------------------------------------------------------------------------------------------------------------------------------ $varProfilName=$VarIdentPrefix."Tastatur"; if (!IPS_VariableProfileExists($varProfilName)) { IPS_CreateVariableProfile($varProfilName,1); IPS_SetVariableProfileText($varProfilName,""," - Taste"); IPS_SetVariableProfileAssociation($varProfilName, 0, "0 (Stop)", "",0xff0000 );//grün IPS_SetVariableProfileAssociation($varProfilName, 1, "1", "", -1 ); IPS_SetVariableProfileAssociation($varProfilName, 2, "2", "", -1 ); IPS_SetVariableProfileAssociation($varProfilName, 3, "3", "", -1 ); IPS_SetVariableProfileAssociation($varProfilName, 4, "4", "", -1 ); IPS_SetVariableProfileAssociation($varProfilName, 5, "5", "", -1 ); IPS_SetVariableProfileAssociation($varProfilName, 6, "6", "", -1 ); IPS_SetVariableProfileAssociation($varProfilName, 7, "7", "", -1 ); IPS_SetVariableProfileAssociation($varProfilName, 8, "8", "", -1 ); IPS_SetVariableProfileAssociation($varProfilName, 9, "9", "", -1 ); IPS_SetVariableProfileAssociation($varProfilName, 10, "Prog A", "", -1 ); IPS_SetVariableProfileAssociation($varProfilName, 11, "Prog B", "", -1 ); IPS_SetVariableProfileAssociation($varProfilName, 12, "Prog C", "", -1 ); IPS_SetVariableProfileAssociation($varProfilName, 13, "Home", "GroundFloor" , -1); IPS_SetVariableProfileAssociation($varProfilName, 14, "ManAuto", "", -1 ); IPS_SetVariableProfileAssociation($varProfilName, 15, "C", "", -1 ); IPS_SetVariableProfileAssociation($varProfilName, 16, "Up", "HollowDoubleArrowUp",-1 ); IPS_SetVariableProfileAssociation($varProfilName, 17, "Down", "HollowDoubleArrowDown",-1 ); IPS_SetVariableProfileAssociation($varProfilName, 18, "Yes", "OK",-1 ); } // ------------------------------------------------------------------------------------------------------------------------------------------------------ // Profil Timer Programmierung anlegen // ------------------------------------------------------------------------------------------------------------------------------------------------------ $varProfilName=$VarIdentPrefix."Programmieren"; if (!IPS_VariableProfileExists($varProfilName)) { IPS_CreateVariableProfile($varProfilName,1); IPS_SetVariableProfileText($varProfilName,"",""); IPS_SetVariableProfileAssociation($varProfilName, 0, "interne Zeit", "", -1 );//rot IPS_SetVariableProfileAssociation($varProfilName, 20, "Tagestimer", "", -1 );//grün IPS_SetVariableProfileAssociation($varProfilName, 21, "Wochentimer", "", -1 );//rot } // ------------------------------------------------------------------------------------------------------------------------------------------------------ // Profil Timerzeit anlegen // ------------------------------------------------------------------------------------------------------------------------------------------------------ $varProfilName=$VarIdentPrefix."Timer_Zeit"; if (!IPS_VariableProfileExists($varProfilName)) { IPS_CreateVariableProfile($varProfilName,3); IPS_SetVariableProfileText($varProfilName,"",""); } // ------------------------------------------------------------------------------------------------------------------------------------------------------ // Lege alle Variablen des DataArrays an // ------------------------------------------------------------------------------------------------------------------------------------------------------ foreach($dataArray as $data) { if (isset($data['Kategorie'])) { switch ($data['Kategorie']) { case "TimerKat": $kat = $TimerKatID; break; default: $kat = $BetriebdatenID; } } ELSE $kat = $BetriebsdatenID; createVariable($data, $kat); } // ------------------------------------------------------------------------------------------------------------------------------------------------------ // Lege alle Variablen an // ------------------------------------------------------------------------------------------------------------------------------------------------------ foreach ($EinstellungenArray as $data) { createVariable($data, $EinstellungenID); } foreach ($TimerArray as $data) { createVariable($data, $TimerKatID); } foreach ($RootCategoryArray as $data) { createVariable($data, $rootCategoryID); } // ------------------------------------------------------------------------------------------------------------------------------------------------------ // Schalte Scripte visible / invisible // ------------------------------------------------------------------------------------------------------------------------------------------------------ foreach($ScripteNamen as $data) { if ($data["Hide"]) IPS_SetHidden($ScriptID[$data["Name"]],TRUE); else IPS_SetHidden($ScriptID[$data["Name"]],FALSE); } if ($debug) IPS_LogMessage($skriptName,'--------Installation abgeschlossen----------'); echo "Installation abgeschlossen"; // Beende Script return; function createcategory($Name,$NameKat, $RootID) { Global $debug; Global $skriptName; global $VarIdentPrefix; // Prüfe, ob die Kategorie schon besteht $ID = @IPS_GetObjectIDByIdent($VarIdentPrefix.$NameKat, $RootID); if ($ID === false) { // Kategorie anlegen $ID = IPS_CreateCategory(); IPS_SetName($ID, $Name); IPS_SetIdent($ID, $VarIdentPrefix.$NameKat); IPS_SetParent($ID, $RootID); // Bestätige im Log die Anlage der Kategorie if ($debug) IPS_LogMessage($skriptName,"Kategorie ".$Name." als -> ID:".$ID." angelegt"); } return ($ID); } function createVariable($data, $RootID) { Global $debug; Global $skriptName; Global $VarIdentPrefix; global $ScriptID; if (isset($data["Type"])) { // Ermittel welcher Variabelntyp switch ($data["Type"]) { case "BOOLEAN": $vartyp = 0; break; case "INT": $vartyp = 1; break; case "FLOAT": $vartyp = 2; break; default: $vartyp = 3; } } ELSE $vartyp = 1; // Prüfe, ob Variabelntyp angelegt wurde $varProfilName = ""; if (isset($data["Profil"])) { if (substr($data["Profil"], 0, 1) == "~") $varProfilName =$data["Profil"]; else $varProfilName = $VarIdentPrefix.$data["Profil"]; } // Falls ein Profil benötigt wird, lege dieses ggf. an. if ($varProfilName != "") { // Nur anlegen, wenn es nicht schon existiert if (!IPS_VariableProfileExists($varProfilName)) { IPS_CreateVariableProfile($varProfilName,$vartyp); if (isset($data["Unit"])) IPS_SetVariableProfileText($varProfilName,""," ".$data["Unit"]); if (isset($data["DIGITS"])) IPS_SetVariableProfileDigits($varProfilName, $data["DIGITS"]); if (isset($data['Icon'])) IPS_SetVariableProfileIcon($varProfilName, $data['Icon']); } } // Lege eine Variable an, wenn diese noch nicht existiert // und verknüpfe diese mit dem Profil if (@IPS_GetObjectIDByIdent($VarIdentPrefix.$data["Titel"], $RootID) === false) { $VariablenID = IPS_CreateVariable($vartyp); IPS_SetName($VariablenID, $data["Titel"]); IPS_SetParent($VariablenID, $RootID); IPS_SetIdent($VariablenID, $VarIdentPrefix.$data["Titel"]); // if (isset($data['Profil'])) IPS_SetVariableCustomProfile($VariablenID,$VarIdentPrefix.$data['Profil']); if ($varProfilName != "") IPS_SetVariableCustomProfile($VariablenID,$varProfilName); if (isset($data['Script'])) IPS_SetVariableCustomAction ($VariablenID, $ScriptID[$data['Script']] ); if (isset($data['Icon'])) IPS_SetIcon($VariablenID, $data['Icon']); if (isset($data['SetupWert'])) setvalue($VariablenID, $data['SetupWert']); // Bestätige im Log die Anlage der Variablen if ($debug) IPS_LogMessage($skriptName,$data["Titel"]." angelegt als -> ID:".$VariablenID); } } ?>