forked from dentra/esphome-tion
-
Notifications
You must be signed in to change notification settings - Fork 0
/
tion.yaml.j2
326 lines (314 loc) · 12.3 KB
/
tion.yaml.j2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
{%- if (port|length) == 0 or (type|length) == 0 %}{{ ("port or type not defined")|raise}}{% endif -%}
substitutions:
{%- if port == "ble" %}
# tion mac address. setup yours.
tion_mac_address: 00:00:00:00:00:00
{%- endif %}
# name of the node.
node_name: tion-{{ "lite" if type == "lt" else type }}
# name for main climate entity and prefix for all others.
friendly_name: $node_name
# add suffix for node name to have one firmware for many devices.
node_add_mac_suffix: "{{ 'true' if enable_node_add_mac_suffix == 'true' else 'false' }}"
{%- if type == "3s" and port == "uart" %}
# board
board: esp01_1m
{%- endif %}
{%- if type in ["3s", "o2"] and port == "uart" %}
# uart configuration
# make sure to use YOUR pins!
tx_pin: TX
rx_pin: RX
baud_rate: "115200"
# uart proxy configuration (optional)
# make sure to use YOUR pins!
proxy_tx_pin: GPIO15
proxy_rx_pin: GPIO13
proxy_baud_rate: "115200"
{%- endif %}
# wifi settings.
wifi_ssid: !secret wifi_ssid
wifi_password: !secret wifi_password
{%- if (project_source|length) > 0 %}
project_source: {{ project_source }}
{%- endif %}
{%- if (project_branch|length) > 0 %}
project_branch: {{ project_branch }}
{%- endif %}
{%- if (project_version|length) > 0 %}
project_version: {{ project_version }}
{%- endif %}
packages:
tion:
url: https://github.com/dentra/esphome-tion
ref: {{ version_tion }} # cant use substitutions here
files:
## Enable additional WiFi signal sensor. Comment next line to disable.
- packages/wifi_signal.yaml
{%- if port == "ble" %}
## Enable additional BLE RSSI sensor. Comment next line to disable.
- packages/rssi_signal.yaml
{%- endif %}
## Enable additional Uptime sensor. Comment next line to disable.
- packages/uptime.yaml
## Enable additional Restart button. Comment next line to disable.
- packages/restart.yaml
## Base climate definition. Do not comment or move or remove.
- packages/tion_{{ type }}_climate.yaml
{%- if type == "lt" %}
## Enable maximum target temperature to 30°C. Uncomment next line to enable.
#- packages/tion_temperature30c.yaml
{%- else %}
## Enable maximum target temperature to 30°C. Comment next line to disable.
- packages/tion_temperature30c.yaml
{%- endif %}
## Uncomment to enable heat_cool mode to workaraund when using Home Assistant turn_on service.
{{ "" if enable_heat_cool == "true" else "# " -}}
- packages/tion_enable_heat_cool.yaml
{%- if type != "3s" %}
## Uncomment next line to enable additional energy sensor.
{{ "" if enable_energy == "true" else "# " -}}
- packages/tion_energy.yaml
{%- endif %}
{%- if type == "3s" and port == "uart" %}
## Comment to disable uart proxy support.
- packages/tion_3s_proxy.yaml
{%- endif %}
{%- if type == "o2" and port == "uart" %}
## Unomment to enable uart proxy support.
# - packages/tion_o2_proxy.yaml
{%- endif %}
{%- if type in ["3s", "o2"] %}
## Antifrize protection. Automatically turns on the heater at a temperature of 0°C and below.
- packages/tion_3s_enable_antifrize.yaml
{%- endif %}
{%- if type == "3s" %}
## Turn the breezer off before enable heat mode.
- packages/tion_3s_enable_off_before_heat.yaml
{%- endif %}
## Common configuration settings. Do not comment or move or remove.
- packages/base.yaml
{%- if type == "3s" and port == "uart" %}
## Change to packages/esp32.yaml if you want to use ESP32.
- packages/esp8266.yaml
{%- endif %}
{%- if type == "o2" and port == "uart" %}
# Change to esp32_s2.yaml/esp32_c3.yaml/esp32_s3.yaml to use with ESP32-S2/C3/S3 chip.
- packages/esp32.yaml
{%- endif %}
{%- if type == "4s" and port == "uart" %}
# Change to esp32_s2.yaml/esp32_c3.yaml to use with ESP32-S2/ESP32-C3 chip or change to esp32.yaml to use with ESP32 chip.
- packages/esp32_s3.yaml
{%- endif %}
{%- if port == "ble" %}
## BLE configuration settings. Do not comment or move or remove.
- packages/esp32_ble.yaml
## Uncomment next line to enable persistent connection runtime control switch.
# - packages/persistent.yaml
## Uncomment next line to enable additional connect switch useful for debugging.
# - packages/connect.yaml
{%- endif %}
{%- if type == "4s" %}
## Uncomment next line to enable additional internal timers support.
# - packages/tion_4s_timers.yaml
{%- endif %}
{%- if type != "3s" or port != "uart" %}
## Uncomment next line to enable monitor internal ESP temperature.
{{ "" if enable_esp32_temperature == "true" else "# " -}}
# - packages/esp32_temperature.yaml
{%- endif %}
## Uncomment next line to enable web server support.
{{ "" if enable_web_server == "true" else "# " -}}
- packages/web_server.yaml
## Uncomment next line to enable additional debug information.
# - packages/debug.yaml
{%- if (packages_refresh|length) > 0 %}
refresh: {{ packages_refresh }}
{%- endif %}
# Uncomment to enable MQTT connecion.
# WARNINIG: If you leave next api section for logging purpose
# and do not use Home Assistant, you need to uncomment
# reboot_timeout parameter.
# mqtt:
# broker: !secret mqtt_borker
# port: !secret mqtt_port
# username: !secret mqtt_username
# password: !secret mqtt_password
# discovery: false # remove or set to true if you plan to use with Home Assistant
# Enable Home Assistant API connection. Please do not remove to keep logs functioning.
api:
# Uncomment next line if you do not use Home Assistant.
#reboot_timeout: 0s
# WiFi hotspot configuration.
# Comment next 3 lines to enable manual WiFi conviguration via access point.
wifi:
ssid: $wifi_ssid
password: $wifi_password
# Virtual port configuration
vport:
- platform: tion_{{ type }}{{ "_uart" if port == "uart" and type != "o2" else "" }}
id: tion_{{ port }}_vport
{%- if port == "ble" %}
ble_client_id: tion_{{ port }}_client
## Optional, Do not disconnect after receiving state. Default: false.
persistent_connection: false
## Optional, Allow to disable other BLE device scanning when breezer is already connected. Default: false.
# disable_scan: false
{%- else %}
uart_id: uart_tion
{%- endif %}
{%- if type == "3s" and port == "ble" %}
## Optional, Send a pair command after every connect (experimental feature)
# experimental_always_pair: false
{%- endif %}
## Optional, Interval between sending commmands. Set to 0ms to send one command per loop.
# command_interval: {{ "100ms" if port == "ble" else "20ms" }}
## Optional, Command queue size. Default: 10.
# command_queue_size: 16
{%- if type == "4s" and port == "uart" %}
## Optional, Interval between sending heartbeat commands. Default: 5s.
# heartbeat_interval: 5s
{%- endif %}
# Main climate component configuration.
climate:
- id: !extend tion_climate
# Required, the name of climate entity
name: None # use friendly_name
# Optional, virtual port id. Default: autodetect
vport_id: tion_{{ port }}_vport
# Optional, Temperatire of air before heater, °C (celsius).
outdoor_temperature:
name: "Outdoor Temperature"
{%- if type != "o2" %}
# Optional, Buzzer control switch.
buzzer:
name: "Buzzer"
{%- endif %}
{%- if type == "4s" %}
# Optional, Led control switch.
led:
name: "Led"
{%- endif %}
{%- if type not in ["3s", "o2"] %}
# Optional, Heater power, W (watt).
heater_power:
name: "Heater power"
# Optional, Total airflow counter, m³ (cubic meters).
#airflow_counter:
# name: "Airflow counter"
{%- endif %}
{%- if type != "3s" %}
# Optional, Total work time counter, seconds.
#work_time:
# name: "Work Time"
{%- endif %}
{%- if type == "3s" %}
# Optional, Air Intake control.
air_intake:
name: "Air Intake"
{%- endif %}
{%- if type == "4s" %}
# Optional, Recirculation control switch.
recirculation:
name: "Recirculation"
{%- endif %}
{%- if type == "lt" %}
# Optional, Gate state control binary sensor.
gate_state:
name: "Gate State"
{%- endif %}
# Optional, Current productivity, m³/h (cubic meters per hour).
productivity:
name: "Productivity"
# Optional, Filter time left counter, days.
filter_time_left:
name: "Filter Time Left"
# Optional, Filter warning state.
filter_warnout:
name: "Filter Warnout"
# Optional, Tion firmware version.
version:
name: "Version"
# Optional, Enable presets. Default: <empty> (no presets)
# Available configurable presets: home, away, boost, comfort, eco, sleep, activity.
# Defaults:
# home : { fan_speed: 2, target_temperature: 20, gate_position: auto, mode: heat }
# away : { fan_speed: 1, target_temperature: 10, gate_position: auto, mode: fan_only }
# boost : { fan_speed: 6, target_temperature: 10, gate_position: auto, mode: fan_only }
# comfort : { fan_speed: 2, target_temperature: 23, gate_position: auto, mode: heat }
# eco : { fan_speed: 1, target_temperature: 16, gate_position: auto, mode: heat }
# sleep : { fan_speed: 1, target_temperature: 18, gate_position: auto, mode: heat }
# activity: { fan_speed: 3, target_temperature: 18, gate_position: auto, mode: heat }
# Boost is a special preset that runs for a period defined by boost_time and then switches back to the previous preset.
# Available mode:
# * off - define but disable preset
# * heat - enable heater
# * fan_only - fan only
# * heat_cool - do not change, use current
# Available gate_position (this option is optional and only if supports by your breezer):
# * auto - use current gate position
{%- if type in ["3s", "4s"] %}
# * outdoor - set gate position to outdoor air intake (3S and 4S only)
# * indoor - set gate position to indoor air intake (3S and 4S only)
{%- endif %}
{%- if type == "3s" %}
# * mixed - set gate position to mixed air intake (3S only)
{%- endif %}
presets:
# enable "home" preset and override default settings
home: { fan_speed: 2, target_temperature: 16, gate_position: outdoor, mode: heat }
# enable "away" preset with default settings
away:
# enable "boost" preset with default settings
boost:
# enable "sleep" preset and override default settings
sleep: { fan_speed: 1, target_temperature: 18, gate_position: outdoor, mode: heat }
# Optional, configure boost time
boost_time:
name: "Boost Time"
# Optional, display remaining boost time
boost_time_left:
name: "Boost Time Left"
# Optional, How often query device state. Default: 60s.
update_interval: {{ "30s" if port == "uart" else "60s" }}
{%- if type != "o2" %}
# Optional, reset filter button
reset_filter:
name: "Reset Filter"
# Optional, reset filter confirmation. When off then reset_filter will not work.
reset_filter_confirm:
name: "Reset Filter Confirm"
{%- endif %}
# Optional, Informs about get state problem from breezer.
state_warnout:
name: "State Warnout"
# Optional, Timeout when state_warnout will be informed. Default: 3s.
state_timeout: 3s
# Optional, Timeout to combine update operations. Default: 200ms.
batch_timeout: 200ms
# Optional, Reports Tion's errors (EC) and warnings (WS).
errors:
name: "Errors"
{%- if type == "3s" and port == "ble" %}
button:
- platform: template
name: "Pair"
on_press:
lambda: id(tion_{{ port }}_vport).pair();
entity_category: config
## Uncomment next 5 lines to enable switch for enable reset pair functionality.
# - platform: template
# name: "Reset Pair"
# on_press:
# lambda: id(tion_{{ port }}_vport).reset_pair();
# entity_category: config
{%- endif %}
{%- if type in ["4s", "lt"] %}
## Uncomment if you plan to use reset errors/warnings functionality.
## This feature is experimental and may partially work or no work as expected.
#button:
# - platform: template
# name: "Reset Errors"
# on_press:
# - lambda: id(tion_climate).reset_errors();
{%- endif %}