MQTT - RFID - Reader

Begonnen von gloob, 12 Januar 2019, 18:56:40

Vorheriges Thema - Nächstes Thema

gloob

Zitat von: synaps-o-dan am 11 Juli 2019, 21:34:21
Auch  mit 10 s Drücken hat es nicht funktioniert. Ausschalten des WLANs hat das Problem behoben. (Logisch, hätte ich auch selbst drauf kommen können...)
Danke für die Hilfe!!!
Daniel

Dann muss ich mir das mit dem Reset nochmal angucken, weil genau so habe ich alle Reader zurück gesetzt, nachdem ich sie bei mir getestet habe.

Edit: es kann natürlich sein, dass der Reader in einer Endlosschleife fest hängt, wenn er sich nicht zum MQTT Server verbinden kann.
Raspberry Pi 3 | miniCUL 433MHz | nanoCUL 868 MHz | nanoCUL 433 MHz | MySensors WLAN Gateway | LaCrosse WLAN Gateway | SignalESP 433 MHz | SignalESP 868 MHz | HM-MOD-UART WLAN Gateway | IR - 360 Grad WLAN Gateway

Frank_Huber

Gibt es da keine Web gui für die grundlegenden settings?

Gesendet von meinem S60 mit Tapatalk


gloob

Okay ich habe es getestet und es ist so, wenn die MQTT Verbindung nicht hergestellt werden kann, hängt er in einem Endlosschleife fest. Ich werde es demnächst beheben und die neue Firmware hier hoch laden.
Raspberry Pi 3 | miniCUL 433MHz | nanoCUL 868 MHz | nanoCUL 433 MHz | MySensors WLAN Gateway | LaCrosse WLAN Gateway | SignalESP 433 MHz | SignalESP 868 MHz | HM-MOD-UART WLAN Gateway | IR - 360 Grad WLAN Gateway

gloob

Zitat von: Frank_Huber am 11 Juli 2019, 21:48:02
Gibt es da keine Web gui für die grundlegenden settings?

Gesendet von meinem S60 mit Tapatalk

Nein  ;D
Raspberry Pi 3 | miniCUL 433MHz | nanoCUL 868 MHz | nanoCUL 433 MHz | MySensors WLAN Gateway | LaCrosse WLAN Gateway | SignalESP 433 MHz | SignalESP 868 MHz | HM-MOD-UART WLAN Gateway | IR - 360 Grad WLAN Gateway

Frank_Huber

Da Lob ich mir dann das espeasy auf meinem. [emoji16][emoji16][emoji16]

Gesendet von meinem S60 mit Tapatalk


CarstenF

#110
Hi und schöne Ostern gehabt zu haben...
Kurze Frage: Weiß noch jemand, welche Arduino Version ihr verwendet habt? Ich habe einen Rechnerwechsel vollzogen und hab mir nicht notiert, welche IDE ich da drauf hatte. Mit den neuesten Versionen bekomme ich Fehlermeldungen. Scheinbar geht es da um die Subroutinen. Ältere IDE Versionen verarbeiten diesen Sketch scheinbar ohne zu murren. Jetzt gerade habe ich die 1.8.12 drauf, die aber beim kompilieren

Arduino: 1.8.12 (Mac OS X), Board: "LOLIN(WEMOS) D1 R2 & mini, 80 MHz, Flash, Disabled (new can abort), All SSL ciphers (most compatible), 4MB (FS:1MB OTA:~1019KB), v2 Lower Memory, Disabled, None, All Flash Contents, 921600"

In file included from /Users/carstenfickenzer/Downloads/RFID_Reader/RFID_Reader.ino:3:0:
/Users/C***r/Dokumente/Arduino/libraries/libraries/Adafruit_ESP8266/Adafruit_ESP8266.h:28:35: error: section attribute not allowed for 'Pchr'
typedef const PROGMEM char        Pchr; // Ditto, kindasorta
                                   ^
In file included from /Users/C***r/Library/Arduino15/packages/esp8266/hardware/esp8266/2.6.3/tools/sdk/libc/xtensa-lx106-elf/include/sys/stdio.h:6:0,
                 from /Users/C***r/Library/Arduino15/packages/esp8266/hardware/esp8266/2.6.3/tools/sdk/libc/xtensa-lx106-elf/include/stdio.h:63,
                 from /Users/C***r/Library/Arduino15/packages/esp8266/hardware/esp8266/2.6.3/cores/esp8266/Arduino.h:32,
                 from sketch/RFID_Reader.ino.cpp:1:
