FHEM Forum

Verschiedenes => Bastelecke => ESP8266 => Thema gestartet von: gloob am 12 Januar 2019, 18:56:40

Titel: MQTT - RFID - Reader
Beitrag 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.



Integration in FHEM

In FHEM habe ich folgendes Device für das Auslesen der IDs und Buttons

defmod MQTT2_RFID MQTT2_DEVICE
attr MQTT2_RFID IODev MQTT2
attr MQTT2_RFID readingList /RFID_Reader/version:.* Version\
/RFID_Reader/status:.* status\
/RFID_Reader/watchdog:.* Watchdog\
/RFID_Reader/wifi_rssi:.* RSSI\
/RFID_Reader/uid:.* UID\
/RFID_Reader/button1:.* Button1\
/RFID_Reader/button2:.* Button2\
/RFID_Reader/button3:.* Button3
attr MQTT2_RFID room MQTT

Über ein Notify wird das Event ausgewertet und die Sonos Box gestartet:

defmod MQTT2_RFID_notify_2 notify MQTT2_RFID:UID:.b977c756 {fhem('set Sonos_Kinderzimmer play')}
attr MQTT2_RFID_notify_2 room TEST



Integration ins eigene WLAN

Beim Starten des Gerätes spannt es ein eigenes WLAN auf: RFID_Reader
Mit dem WLAN kann man sich verbinden und es öffnet sich ein neues Fenster. Dort kann man seine WLAN Daten eingeben, sowie seine MQTT Settings.



Verwendete Hardware:

1 x RC522 RFID Reader - https://de.aliexpress.com/item/Free-Shipping-RFID-module-RC522-Kits-S50-13-56-Mhz-6cm-With-Tags-SPI-Write-Read/32523771442.html (https://de.aliexpress.com/item/Free-Shipping-RFID-module-RC522-Kits-S50-13-56-Mhz-6cm-With-Tags-SPI-Write-Read/32523771442.html)
1 x Wemos D1 mini - https://de.aliexpress.com/item/D1-mini-V2-Mini-NodeMcu-4M-bytes-Lua-WIFI-Internet-of-Things-development-board-based-ESP8266/32688079351.html (https://de.aliexpress.com/item/D1-mini-V2-Mini-NodeMcu-4M-bytes-Lua-WIFI-Internet-of-Things-development-board-based-ESP8266/32688079351.html)
3 x Push Buttons - https://www.amazon.de/gp/product/B06XCSB9N3 (https://www.amazon.de/gp/product/B06XCSB9N3)
1 x DC Einbaubuchse - https://www.ebay.de/itm/DC-Einbaubuchse-für-Hohlstecker-2-1x5-5mm-DC-Buchse-einbau-Kupplung-Steckdose/271356348957 (https://www.ebay.de/itm/DC-Einbaubuchse-für-Hohlstecker-2-1x5-5mm-DC-Buchse-einbau-Kupplung-Steckdose/271356348957)
6 x Einpressmutter - https://de.aliexpress.com/item/100-teile-los-messingeinsatz-M3-4-OD-4-2-Durch-gewinde-messing-gewindebuchse-r-ndelmuttern-f/32837949576.html (https://de.aliexpress.com/item/100-teile-los-messingeinsatz-M3-4-OD-4-2-Durch-gewinde-messing-gewindebuchse-r-ndelmuttern-f/32837949576.html)
6 x M3x30 Senkkopf-Schrauben - https://www.ebay.de/itm/M3-DIN-7991-Senkschrauben-Innensechskant-A2-V2A-Edelstahl-Senkkopf-Schrauben-M3x/222809358688 (https://www.ebay.de/itm/M3-DIN-7991-Senkschrauben-Innensechskant-A2-V2A-Edelstahl-Senkkopf-Schrauben-M3x/222809358688)



Updates

Neue Firmware "RFID_Buttons_WLAN_LongPressed_v1.2":

Neue Firmware "RFID_Buttons_WLAN_LongPressed_v1.3":

Neue Firmware "RFID_Buttons_WLAN_LongPressed_v1.4":

Neue Firmware "RFID_Buttons_WLAN_LongPressed_v1.5":

Neue Firmware "RFID_Buttons_WLAN_LongPressed_v1.6":

Neue Firmware "RFID_Buttons_WLAN_LongPressed_v1.7":

Neue Firmware "RFID_Buttons_WLAN_LongPressed_v1.8":
Titel: Antw:MQTT - RFID - Reader
Beitrag von: gloob am 12 Januar 2019, 18:56:52
Das Gehäuse ist jetzt bei Thingiverse verfügbar: https://www.thingiverse.com/thing:3391491
Titel: Antw:MQTT - RFID - Reader
Beitrag von: Neuhier am 12 Januar 2019, 19:26:56
Interessant  8)
Fehlt aber noch die Verbindung der beiden Teile untereinander.
Am RF-Reader ist es noch recht einfach, aber am Wemos muß man schon die nehmen, die im Sketch dafür vorgesehen sind.
Oder habe ich oben was überlesen?
Titel: Antw:MQTT - RFID - Reader
Beitrag von: PeMue am 12 Januar 2019, 20:07:38
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.
Das geht stark in Richtung des "Toniebox" Nachbaus (https://forum.fhem.de/index.php/topic,95552.0.html)  ;). Im Übrigen kann die "große" HM-UART Platine das auch, einer der I2C Steckverbinder hat exakt die Steckerbelegung des RFID Readers.

Gruß Peter
Titel: Antw:MQTT - RFID - Reader
Beitrag von: gloob am 12 Januar 2019, 20:15:58
Interessant  8)
Fehlt aber noch die Verbindung der beiden Teile untereinander.
Am RF-Reader ist es noch recht einfach, aber am Wemos muß man schon die nehmen, die im Sketch dafür vorgesehen sind.
Oder habe ich oben was überlesen?

Kommt auch noch. Keine Sorge.

Das geht stark in Richtung des "Toniebox" Nachbaus (https://forum.fhem.de/index.php/topic,95552.0.html)  ;).
Gruß Peter

Ja genau sowas ähnliches soll es werden.

Im Übrigen kann die "große" HM-UART Platine das auch, einer der I2C Steckverbinder hat exakt die Steckerbelegung des RFID Readers.

Ich möchte mir gerne eine zusätzliche Platine sparen. Soll relativ klein werden im Gehäuse. Aber gut zu wissen, dass es auch so geht. Hab die Platine ja eh noch von dir hier liegen. Vielleicht nehme ich sie doch.
Titel: Antw:MQTT - RFID - Reader
Beitrag von: Neuhier am 13 Januar 2019, 10:33:11
Welche Bibliotheken müssen vorhanden sein?
Außer dem "Standart" für ESP8266 noch mindestens MQTTClient, SPI, MFRC522 welche noch?

Bekomme hier jede Menge Fehler, wenn ich das kompilieren will.
Letzter: no matching function for call to 'MQTTClient::begin(const char*&, WiFiClient&)'

Steht aber auch nix dazu im orignalen Thread bei lazyzero.
Dort ist aber die Verkabelung beschrieben.
Titel: Antw:MQTT - RFID - Reader
Beitrag von: Neuhier am 13 Januar 2019, 14:17:42
So, ich wieder.
Die fehlenden Bibliotheken stehen im Sketch.
Ist ganz einfach, wenn man das merkt.
Alle nachgeladen, ohne Fehler kompiliert, nun weiter im Text.....
Titel: Antw:MQTT - RFID - Reader
Beitrag von: gloob am 13 Januar 2019, 15:41:59
Ja gerade die Quelle für MQTT hatte ich mit hinzu gefügt.
Titel: Antw:MQTT - RFID - Reader
Beitrag von: Neuhier am 13 Januar 2019, 20:18:21
Laut MQTTfx kommt jede Menge an, aber ich bekomme das im FHEM einfach nicht hin, daß das angezeigt/ registriert wird.
Nehme aber MQTT, nicht MQTT2, weil ich damit nicht zu Passe komme.

List Device
Internals:
   CFGFN     
   DEF       
   IODev      MQTTs
   NAME       MQTTRFID
   NOTIFYDEV  192.168.78.64
   NR         7116
   STATE      ???
   TYPE       MQTT_DEVICE
   OLDREADINGS:
   READINGS:
     2019-01-13 19:48:16   transmission-state unsubscription acknowledged
   message_ids:
   publishSets:
   sets:
   subscribe:
     /rfid_reader:.*
   subscribeExpr:
     ^\/rfid_reader:.*$
   subscribeQos:
     /rfid_reader:.* 0
   subscribeReadings:
     /rfid_reader:.*:
       cmd       
       name       .*
Attributes:
   IODev      MQTTs
   oldreadings /rfid_reader/uid
   room       Steuerung
   userReadings /rfid_reader/bat /rfid_reader/uid

List Notify
Internals:
   CFGFN     
   DEF        MQTTRFID:.* set Deckenleuchte on-for-timer 5
   NAME       MQTTRFID_ntfy
   NOTIFYDEV  MQTTRFID
   NR         7202
   NTFY_ORDER 50-MQTTRFID_ntfy
   REGEXP     MQTTRFID:.*
   STATE      active
   TRIGGERTIME 1547405296.55547
   TYPE       notify
   READINGS:
     2019-01-13 19:50:45   state           active
Attributes:
   room       Steuerung
Titel: Antw:MQTT - RFID - Reader
Beitrag von: gloob am 18 Januar 2019, 20:18:08
Ich bin jetzt einen Schritt weiter. Ich habe noch 3 Buttons hinzugefügt für Events:

Previous / Leiser
Pause
Next / Lauter

Die Events dafür laufen natürlich dann auch über MQTT.

Das Gehäuse ist auch im entstehen. Ein erster Prototyp der Oberseite ist gemacht und nimmt die Buttons auf sowie den eigentlichen RFID Reader. Der Wemos kommt in die untere Schale und auf die Rückseite kommt eine DC Einbaubuchse für die Stromversorgung.
Titel: Antw:MQTT - RFID - Reader
Beitrag von: gloob am 29 Januar 2019, 14:34:03
Das Gehäuse nimmt jetzt langsam Formen an. Die Teile sind konstruiert und es geht an den zweiten Druck.
Die Stromversorgung erfolgt über einen Hohlstecker auf der Rückseite, ist mechanisch deutlich stabiler als die USB Buchse am Wemos.

Beim ersten Test mal waren leider die Löcher für die Buttons zu klein.
Titel: Antw:MQTT - RFID - Reader
Beitrag von: gloob am 30 Januar 2019, 09:07:13
Der Druck lief gut und die Teile passen auch alle super rein.
Jetzt fehlt nur noch das verdrahten und Einpressen der Gewinde für die Schrauben.

Die Daten sind jetzt auch bei Thingiverse wenn jemand den Reader nachbauen möchte: https://www.thingiverse.com/thing:3391491
Titel: Antw:MQTT - RFID - Reader
Beitrag von: RaspiLED am 30 Januar 2019, 11:08:44
Hi,

Sehr cool! Hast Du auch Bauteillisten?
Insbesondere  welche Einpressmuttern verwendest Du?

Gruß Arnd


Gesendet von iPhone mit Tapatalk
Titel: Antw:MQTT - RFID - Reader
Beitrag von: gloob am 30 Januar 2019, 11:26:43
Die verwendeten Teile sind bei Thingiverse aufgelistet. Ich kann aber gerne auch hier nochmal eine Liste machen.

Ich hab die Hardware im ersten Post hier hinzugefügt.
Titel: Antw:MQTT - RFID - Reader
Beitrag von: Ranseyer am 30 Januar 2019, 15:19:53
Tja, der Arndt stellt halt die richtigen Fragen !  8)

