Skip to content

Anpassungen

Entdecke verschiedene Beispiele, um die Doorman-Firmware anzupassen und zu erweitern. Vom Hinzufügen benutzerdefinierter Sensoren bis hin zum Anpassen von Automatisierungseinstellungen helfen dir diese Beispiele, das Gerät nach deinen individuellen Bedürfnissen zu gestalten. Folge den Anleitungen um das Beste aus deiner Konfiguration herauszuholen.

Erstelle einen einfachen TC Telegram Binary Sensor

Du kannst problemlos benutzerdefinierte Binärsensoren für jeden TC-Befehl hinzufügen, zusätzlich zu den bereits vorkonfigurierten. Damit kannst du auf jeden anderen Busbefehl hören und darauf reagieren, um die Funktionalität deines Systems zu erweitern.

yaml
# Doorman S3 Firmware
substitutions:
  name: "doorman-s3"
  friendly_name: "Doorman S3"

# Import Doorman Stock Firmware Config
packages:
  AzonInc.Doorman: github://azoninc/doorman/firmware/configurations/esp32-s3.ha.stock.dev.yaml@dev

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

binary_sensor: 
  - platform: tc_bus
    name: "Custom Telegram"
    type: open_door
    address: 0
    web_server: 
      sorting_group_id: sorting_group_listeners
yaml
# Doorman S3 Firmware
substitutions:
  name: "doorman-s3"
  friendly_name: "Doorman S3"

# Import Doorman Stock Firmware Config
packages:
  AzonInc.Doorman: github://azoninc/doorman/firmware/configurations/esp32-s3.ha.stock.dev.yaml@dev

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

binary_sensor: 
  - platform: tc_bus
    name: "Custom Telegram"
    telegram: 0x00001100
    web_server: 
      sorting_group_id: sorting_group_listeners

Steuere die interne RGB-Status-LED

Um die Onboard-RGB-LED mit einem Button (zum Beispiel) zu steuern, kannst du einfach die Licht-Entität mit der internen ID: doorman_rgb_status_led referenzieren.

yaml
# Doorman S3 Firmware
substitutions:
  name: "doorman-s3"
  friendly_name: "Doorman S3"

# Import Doorman Stock Firmware Config
packages:
  AzonInc.Doorman: github://azoninc/doorman/firmware/configurations/esp32-s3.ha.stock.dev.yaml@dev

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

button: 
  - platform: template
    name: "Turn on Status RGB LED to red"
    on_press: 
      - light.turn_on: 
          id: doorman_rgb_status_led
          red: 100%
          green: 0%
          blue: 0%

Verwende den externen Hardware-Button

Wenn du den externen Button verwenden möchtest, um Automatisierungen auszulösen, erweitere den Block on_press und füge deine eigenen Aktionen hinzu.

yaml
# Doorman S3 Firmware
substitutions:
  name: "doorman-s3"
  friendly_name: "Doorman S3"

# Import Doorman Stock Firmware Config
packages:
  AzonInc.Doorman: github://azoninc/doorman/firmware/configurations/esp32-s3.ha.stock.dev.yaml@dev

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

binary_sensor: 
  - id: !extend doorman_external_button
    on_press: 
      - logger.log: "External button pressed!"

Verwende I²C-Sensoren

Falls du Sensoren über den I²C-Bus hinzufügen möchtest, kannst du die beiden verfügbaren GPIO-Pins verwenden und die I²C-Komponente zu deiner Konfiguration hinzufügen. Du kannst dann deine Sensoren an diese beiden I²C-GPIO-Pins anschließen.

yaml
# Doorman S3 Firmware
substitutions:
  name: "doorman-s3"
  friendly_name: "Doorman S3"

# Import Doorman Stock Firmware Config
packages:
  AzonInc.Doorman: github://azoninc/doorman/firmware/configurations/esp32-s3.ha.stock.dev.yaml@dev

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

i2c: 
  sda: GPIO40
  scl: GPIO48
  scan: true
  id: i2c_bus

Erstelle dein eigenes Klingelmuster

Wenn du ein benutzerdefiniertes Klingelmuster erstellen möchtest, kannst du die vorhandenen Klingel-Entities ganz einfach erweitern. Weitere Informationen zu Mustern findest du in der ESPHome-Dokumentation.

yaml
# Doorman S3 Firmware
substitutions:
  name: "doorman-s3"
  friendly_name: "Doorman S3"

# Import Doorman Stock Firmware Config
packages:
  AzonInc.Doorman: github://azoninc/doorman/firmware/configurations/esp32-s3.ha.stock.dev.yaml@dev

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

# Erweitere die Klingelmuster-Event-Entität
# Füge einen neuen speziellen Ereignistyp hinzu
event: 
  - id: !extend apartment_doorbell_pattern
    event_types: 
      - "special"

# Erweitere die Ring-To-Open-Musterbedingungen
# Du musst jede Türmuster-Bedingung erweitern, bei der du das Muster verwenden möchtest
select: 
  - id: !extend rto_apartment_door_pattern_condition
    options: 
      - "special"

# Erweitere die apartment_doorbell / entrance_doorbell-Entity
# und füge dein neues spezielles Muster hinzu
binary_sensor: 
  - id: !extend apartment_doorbell
    on_multi_click: 
      # Spezielles Muster
      - timing: 
          # Drücke zweimal schnell mit höchstens einer halben Sekunde dazwischen.
          - ON for at most 0.3s
          - OFF for at most 0.5s
          - ON for at most 0.3s
          - OFF for 1s to 1.5s
          # Drücke einmal langsam mit höchstens 1,5 Sekunden dazwischen.
          - ON for at most 0.3s
          - OFF for 1s to 1.5s
          # Drücke einmal.
          - ON for at most 0.3s
          - OFF for at least 2s
        then: 
          - logger.log: "Spezielles Muster erkannt!"
          - event.trigger: 
              id: apartment_doorbell_pattern
              # Verwende hier den vorher definierten neuen Ereignistyp
              event_type: special

