Doorman HomeKit System
System of a doorbell and smart lock integration into Apple HomeKit. The project platform is ESP8266 - WeMos D1 Mini. Target door phone system is Fermax.
The SW part of the project is based on https://github.com/maximkulkin/esp-homekit-demo and https://github.com/pfalcon/esp-open-sdk.
Fermax phone interconnection
Fermax phone signals:
- RingDet - ringing detector
- 3 - common (- on PCB)
- 4 - call (+ on PCB)
- Lock - door lock control
- 1 - door opener and microphone supply (+ on PCB)
- 3 - common (+ on PCB)
Initial configuration
The initial configuration could be modified in the file config.h.
HomeKit Access Parameters
- HOMEKIT_PASSWORD - "111-00-111"
- HOMEKIT_SETUP_ID - "1QJ9"
System Parameters
- The GPIO pin that is connected to a relay - WeMos D1 Mini - Pin D1
- The GPIO pin that is connected to a LED - WeMos D1 Mini - Pin D4 (Internal Blue LED)
- The GPIO pin that is connected to a button - WeMos D1 Mini - Pin D3
- Button for door open or factory reset
- The GPIO pin that is connected to a door bell - WeMos D1 Mini - Pin D2
- Door bell detection - iOS notify as moving
- Timeout in seconds to open lock for - 5 seconds
- Button timeout for log press - 10000 ms (factory reset)
- Shorter press = open the door
- Doorbell notify timeout - 3000 ms
- After this timeout system disarm the door bell notification
PCB Design
PCB is designed for using in DIN rail box Z103J ABS V0 KRADEX with AC/DC power supply MEAN WELL DR-15-5. The system can be powered only by 5V DC!!!
![Doorman v 1.1 - schematics](https://github.com/zokl/homekit-doorman/raw/master/hw/kicad_1v1/pictures/Doorman_1v1_schematics.png)
![Doorman v 1.1 - PCB](https://github.com/zokl/homekit-doorman/raw/master/hw/kicad_1v1/pictures/Doorman_1v1_pcb.png)
![Doorman v 1.1 - PCB render #1](https://github.com/zokl/homekit-doorman/raw/master/hw/kicad_1v1/pictures/Doorman_1v1_full.png)
![Doorman v 1.1 - PCB render #1](https://github.com/zokl/homekit-doorman/raw/master/hw/kicad_1v1/pictures/Doorman_1v1_full_module.png)
Compilation and deployment
All binary files are in bin
directory.
Flash process
esptool.py write_flash -fs 1MB -fm dout -ff 40m 0x0 rboot.bin 0x1000 blank_config.bin 0x2000 doorman.bin