Telenot Einbruchmeldeanlage in IPS

Hallo Zusammen!

Ich habe mal eine kurze Frage, vielleicht kann mir ja jemand weiterhelfen.
Ich habe eine Telenot Complex 400 Alarmanlage, besteht die Möglichkeit mit dem Seriellen Stecke der dort als GMS Ausgang ausgewiesen ist, irgendwie Daten in die IPS zu senden und dort zu verarbeiten und evt auch wieder welche in die Einbruchmeldeanlage reinzuschicken?

Vielleicht hat auch jemand sowas schon gemacht?

Würde mich über Antworten freuen.

Gruß
Norman

Ich kann mir schwer vorstellen, dass der Hersteller von Alarmanlagen ein Übertragungsprotokoll veröffentlicht, welches du aber brauchst um die Anlage mittels IPS bzw. PHP einzubinden, wenn es über eine serielle Schnittstelle erfolgen soll.

GMS Ausgang

Hier scheint es sich nicht um eine genormte Schnittstelle zu handeln, sondern eher eine Schnittstelle für ein Erweiterungsmodul des Herstellers… evtl. gar GSM? … da habe ich auf der Herstellerseite etwas gesehen… :wink:

Mit der GSM Schnittstelle wirst du nicht weiter kommen da die nur ein GSM Modem ansprechen kann. Aber die Honeywell MB-Zentralen bekommt man in beide Richtungen perfekt mit IPS verheiratet :wink:

Gesendet von meinem GT-I9300 mit Tapatalk 2

Ich hab auch eine Honeywell Einbruchmeldeanlage, hast du schon fertige Scripts die du zur Verfügung stellen kannst?

Das sind viele in einander verbastelte Scripts. Welche Anlage hast du denn?

Gesendet von meinem GT-I9300 mit Tapatalk 2

Ich hab die MB48.10 könnte aber auch auf eine MB100.10 aufrüsten (Rechnerplatine hab ich)

Geht beides. Die Firmware muss nur > V14 sein und du musst eine RS232/485 Adapter Platine besorgen

Gesendet von meinem GT-I9300 mit Tapatalk 2

Firmware hab ich V16 und RS232 Platine hab ich auch!

Dann kann es ja losgehen:

Zuerst musst du die Schnittstelle initialisieren:

COMPort_SendText(45593 /*[RS232-EMA]*/, "


MPI;D:0;F:FF
");

Dann nutze ich folgendes Script für die Verarbeitung:

<?

/* Allgemeine Datenvariablen und Statustexte */

$stoerung[0] = "Keine Störung";
$stoerung[1] = "Störung 1* ext gesperrt";
$stoerung[2] = "Akku gespeichert";
$stoerung[3] = "Akku +1* ext gesperrt";
$stoerung[4] = "Netzstörung";
$stoerung[5] = "Netzst.+ 1 ext gesperrt";
$stoerung[6] = "Netz + Akkuw";
$stoerung[7] = "Netzst + Akku + 1 ext. Gesperrt";
$stoerung[8] = "Sonstige Störung";
$stoerung[9] = "Son. Stör. + 1* ext gesperrt";
$stoerung[10] = "Son. Stör. + Akku gespeichert";
$stoerung[11] = "Son. Stör. + Akku +1* ext gesp";
$stoerung[12] = "Son. Stör. + Netzstörung";
$stoerung[13] = "Son. Stör. + Netzst.+ 1 ext gesp";
$stoerung[14] = "Son. Stör. + Netzst + Akku";
$stoerung[15] = "Son. Stör. + Netzst + Akku + 1 ext. Gesperrt";
$stoerung[16] = "Son. Stör. + Undefiniert 16";
$stoerung[17] = "Son. Stör. + Undefiniert 17";

//Zuordnung der Meldegruppen zu IP-Symcon IDs der Obergruppe
$MG[1] = 36836 /*[EMA\Sabotage]*/; //Sabotage
$MG[2] = 22550 /*[EMA\KG\Brandalarm]*/; //Brandalarm
$MG[3] = //Und so weiter .. für jede Meldegruppe ein Objekt anlegen und das hier mappen


IPS_LogMessage('EMA',$IPS_VALUE);

$daten = explode(";",$IPS_VALUE);

$kommando = $daten[0];
$meldepunktnummer = (int)substr($daten[1],2);
$meldezustand = (int)substr($daten[2],2);
$funktionswert = (int)substr($daten[3],2);
//Optional Zusatztext T
if(count($daten)>5)
{
if(substr($daten[4],0,1)=="T")
{
$zusatztext = $daten[4];
if($zusatztext<>"") { SetValueString(36653 /*[EMA\EMA Interne Steuerung\Zusatztext]*/,$zusatztext); }
}

//Optional Datenträgernummer K
if(substr($daten[5],0,1)=="K")
{
$datentraeger = $daten[5];
if($datentraeger<>"") { SetValueString(38540 /*[EMA\EMA Interne Steuerung\Datenträger]*/,$datentraeger); }
$pruefsumme = $daten[6];
}

//Nur 5 Datenteile
} else {
$zusatztext = "";
$datentraeger = "";
$pruefsumme = $daten[4];
}
echo "Meldepunkt: ".$meldepunktnummer." Zustand: ".$meldezustand." Wert: ".$funktionswert;

//Ist die Meldergruppe vorhanden
if(($meldepunktnummer>1100)&($meldepunktnummer<=1148))
{
$id = $MG[$meldepunktnummer-1100];
if($id>0)
{

$name = IPS_GetName($id);

//Alarmauslösung der Meldegruppe
if(($meldezustand=="1")&&($funktionswert==1))
{
SetValueString(32179 /*[EMA\Alarme]*/, GetValueString(32179 /*[EMA\Alarme]*/)."
".$id." - ".$name);
}

//Zustandsänderung der Meldegruppe
if($meldezustand==0)
{
if($funktionswert==1)
{
//aktuelle meldungen aktualisieren
IPS_RunScriptWaitEx(35516 /*[EMA Meldungen\EMA Meldungen]*/, array('action' => 'addupdate', 'text' => date('H:i:s',time()).' '.$name, 'expires' => time() + 0, 'removable' => false, 'msgnum' => $id, 'img' => 'Window'));
//echo("IPS_RunScriptWaitEx(35516 /*[EMA Meldungen\EMA Meldungen]*/, array('action' => 'addupdate', 'text' => date('H:i:s',time()).' '.$name, 'expires' => time() + 0, 'removable' => false, 'msgnum' => $id, 'img' => 'Window'));");
} else {
IPS_RunScriptWaitEx(35516 /*[EMA Meldungen\EMA Meldungen]*/, array('action' => 'rmMsgNum', 'msgnum' => $id));
}
}

//Suche Zustandsobjekt
$child = IPS_GetChildrenIDs($id);
foreach($child as $cid)
{
  if(($meldezustand==0)&&(IPS_GetName($cid)=='Zustand'))
  {
     setvalueinteger($cid,(int)$funktionswert);
  }
  if(($meldezustand==1)&&(IPS_GetName($cid)=='Alarm'))
  {
     setvalueboolean($cid,(boolean)$funktionswert);
  }
  if(($meldezustand==2)&&(IPS_GetName($cid)=='Intern gesperrt'))
  {
     setvalueboolean($cid,(boolean)$funktionswert);
  }
  if(($meldezustand==3)&&(IPS_GetName($cid)=='Extern gesperrt'))
  {
     setvalueboolean($cid,(boolean)$funktionswert);
  }
  if(($meldezustand==4)&&(IPS_GetName($cid)=='Sabotage'))
  {
     setvalueboolean($cid,(boolean)$funktionswert);
  }
}



}
}

//Umsetzung der Meldepunkte auf IP-Symcon Variablen

if(($meldepunktnummer==72)&&($meldezustand==0))
{
//Scharf-Änderung nur bei Zustandsänderung
if(getvalueinteger(41393 /*[EMA\Anlagenzustand]*/)<>(int)$funktionswert)
{
 SetValueInteger(57590 /*[EMA\Anlagenzustand vorher]*/, GetValueInteger(41393 /*[EMA\Anlagenzustand]*/));
 setvalueinteger(41393 /*[EMA\Anlagenzustand]*/,(int)$funktionswert);
 
 
 //Unscharf
 if((int)$funktionswert==0)
 {
 IPS_RunScript(27945 /*[EMA\EMA Interne Steuerung\Unscharf]*/);
 }
 
 //INT-Scharf
 if((int)$funktionswert==1)
 {
 IPS_RunScript(59763 /*[EMA\EMA Interne Steuerung\INT-Scharf]*/);
 }
 
 //EXT-Scharf
 if((int)$funktionswert==2)
 {
 IPS_RunScript(27317 /*[EMA\EMA Interne Steuerung\EXT-Scharf]*/);
 }

}
}



//-- Alarm --
if(($meldepunktnummer==72)&&($meldezustand==1))
{
if($funktionswert==1)
{
setvalueboolean(18384 /*[EMA\EMA Interne Steuerung\EMA Alarm]*/,true);

IPS_RunScript(52973 /*[EMA\EMA Interne Steuerung\EMA Alarm]*/ );

}
else
{
//Alarm rückgesetzt
SetValueString(32179 /*[EMA\Alarme]*/, "");
setvalueboolean(18384 /*[EMA\EMA Interne Steuerung\EMA Alarm]*/,false);
}
}

//--Scharfschaltemöglichkeit--
if(($meldepunktnummer==72)&&($meldezustand==5))
{
switch ($funktionswert) {
    case "0":
        setvalueboolean(26247 /*[EMA\Intern Scharf möglich]*/,false);
        setvalueboolean(39361 /*[EMA\Extern Scharf möglich]*/,false);
        break;
    case "1":
        setvalueboolean(26247 /*[EMA\Intern Scharf möglich]*/,true);
        setvalueboolean(39361 /*[EMA\Extern Scharf möglich]*/,false);
        break;
    case "2":
        setvalueboolean(26247 /*[EMA\Intern Scharf möglich]*/,false);
        setvalueboolean(39361 /*[EMA\Extern Scharf möglich]*/,true);
        break;
    case "3":
        setvalueboolean(26247 /*[EMA\Intern Scharf möglich]*/,true);
        setvalueboolean(39361 /*[EMA\Extern Scharf möglich]*/,true);
        break;
}
}

//--Störmeldungen--
if(($meldepunktnummer==72)&&($meldezustand==4))
{
SetValueString(34887 /*[EMA\Störungen]*/,$stoerung[$funktionswert]);
if($funktionswert>0)
{
IPS_RunScriptWaitEx(21334 /*[Meldungen\Meldungen]*/, array('action' => 'addupdate', 'text' => date('d.m.Y H:i:s ',time()).'Sammelstörung EMA', 'expires' => time() + 43200, 'removable' => true, 'msgnum' => 4, 'img' => 'Warning'));
IPS_ExecuteEx("C:/Program Files/nircmd/nircmd.exe", "beep 4000 1000", false, false, 0);
}
}

//Lebenszeichen setzen
SetValueInteger(46296 /*[EMA\EMA Interne Steuerung\EMA Lebenszeichen]*/,time());

?>

Das ist mit sicherheit nicht universell verwendbar, da dir ganze viele IPS Objekte fehlen, aber zumindest solltest du jetzt eine Idee haben, wie das funktioniert, oder?

Danke für deinen Code, werde mich bei nächster Gelegenheit damit beschäftigen.

Hallo nochmal!

Mit der GMS Schnittstelle ist die Gebäudemanagement Schnittstelle gemeint und hat nichts mit dem GSM zu tun.
Ja von der Einbindung der MB Zentralen habe ich auch schon gehört, leider aber nichts von Telenot.

Ich habe auch ein Telefonwählgerät mit IP Anschluss integriert aber das nutzt mir bestimmt auch nichts.
Dann werde ich mir wohl das Telenot KNX Modul besorgen müssen.

Gruß
Norman

Hallo okoenigs,

könntest du deine anderen Scripts und die Variablenprofile auch noch posten, komm da irgendwie nicht weiter.

danke
Thomas

Hi Thomas,

deine EMA spricht aber schon mit dir oder an welcher Stelle kommst du nicht weiter? Es gibt da nicht viel anderes an Scripten die ich Posten könnte, da ich das alles sehr verwurstet habe mit meinen anderen Techniken. Aber eigentlich sollten die Basics doch alle in dem Script enthalten sein?

vg
Oliver

Wie schaut zb dein Varablen Profil aus, du hast doch wenn ich das richtig sehe alle Zustände in einer Variable oder?
Muß aber auch gestehen das ich mich noch nicht so richtig eingearbeitet hab.
Derzeit bin ich noch mit der KNX Installation beschäftigt, und wollte mal schnell das Licht beim öffnen der Haustür anschalten (MK geht nur an die EMA)
also dein Script genommen und sofort gescheitert :-((

Mal eben … :wink:

Nachfolgend die Variablen einer MG:

Wie sieht denn der Debug des RS232-Ports aus?

Gibt es hier bereits Neuigkeiten in der Anbindung einer Telenot Complex EMA an IPS?

ich würde mich hier mal einreihen, allerdings handelt es sich um eine COMPACT EASY 200H/ 2516 800aP…

Hallo Tillmann, hat denn deine compact easy 200H auch eine RS232 Schnittstelle?

Gesendet von meinem iPhone mit Tapatalk

…die 200H hat keine RS232 Schnittstelle.

Falls jemand mittlerweile einen Weg für die 400H gefunden hat, da hätte ich auch Interesse :smiley:

Hallo zusammen,

ich habe bei mir das KNX Gateway von Telenot laufen und ich bekomme alle meine gewünschten Meldungen ins KNX gesendet.

Gruß