esphome / issues

Issue Tracker for ESPHome
https://esphome.io/
290 stars 36 forks source link

Climate entity does not update LG AC state (i.e Temperature) if it would be controlled using remote controller #5606

Closed paulsteigel closed 2 months ago

paulsteigel commented 7 months ago

The problem

I use remote_receiver and remote_transmitter to capture data at the ir sensor of a LG AC.

I can control the AC from climate entity on the HA dashboard (i.e set the temp to 23 degree Celsius) but when I use the hand held remote controller (set the temp to 25 degree Celsius, the status of the AC is not updated (still stay at 23 degree).

Which version of ESPHome has the issue?

ESPHOME 2024.2.2 or any other

What type of installation are you using?

Home Assistant Add-on

Which version of Home Assistant has the issue?

2024.3.1

What platform are you using?

ESP8266

Board

NodeMCU

Component causing the issue

Climate

Example YAML snippet

remote_receiver:
  id: ir_receiver
  pin:
    number: D5 # GPIO14
    allow_other_uses: True
    inverted: True
    mode: OUTPUT_OPEN_DRAIN    
  dump:
    - lg
    - raw
  tolerance: 45%  
  buffer_size: 2kb

remote_transmitter:
  carrier_duty_percent: 100%
  id: ir_transmitter
  pin:
    number: D5
    allow_other_uses: True
    inverted: true
    mode: OUTPUT_OPEN_DRAIN

climate:
  - platform: climate_ir_lg
    id: climate_id
    sensor: current_temperature
    name: "AC in lab room"
    supports_heat: True
    supports_cool: True
    receiver_id: ir_receiver
    transmitter_id: ir_transmitter

Anything in the logs that might be useful for us?

[22:08:08][VV][remote_base:146]: Sending times=1 wait=0ms: 8000, -4000, 600, -1600, 600, -550, 600, -550, 600, -550, 600, -1600, 600, -550, 600, -550, 600, -550, 600, -550, 600, -550, 600, -550, 600, -550, 600, -1600, 600, -550, 600, -550, 600, -550, 600, -1600, 600, -550, 600, -550, 
[22:08:08][VV][remote_base:159]:   600, -550, 600, -550, 600, -1600, 600, -550, 600, -1600, 600, -550, 600, -1600, 600, -550, 600, -1600, 600

[22:09:16][I][remote.raw:028]: Received Raw: 3357, -9904, 518, -1562, 545, -496, 513, -527, 546, -499, 544, -1533, 520, -521, 511, -529, 513, -527, 515, -525, 518, -522, 520, -521, 521, -519, 513, -1568, 517, -1590, 494, -520, 512, -554, 488, -1566, 519, -1561, 544, -1563, 490, -1564, 
[22:09:16][I][remote.raw:041]:   521, -520, 512, -1567, 517, -523, 520, -520, 522, -1559, 515, -1566, 518, -1562, 513, -1568, 516

[22:09:16][VV][remote_receiver.esp8266:087]: read_at=986 write_at=46 dist=60 now=704831317 end=704785121
[22:09:16][VV][remote_receiver.esp8266:106]:   i=0 buffer[988]=704736209 - buffer[987]=704732856 -> 3353
[22:09:16][VV][remote_receiver.esp8266:106]:   i=1 buffer[989]=704746115 - buffer[988]=704736209 -> -9906
[22:09:16][VV][remote_receiver.esp8266:106]:   i=2 buffer[990]=704746631 - buffer[989]=704746115 -> 516
[22:09:16][VV][remote_receiver.esp8266:106]:   i=3 buffer[991]=704748194 - buffer[990]=704746631 -> -1563
[22:09:16][VV][remote_receiver.esp8266:106]:   i=4 buffer[992]=704748715 - buffer[991]=704748194 -> 521
[22:09:16][VV][remote_receiver.esp8266:106]:   i=5 buffer[993]=704749235 - buffer[992]=704748715 -> -520
[22:09:16][VV][remote_receiver.esp8266:106]:   i=6 buffer[994]=704749747 - buffer[993]=704749235 -> 512
[22:09:16][VV][remote_receiver.esp8266:106]:   i=7 buffer[995]=704750275 - buffer[994]=704749747 -> -528
[22:09:16][VV][remote_receiver.esp8266:106]:   i=8 buffer[996]=704750789 - buffer[995]=704750275 -> 514
[22:09:16][VV][remote_receiver.esp8266:106]:   i=9 buffer[997]=704751316 - buffer[996]=704750789 -> -527
[22:09:16][VV][remote_receiver.esp8266:106]:   i=10 buffer[998]=704751832 - buffer[997]=704751316 -> 516
[22:09:16][VV][remote_receiver.esp8266:106]:   i=11 buffer[999]=704753396 - buffer[998]=704751832 -> -1564
[22:09:16][VV][remote_receiver.esp8266:106]:   i=12 buffer[0]=704753916 - buffer[999]=704753396 -> 520
[22:09:16][VV][remote_receiver.esp8266:106]:   i=13 buffer[1]=704754437 - buffer[0]=704753916 -> -521
[22:09:16][VV][remote_receiver.esp8266:106]:   i=14 buffer[2]=704754948 - buffer[1]=704754437 -> 511
[22:09:16][VV][remote_receiver.esp8266:106]:   i=15 buffer[3]=704755476 - buffer[2]=704754948 -> -528
[22:09:16][VV][remote_receiver.esp8266:106]:   i=16 buffer[4]=704755990 - buffer[3]=704755476 -> 514
[22:09:16][VV][remote_receiver.esp8266:106]:   i=17 buffer[5]=704756517 - buffer[4]=704755990 -> -527
[22:09:16][VV][remote_receiver.esp8266:106]:   i=18 buffer[6]=704757032 - buffer[5]=704756517 -> 515
[22:09:16][VV][remote_receiver.esp8266:106]:   i=19 buffer[7]=704757557 - buffer[6]=704757032 -> -525
[22:09:16][VV][remote_receiver.esp8266:106]:   i=20 buffer[8]=704758074 - buffer[7]=704757557 -> 517
[22:09:16][VV][remote_receiver.esp8266:106]:   i=21 buffer[9]=704758597 - buffer[8]=704758074 -> -523
[22:09:16][VV][remote_receiver.esp8266:106]:   i=22 buffer[10]=704759137 - buffer[9]=704758597 -> 540
[22:09:16][VV][remote_receiver.esp8266:106]:   i=23 buffer[11]=704759637 - buffer[10]=704759137 -> -500
[22:09:16][VV][remote_receiver.esp8266:106]:   i=24 buffer[12]=704760180 - buffer[11]=704759637 -> 543
[22:09:16][VV][remote_receiver.esp8266:106]:   i=25 buffer[13]=704760677 - buffer[12]=704760180 -> -497
[22:09:16][VV][remote_receiver.esp8266:106]:   i=26 buffer[14]=704761222 - buffer[13]=704760677 -> 545
[22:09:16][VV][remote_receiver.esp8266:106]:   i=27 buffer[15]=704762759 - buffer[14]=704761222 -> -1537
[22:09:16][VV][remote_receiver.esp8266:106]:   i=28 buffer[16]=704763275 - buffer[15]=704762759 -> 516

Additional information

I revised the code as below:

remote_receiver:
  id: ir_receiver
  pin:
    number: D5 # GPIO14
    allow_other_uses: True
    inverted: True
    mode: OUTPUT_OPEN_DRAIN    
  dump:
    - lg
    - raw
  tolerance: 45%  
  buffer_size: 2kb
  on_lg:
    then:     
      - remote_transmitter.transmit_lg:
          data: !lambda |-
            id(is_forwarded)=1;
            return x.data;
          nbits: !lambda |-
            id(is_forwarded)=1;
            return x.nbits;
          repeat:
            times: 1
            wait_time: 25ms
      - logger.log:  "Forward the LG code to IR transmitter."

remote_transmitter:
  carrier_duty_percent: 100%
  id: ir_transmitter
  pin:
    number: D5
    allow_other_uses: True
    inverted: true
    mode: OUTPUT_OPEN_DRAIN
  #on_lg: # need to find event for this object
  #  then:
  #  - if:
  #    condition:
  #      lambda: 'return id(is_forwarded) == 0;'              
  #    then:
  #    - remote_transmitter.transmit_lg:
  #        data: !lambda |-
  #          return x.data;
  #        nbits: !lambda |-
  #          return x.nbits;
  #        repeat:
  #          times: 1
  #          wait_time: 25ms
  #    - logger.log:  "Forward the LG code to IR transmitter."

climate:
  - platform: climate_ir_lg
    id: climate_id
    sensor: current_temperature
    name: "Điều hoà phòng LAB"
    supports_heat: True
    supports_cool: True
    receiver_id: ir_receiver
    transmitter_id: ir_transmitter   

However, it created an infinitive loop if i click a button on the climate entity (such as power) on the dashboard. Can you please advise me to deal with this Best,

github-actions[bot] commented 3 months ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.