Files
Fabula/esphome/fabula.yaml
2025-12-06 23:20:53 +01:00

256 lines
5.0 KiB
YAML

# ---------------------- Global config ----------------------
esphome:
name: fabula
esp8266:
board: d1_mini_lite
# Enable logging
logger:
ota:
- platform: esphome
password: ""
wifi:
ssid: "Pew"
password: "SediaChinita@Terrazzo2017"
# ---------------------- PN532 NFC Reader ----------------------
i2c:
# I2C config left to default. For ESP8266 is:
# GPIO5 (D1) -> I2C SCL
# GPIO4 (D2) -> I2C SDA
scan: False
frequency: 100kHz
timeout: 13ms #to prevent pn532 timeout
pn532_i2c:
update_interval: 1s
on_tag:
then:
- logger.log: "TROVATO TAG!!!!"
- dfplayer.play_folder:
folder: !lambda 'return 1;'
loop: True
on_tag_removed:
then:
- logger.log: "RIMOSSO TAG!!!!"
- dfplayer.pause
# ---------------------- DFPlayer MP3 Player ----------------------
uart:
tx_pin: D8
rx_pin: D7
baud_rate: 9600
dfplayer:
on_finished_playback:
then:
logger.log: 'Playback finished event'
binary_sensor:
# ---------------------- NFC TAG Sensor ----------------------
- platform: pn532
uid: 74-10-37-94
name: "PN532 NFC Tag"
# ---------------------- Phisical buttons ----------------------
# - platform: gpio
# pin:
# number: D3
# mode:
# input: true
# pullup: true
# id: "vol_down"
# name: "Volume down"
# filters:
# - settle: 10ms
# - autorepeat:
# time_off: 200ms
# time_on: 200ms
# on_press:
# then:
# - dfplayer.volume_down
# - platform: gpio
# pin:
# number: D4
# mode:
# input: true
# pullup: true
# id: "vol_up"
# name: "Volume up"
# filters:
# - settle: 10ms
# - autorepeat:
# time_off: 200ms
# time_on: 200ms- platform: gpio
# pin:
# number: D3
# mode:
# input: true
# pullup: true
# id: "vol_down"
# name: "Volume down"
# filters:
# - settle: 10ms
# - autorepeat:
# time_off: 200ms
# time_on: 200ms
# on_press:
# then:
# - dfplayer.volume_down
# - platform: gpio
# pin:
# number: D4
# mode:
# input: true
# pullup: true
# id: "vol_up"
# name: "Volume up"
# filters:
# - settle: 10ms
# - autorepeat:
# time_off: 200ms
# time_on: 200ms
# on_press:
# then:
# - dfplayer.volume_up
# on_press:
# then:
# - dfplayer.volume_up
- platform: gpio
pin:
number: D5
mode:
input: true
pullup: true
id: "trk_prev"
name: "Previous track"
filters:
- settle: 10ms
on_press:
then:
- dfplayer.play_previous
- platform: gpio
pin:
number: D6
mode:
input: true
pullup: true
id: "trk_next"
name: "Next track"
filters:
- settle: 10ms
on_press:
then:
- dfplayer.play_next
# ---------------------- REMOVE FROM THERE TO END OF FILE WHEN TESTING FINISHED ----------------------
api:
# Per eseguire queste actions, andare in Home Assistant dentro Developer Tools -> Actions -> Inserire:
# action: esphome.fabula_dfplayer_play_folder
# data: {
# "folder": 2,
# "file": 1
# }
actions:
- action: dfplayer_next
then:
- dfplayer.play_next:
- action: dfplayer_previous
then:
- dfplayer.play_previous:
- action: dfplayer_play
variables:
file: int
then:
- dfplayer.play: !lambda 'return file;'
- action: dfplayer_play_loop
variables:
file: int
loop_: bool
then:
- dfplayer.play:
file: !lambda 'return file;'
loop: !lambda 'return loop_;'
- action: dfplayer_play_folder
variables:
folder: int
file: int
then:
- dfplayer.play_folder:
folder: !lambda 'return folder;'
file: !lambda 'return file;'
- action: dfplayer_play_loop_folder
variables:
folder: int
then:
- dfplayer.play_folder:
folder: !lambda 'return folder;'
loop: true
- action: dfplayer_set_device_tf
then:
- dfplayer.set_device: TF_CARD
- action: dfplayer_set_device_usb
then:
- dfplayer.set_device: USB
- action: dfplayer_set_volume
variables:
volume: int
then:
- dfplayer.set_volume: !lambda 'return volume;'
- action: dfplayer_set_eq
variables:
preset: int
then:
- dfplayer.set_eq: !lambda 'return static_cast<dfplayer::EqPreset>(preset);'
- action: dfplayer_sleep
then:
- dfplayer.sleep
- action: dfplayer_reset
then:
- dfplayer.reset
- action: dfplayer_start
then:
- dfplayer.start
- action: dfplayer_pause
then:
- dfplayer.pause
- action: dfplayer_stop
then:
- dfplayer.stop
- action: dfplayer_random
then:
- dfplayer.random
- action: dfplayer_volume_up
then:
- dfplayer.volume_up
- action: dfplayer_volume_down
then:
- dfplayer.volume_down