Aber trotzdem noch mal ne dumme Frage: Wie presst Du diese ein ?
https://de.aliexpress.com/item/100-teile-los-messingeinsatz-M3-4-OD-4-2-Durch-gewinde-messing-gewindebuchse-r-ndelmuttern-f/32837949576.html
-heißmachen und drücken, oder ...

Grüße
Martin
Titel: Antw:MQTT - RFID - Reader
Beitrag von: gloob am 30 Januar 2019, 18:06:44
Aber trotzdem noch mal ne dumme Frage: Wie presst Du diese ein ?
https://de.aliexpress.com/item/100-teile-los-messingeinsatz-M3-4-OD-4-2-Durch-gewinde-messing-gewindebuchse-r-ndelmuttern-f/32837949576.html
-heißmachen und drücken, oder ...

Ich schraube sie auf eine Schraube und mache sie mit einem Feuerzeug heiß und drücke sie dann einfach in den Kunststoff. Der schmilzt dabei und härtet beim Abkühlen wieder aus und somit sitzt der Einsatz bombenfest. Die gleiche Teile nutze ich auch bei meinem MapleCUN Gehäuse.
Titel: Antw:MQTT - RFID - Reader
Beitrag 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...
Titel: Antw:MQTT - RFID - Reader
Beitrag von: gloob am 30 Januar 2019, 20:42:17
So sieht das Einpressen dann in Hardware aus.
Manchmal sieht man auch bei Youtube wie man es mit einem Lötkolben machen kann. Ich finde es nicht gut, man hat keine Kontrolle über die Hitze und kann nicht gut justieren.
Titel: Antw:MQTT - RFID - Reader
Beitrag von: gloob am 30 Januar 2019, 20:44:33
Der Funktionstest nach dem Verkabeln und Zusammenbau war auch erfolgreich.

defmod MQTT2_RFID MQTT2_DEVICE
attr MQTT2_RFID IODev MQTT2
attr MQTT2_RFID readingList /rfid_reader/uid:.* UID\
/rfid_reader/button1:.* Button1\
/rfid_reader/button2:.* Button2\
/rfid_reader/button3:.* Button3
attr MQTT2_RFID room MQTT

setstate MQTT2_RFID 2019-01-30 20:38:29 Button1 pressed
setstate MQTT2_RFID 2019-01-30 20:38:33 Button2 pressed
setstate MQTT2_RFID 2019-01-30 20:38:25 Button3 pressed
setstate MQTT2_RFID 2019-01-30 20:38:21 UID b977c756
Titel: Antw:MQTT - RFID - Reader
Beitrag von: gloob am 30 Januar 2019, 20:51:41
Die aktuelle Firmware ist jetzt auch im ersten Post
Titel: Antw:MQTT - RFID - Reader
Beitrag von: trixer am 05 Februar 2019, 12:22:59
Ich bin jetzt einen Schritt weiter. Ich habe noch 3 Buttons hinzugefügt für Events:

Previous / Leiser
Pause
Next / Lauter

Die Events dafür laufen natürlich dann auch über MQTT.

Das Gehäuse ist auch im entstehen. Ein erster Prototyp der Oberseite ist gemacht und nimmt die Buttons auf sowie den eigentlichen RFID Reader. Der Wemos kommt in die untere Schale und auf die Rückseite kommt eine DC Einbaubuchse für die Stromversorgung.

Hallo,
ich selbst habe bereits ein sehr gut funktionierendes Phoniebox-Radio. Hier habe ich Arcade-Buttons mit Microschaltern für Play, Pause, Stop, Track back / prev, Vol +/- verbaut. Dafür habe ich einfach Jumperkabel mit Flachsteckhülsen versehen und auf die GPIO-Pins aufgesteckt. Im Bild sieht das so aus, als ob du das hier auch so gemacht hast. Allerdings wüsste ich nicht, woher ich passende Steckschuhe in diesem Format bekommen könnte. Sind das überhaupt welche oder sieht das nur so aus? Falls ja, könntest du bitte einen Einkaufslink schicken?
Danke & Gruß
Trixer
Titel: Antw:MQTT - RFID - Reader
Beitrag von: gloob am 05 Februar 2019, 13:00:50
Ich habe die Kabel direkt an die Buttons angelötet und den Lötstelle mit Schrumpfschlauch überzogen.
Titel: Antw:MQTT - RFID - Reader
Beitrag von: willib am 05 Februar 2019, 15:32:32
Wie hast du den RFID reader, den Wemos und die Buttons verkabelt?
Könntest du dir vorstellen deinen sketch mit einem deepsleep für den Akkubetrieb zu erweitern?
Ich gebe zu, dass ich es mir mal wieder leicht machen will.
Ich habe es mit einem NodeMCU versucht aber nur einen sketch ohne buttons im Netz gefunden. Daher möchte ich gerne auf dein Projekt umswitchen.
https://forum.fhem.de/index.php/topic,96250.msg892213.html#msg892213 (https://forum.fhem.de/index.php/topic,96250.msg892213.html#msg892213)
Titel: Antw:MQTT - RFID - Reader
Beitrag von: gloob am 05 Februar 2019, 15:36:16
Deepsleep wird nicht funktionieren. Woher soll der Reader wissen, wann er auf wachen soll. Außerdem verbrauchen der RFID Reader und WLAN zu viel Strom, als das man es sinnvoll mit Akku betreiben könnte.
Einen "Schaltplan" kann ich nachher mal erstellen und hoch laden.

Deepsleep einzubauen ist aber kein Hexenwerk:

/**
 * An example showing how to put ESP8266 into Deep-sleep mode
 */
 
void setup() {
  Serial.begin(115200);
  Serial.setTimeout(2000);

  // Wait for serial to initialize.
  while(!Serial) { }
 
  Serial.println("I'm awake.");

  Serial.println("Going into deep sleep for 20 seconds");
  ESP.deepSleep(20e6); // 20e6 is 20 microseconds
}

void loop() {
}
Titel: Antw:MQTT - RFID - Reader
Beitrag von: RaspiLED am 05 Februar 2019, 19:47:58
Wieso sollte deepsleep nicht gehen?

Einen Button zum aufwecken oder alle x (attr über FHEM, default 60) Sekunden nach rfid oder FHEM Befehl schauen. Toniebox ist doch auch Akku betrieben.

Gruß Arnd


Gesendet von iPhone mit Tapatalk
Titel: Antw:MQTT - RFID - Reader
Beitrag von: willib am 06 Februar 2019, 13:03:02
Soviel ich verstanden habe benötigt der ESP8266 ein High Signal an RST zum Aufwecken. Damit startet der ESP dann aber neu. Somit lässt sich der ESP nicht über die Steuerungsbuttons aufwecken weil jede Betätigung einen Neustart auslösen würde.
Den Stromverbrauch ohne Deepsleep habe ich getestet. 14,5 Stunden hält eine 2200 mah Powerbank bei mir mit NOdeMCU und RFID.
Titel: Antw:MQTT - RFID - Reader
Beitrag von: gloob am 28 April 2019, 20:09:14
Ich habe das Gerät jetzt abgeschlossen und den ersten Post aktualisiert.
Falls jemand Interesse hat, gibt es auch einen im Marktplatz zu erwerben.
Titel: Antw:MQTT - RFID - Reader
Beitrag von: willib am 29 April 2019, 13:17:07
Danke für deine tolle Anleitung.
Hattest du schon Zeit den Schaltplan zu erstellen?
Wie machst du das mit der Mehrfachbelegung der Buttons? Ich habe mir den sketch angesehen und kein „longpress“ gefunden. Ich vermute FHEM übernimmt das. Wäre es nicht besser das im sketch zu verarbeiten und dann z.B. ein „longpressrelease“ zu senden um das senden zu minimieren?
Ich verstehe nicht viel davon. Ich will hier keine negative Kritik üben.
Meinst du ich kann deinen Sketch wenn ich es mal irgendwann geschnallt habe um einen vierten Button erweitern, oder sind die verfügbaren Pins alle belegt?
Vielen Dank.
Titel: Antw:MQTT - RFID - Reader
Beitrag von: gloob am 29 April 2019, 13:42:49
Danke für deine tolle Anleitung.
Hattest du schon Zeit den Schaltplan zu erstellen?
Wie machst du das mit der Mehrfachbelegung der Buttons? Ich habe mir den sketch angesehen und kein „longpress“ gefunden. Ich vermute FHEM übernimmt das. Wäre es nicht besser das im sketch zu verarbeiten und dann z.B. ein „longpressrelease“ zu senden um das senden zu minimieren?
Ich verstehe nicht viel davon. Ich will hier keine negative Kritik üben.
Meinst du ich kann deinen Sketch wenn ich es mal irgendwann geschnallt habe um einen vierten Button erweitern, oder sind die verfügbaren Pins alle belegt?
Vielen Dank.

