HB-UNI-Sen-RFID-RC - Anpassung für Wiegand-Leser möglich?

Entwicklung und Bau von Hardware aller Art, die im HM-Umfeld eingesetzt werden kann

Moderator: Co-Administratoren

mcbo
Beiträge: 88
Registriert: 16.08.2016, 15:45
Danksagung erhalten: 3 Mal

HB-UNI-Sen-RFID-RC - Anpassung für Wiegand-Leser möglich?

Beitrag von mcbo » 19.05.2020, 09:04

Hallo,

ich bin eifriger Leser dieses Forums, und habe mir auch schon einige
Sensoren, auf Basis des "JP-HB-Devices-addon" nachgebaut.

Was mir noch fehlt, wäre eine RFID / Fingeprint - Lösung.

Es gibt von jp112sdl das "HB-UNI-Sen-RFID-RC" Projekt.

Leider wird das Wiegand-Protokoll nicht unterstützt,
sodass man Wiegand-fähige Leser verwenden könnte.

Es gibt von einem anderen Entwickler ein Wiegand-Arduino Projekt:
https://blog.thesen.eu/teil-6-schaltung ... oard-wifi/

Leider fehlen mir die Fähigkeiten, aus diesen beiden Projekten ein "HB-UNI-Sen-RFID-RC - Wiegand" zu erstellen. :roll:

Hätte von Euch jemand die Muße, eventuell Jérôme selber :wink: ,
die Wiegand Unterstützung, einzubauen?

Ich denke mal, über dieses Feature, würden sich viele Homematic-Anwender freuen. :wink:


Danke

Gruß

Marcel

jp112sdl
Beiträge: 12108
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 848 Mal
Danksagung erhalten: 2148 Mal
Kontaktdaten:

Re: HB-UNI-Sen-RFID-RC - Anpassung für Wiegand-Leser möglich?

Beitrag von jp112sdl » 19.05.2020, 11:05

Klingt auf jeden Fall interessant.
Habe mich nie mit Wiegand beschäftigt, aber es scheint doch ein verbreitetes Protokoll zu sein!?

Auf die Schnelle habe ich hier eine Arduino-Lib gefunden: https://github.com/monkeyboard/Wiegand- ... or-Arduino

Mit viel Glück brauchts nur einen Umbau in der getRfidAddress:

Code: Alles auswählen

  bool getRfidAddress(uint8_t *addr) {
   if (wg.available()) {
     memset(addr,0x00, ID_ADDR_SIZE);
     memcpy(addr,wg.getCode(), ID_ADDR_SIZE);
     return true;
   } 
   return false;
  }

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

mcbo
Beiträge: 88
Registriert: 16.08.2016, 15:45
Danksagung erhalten: 3 Mal

Re: HB-UNI-Sen-RFID-RC - Anpassung für Wiegand-Leser möglich?

Beitrag von mcbo » 20.05.2020, 10:49

Danke Jérôme,

ich werde mir das mal ansehen. :roll:

Habe mir gestern erst einmal, zum Testen, einen günstigen Wigand-Leser bestellt.


Gruß

Marcel

mcbo
Beiträge: 88
Registriert: 16.08.2016, 15:45
Danksagung erhalten: 3 Mal

Re: HB-UNI-Sen-RFID-RC - Anpassung für Wiegand-Leser möglich?

Beitrag von mcbo » 29.05.2020, 15:34

Hallo Jérôme,

ich bin jetzt schon eine ganze Zeit am Testen.

Ich habe einen sehr günstigen Wiegand RFID/PIN/Fingerprint Reader bei ebay erstanden. (ca. 24 €)

Der ist baugleich dem I-KEYS F6-3 Reader.
https://www.i-keys.de/download_free/201 ... eitung.pdf

Dazu habe ich mir ein kleinen Test-Sketch geschrieben,
und den Reader zusammen mit einem kleinen OLED-Display, an einem Arduino Pro Mini, getestet.

Das funktioniert sehr gut.

RFID-IDs werden vom Reader über die Wiegand-Schnittstelle durchgereicht.
Fingerprints und PIN-Code, müssen im Reader auf einem Speicherplatz von 1-1500 abgespeichert werden.
Über die Wiegand-Schnittstelle wird bei richtiger Erkennung, die Speicherplatznummer übertragen.

Jetzt die Umsetzung in HB-UNI-Sen-RFID-RC.

Ich habe Deinen Codevorschlag und diese 4 Zeilen
in der "RFID.h" eingebaut:

Code: Alles auswählen

#include <Wiegand.h>

WIEGAND wg;

int pinD0 = 2; //Arduino Pro Mini = PIN "TX" ==> Wiegand Leser D0 / WG0- grün
int pinD1 = 3; //Arduino Pro Mini = PIN "RX" ==> Wiegand Leser D1 / WG0+ weiß
In der "HB-UNI-Sen-RFID-RC.ino" habe ich unter "void setup () {"
noch folgende Zeile eingebaut:

Code: Alles auswählen

wg.begin(pinD0, pinD1);
Der Sketch lässt sich auf den Arduino flashen und ich kann das Gerät an meiner CCU anlernen.

1. Problem: Wie kann ich die Chip ID per Steuerbefehl setzen? :roll:

Wenn ich laut Deiner Doku,

Code: Alles auswählen

dom.GetObject("BidCos-RF.JPRFID0001:1.SUBMIT").State("0x08,0x15,0xca,0xfe,0x00,0x00,0x00");
im HomeMatic Script Executor eingebe, bekomme ich als Ausgabe:

Code: Alles auswählen

{
  "sessionId": "",
  "httpUserAgent": "",
  "STDOUT": ""
}
Es wird aber nichts in den RFID Taster geschrieben.

2. Problem: Der Arduino Pro Mini hat nur 2 Interrupt-Ports
https://www.arduino.cc/reference/de/lan ... interrupt/

PIN2 und PIN3

Diese benötige ich für die Wiegand-Schnittstelle.
Der CC1101 hängt aber auch an PIN2. :shock:

Kann man den an einen anderen PIN anschließen?


Gruß

Marcel

jp112sdl
Beiträge: 12108
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 848 Mal
Danksagung erhalten: 2148 Mal
Kontaktdaten:

Re: HB-UNI-Sen-RFID-RC - Anpassung für Wiegand-Leser möglich?

Beitrag von jp112sdl » 29.05.2020, 19:30

mcbo hat geschrieben:
29.05.2020, 15:34
1. Problem: Wie kann ich die Chip ID per Steuerbefehl setzen?
Du musst die vollen 8 Byte angeben.
mcbo hat geschrieben:
29.05.2020, 15:34
dom.GetObject("BidCos-RF.JPRFID0001:1.SUBMIT").State("0x08,0x15,0xca,0xfe,0x00,0x00,0x00");
sind nur 7

Aber du musst sie ja nicht zwingend über Funk setzen. Du kannst die ID auch am Gerät anlernen.
mcbo hat geschrieben:
29.05.2020, 15:34
HomeMatic Script Executor
...kenn ich nicht.
Kann daher auch nichts zu der Ausgabe sagen
mcbo hat geschrieben:
29.05.2020, 15:34
2. Problem: Der Arduino Pro Mini hat nur 2 Interrupt-Ports
https://www.arduino.cc/reference/de/lan ... interrupt/

PIN2 und PIN3

Diese benötige ich für die Wiegand-Schnittstelle.
Der CC1101 hängt aber auch an PIN2. :shock:

Kann man den an einen anderen PIN anschließen?
Da stecke ich leider auch nicht so tief drin.
Ich weiß nicht, wie die "EnableInterrupt" Lib das macht. Da kann man ja auch jeden Pin? zu einem INT Pin machen!?
Ansonsten würde ich sagen - probieren geht über studieren :)
Vielleicht reicht der Wiegand-Lib auch nur 1 INT-Pin?

Alternativ einen ATmega 644PA einsetzen, der hat 3 INT

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

papa
Beiträge: 705
Registriert: 22.05.2018, 10:23
Hat sich bedankt: 24 Mal
Danksagung erhalten: 120 Mal

Re: HB-UNI-Sen-RFID-RC - Anpassung für Wiegand-Leser möglich?

Beitrag von papa » 29.05.2020, 20:29

Du kannst das CC1101 auch an andere Pins anschliessen - aber dann brauchst Du diesen https://github.com/pa-pa/AskSinPP/pull/157 Pullrequest. Der macht leider bei ein paar Beispielen Probleme. Deshalb sit der noch nicht drin.
Anfragen zur AskSin++ werden nur im Forum beantwortet

mcbo
Beiträge: 88
Registriert: 16.08.2016, 15:45
Danksagung erhalten: 3 Mal