/Users/C***r/Library/Arduino15/packages/esp8266/hardware/esp8266/2.6.3/tools/sdk/libc/xtensa-lx106-elf/include/sys/pgmspace.h:25:130: error: 'const char HTTP_HEAD []' redeclared as different kind of symbol
   #define PROGMEM __attribute__((section( "\".irom.text." __FILE__ "." __STRINGIZE(__LINE__) "."  __STRINGIZE(__COUNTER__) "\"")))
                                                                                                                                  ^
/Users/C***r/Dokumente/Arduino/libraries/libraries/WhareHauoraWiFiManager/WiFiManager.h:25:24: note: in expansion of macro 'PROGMEM'
const char HTTP_HEAD[] PROGMEM            = "<!DOCTYPE html><html lang=\"en\"><head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1, user-scalable=no\"/><title>{v}</title>";
                        ^
In file included from /Users/C***r/Dokumente/Arduino/libraries/libraries/WhareHauoraWiFiManager/WiFiManager.h:17:0,
                 from /Users/C***r/Downloads/RFID_Reader/RFID_Reader.ino:17:
/Users/C***r/Library/Arduino15/packages/esp8266/hardware/esp8266/2.6.3/libraries/ESP8266WebServer/src/ESP8266WebServer.h:33:39: error: previous declaration of 'HTTPMethod HTTP_HEAD'
enum HTTPMethod { HTTP_ANY, HTTP_GET, HTTP_HEAD, HTTP_POST, HTTP_PUT, HTTP_PATCH, HTTP_DELETE, HTTP_OPTIONS };
                                       ^
RFID_Reader:62:1: error: 'MQTTClient' does not name a type
MQTTClient mqtt;
^
RFID_Reader:88:3: error: 'Serial' does not name a type
   Serial.println(F("setup mqtt"));
   ^
In file included from /Users/C***r/Library/Arduino15/packages/esp8266/hardware/esp8266/2.6.3/cores/esp8266/Arduino.h:242:0,
                 from sketch/RFID_Reader.ino.cpp:1:
/Users/C***r/Library/Arduino15/packages/esp8266/hardware/esp8266/2.6.3/tools/sdk/libc/xtensa-lx106-elf/include/sys/pgmspace.h:39:248: error: expected unqualified-id before ')' token
     #define PSTR(s) (__extension__({static const char __c[] __attribute__((__aligned__(4))) __attribute__((section( "\".irom0.pstr." __FILE__ "." __STRINGIZE(__LINE__) "."  __STRINGIZE(__COUNTER__) "\", \"aSM\", @progbits, 1 #"))) = (s); &__c[0];}))
                                                                                                                                                                                                                                                        ^
/Users/C***r/Library/Arduino15/packages/esp8266/hardware/esp8266/2.6.3/cores/esp8266/WString.h:38:76: note: in definition of macro 'FPSTR'
#define FPSTR(pstr_pointer) (reinterpret_cast<const __FlashStringHelper *>(pstr_pointer))
                                                                            ^
/Users/C***r/Library/Arduino15/packages/esp8266/hardware/esp8266/2.6.3/cores/esp8266/WString.h:39:34: note: in expansion of macro 'PSTR'
#define F(string_literal) (FPSTR(PSTR(string_literal)))
                                  ^
/Users/C***r/Downloads/RFID_Reader/RFID_Reader.ino:88:18: note: in expansion of macro 'F'
   Serial.println(F("setup mqtt"));
                  ^
RFID_Reader:89:3: error: 'Serial' does not name a type
   Serial.println("MQTT IP: " + (String)mqtt_server);
   ^
RFID_Reader:90:3: error: 'Serial' does not name a type
   Serial.println("MQTT Port: " + (String)mqtt_port);
   ^
RFID_Reader:91:3: error: 'Serial' does not name a type
   Serial.println("MQTT device name: " + (String)mqtt_device_name);
   ^
RFID_Reader:92:3: error: 'Serial' does not name a type
   Serial.println("MQTT user name: " + (String)mqtt_user);
   ^
RFID_Reader:93:3: error: 'Serial' does not name a type
   Serial.println("MQTT password: " + (String)mqtt_pass);
   ^
RFID_Reader:94:3: error: 'mqtt' does not name a type
   mqtt.begin(mqtt_server, ((String)mqtt_port).toInt(), wifi);
   ^