Den Schaltplan kann ich nachher mal machen. Bisher bin ich noch nicht dazu gekommen. Ob noch ein Pin frei ist, kann ich dabei mal schauen.
LongPress wird aktuell nicht unterstützt.



"Schaltplan" habe ich im ersten Post mit angehängt.

An D0 könnte man noch einen Button hängen.

Long Press könnte man relativ einfach integrieren. Habe ich bei mir allerdings nicht, weil das Kind auch gerne mal zu lange drauf drückt :)
Titel: Antw:MQTT - RFID - Reader
Beitrag von: gloob am 29 April 2019, 14:17:45
Ich habe eine Version für "Long Pressed" bei den Buttons 1-3 im ersten Post hinzugefügt, allerdings ist das ganze ungetestet.

10ms < Tastendruck < 2000ms: pressed
Tastendruck >= 2000ms: long pressed

Pro Tastendruck sollte es nur ein Event geben.
Titel: Antw:MQTT - RFID - Reader
Beitrag von: willib am 02 Mai 2019, 21:45:17
Danke für das long pressed.
Ich versuche gerade es zu testen bekomme aber keine Informationen in FHEM.
Kannst du bitte ein list vom MQTT2_Device posten? Mich interessiert besonders das Topic.
Dankeschön
Titel: Antw:MQTT - RFID - Reader
Beitrag von: gloob am 02 Mai 2019, 21:48:38
Steht doch im ersten Post.
Bekommst du irgendwelche Ausgaben auf der Arduino Console?
Titel: Antw:MQTT - RFID - Reader
Beitrag von: willib am 03 Mai 2019, 09:58:04
Mein List sieht so aus
Internals:
   CFGFN     
   DEVICETOPIC MQTT2_RFID
   FUUID      5ccb48eb-f33f-7452-a00e-1f1c47ac1b16ae80
   IODev      MQTT2_SERVER
   NAME       MQTT2_RFID
   NR         611
   STATE      ???
   TYPE       MQTT2_DEVICE
Attributes:
   IODev      MQTT2_SERVER
   readingList /rfid_reader/uid:.* UID
/rfid_reader/button1:.* Button1
/rfid_reader/button2:.* Button2
/rfid_reader/button3:.* Button3
   room       MQTT2_DEVICE

Ich vermute ich muss das Device_Topic anpassen, weil es sich nicht mit dem deckt was der wemos published.
Ich arbeite mit Platform IO. Die Ausgabe auf der Konsole habe ich gestern nicht zum laufen bekommen. Ich glaube das heißt serial monitor bei PIO. Das schaue ich mir heute nochmal an.
Der sketch wurde aber ohne Fehler übertragen und die Anmeldung im WLAN hat auch funktioniert.
Titel: Antw:MQTT - RFID - Reader
Beitrag von: gloob am 03 Mai 2019, 10:09:07
Mein List sieht so aus
Internals:
   CFGFN     
   DEVICETOPIC MQTT2_RFID
   FUUID      5ccb48eb-f33f-7452-a00e-1f1c47ac1b16ae80
   IODev      MQTT2_SERVER
   NAME       MQTT2_RFID
   NR         611
   STATE      ???
   TYPE       MQTT2_DEVICE
Attributes:
   IODev      MQTT2_SERVER
   readingList /rfid_reader/uid:.* UID
/rfid_reader/button1:.* Button1
/rfid_reader/button2:.* Button2
/rfid_reader/button3:.* Button3
   room       MQTT2_DEVICE

Ich vermute ich muss das Device_Topic anpassen, weil es sich nicht mit dem deckt was der wemos published.
Ich arbeite mit Platform IO. Die Ausgabe auf der Konsole habe ich gestern nicht zum laufen bekommen. Ich glaube das heißt serial monitor bei PIO. Das schaue ich mir heute nochmal an.
Der sketch wurde aber ohne Fehler übertragen und die Anmeldung im WLAN hat auch funktioniert.

Die Topics werden so im Sketch gepublished:

mqtt.publish("/rfid_reader/button1", "pressed");
Sollte also zu dem passen was du im Device hast. Hast du beim Anmelden im WLAN auch die IP deines MQTT Servers angepasst?
Titel: Antw:MQTT - RFID - Reader
Beitrag von: willib am 03 Mai 2019, 11:52:24
Ist es denn egaIst es denn egal was im DeviceTopic steht, wenn readinglist die richtigen topics aboniert?
„MQTT2_RFID” hat ja an sich nichts mit dem gepublischten aus dem sketch zu tun.
Die MQTT Einstellungen habe ich beim Start zusammen mit dem WLAN angepasst. Kann ich diese Einstellungen nochmal einsehen oder Ändern? Oder flashe ich einfach neu?
Titel: Antw:MQTT - RFID - Reader
Beitrag von: gloob am 03 Mai 2019, 13:22:22
Wenn du die Einstellungen nochmal ändern willst, musst du entweder neu flashen oder dein WLAN kurz abschalten, so dass er nochmal den Hotspot aufbaut.
Es gibt auch Tools um sich alle Topics vom MQTT Server anzusehen. Dann sieht man ob/was rein kommt.
Titel: Antw:MQTT - RFID - Reader
Beitrag von: willib am 03 Mai 2019, 20:35:19
Danke. Es funktioniert jetzt. Der Flashspeicher muss komplett gelöscht werden sonst merkt er sich die WIFI Settings. Habe danach neu geflasht und die WIFI und MQTT Einstellungen gemacht.
Dummerweise verliert das Device nach spätestens 5 Minuten die Verbindung zum MQTT2 Server. Dann kommt wieder nichts mehr an.

Einen vierten Button an D0 habe ich auch hinbekommen. Leider klappt hier nur einmalig long pressed und dann nichts mehr. Ich denke der Pin geht nach dem Drücken nicht in den Ausgangszustand zurück. Hier brauche ich wohl noch einen Pullup Widerstand!?
Auch habe ich festgestellt dass manchmal ein zufälliger button press kommt nachdem ich USB neu angeschlossen habe.
Titel: Antw:MQTT - RFID - Reader
Beitrag von: gloob am 03 Mai 2019, 22:00:26
Was für eine Hardware benutzt du denn? Auch einen Wemos?

Wie hast du den 4. Button denn aktiviert? Kannst du mal den Sketchausschnitt zeigen. Man kann einen PullUp beim Anlegen der Buttons im Sketch aktivieren.

Das 5 Minuten Problem teste ich gerade. Möglicherweise muss man den Wemos alle 4 Minuten mal anpingen, damit er nicht die Verbindung verliert.
Im Moment habe ich aber nach mehr als 5 Minuten einen Button gedrückt und der ist sofort in FHEM angekommen.
Auch ein Senden nach 10 Minuten Inaktivität funktioniert ohne Probleme, kein zyklisches anpingen notwendig.

Die USB Verbindung vom Wemos nutze ich nur zum Flashen. Danach versorge ich meine Box über einen Hohlstecker mit 5V und GND.
Titel: Antw:MQTT - RFID - Reader
Beitrag von: willib am 03 Mai 2019, 22:23:12
Ich nutze auch einen Wemos D1.

Ich habe nur deinen Code jeweils um Button4 erweitert.
#define BUTTON_PIN_4  D0Und dann an jeder Stelle im sketch wo Buttons vorkommen Button3 kopiert und auf 4 geändert. Soweit ich weiß hat D0 keinen internen Pullup.

Ich habe auch weiter getestet. Zuletzt waren es 18 Minuten. Der MQTT2 Server zeigt dann auch einen verbundenen client weniger an. In meinem Fall 0.

Ich plane den Wemos an einem USB Netzteil zu betreiben. Mal sehen...
Titel: Antw:MQTT - RFID - Reader
Beitrag von: gloob am 04 Mai 2019, 18:34:45
Aktuell steigt meiner auch an und an aus. Ich werde jetzt mal testen ob ich es mit einem zyklischen Pingen verhindern kann.
Titel: Antw:MQTT - RFID - Reader
Beitrag von: gloob am 05 Mai 2019, 09:57:27
Die WLAN Verbindung scheint es nicht zu sein, die verloren geht. Ich habe jetzt folgendes in die Main Loop vom Sketch eingefügt und teste weiter:

 
// check if mqtt connection got lost
if (!mqtt.connected())
{
     mqtt.connect(mqtt_device_name, mqtt_user, mqtt_pass);
}

Ich denke das sollte dann reichen in Verbindung mit dem zyklischen anpingen des Wemos.

Der Reader gibt jetzt auch aus warum er neugestarte hat:

ResetReason     Power on     2019-05-05 08:19:32
Titel: Antw:MQTT - RFID - Reader
Beitrag von: willib am 05 Mai 2019, 20:37:06
Ich vemute es hat was mit dem MQTT2 Server zu tun.
Laut commandref gibt es das atrribut keepaliveFactor
keepaliveFactor
the oasis spec requires a disconnect, if after 1.5 times the client supplied keepalive no data or PINGREQ is sent. With this attribute you can modify this factor, 0 disables the check. Notes:
dont complain if you set this attribute to less or equal to 1.
MQTT2_SERVER checks the keepalive only every 10 second.
Dieser PINGREQ müsste also vom RFID reader gesendet werden.
Die ganzen Sonoff und Shelly, und wie sie alle heißen, arbeiten doch auch mit einem ESP8266. Es müsste doch einen Codeschnipsel geben der die Verbindung zum MQTT Server konstant hält.
Titel: Antw:MQTT - RFID - Reader
Beitrag von: gloob am 05 Mai 2019, 20:43:06
Das reconnect was ich im post oben drüber gepostet habe, hat funktioniert. Lasse es jetzt nochmal über Nacht laufen und lade dann die neue Firmware hoch
Titel: Antw:MQTT - RFID - Reader
Beitrag von: willib am 06 Mai 2019, 08:03:51
Cool, danke. Geht es dann ohne anpingen? Wenn nicht, wie genau machst du das?
Ich möchte das Sonos im Kinderzimmer gerne außer Reichweite haben. Die Kinder sollen das nur über deinen RFID Reader bedienen. Daher muss etwas zuverlässig funktionieren. Ich teste aber gerne weiter. Nochmal Danke dass du hier alles teilst.
Titel: Antw:MQTT - RFID - Reader
Beitrag von: gloob am 06 Mai 2019, 08:54:42
Ich habe die neue Version gestern früh aufgespielt und heute früh lief er immer noch ohne Probleme. Die neue Version ist jetzt also im ersten Post verfügbar.
Das anpingen scheint nicht notwendig zu sein.
Titel: Antw:MQTT - RFID - Reader
Beitrag von: gloob am 16 Mai 2019, 20:13:53
Neue Firmware im Startpost:

1. Watchdog Counter der jede Minute eine MQTT Nachricht schickt um WLAN und MQTT aufrecht zu erhalten
2. Reading für die Firmware Version
Titel: Antw:MQTT - RFID - Reader
Beitrag von: Mumpitz am 16 Mai 2019, 20:55:22
Hallo zusammen

Wäre es möglich die Buttons zu deaktivieren oder gar nicht zu verbauen? Würde es ohne die Knöpfe keine Probleme mit der Firmware geben?

Meine Kinder drücken nur darauf rum....


Gesendet von iPad mit Tapatalk
Titel: Antw:MQTT - RFID - Reader
Beitrag von: gloob am 16 Mai 2019, 21:10:49
Du kannst die Buttons einfach weg lassen. Da passiert nichts. In der Firmware muss nichts angepasst werden.
Du kannst aber auch die Buttons verbauen und aber in FHEM nicht auf die Events reagieren. Du kannst ja selbst entscheiden wie und ob du auf die Button Events reagierst.
Titel: Antw:MQTT - RFID - Reader
Beitrag von: willib am 17 Mai 2019, 11:53:33
Ein vierter Button an D0 funktioniert hervorragend mit Pull-up Widerstand. Jetzt muss ich nur noch überlegen was der machen soll. ::)
Mein 4,5 Jähriger hat die Doppelbelegung der Buttons schon verinnerlicht.
Button1 short:play/pause           long:Sonos Gruppieren/Gruppierung aufheben
Button2 short:leiser                    long:zurück
Button3 short:lauter                   long:weiter
Button3 short:lauter                   long:weiter
Button4 short:nanoleaf an/aus? long:nanoleaf nächste scene?

Bei mir funktioniert v1.2 bereits zuverlässig.
Daumen hoch für dein Projekt!

Was vielleicht noch interessant wäre: Ein Publish wenn die Figur vom reader herunter genommen wird.
Titel: Antw:MQTT - RFID - Reader
Beitrag von: gloob am 17 Mai 2019, 12:13:20
Button2 short:leiser                    long:zurück
Button3 short:lauter                   long:weiter

Ich würde ja lauter/leiser auf den Longpress legen und zurück/weiter auf short. So kann es nicht passieren, dass wenn man weiter will, aus Versehen lauter gemacht wird.

Ich glaube man macht auch öfter mal vor und zurück anstatt die Lautstärke zu ändern.
Titel: Antw:MQTT - RFID - Reader
Beitrag von: willib am 17 Mai 2019, 12:46:00
Guter Punkt. Das ändere ich noch. Dann wird es auch nicht lauter wenn man mal versehentlich den Knopf berührt.
Meine Kiste soll unter einem Regalbrett auf Kinderhöhe hängen.
Titel: Antw:MQTT - RFID - Reader
Beitrag von: gloob am 17 Mai 2019, 12:47:36
Dann wird es auch nicht lauter wenn man mal versehentlich den Knopf berührt.

Dafür könnte man noch die "Debounce" Zeit in der Firmware ändern, dass ein Knopf mindestens 200-300ms gedrückt sein muss um als "short" erkannt zu werden.
Long wäre dann alles >1000ms.
Titel: Antw:MQTT - RFID - Reader
Beitrag von: betateilchen am 23 Mai 2019, 12:30:34
Beim Starten des Gerätes spannt es ein eigenes WLAN auf: RFID_Reader
Mit dem WLAN kann man sich verbinden und es öffnet sich ein neues Fenster. Dort kann man seine WLAN Daten eingeben, sowie seine MQTT Settings.

Ok. Inzwischen habe ich (vermutlich) kapiert, dass die unbeschrifteten Felder unter den WLAN Daten wohl die Adresse des MQTT Server und sein Port sind.

Aber wo um alles in der Welt kann ich denn User und Passwort für die Verbindung zum MQTT Server eintragen?

Titel: Antw:MQTT - RFID - Reader
Beitrag von: gloob am 23 Mai 2019, 12:48:06
Ok. Inzwischen habe ich (vermutlich) kapiert, dass die unbeschrifteten Felder unter den WLAN Daten wohl die Adresse des MQTT Server und sein Port sind.

Aber wo um alles in der Welt kann ich denn User und Passwort für die Verbindung zum MQTT Server eintragen?

Du findest jetzt aber auch alle Bottlenecks und Fehler.

Die beiden Optionen "User" und "Passwort" gibt es aktuell noch nicht, da ich sie nicht benötigt habe. Ich guck mal, dass ich sie in die Firmware mit aufnehme. Leider müsstest du dann die Firmware neu auf das Gerät flashen.
Titel: Antw:MQTT - RFID - Reader
Beitrag von: betateilchen am 23 Mai 2019, 12:53:41
*grmpf* Benutzerauthentifizierung ist nun wirklich kein Bottleneck, sondern eine wichtige Grundfunktionalität. Wer benutzt denn heute noch ungesicherte Verbindungen? Ohne User und Passwort kann ich mit dem Ding nix anfangen.

Achja - funktioniert denn wenigstens SSL zum MQTT Server, oder geht das auch noch nicht?

Vielleicht solltest Du den Reader nochmal neu anbieten, wenn er wirklich brauchbar ist.
Im Moment ist das hier nur ein ziemlich teurer Briefbeschwerer. Nimmst Du den eventuell zurück?
Titel: Antw:MQTT - RFID - Reader
Beitrag von: gloob am 23 Mai 2019, 12:57:43
*grmpf* Benutzerauthentifizierung ist nun wirklich kein Bottleneck, sondern eine wichtige Grundfunktionalität. Wer benutzt denn heute noch ungesicherte Verbindungen? Ohne User und Passwort kann ich mit dem Ding nix anfangen.

Achja - funktioniert denn wenigstens SSL zum MQTT Server, oder geht das auch noch nicht?

Vielleicht solltest Du den Reader nochmal neu anbieten, wenn er wirklich brauchbar ist.
Im Moment ist das hier nur ein ziemlich teurer Briefbeschwerer. Nimmst Du den eventuell zurück?

Du hättest gerne vorher Fragen können was alles geht und was nicht.
Ich bin gerade dabei Username und Passwort in die Firmware einzubauen. Ob SSL Funktioniert, muss ich mir anschauen.
Titel: Antw:MQTT - RFID - Reader
Beitrag von: gloob am 23 Mai 2019, 13:03:11
Anbei gibt es eine erste Testversion für das Setzen von Username und Passwort. Ist komplett ungetestet, da ich aktuell kein Gerät hier habe.
Beim Aufspielen muss der Flash wie im Bild gelöscht werden.

Eine getestete Version kann ich heute Abend nachreichen.
Titel: Antw:MQTT - RFID - Reader
Beitrag von: betateilchen am 23 Mai 2019, 13:16:13
Wir sollten jetzt keinen Streit vom Zaun brechen. Im Angebot stand

Zitat
Ich haben einen RFID Reader mit WLAN und MQTT abzugeben.

Gesicherte Verbindungen sind für mich bei MQTT genau so selbstverständlich wie bei der WLAN Verbindung.

Anbei gibt es eine erste Testversion für das Setzen von Username und Passwort.

Danke für Deine Bemühungen.

Ist komplett ungetestet, da ich aktuell kein Gerät hier habe.

Und ich habe aktuell keine Möglichkeit zum Flashen von Firmware.
Titel: Antw:MQTT - RFID - Reader
Beitrag von: gloob am 23 Mai 2019, 17:26:21
Neue Firmware im ersten Post (v1.4), Unterstützung für Username und Passwort des MQTT Servers wurde hinzugefügt.

