esphome/tests/test4.yaml
NP v/d Spek 5393a09872
Touchscreen component and driver fixes (#5997)
* Introduce calibration settings for all touchscreen drivers.
this will override the common values.
The x,y coordinates only calculated when the right calibrations are set.

* resolve issues reported by CI

* remove unneeded spaces and newlines

* Forgot to remove some obsolete code

* remove get_setup_priority from xpt2046

* remove media_player changes.

* media_player: removed to much,

* Update suggestions

* referd back the `get_setup_priority` removal so it can be moved into a othe PR.

* tt21100: restore init read

* fix spacing

* load native display dimensions instead of using internal dimensons.
and load it only onse on setup

* moved `update_touches()` to protexted section

* adding Clydes PR#6049

* add multitouch test script

* Update all Touchscreen replacing `get_*_internal` to `get_native_*`

* fixed some CI recomendations

* couple of fixes

* make sure the display is running before  touchscreen is setup

* fix clang

* revert back last changes

* xpt2046: change log level for testing

* logging information

* add test file

* fix polling issue with the for example the xpt2046

* fixed some CI issues

* fixed some CI issues

* restore mirror parameter discriptions

* same for the swap_xy

* same for the transform

* remove the above const from const.py

* and put  the above const bacl const.py

* Merge branch 'nvds-touchscreen-fix1' of https://github.com/nielsnl68/esphome into nvds-touchscreen-fix1

* and put  the above const bacl const.py

* [tt21100] making interupt pin optional

* [tt21100] making interupt pin optional (now complete)

* update the display part based on @clyde'
s changes.

* fix issue with ft6x36 touvhscreen

* reverd back touch check. add comment

* add some extra checks to the ft6x36

* add an other log and a typo fixed

* okay an other fix.

* add an extra check like others do
and fix data type

* [ft6336] fix update race when ts is touched.

* [touchscreen] update some log's with a verbose level.

* fix clang issues

* fix the clang issues

* fix the clang issues

* fix virtual issue.

* fix the clang issues

* an other clang issues

* remove anti-aliased fonts support. It does not belong here.

* remove anti-aliased fonts support. It does not belong here.

* rename test script

* Moving the test files to there right location.

* rename the test files

* clean up the code

* add a new line

* clang fixings

* clang fixings

* remove comment

* remove comment

* Update esphome/components/touchscreen/__init__.py

Co-authored-by: guillempages <guillempages@users.noreply.github.com>

* Update esphome/components/touchscreen/__init__.py

Co-authored-by: guillempages <guillempages@users.noreply.github.com>

* Update esphome/components/touchscreen/__init__.py

Co-authored-by: guillempages <guillempages@users.noreply.github.com>

* Update esphome/components/touchscreen/touchscreen.cpp

* Update esphome/components/touchscreen/touchscreen.cpp

* [ft63x6] add threshold

---------

Co-authored-by: Clyde Stubbs <2366188+clydebarrow@users.noreply.github.com>
Co-authored-by: guillempages <guillempages@users.noreply.github.com>
2024-02-28 02:42:11 +00:00

1121 lines
26 KiB
YAML

---
esphome:
name: $devicename
platform: ESP32
board: nodemcu-32s
build_path: build/test4
substitutions:
devicename: test-4
ethernet:
type: LAN8720
mdc_pin:
allow_other_uses: true
number: GPIO23
mdio_pin:
allow_other_uses: true
number: GPIO25
clk_mode: GPIO0_IN
phy_addr: 0
power_pin:
allow_other_uses: true
number: GPIO25
manual_ip:
static_ip: 192.168.178.56
gateway: 192.168.178.1
subnet: 255.255.255.0
domain: .local
network:
enable_ipv6: true
mqtt:
broker: test.mosquitto.org
port: 1883
discovery: true
discovery_prefix: homeassistant
topic_prefix:
api:
i2c:
sda:
allow_other_uses: true
number: 21
scl:
allow_other_uses: true
number: 22
scan: false
spi:
- id: spi_id_1
clk_pin:
allow_other_uses: true
number: GPIO21
mosi_pin:
allow_other_uses: true
number: GPIO22
miso_pin:
allow_other_uses: true
number: GPIO23
interface: hardware
- id: spi_id_2
clk_pin:
number: GPIO32
mosi_pin:
number: GPIO33
interface: hardware
uart:
- id: uart115200
tx_pin:
allow_other_uses: true
number: GPIO22
rx_pin:
allow_other_uses: true
number: GPIO23
baud_rate: 115200
- id: uart9600
tx_pin:
allow_other_uses: true
number: GPIO25
rx_pin:
allow_other_uses: true
number: GPIO26
baud_rate: 9600
- id: uart_a02yyuw
tx_pin:
allow_other_uses: true
number: GPIO22
rx_pin:
allow_other_uses: true
number: GPIO23
baud_rate: 9600
- id: uart_he60r
tx_pin:
number: GPIO18
allow_other_uses: true
rx_pin:
number: GPIO36
allow_other_uses: true
baud_rate: 1200
parity: EVEN
ota:
safe_mode: true
port: 3286
logger:
level: DEBUG
debug:
web_server:
ota: false
auth:
username: admin
password: admin
include_internal: true
time:
- platform: sntp
id: sntp_time
tuya:
time_id: sntp_time
uart_id: uart115200
status_pin:
number: GPIO5
inverted: true
allow_other_uses: true
select:
- platform: tuya
id: tuya_select
enum_datapoint: 42
options:
0: Internal
1: Floor
2: Both
pipsolar:
id: inverter0
uart_id: uart115200
pylontech:
- id: pylontech0
uart_id: uart115200
- id: pylontech1
uart_id: uart115200
sx1509:
- id: sx1509_hub
address: 0x3E
mcp3204:
spi_id: spi_id_1
cs_pin:
allow_other_uses: true
number: GPIO23
dac7678:
address: 0x4A
id: dac7678_hub1
internal_reference: true
sensor:
- platform: pylontech
pylontech_id: pylontech0
battery: 1
voltage:
id: pyl01_voltage
current:
id: pyl01_current
coulomb:
id: pyl01_soc
mos_temperature:
id: pyl01_mos_temperature
- platform: pylontech
pylontech_id: pylontech1
battery: 1
voltage:
id: pyl13_voltage
temperature_low:
id: pyl13_temperature_low
temperature_high:
id: pyl13_temperature_high
voltage_low:
id: pyl13_voltage_low
voltage_high:
id: pyl13_voltage_high
- platform: homeassistant
entity_id: sensor.hello_world
id: ha_hello_world
- platform: tuya
id: tuya_sensor
sensor_datapoint: 1
- platform: pipsolar
pipsolar_id: inverter0
grid_rating_voltage:
id: inverter0_grid_rating_voltage
name: inverter0_grid_rating_voltage
grid_rating_current:
id: inverter0_grid_rating_current
name: inverter0_grid_rating_current
ac_output_rating_voltage:
id: inverter0_ac_output_rating_voltage
name: inverter0_ac_output_rating_voltage
ac_output_rating_frequency:
id: inverter0_ac_output_rating_frequency
name: inverter0_ac_output_rating_frequency
ac_output_rating_current:
id: inverter0_ac_output_rating_current
name: inverter0_ac_output_rating_current
ac_output_rating_apparent_power:
id: inverter0_ac_output_rating_apparent_power
name: inverter0_ac_output_rating_apparent_power
ac_output_rating_active_power:
id: inverter0_ac_output_rating_active_power
name: inverter0_ac_output_rating_active_power
battery_rating_voltage:
id: inverter0_battery_rating_voltage
name: inverter0_battery_rating_voltage
battery_recharge_voltage:
id: inverter0_battery_recharge_voltage
name: inverter0_battery_recharge_voltage
battery_under_voltage:
id: inverter0_battery_under_voltage
name: inverter0_battery_under_voltage
battery_bulk_voltage:
id: inverter0_battery_bulk_voltage
name: inverter0_battery_bulk_voltage
battery_float_voltage:
id: inverter0_battery_float_voltage
name: inverter0_battery_float_voltage
battery_type:
id: inverter0_battery_type
name: inverter0_battery_type
current_max_ac_charging_current:
id: inverter0_current_max_ac_charging_current
name: inverter0_current_max_ac_charging_current
current_max_charging_current:
id: inverter0_current_max_charging_current
name: inverter0_current_max_charging_current
input_voltage_range:
id: inverter0_input_voltage_range
name: inverter0_input_voltage_range
output_source_priority:
id: inverter0_output_source_priority
name: inverter0_output_source_priority
charger_source_priority:
id: inverter0_charger_source_priority
name: inverter0_charger_source_priority
parallel_max_num:
id: inverter0_parallel_max_num
name: inverter0_parallel_max_num
machine_type:
id: inverter0_machine_type
name: inverter0_machine_type
topology:
id: inverter0_topology
name: inverter0_topology
output_mode:
id: inverter0_output_mode
name: inverter0_output_mode
battery_redischarge_voltage:
id: inverter0_battery_redischarge_voltage
name: inverter0_battery_redischarge_voltage
pv_ok_condition_for_parallel:
id: inverter0_pv_ok_condition_for_parallel
name: inverter0_pv_ok_condition_for_parallel
pv_power_balance:
id: inverter0_pv_power_balance
name: inverter0_pv_power_balance
grid_voltage:
id: inverter0_grid_voltage
name: inverter0_grid_voltage
grid_frequency:
id: inverter0_grid_frequency
name: inverter0_grid_frequency
ac_output_voltage:
id: inverter0_ac_output_voltage
name: inverter0_ac_output_voltage
ac_output_frequency:
id: inverter0_ac_output_frequency
name: inverter0_ac_output_frequency
ac_output_apparent_power:
id: inverter0_ac_output_apparent_power
name: inverter0_ac_output_apparent_power
ac_output_active_power:
id: inverter0_ac_output_active_power
name: inverter0_ac_output_active_power
output_load_percent:
id: inverter0_output_load_percent
name: inverter0_output_load_percent
bus_voltage:
id: inverter0_bus_voltage
name: inverter0_bus_voltage
battery_voltage:
id: inverter0_battery_voltage
name: inverter0_battery_voltage
battery_charging_current:
id: inverter0_battery_charging_current
name: inverter0_battery_charging_current
battery_capacity_percent:
id: inverter0_battery_capacity_percent
name: inverter0_battery_capacity_percent
inverter_heat_sink_temperature:
id: inverter0_inverter_heat_sink_temperature
name: inverter0_inverter_heat_sink_temperature
pv_input_current_for_battery:
id: inverter0_pv_input_current_for_battery
name: inverter0_pv_input_current_for_battery
pv_input_voltage:
id: inverter0_pv_input_voltage
name: inverter0_pv_input_voltage
battery_voltage_scc:
id: inverter0_battery_voltage_scc
name: inverter0_battery_voltage_scc
battery_discharge_current:
id: inverter0_battery_discharge_current
name: inverter0_battery_discharge_current
battery_voltage_offset_for_fans_on:
id: inverter0_battery_voltage_offset_for_fans_on
name: inverter0_battery_voltage_offset_for_fans_on
eeprom_version:
id: inverter0_eeprom_version
name: inverter0_eeprom_version
pv_charging_power:
id: inverter0_pv_charging_power
name: inverter0_pv_charging_power
- platform: hrxl_maxsonar_wr
name: Rainwater Tank Level
uart_id: uart115200
filters:
- sliding_window_moving_average:
window_size: 12
send_every: 12
- or:
- throttle: 20min
- delta: 0.02
- platform: mcp3204
name: MCP3204 Pin 1
number: 1
id: mcp_sensor
- platform: copy
source_id: mcp_sensor
name: MCP binary sensor copy
- platform: ufire_ec
id: ufire_ec_board
temperature:
name: Ufire Temperature
ec:
name: Ufire EC
temperature_compensation: 20.0
temperature_coefficient: 0.019
- platform: ufire_ise
id: ufire_ise_board
temperature:
name: Ufire Temperature
ph:
name: Ufire pH
- platform: a01nyub
id: a01nyub_sensor
name: "a01nyub Distance"
uart_id: uart9600
state_topic: "esphome/sensor/a01nyub_sensor/state"
- platform: a02yyuw
id: a02yyuw_sensor
name: "a02yyuw Distance"
uart_id: uart_a02yyuw
state_topic: "esphome/sensor/a02yyuw_sensor/state"
#
# platform sensor.apds9960 requires component apds9960
#
# - platform: apds9960
# type: proximity
# name: APDS9960 Proximity
# - platform: apds9960
# type: clear
# name: APDS9960 Clear
# - platform: apds9960
# type: red
# name: APDS9960 Red
# - platform: apds9960
# type: green
# name: APDS9960 Green
# - platform: apds9960
# type: blue
# name: APDS9960 Blue
binary_sensor:
- platform: tuya
id: tuya_binary_sensor
sensor_datapoint: 1
- platform: pipsolar
pipsolar_id: inverter0
add_sbu_priority_version:
id: inverter0_add_sbu_priority_version
name: inverter0_add_sbu_priority_version
configuration_status:
id: inverter0_configuration_status
name: inverter0_configuration_status
scc_firmware_version:
id: inverter0_scc_firmware_version
name: inverter0_scc_firmware_version
load_status:
id: inverter0_load_status
name: inverter0_load_status
battery_voltage_to_steady_while_charging:
id: inverter0_battery_voltage_to_steady_while_charging
name: inverter0_battery_voltage_to_steady_while_charging
charging_status:
id: inverter0_charging_status
name: inverter0_charging_status
scc_charging_status:
id: inverter0_scc_charging_status
name: inverter0_scc_charging_status
ac_charging_status:
id: inverter0_ac_charging_status
name: inverter0_ac_charging_status
charging_to_floating_mode:
id: inverter0_charging_to_floating_mode
name: inverter0_charging_to_floating_mode
switch_on:
id: inverter0_switch_on
name: inverter0_switch_on
dustproof_installed:
id: inverter0_dustproof_installed
name: inverter0_dustproof_installed
silence_buzzer_open_buzzer:
id: inverter0_silence_buzzer_open_buzzer
name: inverter0_silence_buzzer_open_buzzer
overload_bypass_function:
id: inverter0_overload_bypass_function
name: inverter0_overload_bypass_function
lcd_escape_to_default:
id: inverter0_lcd_escape_to_default
name: inverter0_lcd_escape_to_default
overload_restart_function:
id: inverter0_overload_restart_function
name: inverter0_overload_restart_function
over_temperature_restart_function:
id: inverter0_over_temperature_restart_function
name: inverter0_over_temperature_restart_function
backlight_on:
id: inverter0_backlight_on
name: inverter0_backlight_on
- platform: template
id: ar1
lambda: "return {};"
filters:
- autorepeat:
- delay: 2s
time_off: 100ms
time_on: 900ms
- delay: 4s
time_off: 100ms
time_on: 400ms
on_state:
then:
- lambda: 'ESP_LOGI("ar1:", "%d", x);'
- platform: touchscreen
touchscreen_id: xpt_touchscreen
id: touch_key0
x_min: 80
x_max: 160
y_min: 106
y_max: 212
on_press:
- logger.log: Touched
- platform: gpio
name: GPIO SX1509 test
pin:
sx1509: sx1509_hub
number: 3
- platform: touchscreen
touchscreen_id: lilygo_touchscreen
id: touch_key1
x_min: 0
x_max: 100
y_min: 0
y_max: 100
on_press:
- logger.log: Touched
- platform: gt911
id: touch_key_911
index: 0
- platform: gpio
name: MaxIn Pin 4
pin:
max6956: max6956_1
number: 4
mode:
input: true
pullup: true
inverted: false
- platform: gpio
name: XL9535 Pin 0
pin:
xl9535: xl9535_hub
number: 0
mode:
input: true
inverted: false
- platform: gpio
name: XL9535 Pin 17
pin:
xl9535: xl9535_hub
number: 17
mode:
input: true
inverted: false
climate:
- platform: tuya
id: tuya_climate
switch_datapoint: 1
target_temperature_datapoint: 3
current_temperature_multiplier: 0.5
target_temperature_multiplier: 0.5
reports_fahrenheit: true
switch:
- platform: tuya
id: tuya_switch
switch_datapoint: 1
- platform: pipsolar
pipsolar_id: inverter0
output_source_priority_utility:
name: inverter0_output_source_priority_utility
output_source_priority_solar:
name: inverter0_output_source_priority_solar
output_source_priority_battery:
name: inverter0_output_source_priority_battery
input_voltage_range:
name: inverter0_input_voltage_range
pv_ok_condition_for_parallel:
name: inverter0_pv_ok_condition_for_parallel
pv_power_balance:
name: inverter0_pv_power_balance
- platform: copy
source_id: tuya_switch
name: Tuya Switch Copy
light:
- platform: fastled_clockless
id: led_matrix_32x8
name: led_matrix_32x8
chipset: WS2812B
pin:
allow_other_uses: true
number: GPIO15
num_leds: 256
rgb_order: GRB
default_transition_length: 0s
color_correct: [50%, 50%, 50%]
- platform: tuya
id: tuya_light
switch_datapoint: 1
dimmer_datapoint: 2
min_value_datapoint: 3
color_temperature_datapoint: 4
min_value: 1
max_value: 100
cold_white_color_temperature: 153 mireds
warm_white_color_temperature: 500 mireds
gamma_correct: 1
cover:
- platform: tuya
id: tuya_cover
position_datapoint: 2
- platform: copy
source_id: tuya_cover
name: Tuya Cover copy
- platform: he60r
uart_id: uart_he60r
id: garage_door
name: Garage Door
open_duration: 14s
close_duration: 14s
display:
- platform: addressable_light
id: led_matrix_32x8_display
addressable_light_id: led_matrix_32x8
width: 32
height: 8
pixel_mapper: |-
if (x % 2 == 0) {
return (x * 8) + y;
}
return (x * 8) + (7 - y);
lambda: |-
Color red = Color(0xFF0000);
Color green = Color(0x00FF00);
Color blue = Color(0x0000FF);
it.rectangle(0, 0, it.get_width(), it.get_height(), red);
it.rectangle(1, 1, it.get_width()-2, it.get_height()-2, green);
it.rectangle(2, 2, it.get_width()-4, it.get_height()-4, blue);
it.rectangle(3, 3, it.get_width()-6, it.get_height()-6, red);
auto touch = id(ft63_touchscreen)->get_touch();
if (touch) { ESP_LOGD("touch", "%d/%d", touch.value().x, touch.value().y); }
rotation: 0°
update_interval: 16ms
- platform: waveshare_epaper
spi_id: spi_id_1
cs_pin:
allow_other_uses: true
number: GPIO23
dc_pin:
allow_other_uses: true
number: GPIO23
busy_pin:
allow_other_uses: true
number: GPIO23
reset_pin:
allow_other_uses: true
number: GPIO23
model: 2.13in-ttgo-b1
full_update_every: 30
lambda: |-
it.rectangle(0, 0, it.get_width(), it.get_height());
- platform: waveshare_epaper
spi_id: spi_id_1
cs_pin:
allow_other_uses: true
number: GPIO23
dc_pin:
allow_other_uses: true
number: GPIO23
busy_pin:
allow_other_uses: true
number: GPIO23
reset_pin:
allow_other_uses: true
number: GPIO23
model: 2.90in
full_update_every: 30
reset_duration: 200ms
lambda: |-
it.rectangle(0, 0, it.get_width(), it.get_height());
- platform: waveshare_epaper
spi_id: spi_id_1
cs_pin:
allow_other_uses: true
number: GPIO23
dc_pin:
allow_other_uses: true
number: GPIO23
busy_pin:
allow_other_uses: true
number: GPIO23
reset_pin:
allow_other_uses: true
number: GPIO23
model: 2.90inv2
full_update_every: 30
lambda: |-
it.rectangle(0, 0, it.get_width(), it.get_height());
- platform: waveshare_epaper
spi_id: spi_id_1
cs_pin:
allow_other_uses: true
number: GPIO23
dc_pin:
allow_other_uses: true
number: GPIO23
busy_pin:
allow_other_uses: true
number: GPIO23
reset_pin:
allow_other_uses: true
number: GPIO23
model: 2.70in-b
lambda: |-
it.rectangle(0, 0, it.get_width(), it.get_height());
- platform: waveshare_epaper
spi_id: spi_id_1
cs_pin:
allow_other_uses: true
number: GPIO23
dc_pin:
allow_other_uses: true
number: GPIO23
busy_pin:
allow_other_uses: true
number: GPIO23
reset_pin:
allow_other_uses: true
number: GPIO23
model: 2.70in-bv2
lambda: |-
it.rectangle(0, 0, it.get_width(), it.get_height());
- platform: waveshare_epaper
spi_id: spi_id_1
cs_pin:
allow_other_uses: true
number: GPIO23
dc_pin:
allow_other_uses: true
number: GPIO23
busy_pin:
allow_other_uses: true
number: GPIO23
reset_pin:
allow_other_uses: true
number: GPIO23
model: 1.54in-m5coreink-m09
lambda: |-
it.rectangle(0, 0, it.get_width(), it.get_height());
- platform: inkplate6
id: inkplate_display
greyscale: false
partial_updating: false
update_interval: 60s
display_data_1_pin:
number: GPIO5
allow_other_uses: true
display_data_2_pin:
number: GPIO18
allow_other_uses: true
display_data_3_pin:
number: GPIO19
allow_other_uses: true
display_data_5_pin:
number: GPIO25
allow_other_uses: true
display_data_4_pin:
number: GPIO23
allow_other_uses: true
display_data_6_pin:
number: GPIO26
allow_other_uses: true
display_data_7_pin:
number: GPIO27
allow_other_uses: true
ckv_pin:
number: GPIO1
allow_other_uses: true
sph_pin:
number: GPIO1
allow_other_uses: true
gmod_pin:
number: GPIO1
allow_other_uses: true
gpio0_enable_pin:
number: GPIO1
allow_other_uses: true
oe_pin:
number: GPIO1
allow_other_uses: true
spv_pin:
number: GPIO1
allow_other_uses: true
powerup_pin:
number: GPIO1
allow_other_uses: true
wakeup_pin:
number: GPIO1
allow_other_uses: true
vcom_pin:
number: GPIO1
allow_other_uses: true
- platform: waveshare_epaper
spi_id: spi_id_1
cs_pin:
number: GPIO23
allow_other_uses: true
dc_pin:
number: GPIO23
allow_other_uses: true
busy_pin:
number: GPIO23
allow_other_uses: true
reset_pin:
number: GPIO23
allow_other_uses: true
model: 2.13inv3
full_update_every: 30
lambda: |-
it.rectangle(0, 0, it.get_width(), it.get_height());
number:
- platform: tuya
id: tuya_number
number_datapoint: 102
min_value: 0
max_value: 17
step: 1
- platform: copy
source_id: tuya_number
name: Tuya Number Copy
text_sensor:
- platform: pylontech
pylontech_id: pylontech0
battery: 1
base_state:
id: pyl0_base_state
voltage_state:
id: pyl0_voltage_state
current_state:
id: pyl0_current_state
temperature_state:
id: pyl0_temperature_state
- platform: pipsolar
pipsolar_id: inverter0
device_mode:
id: inverter0_device_mode
name: inverter0_device_mode
last_qpigs:
id: inverter0_last_qpigs
name: inverter0_last_qpigs
last_qpiri:
id: inverter0_last_qpiri
name: inverter0_last_qpiri
last_qmod:
id: inverter0_last_qmod
name: inverter0_last_qmod
last_qflag:
id: inverter0_last_qflag
name: inverter0_last_qflag
- platform: copy
source_id: inverter0_device_mode
name: Inverter Text Sensor Copy
- platform: ethernet_info
ip_address:
name: IP Address
output:
- platform: pipsolar
pipsolar_id: inverter0
battery_recharge_voltage:
id: inverter0_battery_recharge_voltage_out
- platform: dac7678
dac7678_id: dac7678_hub1
channel: 0
id: dac7678_1_ch0
- platform: dac7678
dac7678_id: dac7678_hub1
channel: 1
id: dac7678_1_ch1
- platform: dac7678
dac7678_id: dac7678_hub1
channel: 2
id: dac7678_1_ch2
- platform: dac7678
dac7678_id: dac7678_hub1
channel: 3
id: dac7678_1_ch3
- platform: dac7678
dac7678_id: dac7678_hub1
channel: 4
id: dac7678_1_ch4
- platform: dac7678
dac7678_id: dac7678_hub1
channel: 5
id: dac7678_1_ch5
- platform: dac7678
dac7678_id: dac7678_hub1
channel: 6
id: dac7678_1_ch6
- platform: dac7678
dac7678_id: dac7678_hub1
channel: 7
id: dac7678_1_ch7
esp32_camera:
name: ESP-32 Camera
data_pins:
- number: GPIO17
allow_other_uses: true
- number: GPIO35
allow_other_uses: true
- number: GPIO34
- number: GPIO5
allow_other_uses: true
- number: GPIO39
allow_other_uses: true
- number: GPIO18
allow_other_uses: true
- number: GPIO36
allow_other_uses: true
- number: GPIO19
allow_other_uses: true
vsync_pin:
allow_other_uses: true
number: GPIO22
href_pin:
allow_other_uses: true
number: GPIO26
pixel_clock_pin:
allow_other_uses: true
number: GPIO21
external_clock:
pin:
allow_other_uses: true
number: GPIO27
frequency: 20MHz
i2c_pins:
sda:
allow_other_uses: true
number: GPIO25
scl:
allow_other_uses: true
number: GPIO23
reset_pin:
allow_other_uses: true
number: GPIO15
power_down_pin:
allow_other_uses: true
number: GPIO1
resolution: 640x480
jpeg_quality: 10
on_image:
then:
- lambda: |-
ESP_LOGD("main", "image len=%d, data=%c", image.length, image.data[0]);
esp32_camera_web_server:
- port: 8080
mode: stream
- port: 8081
mode: snapshot
external_components:
- source: github://esphome/esphome@dev
refresh: 1d
components: [bh1750]
- source: ../esphome/components
components: [sntp]
button:
- platform: restart
name: Restart Button
- platform: safe_mode
name: Safe Mode Button
- platform: shutdown
name: Shutdown Button
id: shutdown_btn
- platform: copy
source_id: shutdown_btn
name: Shutdown Button Copy
touchscreen:
- platform: ektf2232
interrupt_pin:
allow_other_uses: true
number: GPIO36
rts_pin:
allow_other_uses: true
number: GPIO5
display: inkplate_display
on_touch:
- logger.log:
format: Touch at (%d, %d)
args: [touch.x, touch.y]
- platform: xpt2046
id: xpt_touchscreen
spi_id: spi_id_2
cs_pin:
allow_other_uses: true
number: GPIO17
interrupt_pin:
number: GPIO16
display: inkplate_display
update_interval: 50ms
threshold: 400
calibration:
x_min: 3860
x_max: 280
y_min: 340
y_max: 3860
on_touch:
- logger.log:
format: Touch at (%d, %d)
args: [touch.x, touch.y]
- platform: lilygo_t5_47
id: lilygo_touchscreen
interrupt_pin:
allow_other_uses: true
number: GPIO36
display: inkplate_display
on_touch:
- logger.log:
format: Touch at (%d, %d)
args: [touch.x, touch.y]
- platform: gt911
interrupt_pin:
number: GPIO3
display: inkplate_display
- platform: ft63x6
id: ft63_touchscreen
interrupt_pin:
allow_other_uses: true
number: GPIO39
reset_pin:
allow_other_uses: true
number: GPIO5
display: inkplate_display
on_touch:
- logger.log:
format: Touch at (%d, %d)
args: [touch.x, touch.y]
i2s_audio:
i2s_lrclk_pin:
allow_other_uses: true
number: GPIO26
i2s_bclk_pin:
allow_other_uses: true
number: GPIO27
i2s_mclk_pin:
allow_other_uses: true
number: GPIO25
media_player:
- platform: i2s_audio
name: None
dac_type: external
i2s_dout_pin:
allow_other_uses: true
number: GPIO25
mute_pin:
number: GPIO14
on_state:
- media_player.play:
- media_player.play_media: http://localhost/media.mp3
- media_player.play_media: !lambda 'return "http://localhost/media.mp3";'
on_idle:
- media_player.pause:
on_play:
- media_player.stop:
on_pause:
- media_player.toggle:
- wait_until:
media_player.is_idle:
- wait_until:
media_player.is_playing:
- media_player.volume_up:
- media_player.volume_down:
- media_player.volume_set: 50%
prometheus:
include_internal: true
relabel:
ha_hello_world:
id: hellow_world
name: Hello World
microphone:
- platform: i2s_audio
id: mic_id_adc
adc_pin:
allow_other_uses: true
number: GPIO35
adc_type: internal
- platform: i2s_audio
id: mic_id_external
i2s_din_pin:
allow_other_uses: true
number: GPIO23
adc_type: external
pdm: false
speaker:
- platform: i2s_audio
id: speaker_id
dac_type: external
i2s_dout_pin:
allow_other_uses: true
number: GPIO25
mode: mono
voice_assistant:
microphone: mic_id_external
speaker: speaker_id
on_listening:
- logger.log: "Voice assistant microphone listening"
on_start:
- logger.log: "Voice assistant started"
on_stt_end:
- logger.log:
format: "Voice assistant STT ended with result %s"
args: [x.c_str()]
on_tts_start:
- logger.log:
format: "Voice assistant TTS started with text %s"
args: [x.c_str()]
on_tts_end:
- logger.log:
format: "Voice assistant TTS ended with url %s"
args: [x.c_str()]
on_end:
- logger.log: "Voice assistant ended"
on_error:
- logger.log:
format: "Voice assistant error - code %s, message: %s"
args: [code.c_str(), message.c_str()]
max6956:
- id: max6956_1
address: 0x40
xl9535:
- id: xl9535_hub
address: 0x20