changed logic and added update_interval to distance sensor

Changed ">" to ">=" for time comparison, else Clearance and Movement time could be between set interval and the next second.

Also added "update_interval" to Distance sensor, this replaces heartbeat filter but is still subject to delta filter.

Also made binary sensors publish initial state. Now HA isn't "unknown" after reset device.
This commit is contained in:
David 2024-07-25 12:25:19 +02:00 committed by GitHub
parent e1d3438972
commit 31d40b75c9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -190,7 +190,7 @@ text_sensor:
if (uart_state == "occ" && distance > 0) { if (uart_state == "occ" && distance > 0) {
id(LD1125F_Distance).publish_state(distance); id(LD1125F_Distance).publish_state(distance);
if ((time(NULL)-id(LD1125F_Last_Mov_Time))>id(LD1125F_Mov_Time).state) { if ((time(NULL)-id(LD1125F_Last_Mov_Time)) >= id(LD1125F_Mov_Time).state) {
id(LD1125F_Occupancy).publish_state("Occupancy"); id(LD1125F_Occupancy).publish_state("Occupancy");
if (id(LD1125F_MovOcc_Binary).state == false) { if (id(LD1125F_MovOcc_Binary).state == false) {
id(LD1125F_MovOcc_Binary).publish_state(true); id(LD1125F_MovOcc_Binary).publish_state(true);
@ -227,7 +227,6 @@ text_sensor:
id: LD1125F_Occupancy id: LD1125F_Occupancy
icon: "mdi:motion-sensor" icon: "mdi:motion-sensor"
binary_sensor: binary_sensor:
- platform: status - platform: status
name: Online name: Online
@ -236,10 +235,12 @@ binary_sensor:
name: ${upper_devicename} Occupancy or Movement name: ${upper_devicename} Occupancy or Movement
id: LD1125F_MovOcc_Binary id: LD1125F_MovOcc_Binary
device_class: occupancy device_class: occupancy
publish_initial_state: True
- platform: template - platform: template
name: ${upper_devicename} Movement name: ${upper_devicename} Movement
id: LD1125F_Mov_Binary id: LD1125F_Mov_Binary
device_class: motion device_class: motion
publish_initial_state: True
sensor: sensor:
- platform: template - platform: template
@ -284,7 +285,9 @@ sensor:
icon: "mdi:signal-distance-variant" icon: "mdi:signal-distance-variant"
unit_of_measurement: "m" unit_of_measurement: "m"
accuracy_decimals: 2 accuracy_decimals: 2
update_interval: 0.2s
filters: # Use Fliter To Debounce filters: # Use Fliter To Debounce
#- heartbeat: 0.2s
#- sliding_window_moving_average: #- sliding_window_moving_average:
# window_size: 8 # window_size: 8
# send_every: 2 # send_every: 2
@ -346,7 +349,7 @@ interval:
setup_priority: -200 setup_priority: -200
then: then:
lambda: |- lambda: |-
if ((time(NULL)-id(LD1125F_Last_Time))>id(LD1125F_Clear_Time).state) { if ((time(NULL)-id(LD1125F_Last_Time)) >= id(LD1125F_Clear_Time).state) {
if ((id(LD1125F_Clearence_Status) == false) || (id(LD1125F_Occupancy).state != "Clearance")) { if ((id(LD1125F_Clearence_Status) == false) || (id(LD1125F_Occupancy).state != "Clearance")) {
id(LD1125F_Occupancy).publish_state("Clearance"); id(LD1125F_Occupancy).publish_state("Clearance");
id(LD1125F_Clearence_Status) = true; id(LD1125F_Clearence_Status) = true;