Bitte alle Daten beim Einbinden ins WLAN richtig eingeben!
Titel: Antw:MQTT - RFID - Reader
Beitrag von: betateilchen am 23 Mai 2019, 18:32:53
Tipp: lass die default-Werte für den mqtt-server und den port weg (bzw. setze sie auf ""), dann sieht man in den Eingabefeldern sofort, wofür sie gedacht sind.
Titel: Antw:MQTT - RFID - Reader
Beitrag von: gloob am 23 Mai 2019, 19:16:56
Naja nen bisschen mitdenken muss man beim Einrichten schon. Zumindest der Port ist der Default für MQTT.
Ich überleg mir auch noch was zum Reset der Einstellungen.
Titel: Antw:MQTT - RFID - Reader
Beitrag von: gloob am 23 Mai 2019, 20:10:19
So nochmal neue Version mit vollständiger Unterstützung für MQTT:

Titel: Antw:MQTT - RFID - Reader
Beitrag von: betateilchen am 23 Mai 2019, 20:15:30
Naja nen bisschen mitdenken muss man beim Einrichten schon. Zumindest der Port ist der Default für MQTT.

Das hat überhaupt nichts mit fehlendem Mitdenken zu tun, ganz im Gegenteil! Bei dem Reader, den Du mir geschickt hattest, war als port 8080 vorgegeben und das ist in meinem Verständnis ein "default" port für http Verbindungen. Deshalb hatte ich ewig versucht, eine nicht vorhandene Web-Oberfäche des Readers zu erreichen, um eine MQTT Verbindung konfigurieren zu können  8)

Als "Standard" für MQTT würde man eher 1883 als Vorgabe erwarten, dann wäre auch schneller klar, was man da eintragen soll.
Titel: Antw:MQTT - RFID - Reader
Beitrag von: gloob am 23 Mai 2019, 20:47:00
Folgende Default Werte sind jetzt eingetragen:

Titel: Antw:MQTT - RFID - Reader
Beitrag von: betateilchen am 24 Mai 2019, 12:26:31
Bei mir funktionieren auf einem nackten Wemos D1 mini weder die Version 1.4 noch die 1.5.

Die letzte Version, die mir tatsächlich Ergebnisse per MQTT liefert, ist die Version 1.3 von gestern, bei der man Username und Password fest verdrahtet im Code vorgibt.
Titel: Antw:MQTT - RFID - Reader
Beitrag von: gloob am 24 Mai 2019, 12:48:39
Bei mir funktionieren auf einem nackten Wemos D1 mini weder die Version 1.4 noch die 1.5.

Die letzte Version, die mir tatsächlich Ergebnisse per MQTT liefert, ist die Version 1.3 von gestern, bei der man Username und Password fest verdrahtet im Code vorgibt.

Komisch, gestern hattest du noch nicht einmal die Möglichkeit die Firmware auf einen Wemos aufzuspielen.  ;)
Was läuft denn nicht? Wie sieht die Ausgabe in der Console aus? Gibt es Fehlermeldungen?
Wie testest du ob Daten über MQTT ankommen?

Stimmt der Device Name?
Titel: Antw:MQTT - RFID - Reader
Beitrag von: Frank_Huber am 24 Mai 2019, 12:55:55
Bei mir funktionieren auf einem nackten Wemos D1 mini weder die Version 1.4 noch die 1.5.

Die letzte Version, die mir tatsächlich Ergebnisse per MQTT liefert, ist die Version 1.3 von gestern, bei der man Username und Password fest verdrahtet im Code vorgibt.
das klingt für mich nach ner falschen Einstellung in der IDE.
Ich hatte auch das Problem dass keine Einstellungen gespeichert wurden. allerdings bei der ESP Wetterstation.

Ursächlich war am Ende die falsche Speicherkonfiguration beim flashen. Ich hatte schlicht keinen SPIFFS konfiguriert.

prüfe das doch nochmal.
Titel: Antw:MQTT - RFID - Reader
Beitrag von: betateilchen am 24 Mai 2019, 13:17:34
Komisch, gestern hattest du noch nicht einmal die Möglichkeit die Firmware auf einen Wemos aufzuspielen.  ;)

Stimmt. Gestern hatte ich die Möglichkeit auch nicht. Daran ist überhaupt nix komisch.

Was läuft denn nicht? Wie sieht die Ausgabe in der Console aus? Gibt es Fehlermeldungen?

V1.3 liefert:

mounting FS...
mounted file system
reading config file
opened config file

parsed json
*WM: Adding parameter
*WM: server
*WM: Adding parameter
*WM: port
*WM: Adding parameter
*WM: device_name
*WM:
*WM: AutoConnect
*WM: Connecting as wifi client...
*WM: Using last saved values, should be faster
*WM: Connection result:
*WM: 3
*WM: IP Address:
*WM: 192.168.123.68
wifi connected
setup buttons
setup mqtt
setup rfid
*WM: freeing allocated params!

V1.5 liefert:

mounting FS...
mounted file system
reading config file
opened config file

parsed json
*WM: Adding parameter
*WM: server
*WM: Adding parameter
*WM: port
*WM: Adding parameter
*WM: user
*WM: Adding parameter
*WM: pass
*WM: Adding parameter
*WM: device_name
*WM:
*WM: AutoConnect
*WM: Connecting as wifi client...
*WM: Using last saved values, should be faster
*WM: Connection result:
*WM: 3
*WM: IP Address:
*WM: 192.168.123.68
wifi connected
setup buttons
setup mqtt
MQTT IP: 192.168.xx.xx
MQTT Port: 1883
MQTT device name: RFID_Reader
MQTT user name: xxx
MQTT password: xxx
setup rfid
*WM: freeing allocated params!

Die MQTT Daten user,pass,ip werden im Log korrekt ausgegeben, die xxx sind von mir.

Wie testest du ob Daten über MQTT ankommen?

Gegen einen mosquitto Server. In FHEM ein MQTT_DEVICE gegen den gleichen mosquitto, das Device wird mit V1.3 problemlos mit Daten versorgt wird, in V1.5 kommt gar nix an, nichtmal die Versionsdaten beim Starten.

Ich hatte auch das Problem dass keine Einstellungen gespeichert wurden.

Die Konfigurationsdaten sind alle da, siehe Logs oben. Ausserdem wäre die Einstellung dann auch bei 1.3 falsch, aber wenn ich 1.3 übertrage, tritt das Problem nicht auf.
Titel: Antw:MQTT - RFID - Reader
Beitrag von: gloob am 24 Mai 2019, 13:19:58
Wie sieht denn dein MQTT Device in FHEM aus?
In der Version 1.3 gab es noch den Bug, dass der eingestellt Devicename nicht richtig gesetzt wurde für die Messages.
Titel: Antw:MQTT - RFID - Reader
Beitrag von: gloob am 24 Mai 2019, 13:22:21
Stimmt. Gestern hatte ich die Möglichkeit auch nicht. Daran ist überhaupt nix komisch.

Sorry, aber verarschen kann ich mich alleine.

Du schreibst mir gestern, dass die Firmware bei dir so nicht einsatzfähig ist und du willst den Reader zurück geben. Angeblich kannst du die neue Firmware mit den Fixes für dich, die ich bereit gestellt habe, nicht aufspielen.
Heute kannst du es auf einmal und testest damit.

Immer wieder toll, wenn man seine Arbeit hier mit dem Forum teilt.
Titel: Antw:MQTT - RFID - Reader
Beitrag von: betateilchen am 24 Mai 2019, 13:30:04
Wieso verarschen?

Du schreibst mir gestern, dass die Firmware bei dir so nicht einsatzfähig ist und du willst den Reader zurück geben. Angeblich kannst du die neue Firmware mit den Fixes für dich, die ich bereit gestellt habe, nicht aufspielen.

Nochmal: gestern konnte ich das auch nicht, deshalb hatte ich auch geschrieben:

Und ich habe aktuell keine Möglichkeit zum Flashen von Firmware.

Dass ich die Möglichkeit heute haben würde, war gestern auch noch nicht absehbar, aber das nur nebenbei angemerkt.



Wie sieht denn dein MQTT Device in FHEM aus?

defmod rfid MQTT_DEVICE
attr rfid IODev mqtt_local
attr rfid autoSubscribeReadings /rfid_reader/+

Damit werden die readings resetReason, version und watchdog korrekt angelegt und aktualisiert.

setstate rfid 2019-05-24 13:21:22 resetReason External System
setstate rfid 2019-05-24 13:21:22 transmission-state incoming publish received
setstate rfid 2019-05-24 13:21:22 version v1.3
setstate rfid 2019-05-24 13:21:22 watchdog 1



Mir ging es mit Sicherheit nicht darum, Dich zu ärgern und den Reader unbedingt wieder zurückgeben zu wollen. Deine Arbeit weiß ich durchaus zu schätzen. Meine Hinweise auf V1.4 und 1.5 waren eigentlich lediglich als konstruktive Hilfe gedacht.
Titel: Antw:MQTT - RFID - Reader
Beitrag von: gloob am 24 Mai 2019, 13:32:00
Zitat
attr rfid autoSubscribeReadings /rfid_reader/+

Da ist dein Fehler.

In der Firmware 1.5 hast du folgende Lognachricht:

MQTT device name: RFID_Reader
Titel: Antw:MQTT - RFID - Reader
Beitrag von: Frank_Huber am 24 Mai 2019, 13:33:56
Die Konfigurationsdaten sind alle da, siehe Logs oben. Ausserdem wäre die Einstellung dann auch bei 1.3 falsch, aber wenn ich 1.3 übertrage, tritt das Problem nicht auf.
OK, das Log zeigt es. da in 1.3 die Daten hardcoded sind kommt 1.3 normalerweise ohne SPIFFS aus. nur so nebenbei bemerkt. ;)
Titel: Antw:MQTT - RFID - Reader
Beitrag von: betateilchen am 24 Mai 2019, 13:39:28
Da ist dein Fehler.
In der Firmware 1.5 hast du folgende Lognachricht:
MQTT device name: RFID_Reader

