Skip to content

Commit

Permalink
Rename pairing mode timeout & add templace
Browse files Browse the repository at this point in the history
  • Loading branch information
AzonInc committed Oct 24, 2024
1 parent 48cc88f commit 803955b
Show file tree
Hide file tree
Showing 8 changed files with 54 additions and 65 deletions.
10 changes: 5 additions & 5 deletions components/nuki_lock/button/unpair_button.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,12 @@ namespace esphome {
namespace nuki_lock {

class NukiLockUnpairButton : public button::Button, public Parented<NukiLockComponent> {
public:
NukiLockUnpairButton() = default;
public:
NukiLockUnpairButton() = default;

protected:
void press_action() override;
void dump_config() override;
protected:
void press_action() override;
void dump_config() override;
};

} // namespace nuki_lock
Expand Down
10 changes: 4 additions & 6 deletions components/nuki_lock/lock.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,6 @@
CONF_TRIGGER_ID
)

DEPENDENCIES = ["lock"]

nuki_lock_ns = cg.esphome_ns.namespace('nuki_lock')
NukiLockComponent = nuki_lock_ns.class_('NukiLockComponent', cg.Component, lock.Lock)

Expand All @@ -19,7 +17,7 @@
CONF_NUKI_LOCK_ID = "nuki_lock_id"

CONF_SECURITY_PIN = "security_pin"
CONF_PAIRING_TIMEOUT = "pairing_timeout"
CONF_PAIRING_MODE_TIMEOUT = "pairing_mode_timeout"

CONF_SET_PAIRING_MODE = "pairing_mode"