RFID_Reader:95:3: error: expected unqualified-id before 'while'
   while (!mqtt.connect(mqtt_device_name, mqtt_user, mqtt_pass))
   ^
RFID_Reader:99:3: error: 'mqtt' does not name a type
   mqtt.publish("/" + (String)mqtt_device_name + "/status", ESP.getResetReason());
   ^
RFID_Reader:100:3: error: 'mqtt' does not name a type
   mqtt.publish("/" + (String)mqtt_device_name + "/version", VERSION);
   ^
RFID_Reader:101:3: error: 'mqtt' does not name a type
   mqtt.publish("/" + (String)mqtt_device_name + "/watchdog", String(watchdogCounter));
   ^
RFID_Reader:102:3: error: 'mqtt' does not name a type
   mqtt.publish("/" + (String)mqtt_device_name + "/wifi_rssi", String(WiFi.RSSI()));
   ^
/Users/C***r/Downloads/RFID_Reader/RFID_Reader.ino: In function 'void onButton1Pressed()':
RFID_Reader:111:3: error: 'mqtt' was not declared in this scope
   mqtt.publish("/" + (String)mqtt_device_name + "/button1", "pressed");
   ^
/Users/C***r/Downloads/RFID_Reader/RFID_Reader.ino: In function 'void onButton2Pressed()':
RFID_Reader:116:3: error: 'mqtt' was not declared in this scope
   mqtt.publish("/" + (String)mqtt_device_name + "/button2", "pressed");
   ^
/Users/C***r/Downloads/RFID_Reader/RFID_Reader.ino: In function 'void onButton3Pressed()':
RFID_Reader:121:3: error: 'mqtt' was not declared in this scope
   mqtt.publish("/" + (String)mqtt_device_name + "/button3", "pressed");
   ^
/Users/C***r/Downloads/RFID_Reader/RFID_Reader.ino: In function 'void onButton1PressedFor()':
RFID_Reader:126:3: error: 'mqtt' was not declared in this scope
   mqtt.publish("/" + (String)mqtt_device_name + "/button1", "long pressed");
   ^
/Users/C***r/Downloads/RFID_Reader/RFID_Reader.ino: In function 'void onButton2PressedFor()':
RFID_Reader:131:3: error: 'mqtt' was not declared in this scope
   mqtt.publish("/" + (String)mqtt_device_name + "/button2", "long pressed");
   ^
/Users/C***r/Downloads/RFID_Reader/RFID_Reader.ino: In function 'void onButton3PressedFor()':
RFID_Reader:136:3: error: 'mqtt' was not declared in this scope
   mqtt.publish("/" + (String)mqtt_device_name + "/button3", "long pressed");
   ^
/Users/C***r/Downloads/RFID_Reader/RFID_Reader.ino: In function 'void handleRFID()':
RFID_Reader:314:3: error: 'mqtt' was not declared in this scope
   mqtt.publish("/" + (String)mqtt_device_name + "/uid", printHex(rfid.uid.uidByte, rfid.uid.size));
   ^
/Users/C***r/Downloads/RFID_Reader/RFID_Reader.ino: In function 'void loop()':
RFID_Reader:348:5: error: 'mqtt' was not declared in this scope
     mqtt.publish("/" + (String)mqtt_device_name + "/watchdog", String(watchdogCounter));
     ^
RFID_Reader:360:3: error: 'mqtt' was not declared in this scope
   mqtt.loop();
   ^
exit status 1
'MQTTClient' does not name a type

diesen Fehler bringt. Lt. Dr. Google, geht es um die besagten Subroutinen. Ich weiß leider nicht genau wie ich den Code umschreiben muß, damit das funktioniert. Deshalb wollte ich den Umweg über die ältere IDE gehen.
Gruß C.

Nach laaaaangem rumprobieren auf einer Ubuntu Distribution und übertragen der Einstellungen hab ich den Übeltäter gefunden. Es war die Boarddefinition für ESP8266. Mit der 2.42 Version und der WifiManager Version 0.8.0 konnte ich sowohl auf dem Ubuntu, als auch auf dem Mac den Sketch flashen. Puh, das hat Nerven gekostet. Aber vielleicht gerät ja noch jemand anderes in diese Lage.

Gruß C.,

Raspberry Pi4
CUL 868, CUL 433, LaCrosse Gateway, Zigbeetomqtt2, HUE, Homematic
Max-Cube umgeflasht
MAX!, FhemtoFhem, Homebridge, FhemConnector, IR_Gateway und sonst auch noch allerlei Spielzeug....