Danke für den Hinweis. Das war tatsächlich das Problem.

Interessanterweise scheint die Gross-/Kleinschreibung aber nicht an allen Stellen in der mqtt-Verarbeitung relevant zu sein.
Titel: Antw:MQTT - RFID - Reader
Beitrag von: betateilchen am 24 Mai 2019, 13:42:05
OK, das Log zeigt es. da in 1.3 die Daten hardcoded sind kommt 1.3 normalerweise ohne SPIFFS aus. nur so nebenbei bemerkt. ;)

Die Daten für den MQTT Server und seinen Port sind nicht hardcoded... und die für WLAN auch nicht.
Titel: Antw:MQTT - RFID - Reader
Beitrag von: Frank_Huber am 24 Mai 2019, 14:02:34
Die Daten für den MQTT Server und seinen Port sind nicht hardcoded... und die für WLAN auch nicht.
Wer richtig lesen kann ist klar im Vorteil.
Hattest ja nur von User/Pass geschrieben. mein Fehler. sorry.
Titel: Antw:MQTT - RFID - Reader
Beitrag von: gloob am 24 Mai 2019, 14:08:07
Na dann bin ich ja froh, dass es jetzt geht mit der V1.5.
Titel: Antw:MQTT - RFID - Reader
Beitrag von: betateilchen am 24 Mai 2019, 20:50:48
Falls Dich interessiert, wie die Sache mit SSL Verbindungen funktionieren kann, hier ein paar Gedanken dazu.

//#include <WiFiClient.h>
#include <WiFiClientSecure.h>

...

//WiFiClient wifi;
WiFiClientSecure wifi;

1558723239: New connection from 79.xxx.yyy.zzz on port 8883.
1558723240: New client connected from 79.xxx.yyy.zzz as RFID_Reader (p2, c1, k10, u'uuu').

Da mein bei Amazon Web Services laufender mqtt Server ein Zertifikat von letsencrypt benutzt, brauche ich das CA-Zertifikat nicht im Sketch selbst zu hinterlegen.

Problem dabei: Mit dieser Methode funktionieren dann Verbindungen ohne SSL nicht mehr. Man sollte also bei der Konfiguration der mqtt Verbindung noch einen Parameter "use SSL" ergänzen, der dann für eine Entscheidung sorgt, welches WiFiClient Objekt instanziiert bzw. verwendet werden soll. Vermutlich kann man sich nicht darauf verlassen, dass immer nur port 1883 oder 8883 verwendet wird, sonst könnte man die Entscheidung schon am port festmachen.

Titel: Antw:MQTT - RFID - Reader
Beitrag von: gloob am 25 Mai 2019, 14:49:40
Neue Firmware im ersten Post.

Durch gleichzeitiges Drücken und Halten der 3 Buttons kann der Reader auf Werkseinstellungen zurück gesetzt werden.
MQTT und Wifi Parameter müssen/können danach neu eingestellt werden.
Titel: Antw:MQTT - RFID - Reader
Beitrag von: CarstenF am 28 Mai 2019, 08:50:36
Hi zusammen,
Vielen Dank für das Projekt, ist für mich wieder ne schöne Idee zum nachbauen. Leider bekomme ich den mqtt Teil nicht hin....
Habe die Firmware problemlos geflasht. Der Wemos ist im Wlan, Die Buttons geben im Serial Monitor auch an, das sie ihren Dienst verrichten. Soweit so gut. (RFID Reader habe ich noch nicht dran, ist noch unterwegs, ist aber vermtl. erstmal o Bedeutung oder?)

Mein MQTT Server läuft auf den Fhem-PI unter Port 1883. User o. Passwort habe ich nicht eingerichtet (ok, sollte man....aber ist jetzt grad so)
Meine anderen mqtt Devices (tasmota und Konsorten) liefern artig ihre messages ab. Sowohl im mqtt-Programm auf dem Mac, als auch in FHEM.
ich habe jetzt schon bei der Einrichtung die Benutzer und PW Felder frei gelassen und auch mal was eingetippt. Den Server und port habe ich korrekt eingegeben. Beide Optionen liefern keine Werte. Auch die Groß / Kleinschreibung bei RFID_Reader / rfid_reader habe ich bei den Subscribes bzw. den Topics jetzt schon verändert. Jetzt sehe ich gerade den Wald vor lauter Bäumen nicht. Wo könnte mein Fehler liegen? Gruß Carsten
Titel: Antw:MQTT - RFID - Reader
Beitrag von: gloob am 28 Mai 2019, 09:04:02
Hi zusammen,
Vielen Dank für das Projekt, ist für mich wieder ne schöne Idee zum nachbauen. Leider bekomme ich den mqtt Teil nicht hin....
Habe die Firmware problemlos geflasht. Der Wemos ist im Wlan, Die Buttons geben im Serial Monitor auch an, das sie ihren Dienst verrichten. Soweit so gut. (RFID Reader habe ich noch nicht dran, ist noch unterwegs, ist aber vermtl. erstmal o Bedeutung oder?)

Mein MQTT Server läuft auf den Fhem-PI unter Port 1883. User o. Passwort habe ich nicht eingerichtet (ok, sollte man....aber ist jetzt grad so)
Meine anderen mqtt Devices (tasmota und Konsorten) liefern artig ihre messages ab. Sowohl im mqtt-Programm auf dem Mac, als auch in FHEM.
ich habe jetzt schon bei der Einrichtung die Benutzer und PW Felder frei gelassen und auch mal was eingetippt. Den Server und port habe ich korrekt eingegeben. Beide Optionen liefern keine Werte. Auch die Groß / Kleinschreibung bei RFID_Reader / rfid_reader habe ich bei den Subscribes bzw. den Topics jetzt schon verändert. Jetzt sehe ich gerade den Wald vor lauter Bäumen nicht. Wo könnte mein Fehler liegen? Gruß Carsten

Hallo,

Kannst du bitte mal ein Log von der Arduino Console hier rein stellen?
Vielleicht finden wir so den Fehler.

Wenn du kein Username und Passwort für MQTT hast sollten die Felder beim Einrichten der WLAN Verbindung auf jeden Fall leer bleiben.
Titel: Antw:MQTT - RFID - Reader
Beitrag von: CarstenF am 28 Mai 2019, 10:16:48
Hi,
also den ersten Fehler habe ich gefunden. Die voreingestellte IP vom mqtt Server war noch im hochgeladenen Sketch. Meine Änderung ein der Anmeldung hat er nicht übernommen. Das habe ich im Sketch jetzt geändert und meinen Server eingetragen. Hochgeladen. Jetzt wird mir das auch so angezeigt. Kommt aber immer noch nichts. Hier mal die Konsole...

0:08:42.904 -> *WM: Handle root
10:08:48.315 -> *WM: Scan done
10:08:48.315 -> *WM: Ubiqiti
10:08:48.315 -> *WM: -42
10:08:48.315 -> *WM: CelenoInitialAP74057C
10:08:48.315 -> *WM: -56
10:08:48.315 -> *WM: Avantar
10:08:48.315 -> *WM: -60
10:08:48.315 -> *WM: ASUS
10:08:48.315 -> *WM: -62
10:08:48.315 -> *WM: UPC71F8457
10:08:48.315 -> *WM: -65
10:08:48.315 -> *WM: CelenoInitialAPA438A3
10:08:48.315 -> *WM: -66
10:08:48.315 -> *WM: Unitymedia WifiSpot
10:08:48.315 -> *WM: -71
10:08:48.351 -> *WM: FRITZ!Box 7490
10:08:48.351 -> *WM: -74
10:08:48.351 -> *WM: WLAN-317125
10:08:48.351 -> *WM: -92
10:08:48.351 -> *WM: Sent config page
10:09:12.726 -> *WM: WiFi save
10:09:12.726 -> *WM: Parameter
10:09:12.726 -> *WM: server
10:09:12.726 -> *WM: 192.168.1.50
10:09:12.761 -> *WM: Parameter
10:09:12.761 -> *WM: port
10:09:12.761 -> *WM: 1883
10:09:12.761 -> *WM: Parameter
10:09:12.761 -> *WM: user
10:09:12.761 -> *WM:
10:09:12.761 -> *WM: Parameter
10:09:12.761 -> *WM: pass
10:09:12.761 -> *WM:
10:09:12.761 -> *WM: Parameter
10:09:12.761 -> *WM: device_name
10:09:12.761 -> *WM: RFID_Reader
10:09:12.761 -> *WM: Sent wifi save page
10:09:14.763 -> *WM: Connecting to new AP
10:09:14.763 -> *WM: Connecting as wifi client...
10:09:18.437 -> *WM: Connection result:
10:09:18.437 -> *WM: 3
10:09:18.510 -> Should save config
10:09:18.510 -> wifi connected
10:09:18.510 -> saving MQTT config
10:09:18.510 -> failed to open config file for writing
10:09:18.510 -> {"mqtt_server":"192.168.1.50","mqtt_port":"1883","mqtt_user":"","mqtt_pass":"","mqtt_device_name":"RFID_Reader"}setup buttons
10:09:18.510 -> setup mqtt
10:09:18.510 -> MQTT IP: 192.168.1.50
10:09:18.510 -> MQTT Port: 1883
10:09:18.510 -> MQTT device name: RFID_Reader
10:09:18.543 -> MQTT user name:
10:09:18.543 -> MQTT password:
10:09:18.577 -> setup rfid
10:09:32.480 -> button1 pressed

Update: Mist, muß jetzt zur Arbeit. Werde morgen mal weiterfrickeln. Vielen Dank trotzdem schon mal für den Tip. Werde Weiterberichten.
Titel: Antw:MQTT - RFID - Reader
Beitrag von: betateilchen am 28 Mai 2019, 10:54:42
Die voreingestellte IP vom mqtt Server war noch im hochgeladenen Sketch. Meine Änderung ein der Anmeldung hat er nicht übernommen.

