1
0
mirror of https://github.com/esphome/esphome.git synced 2025-10-24 12:43:51 +01:00

Merge branch 'integration' into memory_api

This commit is contained in:
J. Nick Koston
2025-10-20 23:38:37 -10:00
9 changed files with 67 additions and 5 deletions

View File

@@ -67,7 +67,7 @@ void GPIOSwitch::write_state(bool state) {
this->pin_->digital_write(state);
this->publish_state(state);
}
void GPIOSwitch::set_interlock(const std::vector<Switch *> &interlock) { this->interlock_ = interlock; }
void GPIOSwitch::set_interlock(const std::initializer_list<Switch *> &interlock) { this->interlock_ = interlock; }
} // namespace gpio
} // namespace esphome

View File

@@ -2,10 +2,9 @@
#include "esphome/core/component.h"
#include "esphome/core/hal.h"
#include "esphome/core/helpers.h"
#include "esphome/components/switch/switch.h"
#include <vector>
namespace esphome {
namespace gpio {
@@ -19,14 +18,14 @@ class GPIOSwitch : public switch_::Switch, public Component {
void setup() override;
void dump_config() override;
void set_interlock(const std::vector<Switch *> &interlock);
void set_interlock(const std::initializer_list<Switch *> &interlock);
void set_interlock_wait_time(uint32_t interlock_wait_time) { interlock_wait_time_ = interlock_wait_time; }
protected:
void write_state(bool state) override;
GPIOPin *pin_;
std::vector<Switch *> interlock_;
FixedVector<Switch *> interlock_;
uint32_t interlock_wait_time_{0};
};

View File

@@ -12,3 +12,20 @@ switch:
- platform: gpio
pin: ${switch_pin}
id: gpio_switch
- platform: gpio
pin: ${switch_pin_2}
id: gpio_switch_interlock_1
interlock: [gpio_switch_interlock_2, gpio_switch_interlock_3]
interlock_wait_time: 100ms
- platform: gpio
pin: ${switch_pin_3}
id: gpio_switch_interlock_2
interlock: [gpio_switch_interlock_1, gpio_switch_interlock_3]
- platform: gpio
pin: ${switch_pin_4}
id: gpio_switch_interlock_3
interlock: [gpio_switch_interlock_1, gpio_switch_interlock_2]
interlock_wait_time: 50ms

View File

@@ -2,5 +2,8 @@ substitutions:
binary_sensor_pin: GPIO2
output_pin: GPIO3
switch_pin: GPIO4
switch_pin_2: GPIO5
switch_pin_3: GPIO6
switch_pin_4: GPIO7
<<: !include common.yaml

View File

@@ -2,5 +2,8 @@ substitutions:
binary_sensor_pin: GPIO12
output_pin: GPIO13
switch_pin: GPIO14
switch_pin_2: GPIO15
switch_pin_3: GPIO16
switch_pin_4: GPIO17
<<: !include common.yaml

View File

@@ -2,5 +2,8 @@ substitutions:
binary_sensor_pin: GPIO0
output_pin: GPIO2
switch_pin: GPIO15
switch_pin_2: GPIO12
switch_pin_3: GPIO13
switch_pin_4: GPIO14
<<: !include common.yaml

View File

@@ -12,3 +12,20 @@ switch:
- platform: gpio
pin: P1.2
id: gpio_switch
- platform: gpio
pin: P1.3
id: gpio_switch_interlock_1
interlock: [gpio_switch_interlock_2, gpio_switch_interlock_3]
interlock_wait_time: 100ms
- platform: gpio
pin: P1.4
id: gpio_switch_interlock_2
interlock: [gpio_switch_interlock_1, gpio_switch_interlock_3]
- platform: gpio
pin: P1.5
id: gpio_switch_interlock_3
interlock: [gpio_switch_interlock_1, gpio_switch_interlock_2]
interlock_wait_time: 50ms

View File

@@ -12,3 +12,20 @@ switch:
- platform: gpio
pin: P1.2
id: gpio_switch
- platform: gpio
pin: P1.3
id: gpio_switch_interlock_1
interlock: [gpio_switch_interlock_2, gpio_switch_interlock_3]
interlock_wait_time: 100ms
- platform: gpio
pin: P1.4
id: gpio_switch_interlock_2
interlock: [gpio_switch_interlock_1, gpio_switch_interlock_3]
- platform: gpio
pin: P1.5
id: gpio_switch_interlock_3
interlock: [gpio_switch_interlock_1, gpio_switch_interlock_2]
interlock_wait_time: 50ms

View File

@@ -2,5 +2,8 @@ substitutions:
binary_sensor_pin: GPIO2
output_pin: GPIO3
switch_pin: GPIO4
switch_pin_2: GPIO5
switch_pin_3: GPIO6
switch_pin_4: GPIO7
<<: !include common.yaml