Skip to content

TC:BUS Device Component tc_bus_device

This component extends the TC:BUS base component, making it easier to communicate with individual devices on the bus. It lets you identify devices, access their memory, and read or modify their settings - take a look at the supported models and settings.

Configuration

The tc_bus_device component offers the following configuration options:

OptionDescriptionRequiredDefault
idUnique ID for the component.Yes
typeDevice Group of the TC:BUS Device. E.g. Indoor Station, Outdoor Station.Yes
auto_configurationWhen enabled, the component automatically identifies the device using the serial number and reads device memory based on the device model.NoFalse
on_read_memory_completeDefines actions to be triggered when the memory reading is complete. Returns a std::vector<uint8_t> buffer as the x variable.No
on_read_memory_timeoutDefines actions to be triggered when the memory reading times out.No
on_identify_completeDefines actions to be triggered when the identification of the indoor station is complete. Returns a ModelData object as the x variable.No
on_identify_unknownDefines actions to be triggered when the identification of the indoor station completes with unknown model.No
on_identify_timeoutDefines actions to be triggered when the identification of the indoor station times out.No

Automatic Configuration

If you enable the auto_configuration option, the component automatically attempts to identify the device model as soon as the serial number is set. Once the model is successfully identified, the component will automatically read the device memory to retrieve its current configuration and state.

Number Inputs

The tc_bus_device Number Input platform offers the following configuration options:

OptionDescriptionRequiredDefault
tc_bus_device_idID of the related tc_bus_device instance.Yes
serial_numberIndoor Station Serial Number Input to set the serial number of the predefined indoor station.No
volume_handset_door_callDoor Call Handset Volume Number Input to set the handset volume for door calls of your indoor station.No
volume_handset_internal_callInternal Call Handset Volume Number Input to set the handset volume for internal calls of your indoor station.No
volume_ringtoneRingtone Volume Number Input to set the ringtone volume of your indoor station.No

Select Inputs

The tc_bus_device Select platform offers the following configuration options:

OptionDescriptionRequiredDefault
tc_bus_device_idID of the related tc_bus_device instance.Yes
modelModel Select to set the model of your device (used to read and write settings). Take a look at the supported models and settings.NoNone
ringtone_entrance_door_callEntrance Door Call Ringtone Select to set the entrance door call ringtone of your indoor station.No
ringtone_second_entrance_door_callSecond Entrance Door Call Ringtone Select to set the second entrance door call ringtone of your indoor station.No
ringtone_floor_callFloor Call Ringtone Select to set the floor call ringtone of your indoor station.No
ringtone_internal_callInternal Call Ringtone Select to set the internal call ringtone of your indoor station.No

Switches

The tc_bus_device Switch platform offers the following configuration options:

OptionDescriptionRequiredDefault
tc_bus_device_idID of the related tc_bus_device instance.Yes
force_long_door_openerThis enforces execution of the long door opener telegram and mandates inclusion of a serial number in the short door opener telegram.No
ringtone_muteRingtone Mute Switch to mute the ringtone of your indoor station.No

Buttons

The tc_bus_device Button platform offers the following configuration options:

OptionDescriptionRequiredDefault
tc_bus_device_idID of the related tc_bus_device instance.Yes
identify_deviceThis starts the identification process to determine the device model by using it's serial number.No
read_memoryThis reads the device memory if supported into a memory buffer. Take a look at the supported models and settings.No

Binary Sensors

The tc_bus_device Binary Sensor detects binary states such as doorbell presses. It can be configured to trigger based on a predefined telegram.

OptionDescriptionRequiredDefault
idUnique ID for the binary sensor component.Yes
tc_bus_device_idID of the related tc_bus_device instance.Yes
iconIcon to represent the sensor in the UI.Nomdi:doorbell
nameName of the binary sensor.NoDoorbell
auto_offTime period after which the sensor automatically turns off, useful for momentary signals like doorbell presses.No3s
typeTelegram type that will trigger the binary sensor, used alongside address and payload.Yesunknown
address8-bit address that serves as a condition to trigger the binary sensor. If you set it to 255, it will catch all addresses.No0
payload32-bit payload that serves as a condition to trigger the binary sensor.No0

