Hallo Danke an Alle für die tolle Arbeit!
Habe die Infos mal gesammelt und alles auf ips umgeschriben.
Im Script Werte und Namen der Eingänge ändern. Variablen, Ereignisse und Timmer wird beim ausführen selbst angelegt.
- Zonen ein und aus schalten
- Status der Eingänge
- Eingänge ausblendbar (bei geöffnetem Fenster eines Eingangs, kann man ihn ausblenden um scharf zu schalten.
<?
<?
### Abus SecvestIP ###
$ÜbergeordneteID = IPS_GetParent($_IPS['SELF']);
// Werte eintragen
$webfront = 36313;
$ip = 'http://192.168.178.178'; // Abus IP
$bn = 'admin'; // Benutzer
$pw = 'admin'; // Passwort
// hier nur Name von den Abus Eingängen ändern sonst nichts
$InputCH[1] = Array ( 'Name'=>'Rauchmelder OG', 'RName'=>"InputCH1", 'varProfTyp'=>"~Window"); $InputCH[1]['ID'] = @IPS_GetVariableIDByName($InputCH[1]['Name'], $ÜbergeordneteID);
$InputCH[2] = Array ( 'Name'=>'Fenster Obergeschoß', 'RName' => "InputCH2", 'varProfTyp'=>"~Window"); $InputCH[2]['ID'] = @IPS_GetVariableIDByName($InputCH[2]['Name'], $ÜbergeordneteID);
$InputCH[3] = Array ( 'Name'=>'Fenster Keller, EG, Haus-&Garagentür', 'RName'=>"InputCH3", 'varProfTyp'=>"~Window"); $InputCH[3]['ID'] = @IPS_GetVariableIDByName($InputCH[3]['Name'], $ÜbergeordneteID);
$InputCH[4] = Array ( 'Name'=>'Kammera EG Flur', 'RName'=>"InputVCH1", 'varProfTyp'=>"~Window"); $InputCH[4]['ID'] = @IPS_GetVariableIDByName($InputCH[4]['Name'], $ÜbergeordneteID);
$InputCH[5] = Array ( 'Name'=>'Bewegungsmelder Keller', 'RName'=>"InputVCH2", 'varProfTyp'=>"~Window"); $InputCH[5]['ID'] = @IPS_GetVariableIDByName($InputCH[5]['Name'], $ÜbergeordneteID);
$InputCH[6] = Array ( 'Name'=>'Rauchmelder Bügelzimmer, Heizung, Garage', 'RName'=>"InputVCH3", 'varProfTyp'=>"~Window"); $InputCH[6]['ID'] = @IPS_GetVariableIDByName($InputCH[6]['Name'], $ÜbergeordneteID);
// ab hier nicht mehr ändern
$mod['intern'] = Array ('Name'=> 'Intern activ', 'RName' => "", 'varProfTyp'=>"~Switch"); $mod['intern']['ID'] = @IPS_GetVariableIDByName($mod['intern']['Name'], $ÜbergeordneteID);
$mod['extern'] = Array ('Name'=> 'Extern activ', 'RName' => "", 'varProfTyp'=>"~Switch"); $mod['extern']['ID'] = @IPS_GetVariableIDByName($mod['extern']['Name'], $ÜbergeordneteID);
$mod['aus'] = Array ('Name'=> 'Alarmanlage aus', 'RName' => "", 'varProfTyp'=>"~Switch"); $mod['aus']['ID'] = @IPS_GetVariableIDByName($mod['aus']['Name'], $ÜbergeordneteID);
$Aublenden[1] = Array ('Name'=>'Ausblenden '.$InputCH[1]['Name'], 'RName'=>"Channel1"); $Aublenden[1]['ID'] = @IPS_GetVariableIDByName($Aublenden[1]['Name'], $ÜbergeordneteID);
$Aublenden[2] = Array ('Name'=>'Ausblenden '.$InputCH[2]['Name'], 'RName'=>"Channel2"); $Aublenden[2]['ID'] = @IPS_GetVariableIDByName($Aublenden[2]['Name'], $ÜbergeordneteID);
$Aublenden[3] = Array ('Name'=>'Ausblenden '.$InputCH[3]['Name'], 'RName'=>"Channel3"); $Aublenden[3]['ID'] = @IPS_GetVariableIDByName($Aublenden[3]['Name'], $ÜbergeordneteID);
$Aublenden[4] = Array ('Name'=>'Ausblenden '.$InputCH[4]['Name'], 'RName'=>"Vchannel1"); $Aublenden[4]['ID'] = @IPS_GetVariableIDByName($Aublenden[4]['Name'], $ÜbergeordneteID);
$Aublenden[5] = Array ('Name'=>'Ausblenden '.$InputCH[5]['Name'], 'RName'=>"Vchannel2"); $Aublenden[5]['ID'] = @IPS_GetVariableIDByName($Aublenden[5]['Name'], $ÜbergeordneteID);
$Aublenden[6] = Array ('Name'=>'Ausblenden '.$InputCH[6]['Name'], 'RName'=>"Vchannel3"); $Aublenden[6]['ID'] = @IPS_GetVariableIDByName($Aublenden[6]['Name'], $ÜbergeordneteID);
// Var anlegen
if($_IPS['SENDER'] == 'Execute')
{
//Variablenprofil Anlegen:
if (IPS_VariableProfileExists("Abus_Channals_Status") != true)
{
$NameVP='Abus_Channals_Status';
IPS_CreateVariableProfile($NameVP, 1);//Name, Variablentyp 0=Boolean 1=Integer 2=Float 3=String
IPS_SetVariableProfileAssociation($NameVP, 0, "Geschlossen", "Window", 0x08F617); //Button Name Nr.0
IPS_SetVariableProfileAssociation($NameVP, 1, "Geöffnet", "Window", 0xFF0000); //Button Name Nr.1
IPS_SetVariableProfileAssociation($NameVP, 2, "Deaktiviert", "Window", 0x6A6662); //Button Name Nr.2
IPS_SetVariableProfileAssociation($NameVP, 3, "Ausgeblendet", "Window", 0xFD7F01); //Button Name Nr.3
$NameVP='Abus_Channals_Ausblenden';
IPS_CreateVariableProfile($NameVP, 1);//Name, Variablentyp 0=Boolean 1=Integer 2=Float 3=String
IPS_SetVariableProfileAssociation($NameVP, 0, "Ausblenden", "Warning", -1); //Button Name Nr.0
IPS_SetVariableProfileAssociation($NameVP, 1, "Einblenden", "Warning", -1); //Button Name Nr.1
}
IPS_SetHidden($_IPS['SELF'], true);
$arrayNr = 1;
foreach($mod as $Nr => $wert)
{ $varExist = empty( $wert['ID']);
if( $varExist == true )
{
// Var Alarm ein aus anlegen
echo $wert['Name'].'Var wurde angelegt';
$VarID = IPS_CreateVariable(0);
IPS_SetName($VarID, $wert['Name']); // Variable benennen
IPS_SetPosition($VarID, $arrayNr);
IPS_SetVariableCustomProfile($VarID, $wert['varProfTyp']);
IPS_SetParent($VarID, IPS_GetParent($_IPS['SELF'])); // Variable einsortieren
if($arrayNr <=2)
{IPS_SetVariableCustomAction($VarID, $_IPS['SELF']);}
$arrayNr++;
//Ereignis Anlegen
if($wert['Name']== 'Intern activ' or $wert['Name'] == 'Extern activ')
{
$eid = IPS_CreateEvent(0); //Ausgelöstes Ereignis
IPS_SetName($eid , 'Ereignis');
IPS_SetEventTrigger($eid, 1, $VarID); //Bei Aktuallisierung von Variable
IPS_SetParent($eid, $_IPS['SELF']); //Ereignis zuordnen
IPS_SetEventActive($eid, true);
}
}
}
$arrayNr = 3;
foreach($InputCH as $Nr => $wert)
{ $varExist = empty( $wert['ID']);
if( $varExist == true )
{
// Vars Status und Ausblenden anlegen
{
echo $wert['Name'].'Var wurde angelegt';
$VarID = IPS_CreateVariable(1);
IPS_SetName($VarID, $wert['Name']); // Variable benennen
IPS_SetPosition($VarID, $arrayNr);
IPS_SetVariableCustomProfile($VarID, 'Abus_Channals_Status');
IPS_SetParent($VarID, IPS_GetParent($_IPS['SELF'])); // Variable einsortieren
$arrayNr++;
echo $wert['Name'].'Var wurde angelegt';
$VarID = IPS_CreateVariable(1);
IPS_SetName($VarID, 'Ausblenden '.$wert['Name']); // Variable benennen
IPS_SetPosition($VarID, $arrayNr);
IPS_SetVariableCustomProfile($VarID, 'Abus_Channals_Ausblenden');
IPS_SetParent($VarID, IPS_GetParent($_IPS['SELF'])); // Variable einsortieren
IPS_SetVariableCustomAction($VarID, $_IPS['SELF']);
IPS_SetIcon($VarID, "Warning");
setValue($VarID, -1);
$arrayNr++;
}
}
}
IPS_SetScriptTimer($_IPS['SELF'], 180);
}
if( $_IPS['SENDER'] == 'WebFront')
{
if( @$_IPS['VARIABLE'] == $mod['intern']['ID'] )
{
if(getValue($mod['intern']['ID']) == True ) // intern aus
{
Sys_GetURLContentEx($ip.'/setMode.cgi?Mode=Unset&Source=Webpage', Array("AuthUser"=> $bn, "AuthPass"=> $pw) );
}
else // intern ein
{
Sys_GetURLContentEx($ip.'/setMode.cgi?Mode=PartSet&Source=Webpage', Array("AuthUser"=> $bn, "AuthPass"=> $pw) );
}
}
if( @$_IPS['VARIABLE'] == $mod['extern']['ID'] )
{
if(getvalue($mod['extern']['ID']) == True ) // extern aus
{
Sys_GetURLContentEx($ip.'/setMode.cgi?Mode=Unset&Source=Webpage', Array("AuthUser"=> $bn, "AuthPass"=> $pw) );
}
else //extern ein
{
Sys_GetURLContentEx($ip.'/setMode.cgi?Mode=Set&Source=Webpage', Array("AuthUser"=> $bn, "AuthPass"=> $pw) );
}
}
// Ausblenden
$NameAkt = IPS_GetName($_IPS['VARIABLE']);
foreach ($Aublenden as $Nr => $wert)
{
if( $NameAkt == $wert['Name'])
{
if($_IPS['VALUE'] == 0)
{Sys_GetURLContentEx($ip.'/setInput'.$wert['RName'].'.cgi?Bypass=ON', Array("AuthUser"=> $bn, "AuthPass"=> $pw) );
setValue($_IPS['VARIABLE'], 0) ;
}
else
{Sys_GetURLContentEx($ip.'/setInput'.$wert['RName'].'.cgi?Bypass=OFF', Array("AuthUser"=> $bn, "AuthPass"=> $pw) );
setValue($_IPS['VARIABLE'], 1) ;
}
}
IPS_Sleep(500);
setValue($_IPS['VARIABLE'], -1);
}
}
// Abfrage
$rueckgabe = Sys_GetURLContentEx($ip.'/getOverviewStatus.cgi', Array("AuthUser"=> $bn, "AuthPass"=> $pw) );
foreach($InputCH as $Nr=> $wert)
{
if (strpos($rueckgabe, $wert['RName']."=OFF")!== false){
Setvalue($wert['ID'], 0);
}
elseif (strpos($rueckgabe, $wert['RName']."=ON")!== false){
Setvalue($wert['ID'], 1);
if($_IPS['SENDER'] == 'WebFront' ){
WFC_SendNotification($webfront, 'Alarmanlage', 'Kann nicht activiert werden! '.$wert['Name'].' ist geöffnet', 'Speaker', 6);
}
}
elseif (strpos($rueckgabe, $wert['RName']."=DEACTIVATED")!== false ) {
Setvalue($wert['ID'], 2);
}
elseif (strpos($rueckgabe, $wert['RName']."=BYPASS")!== false){
Setvalue($wert['ID'], 3);
}
}
//Abfrage Status
$rueckgabe = Sys_GetURLContentEx($ip.'/getMode.cgi?Source=Webpage', Array("AuthUser"=> $bn, "AuthPass"=> $pw) );
if (strpos($rueckgabe,"Mode=Unset")!== false) {
Setvalue($mod['intern']['ID'] ,false);
Setvalue($mod['extern']['ID'] ,false);
Setvalue($mod['aus']['ID'] ,true);
}
if (strpos($rueckgabe,"Mode=PartSet")!== false) {
Setvalue($mod['extern']['ID'] ,false);
Setvalue($mod['intern']['ID'] ,true);
Setvalue($mod['aus']['ID'] ,false);
}
if (strpos($rueckgabe,"Mode=Set")!== false) {
Setvalue($mod['extern']['ID'] ,true);
Setvalue($mod['intern']['ID'] ,false);
Setvalue($mod['aus']['ID'] ,false);
}
?>
?>