This repository contains the source files for the Doorman S3 Intercom Gateway, a device which lets you connect your TCS or Koch intercom to any home automation system.\ There are also some rebranded Niko intercoms which are counterparts of the TCS and Koch ones.
However it's not limited to these intercoms only. With the integrated relay you can easily simulate a button press to trigger the door opener or the light (up to 40V, max 2.5A).
If your intercom is not a TCS or Koch one but operates on a 2-wire bus within the 14-24V range it might be possible to implement other protocols as well.
You could also monitor the voltage level on older intercoms (14-24V) by replacing the tcs_intercom component with a template Binary Sensor combined with ADC and trigger specific actions based on it.
Thanks a lot to PCBWay for sponsoring this Project. Scroll down to "Manufacturing" to read more.
Please also take a look at the Getting started section for first-use instructions.
Feel free to contact me on Discord, GitHub Issues or by E-Mail.
I offer you a fully assembled and tested Doorman-S3 which comes with ESPHome pre-installed for direct integration and adoption into Home Assistant.
I'm happy to answer your questions on Discord or GitHub Issues.
At the root of the repository you will find these directories:
pcb
: KiCad schematic and PCB design filesfirmware
: ESPHome configuration filesenclosure
: Enclosure STL FilesThe ESPHome Doorman Stock Firmware implements the following:
Furthermore you could implement the following:
If your TCS or Koch Intercom got a, b and P labeled Screw Terminals and is operating on 24V DC it's likely compatible.
You can use Doorman S3 with your prefered Firmware.\ There are a few Options:
ESPHome - Doorman Stock\ This is the prefered Firmware as it works out of the Box with the Doorman S3 Firmware Configuration Files.
ESPHome - Doorman Nuki-Bridge\ This Configuration inherits everything from the Stock Firmware and adds a Nuki Bridge Component via BLE on top.
Doorman by peteh\ You need to adjust a few things (GPIO, Board Type, Flash Size) to make it work with Doorman S3.
If your Intercom is connected in 2-wire mode and you dont have a separate 24V P-Line you need to use an external Power Supply via USB-C or P (+5V to +30V) and B (Ground) Screw Terminal.\ If it is connected in 3-wire mode you should be able to use the P-Line to power your Doorman in most cases.
[!NOTE] On some installations the a and b wires are twisted but it doesn't matter because Doorman has an integrated bridge rectifier to handles that for you.
[!WARNING] The minimum output current of the intercom power supply must be 60mA in order to achieve a stable operation!\ However it is possible that some other devices using the 24V-wire are taking too much current so it's not sufficient to power Doorman anymore.\ A best case scenario would be that you can use the P-wire with 60mA. That doesn't work for everyone tho.
Please power your Doorman with an external Power Supply (USB-C or Screw Terminal) if your intercoms power supply provides less than 60mA or whenever you notice an unstable operation.
[!CAUTION] DO NOT USE THE +24V P-LINE AND USB-C AT THE SAME TIME
When you power on your Doorman-S3 for the first time it opens an Access Point called "Doorman-S3 Setup". The AP Password is "open-sesame". You can setup your WiFi credentials there or also via Improv Serial + Improv Bluetooth.
Thanks to mDNS Support Homeassistant will find your Doorman out of the box. After adding your Doorman to Homeassistant you need to enable the Last Bus Command Sensor to capture the Bus commands of your intercom.
When you obtained all neccessary commands you can adopt the device in your ESPHome Dashboard and flash the stock.example.yaml
firmware with adjusted command values.
After flashing the example you should have the following entities (if you enable all of them):
That's basically everything you need to do. Happy automating!
Every received Command Code is logged in the ESPHome Console (Debug Log-Level) and also published as an Home Assistant Event. Besides that there is a "Last Bus Command" Text Sensor (disabled by default) which shows the last Bus Command. If you use the command in your yaml config file you need to prepend 0x in order to interpret is as a hexadecimal number.
Doorman-S3 needs some GPIO for a specific purpose and offers free GPIO for your sensors.
GPIO | Purpose |
---|---|
GPIO01 | Red Status LED |
GPIO02 | WS2812B RGB Status LED |
GPIO08 | TCS Bus TX - Shorts the Bus to Ground |
GPIO09 | TCS Bus RX - Reading Bus Data / ADC input (onboard Voltage Divider - 1M+160K) |
GPIO40 | Free I/O |
GPIO41 | External Button (10K onboard resistor) |
GPIO42 | Relay for analog door opener |
GPIO48 | Free I/O |
I didnt know which PCB manufacturer is good but fortunately PCBWay reached out to me and offered to sponsor PCB fabrication.\ Well... I'm more than satisified with the quality, especially the nice colors. Everything looks clean and part sourcing was an ease. They also sent me two more unpopulated PCBs extra. I soldered the ESP Modules using a heating plate myself because I still had ESP32 Modules at home.
It was really easy to get in touch with them and whenever there rised a question they didn't hesitate to ask. A special thanks goes to Liam and Lynne for supporting me throughout the entire process. Even tho I made a lot of changes they were always very patient with me. It was a pleasure working with you guys.
If you need a good quality one stop manufacturer I can definitely recommend PCBWay :)
You can find all the neccessary files here.
In case you want an enclosure you can print your own one.\ Just use the STL files provided here and you'll be good to go.\
Please DO NOT use the +24V P-Line if the Power Supply is not powerful enough.\ It is possible that the intercoms power supply can not provide enough power because other devices are taking too much current.\ In that case you need to use an external power supply via USB-C or Screw Terminals (P and one of TCS:BUS).
If you would like to contribute, please feel free to open a Pull Request.
Doorman is heavily built on the code and the information of the following projects and people.\ This project would not have been possible without all of them. ❤️
TCSIntercomArduino\ Different Methods to read from and write to the TCS Bus.\ Feel free to watch the Reverse Engineering Video if you're interested.
tcs-monitor\ An mqtt monitor for listening to the TCS Bus.\ You can find more information in this Blog Post.
Doorman\ A lot of this Doorman project is based on peteh's one.\ The main goal is to provide a proper PCB for his Doorman Project.
ESPHome_nuki_lock\ This module builds an ESPHome lock platform for Nuki Smartlock (nuki_lock).
AStrehlau\ Thanks a lot for your time, patience, knowledge and every single valuable advice that made this Project better, smaller and more affordable.