Presence Detection with RFID: Frient/Develco KEPZB-110 RFID Integration in Home Assistant (ZHA)

Initial Situation

In our Home Assistant-based setup we do presence detection with device trackers of the mobile Home Assistant app on our mobiles, i.e. our iPhone is our presence locator and Home Assistant (HA) knows if we are at home or not. This is fine for family members, but what to do if we have a longer absence from home and there is some family-external who takes care of the cats?

I didn’t want to have them installing the Home Assistant app on their devices for tracking their location or scanning a NFC tag to indicate, that they are at our home. I was looking from something less intrusive. My idea was to give them a physical key and a RFID tag so that they can unlock the door and once they are in they could check-in by scanning their RFID tag. By that our Home Assistant would know, that someone arrived at home who is authorized to be there and would turn on all required automations, e.g. motion-based lighting.

Since it was quite hard to find information on RFID readers, integrating them with Home Assistant ZHA and using RFID tags practically in Home Assistant, I decided to write down my experience for others and give some instructions so that they can save time.

Hardware

From my time with Z‑Wave on openHAB [1] I still have a RFID scanner from Zipato [2], but I couldn’t get it to work with my Thinka Z‑Wave hub [3]. And if it doesn’t work with Thinka, it doesn’t work with Home Assistant, since I have integrated Thinka in there as an HomeKit device.

So, what to do? I was doing some research on battery-powered RFID-scanners, which integrate with Home Assistant. Actually I was wondering, that I couldn’t find that many. At the end I was looking a bit deeper into the KEPZB-110 Intelligent Keypad from Frient [4]. It is a Zigbee-based battery-powered RFID reader, for which users confirmed to have it successfully integrated into HA.

Integration

I am using Zigbee since the first Philips Hue bridge [5] and I have two of them to manage the majority of our lights at home. But it was quite clear that even if Hue is a Zigbee-based system, it is not the way how to connect an RFID reader. So I was extending my research into Zigbee and Home Assistant and found out that there are two ways to do it, either by Zigbee2MQTT (Z2M, [6]) or by Zigbee Home Assistant (ZHA, [7]). Because I didn’t want to have another component to be setup (MQTT) and because ZHA is natively supported by my Home Assistant Yellow [7], I decided to go for ZHA.

I was a bit concerned to bring up the third Zigbee bridge in our home because I feared interferences. At the end it turned out that all is working fine. I put the three bridges each on their own channel and by that lighting and the RFID reader work fine beside each other.

Preparation

Activation of ZHA on Home Assistant Yellow

ZHA come with Home Assistant Yellow. Activating it is quite easy.

Instructions

  1. Select Configure in System/Hardware
  1. Select Switch between Zigbee or Thread firmware and the Zigbee and follow the instructions

Pairing the KEPZB-110 Keypad with ZHA

When ZHA is running in Home Assistant the new integration Zigbee Home Automation should show up. From there it is easy to start pairing.

Instructions

  1. Select Configure and then Add Device.
  1. Follow the Frient instructions [9] for setting the device into pairing mode.

Once the device has been included into the Zigbee network, it should be available in Home Assistant.

Testing the Keypad with a Numeric Code

For test the keypad it is required to define a numeric code. Interestingly, this is not being done at the KEPZB-110 device in Home Assistant, but at the level of the Zigbee Home Automation integration.

Instructions for Defining a Master Code

  1. Open Devices & Services
  2. Select Zigbee Home Automation
  3. Click on Configure
  4. Find the section Alarm Control Panel Options 
  5. Define your Master Code

Instructions for Testing

Once the code has been defined, test it as follows:

  1. Press Lock on the physical Frient keypad
  2. Punch your Master code into the keypad followed by the Unlock key.

If successful, the Alarm Control Panel in Home Assistant should switch to Disarmed.

RFID Tags and the ID in RFID

Choosing the Right RFID Tags for KEPZB-110

