MQTT - RFID - Reader

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

Vorheriges Thema - Nächstes Thema

willib

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
FHEM in Debian 10 LXC unter Proxmox auf NUC, Homematic, Hue, Intertechno, Jeelink, RFXTRX, Harmony Hub, VU+ Uno 4K, Sonos, AMAD

gloob

Steht doch im ersten Post.
Bekommst du irgendwelche Ausgaben auf der Arduino Console?
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

willib

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.
FHEM in Debian 10 LXC unter Proxmox auf NUC, Homematic, Hue, Intertechno, Jeelink, RFXTRX, Harmony Hub, VU+ Uno 4K, Sonos, AMAD

gloob

Zitat 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.

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?
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

willib

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?
FHEM in Debian 10 LXC unter Proxmox auf NUC, Homematic, Hue, Intertechno, Jeelink, RFXTRX, Harmony Hub, VU+ Uno 4K, Sonos, AMAD

gloob

#35
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.
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

willib

#36
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.
FHEM in Debian 10 LXC unter Proxmox auf NUC, Homematic, Hue, Intertechno, Jeelink, RFXTRX, Harmony Hub, VU+ Uno 4K, Sonos, AMAD

gloob

#37
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.
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

willib

Ich nutze auch einen Wemos D1.

Ich habe nur deinen Code jeweils um Button4 erweitert.
#define BUTTON_PIN_4  D0
Und 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...
FHEM in Debian 10 LXC unter Proxmox auf NUC, Homematic, Hue, Intertechno, Jeelink, RFXTRX, Harmony Hub, VU+ Uno 4K, Sonos, AMAD

gloob

Aktuell steigt meiner auch an und an aus. Ich werde jetzt mal testen ob ich es mit einem zyklischen Pingen verhindern 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

gloob

#40
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
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

willib

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.
FHEM in Debian 10 LXC unter Proxmox auf NUC, Homematic, Hue, Intertechno, Jeelink, RFXTRX, Harmony Hub, VU+ Uno 4K, Sonos, AMAD

gloob

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
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

willib

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.
FHEM in Debian 10 LXC unter Proxmox auf NUC, Homematic, Hue, Intertechno, Jeelink, RFXTRX, Harmony Hub, VU+ Uno 4K, Sonos, AMAD

gloob

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.
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