new actions: set vertical louver position

This commit is contained in:
GrKoR
2022-06-02 18:48:49 +03:00
parent 262b3bf69a
commit fc2fd99cec
8 changed files with 497 additions and 58 deletions

View File

@@ -3,9 +3,12 @@ external_components:
components: [ aux_ac ]
refresh: 0s
substitutions:
devicename: test_aux_ac_ext_esp32
upper_devicename: Test AUX
esphome:
name: test_aux_ac_ext_esp32
name: $devicename
platform: ESP32
board: nodemcu-32s
@@ -51,21 +54,54 @@ sensor:
climate:
- platform: aux_ac
name: "AC Name"
name: $upper_devicename
id: aux_id
uart_id: ac_uart_bus
period: 7s # период опроса состояния сплита, по дефолту 7 сек
show_action: true # надо ли показывать текущий режим работы: при HEAT_COOL mode сплит может греть (HEAT), охлаждать (COOL) или бездействовать (IDLE)
indoor_temperature: # сенсор, показывающий температуру воздуха на внутреннем блоке кондиционера; имеет все те же параметры, как и любой сенсор ESPHome
name: AC Indoor Temperature
id: ac_indoor_temp
internal: true # сенсор установлен как внутренний по дефолту (не попадёт в Home Assistant)
period: 7s
show_action: true
display_inverted: true
indoor_temperature:
name: $upper_devicename Indoor Temperature
id: ${devicename}_indoor_temp
internal: false
display_state:
name: $upper_devicename Display State
id: ${devicename}_display_state
internal: false
outdoor_temperature:
name: $upper_devicename Outdoor Temperature
id: ${devicename}_outdoor_temp
internal: false
outbound_temperature:
name: $upper_devicename Colant Outbound Temperature
id: ${devicename}_outbound_temp
internal: false
inbound_temperature:
name: $upper_devicename Colant Inbound Temperature
id: ${devicename}_inbound_temp
internal: false
compressor_temperature:
name: $upper_devicename Compressor Temperature
id: ${devicename}_strange_temp
internal: false
defrost_state:
name: $upper_devicename Defrost State
id: ${devicename}_defrost_state
internal: false
invertor_power:
name: $upper_devicename Invertor Power
id: ${devicename}_invertor_power
internal: false
preset_reporter:
name: $upper_devicename Preset Reporter
id: ${devicename}_preset_reporter
internal: false
visual:
min_temperature: 16
max_temperature: 32
temperature_step: 0.5
supported_modes:
- HEAT_COOL # не AUTO, так как только нагревает и остужает. В доках на ESPHome говорится, что AUTO - это если у устройства есть календарь и какие-то установки по расписанию.
- HEAT_COOL
- COOL
- HEAT
- DRY
@@ -77,10 +113,9 @@ climate:
- SLEEP
custom_presets:
- CLEAN
- FEEL
- HEALTH
- ANTIFUNGUS
supported_swing_modes:
- VERTICAL
- HORIZONTAL
- BOTH
- BOTH

View File

