71 lines
2.0 KiB
YAML
71 lines
2.0 KiB
YAML
homeassistant:
|
|
customize:
|
|
fan.fan_state:
|
|
friendly_name: 'Fan State (manual override)'
|
|
sensor.closet_temperature:
|
|
friendly_name: 'Closet Temperature (C)'
|
|
input_number.fan_on_temp:
|
|
friendly_name: 'Fan On Set Temperature (C)'
|
|
|
|
# CLOSET ENTITIES
|
|
fan:
|
|
- platform: mqtt
|
|
name: "fan state"
|
|
state_topic: "closet/status/fan/"
|
|
command_topic: "closet/fan"
|
|
|
|
switch:
|
|
- platform: mqtt
|
|
name: "Fan Automation Enabled"
|
|
state_topic: "closet/status/fan/automation"
|
|
command_topic: "closet/fan/automation"
|
|
state_on: "enabled"
|
|
state_off: "disabled"
|
|
payload_on: "enable"
|
|
payload_off: "disable"
|
|
icon: mdi:fan
|
|
|
|
sensor:
|
|
- platform: mqtt
|
|
name: "closet temperature"
|
|
state_topic: "closet/status/temp"
|
|
unit_of_measurement: 'Celcius'
|
|
|
|
# Example configuration.yaml entry using 'input_number' in an action in an automation
|
|
input_number:
|
|
fan_on_temp:
|
|
name: Fan On Temp
|
|
initial: 25
|
|
min: 20
|
|
max: 30
|
|
step: 0.5
|
|
unit_of_measurement: Celcuis
|
|
icon: mdi:target
|
|
mode: "box"
|
|
|
|
# This automation script runs when a value is received via MQTT on retained topic: setTemperature
|
|
# It sets the value slider on the GUI. This slides also had its own automation when the value is changed.
|
|
automation:
|
|
- alias: Closet Fan On Set Temperature slider
|
|
trigger:
|
|
platform: mqtt
|
|
topic: 'closet/status/fan/automation/temp'
|
|
action:
|
|
service: input_number.set_value
|
|
data_template:
|
|
entity_id: input_number.fan_on_temp
|
|
value: "{{ trigger.payload }}"
|
|
|
|
# This second automation script runs when the target temperature slider is moved.
|
|
# It publishes its value to the same MQTT topic it is also subscribed to.
|
|
- alias: Closet Fan Temp Slider Moved
|
|
trigger:
|
|
platform: state
|
|
entity_id: input_number.fan_on_temp
|
|
action:
|
|
service: mqtt.publish
|
|
data_template:
|
|
topic: 'closet/fan/automation/temp'
|
|
retain: true
|
|
payload: "{{ states('input_number.fan_on_temp') }}"
|