From my time with the Zipato RFID reader I had three RFID tags. It turned out they don’t work with the Frient keypad. The KEPZB-110 requires a RFID chip based on ISO14443 Type A (MIFARE Classic) [10].

Getting the ID of an RFID Tag

While it is easy to get the keypad into Home Assistant, it seemed to me quite more complicated to get it working with more than one key (master key) or even RFID. I was looking into various Blueprints [12, 13] tried them without success before I finally found a french website [13], which explained how to find out the actual ID of an RFID tag and how to use it in further automations.

Instructions

  1. Head to Developer tools in Home Assistant
  2. Select Events, enter “zha_event” into Listen to events and press Start Listening
  1. Scan the RFID tag (hold close to the middle of the keypad) and press the Unlockbutton
  2. Look into the captured events. You find the ID of the RFID tag in the argument “code” of the payload

Presence Detection Based on RFID

Defining Persons for RFID Tags

Automations in Home Assistant can be either triggered or conditionally executed based on the presence of persons (people). If RFID tags shall be used to support this functionality it is required to define people and “attach” the RFID tags as Track Deviceto them, so that the presence of the respective person can be determined.

Instructions

  1. Head to the People section in Home Assistant
  2. Create a person, e.g. “Green RFID”. Leave the field Track device blank for the time being

Defining Device Trackers for RFID Tags

In former times Device Trackers in Home Assistant were created by the file known_devices.yaml. This is not supported any longer. It took me a while to understand, how these devices are created now.

It is quite easy. They are simply created with an action called Device Trackers: See. As soon as this action is being executed (e.g. in an automation), an entity is being automatically created for the device tracker.

Instructions

Execute the action Device Trackers: See with the attributes DeviceID and Location (either “home” or “not_home”).

Building an Automation for Using RFID for Presence Detection

Once the before-mentioned action has been executed, the device tracker Green_RFID_tracker can be linked to the person Green RFID in the People section of Home Assistant.

The use case for tracking a person at home with an RFID tag is as follows.

Precondition: Nobody at home. Alarm panel of the Frient Keypad is in mode Away

  1. The person enters the home and scans their RFID tag followed by pressing the Unlock button: Alarm panel switches to Disarmed. The person is being checked-into the Home zone.
  2. The person leaves and press the Lock button: Alarm panel switches to Away. The person is being checked-out of the Home zone.

Building an automation is quite easy. 

Instructions 

  1. When: Add a trigger for zha_event event is fired. Use the before captured ID of the RFID tags as code
  2. Then Do: Disarm the keypad and perform the action Device tracker: See

An automation for checking out is more or less the opposite of those before. The only difference is, that the RFID tag is not required to be presented. It is sufficient to simply press the Lock button on the keypad.

This behavior can be changed by enforcing the option Code required for arming actions in the Alarm Control Panel Options of the Zigbee Home Automation integration.

References

Hähnlein gegen Rechtsextremismus: Merz’ CDU, Rechtspopulismus, die Wirtschaft und der Bürgermeister

Gestern war in Hähnlein die erste Versammlung gegen Rechtsextremismus und Demokratiefeindlichkeit. Ein Aufruf aller Fraktionen. 

Aufruf zur Versammlung gegen Rechtsextremismus am 1. März 2024 in Hähnlein

Gut so! Immerhin haben in Hähnlein bei der letzten Landtagswahl über 20% der Wähler ihre Stimme der sog. Alternative für Deutschland (AfD) gegeben. 

Ergebnisse der Landtagswahl 2023 (Landesstimmen) im Wahlbezirk Hähnlein

Rund 250 Menschen waren dem Aufruf gefolgt. Erwartungsgemäß hielt auch Bürgermeister Sebastian Bubenzer (CDU) eine Rede. Dessen Parteivorsitzender Friedrich Merz lässt bekanntermaßen keine Gelegenheit aus, mit rechtspopulistischen Äußerungen die Mitte der Gesellschaft zu spalten (“kleine Paschas”, “Asylbewerber lassen sich die Zähne neu machen“ [3, 4]) und eine unsere Verfassung in Frage stellende sogenannte Leitkultur zu postulieren [7].

