name: Home
id: home
on_press:
+ - logger.log:
+ level: INFO
+ format: "Blind rehome"
- lambda: |
id(motor).set_max_speed(${max_speed}/2);
id(motor).set_target(id(motor)->current_position - 2.5 * ${encoder_closed_pos} * ${motor_direction});
}
if (delta < 2 && delta > -2)
return {};
+ delta *= ${encoder_direction};
id(encoder_tracking_)[0] = curr;
- id(encoder_tracking_)[1] -= delta;
+ id(encoder_tracking_)[1] += delta;
if (id(encoder_tracking_)[1] < id(sensored_home_pos)) {
ESP_LOGI("home", "Adjusted to %d", id(encoder_tracking_)[1]);
id(sensored_home_pos) = id(encoder_tracking_)[1];
ESP_LOGD("angle", "Old %d new %d delta %d now %d home %d", id(encoder_tracking_)[0], curr, delta,
id(encoder_tracking_)[1] + delta, id(sensored_home_pos));
- if (delta < -100 && id(pd_blinds)->current_operation != COVER_OPERATION_CLOSING) {
+ if (delta > 100 && id(pd_blinds)->current_operation != COVER_OPERATION_CLOSING) {
id(pd_blinds)->current_operation= COVER_OPERATION_CLOSING;
ESP_LOGI("cover", "closing");
- } else if (delta > 100 && id(pd_blinds)->current_operation != COVER_OPERATION_OPENING) {
+ } else if (delta < -100 && id(pd_blinds)->current_operation != COVER_OPERATION_OPENING) {
id(pd_blinds)->current_operation = COVER_OPERATION_OPENING;
ESP_LOGI("cover", "opening");
}
--- /dev/null
+substitutions:
+ name: "landing-blind-1"
+ encoder_closed_pos: "22500" # full blinds length (in encoder counts) !! CHANGE TO SUIT YOUR SETUP !!
+ encoder_direction: "-1" # Which way is towards 'closed'?
+ motor_direction: "-1" # w.r.t. encoder
+ microsteps: "2"
+ run_current: "100m"
+ max_speed: "800"
+ stallguard_threshold: "60"
+ pd_voltage: "15"
+
+packages:
+ blind: !include blind.yaml
+
+
+logger:
+ level: DEBUG