Expand All @@ -31,7 +29,7 @@
{
cv.GenerateID(): cv.declare_id(NukiLockComponent),
cv.Optional(CONF_SECURITY_PIN, default=0): cv.uint16_t,
cv.Optional(CONF_PAIRING_TIMEOUT, default="300s"): cv.positive_time_period_seconds,
cv.Optional(CONF_PAIRING_MODE_TIMEOUT, default="300s"): cv.positive_time_period_seconds,
cv.Optional(CONF_ON_PAIRING_MODE_ON): automation.validate_automation(
{
cv.GenerateID(CONF_TRIGGER_ID): cv.declare_id(PairingModeOnTrigger),
Expand Down Expand Up @@ -62,8 +60,8 @@ async def to_code(config):
if CONF_SECURITY_PIN in config:
cg.add(var.set_security_pin(config[CONF_SECURITY_PIN]))

if CONF_PAIRING_TIMEOUT in config:
cg.add(var.set_pairing_timeout(config[CONF_PAIRING_TIMEOUT]))
if CONF_PAIRING_MODE_TIMEOUT in config:
cg.add(var.set_pairing_mode_timeout(config[CONF_PAIRING_MODE_TIMEOUT]))

for conf in config.get(CONF_ON_PAIRING_MODE_ON, []):
trigger = cg.new_Pvariable(conf[CONF_TRIGGER_ID], var)
Expand Down
4 changes: 2 additions & 2 deletions components/nuki_lock/nuki_lock.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -508,14 +508,14 @@ void NukiLockComponent::set_pairing_mode(bool enabled) {
this->pairing_mode_switch_->publish_state(enabled);

if(enabled) {
ESP_LOGI(TAG, "Pairing Mode turned on for %d seconds", this->pairing_timeout_);
ESP_LOGI(TAG, "Pairing Mode turned on for %d seconds", this->pairing_mode_timeout_);
this->pairing_mode_on_callback_.call();

ESP_LOGI(TAG, "Waiting for Nuki to enter pairing mode...");

// Turn on for ... seconds
uint32_t now_millis = millis();
this->pairing_mode_timer_ = now_millis + (this->pairing_timeout_ * 1000);
this->pairing_mode_timer_ = now_millis + (this->pairing_mode_timeout_ * 1000);
} else {
ESP_LOGI(TAG, "Pairing Mode turned off");
this->pairing_mode_timer_ = 0;
Expand Down
23 changes: 7 additions & 16 deletions components/nuki_lock/nuki_lock.h
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ class NukiLockComponent : public lock::Lock, public PollingComponent, public api
void set_led_enabled_switch(switch_::Switch *led_enabled_switch) { this->led_enabled_switch_ = led_enabled_switch; }
void set_led_brightness_number(number::Number *led_brightness_number) { this->led_brightness_number_ = led_brightness_number; }
void set_security_pin(uint16_t security_pin) { this->security_pin_ = security_pin; }
void set_pairing_timeout(uint16_t pairing_timeout) { this->pairing_timeout_ = pairing_timeout; }
void set_pairing_mode_timeout(uint16_t pairing_mode_timeout) { this->pairing_mode_timeout_ = pairing_mode_timeout; }
void add_pairing_mode_on_callback(std::function<void()> &&callback);
void add_pairing_mode_off_callback(std::function<void()> &&callback);
void add_paired_callback(std::function<void()> &&callback);
Expand Down Expand Up @@ -92,12 +92,17 @@ class NukiLockComponent : public lock::Lock, public PollingComponent, public api
binary_sensor::BinarySensor *is_paired_{nullptr};
binary_sensor::BinarySensor *battery_critical_{nullptr};
binary_sensor::BinarySensor *door_sensor_{nullptr};

text_sensor::TextSensor *door_sensor_state_{nullptr};

sensor::Sensor *battery_level_{nullptr};

button::Button *unpair_button_{nullptr};

switch_::Switch *pairing_mode_switch_{nullptr};
switch_::Switch *button_enabled_switch_{nullptr};
switch_::Switch *led_enabled_switch_{nullptr};

number::Number *led_brightness_number_{nullptr};

BleScanner::Scanner scanner_;
Expand All @@ -117,7 +122,7 @@ class NukiLockComponent : public lock::Lock, public PollingComponent, public api
uint16_t security_pin_ = 0;

bool pairing_mode_ = false;
uint16_t pairing_timeout_ = 0;
uint16_t pairing_mode_timeout_ = 0;
uint32_t pairing_mode_timer_ = 0;

private:
Expand Down Expand Up @@ -178,19 +183,5 @@ class PairedTrigger : public Trigger<> {
}
};

class NukiLockPairingModeSwitch : public Component, public switch_::Switch {
public:
Trigger<> *get_turn_on_trigger() const;
Trigger<> *get_turn_off_trigger() const;
void set_parent(NukiLockComponent *parent) { this->parent_ = parent; }
protected:
void setup() override;
void dump_config() override;
void write_state(bool state) override;
Trigger<> *turn_on_trigger_;
Trigger<> *turn_off_trigger_;
NukiLockComponent *parent_;
};

} //namespace nuki_lock
} //namespace esphome
12 changes: 6 additions & 6 deletions components/nuki_lock/number/led_brightness_number.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,13 @@ namespace esphome {
namespace nuki_lock {

class NukiLockLedBrightnessNumber : public number::Number, public Parented<NukiLockComponent> {
public:
NukiLockLedBrightnessNumber() = default;
public:
NukiLockLedBrightnessNumber() = default;

protected:
void setup() override;
void dump_config() override;
void control(float value) override;
protected:
void setup() override;
void dump_config() override;
void control(float value) override;
};

} // namespace nuki_lock
Expand Down
20 changes: 10 additions & 10 deletions components/nuki_lock/switch/button_enabled_switch.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,17 @@ namespace esphome {
namespace nuki_lock {

class NukiLockLedEnabledSwitch : public switch_::Switch, public Parented<NukiLockComponent> {
public:
NukiLockLedEnabledSwitch() = default;
Trigger<> *get_turn_on_trigger() const;
Trigger<> *get_turn_off_trigger() const;
public:
NukiLockLedEnabledSwitch() = default;
Trigger<> *get_turn_on_trigger() const;
Trigger<> *get_turn_off_trigger() const;

protected:
void setup() override;
void dump_config() override;
void write_state(bool state) override;
Trigger<> *turn_on_trigger_;
Trigger<> *turn_off_trigger_;
protected:
void setup() override;
void dump_config() override;
void write_state(bool state) override;
Trigger<> *turn_on_trigger_;
Trigger<> *turn_off_trigger_;
};

} // namespace nuki_lock
Expand Down
20 changes: 10 additions & 10 deletions components/nuki_lock/switch/led_enabled_switch.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,17 @@ namespace esphome {
namespace nuki_lock {

class NukiLockLedEnabledSwitch : public switch_::Switch, public Parented<NukiLockComponent> {
public:
NukiLockLedEnabledSwitch() = default;
Trigger<> *get_turn_on_trigger() const;
Trigger<> *get_turn_off_trigger() const;
public:
NukiLockLedEnabledSwitch() = default;
Trigger<> *get_turn_on_trigger() const;
Trigger<> *get_turn_off_trigger() const;

protected:
void setup() override;
void dump_config() override;
void write_state(bool state) override;
Trigger<> *turn_on_trigger_;
Trigger<> *turn_off_trigger_;
protected:
void setup() override;
void dump_config() override;
void write_state(bool state) override;
Trigger<> *turn_on_trigger_;
Trigger<> *turn_off_trigger_;
};

} // namespace nuki_lock
Expand Down
20 changes: 10 additions & 10 deletions components/nuki_lock/switch/pairing_mode_switch.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,17 @@ namespace esphome {
namespace nuki_lock {

class NukiLockPairingModeSwitch : public switch_::Switch, public Parented<NukiLockComponent> {
public:
NukiLockPairingModeSwitch() = default;
Trigger<> *get_turn_on_trigger() const;
Trigger<> *get_turn_off_trigger() const;
public:
NukiLockPairingModeSwitch() = default;
Trigger<> *get_turn_on_trigger() const;
Trigger<> *get_turn_off_trigger() const;

protected:
void setup() override;
void dump_config() override;
void write_state(bool state) override;
Trigger<> *turn_on_trigger_;
Trigger<> *turn_off_trigger_;
protected:
void setup() override;
void dump_config() override;
void write_state(bool state) override;
Trigger<> *turn_on_trigger_;
Trigger<> *turn_off_trigger_;
};

} // namespace nuki_lock
Expand Down

0 comments on commit 803955b

Please sign in to comment.