Hacking my door phone connect it with Z-Wave

Background

The intercom/buzzer/doorphone in my flat is a Siedle HTS 711-01, and i wanted to be able to press the the button remotely, to trigger the lock downstairs in my building.

The ringer also makes a deeply horrible sound when some rings my bell, the next part for this project is to sense the ring singlas when this happens, and play an actually pleasant sound instead. Being able to automate and schedule when it is on/off based on the rest of the state of my flat will also be nice. But i started with the easy part, triggering the door unlocking.

Adding a relay to trigger the buzzer

Since the buzzer for the house door is triggred by a simple switch, all we need is a relay that we can control remotely. I personally mainly use Z-Wave (with Z-Wave JS) devices, controlled with Home Assistant.

I used used a Fibaro FGBS-222 implant that i had on hand, which is (among other things) a relay.

wires soldered to the contacts for the buzzer button

This is a really simple switch, it just closes a circuit which triggers the buzzer. I soldered wires to each end of the open side of the circuit that the button closess, and use one of the relay contacts on the FGBS-222 to close it.

Home Assistant templating

Configuration for Home Assistant can be found at infra:roles/hass/files/packages/doorbell.yaml:

---

script:
  momentary_switch:
    icon: mdi:button-pointer
    mode: parallel
    sequence:
      - service: switch.toggle
        target:
          entity_id: "{{ target_switch }}"
      - delay:
          milliseconds: "{{ press_for_ms | int }}"
      - service: switch.toggle
        target:
          entity_id: "{{ target_switch }}"
    fields:
      target_switch:
        description: >-
          entity_id of the switch to toggle like a button (a list of
          entity_id's also works)
        example: switch.smart_implant_out1
      press_for_ms:
        description: how long to press the button, in milliseconds
        default: 200

template:
  - binary_sensor:
      - name: doorbell_buzzer
        state: >-
          {{ is_state("switch.doorbell_buzzer", "on") }}
        icon: >-
          {% if is_state("switch.doorbell_buzzer", "on") %}
          mdi:electric-switch-closed
          {% else %}
          mdi:electric-switch
          {% endif %}

  - button:
      name: doorbell_buzzer
      icon: >-
        {% if is_state("switch.doorbell_buzzer", "on") %}
        mdi:electric-switch-closed
        {% else %}
        mdi:electric-switch
        {% endif %}
      press:
        - service: script.momentary_switch
          data:
            target_switch: switch.doorbell_buzzer
            press_for_ms: 200

This assumes that the switch entity on the FGBS-222 module is named switch.doorbell_buzzer, and creates a button.doorbell_buzzer entity that triggers the relay.

Files

Filename
Systemhandbuch_1+n-Technik_2019_210009634-00_DE.pdfDatasheet and wiring diagrams

CHANGELOG

DateComment
2023-03-08Connected the buzzer to Fibaro FGBS-222 and HA
2023-09-08Added example YAML config for HA