NEWS
[Projekt - Status in Entwicklung] RFID in iobroker einbinden
-
Ich baue gerade an meinem Fingerabdruckscanner und in dem Zuge wird (im ersten Schritt) wohl ein Skript zur Userverwaltung rausfallen.
Aktuelle Idee ist das er Für jeden User Datenpunkte anlegt wie "Last" wo die letzte Nutzung drinsteht und irgendwie auch Felder wo man (pro Tag?) konfigurieren kann wann der jenige rein darf. Wer hier ideen hat wie man das am besten und nutzbarsten macht der sage bescheid
"Cron-Style" pro Tag ist recht technisch, sollte aber gehen, oder mehrere "von-bis"-Punkte pro Tag oder true/false punkte pro Stunde und Tag?
Und vllt noch einen "anzahl Fehler bei Erkennung"-Modus der keine ahnung was macht
Einen "Anlernmodus" wo eine neue User-ID in einem bestimmten Datenpunkt erwartet wird und dann alles defaultmäßig anleget wird ist auch geplant. Je nachdem halt wie das Device funktioniert …
Am Ende wenn jemand rein darf kann man einen Datenpunkt angeben der auf "true" geschaltet wird zum Öffnen der Tür.
Könnte mir vorstellen das das am Ende mit verschiedenen "Zutrittssystemen" funktioneren kann.
Wenn dann alles steht kann man über nen Adapter nachdenken ...
-
So habe den ESP im Netz und mit dem Code ausgestattet.
Im Wlan ist er verfügbar.
Wie sehe ich ob das Teil arbeitet? :lol:
Ich habe den Seriellen Monitor im Arduino IDE aber da steht quasi nix.
Auch im MQTT kommt nix an.
Irgendwas falsch eingetragen?
Ich verstehe MQTT noch nicht. In ioBroker bekomme ich den Server nicht ans laufen der ist immer gelb. Oder ist das richtig?
`/* -UID Transmitter over MQTT- */ #include <esp8266wifi.h> #include <wificlient.h> #include <mqttclient.h> #include <spi.h> #include <mfrc522.h> #define SS_PIN D8 #define RST_PIN D3 const char* host = "rfid_reader"; const char* ssid = "xxx"; const char* password = "xxx"; const char* broker = "mqtt://xxx@broker.shiftr.io"; WiFiClient wifi; MQTTClient mqtt; MFRC522 rfid(SS_PIN, RST_PIN); MFRC522::MIFARE_Key key; void connect(); void setup(void){ SPI.begin(); rfid.PCD_Init(); Serial.begin(115200); Serial.println(); Serial.println("Connecting to Wifi..."); WiFi.mode(WIFI_AP_STA); WiFi.begin(ssid, password); mqtt.begin(broker, wifi); connect(); Serial.println("Wifi connected!"); } void loop(void){ if(!mqtt.connected()) { connect(); } mqtt.loop(); delay(10); handleRFID(); } void connect() { while(WiFi.waitForConnectResult() != WL_CONNECTED){ WiFi.begin(ssid, password); Serial.println("Wifi failed, retrying."); } Serial.print("IP address: "); Serial.println(WiFi.localIP()); while (!mqtt.connect(host)) { Serial.print("."); } Serial.println("\nMQTT connection ready!"); } void messageReceived(String topic, String payload, char * bytes, unsigned int length) { Serial.print("incoming: "); Serial.print(topic); Serial.print(" - "); Serial.print(payload); Serial.println(); } void handleRFID() { if (!rfid.PICC_IsNewCardPresent()) return; if (!rfid.PICC_ReadCardSerial()) return; mqtt.publish("/hardware/rfid_reader/uid", printHex(rfid.uid.uidByte, rfid.uid.size)); rfid.PICC_HaltA(); rfid.PCD_StopCrypto1(); } String printHex(byte *buffer, byte bufferSize) { String id = ""; for (byte i = 0; i < bufferSize; i++) { id += buffer[i] < 0x10 ? "0" : ""; id += String(buffer[i], HEX); } return id; }</mfrc522.h></spi.h></mqttclient.h></wificlient.h></esp8266wifi.h>`[/i][/i]
-
Ich habe einen Wemos D1 mini und das RFID Kitt Zuhause aber keine Ahnung wie ich es zum laufen bringe. Hab einige Stunden damit verbracht aber ohne Ergebnis. Mit dieser (https://github.com/letscontrolit/ESPEasy/releases) Software kann ich mit MQTT kommunizieren aber hier fehlt der MFRC522 in der Liste. `
Wo scheitert es denn bei dir genau?
Wofür ist ESPEasy genau?
Habe nun einen ESP8266NodeMCU 12E
Habe dort das Git Projekt eingefügt paar Lib's installiert und hochgeladen.
MQTT ist mir aktuell echt ein Rätsel :roll:
Hab da noch was gefunden:
-
ESPEasy ist für den Wemos D1 mini eine Benutzeroberfläche die man über den Webbrowser aufrufen kann. Hab mich nach diesen ( http://forum.iobroker.net/viewtopic.php?f=35&t=5460 ) guten Forenbeitrag gehalten und dann noch weiter herumgebastelt.
Mit MQTT Sensoren eingebunden:
und mit Blockly Display angesteuert zur Anzeige der Homematic Wetterstation:
nur der RFID-RC522 Reader ist nicht in der Weboberfläche vorhanden.
An dem RFID-MQTT Sketch scheitert es den MQTT Benutzernamen, das Passwort und den Port einzugeben. Auch nach eingeben der WLAN Daten wollte er sich nicht verbinden.
-
Hat wer den RFID RC522 bereits im Iobroker am laufen ohne MQTT? würde gerne einen direkt am Pi anschließen wollen und mit einem Javascript die gelesenen Werte abfangen.
Gruß
-
Moin, ich habe es folgender Maßen gelöst.
Mit Alarmanlagen Aktivierung starte Ich ein Phyton Script.
So bald eine Gültige ID gelesen wird, schaltet das Script einen Raspberry Ausgang und wird beendet.
Den Ausgang nutze Ich dann als Trigger.
P.S. Ich beschreibe meine RFID Chips, jedes mal wenn Sie als i.O. gelesen werden, mit einem neuen Code, welcher nur für diesen Chip gilt.
So reicht es nicht aus, irgend einen Chip vor das Lesegerät zu halten
Gesendet von iPhone mit Tapatalk
-
Ich hatte es bereits mal am laufen im JavaScript. Ging dann alles in iobroker.
Nur bekomm ich es gerade kein 2tes mal hin :oops: :oops:
Im neuen Jahr kann ich wieder testen was ich damals gemacht hatte.
-
hi, hat sich bei deinem Projekt was getan? Habe den selben RFID Scanner und will diesen über ESP8266 mittels MQTT in iobroker einbinden. `
@Ritter:Ich habe einen Wemos D1 mini und das RFID Kitt Zuhause aber keine Ahnung wie ich es zum laufen bringe. Hab einige Stunden damit verbracht aber ohne Ergebnis. Mit dieser (https://github.com/letscontrolit/ESPEasy/releases) Software kann ich mit MQTT kommunizieren aber hier fehlt der MFRC522 in der Liste. `
Servus
hat einer das schon mit dem ES8266 und dem RC522 auf Basis des ESPEasy oder ESPEasyMega mit ioBroker zu verbinden, umgesetzt?
hab noch 3 ESP-Wroom-02 hier liegen und an einem hängt jetzt ein RFID-RC522 (https://www.amazon.de/AZDelivery-Reader-Arduino-Raspberry-inklusive/dp/B01M28JAAZ/ref=sr_1_1?ie=UTF8&qid=1515739386&sr=8-1&keywords=rc522)
BREAKING NEWS…...
Hab gerade gesehen das der https://www.letscontrolit.com/wiki/index.php/PN532 bereits von ESPEasy unterstützt wird und der RC522 leider immer noch nicht.
Ich hab den PN532 bestellt, und werd dann berichten was klappt.
Gruß Peer
-
Von meiner Seite her nix neues. Hab zu viele Baustellen und zu wenig Zeit. Hab auch aktuell keinen Verwendungszweck wozu ich es brauche. Für die Tür von außen rate ich von ab das ist sehr unsicher. Es wird ja erstmal nur auf richtige id geschaut.
Gesendet von meinem SM-G930F mit Tapatalk
-
So kurz und knapp zum testen,
Am RPI3 mit aktuellen Image haben wir folgendes gemacht.
1. SPI Schnittstelle aktivieren auf dem Raspi (sudo raspi-config)
2. Im Javaadapter Zusätzliche NPM-Module hinzufügen (mfrc522-rpi)
3. Ein Script````
// zusätzliches NPM Modul: mfrc522-rpi"use strict";
const mfrc522 = require("./mfrc522-rpi/index.js");
mfrc522.initWiringPi(0);setInterval(function(){
//# reset card
mfrc522.reset();
//# Scan for cards let response = mfrc522.findCard(); if (response.status) { response = mfrc522.getUid(); //# If we have the UID, continue const Auid = response.data; var RFID = decimalToHex(Auid[0]) + decimalToHex(Auid[1]) + decimalToHex(Auid[2]) + decimalToHex(Auid[3]); console.log(RFID); } //# Stop
mfrc522.stopCrypto();
}, 500);
function decimalToHex(d, padding) {
var hex = Number(d).toString(16);
padding = typeof (padding) === "undefined" || padding === null ? padding = 2 : padding;while (hex.length < padding) { hex = "0" + hex; } return hex;
}
Ich wollte das nächste Woche noch mal auf einen neuen frischen Raspi testen, aber vielleicht kann schon einer was damit anfangen. Hardware wurde ein RC522 verwendet. Gruß
-
Servus,
gute Nachtrichten von der ESP Front
Der PN532 wird sofort am I2C erkannt und funktioniert.
ioBroker bekommt auch die Daten per MQTT
Was noch etwas stört ist das es teilweise sehr lange dauert bis die Daten an ioBroker ankommen.
Ich hab aber im ESPEasy noch keine Einstellungen gemacht. Außer MQTT und PN532 einzustellen.
Ich überlege jetzt wie ich das weiter machen soll.
Eine Idee ist, sobald der Key im ioB ankommt, die Aktion auszuführen und den Key-Wert im MQTT zu löschen.
Sonst bleibt der Key-Wert ja dauerhaft vorhanden.
Habt ihr Vorschläge oder Ideen?
Einen WLAN fähigen RFID Read für ~10€ ist schon klasse….
Gruß Peer
-
Gibt es mittlerweile was neues hierzu? Ich habe als Hardware den RC522 und nen Wemos D1 Mini,
leider läuft das noch nicht mit EspEasy R120 und EspMega 20180826. Würde ihn auch gerne in den Broker bekommen.
Soll ein Bierlift für die Nachbarschaft hochfahren, das wäre das non Plus Ultra.
Gruß Christian
-
Über den raspberry geht es bereits. Wemos, naja, da müsste man selber noch mal Hand anlegen und einen Sketch schreiben.
-
Wollte jetzt dazu nicht extra nen Pi verbauen…
und meine Programmierkenntnisse kennst du ja... Quasi Null.
Hab mal den Pn532 geordert, der läuft anscheinend mit Espeasy aber wollte mal die Reichweite vergleichen.
Gruß Christian
-
https://github.com/omersiar/esp-rfid
Damit geht es sehr einfach. Funktioniert soweit das die Chip Seriennummer per mqtt ins iobroker geschickt wird. Hab es grob getestet aber dann war die Zeit wieder weg für das Projekt. Schau es dir mal an.
Gesendet von meinem SM-G930F mit Tapatalk
-
Ja läuft erstmal sehr gut. Die Einrichtung ging ohne Probleme, Chips werde gelesen, Zuordnung der Chips ob Zugriff erlaubt ist oder nicht geht auch. Nur Mqqt läuft irgendwie noch nicht, im Broker kommt nichts an. Teste ich Morgen nochmal.
Besten Dank
-
So auch Mqtt läuft jetzt, ich musste neu Flashen, der Wemos hat die Einstellungen nicht übernommen…
Im Broker sieht das dann so aus:
{"type":"access","time":1535573029,"isKnown":"true","access":"Always","username":"Chip","uid":"574d50d3"}
oder:
{"type":"access","time":1535573203,"isKnown":"true","access":"Disabled","username":"Karte","uid":"b05fa25"}
Scheit gut zu laufen.
Gruß Christian
-
top freut mich.
Es gibt wohl bald auch ein neues release. hoffe dann wird noch mehr per mqtt übertragen.
Kannst ja mal eine Doku vom Projekt machen das klingt interessant was du da vor hast 8-)
-
hi zusammen,
klinke mich mal kurz mit ein vielleicht könnt ihr mir weiterhelfen..
ich habe ebenfalls einen rfid Reader an einem nodemcu hängen und als client an meinem mqtt iobroker hängen.
Es ist so das ich die RFID transpoder einlesen kann jedoch gibt es massive unterschiede bei der Auswertung und Auslesegeschwindigkeit.
Gibt es möglichkeiten diese Verzögerungen zu verhindern.
Gerne schicke ich screenshots von meinen einstellungen.
-
Das Problem habe ich auch, bei mir läuft das ganze mit nem Wemos D1 mini über EspEasy,
es gibt da massive unterschiede mal wird über Mqtt gesendet mal nicht.
Im Wemos wird wohl immer der Chip gelesen und erkannt aber anscheinend sendet der nicht ordnungsgemäß die Werte zu ioBroker.
Das wird denke ich nicht an den Einstellungen liegen weil es mal geht und mal nicht…
Gruß Christian