Zry.IO

Back

Background

In my current apartment building, the intercom and entry system are installed outside my living room door, it’s a bit difficult to hear the doorbell when the door is closed. As a result, I frequently miss deliveries. To solve this, I decided to integrate the system to my Home Assistant setup. Another benefit is that I no longer need to take my keys with me when I go out.

overview

After removing the case, the sticker on the PCB indicates the model number is “auta 700105 [Archive]”.

inside

Hardware

According to the technical manual [Archive] found on the manufacturer’s website, the four wires that came from outside the apartment to terminal CON1 are, from left to right: GND (black), +24 VDC power (brown), microphone (blue), and speaker & data (gray). CON2 connects the handset with an RJ11 connector.

wiring

I took out the PCB and started to reverse engineer the circuit.

pcb-front

pcb-back

The ICs:

  • U1 is a “78L05A” voltage regulator, which provides +5 V to other components

  • U2 is a “PIC16F870-I/SO” MCU, which implements the main functions

  • U3 is a “ULN2003A” Darlington transistor array, which lets the MCU to drive peripheral circuits

    • Channel 1: input is the MCU’s PIN27 RB6, output is the handset speaker amplifier circuit
    • Channel 2: input is the MCU’s PIN26 RB5, output is the relay RY1
    • Channel 3-7: input is the MCU’s PIN25 RB4, output is the “Auxiliary bell (24 Vdc output, in call)” terminals of CON1
  • U4 is a “LM393” voltage comparator

    • Comparator 1 is not used
    • Noninverting input 2: +12 V
    • Inverting input 2: the “Speaker and Data” terminals of CON1
    • Output 2: PIN23 of the MCU
  • U5 is a “PC357NJ0000F” optocoupler, input is the “Ding-Dong function (tension free button)” terminals of CON1, which pulls down the MCU’s PIN22 RB1 when they are shorted

MCU pin functions

  • 1 MCLR: reset
  • 2 RA0: input of the bell melody select button PB1 (low level trigger)
  • 3 RA1: output of the red LED
  • 4 RA2: output of the green LED
  • 5 RA3: input of the building door unlock button (low level trigger)
  • 6 RA4: input of the AUX1 button (low level trigger)
  • 7 RA5: output of unlock signal?
  • 8 Vss: GND
  • 9 OSC1, 10 OSC2: inputs of the crystal oscillator X1
  • 11 RC0 - 14 RC3: inputs of the 5-8 positions of the DIP switch SW1 (low level trigger)
  • 15 RC4 - 18 RC7: inputs of the 1-4 positions of the DIP switch SW1 (low level trigger)
  • 19 Vss: GND
  • 20 Vdd: +5 V power input
  • 21 RB0: input of the main / secondary selection jumper J1 (low level as secondary)
  • 22 RB1: input of the “Ding-Dong function (tension free button)” through optocoupler U5’s collector pin (low level trigger)
  • 23 RB2: input of the doorbell signal?
  • 24 RB3: output of the unlock signal?
  • 25 RB4: output of the “Auxiliary bell”, through the driver IC U3’s channels 3-7 (high level trigger)
  • 26 RB5: output of the relay, through the driver IC U3’s channel 2 (low level trigger)
  • 27 RB6: output of the doorbell sound to the handset speaker, through the driver IC’s channel 1
  • 28 RB7: input of the switchhook for handset (low level while hanging)

We can see that PIN5 RA3 can be used to unlock the building door, and PIN27 RB6 can be used to detect if the doorbell is ringing.

The circuit is as follows, since the PIC MCU uses 5 V TTL but the ESP8266 uses 3.3 V, they need a logic level shifter to talk to each other:

schematic

Installation

As shown below, GND (green), MCU PIN5 (white) and PIN27 (blue) are tapped from several contacts that are easy to solder (please ignore the purple cable as the +5 V from the intercom phone board SHOULD NOT be used since there is a very-limited 400 mA fuse at the power input):

hack-wiring

Since I already have an ESPHome device (Whole Home Energy Monitoring) lying nearby, I just modified and reused it (please ignore the 4-pin DuPont cable which is for the PZEM energy monitor):

hack-board

Connected to the intercom phone with an old USB cable:

hack-connected

Software

ESPHome configuration example:

After flashing the firmware, it can be added to Home Assistant:

hass

Then I created an Automation in Home Assistant to push a Notification to my phone when the intercom doorbell is ringing (the following YAMLs are for demonstration purposes only, they should be created using the UI):

And another Automation for handling the unlock button callback event from the Notification:

alias: 'Unlock Building Door by Notification Callback'
trigger:
  - platform: event
    event_type: mobile_app_notification_action
    event_data:
      action: UNLOCK_BUILDING_DOOR
condition: []
action:
  - device_id: # use UI to create
    domain: button
    entity_id: button.unlock_building_door
    type: press
mode: restart
yaml
Auta Building Intercom and Entry System
https://zry.io/smart-home/auta-building-intercom-and-entry-system
Author zry98
Published at July 1, 2022
Copyright CC BY-NC-SA 4.0
2 comments
Alex

Hi, I have a similar project that I'm trying to implement but it differs from yours a bit. I have the board "auta 050136" and wanted to detect just the ringing so I'm looking at reading 1.2v from the led diode to my ESP8266MOD, the challenge is that that 1.2v is too small to detect and also I wanted to take 5v from the intercom board to power up my ESP if this possible.

zry98
@Alex :

Hi, can you confirm it's the same as in the manuals of Auta 700305 or 700505? If so, it seems they are using individual wire for each function, maybe you can simple tap your ESP into the corresponding wires (with voltage divider of course); if not, you can try adding a suitable transistor, or simply use the ADC pin (be careful and use a voltage divider if necessary) on your ESP and trigger on voltage threshold.

Also I would suggest you not to power your ESP with the +5V from the intercom board, as they usually come with a low-rated fuse, just enough to power the board itself. The ESP8266 (with some peripherals) can peak to around 1W.