10:09:18.510 -> failed to open config file for writing
Das dürfte auf ein Konfigurationsproblem Deiner IDE zurückzuführen sein, deshalb wurden Deine eingegebenen Daten nicht gespeichert.
Titel: Antw:MQTT - RFID - Reader
Beitrag von: Frank_Huber am 28 Mai 2019, 11:01:57
kein SPIFFS eingestellt?
Titel: Antw:MQTT - RFID - Reader
Beitrag von: CarstenF am 28 Mai 2019, 13:00:15
So, mal kurz von der Arbeit,
erstmal mußte ich mal schauen was SPIFFS ist.  *schäm* Sei´s drum.
Also der Flash Vorgang hatte reibungslos funktioniert. Dort wurde in der IDE kein Fehler angezeigt. Das Log ist vom Serial Monitor beim (NEU)Start des Wemos.
Wo ich SPIFFS in der IDE einstelle muß ich später, wenn ich wieder zu Hause bin, mal nachschauen. Hatte die Einstelllungen eigentlich so wie im ersten POST von gloob übernommen. Vorher hatte ich auch ein paar ArduinoNanos geflasht, ohne das ich dort irgendwas in Sachen SPIFFS einstellen mußte. Denke mal, es ist nur ne blöde Kleinigkeit die ich übersehe.
Freu mich aber über Eure Hilfe.

Gruß C.
Titel: Antw:MQTT - RFID - Reader
Beitrag von: Frank_Huber am 28 Mai 2019, 13:17:38
ich bin auch nicht der Profi, aber der SPIFFS ist der Speicher worin Einstellungen gespeichert werden können.
stellst Du zusammen mit der Flash Größe des ESP ein. (ist auch im Screen im ersten Post so sichtbar.)
Titel: Antw:MQTT - RFID - Reader
Beitrag von: gloob am 28 Mai 2019, 13:43:40
So, mal kurz von der Arbeit,
erstmal mußte ich mal schauen was SPIFFS ist.  *schäm* Sei´s drum.
Also der Flash Vorgang hatte reibungslos funktioniert. Dort wurde in der IDE kein Fehler angezeigt. Das Log ist vom Serial Monitor beim (NEU)Start des Wemos.
Wo ich SPIFFS in der IDE einstelle muß ich später, wenn ich wieder zu Hause bin, mal nachschauen. Hatte die Einstelllungen eigentlich so wie im ersten POST von gloob übernommen. Vorher hatte ich auch ein paar ArduinoNanos geflasht, ohne das ich dort irgendwas in Sachen SPIFFS einstellen mußte. Denke mal, es ist nur ne blöde Kleinigkeit die ich übersehe.
Freu mich aber über Eure Hilfe.

Gruß C.

SPIFFS gibt es auch nicht beim Arduino Nano. Das gibt es nur beim ESP/Wemos.
Wie Frank_Huber schon richtig gesagt hat, ist es unter "Flash_Size" einzustellen.

Warum MQTT trotzdem nicht funktioniert können wir gerne danach nochmal anschauen. Eine Verbindung zum MQTT Server kann er allerdings aufbauen, ansonsten würdest du nur Punkte in der Console sehen.
Titel: Antw:MQTT - RFID - Reader
Beitrag von: betateilchen am 28 Mai 2019, 18:54:00
Das beschriebene Verhalten ist mit einem mosquitto reproduzierbar.

Wenn du kein Username und Passwort für MQTT hast sollten die Felder beim Einrichten der WLAN Verbindung auf jeden Fall leer bleiben.

Diese Empfehlung ist vermutlich der Fehler.

Mit Leerstrings in mqtt_user und mqtt_pass wie hier:

10:09:18.510 -> {"mqtt_server":"192.168.1.50","mqtt_port":"1883","mqtt_user":"","mqtt_pass":"","mqtt_device_name":"RFID_Reader"}

passiert genau das hier beschriebene: keine Fehlermeldung bezüglich der mqtt-Verbindung, keine Kommunikation. Wobei ich nicht weiter geforscht habe, ob das ein Problem des Servers ist oder ein Problem mit der verwendeten mqtt-Library im Arduino-Sketch. Mein Bauchgefühl geht eher in Richtung Client.

Abhilfe im Sketch: bei leeren Feldern die beiden Variablen mqtt_user und mqtt_pass beim Verbindungsaufbau gar nicht mitgeben oder vor der Übergabe mit irgendwas füllen. Beide Varianten habe ich erfolgreich ausprobiert.

@CarstenF hast Du mal getestet, die vorgegebenen Werte "username" und "passwort" einfach stehenzulassen und zu verwenden? Bei mir funktioniert die Übertragung dann auch bei "allow_anonymous true" auf mosquitto problemlos.

Titel: Antw:MQTT - RFID - Reader
Beitrag von: CarstenF am 28 Mai 2019, 19:01:25
Das beschriebene Verhalten ist mit einem mosquitto reproduzierbar.

Diese Empfehlung ist vermutlich der Fehler.

Mit Leerstrings in mqtt_user und mqtt_pass wie hier:

passiert genau das hier beschriebene: keine Fehlermeldung bezüglich der mqtt-Verbindung, keine Kommunikation. Wobei ich nicht weiter geforscht habe, ob das ein Problem des Servers ist oder ein Problem mit der verwendeten mqtt-Library im Arduino-Sketch. Mein Bauchgefühl geht eher in Richtung Client.

Abhilfe im Sketch: bei leeren Feldern die beiden Variablen mqtt_user und mqtt_pass beim Verbindungsaufbau gar nicht mitgeben oder vor der Übergabe mit irgendwas füllen. Beide Varianten habe ich erfolgreich ausprobiert.

@CarstenF hast Du mal getestet, die vorgegebenen Werte "username" und "passwort" einfach stehenzulassen und zu verwenden? Bei mir funktioniert die Übertragung dann auch bei "allow_anonymous true" auf mosquitto problemlos.
Friste mein Dasein immer noch auf der Arbeit :-) Werde aber gleich noch mal ein paar Tests fahren. Danke für den Hinweis.


Gesendet von iPad mit Tapatalk
Titel: Antw:MQTT - RFID - Reader
Beitrag von: gloob am 28 Mai 2019, 19:16:33
Das beschriebene Verhalten ist mit einem mosquitto reproduzierbar.

Diese Empfehlung ist vermutlich der Fehler.

Mit Leerstrings in mqtt_user und mqtt_pass wie hier:

passiert genau das hier beschriebene: keine Fehlermeldung bezüglich der mqtt-Verbindung, keine Kommunikation. Wobei ich nicht weiter geforscht habe, ob das ein Problem des Servers ist oder ein Problem mit der verwendeten mqtt-Library im Arduino-Sketch. Mein Bauchgefühl geht eher in Richtung Client.

Abhilfe im Sketch: bei leeren Feldern die beiden Variablen mqtt_user und mqtt_pass beim Verbindungsaufbau gar nicht mitgeben oder vor der Übergabe mit irgendwas füllen. Beide Varianten habe ich erfolgreich ausprobiert.

@CarstenF hast Du mal getestet, die vorgegebenen Werte "username" und "passwort" einfach stehenzulassen und zu verwenden? Bei mir funktioniert die Übertragung dann auch bei "allow_anonymous true" auf mosquitto problemlos.

Kann ich so nicht stehen lassen. Ich nutze auch einen Mosquitto Server und habe keinen Benutzernamen und Passwort vergeben. Beim Einrichten des Readers habe ich die Felder leer gemacht/gelassen.
Die Bilder zeigen schön, dass trotzdem die Messages in FHEM ankommen.

Bei allen Versionen vorher, wo man Benutzername und Passwort nicht einstellen konnte, wurde auch ein leerer String genutzt und an die Connect Funktion übergeben.
Ich habe keine Beschwerden darüber bisher gelesen/gehört.
Titel: Antw:MQTT - RFID - Reader
Beitrag von: gloob am 28 Mai 2019, 19:20:52
Friste mein Dasein immer noch auf der Arbeit :-) Werde aber gleich noch mal ein paar Tests fahren. Danke für den Hinweis.
Gesendet von iPad mit Tapatalk

Zeig doch bitte nochmal ein List von FHEM wenn du zuhause bist.
Titel: Antw:MQTT - RFID - Reader
Beitrag von: gloob am 28 Mai 2019, 20:28:16
Kompletter Reset mit neu Einrichten. Nachrichten kommen in FHEM an.
Benutzername und Passwort für MQTT war leer.
Titel: Antw:MQTT - RFID - Reader
Beitrag von: CarstenF am 28 Mai 2019, 20:53:46
Hallo zusammen,

Also erstmal vielen Dank für die Geduld. Es war die Einstellung in Sachen SPIFFS. Habe ich irgendwie übersehen. Blöde. Aber ich dachte mir schon, das es nur eine Kleinigkeit ist. Jetzt Internals:
   CFGFN     
   FUUID      5ceccf50-f33f-4304-a1e7-e7c6eeb534afa166
   IODev      mqtt
   NAME       RFID_Reader
   NR         466635
   STATE      ???
   TYPE       MQTT_DEVICE
   OLDREADINGS:
   READINGS:
     2019-05-28 20:47:28   Button1         long pressed
     2019-05-28 20:47:37   Button2         long pressed
     2019-05-28 20:47:34   Button3         long pressed
     2019-05-28 20:47:37   transmission-state incoming publish received
   message_ids:
   sets:
   subscribe:
     /rfid_reader/button1:.*
     /RFID_Reader/button1
     /RFID_Reader/button2
     /RFID_Reader/button3
   subscribeExpr:
     ^\/rfid_reader\/button1:.*$
     ^\/RFID_Reader\/button1$
     ^\/RFID_Reader\/button2$
     ^\/RFID_Reader\/button3$
   subscribeQos:
     /RFID_Reader/button1 0
     /RFID_Reader/button2 0
     /RFID_Reader/button3 0
     /rfid_reader/button1:.* 0
   subscribeReadings:
     /RFID_Reader/button1:
       cmd       
       name       Button1
     /RFID_Reader/button2:
       cmd       
       name       Button2
     /RFID_Reader/button3:
       cmd       
       name       Button3
     /rfid_reader/button1:.*:
       cmd       
       name       Button1
