Hallo Zusammen,
ich würde dieses Thema noch mal gerne wiederbeleben.
Erst mal dem Autor des Scripts einen herzlichen Dank!! Du hast mir viel Arbeit erspart ![:slight_smile: :slight_smile:](https://community.symcon.de/images/emoji/win10/slight_smile.png?v=9)
Ich hab das Script bei mir nun am Laufen und so weit ist auch alles gut, aber ich bekomm im WebFront wenn ich auf Lock oder Unlock drück eine leere Fehlermeldung. Das Script wird aber korrekt ausgeführt und die KeyMatic macht das was sie soll. Hat jemand ne Idee wo diese tolle Fehlermeldung herkommt?
Hier mal das Script wies bei mir läuft:
<?
// keymatic ansteuern, bzw. darstellen
// verriegeln: HM_WriteValueBoolean(ID, "STATE" , false);
// entriegeln: HM_WriteValueBoolean(ID, "STATE" , true);
// öffnen: HM_WriteValueBoolean(ID, "OPEN" , true);
// Tastensperre an: HM_WriteValueBoolean(ID, "INHIBIT" , true);
// Tastensperre aus: HM_WriteValueBoolean(ID, "INHIBIT" , false);
$ID_KEYMATIC = 35359 /*[Sicherheit\KEYMATIC]*/; // Keymatic Instanz ID
$ID_KEYMATIC_STATE =15019 /*[Sicherheit\KEYMATIC\STATE]*/; // STATE Variable der Keymatic Instanz
$ID_VAR_ACTION = 17971 /*[Sicherheit\KEYMATIC\Keymatik_Aktionen\KeyMatic_Action]*/; // Integer Variable für Schalt und Darstellungszustände
$ID_VAR_KEYLOCK = 26888 /*[Sicherheit\KEYMATIC\Keymatik_Aktionen\KeyMatic_Lock]*/; // Boolean Variable für Tastensperre
//$ID_DOOR = 44468 /*[Sicherheit\Dachfenster\STATE]*/; // Instanz eines Türkontaktes
// aufruf über steuervariable
if ($_IPS['SENDER']=="WebFront" && $_IPS['VARIABLE']==$ID_VAR_ACTION)
{
$OLDVALUE=GetValue($ID_VAR_ACTION);
// variable setzen, da aktion aus webfront als "taster" dient
SetValue($ID_VAR_ACTION,$_IPS['VALUE']);
if ($_IPS['VALUE']==0)
{ // öffnen (türöffner)
HM_WriteValueBoolean($ID_KEYMATIC, "OPEN" , true);
}
else if ($_IPS['VALUE']==1)
{ // verriegeln nur wenn die tür zu ist
//if (getValue(44468 /*[Sicherheit\Dachfenster\STATE]*/)==false)
//{
HM_WriteValueBoolean($ID_KEYMATIC, "STATE" , false);
//}
}
else if ($_IPS['VALUE']==2)
{ // entriegeln aber tür noch zu
HM_WriteValueBoolean($ID_KEYMATIC, "STATE" , true);
}
// alten wert setzen, da nur einmalige tastaktion bei aktion open
if ($_IPS['VALUE']==0)
{
SetValue($ID_VAR_ACTION,$OLDVALUE);
}
}
else if ($_IPS['SENDER']=="WebFront" && $_IPS['VARIABLE']==$ID_VAR_KEYLOCK)
{ // aufruf über variable tastensperre
// oberflächen variable setzen und den selben status zur keymatic senden
SetValue($_IPS['VARIABLE'],$_IPS['VALUE']);
HM_WriteValueBoolean($ID_KEYMATIC, "INHIBIT" , $_IPS['VALUE']);
}
else
{ // über variablenänderung aufgerufen prüfen wie der Keymatic status ist
if (getValue($ID_KEYMATIC_STATE)==true)
{ //entriegelt
SetValue($ID_VAR_ACTION,2);
}
if (getValue($ID_KEYMATIC_STATE)==false)
{ //entriegelt
SetValue($ID_VAR_ACTION,1);
}
}
?>
Das Script hab ich in der Integer Variable als ActionScript hinterlegt.
Besten Dank schon mal für eure Hilfe!
Gruß und euch allen schon mal ein Frohes Fest
Mirank