Herr Merz möchte mit seinen menschenfeindlichen und aufstachelnden Parolen seine CDU genau bei den Wählern andienen, die er glaubt, an die AfD verloren zu haben oder die er in Gefahr sieht, dort hin zu verlieren. Noch in 2018 wollte Merz die AfD halbieren [5], inzwischen ist sie mehr als doppelt so stark! Wähler die rechts wählen wollen, wählen AfD [1, 2].

Der Vorsitzende Merz und sein Generalsekretär Linnemann lassen keine Gelegenheit aus, um die vermeintlichen Ursachen der Umfrage- und Wahlerfolge der AfD als die Konsequenzen einer verfehlten Politik der Ampel in Berlin zu deklarieren. Merz erklärt die Grünen zum Hauptgegner, macht sie für eine “Volkserziehungsattitüde” verantwortlich [6]. Zugleich macht er Stimmung gegen Andersdenkende und Menschen, die nicht zu einer sogenannten Leitkultur nach seiner Fasson passen [7]. Noch 2017 wurde die sog. Leitkultur als das bezeichnet, was sie ist — als “pure rechte Stimmungsmache” [8].

Kurzum: Friedrich Merz projiziert Probleme auf Andersdenkende und andere demokratische Parteien. Er tritt damit in die Fußstapfen rechtspopulistischer bis nationalsozialistischer Parteien und macht aus der CDU eine schlechte Kopie der rechtsextremistischen AfD, die “AfD mit Substanz”, wie er es nennt.

Genau aus genau diesem Grunde bin ich dann zur Demonstration mit einem dazu passenden Schild, um an Herrn Bubenzer von der CDU eine Botschaft zu übermitteln.

Schild mit der Aufschrift: Merz’ CDU ist mitgemeint

Und diese Botschaft lautet: “Merz’ CDU ist mitgemeint”. Ob sich der Bürgermeister Bubenzer den populistischen Aussagen seines Parteivorsitzenden anschließen würde, weiß ich nicht. Deshalb war mir auch wichtig zu differenzieren und gezielt die “Merz’ CDU” anzusprechen. Mir ist sehr wohl bewusst, dass auch die CDU als demokratische Partei einem stetigen Wandel unterliegt und auch heute noch Mitglieder hat, die ihren Vorsitzenden sehr kritisch sehen [12].

Bubenzer betonte in seiner Rede, dass man natürlich auch über die Ursachen des zunehmenden Rechtsextremismus sprechen dürfen müsse, wenngleich er es ausgelassen hat, seine Sicht auf eben diese Ursachen darzustellen. Dass auch CDU-Mitglieder Teilnehmer des Treffens von Rechtsextremisten in Potsdam waren [9], hat er selbstredend unerwähnt gelassen wie auch die populistischen Ausfälle seines Bundesvorsitzenden und das Durchbrechen der sog. Brandmauer durch die CDU [10].

Stattdessen hat Bubenzer gleich mehrfach betont, dass es ja neben der menschenverachtenden Haltung, die hinter dem Begriff der Remigration steckt, doch auch wirtschaftlich problematisch sei, wenn die vielen Menschen mit Migrationshintergrund aus Deutschland “remigriert” würden. Um dies zu untermauern, hatte er sich zuvor extra frische “Zahlen” von lokal ansässigen Betrieben eingeholt, um zu erfahren, dass deren Belegschaft aus mehr als 50% und bis zu 70% Menschen mit Migrationshintergrund bestehen würde.

