mirror of
https://github.com/CeeWeasel/fresh-home.git
synced 2026-08-09 10:30:14 -04:00
75fb9c2ab8
finally fixing hvac-multisensor. All of this was caused by the display switch referenced the display while it wasn't plugged in. Updated code to check for the existence first.
213 lines
5.3 KiB
YAML
213 lines
5.3 KiB
YAML
# 3v3 en svp sun 34 35 32 33 25 26 27 14 12 gnd 13 sd2 sd3 gnd 5v
|
|
substitutions:
|
|
devicename: hvac-multisensor-425f4f
|
|
entity_name: hvac_multisensor
|
|
friendly_name: HVAC MultiSensor
|
|
comment: Clever MultiSensor
|
|
platform: ESP32
|
|
board: wemos_d1_mini32
|
|
static_ip: !secret hvac-multisensor-ip
|
|
|
|
sda_pin: GPIO21
|
|
scl_pin: GPIO22
|
|
door_pin: GPIO19
|
|
one_wire_pin: GPIO14
|
|
trigger_pin: GPIO04
|
|
echo_pin: GPIO12
|
|
|
|
#mdc_pin: GPIO23
|
|
#mdio_pin: GPIO18
|
|
#clk_mode: GPIO17_OUT
|
|
#power_pin: GPIO5
|
|
|
|
packages:
|
|
#wifi: !include common/wifi_no_power_save.yaml
|
|
ethernet: !include common/ethernet.yaml
|
|
device_base: !include common/device_base.yaml
|
|
ble_proxy: !include common/ble_proxy.yaml
|
|
|
|
esphome:
|
|
name: ${devicename}
|
|
friendly_name: ${friendly_name}
|
|
name_add_mac_suffix: false
|
|
|
|
esp32:
|
|
board: ${board}
|
|
framework:
|
|
type: esp-idf
|
|
|
|
web_server:
|
|
port: 80
|
|
version: 3
|
|
include_internal: true
|
|
|
|
# Enable logging
|
|
logger:
|
|
|
|
api: # Using settings from common/device_base.yaml
|
|
|
|
ota: # Using settings from common/device_base.yaml
|
|
|
|
esp32_ble_tracker:
|
|
|
|
# globals:
|
|
# - id: screen_power
|
|
# type: bool
|
|
# restore_value: yes
|
|
# initial_value: 'true'
|
|
|
|
# font:
|
|
# - file: 'CascadiaMonoPL.ttf'
|
|
# id: font1
|
|
# size: 17
|
|
|
|
# one_wire:
|
|
# - platform: gpio
|
|
# pin: ${one_wire_pin}
|
|
|
|
# i2c:
|
|
# sda: ${sda_pin}
|
|
# scl: ${scl_pin}
|
|
# frequency: 800kHz
|
|
|
|
# display:
|
|
# - platform: ssd1306_i2c
|
|
# id: oled
|
|
# model: "SSD1306 128x64"
|
|
# #reset_pin: GPIO14 #D0
|
|
# address: 0x3C
|
|
# lambda: |-
|
|
# it.print(0, 0, id(font1), "Delta:");
|
|
# it.printf(128, 0, id(font1), TextAlign::TOP_RIGHT, "%.1f°F", id(hvac_delta).state);
|
|
# it.print(0, 16, id(font1), "Supply:");
|
|
# it.printf(128, 16, id(font1), TextAlign::TOP_RIGHT, "%.1f°F", id(hvac_supply).state);
|
|
# it.print(0, 32, id(font1), "Return:");
|
|
# it.printf(128, 32, id(font1), TextAlign::TOP_RIGHT, "%.1f°F", id(hvac_return).state);
|
|
# it.print(0, 48, id(font1), "Ambient:");
|
|
# it.printf(128, 48, id(font1), TextAlign::TOP_RIGHT, "%.1f°F", id(ambient).state);
|
|
|
|
# sensor:
|
|
# - platform: dallas_temp
|
|
# address: 0xB33C01B607798528
|
|
# name: "Return Temperature"
|
|
# id: hvac_return
|
|
# update_interval: 10s
|
|
# filters:
|
|
# - lambda: return x * (9.0/5.0) + 32.0;
|
|
# unit_of_measurement: "°F"
|
|
# state_class: measurement
|
|
|
|
# - platform: dallas_temp
|
|
# address: 0x0F3C01B6070C1328
|
|
# name: "Supply Temperature"
|
|
# id: hvac_supply
|
|
# update_interval: 10s
|
|
# filters:
|
|
# - lambda: return x * (9.0/5.0) + 32.0;
|
|
# unit_of_measurement: "°F"
|
|
# state_class: measurement
|
|
|
|
# - platform: dallas_temp
|
|
# address: 0xFA3C01B607005B28
|
|
# name: "Ambient Temperature"
|
|
# id: ambient
|
|
# update_interval: 10s
|
|
# filters:
|
|
# - lambda: return x * (9.0/5.0) + 32.0;
|
|
# unit_of_measurement: "°F"
|
|
# state_class: measurement
|
|
|
|
# - platform: template
|
|
# name: "Delta Temperature"
|
|
# id: hvac_delta
|
|
# lambda: |-
|
|
# return (id(hvac_supply).state - id(hvac_return).state);
|
|
# update_interval: 10s
|
|
# unit_of_measurement: "°F"
|
|
# state_class: measurement
|
|
# filters:
|
|
# - or:
|
|
# - throttle: 60s
|
|
# - delta: 1.0
|
|
|
|
# - platform: ultrasonic
|
|
# trigger_pin: ${trigger_pin}
|
|
# echo_pin: ${echo_pin}
|
|
# id: ultrasonic_source
|
|
# #update_interval: 5s
|
|
# internal: True
|
|
# filters:
|
|
# - sliding_window_moving_average:
|
|
# window_size: 5
|
|
# send_every: 5
|
|
# send_first_at: 1
|
|
# on_value:
|
|
# then:
|
|
# - sensor.template.publish:
|
|
# id: distance_from_bottom
|
|
# state: !lambda 'return id(ultrasonic_source).state;'
|
|
|
|
# - sensor.template.publish:
|
|
# id: distance_from_top
|
|
# state: !lambda 'return id(ultrasonic_source).state;'
|
|
|
|
# - platform: template
|
|
# unit_of_measurement: "cm"
|
|
# state_class: measurement
|
|
# id: distance_from_bottom
|
|
# name: "Salt Level in CM"
|
|
# #update_interval: 5s
|
|
# filters:
|
|
# - lambda: 'return (0.94 - (id(ultrasonic_source).state)) * 100;'
|
|
# on_value:
|
|
# then:
|
|
# - sensor.template.publish:
|
|
# id: level_in_bags
|
|
# state: !lambda 'return id(distance_from_bottom).state;'
|
|
|
|
# - platform: template
|
|
# unit_of_measurement: "cm"
|
|
# state_class: measurement
|
|
# id: distance_from_top
|
|
# name: "Salt Level From Top in CM"
|
|
# #update_interval: 5s
|
|
# filters:
|
|
# - lambda: 'return (id(ultrasonic_source).state) * 100;'
|
|
|
|
# - platform: template
|
|
# unit_of_measurement: "bags"
|
|
# state_class: measurement
|
|
# id: level_in_bags
|
|
# name: "Salt Level in Bags"
|
|
# #update_interval: 5s
|
|
# filters:
|
|
# - lambda: 'return (id(distance_from_bottom).state) / 17.5;'
|
|
|
|
# binary_sensor:
|
|
# - platform: gpio
|
|
# name: "Door"
|
|
# device_class: door
|
|
# pin:
|
|
# number: ${door_pin}
|
|
# mode: INPUT_PULLUP
|
|
|
|
# switch:
|
|
# - platform: template
|
|
# id: display_switch
|
|
# name: "Display"
|
|
# lambda: |-
|
|
# if (id(screen_power)) {
|
|
# id(oled).turn_on();
|
|
# } else {
|
|
# id(oled).turn_off();
|
|
# }
|
|
# return id(screen_power);
|
|
# turn_on_action:
|
|
# - lambda: |-
|
|
# id(screen_power) = true;
|
|
# // id(oled).turn_on();
|
|
# turn_off_action:
|
|
# - lambda: |-
|
|
# id(screen_power) = false;
|
|
# // id(oled).turn_off();
|