A complete Node Red Web Control to monitor & control multiple rfid-door hardware devices
This is a complete Node-Red flow to manage multiple marelab RFID-DOOR or ESP-RFID opensource hard/software Door access controls over a Node-Red based home automatisation system. When you follow the tutrial here and configure the needed settings, you get a Web GUI with the following functionality. The hole communication is done over MQTT. The GUI can be also accessed over cell phone / tablett. Atm the focus was but to get it feature complete and not fancy as hell. Its also possible to setup a selfmade board just using the ESP8266 for it use the schematic to see how
- A ready to use marelab RFID-DOOR board or a pcb can be ordered here at the marlab.org webside.
- The openhardware schematic & gerbers files and KiCad Project can be found at marelab RFID-DOOR
- More detailed Instuctions to that flow can be found on the GitHub Project pages rfid-door-node-red The flow uses several additional Nodes that have to get installed to!
Features:
- Central managment & administration GUI to manage device, users access
- Central event and access store to visualize what happen when and on which device
- Remote opening Door over GUI or voice with Google home or Alexa
- New Devices are added automatic after they sync over MQTT
- The List starts with the device name as link to the device Gui
- The IP Adress of the device
- Del | Door open | Sync Users to device | Sync Users form device | Delete Device Button
This list stores all users of all devices found by the rfid-door sync. If you press the bottom at the RFID Devices Tab "Sync Users form device" the rfid device sends all user data over MQTT to this List (Database). This list is a central DB based archive of all users from the devices. You can edit the User here for example rename or delete a user, but keep in mind until it is synced to the device this list is only persitent at the Database. To sync all devices with that list use the Sync Button at the end of the list. All Users get overwritten at the device, so the RFID device local stored list reflects the central stored DB List.
If you add new users to the system you got two ways. The one used over the Web Gui of the RFID device or over this tab. It woorks like that:
- A unknown RFID chip is recognized by the reader
- This RIFID information is send oover MQTT to this list to be further added too the system by the Administrator
- You select the unknown RFID in that list
- Add a name and the group for it
- It will be stored in the central DB list and should show up under GUI to manage Users
- Then you just need to sync the User List to the devices
after that the new User can open the door.
If you enable logging over MQTT at the rfid devices this list gets filled like the list you can see at the local rfid devices. But keep in mind enabling MQTT logging disables local device logging. Its implemented like that to reduce the RFID device write cycles and to have a central logging space. Also in the central log you get the Door Name where the access or event happend.
You can scroll the list by << >> Buttons, per page 10 entrys are shown the sort order is last entry at top first at the end.
This instruction is based on a Node-Red Installation for Rasberry PI but should also work on any Linux based system.
You need the following tools to get the flow running:
- marelab rfid-door firmware
- MySQL Database (stores devices, user & logs)
- webserver and phpmyadmin
- MQTT Server
To use this workflow you must enable & configure MQTT on every rfid device that should be managed by this flow. If you want the central logging functionality you need to enable it to on the rfid-device see the screenshot as exmaple:
The installation is very easy just download it and import it over the node-red functionality like shown here.
After the flow is installed you need to configure some items of the flow. That can't be done automatic. Follow these steps to get it to work correct:
- Import the database shema / tables into mysql use the SQL esp-door-install-DB.sql for that
- enter the DB IP adress & user/password in one of the DB nodes all other will then use that info automatic
- enter the MQTT Server IP adress user/password in the MQTT nodes