Callbacks

Read Memory Complete on_read_memory_complete

This callback allows you to work with the memory buffer, accessible as the x variable.

yaml
on_read_memory_complete:
  - logger.log: "Completed memory reading!"
  - lambda: |-
      std::string hexString = str_upper_case(format_hex(x));
      ESP_LOGI("tc_bus", "Memory Dump: %s", hexString.c_str());

Read Memory Timeout on_read_memory_timeout

This callback allows you to detect a failed memory reading. Most probably when a model doesn't support the related telegrams.

yaml
on_read_memory_timeout:
  - logger.log: "Failed to read Memory"

Device Identification Complete on_identify_complete

This callback allows you to utilize the ModelData struct, accessible as the x variable.

yaml
on_identify_complete:
  - logger.log: "Completed identification!"
  - lambda: |-
      std::string hexString = str_upper_case(format_hex(x));
      ESP_LOGI("tc_bus", "Memory Dump: %s", hexString.c_str());

Device Identification Complete (Unknown) on_identify_unknown

This callback allows you to detect an unknown model identification of the device. Most probably when a model is too old and doesn't support this process or is not implemented yet.

yaml
on_identify_unknown:
  - logger.log: "Failed to identify device - unknown model!"

Device Identification Timeout on_identify_timeout

This callback allows you to detect a failed identification of the device. Most probably when a model is too old doesn't support this process.

yaml
on_identify_timeout:
  - logger.log: "Failed to identify device!"

Actions

Read Memory tc_bus_device.read_memory

This action allows you to read the memory of any supported device on the bus.

yaml
on_...:
  - tc_bus_device.read_memory:
      id: my_tc_bus_indoor_station_device

Identify devices tc_bus_device.identify

This action allows you to automatically detect the model of a supported device on the bus.

Note

Automatic identification is not available on all devices. At present, only indoor stations are fully supported in the identification process. Nonetheless, unsupported devices may still return identification data. If your device does so, please submit the response data as an issue so it can be included in future updates.

If no identification response is received, the device does not support the identification protocol. This usually applies to older hardware that predates this feature. In such cases, you will need to manually configure the device model.

yaml
on_...:
  - tc_bus_device.identify:
      id: my_tc_bus_indoor_station_device

Update Settings tc_bus_device.update_setting

This action allows you to change the supported settings of any supported device on the bus. Take a look at the supported models and settings.

yaml
on_...:
  - tc_bus_device.update_setting:
      id: my_tc_bus_indoor_station_device
      type: volume_ringtone
      value: 7

Update Doorbell Buttons tc_bus_device.update_doorbell_button

This action allows you to configure the physical doorbell buttons of an outdoor station device.

EXPERIMENTAL

This feature is experimental, use with caution.

Supported actions:

  • none — No action is assigned.
  • door_call — Triggers a door call.
  • light — Controls the light function.
  • control_function — Executes a custom control function.

If no action is specified, the default value is none. If no payload is provided, it remains unset.

For matrix systems, you can use the button_col parameter. For other systems, this parameter is not required.

yaml
on_...:
  - tc_bus_device.update_doorbell_button:
      id: my_tc_bus_outdoor_station_device
      button_row: 1
      primary_action: door_call
      primary_payload: 798906
      secondary_action: control_function
      secondary_payload: 8
yaml
on_...:
  - tc_bus_device.update_doorbell_button:
      id: my_tc_bus_outdoor_station_device
      button_row: 2
      button_col: 4
      primary_action: door_call
      primary_payload: 798906
      secondary_action: control_function
      secondary_payload: 8

Sending Telegrams tc_bus_device.send

You can send device related telegrams on the bus using this action.

yaml
on_...:
  - tc_bus_device.send:
      id: my_tc_bus_indoor_station_device
      type: open_door
      address: 0
      payload: 0

Example YAML Configuration

This is an example configuration for the component in ESPHome:

yaml
external_components:
  - source: github://azoninc/doorman@dev
    components: [ tc_bus, tc_bus_device ]

## RMT configuration
remote_receiver:
  pin:
    number: GPIO9
    mode: INPUT
  filter: 1500us
  idle: 7000us

remote_transmitter:
  pin:
    number: GPIO8
    mode: OUTPUT
  carrier_duty_percent: 100%

# TC:BUS configuration
tc_bus:

# TC:BUS Device configuration
tc_bus_device:
  - id: my_tc_bus_indoor_station_device
    type: indoor_station
    on_read_memory_complete:
      - lambda: |-
          std::string hexString = str_upper_case(format_hex(x));
          ESP_LOGI("tc_bus", "Memory reading completed. Data: %s", hexString.c_str());
    on_read_memory_timeout:
      - logger.log:
          format: "Memory reading timed out! No memory block received in time."
          level: ERROR
    on_identify_complete:
      - logger.log:
          format: "Identified Hardware: %s (v%i) | Firmware: %i.%i.%i"
          args: [ 'model_to_string(x.model)', 'x.hardware_version', 'x.firmware_major', 'x.firmware_minor', 'x.firmware_patch' ]
          level: INFO
    on_identify_unknown:
      - logger.log: "Setup: Unable to identify the Indoor Station, unknown model."
    on_identify_timeout:
      - logger.log:
          format: "Failed to identify the Indoor Station. Please select it manually."
          level: ERROR

number:
  - platform: tc_bus_device
    tc_bus_device_id: my_tc_bus_indoor_station_device
    serial_number:
      name: "Serial Number"
    volume_ringtone:
      name: "Volume: Ringtone"
    volume_handset_door_call:
      name: "Volume: Handset Door Call"
    volume_handset_internal_call:
      name: "Volume: Handset Internal Call"

select:
  - platform: tc_bus_device
    tc_bus_device_id: my_tc_bus_indoor_station_device
    model:
      name: "Model"
    ringtone_entrance_door_call:
      name: "Ringtone: Entrance Door Call"
    ringtone_second_entrance_door_call:
      name: "Ringtone: Second Entrance Door Call"
    ringtone_floor_call:
      name: "Ringtone: Floor Call"
    ringtone_internal_call:
      name: "Ringtone: Internal Call"

switch:
  - platform: tc_bus_device
    tc_bus_device_id: my_tc_bus_indoor_station_device
    force_long_door_opener:
      name: "Enforce long Door Opener Telegram"
    ringtone_mute:
      name: "Ringtone: Mute"

button:
  - platform: tc_bus_device
    tc_bus_device_id: my_tc_bus_indoor_station_device
    identify_device:
      name: "Identify Device"
    read_memory:
      name: "Read Memory"

binary_sensor:
  - platform: tc_bus_device
    tc_bus_device_id: my_tc_bus_indoor_station_device
    id: doorbell_sensor
    name: "Outdoor Station Doorbell (parser)"
    icon: "mdi:doorbell"
    type: door_call

Advanced Configuration

Accessing device settings

If you need to access the supported settings in the memory buffer you can use the get_setting and update_setting methods of the tc_bus_device instance. Take a look at the setting types.

Example (read and write setting):

yaml
button:
  - platform: template
    name: "Read Handset volume via lambda"
    on_press:
      - lambda: |-
          ESP_LOGD("TAG", "Handset volume: %i", id(my_tc_bus_indoor_station_device)->get_setting(SETTING_VOLUME_HANDSET_DOOR_CALL));

  - platform: template
    name: "Set Handset volume via lambda"
    on_press:
      - lambda: |-
          id(my_tc_bus_indoor_station_device)->update_setting(SETTING_VOLUME_HANDSET_DOOR_CALL, 7);

  - platform: template
    name: "Set Handset volume via action"
    on_press:
      - tc_bus_device.update_setting:
          id: my_tc_bus_indoor_station_device
          type: volume_handset_door_call
          value: 7

Accessing outdoor station doorbell button configuration

If you need to access the doorbell button configuration of an outdoor station in the memory buffer you can use the get_doorbell_button and update_doorbell_button methods of the tc_bus_device instance. Take a look at the doorbell button actions.

Example (read and write doorbell button actions):

yaml
button:
  - platform: template
    name: "Read Actions of Doorbell Button 1 via lambda"
    on_press:
      - lambda: |-
          DoorbellButtonAction button = id(my_tc_bus_outdoor_station_device)->get_doorbell_button(1);
          ESP_LOGD("TAG", "Primary Action: %x", button.primary_action);
          ESP_LOGD("TAG", "Primary Payload: %x", button.primary_payload);
          ESP_LOGD("TAG", "Secondary Action: %x", button.secondary_action);
          ESP_LOGD("TAG", "Secondary Payload: %x", button.secondary_payload);

  - platform: template
    name: "Set Doorbell Button 1 via lambda"
    on_press:
      - lambda: |-
          DoorbellButtonAction button;
          button.primary_action = DOORBELL_BUTTON_ACTION_DOOR_CALL;
          button.primary_payload = 123456;

          id(my_tc_bus_outdoor_station_device)->update_doorbell_button(1, button);

  - platform: template
    name: "Set Doorbell Button 1 via action"
    on_press:
      - tc_bus_device.update_doorbell_button:
          id: my_tc_bus_outdoor_station_device
          button_row: 1
          primary_action: door_call
          primary_payload: 123456

  - platform: template
    name: "Set Matrix Button 1;5 via action"
    on_press:
      - tc_bus_device.update_doorbell_button:
          id: my_tc_bus_outdoor_station_device
          button_row: 1
          button_col: 5
          primary_action: door_call
          primary_payload: 123456

  - platform: template
    name: "Reset Doorbell Button 1 via action"
    on_press:
      - tc_bus_device.update_doorbell_button:
          id: my_tc_bus_outdoor_station_device
          button_row: 1

Doorbell Button Data

The DoorbellButtonConfig struct is used internally.

c++
struct DoorbellButtonConfig
 {
    DoorbellButtonAction primary_action = DOORBELL_BUTTON_ACTION_NONE;
    uint32_t primary_payload = DOORBELL_BUTTON_UNASSIGNED;
    DoorbellButtonAction secondary_action = DOORBELL_BUTTON_ACTION_NONE;
    uint32_t secondary_payload = DOORBELL_BUTTON_UNASSIGNED;
};

Model Data

The ModelData struct is used internally in the identification process.

c++
struct ModelData {
    Model model = MODEL_NONE;

    uint32_t firmware_version = 0;
    uint8_t firmware_major = 0;
    uint8_t firmware_minor = 0;
    uint8_t firmware_patch = 0;
    uint8_t hardware_version = 0; 
    
    uint8_t device_group = 0;
    uint8_t memory_size = 0;
    uint32_t capabilities = 0;
};

Doorbell Button Actions

Here are the available doorbell button actions you can use to update the doorbell button configuration of your outdoor station:

  • none DOORBELL_BUTTON_ACTION_NONE
  • light DOORBELL_BUTTON_ACTION_LIGHT
  • door_call DOORBELL_BUTTON_ACTION_DOOR_CALL
  • control_function DOORBELL_BUTTON_ACTION_CONTROL_FUNCTION

Setting Types

Here are the available setting types you can use to update the settings of your bus devices.

Indoor Station

  • ringtone_mute SETTING_RINGTONE_MUTE
  • ringtone_floor_call SETTING_RINGTONE_FLOOR_CALL
  • ringtone_entrance_door_call SETTING_RINGTONE_ENTRANCE_DOOR_CALL
  • ringtone_second_entrance_door_call SETTING_RINGTONE_SECOND_ENTRANCE_DOOR_CALL
  • ringtone_internal_call SETTING_RINGTONE_INTERNAL_CALL
  • volume_ringtone SETTING_VOLUME_RINGTONE
  • volume_handset_door_call SETTING_VOLUME_HANDSET_DOOR_CALL
  • volume_handset_internal_call SETTING_VOLUME_HANDSET_INTERNAL_CALL
  • volume_handset_internal_call SETTING_AS_ADDRESS_DIVIDER
  • volume_handset_internal_call SETTING_VAS_ADDRESS_DIVIDER
  • use_long_door_opener_protocol SETTING_USE_LONG_DOOR_OPENER_PROTOCOL
  • ambient_light SETTING_AMBIENT_LIGHT

Outdoor Station

  • as_address SETTING_AS_ADDRESS
  • as_address_lock SETTING_AS_ADDRESS_LOCK
  • button_rows SETTING_BUTTON_ROWS
  • talking_requires_door_readiness SETTING_TALKING_REQUIRES_DOOR_READINESS
  • door_opener_duration SETTING_DOOR_OPENER_DURATION
  • door_readiness_duration SETTING_DOOR_READINESS_DURATION
  • calling_duration SETTING_CALLING_DURATION
  • has_code_lock SETTING_HAS_CODE_LOCK

Model Setting Availability

In general, all listed models are supported. However, some support configuration directly via Doorman, while others don't.

Indoor Stations

Below is a list of available settings for specific indoor station models:

ModelAvailable settings
TCS ISH1030 / Koch TTS25ringtone_floor_call, ringtone_entrance_door_call, ringtone_internal_call
TCS TTC-XXringtone_floor_call, ringtone_entrance_door_call, ringtone_internal_call
TCS TTS-XXringtone_floor_call, ringtone_entrance_door_call, ringtone_internal_call
TCS ISH3030 / Koch TCH50 / Scantron Lux2ringtone_floor_call, ringtone_entrance_door_call, ringtone_second_entrance_door_call, ringtone_internal_call, volume_ringtone, volume_handset_door_call, as_address_divider
TCS ISH3130 / Koch TCH50P / Scantron LuxPlusringtone_floor_call, ringtone_entrance_door_call, ringtone_second_entrance_door_call, ringtone_internal_call, volume_ringtone, volume_handset_door_call, as_address_divider
TCS ISH3230 / Koch TCH50 GFAringtone_floor_call, ringtone_entrance_door_call, ringtone_second_entrance_door_call, ringtone_internal_call, volume_ringtone, volume_handset_door_call, as_address_divider
TCS ISH3340ringtone_floor_call, ringtone_entrance_door_call, ringtone_internal_call, volume_ringtone, volume_handset_door_call
TCS ISW3030 / Koch TC50 / Scantron Stiluxringtone_floor_call, ringtone_entrance_door_call, ringtone_second_entrance_door_call, ringtone_internal_call, volume_ringtone, volume_handset_door_call, as_address_divider
TCS ISW3230 / Koch TC50 GFAringtone_floor_call, ringtone_entrance_door_call, ringtone_second_entrance_door_call, ringtone_internal_call, volume_ringtone, volume_handset_door_call, as_address_divider
TCS ISW3340ringtone_floor_call, ringtone_entrance_door_call, ringtone_second_entrance_door_call, ringtone_internal_call, volume_ringtone, volume_handset_door_call, as_address_divider
TCS ISW3130 / Koch TC50Pringtone_floor_call, ringtone_entrance_door_call, ringtone_second_entrance_door_call, ringtone_internal_call, volume_ringtone, volume_handset_door_call, as_address_divider
TCS IVH3222 / Koch VTCH50 / Scantron VLuxringtone_floor_call, ringtone_entrance_door_call, ringtone_second_entrance_door_call, ringtone_internal_call, volume_ringtone, volume_handset_door_call
TCS IVH4222 / Koch VTCH50/2Dringtone_floor_call, ringtone_entrance_door_call, ringtone_second_entrance_door_call, ringtone_internal_call, volume_ringtone, volume_handset_door_call
TCS ISW3330 / Koch TC50 BWringtone_floor_call, ringtone_entrance_door_call, ringtone_second_entrance_door_call, ringtone_internal_call, volume_ringtone, volume_handset_door_call, as_address_divider
TCS ISW5010 / Koch TC60ringtone_floor_call, ringtone_entrance_door_call, ringtone_second_entrance_door_call, ringtone_internal_call, volume_ringtone, volume_handset_door_call, volume_handset_internal_call, as_address_divider, use_long_door_opener_protocol, ambient_light
TCS ISW5020ringtone_floor_call, ringtone_entrance_door_call, ringtone_second_entrance_door_call, ringtone_internal_call, volume_ringtone, volume_handset_door_call, volume_handset_internal_call, as_address_divider, use_long_door_opener_protocol, ambient_light
TCS ISW5030ringtone_floor_call, ringtone_entrance_door_call, ringtone_second_entrance_door_call, ringtone_internal_call, volume_ringtone, volume_handset_door_call, volume_handset_internal_call, as_address_divider, use_long_door_opener_protocol, ambient_light
TCS ISW5031ringtone_floor_call, ringtone_entrance_door_call, ringtone_second_entrance_door_call, ringtone_internal_call, volume_ringtone, volume_handset_door_call, volume_handset_internal_call, as_address_divider, use_long_door_opener_protocol, ambient_light
TCS ISW5033ringtone_floor_call, ringtone_entrance_door_call, ringtone_second_entrance_door_call, ringtone_internal_call, volume_ringtone, volume_handset_door_call, volume_handset_internal_call, as_address_divider, use_long_door_opener_protocol, ambient_light
TCS ISW6010ringtone_floor_call, ringtone_entrance_door_call, ringtone_second_entrance_door_call, ringtone_internal_call, volume_ringtone, volume_handset_door_call, volume_handset_internal_call, as_address_divider, use_long_door_opener_protocol, ambient_light
TCS ISW6031ringtone_floor_call, ringtone_entrance_door_call, ringtone_second_entrance_door_call, ringtone_internal_call, volume_ringtone, volume_handset_door_call, volume_handset_internal_call, as_address_divider, use_long_door_opener_protocol, ambient_light
TCS IVW511x / Koch VTC60/2D / Scantron VIVOringtone_floor_call, ringtone_entrance_door_call, ringtone_second_entrance_door_call, ringtone_internal_call, volume_ringtone, volume_handset_door_call, volume_handset_internal_call, as_address_divider, vas_address_divider, use_long_door_opener_protocol, ambient_light
TCS IVW521xringtone_floor_call, ringtone_entrance_door_call, ringtone_second_entrance_door_call, ringtone_internal_call, volume_ringtone, volume_handset_door_call, volume_handset_internal_call, as_address_divider, vas_address_divider, use_long_door_opener_protocol, ambient_light
TCS IVW6511ringtone_floor_call, ringtone_entrance_door_call, ringtone_second_entrance_door_call, ringtone_internal_call, volume_ringtone, volume_handset_door_call, volume_handset_internal_call, as_address_divider, vas_address_divider, use_long_door_opener_protocol, ambient_light
TCS ISW7030 / Koch TC70ringtone_floor_call, ringtone_entrance_door_call, ringtone_second_entrance_door_call, ringtone_internal_call, volume_ringtone, as_address_divider, vas_address_divider
TCS IVW7510 / Koch VTC70ringtone_floor_call, ringtone_entrance_door_call, ringtone_second_entrance_door_call, ringtone_internal_call, volume_ringtone, volume_handset_door_call, volume_handset_internal_call, as_address_divider, vas_address_divider
TCS ISH7030 / Koch TCH70ringtone_floor_call, ringtone_entrance_door_call, ringtone_second_entrance_door_call, ringtone_internal_call, volume_ringtone, as_address_divider, vas_address_divider
TCS IVH7510 / Koch VTCH70ringtone_floor_call, ringtone_entrance_door_call, ringtone_second_entrance_door_call, ringtone_internal_call, volume_ringtone, volume_handset_door_call, volume_handset_internal_call, as_address_divider, vas_address_divider
TCS ISWM7000ringtone_floor_call, ringtone_entrance_door_call, ringtone_second_entrance_door_call, ringtone_internal_call, volume_ringtone, volume_handset_door_call, volume_handset_internal_call, as_address_divider
TCS IVWM7000ringtone_floor_call, ringtone_entrance_door_call, ringtone_second_entrance_door_call, ringtone_internal_call, volume_ringtone, volume_handset_door_call, volume_handset_internal_call, as_address_divider, vas_address_divider
TCS ISW4100 / Koch TC31ringtone_floor_call, ringtone_entrance_door_call, ringtone_second_entrance_door_call, ringtone_internal_call, as_address_divider
TCS IMM2100 / Koch TCE31ringtone_floor_call, ringtone_entrance_door_call, ringtone_second_entrance_door_call, ringtone_internal_call, as_address_divider
TCS IVW2210 / Koch Ecoosringtone_floor_call, ringtone_entrance_door_call, ringtone_second_entrance_door_call, ringtone_internal_call, volume_ringtone, as_address_divider, vas_address_divider
TCS IVW2211 / Koch Ecoosringtone_floor_call, ringtone_entrance_door_call, ringtone_second_entrance_door_call, ringtone_internal_call, volume_ringtone, as_address_divider, vas_address_divider
TCS IVW2212 / Koch Ecoos / Scantron SLIM60Tringtone_floor_call, ringtone_entrance_door_call, ringtone_second_entrance_door_call, ringtone_internal_call, volume_ringtone, as_address_divider, vas_address_divider
TCS VTC42V2ringtone_floor_call, ringtone_entrance_door_call, ringtone_second_entrance_door_call, ringtone_internal_call, volume_ringtone, volume_handset_door_call, as_address_divider, vas_address_divider
TCS TC40V2ringtone_floor_call, ringtone_entrance_door_call, ringtone_second_entrance_door_call, ringtone_internal_call, volume_ringtone, volume_handset_door_call, as_address_divider
TCS VTC40ringtone_floor_call, ringtone_entrance_door_call, ringtone_second_entrance_door_call, ringtone_internal_call, volume_ringtone, volume_handset_door_call, as_address_divider, vas_address_divider
TCS TC40ringtone_floor_call, ringtone_entrance_door_call, ringtone_second_entrance_door_call, ringtone_internal_call, volume_ringtone, volume_handset_door_call, as_address_divider
TCS TC2000ringtone_floor_call, ringtone_entrance_door_call, ringtone_internal_call
TCS TC20Pringtone_floor_call, ringtone_entrance_door_call, ringtone_second_entrance_door_call, ringtone_internal_call
TCS TC20Fringtone_floor_call, ringtone_entrance_door_call, ringtone_second_entrance_door_call, ringtone_internal_call
TCS IMM1000 / Koch TCH30ringtone_floor_call, ringtone_entrance_door_call, ringtone_second_entrance_door_call, ringtone_internal_call, volume_ringtone, volume_handset_door_call, as_address_divider
TCS IMM1100 / Koch TCHE30ringtone_floor_call, ringtone_entrance_door_call, ringtone_second_entrance_door_call, ringtone_internal_call, volume_ringtone, volume_handset_door_call, as_address_divider
TCS IMM1300 / Koch VTCH30ringtone_floor_call, ringtone_entrance_door_call, ringtone_second_entrance_door_call, ringtone_internal_call, volume_ringtone, volume_handset_door_call, as_address_divider
TCS IMM1310 / Koch VTCHE30ringtone_floor_call, ringtone_entrance_door_call, ringtone_second_entrance_door_call, ringtone_internal_call, volume_ringtone, volume_handset_door_call, as_address_divider
TCS IMM1110 / Koch TCHEE30ringtone_floor_call, ringtone_entrance_door_call, ringtone_second_entrance_door_call, ringtone_internal_call, volume_ringtone, volume_handset_door_call, as_address_divider
TCS IMM1500ringtone_floor_call, ringtone_entrance_door_call, ringtone_second_entrance_door_call, ringtone_internal_call, volume_ringtone, volume_handset_door_call, as_address_divider
TCS IVW2220 / Koch Skyringtone_floor_call, ringtone_entrance_door_call, ringtone_second_entrance_door_call, ringtone_internal_call, volume_ringtone, as_address_divider, vas_address_divider
TCS IVW2221 / Koch Sky R1.00ringtone_floor_call, ringtone_entrance_door_call, ringtone_second_entrance_door_call, ringtone_internal_call, volume_ringtone, as_address_divider, vas_address_divider
TCS IVW3011 / Koch Skyline Plusringtone_floor_call, ringtone_entrance_door_call, ringtone_second_entrance_door_call, ringtone_internal_call, volume_ringtone, as_address_divider, vas_address_divider
TCS IVW3012 / Koch Skyline/Aldupringtone_floor_call, ringtone_entrance_door_call, ringtone_second_entrance_door_call, ringtone_internal_call, volume_ringtone, as_address_divider, vas_address_divider
TCS VMH / Koch VMHringtone_floor_call, ringtone_entrance_door_call, ringtone_second_entrance_door_call, ringtone_internal_call, volume_ringtone, volume_handset_door_call, as_address_divider, vas_address_divider
TCS VML / Koch VMLringtone_floor_call, ringtone_entrance_door_call, ringtone_second_entrance_door_call, ringtone_internal_call, volume_ringtone, volume_handset_door_call, as_address_divider, vas_address_divider
TCS VMF / Koch VMFringtone_floor_call, ringtone_entrance_door_call, ringtone_second_entrance_door_call, ringtone_internal_call, volume_ringtone, volume_handset_door_call, as_address_divider, vas_address_divider
Jung TKISringtone_floor_call, ringtone_entrance_door_call, ringtone_second_entrance_door_call, ringtone_internal_call, volume_ringtone, volume_handset_door_call, as_address_divider
Jung TKISVringtone_floor_call, ringtone_entrance_door_call, ringtone_second_entrance_door_call, ringtone_internal_call, volume_ringtone, volume_handset_door_call, as_address_divider, vas_address_divider
TCS CAIXXXX / Koch CAIXXXXringtone_floor_call, ringtone_entrance_door_call, ringtone_second_entrance_door_call, ringtone_internal_call, volume_ringtone, as_address_divider
TCS CAI2000 / Koch Carusringtone_floor_call, ringtone_entrance_door_call, ringtone_second_entrance_door_call, ringtone_internal_call, volume_ringtone, as_address_divider, vas_address_divider
TCS ISW42X0ringtone_floor_call, ringtone_entrance_door_call, ringtone_second_entrance_door_call, ringtone_internal_call, volume_ringtone, as_address_divider
TCS ISH3022None
TCS IVW9010None
TCS IVW9011 / Koch VTP10None
TCS IVW9110None
TCS IVW9030 / Scantron SLIM50TNone
TCS IVE70None

