Keymatic wehrt sich gegen IPS

Fehlt der „;“ bei Dir im Skript auch?

Uuupps, nein ist da. Trotzdem danke für den Zaunpfahl :wink:

Poste mal das ganze Skript wie Du es drin hast. Die eine Zeile sieht bei mir ebenso aus und läuft auf IPS 2.2/2.3/2.5 bei mir fehlerfrei.

Nachtrag: Ich habe vor dem Befehl noch ein „@“ drin.

Klar, bin ja für jede Hilfe dankbar.

<?

 // 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 = 20297 /*[Haussteuerung\Aussen\Haustür\KEYMATIC]*/;      // Keymatic Instanz ID
    $ID_KEYMATIC_STATE =22054 /*[Haussteuerung\Aussen\Haustür\KEYMATIC\STATE]*/; // STATE Variable der Keymatic Instanz
    $ID_VAR_ACTION = 37513 /*[Haussteuerung\Aussen\Haustür\Öffnen]*/;    // Integer Variable für Schalt und Darstellungszustände
    $ID_VAR_KEYLOCK = 52768 /*[Haussteuerung\Aussen\Haustür\Tastensperre Schloss Haustür]*/;   // Boolean Variable für Tastensperre

//    $ID_DOOR = 23191 /*[Objekt #23191 existiert nicht]*/;          // 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(23191 /*[Objekt #23191 existiert nicht]*/)==true)
            {
               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);
          }
      }


?>

Hast Du bei der Keymatic-Instanz das Flag Status emulieren gesetzt?

Der ist gesetzt, aber nicht von mir.
Muss der etwa raus ?

Im Gegenteil. Der sollte drin sein. Das war es also auch nicht. Funktioniert die Befehlszeile alleine in einem Testskript fehlerfrei - also ohne das ganze Brimborium aussenrum?

Gerade probiert, kommt aber die gleiche Fehlermeldung.

Cool. Werde ich heute abend mal ausprobieren. Ich habe den „@“ vor dem Befehl und bin neugierig ob der Fehler bei mir ohne diesen Zusatz auch kommt.

Würde das aus der Ferne ungern testen wollen so ganz ohne anwesende Bewohner…

Noch eine Frage am Rande: Hast Du eine CCU oder machst Du das über den BidCos? Wenn ja, welche Version?

Was fur’n „@“, an welcher Stelle ?

Habe den Lan-Adapter, ver. 0.961.
Halte mich bitte auf dem laufenden. :o

@HM_WriteValueBoolean($ID_KEYMATIC, "OPEN" , true); 

Der Klammeraffe unterdrückt die Skripteigenen Fehlermeldungen. D.h. das würde zwar die Meldung wegtapezieren aber nicht beseitigen.

Hat das vielleicht damit zu tun, daß es in IPS keine Variable „open“ unter Keymatic gibt ?

Vielleicht mal anlegen und probieren.

Gruß
Bruno

„OPEN“ ist einer der Datenpunkte der Keymatic im HM-System. Die Befehlszeile an sich sollte wohl richtig sein. Was er da anmosert ist mir aber auch nicht klar - erst recht nachdem der Befehl ja ausgeführt wird.

Was das ist weiss ich, die Richtigkeit der Befehlszeile habe ich auch nicht angezweifelt. :cool:

IPS (und nur IPS) fehlt eine Variable zum Ändern. Nach meinem Verständnis. Leider kann ich das selbst nicht probieren, da meine Keymatic im Karton liegt. :wink:

Gruß
Bruno

da meine Keymatic im Karton liegt.

Was in Deinem Fall das Auftreten eines Fehlers erklären würde…:smiley:

Ich probiere das heute abend mal aus.

Hab es selber probiert, Resultat: Vergiss es … :cool:

Die Lösung war einfacher: Haken bei Status emulieren raus.

Gruß
Bruno

Interessant - bei mir ist der Haken drin.

Und @ davor ?

Was denn jetzt, Haken rein oder raus ? :rolleyes:

Gesendet via Tapatalk vom Samsung Galaxy SII

Du sitzt doch dran, was hindert dich zu probieren … :cool: