mirror of
https://github.com/esphome/esphome.git
synced 2024-12-20 16:18:49 +01:00
fb2467f6f0
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
670 lines
17 KiB
YAML
670 lines
17 KiB
YAML
esphome:
|
|
name: $devicename
|
|
platform: ESP32
|
|
board: nodemcu-32s
|
|
build_path: build/test4
|
|
|
|
substitutions:
|
|
devicename: test-4
|
|
|
|
ethernet:
|
|
type: LAN8720
|
|
mdc_pin: GPIO23
|
|
mdio_pin: GPIO25
|
|
clk_mode: GPIO0_IN
|
|
phy_addr: 0
|
|
power_pin: GPIO25
|
|
manual_ip:
|
|
static_ip: 192.168.178.56
|
|
gateway: 192.168.178.1
|
|
subnet: 255.255.255.0
|
|
domain: .local
|
|
|
|
api:
|
|
|
|
i2c:
|
|
sda: 21
|
|
scl: 22
|
|
scan: False
|
|
|
|
spi:
|
|
clk_pin: GPIO21
|
|
mosi_pin: GPIO22
|
|
miso_pin: GPIO23
|
|
|
|
uart:
|
|
tx_pin: GPIO22
|
|
rx_pin: GPIO23
|
|
baud_rate: 115200
|
|
|
|
ota:
|
|
safe_mode: True
|
|
port: 3286
|
|
|
|
logger:
|
|
level: DEBUG
|
|
|
|
web_server:
|
|
ota: false
|
|
auth:
|
|
username: admin
|
|
password: admin
|
|
include_internal: true
|
|
|
|
time:
|
|
- platform: sntp
|
|
id: sntp_time
|
|
|
|
tuya:
|
|
time_id: sntp_time
|
|
status_pin:
|
|
number: 14
|
|
inverted: true
|
|
|
|
select:
|
|
- platform: tuya
|
|
id: tuya_select
|
|
enum_datapoint: 42
|
|
options:
|
|
0: Internal
|
|
1: Floor
|
|
2: Both
|
|
|
|
pipsolar:
|
|
id: inverter0
|
|
|
|
sx1509:
|
|
- id: sx1509_hub
|
|
address: 0x3E
|
|
|
|
mcp3204:
|
|
cs_pin: GPIO23
|
|
|
|
dac7678:
|
|
address: 0x4A
|
|
id: dac7678_hub1
|
|
internal_reference: true
|
|
|
|
sensor:
|
|
- 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"
|
|
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 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: xpt2046
|
|
xpt2046_id: xpt_touchscreen
|
|
id: touch_key0
|
|
x_min: 80
|
|
x_max: 160
|
|
y_min: 106
|
|
y_max: 212
|
|
on_state:
|
|
- lambda: 'ESP_LOGI("main", "key0: %s", (x ? "touch" : "release"));'
|
|
- 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"
|
|
|
|
|
|
climate:
|
|
- platform: tuya
|
|
id: tuya_climate
|
|
switch_datapoint: 1
|
|
target_temperature_datapoint: 3
|
|
current_temperature_multiplier: 0.5
|
|
target_temperature_multiplier: 0.5
|
|
|
|
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: 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"
|
|
|
|
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);
|
|
rotation: 0°
|
|
update_interval: 16ms
|
|
|
|
- platform: waveshare_epaper
|
|
cs_pin: GPIO23
|
|
dc_pin: GPIO23
|
|
busy_pin: GPIO23
|
|
reset_pin: GPIO23
|
|
model: 2.13in-ttgo-b1
|
|
full_update_every: 30
|
|
lambda: |-
|
|
it.rectangle(0, 0, it.get_width(), it.get_height());
|
|
- platform: waveshare_epaper
|
|
cs_pin: GPIO23
|
|
dc_pin: GPIO23
|
|
busy_pin: GPIO23
|
|
reset_pin: 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
|
|
cs_pin: GPIO23
|
|
dc_pin: GPIO23
|
|
busy_pin: GPIO23
|
|
reset_pin: GPIO23
|
|
model: 2.90inv2
|
|
full_update_every: 30
|
|
lambda: |-
|
|
it.rectangle(0, 0, it.get_width(), it.get_height());
|
|
- platform: inkplate6
|
|
id: inkplate_display
|
|
greyscale: false
|
|
partial_updating: false
|
|
update_interval: 60s
|
|
|
|
ckv_pin: GPIO1
|
|
sph_pin: GPIO1
|
|
gmod_pin: GPIO1
|
|
gpio0_enable_pin: GPIO1
|
|
oe_pin: GPIO1
|
|
spv_pin: GPIO1
|
|
powerup_pin: GPIO1
|
|
wakeup_pin: GPIO1
|
|
vcom_pin: GPIO1
|
|
|
|
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: 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"
|
|
|
|
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: [GPIO17, GPIO35, GPIO34, GPIO5, GPIO39, GPIO18, GPIO36, GPIO19]
|
|
vsync_pin: GPIO22
|
|
href_pin: GPIO26
|
|
pixel_clock_pin: GPIO21
|
|
external_clock:
|
|
pin: GPIO27
|
|
frequency: 20MHz
|
|
i2c_pins:
|
|
sda: GPIO25
|
|
scl: GPIO23
|
|
reset_pin: GPIO15
|
|
power_down_pin: GPIO1
|
|
resolution: 640x480
|
|
jpeg_quality: 10
|
|
|
|
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"]
|
|
xpt2046:
|
|
id: xpt_touchscreen
|
|
cs_pin: 17
|
|
irq_pin: 16
|
|
update_interval: 50ms
|
|
report_interval: 1s
|
|
threshold: 400
|
|
dimension_x: 240
|
|
dimension_y: 320
|
|
calibration_x_min: 3860
|
|
calibration_x_max: 280
|
|
calibration_y_min: 340
|
|
calibration_y_max: 3860
|
|
swap_x_y: False
|
|
on_state:
|
|
- lambda: |-
|
|
ESP_LOGI("main", "args x=%d, y=%d, touched=%s", x, y, (touched ? "touch" : "release"));
|
|
ESP_LOGI("main", "member x=%d, y=%d, touched=%d, x_raw=%d, y_raw=%d, z_raw=%d",
|
|
id(xpt_touchscreen).x,
|
|
id(xpt_touchscreen).y,
|
|
(int) id(xpt_touchscreen).touched,
|
|
id(xpt_touchscreen).x_raw,
|
|
id(xpt_touchscreen).y_raw,
|
|
id(xpt_touchscreen).z_raw
|
|
);
|
|
|
|
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: GPIO36
|
|
rts_pin: GPIO5
|
|
display: inkplate_display
|
|
on_touch:
|
|
- logger.log:
|
|
format: Touch at (%d, %d)
|
|
args: ["touch.x", "touch.y"]
|
|
|
|
- platform: lilygo_t5_47
|
|
id: lilygo_touchscreen
|
|
interrupt_pin: GPIO36
|
|
display: inkplate_display
|
|
on_touch:
|
|
- logger.log:
|
|
format: Touch at (%d, %d)
|
|
args: ["touch.x", "touch.y"]
|
|
|
|
media_player:
|
|
- platform: i2s_audio
|
|
name: ${friendly_name}
|
|
dac_type: external
|
|
i2s_lrclk_pin: GPIO26
|
|
i2s_dout_pin: GPIO25
|
|
i2s_bclk_pin: GPIO27
|
|
mute_pin: 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%
|