Outdoor Stations

Below is a list of available settings for specific outdoor station models:

ModelAvailable settings
TCS PAKV2as_address, as_address_lock, door_opener_duration, door_readiness_duration, calling_duration, talking_requires_door_readiness, button_rows
TCS PAKV3as_address, as_address_lock, door_opener_duration, door_readiness_duration, calling_duration, talking_requires_door_readiness, button_rows
TCS PUKas_address, as_address_lock, door_opener_duration, door_readiness_duration, calling_duration, talking_requires_door_readiness, button_rows
TCS PUK-DSPas_address, as_address_lock, door_opener_duration, door_readiness_duration, calling_duration, talking_requires_door_readiness, button_rows
TCS PESas_address, as_address_lock, door_opener_duration, door_readiness_duration, calling_duration, talking_requires_door_readiness, button_rows
TCS PDS0Xas_address, as_address_lock, door_opener_duration, door_readiness_duration, calling_duration, talking_requires_door_readiness, button_rows, has_code_lock
TCS PDS0X/04as_address, as_address_lock, door_opener_duration, door_readiness_duration, calling_duration, talking_requires_door_readiness, button_rows, has_code_lock
TCS TCU2as_address, as_address_lock, door_opener_duration, door_readiness_duration, calling_duration, talking_requires_door_readiness
TCS TCU3as_address, as_address_lock, door_opener_duration, door_readiness_duration, calling_duration, talking_requires_door_readiness
TCS TCU4as_address, as_address_lock, door_opener_duration, door_readiness_duration, calling_duration, talking_requires_door_readiness

Controller

Below is a list of available settings for specific controller models:

ModelAvailable settings
TCS BVS20None
TCS BVS30None
TCS VBVS30None
TCS NBV3210None
TCS NBV2600None

Released under the GPL 3.0 License.