Adding an ESP8266 to the defiant door lock to automatically enter the code to unlock the door. Also adding RS485 to connect to my house RS485 network since it is more reliable than WiFi.
The first thing i had to do was understand how the keypad communicated with the opener. There are 3 wires that go over to the keypad, 3.3V, Data, GND. I attached a scope expecting to see some sort of standard (SPI, I2c, etc.), but what i found was the keypad just sends a series of 50uS pulses depending on what key is pressed. 0 = 1 pulse, 1 = 2 pulses .... 9 = 10 pulses, and lock = 11 pulses. The signal is open drain, so it makes it very easy to piggy back with the keypad so that both still work.
Here is where it went wrong, I used the 3.3V to power the ESP8266, but soon ran into a batery draining issue. I added in some sleep time so the battery would not drain so quickly, but since i want the door to open when i get home, it has to wake up frequently and the batteries would only last a few days. To fix this, i ran power through the hinges of my door and into a 5V power supply in my attic, This worked for a while, but the large power draw from the ESP8266 was too much for the door lock's internal regulator.
To fix this issue, my latest design includes its own regulator, Since i have to run power through the door anyway, i am also going to run RS485 to connect to my homes RS485 network for better reliability. More to come when i get the time to connect up the latest design.
I have included the arduino sketch for this first attempt if anyone wants to try and improve the power consumption problem. The power issue could likely be fixed with just a big capacitor.