Attributes:
   IODev      mqtt
   room       mqtt
   subscribeReading_Button1 /RFID_Reader/button1
   subscribeReading_Button2 /RFID_Reader/button2
   subscribeReading_Button3 /RFID_Reader/button3

läuft die Sache genau so, wie sie soll. Auch ohne Benutzer und Passwort. (und ja... ich müßte das mal umbauen :-)
Allen Beteiligten noch einen schönen Abend.

Gruß Carsten
Titel: Antw:MQTT - RFID - Reader
Beitrag von: gloob am 28 Mai 2019, 21:09:44
Vielen Dank für die Rückmeldung. Gut dass es nicht am Benutzername und Passwort liegt. Hätte mich auch echt gewundert.
Titel: Antw:MQTT - RFID - Reader
Beitrag von: willib am 12 Juni 2019, 21:48:38
Ich habe Fertig!
Nochmal Vielen Dank an gloob!
Titel: Antw:MQTT - RFID - Reader
Beitrag von: CarstenF am 26 Juni 2019, 13:20:04
Mahlzeit zusammen,

Ich scheitere gerade (vermutlich hitzebedingt) an einer Denkaufgabe.
Ich hab den Wemos ordnungsgemäß verkabelt. Buttons dran. Das ganze betrieben mit einer 5 V DC Einbaubuchse. —Funktioniert. Per MQTT werden Meldungen verschickt.

Hänge ich (korrekt verkabelt nach dem Schema) des RFID Reader dran…. Gehts nicht mehr.
Wemos fährt nicht hoch, es leuchtet nur die LED am RFID Reader.

Also RFID Reader getauscht getestet etc. Alles gut. An dem liegt es nicht.

Jetzt gehe ich her und schließe den Wemos per USB an. Läuft ALLES. Sowohl Buttons, als auch der RFID Reader.

Ich komme gerade nicht auf die Lösung. Ich könnte natürlich jetzt mit dem USB Anschluß arbeiten, aber ich habe doch auch das schöne Gehäuse mit Platz für die Buchse. :-)

Jemand eine Idee, wo ich suchen kann?

Gruß Carsten
Titel: Antw:MQTT - RFID - Reader
Beitrag von: Frank_Huber am 26 Juni 2019, 13:27:11
5V zu schwach?
Titel: Antw:MQTT - RFID - Reader
Beitrag von: CarstenF am 26 Juni 2019, 13:31:34
Hm wäre das möglich? Ist ein Standard 5 V Netzteil. 5V / 1000 mA. Bei meinem anderen Bauprojekt (TonUino, https://www.voss.earth/tonuino/ (https://www.voss.earth/tonuino/) funktionieren die Netzteile ohne Probleme.
Werde aber mal was anderes dranhängen.

Edit: Was verträgt der Wemos denn? Geht ein 9 V Netzteil? Vermtl zu viel oder?
Gruß Carsten
Titel: Antw:MQTT - RFID - Reader
Beitrag von: gloob am 26 Juni 2019, 13:36:42
Wo speist du denn die 5V ein? Am 5V Pin des Wemos?
Bei mir funktioniert der Reader an einem normalen USB Hub (USB auf Einbaubuchse).
Der Wemos verträgt maximal 5V.

Manchmal hilft auch ein Bild vom Aufbau  ;)
Titel: Antw:MQTT - RFID - Reader
Beitrag von: CarstenF am 26 Juni 2019, 13:53:50
Also die 5 V kommen vom Netzteil auf den 5V Pin beim Wemos. Ground geht auf Ground am RFID Reader. 3,3 V vom Wemos zum 3,3 V Pin am Reader. Wie auf dem Schema im ersten Post.
Speise ich Stromversorgung über den USB Port ein und nehme Ground vom RFID Reader zum Wemos, funktioniert das ganze ja.
Foto vom Aufbau....
Schwer alles aufs Bild zu bekommen. ;)
Titel: Antw:MQTT - RFID - Reader
Beitrag von: gloob am 26 Juni 2019, 14:22:30
Also die 5 V kommen vom Netzteil auf den 5V Pin beim Wemos. Ground geht auf Ground am RFID Reader. 3,3 V vom Wemos zum 3,3 V Pin am Reader. Wie auf dem Schema im ersten Post.
Speise ich Stromversorgung über den USB Port ein und nehme Ground vom RFID Reader zum Wemos, funktioniert das ganze ja.
Foto vom Aufbau....
Schwer alles aufs Bild zu bekommen. ;)

Der GND Pin muss von der Buchse zum RFID Modul und zu den Buttons und zum Wemos. Bei dir fehlt die Verbindung GND-Wemos.
Titel: Antw:MQTT - RFID - Reader
Beitrag von: CarstenF am 26 Juni 2019, 14:34:21
Der GND Pin muss von der Buchse zum RFID Modul und zu den Buttons und zum Wemos. Bei dir fehlt die Verbindung GND-Wemos.
Ja was soll ich sagen. Wenn man es Richtig macht, klappt auch alles.  :-[ Danke Dir. Ich hatte irgendwie geglaubt Grund wird im Wemos durchgeschleift (sagt man das so?). Vermutlich hab ich das Schaltbild falsch interpretiert.
Vielen Dank fürs Helfen und noch einen entspannten warmen Tag.  8)

Gruß Carsten
Titel: Antw:MQTT - RFID - Reader
Beitrag von: synaps-o-dan am 11 Juli 2019, 20:38:12
Hallo Stefan,
der RFID-Reader ist heute angekommen. Und schon taucht das erste Problem auf. Ich habe den Reader mit meinem WLAN verbunden. Das hat auch funktioniert. Der Reader spannt nun kein eigenes WLAN mehr auf. Leider habe ich die IP-Adresse des MQTT-Servers falsch eingegeben, also muss ich einen Reset machen. Der klappt leider nicht: ich habe alle drei Tasten gedrückt gehalten (länger als 5s), aber der Reader verbindet sich immer wieder mit meinem WLAN. Kannst Du helfen?
Liebe Grüße, Daniel
Titel: Antw:MQTT - RFID - Reader
Beitrag von: gloob am 11 Juli 2019, 20:45:06
Dann hast du nicht lange genug gedrückt. Probier es mal mit 10 Sekunden.
Du kannst auch dein WLAN abschalten, dann spannt der Reader wieder sein eigenes auf, wenn er sich nicht verbinden kann.

Wenn das nicht hilft, musst du leider die Firmware neu auf den Wemos aufspielen.
Titel: Antw:MQTT - RFID - Reader
Beitrag 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 hast du nicht lange genug gedrückt. Probier es mal mit 10 Sekunden.
Du kannst auch dein WLAN abschalten, dann spannt der Reader wieder sein eigenes auf, wenn er sich nicht verbinden kann.

Wenn das nicht hilft, musst du leider die Firmware neu auf den Wemos aufspielen.
Titel: Antw:MQTT - RFID - Reader
Beitrag von: gloob am 11 Juli 2019, 21:40:46
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.
Titel: Antw:MQTT - RFID - Reader
Beitrag 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

Titel: Antw:MQTT - RFID - Reader
Beitrag von: gloob am 11 Juli 2019, 21:48:11
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.
Titel: Antw:MQTT - RFID - Reader
Beitrag von: gloob am 11 Juli 2019, 21:48:27
Gibt es da keine Web gui für die grundlegenden settings?

Gesendet von meinem S60 mit Tapatalk

Nein  ;D
Titel: Antw:MQTT - RFID - Reader
Beitrag von: Frank_Huber am 11 Juli 2019, 21:48:56
Da Lob ich mir dann das espeasy auf meinem. [emoji16][emoji16][emoji16]

Gesendet von meinem S60 mit Tapatalk

Titel: Gelöst: Antw:MQTT - RFID - Reader
Beitrag von: CarstenF am 13 April 2020, 17:41:25
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.,

Titel: Antw:MQTT - RFID - Reader
Beitrag von: laberlaib am 10 Januar 2021, 11:01:43
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).
Titel: Antw:MQTT - RFID - Reader
Beitrag von: gloob am 21 Januar 2021, 13:51:30
Ich habe mal eine V1.8 hochgeladen, die eine LED an D0 kurz aufblinken lässt, wenn ein RFID Chip erkannt wurde.
Titel: Antw:MQTT - RFID - Reader
Beitrag von: jheinze@waldbroel-hahn.de am 20 Februar 2021, 21:12:27
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....
Titel: Antw:MQTT - RFID - Reader
Beitrag 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?
Titel: Antw:MQTT - RFID - Reader
Beitrag von: jheinze@waldbroel-hahn.de am 01 März 2021, 20:27:16
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

Titel: Antw:MQTT - RFID - Reader
Beitrag von: jheinze@waldbroel-hahn.de am 01 März 2021, 20:33:52
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..  ;)
Titel: Antw:MQTT - RFID - Reader
Beitrag von: jheinze@waldbroel-hahn.de am 02 März 2021, 19:12:29
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

Titel: Antw:MQTT - RFID - Reader
Beitrag von: gloob am 03 März 2021, 06:51:44
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.
Titel: Antw:MQTT - RFID - Reader
Beitrag von: tuxbox am 28 Juli 2021, 14:40:46
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