FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Tiefflieger am 29 November 2019, 07:52:31

Titel: esp-rfid Mqtt Daten in Fhem anzeigen lassen
Beitrag von: Tiefflieger am 29 November 2019, 07:52:31
Hallo
Ich habe hier ein esp-rfid (https://www.tindie.com/products/nardev/esp-rfid-relay-board-12v-for-esp8266-board/)
mit dieser Software (https://github.com/esprfid/esp-rfid)

Mein Problem ist es, das ich auf meinem Pi unter Mqtt die Daten sehen kann (Foto)

Aber einfach nicht weiß und hinbekomme, das ich in Fhem angezeigt bekomme, wer, wann den rfid benutzt hat.
Würde auch gern bei jedem rfid reed eine Nachricht auf Telegramm kommen lasse mit z.B. ......... hat den Chip gescannt.

Habe eine Mqtt device mit dem Namen des ESP-Rfid angelegt aber bekomme keine Werte da.

Und nun komm ich einfach nicht weiter
Titel: Antw:Mqtt Daten in Fhem anzeigen lassen
Beitrag von: rabehd am 29 November 2019, 07:57:35
ZitatHabe eine Mqtt device mit dem Namen des ESP-Rfid angelegt

Dann zeigt mal was ein List davon liefert!
Titel: Antw:Mqtt Daten in Fhem anzeigen lassen
Beitrag von: Beta-User am 29 November 2019, 08:01:36
Von der Struktur her sieht mir das ähnlich aus wie der BLE-Teil zum OpenMQTTGateway.

Da gibt's ein funktionierendes attrTemplate, allerdings für MQTT2_DEVICE. Details zu dem Modul im Wiki (fang bei Praxisbeispiele an zu lesen). Eventuell kann man auch Teile des Codes as dem attrTemplate auf MQTT_DEVICE übertragen, aber da bin ich nicht firm drin.

Gruß, Beta-User
Titel: Antw:Mqtt Daten in Fhem anzeigen lassen
Beitrag von: Tiefflieger am 01 Dezember 2019, 14:41:28
Also mein list ergibt folgendes :
Titel: Antw:Mqtt Daten in Fhem anzeigen lassen
Beitrag von: Beta-User am 01 Dezember 2019, 15:07:35
Bitte als Text in Code-Tags (#) oder als "Zitat".
Titel: Antw:Mqtt Daten in Fhem anzeigen lassen
Beitrag von: Tiefflieger am 04 Dezember 2019, 10:47:53
Also mit MQTT.fx unter win10 bekomme ich folgende daten ausgelesen :

/rfid/sync
{"type":"heartbeat","time":1575452491,"ip":"192.168.178.90","door":"esp-rfid"}

und

/rfid/send
{"type":"access","time":1575452072,"isKnown":"true","access":"Admin","username":"Dennis Handy","uid":"5xxxxx3","door":"esp-rfid"}

Wie bekomme ich es jetzt hin, das ich den username und die zeit in Fhem angezeigf bekomme :

Habe es mit : define RFID MQTT_DEVICE angelegt
uns : attr subscribeReading_.* RFID/send/"username"

bekomme aber keine daten angezeigt
Titel: Antw:esp-rfid Mqtt Daten in Fhem anzeigen lassen
Beitrag von: Beta-User am 04 Dezember 2019, 11:53:57
Mit MQTT_DEVICE wird das mMn. schwierig! Es gibt zwar auch da Optionen, den $event auswerten zu lassen, aber dann müßtest du dich um's Auspacken des JSON selber kümmern und entsprechenden Perl-Code schreiben, deine Versuche sind jedenfalls mMn. ziemlich untauglich...

Klemm also entweder einen MQTT2_CLIENT an den mosquitto und mach's über ein MQTT2_DEVICE (wie bereits angedeutet durch Adaption des bluetooth-Teils vom OpenMQTTGateway-attrTemplate) oder wechsle gleich ganz zu MQTT2_SERVER und zieh' auch den ggf. vorhandenen Rest an MQTT-Gerät um...
Kannst ja erst mal für das Gerät einen anderen Port nutzen und dann testweise andere Geräte auch umstellen.
Titel: Antw:esp-rfid Mqtt Daten in Fhem anzeigen lassen
Beitrag von: Gasmast3r am 14 Dezember 2019, 16:52:00
Hy Hatte das selbe Problem, habe es folgendermaßen gelöst.


MQTT_CLIENT angelegt(nutze für meine Sonoff module TASMOTA_DEVICE)

defmod MQTT2 MQTT2_CLIENT 192.168.178.110:1883
attr MQTT2 room MQTT


dann MQTT2_DEVICE angelegt (RFID ist mein MQTT_Topic)

defmod RFID MQTT2_DEVICE
attr RFID IODev MQTT2
attr RFID devicetopic RFID
attr RFID readingList RFID/sync:.* { json2nameValue($EVENT) }\
RFID/send:.* { json2nameValue($EVENT) }
attr RFID room MQTT
attr RFID stateFormat username

das sind quasi meine readings

setstate RFID Unknown
setstate RFID 2019-12-14 05:50:44 access Denied
setstate RFID 2019-12-14 16:49:38 door esp-rfid
setstate RFID 2019-12-14 16:49:38 ip 192.168.178.209
setstate RFID 2019-12-14 05:50:44 isKnown false
setstate RFID 2019-12-14 16:49:38 time 1576338578
setstate RFID 2019-12-14 16:49:38 type heartbeat
setstate RFID 2019-12-14 05:50:44 uid 8db4337
setstate RFID 2019-12-14 05:50:44 username Unknown



hoffe konnte damit helfen
Titel: Antw:esp-rfid Mqtt Daten in Fhem anzeigen lassen
Beitrag von: dirk.k am 14 Dezember 2019, 22:46:22
Also ich lasse die ganzen MQTT-Strings in ein Reading schreiben.
z.B. mit
attr RFID subscribeReading_INFO1 rfid/sync
dann hat das reading INFO1 den Inhalt:
{"type":"access","time":1575452072,"isKnown":"true","access":"Admin","username":"Dennis Handy","uid":"5xxxxx3","door":"esp-rfid"}

Dann nehme ich den mittels userreadings auseinander:
attr RFID userReadings \
RFID-USERNAME:INFO1:.* {decode_json(ReadingsVal($NAME,"INFO1",0))->{username}},\
RFID-isKnown:INFO1:.* {decode_json(ReadingsVal($NAME,"INFO1",0))->{isKnown}},\