arendst / Tasmota

Alternative firmware for ESP8266 and ESP32 based devices with easy configuration using webUI, OTA updates, automation using timers or rules, expandability and entirely local control over MQTT, HTTP, Serial or KNX. Full documentation at
https://tasmota.github.io/docs
GNU General Public License v3.0
21.93k stars 4.76k forks source link

Support Wiegand 26 reader #3647

Closed wirelesssolution closed 6 years ago

wirelesssolution commented 6 years ago

It is possible to support RFID reader using Wiegand 26 bits protocal ?

https://www.letscontrolit.com/wiki/index.php/Wiegand-26

Jason2866 commented 6 years ago

Possible maybe ;-) At the moment not supported

ascillato commented 6 years ago

RFID readers requested at #2915

ozett commented 5 years ago

i think that wiegand-protocol for NFC-reader is not the same as PN532 reader. i have fingerprints with Wiegand-interfaces, and also NFC-Reader combis.

i would love to see this in tasmota. maybe together with the pn532?

could be easy coded, i guess, it is almost done on espeasy. maybe some developer has a ❤️ and copy and paste the important bits over to tasmota 😄

wiegand lines here on espeasy-source on github

event->String1 = formatGpioName_input(F("D0 (Green, 5V)"));
event->String2 = formatGpioName_input(F("D1 (White, 5V)"));

get wiegand data simply from interrupt here on espeasy-source on github

*********************************************************************/
void Plugin_008_interrupt1()
/*********************************************************************/
{
  // We've received a 1 bit. (bit 0 = high, bit 1 = low)
  Plugin_008_keyBuffer = Plugin_008_keyBuffer << 1;     // Left shift the number (effectively multiplying by 2)
  Plugin_008_keyBuffer += 1;         // Add the 1 (not necessary for the zeroes)
  Plugin_008_bitCount++;         // Increment the bit count
}

/*********************************************************************/
void Plugin_008_interrupt2()
/*********************************************************************/
{
  // We've received a 0 bit. (bit 0 = low, bit 1 = high)
  Plugin_008_keyBuffer = Plugin_008_keyBuffer << 1;     // Left shift the number (effectively multiplying by 2)
  Plugin_008_bitCount++;           // Increment the bit count
}