Bei Bubenzers Rede entstand deshalb der Eindruck, als sollte der wirtschaftliche Nutzen von Menschen mit Migrationshintergrund gleichwertig neben der Menschenwürde platziert werden. Wenngleich eine utilitaristische Sicht keine ungewöhnliche in wirtschaftsliberalen Kreisen ist (siehe bspw. Verkürzung der Gymnasialschulzeit zu G8), zeigt sie vor dem Hintergrund des Versammlungsanlasses doch die Sicht und Prioritäten des CDU-Bürgermeisters Bubenzer.

Herr Bubenzer, selbst wenn die von Rechtsextremisten, Faschisten, AfD- und CDU-Mitgliedern diskutierte “Remigration” nur solche Menschen bedrohen würde, die keinerlei wirtschaftlichen Nutzen für Deutschland hätten, handelt es sich bei dem Treffen von Potsdam trotzdem um die niederträchtigste und menschenverachtendste Versammlung von Nazis, die es seit Ende des zweiten Weltkrieges in Deutschland an das Licht der Öffentlichkeit geschafft hat.

Und seien Sie sich gewiss, Herr Bubenzer: Es sind nicht die den massenhaften Deportationen folgenden wirtschaftlichen Konsequenzen, die Millionen von Menschen auf die Straße bringen! 

Quellen

[1] Wie halbiert man die AfD?, FAZ 17.06.2023, https://www.faz.net/aktuell/politik/inland/merz-und-seine-brandmauer-wie-halbiert-man-die-afd-18969309.html

[2] Friedrich Merz wollte die AfD “halbieren” – und verhilft ihr nun zu neuem Aufschwung, Spiegel 26.11.2018, https://www.spiegel.de/politik/deutschland/friedrich-merz-verhilft-afd-zu-aufschwung-die-ergebnisse-der-forsa-umfrage-a-81aa3cef-718e-49ab-b58e-6dc21ecd1242

[3] Merz nennt Migrantenkinder “kleine Paschas”, WDR 11.01.2023, https://www1.wdr.de/nachrichten/merz-nennt-migranten-kinder-kleine-paschas-100.html

[4] Merz: Migranten lassen sich die Zähne machen, ZDF 28.09.2023, https://www.zdf.de/nachrichten/politik/deutschland/merz-gefluechtete-zahnarzt-100.html

[5] Merz will die AfD halbieren, Welt 14.11.2018, https://www.welt.de/politik/deutschland/article183831170/CDU-Friedrich-Merz-will-der-AfD-die-Haelfte-ihrer-Waehler-abjagen.html

[6] Merz’ Kampfansage an die Grünen, Tagesschau 27.06.2023, https://www.tagesschau.de/inland/innenpolitik/merz-gruene-100.html

[7] Verbände kritisieren CDU-Grundsatzprogramm, Tagesschau 12.12.2023, https://www.tagesschau.de/inland/innenpolitik/kritik-cdu-grundsatzprogramm-100.html

[8] “Pure rechte Stimmungsmache”, Die Zeit 30. April 2017, https://www.zeit.de/politik/deutschland/2017–04/thomas-de-maiziere-leitkultur-integration-kritik

[9] Treffen von Rechtsextremisten in Potsdam 2023, Wikipedia abgerufen 2.3.2024, https://de.wikipedia.org/wiki/Treffen_von_Rechtsextremisten_in_Potsdam_2023

[10] “Ganz besonderer politischer Tabubruch”, Tagesschau 15.09.2023, https://www.tagesschau.de/inland/thueringen-cdu-kritik-100.html

[11] Friedrich Merz: CDU soll „Alternative für Deutschland – mit Substanz“ sein, Berliner Zeitung 20.07.2023, https://www.berliner-zeitung.de/news/kritik-an-friedrich-merz-aussage-cdu-soll-alternative-fuer-deutschland-mit-substanz-sein-li.371516

[12] „Ex-Generalsekretär Polenz zu CDU-Plan: Leitkultur ist übergriffig“, taz 30. 1. 2024, https://taz.de/Ex-Generalsekretaer-Polenz-zu-CDU-Plan/!5985669/