Home-AssistantConfig/config/shell_scripts/basketball.yaml

324 lines
8.0 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#-------------------------------------------
# @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
switch:
- 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