logger component defaults logging to DEBUG. The bh1750 logs it's value for each readout as DEBUG log. This changes the logging level for bh1750.sensor to INFO.
426 lines
12 KiB
YAML
426 lines
12 KiB
YAML
# screek f2 yaml code
|
|
# main ld1125h code from: https://github.com/patrick3399/Hi-Link_mmWave_Radar_ESPHome
|
|
#
|
|
substitutions:
|
|
devicename: ""
|
|
upper_devicename: ""
|
|
|
|
esphome:
|
|
name: screek-human-sensor-f2
|
|
comment: Screek Human Sensor F2
|
|
friendly_name: Human Sensor F2
|
|
name_add_mac_suffix: True
|
|
platformio_options:
|
|
board_build.flash_mode: dio
|
|
# board_build.f_cpu: 80000000L
|
|
project:
|
|
name: Screek.Human_Presence_Sensor
|
|
version: F2
|
|
on_boot:
|
|
- priority: 100
|
|
then:
|
|
lambda: |-
|
|
id(cpu_speed) = ESP.getCpuFreqMHz();
|
|
- priority: -200
|
|
then:
|
|
- uart.write:
|
|
id: LD1125F_UART_BUS
|
|
data: !lambda |-
|
|
std::string th1st = "mth1=" + str_sprintf("%.0f",id(LD1125F_mth1).state) +"\r\n";
|
|
return std::vector<uint8_t>(th1st.begin(), th1st.end());
|
|
- uart.write:
|
|
id: LD1125F_UART_BUS
|
|
data: !lambda |-
|
|
std::string th2st = "mth2=" + str_sprintf("%.0f",id(LD1125F_mth2).state) +"\r\n";
|
|
return std::vector<uint8_t>(th2st.begin(), th2st.end());
|
|
- uart.write:
|
|
id: LD1125F_UART_BUS
|
|
data: !lambda |-
|
|
std::string th3st = "mth3=" + str_sprintf("%.0f",id(LD1125F_mth3).state) +"\r\n";
|
|
return std::vector<uint8_t>(th3st.begin(), th3st.end());
|
|
- uart.write:
|
|
id: LD1125F_UART_BUS
|
|
data: !lambda |-
|
|
std::string rmaxst = "rmax=" + str_sprintf("%.1f",id(LD1125F_rmax).state) +"\r\n";
|
|
return std::vector<uint8_t>(rmaxst.begin(), rmaxst.end());
|
|
|
|
preferences:
|
|
flash_write_interval: 5s
|
|
|
|
external_components:
|
|
- source:
|
|
type: git
|
|
url: https://github.com/screekworkshop/custom_components_support_for_screek_2a
|
|
ref: main
|
|
components: [esp32, uart]
|
|
- source:
|
|
type: git
|
|
url: https://github.com/ssieb/custom_components #Thanks for @ssieb components.
|
|
components: [ serial ]
|
|
|
|
esp32:
|
|
board: lolin_c3_mini
|
|
framework:
|
|
type: arduino
|
|
version: 2.0.9
|
|
platform_version: 6.3.0
|
|
|
|
globals:
|
|
- id: cpu_speed
|
|
type: int
|
|
restore_value: no
|
|
initial_value: '0'
|
|
- id: last_update_ld2450
|
|
type: unsigned long
|
|
restore_value: no
|
|
initial_value: '0'
|
|
- id: init_zone_publish
|
|
type: bool
|
|
restore_value: no
|
|
initial_value: "false"
|
|
- id: last_illuminance
|
|
type: float
|
|
restore_value: no
|
|
initial_value: "-1"
|
|
- id: LD1125F_Last_Time
|
|
type: time_t
|
|
restore_value: no
|
|
initial_value: time(NULL)
|
|
- id: LD1125F_Last_Mov_Time
|
|
type: time_t
|
|
restore_value: no
|
|
initial_value: time(NULL)
|
|
- id: LD1125F_Clearence_Status
|
|
type: bool
|
|
restore_value: no
|
|
initial_value: "false"
|
|
|
|
improv_serial:
|
|
|
|
logger:
|
|
logs:
|
|
bh1750.sensor: INFO
|
|
|
|
debug:
|
|
update_interval: 30s
|
|
|
|
# Enable Home Assistant API
|
|
api:
|
|
# encryption:
|
|
# key: "your-api-key"
|
|
|
|
ota:
|
|
- platform: esphome
|
|
password: "your-ota-password"
|
|
|
|
wifi:
|
|
# output_power: 15dB
|
|
power_save_mode: LIGHT
|
|
# power_save_mode: NONE
|
|
reboot_timeout: 10min
|
|
ap:
|
|
ssid: "HUMAN-SENSOR F2"
|
|
|
|
captive_portal:
|
|
|
|
web_server:
|
|
port: 80
|
|
|
|
text_sensor:
|
|
- platform: debug
|
|
reset_reason:
|
|
name: "ESP Reset Reason"
|
|
icon: mdi:anchor
|
|
disabled_by_default: True
|
|
- platform: wifi_info
|
|
ip_address:
|
|
name: ESP IP Address
|
|
entity_category: "diagnostic"
|
|
disabled_by_default: True
|
|
icon: mdi:ip-network
|
|
mac_address:
|
|
name: ESP MAC
|
|
entity_category: "diagnostic"
|
|
icon: mdi:ip-network
|
|
disabled_by_default: True
|
|
- platform: serial
|
|
uart_id: LD1125F_UART_BUS
|
|
name: ${upper_devicename} UART Text
|
|
id: LD1125F_UART_Text
|
|
icon: "mdi:format-text"
|
|
entity_category: "diagnostic"
|
|
internal: False #If Don't Want to See UART Receive Data, Set To True
|
|
filters:
|
|
- lambda: |-
|
|
static std::string last;
|
|
if (x == last)
|
|
return {};
|
|
last = x;
|
|
return x;
|
|
on_value:
|
|
lambda: |-
|
|
if (id(LD1125F_UART_Text).state.substr(0,3) == "occ") {
|
|
id(LD1125F_Distance).publish_state(atof(id(LD1125F_UART_Text).state.substr(9).c_str()));
|
|
if ((time(NULL)-id(LD1125F_Last_Mov_Time))>id(LD1125F_Mov_Time).state) {
|
|
id(LD1125F_Occupancy).publish_state("Occupancy");
|
|
if (id(LD1125F_MovOcc_Binary).state == false) {
|
|
id(LD1125F_MovOcc_Binary).publish_state(true);
|
|
}
|
|
if (id(LD1125F_Mov_Binary).state == true) {
|
|
id(LD1125F_Mov_Binary).publish_state(false);
|
|
}
|
|
}
|
|
if (id(LD1125F_MovOcc_Binary).state == false) {
|
|
id(LD1125F_MovOcc_Binary).publish_state(true);
|
|
}
|
|
id(LD1125F_Last_Time) = time(NULL);
|
|
if (id(LD1125F_Clearence_Status) == true) {
|
|
id(LD1125F_Clearence_Status) = false;
|
|
}
|
|
}
|
|
else if (id(LD1125F_UART_Text).state.substr(0,3) == "mov") {
|
|
id(LD1125F_Distance).publish_state(atof(id(LD1125F_UART_Text).state.substr(9).c_str()));
|
|
id(LD1125F_Occupancy).publish_state("Movement");
|
|
if (id(LD1125F_MovOcc_Binary).state == false) {
|
|
id(LD1125F_MovOcc_Binary).publish_state(true);
|
|
}
|
|
if (id(LD1125F_Mov_Binary).state == false) {
|
|
id(LD1125F_Mov_Binary).publish_state(true);
|
|
}
|
|
id(LD1125F_Last_Mov_Time) = time(NULL);
|
|
id(LD1125F_Last_Time) = time(NULL);
|
|
if (id(LD1125F_Clearence_Status) == true) {
|
|
id(LD1125F_Clearence_Status) = false;
|
|
}
|
|
}
|
|
- platform: template
|
|
name: ${upper_devicename} Occupancy Status
|
|
id: LD1125F_Occupancy
|
|
icon: "mdi:motion-sensor"
|
|
|
|
|
|
binary_sensor:
|
|
- platform: status
|
|
name: Online
|
|
id: ink_ha_connected
|
|
- platform: template
|
|
name: ${upper_devicename} Occupancy or Movement
|
|
id: LD1125F_MovOcc_Binary
|
|
device_class: occupancy
|
|
- platform: template
|
|
name: ${upper_devicename} Movement
|
|
id: LD1125F_Mov_Binary
|
|
device_class: motion
|
|
|
|
sensor:
|
|
- platform: template
|
|
name: "ESP CPU Speed"
|
|
accuracy_decimals: 0
|
|
icon: mdi:cpu-32-bit
|
|
unit_of_measurement: Mhz
|
|
disabled_by_default: True
|
|
lambda: |-
|
|
return (id(cpu_speed));
|
|
entity_category: "diagnostic"
|
|
update_interval: 600s
|
|
- platform: template
|
|
id: sys_esp_temperature
|
|
name: ESP Temperature
|
|
lambda: return temperatureRead();
|
|
unit_of_measurement: "°C"
|
|
device_class: TEMPERATURE
|
|
update_interval: 45s
|
|
entity_category: "diagnostic"
|
|
- platform: uptime
|
|
name: ESP Uptime
|
|
id: sys_uptime
|
|
update_interval: 60s
|
|
- platform: wifi_signal
|
|
name: RSSI
|
|
id: wifi_signal_db
|
|
update_interval: 60s
|
|
entity_category: "diagnostic"
|
|
- platform: template
|
|
id: esp_memory
|
|
icon: mdi:memory
|
|
name: ESP Free Memory
|
|
lambda: return heap_caps_get_free_size(MALLOC_CAP_INTERNAL) / 1024;
|
|
unit_of_measurement: 'kB'
|
|
state_class: measurement
|
|
entity_category: "diagnostic"
|
|
update_interval: 60s
|
|
- platform: template
|
|
name: ${upper_devicename} Distance
|
|
id: LD1125F_Distance
|
|
icon: "mdi:signal-distance-variant"
|
|
unit_of_measurement: "m"
|
|
accuracy_decimals: 2
|
|
filters: # Use Fliter To Debounce
|
|
- delta: 0%
|
|
- platform: bh1750
|
|
name: "Illuminance"
|
|
accuracy_decimals: 1
|
|
id: bh1750_light
|
|
update_interval: 1s
|
|
filters:
|
|
- delta: 0.1
|
|
|
|
light:
|
|
- platform: status_led
|
|
name: sys_status
|
|
pin: GPIO13
|
|
internal: True
|
|
restore_mode: ALWAYS_OFF
|
|
- platform: binary
|
|
name: "Red Info Light"
|
|
output: board_info_ed
|
|
entity_category: "config"
|
|
restore_mode: ALWAYS_OFF
|
|
|
|
i2c:
|
|
sda: GPIO7
|
|
scl: GPIO11
|
|
scan: true
|
|
id: bus_a
|
|
|
|
output:
|
|
- platform: gpio
|
|
id: board_info_ed
|
|
pin: GPIO12
|
|
|
|
switch:
|
|
- platform: factory_reset
|
|
name: Factory Reset
|
|
disabled_by_default: True
|
|
icon: mdi:heart-broken
|
|
|
|
button:
|
|
- platform: restart
|
|
icon: mdi:power-cycle
|
|
name: "ESP Reboot"
|
|
entity_category: diagnostic
|
|
|
|
uart:
|
|
id: LD1125F_UART_BUS
|
|
rx_pin: GPIO5
|
|
tx_pin: GPIO4
|
|
baud_rate: 115200
|
|
data_bits: 8
|
|
stop_bits: 1
|
|
parity: NONE
|
|
|
|
interval:
|
|
- interval: 1s #Clearance Scan Time
|
|
setup_priority: -200
|
|
then:
|
|
lambda: |-
|
|
if ((time(NULL)-id(LD1125F_Last_Time))>id(LD1125F_Clear_Time).state) {
|
|
if ((id(LD1125F_Clearence_Status) == false) || (id(LD1125F_Occupancy).state != "Clearance")) {
|
|
id(LD1125F_Occupancy).publish_state("Clearance");
|
|
id(LD1125F_Clearence_Status) = true;
|
|
}
|
|
if (id(LD1125F_MovOcc_Binary).state == true) {
|
|
id(LD1125F_MovOcc_Binary).publish_state(false);
|
|
}
|
|
if (id(LD1125F_Mov_Binary).state == true) {
|
|
id(LD1125F_Mov_Binary).publish_state(false);
|
|
}
|
|
}
|
|
|
|
number:
|
|
- platform: template
|
|
name: ${upper_devicename} mth1 #mth1 is 0~2.8m Sensitivity.
|
|
id: LD1125F_mth1
|
|
icon: "mdi:cogs"
|
|
optimistic: true
|
|
entity_category: config
|
|
restore_value: true #If you don't want to store the setting at ESP, set it to false.
|
|
initial_value: "60.0" #Default mth1 Setting
|
|
min_value: 10.0
|
|
max_value: 600.0
|
|
step: 5.0
|
|
set_action:
|
|
then:
|
|
- uart.write:
|
|
id: LD1125F_UART_BUS
|
|
data: !lambda |-
|
|
std::string th1st = "mth1=" + str_sprintf("%.0f",x) +"\r\n";
|
|
return std::vector<uint8_t>(th1st.begin(), th1st.end());
|
|
- platform: template
|
|
name: ${upper_devicename} mth2 #mth2 is 2.8~8m Sensitivity.
|
|
id: LD1125F_mth2
|
|
icon: "mdi:cogs"
|
|
optimistic: true
|
|
entity_category: config
|
|
restore_value: true #If you don't want to store the setting at ESP, set it to false.
|
|
initial_value: "30" #Default mth2 Setting
|
|
min_value: 5
|
|
max_value: 300
|
|
step: 5
|
|
set_action:
|
|
then:
|
|
- uart.write:
|
|
id: LD1125F_UART_BUS
|
|
data: !lambda |-
|
|
std::string th2st = "mth2=" + str_sprintf("%.0f",x) +"\r\n";
|
|
return std::vector<uint8_t>(th2st.begin(), th2st.end());
|
|
- platform: template
|
|
name: ${upper_devicename} mth3 #mth3 is above 8m Sensitivity.
|
|
id: LD1125F_mth3
|
|
icon: "mdi:cogs"
|
|
entity_category: config
|
|
optimistic: true
|
|
restore_value: true #If you don't want to store the setting at ESP, set it to false.
|
|
initial_value: "20" #Default mth3 Setting
|
|
min_value: 5
|
|
max_value: 200
|
|
step: 5
|
|
set_action:
|
|
then:
|
|
- uart.write:
|
|
id: LD1125F_UART_BUS
|
|
data: !lambda |-
|
|
std::string th3st = "mth3=" + str_sprintf("%.0f",x) +"\r\n";
|
|
return std::vector<uint8_t>(th3st.begin(), th3st.end());
|
|
- platform: template
|
|
name: ${upper_devicename} Max Distance #rmax is max detection distance.
|
|
id: LD1125F_rmax
|
|
icon: "mdi:cogs"
|
|
entity_category: config
|
|
optimistic: true
|
|
unit_of_measurement: m
|
|
restore_value: true #If you don't want to store the setting at ESP, set it to false.
|
|
initial_value: "8" #Default rmax Setting
|
|
min_value: 0.4
|
|
max_value: 12
|
|
step: 0.2
|
|
set_action:
|
|
then:
|
|
- uart.write:
|
|
id: LD1125F_UART_BUS
|
|
data: !lambda |-
|
|
std::string rmaxst = "rmax=" + str_sprintf("%.1f",x) +"\r\n";
|
|
return std::vector<uint8_t>(rmaxst.begin(), rmaxst.end());
|
|
- platform: template
|
|
name: ${upper_devicename} Clearence Time
|
|
id: LD1125F_Clear_Time
|
|
icon: "mdi:cogs"
|
|
optimistic: true
|
|
entity_category: config
|
|
restore_value: true #If you don't want to store the setting at ESP, set it to false.
|
|
initial_value: "5" #LD1125F Mov/Occ > Clearence Time Here
|
|
min_value: 0.5
|
|
max_value: 20
|
|
step: 0.5
|
|
- platform: template
|
|
name: ${upper_devicename} Movement Time
|
|
id: LD1125F_Mov_Time
|
|
icon: "mdi:cogs"
|
|
optimistic: true
|
|
entity_category: config
|
|
restore_value: true #If you don't want to store the setting at ESP, set it to false.
|
|
initial_value: "1" #LD1125F Mov > Occ Time Here
|
|
min_value: 0.5
|
|
max_value: 10
|
|
step: 0.5
|