151 lines
3.1 KiB
YAML
151 lines
3.1 KiB
YAML
esphome:
|
|
name: d1-schallplatten-relay
|
|
friendly_name: D1 Schallplatten Relay
|
|
|
|
esp8266:
|
|
board: esp12e
|
|
|
|
# Enable logging
|
|
logger:
|
|
|
|
# Enable Home Assistant API
|
|
api:
|
|
encryption:
|
|
key: "tY/skBnkQn1sZRBYYJ4LL571z+aA1P463WvaX58Zu2w="
|
|
|
|
ota:
|
|
platform: esphome
|
|
|
|
wifi:
|
|
ssid: !secret wifi_ssid
|
|
password: !secret wifi_password
|
|
|
|
captive_portal:
|
|
|
|
globals:
|
|
- id: mode
|
|
type: int
|
|
restore_value: no
|
|
initial_value: '0'
|
|
|
|
|
|
binary_sensor:
|
|
# Erster Knopf: Mode Select
|
|
- platform: gpio
|
|
pin:
|
|
number: 2
|
|
mode: INPUT_PULLUP
|
|
inverted: true
|
|
name: "Mode-Select"
|
|
internal: true
|
|
on_press:
|
|
then:
|
|
- lambda: |-
|
|
id(mode) = (id(mode) + 1) % 3;
|
|
ESP_LOGD("Mode", "Neuer Modus: %d", id(mode));
|
|
|
|
auto call_off = id(rgb_led).turn_off();
|
|
auto call_on = id(rgb_led).turn_on();
|
|
if (id(mode) == 0) {
|
|
call_off.perform();
|
|
ESP_LOGD("LED", "LED wird ausgeschaltet");
|
|
} else if (id(mode) == 1) {
|
|
ESP_LOGD("LED", "LED auf Grün");
|
|
call_on.set_rgb(0.0, 1.0, 0.0);
|
|
call_on.perform();
|
|
} else if (id(mode) == 2) {
|
|
ESP_LOGD("LED", "LED auf Rot");
|
|
call_on.set_rgb(1.0, 0.0, 0.0);
|
|
call_on.perform();
|
|
}
|
|
|
|
|
|
|
|
# Zweiter Knopf: Verhalten abhängig vom Modus
|
|
- platform: gpio
|
|
pin:
|
|
number: 5
|
|
mode: INPUT_PULLUP
|
|
inverted: true
|
|
name: "Funktion-Vertärker"
|
|
internal: true
|
|
on_press:
|
|
then:
|
|
- lambda: |-
|
|
if (id(mode) == 0) {
|
|
ESP_LOGD("Action", "Modus 0: Keine Aktion");
|
|
} else if (id(mode) == 1) {
|
|
ESP_LOGD("Action", "Modus 1: Ausgang EIN");
|
|
id(relay_1).turn_on();
|
|
} else if (id(mode) == 2) {
|
|
ESP_LOGD("Action", "Modus 2: Ausgang AUS");
|
|
id(relay_1).turn_on();
|
|
}
|
|
- platform: gpio
|
|
pin:
|
|
number: 0
|
|
mode: INPUT_PULLUP
|
|
inverted: true
|
|
name: "Funktion-BT"
|
|
internal: true
|
|
on_press:
|
|
then:
|
|
- lambda: |-
|
|
if (id(mode) == 0) {
|
|
ESP_LOGD("Action", "Modus 0: Keine Aktion");
|
|
} else if (id(mode) == 1) {
|
|
ESP_LOGD("Action", "Modus 1: Ausgang EIN");
|
|
id(relay_2).turn_on();
|
|
} else if (id(mode) == 2) {
|
|
ESP_LOGD("Action", "Modus 2: Ausgang AUS");
|
|
id(relay_2).turn_off();
|
|
}
|
|
|
|
|
|
|
|
button:
|
|
- platform:
|
|
name: Vertärker
|
|
on_press:
|
|
then:
|
|
- switch.turn_on: relay_1
|
|
|
|
switch:
|
|
- platform: gpio
|
|
id: relay_1
|
|
inverted: true
|
|
internal: true
|
|
on_turn_on:
|
|
- delay: 500ms
|
|
- switch.turn_off: relay_1
|
|
pin: 13
|
|
|
|
- platform: gpio
|
|
id: relay_2
|
|
name: "BT-Adapter"
|
|
inverted: true
|
|
pin: 15
|
|
|
|
light:
|
|
- platform: rgb
|
|
name: "Status-LED"
|
|
id: rgb_led
|
|
red: red_out
|
|
green: green_out
|
|
blue: blue_out
|
|
|
|
|
|
output:
|
|
- platform: esp8266_pwm
|
|
id: red_out
|
|
pin: 4
|
|
|
|
- platform: esp8266_pwm
|
|
id: green_out
|
|
pin: 14
|
|
|
|
- platform: esp8266_pwm
|
|
id: blue_out
|
|
pin: 12
|
|
|