Ich habe mehrere RFID-Reader per ESP-Home in HA eingebunden und diese senden die ID des Tags an Homeassistant und ich kann sie auch in Automationen einsetzen.
Allerdings kann ich nirgendwo erkennen, an welchem Reader ein Tag gescannt wurde, was für einen sinnvollen Einsatz aber essentiell ist. Sonst müsste ich für jeden Ort, an dem ein Reader eingesetzt wird, ein anderes Tag verwenden.
scheidet aus, weil damit das Tag in dem jeweiligen ESP gespeichert ist. Zudem ist es äußerst unkomfortabel, jedes zusätzliche Tag jedes mal in jedem ESP zu speichern und den jedes mal neu zu programmieren.
Die Frage also: Wie kann ich in HA erkennen, an welchem Reader ein Tag gescannt wurde?
Um an die device_id des Scanners zu kommen fügst du deinen Scanner temporär als Trigger hinzu. Dann noch in den yaml-modus wechseln und schon hat man die device_id.
Ich habe jetzt die Device-ID in die Automation eingetragen.
Das funktioniert genau ein mal, weil die Geräte-ID sich ja nicht mehr ändert, wenn man ein Tag mehrmals an einem Scanner scannt.
Hier bin ich dann wohl raus. Bzw. HA ist an dieser Stelle raus.
Dann werden es eine Hand voll ESP, die die ID des Tags an einen zentralen ESP senden, der dann die Türen öffnet.
Das kann man in einer echten Programmiersprache programmieren und auch verstehen.
Dann ist das wohl so.
Aber falls doch noch Interesse besteht dann schau doch mal in den traces nach, wie in meinem ersten Screenshot, ob die device IDs stimmen.
Ich habe es mal mit der Triggervariablen erfolgreich getestet.
Ich habe mir jetzt eine Krücke gebaut, die zwar einen GPIO auf den ESPs belegt, aber für mich funktioniert. (Auf einem ESP8266 verwende ich dafür einfach die onboard-LED)
Auf den ESPs habe ich jeweils einen switch angelegt, der beim Scannen eines Tags ein und wieder ausgeschaltet wird.
Diesen Switch frage ich in der Automation in der “dann” Sektion zusätzlich ab und erkenne damit, an welchem Scanner ein Tag gescannt wurde.
Auf den ESPs jeweils mit unterschiedlichen Nummern für die Switches: