mirror of
https://github.com/CCOSTAN/Home-AssistantConfig.git
synced 2025-12-03 11:31:42 +00:00
Fixes #1159 Switched everything to Buttoms but actually - didn't have any in production. Refactor TPLink configurations by removing the deprecated tplink.yaml file and updating related components to use buttons instead of switches in logger and mqtt screens. Adjusted basketball shell script to reflect the same change.
324 lines
8.0 KiB
YAML
Executable File
324 lines
8.0 KiB
YAML
Executable File
#-------------------------------------------
|
|
# @CCOSTAN
|
|
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
|
|
# ESPHome YAML by Jeremy Shephard
|
|
#-------------------------------------------
|
|
######################################################################
|
|
## https://www.vcloudinfo.com/2020/09/home-assistant-smart-diy-basketball-backboard-project.html
|
|
######################################################################
|
|
|
|
|
|
esphome:
|
|
name: bb_node
|
|
platform: ESP8266
|
|
board: d1_mini
|
|
|
|
wifi:
|
|
ssid: "********"
|
|
password: "********"
|
|
|
|
|
|
# Enable fallback hotspot (captive portal) in case wifi connection fails
|
|
ap:
|
|
ssid: "Bb Node Fallback Hotspot"
|
|
password: "*******"
|
|
|
|
captive_portal:
|
|
|
|
# Enable logging
|
|
logger:
|
|
|
|
# Enable Home Assistant API
|
|
api:
|
|
|
|
ota:
|
|
|
|
sensor:
|
|
- platform: template
|
|
name: Baskets
|
|
id: basket
|
|
icon: mdi:basketball-hoop-outline
|
|
|
|
- platform: template
|
|
name: Swish
|
|
id: swish
|
|
icon: mdi:basketball
|
|
|
|
- platform: template
|
|
name: Backboards
|
|
id: backboard
|
|
icon: mdi:basketball-hoop
|
|
|
|
- platform: template
|
|
name: Previous Baskets
|
|
id: last_basket
|
|
icon: mdi:basketball-hoop-outline
|
|
|
|
- platform: template
|
|
name: Previous Swishes
|
|
id: last_swish
|
|
icon: mdi:basketball
|
|
|
|
- platform: template
|
|
name: Previous Backboards
|
|
id: last_backboard
|
|
icon: mdi:basketball-hoop
|
|
|
|
binary_sensor:
|
|
- platform: gpio
|
|
pin: D0
|
|
name: "Vibration Sensor"
|
|
id: bs
|
|
filters:
|
|
- delayed_on: 50ms
|
|
- delayed_off: 2s
|
|
on_press:
|
|
- lambda: |-
|
|
id(backboard_gbl) += 1;
|
|
id(backboard).publish_state(id(backboard_gbl));
|
|
|
|
- if:
|
|
condition:
|
|
switch.is_on: bb_on_lights_off
|
|
then:
|
|
- light.turn_on:
|
|
id: bb_light
|
|
brightness: 100%
|
|
red: 100%
|
|
green: 0%
|
|
blue: 0%
|
|
- delay: 3s
|
|
- light.turn_off: bb_light
|
|
- platform: gpio
|
|
pin:
|
|
number: D5
|
|
inverted: True
|
|
name: "Distance Sensor"
|
|
id: ds
|
|
filters:
|
|
- delayed_off: 500ms
|
|
on_press:
|
|
- if:
|
|
condition:
|
|
switch.is_on: bb_on
|
|
then:
|
|
- if:
|
|
condition:
|
|
binary_sensor.is_off: bs
|
|
then:
|
|
- lambda: |-
|
|
id(swish_gbl) += 1;
|
|
id(swish).publish_state(id(swish_gbl));
|
|
auto call = id(bb_light).turn_on();
|
|
call.set_brightness(1.0);
|
|
call.set_effect("Strobe Effect With Custom Values");
|
|
call.perform();
|
|
- delay: 5s
|
|
- light.turn_off: bb_light
|
|
- light.turn_on:
|
|
id: bb_light
|
|
brightness: 60%
|
|
red: 100%
|
|
green: 0%
|
|
blue: 0%
|
|
|
|
- if:
|
|
condition:
|
|
binary_sensor.is_on: bs
|
|
then:
|
|
- lambda: |-
|
|
id(basket_gbl) += 1;
|
|
id(backboard_gbl) -= 1;
|
|
id(basket).publish_state(id(basket_gbl));
|
|
- light.turn_on:
|
|
id: bb_light
|
|
brightness: 100%
|
|
red: 25%
|
|
green: 100%
|
|
blue: 0%
|
|
- delay: 3s
|
|
- light.turn_off: bb_light
|
|
- light.turn_on:
|
|
id: bb_light
|
|
brightness: 60%
|
|
red: 100%
|
|
green: 0%
|
|
blue: 0%
|
|
|
|
- if:
|
|
condition:
|
|
switch.is_on: bb_on_lights_off
|
|
then:
|
|
- if:
|
|
condition:
|
|
binary_sensor.is_off: bs
|
|
then:
|
|
- lambda: |-
|
|
id(swish_gbl) += 1;
|
|
id(swish).publish_state(id(swish_gbl));
|
|
auto call = id(bb_light).turn_on();
|
|
call.set_brightness(1.0);
|
|
call.set_effect("Strobe Effect With Custom Values");
|
|
call.perform();
|
|
- delay: 5s
|
|
- light.turn_off: bb_light
|
|
|
|
- if:
|
|
condition:
|
|
binary_sensor.is_on: bs
|
|
then:
|
|
- lambda: |-
|
|
id(basket_gbl) += 1;
|
|
id(backboard_gbl) -= 1;
|
|
id(basket).publish_state(id(basket_gbl));
|
|
- light.turn_on:
|
|
id: bb_light
|
|
brightness: 100%
|
|
red: 0%
|
|
green: 100%
|
|
blue: 10%
|
|
- delay: 3s
|
|
- light.turn_off: bb_light
|
|
|
|
|
|
light:
|
|
|
|
- platform: fastled_clockless
|
|
chipset: WS2812
|
|
name: "FastLED WS2811 Light"
|
|
pin: D2
|
|
num_leds: 150
|
|
rgb_order: GRB
|
|
id: bb_light
|
|
effects:
|
|
- addressable_scan:
|
|
- addressable_scan:
|
|
name: Scan Effect With Custom Values
|
|
move_interval: 30ms
|
|
scan_width: 20
|
|
- strobe:
|
|
- strobe:
|
|
name: Strobe Effect With Custom Values
|
|
colors:
|
|
- state: True
|
|
brightness: 100%
|
|
red: 0%
|
|
green: 0%
|
|
blue: 100%
|
|
duration: 500ms
|
|
- state: False
|
|
duration: 250ms
|
|
- state: True
|
|
brightness: 100%
|
|
red: 50%
|
|
green: 0%
|
|
blue: 100%
|
|
duration: 500ms
|
|
- addressable_color_wipe:
|
|
- addressable_color_wipe:
|
|
name: Color Wipe Effect With Custom Values
|
|
colors:
|
|
- red: 0%
|
|
green: 0%
|
|
blue: 100%
|
|
num_leds: 10
|
|
- red: 0%
|
|
green: 0%
|
|
blue: 0%
|
|
num_leds: 10
|
|
- red: 0%
|
|
green: 0%
|
|
blue: 100%
|
|
num_leds: 20
|
|
- red: 0%
|
|
green: 0%
|
|
blue: 0%
|
|
num_leds: 10
|
|
- red: 0%
|
|
green: 0%
|
|
blue: 100%
|
|
num_leds: 40
|
|
- red: 0%
|
|
green: 0%
|
|
blue: 0%
|
|
num_leds: 10
|
|
add_led_interval: 32ms
|
|
reverse: False
|
|
- addressable_fireworks:
|
|
name: Fireworks Effect With Custom Values
|
|
update_interval: 10ms
|
|
spark_probability: 80%
|
|
use_random_color: true
|
|
fade_out_rate: 50
|
|
|
|
button:
|
|
- platform: template
|
|
name: Basketball Status Lights
|
|
id: bb_on_lights_off
|
|
icon: mdi:handball
|
|
turn_on_action:
|
|
- switch.template.publish:
|
|
id: bb_on_lights_off
|
|
state: ON
|
|
turn_off_action:
|
|
- switch.template.publish:
|
|
id: bb_on_lights_off
|
|
state: OFF
|
|
- lambda: |-
|
|
id(last_backboard).publish_state(id(backboard_gbl));
|
|
id(last_basket).publish_state(id(basket_gbl));
|
|
id(last_swish).publish_state(id(swish_gbl));
|
|
id(backboard_gbl) = 0;
|
|
id(basket_gbl) = 0;
|
|
id(swish_gbl) = 0;
|
|
id(backboard).publish_state(id(backboard_gbl));
|
|
id(basket).publish_state(id(basket_gbl));
|
|
id(swish).publish_state(id(swish_gbl));
|
|
|
|
- platform: template
|
|
name: Basketball Always Lights
|
|
id: bb_on
|
|
icon: mdi:handball
|
|
turn_on_action:
|
|
- switch.template.publish:
|
|
id: bb_on
|
|
state: ON
|
|
- light.turn_on:
|
|
id: bb_light
|
|
brightness: 60%
|
|
red: 100%
|
|
green: 0%
|
|
blue: 0%
|
|
|
|
turn_off_action:
|
|
- switch.template.publish:
|
|
id: bb_on
|
|
state: OFF
|
|
- light.turn_off: bb_light
|
|
- lambda: |-
|
|
id(last_backboard).publish_state(id(backboard_gbl));
|
|
id(last_basket).publish_state(id(basket_gbl));
|
|
id(last_swish).publish_state(id(swish_gbl));
|
|
id(backboard_gbl) = 0;
|
|
id(basket_gbl) = 0;
|
|
id(swish_gbl) = 0;
|
|
id(backboard).publish_state(id(backboard_gbl));
|
|
id(basket).publish_state(id(basket_gbl));
|
|
id(swish).publish_state(id(swish_gbl));
|
|
|
|
globals:
|
|
- id: backboard_gbl
|
|
type: int
|
|
restore_value: no
|
|
initial_value: '0'
|
|
|
|
- id: basket_gbl
|
|
type: int
|
|
restore_value: no
|
|
initial_value: '0'
|
|
|
|
- id: swish_gbl
|
|
type: int
|
|
restore_value: no
|
|
initial_value: '0'
|