ESPEasy & RFID

Begonnen von rspecht, 01 Juni 2023, 15:50:53

Vorheriges Thema - Nächstes Thema

rspecht

Hallo Zusammen,

ich habe mir an der Haustüre einen WemosD1 hingebastelt und mit 12V über die alten Türöffnerleitungen versorgt. Daran ist ein Wiegand Leser und ich habe im ESPEasy entsprechend ein Device angelegt und sende die Tag IDs direkt an FHEM.

FHEM entscheidet ob die Tür geöffnet wird. Das ist alles nur bedingt sicher, aber andererseits wird wohl kaum ein Dieb mein FHEM hacken sondern eher die Scheibe einschlagen ;)
Für den Urlaub werde ich einfach den Öffnerkontakt vom Hausbus zum Motorschloss unterbrechen.

Zurück zum Wemos:
Aktuell habe ich das Problem damit ich mehrere Nachrichten des ESPs bekomme - egal wie ich ESPEasy konfiguriere.

Aktuelle ESP Easy Konfig:
  Controller:
    FHEM HTTP mit Allow Expire on sowie De-Duplicate on - das brachte beides nix.
  Device:
    RFID - Wiegand mit 34 bit, auto Tag Remove und Single Event with all values (auch das ändert nix).

Was passiert:
Im Fhem Events sehe ich damit er mir mal nach 30 sec, mal nach mehreren Minuten ein Event nachschiebt.
2023-06-01 15:44:47 ESPEasy ESPEasy_RFID Tag: 1234
2023-06-01 15:44:47 ESPEasy ESPEasy_RFID presence: present
2023-06-01 15:44:47 ESPEasy ESPEasy_RFID Tag: 1234
2023-06-01 15:48:40 ESPEasy ESPEasy_RFID presence: present
2023-06-01 15:48:41 ESPEasy ESPEasy_RFID Tag: 1234

Wie unterbinde ich das? Ich hab nun im notify ein 10 min timeout - das ist aber recht unlustig wenn der Tag mal nicht richtig verarbeitet wurde oder ich 2x nacheinander ins Haus möchte :)

Viele Grüße

rspecht

#1
Moin,
ich hab mich gestern dem Thema nochmal angenommen...
Also der ESP sendet nur einmal laut seinen Logs.
Das kommt zeitlich auch genau passend an und generiert aber 2 Trigger.
2023.11.05 11:56:18 5: ESPEasy ESPEasy_ESP_Haustuer_RFID: Received: ESP_Haustuer_RFID::192.168.0.37::1::0::1::i||unit||0||0|||i||sleep||0||0|||i||build||20434||0|||i||build_git||mega-20230409||0|||i||build_notes|| - Mega||0|||i||version||2||0|||i||node_type_id||17||0|||r||Tag||1234||20
2023.11.05 11:56:18 4: ESPEasy ESPEasy_ESP_Haustuer_RFID: Tag: 1234
2023.11.05 11:56:18 5: ESPEasy ESPEasy_ESP_Haustuer_RFID: Internals: unit:0 sleep:0 build:20434 build_git:mega-20230409 build_notes: - Mega version:2 node_type_id:ESP Easy Mega
2023.11.05 11:56:18 5: Triggering ESPEasy_ESP_Haustuer_RFID_notify
2023.11.05 11:56:18 5: Triggering ESPEasy_ESP_Haustuer_RFID_notify
2023.11.05 12:00:04 4: ESPEasy ESPEasy_ESP_Haustuer_RFID: set statusRequest
2023.11.05 12:00:04 5: Triggering ESPEasy_ESP_Haustuer_RFID_notify
2023.11.05 12:00:04 5: ESPEasy ESPEasy_ESP_Haustuer_RFID: Start internalTimer +303 => 2023-11-05 12:05:07
2023.11.05 12:05:07 4: ESPEasy ESPEasy_ESP_Haustuer_RFID: set statusRequest
2023.11.05 12:05:07 5: ESPEasy ESPEasy_ESP_Haustuer_RFID: Start internalTimer +302 => 2023-11-05 12:10:10

Viel "schlimmer" ist aber der Trigger nach "set statusRequest"...

Das erste "doppelt Melden" bekomme ich weg wenn ich in 34_ESPEasy.pm in Zeile 1822/4681 die 1 zur 0 ändere und somit an der stelle kein notify auslöse.
readingsEndUpdate($hash, 0);

Edit: ich kam grade auf die idee oben wieder die 1 rein zu machen und dann über attr setState 0 die Funktion setState zu deaktivieren. Dort sind singleupdates mit entsprechenden Trigger versteckt.... ich glaub das wars.
Viele Grüße