It took a while to get it working. I ran the thermostat on ESPHome with ESP12e.
The only thing still missing is the ability to program the days of the week. The thermostat has a choice of dividing the week into working and non-working days.
The working day is divided into 6 time periods and the days off into 2 time periods, e.g:
working day
1. early morning HH:mm T
2. morning HH:mm T
3. midday HH:mm T
4. afternoon HH:mm T
5. evening HH:mm T
6. night HH:mm T
day off
1. day HH:mm T
2. night HH:mm T
I have no idea how to make this programmable and send it to the MCU.
But the thermostat itself is already working.
esphome:
name: termostat-3
friendly_name: termostat-3
esp8266:
# board: esp01_1m
board: esp12e
# Enable logging
logger:
level: debug
logs:
component: error
baud_rate: 0
# Enable Home Assistant API
api:
encryption:
key: "AcblQvVzCC/NggvmOLvKX4GRA9nxwcCYNKQhpFa2ucw="
ota:
- platform: esphome
password: "c7667533335af8cd22888eeb1b208376"
wifi:
networks:
# - ssid: ************
# password: !secret wifi_password_1
- ssid: **********
password: !secret wifi_password_2
- ssid: *************
password: !secret wifi_password_3
- ssid: *****
password: !secret wifi_password_4
manual_ip:
static_ip: 192.168.1.82
gateway: 192.168.1.1
subnet: 255.255.255.0
dns1: 192.168.1.1
dns2: 8.8.8.8
# power_save_mode: NONE
# output_power: 17dB
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: !secret wifi_ap_ssid
password: !secret wifi_ap_password
web_server:
port: 80
version: 3
auth:
username: !secret web_username
password: !secret web_password
time:
- id: time_provider
platform: homeassistant
on_time_sync:
- logger.log: "Synchronized system clock"
captive_portal:
uart:
rx_pin: GPIO3
tx_pin: GPIO1
baud_rate: 9600
id: mcu_uart
tuya:
time_id: time_provider
climate:
- platform: tuya
name: "Termostat"
icon: mdi:heating-coil
switch_datapoint: 1
target_temperature_datapoint: 2
current_temperature_datapoint: 3
supports_heat: True
supports_cool: False
temperature_multiplier: 0.1
active_state:
datapoint: 5
heating_value: 1
visual:
min_temperature: 10 °C
max_temperature: 30 °C
temperature_step: 0.1 °C
switch:
- platform: tuya
name: "ON/OFF"
icon: mdi:power
switch_datapoint: 1
restore_mode: ALWAYS_ON
device_class: "switch"
- platform: tuya
name: "Sound"
icon: mdi:volume-off
switch_datapoint: 109
device_class: "switch"
- platform: tuya
name: "Out inverse"
entity_category: config
icon: mdi:select-inverse
switch_datapoint: 108
device_class: "switch"
- platform: tuya
name: "Anti frost"
entity_category: config
icon: mdi:snowflake
switch_datapoint: 103
device_class: "switch"
- platform: tuya
name: "Reset to default"
entity_category: config
icon: mdi:alert
switch_datapoint: 104
device_class: "switch"
sensor:
- platform: tuya
name: "Temperatura"
device_class: "temperature"
sensor_datapoint: 3
unit_of_measurement: "°C"
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: wifi_signal
name: "WiFi Signal dB"
id: wifi_signal_db
update_interval: 60s
entity_category: "diagnostic"
text_sensor:
- platform: wifi_info
ip_address:
name: ESP IP Address
ssid:
name: ESP Connected SSID
mac_address:
name: ESP Mac Wifi Address
scan_results:
name: ESP Latest Scan Results
select:
- platform: "tuya"
name: "Program Mode"
icon: mdi:view-list
enum_datapoint: 4
optimistic: true
options:
0: Manual
1: Program
2: Temporary program
3: Leave home
- platform: "tuya"
name: "Backlight brightness"
icon: mdi:lightbulb-on-30
enum_datapoint: 106
optimistic: false
options:
0: Dark
1: Low
2: Middle
3: High
- platform: "tuya"
name: "Sensor selection"
icon: mdi:wrench
entity_category: config
optimistic: true
enum_datapoint: 110
options:
0: Internal
1: External
2: Both
- platform: "tuya"
name: "Working day setting"
icon: mdi:briefcase
entity_category: config
optimistic: true
enum_datapoint: 107
options:
0: Not active
1: 5+2 days
2: 6+1 days
3: 7 days
- platform: "tuya"
name: "Error"
icon: mdi:alert-circle
entity_category: diagnostic
enum_datapoint: 11
options:
0: No errors
1: Err 1-Ext. sensor error
2: Err 2
3: Err 3
number:
- platform: "tuya"
name: "Precision"
entity_category: config
mode: box
number_datapoint: 101
min_value: 0.5
max_value: 10.0
step: 0.5
multiply: 10
- platform: "tuya"
name: "Korekta T"
entity_category: config
mode: box
number_datapoint: 19
min_value: -10
max_value: 10
step: 0.1
multiply: 10
- platform: "tuya"
name: "Max set. temperature"
entity_category: config
mode: box
number_datapoint: 15
min_value: 15
max_value: 95
step: 1
multiply: 1
- platform: "tuya"
name: "Max ext. sensor temp."
entity_category: config
mode: box
number_datapoint: 102
min_value: 35
max_value: 60
step: 1
multiply: 1
.

.

.