packages:
base: !include base.yaml
-wifi:
- power_save_mode: none
- networks:
- - ssid: !secret wifi_ssid
- password: !secret wifi_pw
- bssid: !secret lantiq_bssid
- priority: 1
-
logger:
level: INFO
on_stall:
- logger.log:
level: INFO
- format: "Motor stalled at %f!"
- args: [ "id(encoder)->get_state()" ]
+ format: "Motor stalled at %f in direction %d, travel %s!"
+ args: [ "id(encoder)->get_state()", "id(motor)->current_direction",
+ "cover_operation_to_str(id(pd_blinds)->current_operation)" ]
- stepper.stop: motor #un-comment this to disable on stall
- lambda: id(sensored_home_pos) = id(encoder)->get_state(); #un-comment this to not reset home on stall
- cover.template.publish:
- platform: template
name: Stop
on_press:
+ - logger.log:
+ level: INFO
+ format: "Stop template button"
- stepper.stop: motor
binary_sensor:
on_click:
- max_length: 1s
then:
+ - logger.log:
+ level: INFO
+ format: "Stop button"
- stepper.stop: motor
- min_length: 2s
on_press:
- cover.open: pd_blinds
+ - platform: gpio
+ name: Reed Switch
+ id: reedsw
+ pin:
+ number: 14
+ mode:
+ input: true
+ pullup: true
+ inverted: true
+ filters:
+ - delayed_on_off: 10ms
+ on_press:
+ - logger.log:
+ level: INFO
+ format: "Reed switch on at %f in direction %d, travel %s!"
+ args: [ "id(encoder)->get_state()", "id(motor)->current_direction",
+ "cover_operation_to_str(id(pd_blinds)->current_operation)" ]
+ - lambda: |
+ // If we hit the reed switch while travelling upwards, stop the motor and reset the home position.
+ if (id(motor).current_direction < 0) {
+ id(motor).stop();
+ id(sensored_home_pos) = id(encoder)->get_state();
+ }
+ on_release:
+ - logger.log:
+ level: INFO
+ format: "Reed switch off at %f in direction %d, travel %s!"
+ args: [ "id(encoder)->get_state()", "id(motor)->current_direction",
+ "cover_operation_to_str(id(pd_blinds)->current_operation)" ]
+
as5600:
slow_filter: 16x
int percent = (100.0 * (id(encoder)->get_state()-id(sensored_home_pos)) / ${encoder_closed_pos}) + 0.1;
return (100.0 - percent) / 100.0;
stop_action:
- - tmc2209.disable: motor
+ - logger.log:
+ level: INFO
+ format: "Cover stop"
+ - stepper.stop: motor
open_action:
- lambda: |-
int32_t wantpos = id(sensored_home_pos);