laberlaib

Falls jemand den o.g. Fehler hatte, den ich auch eben hatte:
Ich hatte aus der Bibliothek einfach "Wifimanager" gesucht und da es viele Treffer gibt mit "tzapu" verfeinert. Dann ist aber der erste Treffer mit dem Namen "Wifimanager" ein Fork, mit dem es nicht fuktioniert hat.
Funktioniert hat es dann mit:
WifiManager by tzapu,tablatronix Version 2.0.3-alpha (installiert via Bibliotheksverwaltung)
Arduino IDE 1.8.13
ESP8266 Community Version 2.7.4
(sollte derzeit, 01/21, relativ aktuell sein).
--
Proxmox, Homematic, G-Tags, Zigbee2MQTT, Rhasspy Sprachsteuerung im Aufbau (beta)

gloob

Ich habe mal eine V1.8 hochgeladen, die eine LED an D0 kurz aufblinken lässt, wenn ein RFID Chip erkannt wurde.
Raspberry Pi 3 | miniCUL 433MHz | nanoCUL 868 MHz | nanoCUL 433 MHz | MySensors WLAN Gateway | LaCrosse WLAN Gateway | SignalESP 433 MHz | SignalESP 868 MHz | HM-MOD-UART WLAN Gateway | IR - 360 Grad WLAN Gateway

jheinze@waldbroel-hahn.de

Zitat von: Ranseyer am 30 Januar 2019, 19:11:12
OK-ey...  :o

Danke für die Info. Dann bräuchte ich auch keine M4 Schrauben "reinmurksen" ...  8)
Hab vorher schon mal eine Satz deiner Wunderteile bestellt...

geht auch mit einem Lötkolben, einfach aufstecken, den Lötkolben aufsetzen und vorsichtig runterdrücken....

Horti

Hallo Stefan,

ich habe mir schon vor längerer Zeit die Bauteile zugelegt, habe jetzt durch deine Verkaufsanzeige wieder dran gedacht und wollte mal das Ganze zusammenbauen. Finde aber die stl-Dateien auf thingiverse nicht mehr, sind die denn irgendwoanders hin gezogen?

jheinze@waldbroel-hahn.de

Zitat von: gloob am 12 Januar 2019, 18:56:40
Hallo,

Ich bin gerade am basteln und möchte euch am Fortschritt teil haben lassen. Angeregt durch einen anderen Thread hier im Forum baue ich mir gerade einen MQTT - RFID - Reader um die Sonos Box im Kinderzimmer zu steuern.




Firmware

Aktuell habe ich einen RFID Reader (RC522) mit einem Wemos (Wemos D1 mini) gekoppelt und einen Sketch aufgespielt, der die IDs der Karten per MQTT an FHEM überträgt.
Den verwendeten Sketch hänge ich hier an. Die Settings zum flashen habe ich in einem Screenshot festgehalten.

Die Firmware hat Long-Press Support für die Buttons. Die Zeit ist aktuell auf eine Sekunde eingestellt.

Zusätzlich gibt es einen Watchdog Counter der jede Minute hochgezählt wird.

Durch gleichzeitiges Drücken und Halten der 3 Buttons für mehr als 5 Sekunden wird der Reader auf Werkseinstellungen zurück gesetzt. Wifi und MQTT Einstellungen müssen/können danach neu gesetzt werden.




Neue Firmware "RFID_Buttons_WLAN_LongPressed_v1.4":

  • Unterstützung für Username und Passwort für MQTT

Neue Firmware "RFID_Buttons_WLAN_LongPressed_v1.5":

  • Vollständige Unterstützung für MQTT Einstellungen: IP, Port, Username, Passwort, Devicename

Neue Firmware "RFID_Buttons_WLAN_LongPressed_v1.6":

  • Reset auf Werkseinstellungen (Wifi + MQTT) durch gleichzeitiges Drücken und Halten aller 3 Buttons für mehr als 5 Sekunden

Neue Firmware "RFID_Buttons_WLAN_LongPressed_v1.7":

  • neues MQTT Reading für die WLAN Signalstärke: /RFID_Reader/wifi_rssi:.* RSSI

Neue Firmware "RFID_Buttons_WLAN_LongPressed_v1.8":

  • Integration einer LED an D0 die kurz Aufblinkt wenn ein RFID Chip erkannt wurde