Re: HB-UNI-Sen-RFID-RC - Anpassung für Wiegand-Leser möglich?

Beitrag von mcbo » 29.05.2020, 22:01

Hallo papa,

da muss ich als Github DAU noch einmal Nachfragen.

In Deinem Pullrequest Link sehe ich nur die Änderungen der Radio.h

Ich muss also meine Radio.h gegen die vom Pullrequest austauschen?
Wo finde ich im Github die vollständige geänderte Datei? :roll:

Ist sie das ???

https://raw.githubusercontent.com/pa-pa ... 44/Radio.h

Und wo muss der neu gewählte PIN für GDO0 eingetragen werden?


Gruß

Marcel

jp112sdl
Beiträge: 12108
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 848 Mal
Danksagung erhalten: 2148 Mal
Kontaktdaten:

Re: HB-UNI-Sen-RFID-RC - Anpassung für Wiegand-Leser möglich?

Beitrag von jp112sdl » 29.05.2020, 22:05

mcbo hat geschrieben:
29.05.2020, 22:01
Ist sie das ???

https://raw.githubusercontent.com/pa-pa ... 44/Radio.h
Nein, diese hier:
https://raw.githubusercontent.com/pa-pa ... 30/Radio.h
mcbo hat geschrieben:
29.05.2020, 22:01
Und wo muss der neu gewählte PIN für GDO0 eingetragen werden?
Dort, statt der 2
https://github.com/jp112sdl/HB-UNI-Sen- ... RC.ino#L87

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

jp112sdl
Beiträge: 12108
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 848 Mal
Danksagung erhalten: 2148 Mal
Kontaktdaten:

Re: HB-UNI-Sen-RFID-RC - Anpassung für Wiegand-Leser möglich?

Beitrag von jp112sdl » 29.05.2020, 22:09

papa hat geschrieben:
29.05.2020, 20:29
Der macht leider bei ein paar Beispielen Probleme. Deshalb sit der noch nicht drin.
Lt. Travis:

Code: Alles auswählen

/home/travis/build/pa-pa/AskSinPP/examples/FreqTest/FreqTest.ino:191:16:   required from here
931/home/travis/Arduino/libraries/AskSinPP/AskSinPP.h:35:63: error: 'pinpollingGDO0' was not declared in this scope
würde ich sagen, ist das Problem, dass in der FreqTest.ino keine EnableInterrupt Lib included wird?

Gleiches trifft auch auf den HB-OU-MP3-LED zu.

Das sind die beiden Sketche, die nicht gebaut werden können.

EDIT: Hab den PR angepasst, so dass jetzt keine Probleme mehr auftreten.

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

mcbo
Beiträge: 88
Registriert: 16.08.2016, 15:45
Danksagung erhalten: 3 Mal

Re: HB-UNI-Sen-RFID-RC - Anpassung für Wiegand-Leser möglich?

Beitrag von mcbo » 29.05.2020, 22:34

Hallo Jérôme,
Du musst die vollen 8 Byte angeben.
mcbo hat geschrieben:
29.05.2020, 15:34
dom.GetObject("BidCos-RF.JPRFID0001:1.SUBMIT").State("0x08,0x15,0xca,0xfe,0x00,0x00,0x00");

sind nur 7
Das steht so in Deiner Doku, habe ich nur kopiert! :lol:
Mit 8 Byte funktioniert es !!!

Kann ich damit auch 4 Stellige IDs verwenden? (Speicherplätze aus dem Reader)

z.B.: mit führenden Nullen ??? "00001499"
"0x00,0x00,0x00,0x00,0x01,0x04,0x09,0x09"
Aber du musst sie ja nicht zwingend über Funk setzen. Du kannst die ID auch am Gerät anlernen.
Also im CCU Webinterface "Anlernmodus" pro Taster aktiv setzen?
HomeMatic Script Executor

...kenn ich nicht.
https://github.com/litti/scriptparser/releases

Wie testest Du Scripte?
Alternativ einen ATmega 644PA einsetzen, der hat 3 INT
Ich habe hier noch einen Arduino Micro mit ATmega32u4, der hat 5 Interrupts.
Da läuft mein Testsketch auch ohne Probleme.

Ist ATmega32 = ATmega32u4 ???
Dann müsste AskSin ja laufen.

Gruß

Marcel

Antworten

Zurück zu „Hardwareentwicklung und Selbstbau von Aktoren und Sensoren“