RFID Lese-System für wenig Knete

So es scheint tatsächlich ein Versionsproblem zu sein …
mit

if ($IPS_SENDER == "RegisterVariable")

funktioniert immerhin die Abfrage schon mal

wie ich die RegisterVariable aufrufe weiß ich allerdings noch nicht … ich glaube es wird echt langsam zeit mal ein Update zu machen :wink:

Die Registervariable wird nur beim Auslösen des RFID-Lesers und die Aktivität des angegebenen Comportes beschrieben und triggert dann das angegebenen Script.

Zum Update kann ich nur raten, IPSymcon wird immer besser, und sooo teuer ist ein Update ja auch nicht.

Gruß Helmut

Ja das Update werde ich jetzt wohl auch machen :wink:
aber ich habe es jetzt zum Laufen bekommen.
Ich habe es noch ein klein bisschen umgeschrieben weil ich es schöner finde wenn der hex-wert abgespeichert wird :wink:

Hier also der Code für Version IPS Version 2.4:

 <?
if ($IPS_SENDER == "RegisterVariable")
{
$IRF = RegVar_GetBuffer(57733 /*[Serial Port\Register Variable]*/);
$IRF .= $IPS_VALUE;
$eins = strlen($IRF);
$o = "";
for( $i=0; $i<$eins; $i++)
{
  $o .= bin2hex( substr($IRF,$i,1))."";
}
echo " RFID-Karte Nr.: ";
echo $o;
SetValueString(33801 /*[RFID-Test\RFID-Leser Inhalt]*/, $o);
$Zulass1=getvaluestring(52063 /*[RFID-Test\RFID-Zulassung]*/);


If (($Zulass1 == $o)) {

         Echo " , Person 1 ist erkannt, Türöffner gestartet,";
         setValueBoolean(44263 /*[RFID-Test\Türöffner]*/,true);
         ips_sleep(1000);
         setValueBoolean(44263 /*[RFID-Test\Türöffner]*/,false);
         Echo " Türöffner gestoppt.";

 } else {

       Echo "Es war nicht Person 1";
       setValueBoolean(44263 /*[RFID-Test\Türöffner]*/,false);

  }

}
?>

Ach ja und vielen Dank Helmut :slight_smile:

Danke Dir auch, dass Du jetzt konsequenter detallierter geschrieben hast und dass Du den 2.6er Code reingestellt hast.

Besonderen Dank an Bruno !!

Gruß Helmut

Ja! auch vielen Dank an Bruno (Auch wenn ich den Letzten Post erst gelesen habe als es gelaufen ist :rolleyes: )
hatte mich verschieben … ist ja für die 2.4er Version :wink:

bin jetzt nur gerade noch am Schauen nach dem Update.
kann ich mit abgelaufener Subskription von Basic auf Professional upgraden? :confused:

Da wird Dir der Support sicher antworten.

Gruß Helmut

Hallo,

der Leser ist da und leider auch die Probleme auch.

Irgendwie klappt das mit dem Cutter nicht, wenn ich den so erstelle wie im ersten Beitrag kommt im Debug von der RegisterVariable nichts an, sobald ich als SyncZeichen den ersten Teil von einem Chip eintrage sind die Daten des Chips in der RegisterVariable sichtbar.

Wenn ich denn Cutter weg lasse wird das Script1 im Sekundentakt aufgerufen da der Leser bei mir ständig sendet.

Gruß

Frank

Dass der Leser, wenn man die Karte draufhält, ständig sendet ist auch mit Cutter so.

Funktioniert es denn sonst?

Gruß Helmut

Hallo Helmut,

nein, leider funktioniert es noch nicht.

Der Leser sendet ständig ohne das eine Karte in der nähe ist.

Gesendeter Wert = 0

Gruß

Frank

Hallo Frank,
dann ist es gut, wenn Du alles hier abbildest: Script, Comport, Registervariable, den Objektbaum und den Cutter.

Versionsfrage hatten wir beim Vorposter als Ursache für das Nichtfunktionieren, was hast Du?

Gruß Helmut

Anbei die Daten:
Leser : TowiTek Universal-RFID-Antenne C-Control TWT2021 Baustein 3.3 - 5 V/DC
Wandler TTL zu RS232 von Pollin
IPS: Aktuelle 3.0 Beta

<?
/*
*******************************
 IP-SYMCON Event Scripting
*******************************
File     : Com_Port_eingang.ips.php
Trigger  : On Update IRF_Leser
Interval :
*/