Ich habe mir erlaubt, die Firmware etwas zu modifizieren und den gescannten TAG als HEX (uid-h) und dezimal (uid) zusätzlichen Topic auszugeben; den führenden "\" (hatte mich gestört)  kann man über eine Definition wieder reinbringen. Die Button Funktionen sind hier entfernt. So ist der Reader mit der MQTT Message wieder mit einem ESPEasy System (PN532) wieder kompatibel. Wobei ich auch hier eine Lösung habe, die sowohl decimal als auch hex den TAG als Topic liefert:
Einfach als Rule in ESPEasy einführen, RFID ist der Devicename, Tag das Reading/Value:


on RFID#Tag do
Publish %sysname%/RFID/RFIDxH, {tohex:[RFID#Tag]}
endon



jheinze@waldbroel-hahn.de

Zitat von: Horti am 20 Februar 2021, 22:36:27
Hallo Stefan,

ich habe mir schon vor längerer Zeit die Bauteile zugelegt, habe jetzt durch deine Verkaufsanzeige wieder dran gedacht und wollte mal das Ganze zusammenbauen. Finde aber die stl-Dateien auf thingiverse nicht mehr, sind die denn irgendwoanders hin gezogen?

die Teile hab ich auch schon gesucht..  ;)

jheinze@waldbroel-hahn.de

Zitat von: Horti am 20 Februar 2021, 22:36:27
Hallo Stefan,

ich habe mir schon vor längerer Zeit die Bauteile zugelegt, habe jetzt durch deine Verkaufsanzeige wieder dran gedacht und wollte mal das Ganze zusammenbauen. Finde aber die stl-Dateien auf thingiverse nicht mehr, sind die denn irgendwoanders hin gezogen?

Hallo,

habe grad was ähnliches auf Thingiverse gefunden,  da sollte Stefan's Aufbau reinpassen, vielleicht ist es sogar Stefan's .. wer weiss..

https://www.thingiverse.com/thing:2610816


gloob

Zitat von: Horti am 20 Februar 2021, 22:36:27
Hallo Stefan,
ich habe mir schon vor längerer Zeit die Bauteile zugelegt, habe jetzt durch deine Verkaufsanzeige wieder dran gedacht und wollte mal das Ganze zusammenbauen. Finde aber die stl-Dateien auf thingiverse nicht mehr, sind die denn irgendwoanders hin gezogen?

Die STL Dateien der großen Version kann ich gegen eine kleine Spende gerne zur Verfügung stellen.

Die kleine Variante ohne Buttons ist nicht direkt von mir, da habe ich mich inspirieren lassen von Thingiverse.
Raspberry Pi 3 | miniCUL 433MHz | nanoCUL 868 MHz | nanoCUL 433 MHz | MySensors WLAN Gateway | LaCrosse WLAN Gateway | SignalESP 433 MHz | SignalESP 868 MHz | HM-MOD-UART WLAN Gateway | IR - 360 Grad WLAN Gateway

tuxbox

#119
Hallo,

falls auch noch für jemanden interessant ist.... Ich habe von gloob - Danke nochmal vielmals an der Stelle - auch so einen RFID Reader
erhalten und die Firmware inzwischen ebenfalls etwas modifiziert.

Hatte bei mir das Problem, dass das Gerät - wenn das WLAN und MQTT konfiguriert ist und funktioniert - nach
dem nächsten Neustart trotz normalem Connect ins lokale WLAN es zusätzlich noch den AP Modus aktiv hatte
und ein zusätzliches WLAN (immer noch mit der ssid "RFID_Reader") erzeugt hat.
Man konnte sich sogar damit verbinden, hat per DHCP eine IP bekommen und konnte das Gerät auch
erfolgreich anpingen (aber Weboberfläche zur Konfiguration war nicht mehr aktiv). Gleichzeitig war es
auch im lokalen WLAN normal angemeldet und hat per MQTT Nachrichten verschickt.

Auch wenn es trotzdem funktioniert hat, so hat mich das zusätzliche WLAN etwas gestört. Daher im wesentlichen
die Motivation und das Hauptziel für die neue Firmware.
Nebenbei habe ich aber auch noch z.B. von SPIFFS auf LittleFS umgestellt (schon um die deprecated-Warnungen
beim Kompilieren loszuwerden).

Sketch ist anbei.
Update: auch noch ein Screenshot angehängt mit meinen Flash/Board-Einstellungen in der Arduino IDE 1.8.15