Hello,
I configured an AC with MQTT HVAC with ESP8266 board.
It’s the configuration.yaml:
climate:
- platform: mqtt
name: AC_Receiver_LivingRoom
unique_id: '1'
qos: 1
precision: 1.0
retain: true
modes:
- "off"
- "cool"
- "heat"
min_temp: 16
max_temp: 30
payload_on: 'on'
payload_off: 'off'
power_command_topic: 'cmnd/AC_Receiver/IRhvac'
power_state_topic: 'tele/AC_Receiver/RESULT'
power_state_template: '{{ value_json["IrReceived"]["IRHVAC"]["Power"] }}'
mode_command_topic: 'cmnd/AC_Receiver/IRhvac'
mode_state_topic: 'tele/AC_Receiver/RESULT'
mode_state_template: '{{ value_json["IrReceived"]["IRHVAC"]["Mode"] | lower }}'
temperature_command_topic: 'cmnd/AC_Receiver/IRhvac'
temperature_state_topic: 'tele/AC_Receiver/RESULT'
temperature_state_template: '{{ value_json["IrReceived"]["IRHVAC"]["Temp"] }}'
I have a script that sending mqtt to the AC:
'1587984879652':
alias: AC Commands
sequence:
- service: mqtt.publish
data:
topic: cmnd/AC_Receiver/IRhvac
payload_template: >
{% if is_state('climate.ac_receiver_livingroom','off') %} {"Vendor":"GREE","Power":"off", "Mode":"{{states('climate.ac_receiver_livingroom')}}","FanSpeed":"Max","Temp":{{state_attr('climate.ac_receiver_livingroom','temperature')}}}
{% elif is_state('climate.ac_receiver_livingroom','heat') and state_attr('climate.ac_receiver_livingroom','temperature')|int == 16 %} {"Vendor":"GREE","Power":"on", "Mode":"{{states('climate.ac_receiver_livingroom')}}","FanSpeed":"Max","Temp":{{state_attr('climate.ac_receiver_livingroom','temperature')}}}
{% elif is_state('climate.ac_receiver_livingroom','heat') and state_attr('climate.ac_receiver_livingroom','temperature')|int == 17 %} {"Vendor":"GREE","Power":"on", "Mode":"{{states('climate.ac_receiver_livingroom')}}","FanSpeed":"Max","Temp":{{state_attr('climate.ac_receiver_livingroom','temperature')}}}
{% elif is_state('climate.ac_receiver_livingroom','heat') and state_attr('climate.ac_receiver_livingroom','temperature')|int == 18 %} {"Vendor":"GREE","Power":"on", "Mode":"{{states('climate.ac_receiver_livingroom')}}","FanSpeed":"Max","Temp":{{state_attr('climate.ac_receiver_livingroom','temperature')}}}
{% elif is_state('climate.ac_receiver_livingroom','heat') and state_attr('climate.ac_receiver_livingroom','temperature')|int == 19 %} {"Vendor":"GREE","Power":"on", "Mode":"{{states('climate.ac_receiver_livingroom')}}","FanSpeed":"Max","Temp":{{state_attr('climate.ac_receiver_livingroom','temperature')}}}
{% elif is_state('climate.ac_receiver_livingroom','heat') and state_attr('climate.ac_receiver_livingroom','temperature')|int == 20 %} {"Vendor":"GREE","Power":"on", "Mode":"{{states('climate.ac_receiver_livingroom')}}","FanSpeed":"Max","Temp":{{state_attr('climate.ac_receiver_livingroom','temperature')}}}
{% elif is_state('climate.ac_receiver_livingroom','heat') and state_attr('climate.ac_receiver_livingroom','temperature')|int == 21 %} {"Vendor":"GREE","Power":"on", "Mode":"{{states('climate.ac_receiver_livingroom')}}","FanSpeed":"Max","Temp":{{state_attr('climate.ac_receiver_livingroom','temperature')}}}
{% elif is_state('climate.ac_receiver_livingroom','heat') and state_attr('climate.ac_receiver_livingroom','temperature')|int == 22 %} {"Vendor":"GREE","Power":"on", "Mode":"{{states('climate.ac_receiver_livingroom')}}","FanSpeed":"Max","Temp":{{state_attr('climate.ac_receiver_livingroom','temperature')}}}
{% elif is_state('climate.ac_receiver_livingroom','heat') and state_attr('climate.ac_receiver_livingroom','temperature')|int == 23 %} {"Vendor":"GREE","Power":"on", "Mode":"{{states('climate.ac_receiver_livingroom')}}","FanSpeed":"Max","Temp":{{state_attr('climate.ac_receiver_livingroom','temperature')}}}
{% elif is_state('climate.ac_receiver_livingroom','heat') and state_attr('climate.ac_receiver_livingroom','temperature')|int == 24 %} {"Vendor":"GREE","Power":"on", "Mode":"{{states('climate.ac_receiver_livingroom')}}","FanSpeed":"Max","Temp":{{state_attr('climate.ac_receiver_livingroom','temperature')}}}
{% elif is_state('climate.ac_receiver_livingroom','heat') and state_attr('climate.ac_receiver_livingroom','temperature')|int == 25 %} {"Vendor":"GREE","Power":"on", "Mode":"{{states('climate.ac_receiver_livingroom')}}","FanSpeed":"Max","Temp":{{state_attr('climate.ac_receiver_livingroom','temperature')}}}
{% elif is_state('climate.ac_receiver_livingroom','heat') and state_attr('climate.ac_receiver_livingroom','temperature')|int == 26 %} {"Vendor":"GREE","Power":"on", "Mode":"{{states('climate.ac_receiver_livingroom')}}","FanSpeed":"Max","Temp":{{state_attr('climate.ac_receiver_livingroom','temperature')}}}
{% elif is_state('climate.ac_receiver_livingroom','heat') and state_attr('climate.ac_receiver_livingroom','temperature')|int == 27 %} {"Vendor":"GREE","Power":"on", "Mode":"{{states('climate.ac_receiver_livingroom')}}","FanSpeed":"Max","Temp":{{state_attr('climate.ac_receiver_livingroom','temperature')}}}
{% elif is_state('climate.ac_receiver_livingroom','heat') and state_attr('climate.ac_receiver_livingroom','temperature')|int == 28 %} {"Vendor":"GREE","Power":"on", "Mode":"{{states('climate.ac_receiver_livingroom')}}","FanSpeed":"Max","Temp":{{state_attr('climate.ac_receiver_livingroom','temperature')}}}
{% elif is_state('climate.ac_receiver_livingroom','heat') and state_attr('climate.ac_receiver_livingroom','temperature')|int == 29 %} {"Vendor":"GREE","Power":"on", "Mode":"{{states('climate.ac_receiver_livingroom')}}","FanSpeed":"Max","Temp":{{state_attr('climate.ac_receiver_livingroom','temperature')}}}
{% elif is_state('climate.ac_receiver_livingroom','heat') and state_attr('climate.ac_receiver_livingroom','temperature')|int == 30 %} {"Vendor":"GREE","Power":"on", "Mode":"{{states('climate.ac_receiver_livingroom')}}","FanSpeed":"Max","Temp":{{state_attr('climate.ac_receiver_livingroom','temperature')}}}
{% elif is_state('climate.ac_receiver_livingroom','cool') and state_attr('climate.ac_receiver_livingroom','temperature')|int == 16 %} {"Vendor":"GREE","Power":"on", "Mode":"{{states('climate.ac_receiver_livingroom')}}","FanSpeed":"Max","Temp":{{state_attr('climate.ac_receiver_livingroom','temperature')}}}
{% elif is_state('climate.ac_receiver_livingroom','cool') and state_attr('climate.ac_receiver_livingroom','temperature')|int == 17 %} {"Vendor":"GREE","Power":"on", "Mode":"{{states('climate.ac_receiver_livingroom')}}","FanSpeed":"Max","Temp":{{state_attr('climate.ac_receiver_livingroom','temperature')}}}
{% elif is_state('climate.ac_receiver_livingroom','cool') and state_attr('climate.ac_receiver_livingroom','temperature')|int == 18 %} {"Vendor":"GREE","Power":"on", "Mode":"{{states('climate.ac_receiver_livingroom')}}","FanSpeed":"Max","Temp":{{state_attr('climate.ac_receiver_livingroom','temperature')}}}
{% elif is_state('climate.ac_receiver_livingroom','cool') and state_attr('climate.ac_receiver_livingroom','temperature')|int == 19 %} {"Vendor":"GREE","Power":"on", "Mode":"{{states('climate.ac_receiver_livingroom')}}","FanSpeed":"Max","Temp":{{state_attr('climate.ac_receiver_livingroom','temperature')}}}
{% elif is_state('climate.ac_receiver_livingroom','cool') and state_attr('climate.ac_receiver_livingroom','temperature')|int == 20 %} {"Vendor":"GREE","Power":"on", "Mode":"{{states('climate.ac_receiver_livingroom')}}","FanSpeed":"Max","Temp":{{state_attr('climate.ac_receiver_livingroom','temperature')}}}
{% elif is_state('climate.ac_receiver_livingroom','cool') and state_attr('climate.ac_receiver_livingroom','temperature')|int == 21 %} {"Vendor":"GREE","Power":"on", "Mode":"{{states('climate.ac_receiver_livingroom')}}","FanSpeed":"Max","Temp":{{state_attr('climate.ac_receiver_livingroom','temperature')}}}
{% elif is_state('climate.ac_receiver_livingroom','cool') and state_attr('climate.ac_receiver_livingroom','temperature')|int == 22 %} {"Vendor":"GREE","Power":"on", "Mode":"{{states('climate.ac_receiver_livingroom')}}","FanSpeed":"Max","Temp":{{state_attr('climate.ac_receiver_livingroom','temperature')}}}
{% elif is_state('climate.ac_receiver_livingroom','cool') and state_attr('climate.ac_receiver_livingroom','temperature')|int == 23 %} {"Vendor":"GREE","Power":"on", "Mode":"{{states('climate.ac_receiver_livingroom')}}","FanSpeed":"Max","Temp":{{state_attr('climate.ac_receiver_livingroom','temperature')}}}
{% elif is_state('climate.ac_receiver_livingroom','cool') and state_attr('climate.ac_receiver_livingroom','temperature')|int == 24 %} {"Vendor":"GREE","Power":"on", "Mode":"{{states('climate.ac_receiver_livingroom')}}","FanSpeed":"Max","Temp":{{state_attr('climate.ac_receiver_livingroom','temperature')}}}
{% elif is_state('climate.ac_receiver_livingroom','cool') and state_attr('climate.ac_receiver_livingroom','temperature')|int == 25 %} {"Vendor":"GREE","Power":"on", "Mode":"{{states('climate.ac_receiver_livingroom')}}","FanSpeed":"Max","Temp":{{state_attr('climate.ac_receiver_livingroom','temperature')}}}
{% elif is_state('climate.ac_receiver_livingroom','cool') and state_attr('climate.ac_receiver_livingroom','temperature')|int == 26 %} {"Vendor":"GREE","Power":"on", "Mode":"{{states('climate.ac_receiver_livingroom')}}","FanSpeed":"Max","Temp":{{state_attr('climate.ac_receiver_livingroom','temperature')}}}
{% elif is_state('climate.ac_receiver_livingroom','cool') and state_attr('climate.ac_receiver_livingroom','temperature')|int == 27 %} {"Vendor":"GREE","Power":"on", "Mode":"{{states('climate.ac_receiver_livingroom')}}","FanSpeed":"Max","Temp":{{state_attr('climate.ac_receiver_livingroom','temperature')}}}
{% elif is_state('climate.ac_receiver_livingroom','cool') and state_attr('climate.ac_receiver_livingroom','temperature')|int == 28 %} {"Vendor":"GREE","Power":"on", "Mode":"{{states('climate.ac_receiver_livingroom')}}","FanSpeed":"Max","Temp":{{state_attr('climate.ac_receiver_livingroom','temperature')}}}
{% elif is_state('climate.ac_receiver_livingroom','cool') and state_attr('climate.ac_receiver_livingroom','temperature')|int == 29 %} {"Vendor":"GREE","Power":"on", "Mode":"{{states('climate.ac_receiver_livingroom')}}","FanSpeed":"Max","Temp":{{state_attr('climate.ac_receiver_livingroom','temperature')}}}
{% elif is_state('climate.ac_receiver_livingroom','cool') and state_attr('climate.ac_receiver_livingroom','temperature')|int == 30 %} {"Vendor":"GREE","Power":"on", "Mode":"{{states('climate.ac_receiver_livingroom')}}","FanSpeed":"Max","Temp":{{state_attr('climate.ac_receiver_livingroom','temperature')}}}
{% endif %}
I have an IR trasnmitter and IR reciever. When I press the remote of the AC it changing the UI of the AC in the home assistant and sends mqtt to the AC. It’s working.
But I have a problem that when I am trying to turn on the AC or change mode or temperature from the UI of the home assistant it doesn’t work and it writes in the console of the ESP8266:
12:33:24 CMD: Group 0, Index 1, Command "IRHVAC", Data "25.0"
12:33:24 MQT: stat/AC_Receiver/RESULT = {"IRHVAC":"Invalid JSON"}
12:33:26 MQT: Received Topic "cmnd/AC_Receiver/IRhvac", Data Size 4, Data "25.0"
I writed an automation that in every change in the state of the entity climate.climate.ac_receiver_livingroom
it will activate the script but it doesn’t work.
It’s the automation:
- id: '1596884572019'
alias: AC changed
description: ''
trigger:
- entity_id: climate.ac_receiver_livingroom
platform: state
condition: []
action:
- data: {}
service: script.1587984879652
mode: single
Someone can help me?