if ($_IPS['SENDER'] == "RegisterVariable")
{
$IRF_leser = RegVar_GetBuffer($_IPS['INSTANCE']);
$IRF = pack('H*', $IRF_leser); // 0xA1B2C3D4F5 // 5 chars/bytes.
SetValueString(50679 /*[Daten\Zutritskontrolle Daten\ZK Werkstatt\RFID Leser Inhalt]*/, $IRF);
$eins = strlen($IRF);
echo $eins;
$o = "";
for( $i=0; $i<$eins; $i++)
{
  $o .= bin2hex( substr($IRF,$i,1))."";
}
echo " RFID-Karte Nr.: ";
echo $o;
$Zulass1=getvaluestring(23929 /*[Daten\Zutritskontrolle Daten\ZK Werkstatt\RFID Zulassung1]*/);
$Zulass2=getvaluestring(48822 /*[Daten\Zutritskontrolle Daten\ZK Werkstatt\RFID Zulassung2]*/);

If (($Zulass1 == $IRF)) {

         Echo " , Person 1 ist erkannt, Türöffner gestartet,";
         setValueBoolean(31723 /*[Daten\Zutritskontrolle Daten\ZK Werkstatt\Türöffner]*/);
         ips_sleep(1000);
         setValueBoolean(31723 /*[Daten\Zutritskontrolle Daten\ZK Werkstatt\Türöffner]*/,false);
         Echo " Türöffner gestoppt.";

 } else {

       Echo "Es war nicht Person 1";
       setValueBoolean(31723 /*[Daten\Zutritskontrolle Daten\ZK Werkstatt\Türöffner]*/,false);

  }
//If (($Zulass2 == $IRF)) {

//         Echo " , Person 2 ist erkannt, Türöffner gestartet,";
//         setValueBoolean(12345 /*[Objekt #12345 existiert nicht]*/,true);
//         ips_sleep(1000);
//         setValueBoolean(12345 /*[Objekt #12345 existiert nicht]*/,false);
//         Echo " Türöffner gestoppt.";

// } else {

//       Echo "Es war nicht Person 2";
//       setValueBoolean(12345 /*[Objekt #12345 existiert nicht]*/,false);

//  }

}
?>

Hast HTerm?

Gibt es im WWW.

Wenn ja, beende mal IPS und rufe HTerm mit 9600 Boud und Deinem ComPort und teste mal, ob der Leser auch da immer was sendet, ich hole derweil meinen Leser raus.

Muß Das wieder selbst installieren :wink:

gruß Helmut

Bei hterm sieht es genau so aus, der sendet auch ständig.

Auf den ersten Blick: Die Registervariable bekommt als Ziel Id Dein Script, als übergerordnete Instanz den Comport.

Beim Cutter ist die übergeordnete Instanz der Comport.

Hterm sagt: Die Leseeinheit hat einen Fehler… Das darf so nicht sein. Ist bei mir auch nicht dauernd… Frag’ Firebuster mal, aber ich schätze nicht…

Liest er denn Daten ein?

Gruß Helmut

ich habe auch schon irgendwo gelesen, dass der Sender wohl ab und zu 00000000 raus gibt hatte ich bis jetzt noch nicht gehabt. Habe heute auf IPS 3 geupdatet. jetzt läuft auch der andere Code :wink:
wobei er mein Skript wohl irgendwie im Sekundentakt aufruft auch wenn ein Transponder mehr am Reader ist. aber das schaue ich mir morgen an.

Naja wenn er immer im Leerlauf 0000 sendet, dann könnte ein Cutter mit Synchronzeichen helfen.

Mußt mal schauen was Deine Karten so dafür hergeben.

Meiner macht es nicht…

Gruß Helmut

Hallo zusammen,
das gefällt mir hier alles sehr gut. Kennt ihr zufällig auch eine RFID Leser Variante die man Unterputz installieren kann?

Gruß Tim

Das Teil kannst Du in einer uP-Dose versenken.

Du mußt Dir eine schöne Abdeckung suchen.

Fertige RFID-Leser gibt es auch noch, brauchen aber mehr Knetmasse.

Gruß Helmut

Hi … ich bin zufällig über den Thread hier gestolpert. Da mich die KeyMatic - Fernbedienung ständig ärgert und meistens durch verkeilen in der Hose mit den Schlüsseln die Tür unbemerkt öffnet, hab ich mir die Teile von Post #1 bestellt. Leider hab ich nur ein 8-adriges Kabel vom Keller zur Haustür liegen, so dass ich nicht direkt an den IP-Symcon-Rechner komme. Habe mir - neben dem TowiTek RFID Reader und dem Pollin TTL-RS232-Wandler - deshalb noch diesen hier bestellt: http://www.amazon.de/gp/product/B00D85UR5M/ref=oh_aui_detailpage_o03_s00?ie=UTF8&psc=1

Das Teil unterstützt sämtliche Kommunikationsformen (UDP, TCP Server / TCP Client, …) und ist somit prädestiniert für einen UDP-Socket in Verbindung mit einer Register Variable. Ein Script dazu, der mir die 5 Bytes des RFID-Lesers richtig zusammenfummelt und schon ist der RFID-Reader mit Ethernet-Interface fertig :wink:

Momentan noch alles provisorisch. Ich habe vor, den Reader in eine Haustürklingel zu versenken und somit unsichtbar zu platzieren. Sobald das fertig ist, gibt’s Fotos, Anleitung und Scripts … bin allerdings für die nächsten 3 Wochen dienstlich unterwegs, danach geht’s dann los …