@stevemann Here my code:
substitutions:
device_name: bentel-control
friendly_name: "Bentel Control"
device_platform: ESP32
device_board: esp32dev
device_ip: x.x.x.x
packages:
wifi: !include common/device_wifi_1.yaml
device_base: !include common/device_base_ESP32.yaml
home_assistant_api: !include common/device_api.yaml
sensor_wifi_ip_address: !include common/sensor_wifi_ip_address.yaml
esphome:
includes:
- ./src/bentel_kyo32.h
# Enable logging
logger:
level: DEBUG
baud_rate: 0
uart:
id: uart_bus
tx_pin: GPIO1
rx_pin: GPIO3
baud_rate: 9600
data_bits: 8
parity: EVEN
switch:
- platform: safe_mode
name: "ESPKyoGate (Safe Mode)"
binary_sensor:
- platform: custom
lambda: |-
auto kyo32 = new Bentel_Kyo32(id(uart_bus));
App.register_component(kyo32);
return {
kyo32->kyo_comunication,
kyo32->status_siren,
kyo32->warn_missing_network,
kyo32->warn_lost_bpi,
kyo32->warn_fuse,
kyo32->warn_battery_low,
kyo32->warn_fault_line_phone,
kyo32->warn_code_default,
kyo32->warn_wireless,
kyo32->sabotage_zone,
kyo32->sabotage_system,
kyo32->sabotage_bpi,
kyo32->sabotage_key_false,
kyo32->sabotage_jam,
kyo32->sabotage_wireless,
&kyo32->zone[0],
&kyo32->zone[1],
&kyo32->zone[2],
&kyo32->zone[3],
&kyo32->zone[4],
&kyo32->zone[5],
&kyo32->zone[6],
&kyo32->zone[7],
&kyo32->zone[8],
&kyo32->zone[9],
&kyo32->zone[10],
&kyo32->zone[11],
&kyo32->zone[12],
&kyo32->zone[13],
&kyo32->zone[14],
&kyo32->zone[15],
&kyo32->zone[16],
&kyo32->zone[17],
&kyo32->zone[18],
&kyo32->zone_sabotage[0],
&kyo32->zone_sabotage[1],
&kyo32->zone_sabotage[2],
&kyo32->zone_sabotage[3],
&kyo32->zone_sabotage[4],
&kyo32->zone_sabotage[5],
&kyo32->zone_sabotage[6],
&kyo32->zone_sabotage[7],
&kyo32->zone_sabotage[8],
&kyo32->zone_sabotage[9],
&kyo32->zone_sabotage[10],
&kyo32->zone_sabotage[11],
&kyo32->zone_sabotage[12],
&kyo32->zone_sabotage[13],
&kyo32->zone_sabotage[14],
&kyo32->zone_sabotage[15],
&kyo32->zone_sabotage[16],
&kyo32->zone_sabotage[17],
&kyo32->zone_sabotage[18],
&kyo32->zone_exclude[0],
&kyo32->zone_exclude[1],
&kyo32->zone_exclude[2],
&kyo32->zone_exclude[3],
&kyo32->zone_exclude[4],
&kyo32->zone_exclude[5],
&kyo32->zone_exclude[6],
&kyo32->zone_exclude[7],
&kyo32->zone_exclude[8],
&kyo32->zone_exclude[9],
&kyo32->zone_exclude[10],
&kyo32->zone_exclude[11],
&kyo32->zone_exclude[12],
&kyo32->zone_exclude[13],
&kyo32->zone_exclude[14],
&kyo32->zone_exclude[15],
&kyo32->zone_exclude[16],
&kyo32->zone_exclude[17],
&kyo32->zone_exclude[18],
&kyo32->memory_alarm_zone[0],
&kyo32->memory_alarm_zone[1],
&kyo32->memory_alarm_zone[2],
&kyo32->memory_alarm_zone[3],
&kyo32->memory_alarm_zone[4],
&kyo32->memory_alarm_zone[5],
&kyo32->memory_alarm_zone[6],
&kyo32->memory_alarm_zone[7],
&kyo32->memory_alarm_zone[8],
&kyo32->memory_alarm_zone[9],
&kyo32->memory_alarm_zone[10],
&kyo32->memory_alarm_zone[11],
&kyo32->memory_alarm_zone[12],
&kyo32->memory_alarm_zone[13],
&kyo32->memory_alarm_zone[14],
&kyo32->memory_alarm_zone[15],
&kyo32->memory_alarm_zone[16],
&kyo32->memory_alarm_zone[17],
&kyo32->memory_alarm_zone[18],
&kyo32->memory_sabotage_zone[0],
&kyo32->memory_sabotage_zone[1],
&kyo32->memory_sabotage_zone[2],
&kyo32->memory_sabotage_zone[3],
&kyo32->memory_sabotage_zone[4],
&kyo32->memory_sabotage_zone[5],
&kyo32->memory_sabotage_zone[6],
&kyo32->memory_sabotage_zone[7],
&kyo32->memory_sabotage_zone[8],
&kyo32->memory_sabotage_zone[9],
&kyo32->memory_sabotage_zone[10],
&kyo32->memory_sabotage_zone[11],
&kyo32->memory_sabotage_zone[12],
&kyo32->memory_sabotage_zone[13],
&kyo32->memory_sabotage_zone[14],
&kyo32->memory_sabotage_zone[15],
&kyo32->memory_sabotage_zone[16],
&kyo32->memory_sabotage_zone[17],
&kyo32->memory_sabotage_zone[18],
&kyo32->alarm_area[0],
&kyo32->alarm_area[1],
&kyo32->alarm_area[2],
&kyo32->alarm_area[3],
&kyo32->alarm_area[4],
&kyo32->alarm_area[5],
&kyo32->alarm_area[6],
&kyo32->alarm_area[7],
&kyo32->insert_full_area[0],
&kyo32->insert_full_area[1],
&kyo32->insert_full_area[2],
&kyo32->insert_full_area[3],
&kyo32->insert_full_area[4],
&kyo32->insert_full_area[5],
&kyo32->insert_full_area[6],
&kyo32->insert_full_area[7],
&kyo32->insert_partial_area[0],
&kyo32->insert_partial_area[1],
&kyo32->insert_partial_area[2],
&kyo32->insert_partial_area[3],
&kyo32->insert_partial_area[4],
&kyo32->insert_partial_area[5],
&kyo32->insert_partial_area[6],
&kyo32->insert_partial_area[7],
&kyo32->insert_partial_delay_0_area[0],
&kyo32->insert_partial_delay_0_area[1],
&kyo32->insert_partial_delay_0_area[2],
&kyo32->insert_partial_delay_0_area[3],
&kyo32->insert_partial_delay_0_area[4],
&kyo32->insert_partial_delay_0_area[5],
&kyo32->insert_partial_delay_0_area[6],
&kyo32->insert_partial_delay_0_area[7],
&kyo32->disarm_area[0],
&kyo32->disarm_area[1],
&kyo32->disarm_area[2],
&kyo32->disarm_area[3],
&kyo32->disarm_area[4],
&kyo32->disarm_area[5],
&kyo32->disarm_area[6],
&kyo32->disarm_area[7],
&kyo32->status_exit[0],
&kyo32->status_exit[1],
&kyo32->status_exit[2],
&kyo32->status_exit[3],
&kyo32->status_exit[4],
&kyo32->status_exit[5],
&kyo32->status_exit[6],
&kyo32->status_exit[7]
};
binary_sensors:
- id: kyo_comunication
name: "Bentel Comunication"
- id: status_siren
name: "Bentel status siren"
- id: warn_missing_network
name: "Bentel missing network"
- id: warn_lost_bpi
name: "Bentel lost BPI"
- id: warn_fuse
name: "Bentel fuse"
- id: warn_battery_low
name: "Bentel battery low"
- id: warn_fault_line_phone
name: "Bentel fault line phone"
- id: warn_code_default
name: "Bentel code Default"
- id: warn_wireless
name: "Bentel Wireless"
- id: sabotage_zone
name: "Bentel sabotage zone"
- id: sabotage_system
name: "Bentel sabotage system"
- id: sabotage_bpi
name: "Bentel sabotage BPI"
- id: sabotage_key_false
name: "Bentel sabotage key false"
- id: sabotage_jam
name: "Bentel sabotage Jam"
- id: sabotage_wireless
name: "Bentel sabotage wireless"
- id: zone_1
name: "Bentel zone 1"
- id: zone_2
name: "Bentel zone 2"
- id: zone_3
name: "Bentel zone 3"
- id: zone_4
name: "Bentel zone 4"
- id: zone_5
name: "Bentel zone 5"
- id: zone_6
name: "Bentel zone 6"
- id: zone_7
name: "Bentel zone 7"
- id: zone_8
name: "Bentel zone 8"
- id: zone_9
name: "Bentel zone 9"
- id: zone_10
name: "Bentel zone 10"
- id: zone_11
name: "Bentel zone 11"
- id: zone_12
name: "Bentel zone 12"
- id: zone_13
name: "Bentel zone 13"
- id: zone_14
name: "Bentel zone 14"
- id: zone_15
name: "Bentel zone 15"
- id: zone_16
name: "Bentel zone 16"
- id: zone_17
name: "Bentel zone 17"
- id: zone_18
name: "Bentel zone 18"
- id: zone_19
name: "Bentel zone 19"
# - id: zone_20
# name: "Bentel zone 20"
# - id: zone_21
# name: "Bentel zone 21"
# - id: zone_22
# name: "Bentel zone 22"
# - id: zone_23
# name: "Bentel zone 23"
# - id: zone_24
# name: "Bentel zone 24"
# - id: zone_25
# name: "Bentel zone 25"
# - id: zone_26
# name: "Bentel zone 26"
# - id: zone_27
# name: "Bentel zone 27"
# - id: zone_28
# name: "Bentel zone 28"
# - id: zone_29
# name: "Bentel zone 29"
# - id: zone_30
# name: "Bentel zone 30"
# - id: zone_31
# name: "Bentel zone 31"
# - id: zone_32
# name: "Bentel zone 32"
- id: zone_sabotage_1
name: "Bentel sabotage zone 1"
- id: zone_sabotage_2
name: "Bentel sabotage zone 2"
- id: zone_sabotage_3
name: "Bentel sabotage zone 3"
- id: zone_sabotage_4
name: "Bentel sabotage zone 4"
- id: zone_sabotage_5
name: "Bentel sabotage zone 5"
- id: zone_sabotage_6
name: "Bentel sabotage zone 6"
- id: zone_sabotage_7
name: "Bentel sabotage zone 7"
- id: zone_sabotage_8
name: "Bentel sabotage zone 8"
- id: zone_sabotage_9
name: "Bentel sabotage zone 9"
- id: zone_sabotage_10
name: "Bentel sabotage zone 10"
- id: zone_sabotage_11
name: "Bentel sabotage zone 11"
- id: zone_sabotage_12
name: "Bentel sabotage zone 12"
- id: zone_sabotage_13
name: "Bentel sabotage zone 13"
- id: zone_sabotage_14
name: "Bentel sabotage zone 14"
- id: zone_sabotage_15
name: "Bentel sabotage zone 15"
- id: zone_sabotage_16
name: "Bentel sabotage zone 16"
- id: zone_sabotage_17
name: "Bentel sabotage zone 17"
- id: zone_sabotage_18
name: "Bentel sabotage zone 18"
- id: zone_sabotage_19
name: "Bentel sabotage zone 19"
# - id: zone_sabotage_20
# name: "Bentel sabotage zone 20"
# - id: zone_sabotage_21
# name: "Bentel sabotage zone 21"
# - id: zone_sabotage_22
# name: "Bentel sabotage zone 22"
# - id: zone_sabotage_23
# name: "Bentel sabotage zone 23"
# - id: zone_sabotage_24
# name: "Bentel sabotage zone 24"
# - id: zone_sabotage_25
# name: "Bentel sabotage zone 25"
# - id: zone_sabotage_26
# name: "Bentel sabotage zone 26"
# - id: zone_sabotage_27
# name: "Bentel sabotage zone 27"
# - id: zone_sabotage_28
# name: "Bentel sabotage zone 28"
# - id: zone_sabotage_29
# name: "Bentel sabotage zone 29"
# - id: zone_sabotage_30
# name: "Bentel sabotage zone 30"
# - id: zone_sabotage_31
# name: "Bentel sabotage zone 31"
# - id: zone_sabotage_32
# name: "Bentel sabotage zone 32"
- id: zone_exclude_1
name: "Bentel exclude zone 1"
- id: zone_exclude_2
name: "Bentel exclude zone 2"
- id: zone_exclude_3
name: "Bentel exclude zone 3"
- id: zone_exclude_4
name: "Bentel exclude zone 4"
- id: zone_exclude_5
name: "Bentel exclude zone 5"
- id: zone_exclude_6
name: "Bentel exclude zone 6"
- id: zone_exclude_7
name: "Bentel exclude zone 7"
- id: zone_exclude_8
name: "Bentel exclude zone 8"
- id: zone_exclude_9
name: "Bentel exclude zone 9"
- id: zone_exclude_10
name: "Bentel exclude zone 10"
- id: zone_exclude_11
name: "Bentel exclude zone 11"
- id: zone_exclude_12
name: "Bentel exclude zone 12"
- id: zone_exclude_13
name: "Bentel exclude zone 13"
- id: zone_exclude_14
name: "Bentel exclude zone 14"
- id: zone_exclude_15
name: "Bentel exclude zone 15"
- id: zone_exclude_16
name: "Bentel exclude zone 16"
- id: zone_exclude_17
name: "Bentel exclude zone 17"
- id: zone_exclude_18
name: "Bentel exclude zone 18"
- id: zone_exclude_19
name: "Bentel exclude zone 19"
# - id: zone_exclude_20
# name: "Bentel exclude zone 20"
# - id: zone_exclude_21
# name: "Bentel exclude zone 21"
# - id: zone_exclude_22
# name: "Bentel exclude zone 22"
# - id: zone_exclude_23
# name: "Bentel exclude zone 23"
# - id: zone_exclude_24
# name: "Bentel exclude zone 24"
# - id: zone_exclude_25
# name: "Bentel exclude zone 25"
# - id: zone_exclude_26
# name: "Bentel exclude zone 26"
# - id: zone_exclude_27
# name: "Bentel exclude zone 27"
# - id: zone_exclude_28
# name: "Bentel exclude zone 28"
# - id: zone_exclude_29
# name: "Bentel exclude zone 29"
# - id: zone_exclude_30
# name: "Bentel exclude zone 30"
# - id: zone_exclude_31
# name: "Bentel exclude zone 31"
# - id: zone_exclude_32
# name: "Bentel exclude zone 32"
- id: memory_alarm_zone_1
name: "Bentel memory alarm zone 1"
- id: memory_alarm_zone_2
name: "Bentel memory alarm zone 2"
- id: memory_alarm_zone_3
name: "Bentel memory alarm zone 3"
- id: memory_alarm_zone_4
name: "Bentel memory alarm zone 4"
- id: memory_alarm_zone_5
name: "Bentel memory alarm zone 5"
- id: memory_alarm_zone_6
name: "Bentel memory alarm zone 6"
- id: memory_alarm_zone_7
name: "Bentel memory alarm zone 7"
- id: memory_alarm_zone_8
name: "Bentel memory alarm zone 8"
- id: memory_alarm_zone_9
name: "Bentel memory alarm zone 9"
- id: memory_alarm_zone_10
name: "Bentel memory alarm zone 10"
- id: memory_alarm_zone_11
name: "Bentel memory alarm zone 11"
- id: memory_alarm_zone_12
name: "Bentel memory alarm zone 12"
- id: memory_alarm_zone_13
name: "Bentel memory alarm zone 13"
- id: memory_alarm_zone_14
name: "Bentel memory alarm zone 14"
- id: memory_alarm_zone_15
name: "Bentel memory alarm zone 15"
- id: memory_alarm_zone_16
name: "Bentel memory alarm zone 16"
- id: memory_alarm_zone_17
name: "Bentel memory alarm zone 17"
- id: memory_alarm_zone_18
name: "Bentel memory alarm zone 18"
- id: memory_alarm_zone_19
name: "Bentel memory alarm zone 19"
# - id: memory_alarm_zone_20
# name: "Bentel memory alarm zone 20"
# - id: memory_alarm_zone_21
# name: "Bentel memory alarm zone 21"
# - id: memory_alarm_zone_22
# name: "Bentel memory alarm zone 22"
# - id: memory_alarm_zone_23
# name: "Bentel memory alarm zone 23"
# - id: memory_alarm_zone_24
# name: "Bentel memory alarm zone 24"
# - id: memory_alarm_zone_25
# name: "Bentel memory alarm zone 25"
# - id: memory_alarm_zone_26
# name: "Bentel memory alarm zone 26"
# - id: memory_alarm_zone_27
# name: "Bentel memory alarm zone 27"
# - id: memory_alarm_zone_28
# name: "Bentel memory alarm zone 28"
# - id: memory_alarm_zone_29
# name: "Bentel memory alarm zone 29"
# - id: memory_alarm_zone_30
# name: "Bentel memory alarm zone 30"
# - id: memory_alarm_zone_31
# name: "Bentel memory alarm zone 31"
# - id: memory_alarm_zone_32
# name: "Bentel memory alarm zone 32"
- id: memory_sabotage_zone_1
name: "Bentel memory sabotage zone 1"
- id: memory_sabotage_zone_2
name: "Bentel memory sabotage zone 2"
- id: memory_sabotage_zone_3
name: "Bentel memory sabotage zone 3"
- id: memory_sabotage_zone_4
name: "Bentel memory sabotage zone 4"
- id: memory_sabotage_zone_5
name: "Bentel memory sabotage zone 5"
- id: memory_sabotage_zone_6
name: "Bentel memory sabotage zone 6"
- id: memory_sabotage_zone_7
name: "Bentel memory sabotage zone 7"
- id: memory_sabotage_zone_8
name: "Bentel memory sabotage zone 8"
- id: memory_sabotage_zone_9
name: "Bentel memory sabotage zone 9"
- id: memory_sabotage_zone_10
name: "Bentel memory sabotage zone 10"
- id: memory_sabotage_zone_11
name: "Bentel memory sabotage zone 11"
- id: memory_sabotage_zone_12
name: "Bentel memory sabotage zone 12"
- id: memory_sabotage_zone_13
name: "Bentel memory sabotage zone 13"
- id: memory_sabotage_zone_14
name: "Bentel memory sabotage zone 14"
- id: memory_sabotage_zone_15
name: "Bentel memory sabotage zone 15"
- id: memory_sabotage_zone_16
name: "Bentel memory sabotage zone 16"
- id: memory_sabotage_zone_17
name: "Bentel memory sabotage zone 17"
- id: memory_sabotage_zone_18
name: "Bentel memory sabotage zone 18"
- id: memory_sabotage_zone_19
name: "Bentel memory sabotage zone 19"
# - id: memory_sabotage_zone_20
# name: "Bentel memory sabotage zone 20"
# - id: memory_sabotage_zone_21
# name: "Bentel memory sabotage zone 21"
# - id: memory_sabotage_zone_22
# name: "Bentel memory sabotage zone 22"
# - id: memory_sabotage_zone_23
# name: "Bentel memory sabotage zone 23"
# - id: memory_sabotage_zone_24
# name: "Bentel memory sabotage zone 24"
# - id: memory_sabotage_zone_25
# name: "Bentel memory sabotage zone 25"
# - id: memory_sabotage_zone_26
# name: "Bentel memory sabotage zone 26"
# - id: memory_sabotage_zone_27
# name: "Bentel memory sabotage zone 27"
# - id: memory_sabotage_zone_28
# name: "Bentel memory sabotage zone 28"
# - id: memory_sabotage_zone_29
# name: "Bentel memory sabotage zone 29"
# - id: memory_sabotage_zone_30
# name: "Bentel memory sabotage zone 30"
# - id: memory_sabotage_zone_31
# name: "Bentel memory sabotage zone 31"
# - id: memory_sabotage_zone_32
# name: "Bentel memory sabotage zone 32"
- id: alarm_area_1
name: "Bentel alarm area 1"
- id: alarm_area_2
name: "Bentel alarm area 2"
- id: alarm_area_3
name: "Bentel alarm area 3"
- id: alarm_area_4
name: "Bentel alarm area 4"
- id: alarm_area_5
name: "Bentel alarm area 5"
- id: alarm_area_6
name: "Bentel alarm area 6"
- id: alarm_area_7
name: "Bentel alarm area 7"
- id: alarm_area_8
name: "Bentel alarm area 8"
- id: insert_full_area_1
name: "Bentel insert full Area 1"
- id: insert_full_area_2
name: "Bentel insert full Area 2"
- id: insert_full_area_3
name: "Bentel insert full Area 3"
- id: insert_full_area_4
name: "Bentel insert full Area 4"
- id: insert_full_area_5
name: "Bentel insert full Area 5"
- id: insert_full_area_6
name: "Bentel insert full Area 6"
- id: insert_full_area_7
name: "Bentel insert full Area 7"
- id: insert_full_area_8
name: "Bentel insert full Area 8"
- id: insert_partial_area_1
name: "Bentel insert partial Area 1"
- id: insert_partial_area_2
name: "Bentel insert partial Area 2"
- id: insert_partial_area_3
name: "Bentel insert partial Area 3"
- id: insert_partial_area_4
name: "Bentel insert partial Area 4"
- id: insert_partial_area_5
name: "Bentel insert partial Area 5"
- id: insert_partial_area_6
name: "Bentel insert partial Area 6"
- id: insert_partial_area_7
name: "Bentel insert partial Area 7"
- id: insert_partial_area_8
name: "Bentel insert partial Area 8"
- id: insert_partial_delay_0_area_1
name: "Bentel insert partial delay 0 Area 1"
- id: insert_partial_delay_0_area_2
name: "Bentel insert partial delay 0 Area 2"
- id: insert_partial_delay_0_area_3
name: "Bentel insert partial delay 0 Area 3"
- id: insert_partial_delay_0_area_4
name: "Bentel insert partial delay 0 Area 4"
- id: insert_partial_delay_0_area_5
name: "Bentel insert partial delay 0 Area 5"
- id: insert_partial_delay_0_area_6
name: "Bentel insert partial delay 0 Area 6"
- id: insert_partial_delay_0_area_7
name: "Bentel insert partial delay 0 Area 7"
- id: insert_partial_delay_0_area_8
name: "Bentel insert partial delay 0 Area 8"
- id: disarm_area_1
name: "Bentel disarm Area 1"
- id: disarm_area_2
name: "Bentel disarm Area 2"
- id: disarm_area_3
name: "Bentel disarm Area 3"
- id: disarm_area_4
name: "Bentel disarm Area 4"
- id: disarm_area_5
name: "Bentel disarm Area 5"
- id: disarm_area_6
name: "Bentel disarm Area 6"
- id: disarm_area_7
name: "Bentel disarm Area 7"
- id: disarm_area_8
name: "Bentel disarm Area 8"
- id: status_exit_1
name: "Bentel status exit 1"
- id: status_exit_2
name: "Bentel status exit 2"
- id: status_exit_3
name: "Bentel status exit 3"
- id: status_exit_4
name: "Bentel status exit 4"
- id: status_exit_5
name: "Bentel status exit 5"
- id: status_exit_6
name: "Bentel status exit 6"
- id: status_exit_7
name: "Bentel status exit 7"
- id: status_exit_8
name: "Bentel status exit 8"