@@ -3,8 +3,12 @@ external_components:
components: [ aux_ac ]
refresh: 0s
substitutions:
devicename: test_aux_ac_ext_engeneer
upper_devicename: Test AUX
esphome:
name: test_aux_ac_ext
name: $devicename
platform: ESP8266
board: esp12e
@@ -69,26 +73,54 @@ sensor:
climate:
- platform: aux_ac
name: "AC Name"
name: $upper_devicename
id: aux_id
uart_id: ac_uart_bus
period: 7s # период опроса состояния сплита, по дефолту 7 сек
show_action: true # надо ли показывать текущий режим работы: при HEAT_COOL mode сплит может греть (HEAT), охлаждать (COOL) или бездействовать (IDLE)
display_inverted: true # как отрабатывать вкл/выкл дисплея: у Rovex "1" выключает дисплей, у многих других "1" дисплей включает
indoor_temperature: # сенсор, показывающий температуру воздуха на внутреннем блоке кондиционера; имеет все те же параметры, как и любой сенсор ESPHome
name: AC Indoor Temperature
id: ac_indoor_temp
internal: false # сенсор установлен как внутренний по дефолту (не попадёт в Home Assistant)
period: 7s
show_action: true
display_inverted: true
indoor_temperature:
name: $upper_devicename Indoor Temperature
id: ${devicename}_indoor_temp
internal: false
display_state:
name: AC Display State
id: ac_display_state
internal: false # сенсор установлен как внутренний по дефолту (не попадёт в Home Assistant)
name: $upper_devicename Display State
id: ${devicename}_display_state
internal: false
outdoor_temperature:
name: $upper_devicename Outdoor Temperature
id: ${devicename}_outdoor_temp
internal: false
outbound_temperature:
name: $upper_devicename Colant Outbound Temperature
id: ${devicename}_outbound_temp
internal: false
inbound_temperature:
name: $upper_devicename Colant Inbound Temperature
id: ${devicename}_inbound_temp
internal: false
compressor_temperature:
name: $upper_devicename Compressor Temperature
id: ${devicename}_strange_temp
internal: false
defrost_state:
name: $upper_devicename Defrost State
id: ${devicename}_defrost_state
internal: false
invertor_power:
name: $upper_devicename Invertor Power
id: ${devicename}_invertor_power
internal: false
preset_reporter:
name: $upper_devicename Preset Reporter
id: ${devicename}_preset_reporter
internal: false
visual:
min_temperature: 16
max_temperature: 32
temperature_step: 0.5
supported_modes:
- HEAT_COOL # не AUTO, так как только нагревает и остужает. В доках на ESPHome говорится, что AUTO - это если у устройства есть календарь и какие-то установки по расписанию.
- HEAT_COOL
- COOL
- HEAT
- DRY
@@ -100,7 +132,6 @@ climate:
- SLEEP
custom_presets:
- CLEAN
- FEEL
- HEALTH
- ANTIFUNGUS
supported_swing_modes:
@@ -113,7 +144,7 @@ switch:
- platform: template
name: AC Display
lambda: |-
if (id(ac_display_state).state) {
if (id(${devicename}_display_state).state) {
return true;
} else {
return false;

View File

@@ -0,0 +1,159 @@
external_components:
- source:
type: local
path: ..\components
substitutions:
devicename: test_local_airflow_dir
upper_devicename: Test AUX
esphome:
name: $devicename
platform: ESP8266
board: esp12e
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_pass
manual_ip:
static_ip: !secret wifi_ip
gateway: !secret wifi_gateway
subnet: !secret wifi_subnet
dns1: 8.8.8.8
dns2: 1.1.1.1
reboot_timeout: 0s
ap:
ssid: $upper_devicename Fallback Hotspot
password: !secret wifi_ap_pass
logger:
level: DEBUG
baud_rate: 0
api:
password: !secret api_pass
reboot_timeout: 0s
ota:
password: !secret ota_pass
web_server:
port: 80
uart:
id: ac_uart_bus
tx_pin: GPIO1
rx_pin: GPIO3
baud_rate: 4800
data_bits: 8
parity: EVEN
stop_bits: 1
sensor:
- platform: uptime
name: Uptime Sensor
climate:
- platform: aux_ac
name: $upper_devicename
id: aux_id
uart_id: ac_uart_bus
period: 7s
show_action: true
display_inverted: true
button:
- platform: template
name: ${upper_devicename} VLouver Stop
icon: "mdi:circle-small"
on_press:
- aux_ac.vlouver_stop: aux_id
- platform: template
name: ${upper_devicename} VLouver Swing
icon: "mdi:pan-vertical"
on_press:
- aux_ac.vlouver_swing: aux_id
- platform: template
name: ${upper_devicename} VLouver Top
icon: "mdi:pan-up"
on_press:
- aux_ac.vlouver_top: aux_id
- platform: template
name: ${upper_devicename} VLouver Middle Above
icon: "mdi:pan-top-left"
on_press:
- aux_ac.vlouver_middle_above: aux_id
- platform: template
name: ${upper_devicename} VLouver Middle
icon: "mdi:pan-left"
on_press:
- aux_ac.vlouver_middle: aux_id
- platform: template
name: ${upper_devicename} VLouver Middle Below
icon: "mdi:pan-bottom-left"
on_press:
- aux_ac.vlouver_middle_below: aux_id
- platform: template
name: ${upper_devicename} VLouver Bottom
icon: "mdi:pan-down"
on_press:
- aux_ac.vlouver_bottom: aux_id
number:
- platform: template
name: ${upper_devicename} Vertical Louver
id: ${devicename}_vlouver
icon: "mdi:circle-small"
mode: "slider"
min_value: 0
max_value: 6
step: 1
set_action:
then:
- lambda: !lambda |-
auto icon = "";
if (x == 6) x = 7; // делаем так, чтобы выключение отрабатывать корректно
switch ( static_cast<uint8_t>(x) ) {
case 0: // vertical swing
icon = "mdi:pan-vertical";
break;
case 1: // top position
icon = "mdi:pan-up";
break;
case 2: // middle above position
icon = "mdi:pan-top-left";
break;
case 3: // middle position
icon = "mdi:pan-left";
break;
case 4: // middle below position
icon = "mdi:pan-bottom-left";
break;
case 5: // bottom position
icon = "mdi:pan-down";
break;
case 7: // stop vertical louver
default:
icon = "mdi:circle-small";
break;
}
id(${devicename}_vlouver).set_icon(icon);
id(aux_id).setVLouverSequence( static_cast<esphome::aux_ac::ac_louver_V>(x) );

View File

@@ -3,8 +3,12 @@ external_components:
type: local
path: ..\components
substitutions:
devicename: test_local_airflow_dir
upper_devicename: Test AUX
esphome:
name: test_aux_ac_local
name: $devicename
platform: ESP8266
board: esp12e
@@ -51,21 +55,54 @@ sensor:
climate:
- platform: aux_ac
name: "AC Name"
name: $upper_devicename
id: aux_id
uart_id: ac_uart_bus
period: 7s # период опроса состояния сплита, по дефолту 7 сек
show_action: true # надо ли показывать текущий режим работы: при HEAT_COOL mode сплит может греть (HEAT), охлаждать (COOL) или бездействовать (IDLE)
indoor_temperature: # сенсор, показывающий температуру воздуха на внутреннем блоке кондиционера; имеет все те же параметры, как и любой сенсор ESPHome
name: AC Indoor Temperature
id: ac_indoor_temp
internal: true # сенсор установлен как внутренний по дефолту (не попадёт в Home Assistant)
period: 7s
show_action: true
display_inverted: true
indoor_temperature:
name: $upper_devicename Indoor Temperature
id: ${devicename}_indoor_temp
internal: false
display_state:
name: $upper_devicename Display State
id: ${devicename}_display_state
internal: false
outdoor_temperature:
name: $upper_devicename Outdoor Temperature
id: ${devicename}_outdoor_temp
internal: false
outbound_temperature:
name: $upper_devicename Colant Outbound Temperature
id: ${devicename}_outbound_temp
internal: false
inbound_temperature:
name: $upper_devicename Colant Inbound Temperature
id: ${devicename}_inbound_temp
internal: false
compressor_temperature:
name: $upper_devicename Compressor Temperature
id: ${devicename}_strange_temp
internal: false
defrost_state:
name: $upper_devicename Defrost State
id: ${devicename}_defrost_state
internal: false
invertor_power:
name: $upper_devicename Invertor Power
id: ${devicename}_invertor_power
internal: false
preset_reporter:
name: $upper_devicename Preset Reporter
id: ${devicename}_preset_reporter
internal: false
visual:
min_temperature: 16
max_temperature: 32
temperature_step: 0.5
supported_modes:
- HEAT_COOL # не AUTO, так как только нагревает и остужает. В доках на ESPHome говорится, что AUTO - это если у устройства есть календарь и какие-то установки по расписанию.
- HEAT_COOL
- COOL
- HEAT
- DRY
@@ -77,10 +114,9 @@ climate:
- SLEEP
custom_presets:
- CLEAN
- FEEL
- HEALTH
- ANTIFUNGUS
supported_swing_modes:
- VERTICAL
- HORIZONTAL
- BOTH
- BOTH

View File

@@ -6,8 +6,12 @@ external_components:
#components: [ aux_ac ]
#refresh: 0s
substitutions:
devicename: test_local_minimal
upper_devicename: Test AUX
esphome:
name: test_aux_ac_minimal
name: $devicename
platform: ESP8266
board: esp12e
@@ -41,4 +45,4 @@ uart:
climate:
- platform: aux_ac
name: "AC Name"
name: $upper_devicename