Licht an, wenn die Eingangsklingel betätigt wird

Du kannst eine Automatisierung einrichten, die das Licht einschaltet, wenn jemand die Eingangsklingel betätigt. Dies ist nützlich, um es leichter zu machen, zu sehen, wer an der Tür ist. Konfiguriere einfach die Automatisierung, um das Licht basierend auf dem Klingelereignis einzuschalten.

yaml
# Doorman S3 Firmware
substitutions:
  name: "doorman-s3"
  friendly_name: "Doorman S3"

# Import Doorman Stock Firmware Config
packages:
  AzonInc.Doorman: github://azoninc/doorman/firmware/configurations/esp32-s3.ha.stock.dev.yaml@dev

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

binary_sensor: 
  - id: !extend entrance_doorbell
    on_press: 
      - tc_bus.send: 
          type: "light"
yaml
# Doorman S3 Firmware
substitutions:
  name: "doorman-s3"
  friendly_name: "Doorman S3"

# Import Doorman Stock Firmware Config
packages:
  AzonInc.Doorman: github://azoninc/doorman/firmware/configurations/esp32-s3.ha.stock.dev.yaml@dev

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

# Importiere den Home Assistant-Sonnenhöhen-Sensor
sensor: 
  - platform: homeassistant
    id: sun_elevation
    entity_id: sun.sun
    attribute: elevation

# Erweitere den Eingangsklingelsensor
binary_sensor: 
  - id: !extend entrance_doorbell
    on_press: # [!!code focus]
      # Sonnenhöhe <= 0 (dunkel)
      - if: 
          condition: 
            sensor.in_range: 
              id: sun_elevation
              below: 1
          then: 
            # Schalte das Licht ein
            - tc_bus.send: 
                type: "light"

Do It Yourself

Möchtest du die Firmware anpassen und nur die Funktionen nutzen, die du wirklich brauchst? Gute Nachrichten!

Die Doorman-Firmware ist modular aufgebaut und in Pakete unterteilt, die du ganz einfach kombinieren kannst.

Brauchen du eine Funktion, zum Beispiel die Einstellungen der Innenstation, nicht? Dann kommentiere sie einfach in deiner Konfiguration aus. Die Reihenfolge der Pakete ist wichtig, da manche aufeinander aufbauen.

Sieh dir das folgende YAML-Beispiel zur Orientierung an:

Beispielkonfiguration
yaml
# Doorman S3 DIY Firmware

# You can change a few options here.
substitutions:
  name: "doorman-s3"
  friendly_name: "Doorman S3"

  log_level: "INFO"
  
  # Required for "External Components"
  branch: "dev"

packages:
  # Device type
  # Either esp32, esp32-s3 or esp32-s3-quad
  host: github://azoninc/doorman/firmware/hosts/esp32-s3.yaml@dev
  # host: github://azoninc/doorman/firmware/hosts/esp32-s3-quad.yaml@dev
  # host: github://azoninc/doorman/firmware/hosts/esp32.yaml@dev

  # External Components (REQUIRED)
  external_components: github://azoninc/doorman/firmware/components/external-components.yaml@dev

  # RGB Status LED (REQUIRED)
  rgb_status_led: github://azoninc/doorman/firmware/components/rgb-status-led.yaml@dev
  rgb_status_led_effects: github://azoninc/doorman/firmware/components/rgb-status-led.effects.yaml@dev

  # Base Doorman Firmware (REQUIRED)
  base: github://azoninc/doorman/firmware/base.yaml@dev

  # Improv BLE
  # Incompatible with Nuki Bridge
  bluedroid_ble: github://azoninc/doorman/firmware/components/bluedroid-ble.yaml@dev

  # OTA via Webserver & Device Builder
  ota_update: github://azoninc/doorman/firmware/components/ota-update.esphome.yaml@dev

  # Smart Home Integration
  # Either homeassistant, mqtt, homekit or custom
  # Use custom, if you just want to use it via wifi (http requests)
  api: github://azoninc/doorman/firmware/components/api.homeassistant.yaml@dev
  # api: github://azoninc/doorman/firmware/components/api.mqtt.yaml@dev
  # api: github://azoninc/doorman/firmware/components/api.homekit.yaml@dev
  # api: github://azoninc/doorman/firmware/components/api.custom.yaml@dev
  
  # TC:BUS debug tools
  debug_utilities: github://azoninc/doorman/firmware/components/debug-utilities.yaml@dev

  # ESPHome debug sensors
  debug_component: github://azoninc/doorman/firmware/components/debug-component.yaml@dev
  debug_component_psram: github://azoninc/doorman/firmware/components/debug-component.psram.yaml@dev

  # Pattern events
  pattern_events: github://azoninc/doorman/firmware/components/pattern-events.yaml@dev

  # Ring To Open automation
  ring_to_open: github://azoninc/doorman/firmware/components/ring-to-open.yaml@dev

  # TC:BUS Device Settings (Indoor Station)
  # Ringtones, Volume
  indoor_station_settings: github://azoninc/doorman/firmware/components/indoor-station-settings.yaml@dev

  # Nuki Bridge
  # Incompatible with Improv BLE (bluedroid-ble)
  # addon_nuki_bridge: !include github://azoninc/doorman/firmware/components/nuki-bridge.yaml@dev

  # Interactive Setup Mode
  interactive_setup: github://azoninc/doorman/firmware/components/interactive-setup.yaml@dev

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

Veröffentlicht unter der GPL 3.0 Lizenz.