안녕하세요? 도정진입니다.
이때까지 에어컨 켜짐 꺼짐을 도어센서로 감지하고 있었는데.. 이게 실은 무풍모드로 많이 쓰다보니 감지가 잘 안되네요.
그래서 생각을 해보다가 이전부터 좀 묵혀오던게 있었는데..
에어컨 리모컨으로 값을 보내면 에어컨에서 리턴이 오는 점이였습니다.
이번 기회로 패킷을 분석을 해보았는데 온도나 이런 값들은 맞지가 않고 ON/OFF 정보는 정확하게 맞네요.
그래서 바로 작성해서 테스트 해보았습니다.
1. 하트IR 사용기
https://blog.djjproject.com/672
2. MQTT 설정
아래와 같이 웹 UI 에서 설정이 가능합니다.
실은 패킷 보내는 것도 MQTT로 해보려고 했는데, 실은 homeassistant yaml 문법이 잘 이해가 되지 않아서 현재는 curl 로 http 로 요청을 보내는 상태입니다. 추후에 한번 생각을 해봐야겠습니다.
tasmota_aircon_set: 'curl -G "http://192.168.0.64/cm" --data-urlencode "cmnd=IRhvac {"Vendor":"SAMSUNG_AC","Power":"On","Mode":"Auto","FanSpeed":"Auto","Temp":{{temp}}}"' |
이에 따른 자동화는 아래와 같습니다.
data_template: temp: '{{ states("sensor.thermo_temperature_setted_value") }}' service_template: > {% set cur_temp = (states('sensor.zhimi_airpurifier_ma2_temperature') | float) %} {% set target_temp = (states('sensor.thermo_temperature_setted_value') | float) %} {% if cur_temp <= target_temp %} shell_command.tasmota_aircon_30 {% else %} shell_command.tasmota_aircon_set {% endif %} |
tasmota_aircon_set 에 "Temp": {{temp}} 이 값을 받게 되어 있는데 자동화에서 temp: 변수가 지정되어 전달 됩니다.
3. 데이타 확인
MQTT Explorer 로 데이타를 한번 확인해봅니다.
에어컨을 껏을 때
{ "IrReceived": { "Protocol": "SAMSUNG_AC", "Bits": 168, "Data": "0x0x02B20F000000C001D20F000000000102FF718011C0", "Repeat": 0, "IRHVAC": { "Vendor": "SAMSUNG_AC", "Model": -1, "Power": "Off", "Mode": "Off", "Celsius": "On", "Temp": 16, "FanSpeed": "Auto", "SwingV": "Off", "SwingH": "Off", "Quiet": "Off", "Turbo": "Off", "Econo": "Off", "Light": "Off", "Filter": "Off", "Clean": "Off", "Beep": "Off", "Sleep": -1 } } } |
에어컨을 28도로 켰을 때
{ "IrReceived": { "Protocol": "SAMSUNG_AC", "Bits": 168, "Data": "0x0x02920F000000F001D20F0000000001E2FE718011F0", "Repeat": 0, "IRHVAC": { "Vendor": "SAMSUNG_AC", "Model": -1, "Power": "On", "Mode": "Auto", "Celsius": "On", "Temp": 16, "FanSpeed": "Auto", "SwingV": "Off", "SwingH": "Off", "Quiet": "Off", "Turbo": "Off", "Econo": "Off", "Light": "Off", "Filter": "Off", "Clean": "Off", "Beep": "Off", "Sleep": -1 } } } |
즉 저기서 Power 정보 말고는 맞는게 없습니다.
그럼 센서를 하나 생성해서 tele/tasmota_59B492/result 를 보면 되겠네요.
4. 센서 만들기
HomeAssistant 에서 아래와 같이 센서를 작성합니다.
- platform: mqtt name: ir_aircon_state state_topic: "tele/tasmota_59B492/RESULT" value_template: >- {{ value_json.IrReceived.IRHVAC.Power.lower() }} |
5. generic climate 에 연동
- platform: generic_thermostat name: "Air_Conditioner" heater: switch.air_thermo_temp_switch target_sensor: sensor.0x00158d0003cd1d89_temperature ac_mode: True cold_tolerance: 0 hot_tolerance: 1 min_temp: 18 max_temp: 30 target_temp: 28 initial_hvac_mode: "off" precision: 1 away_temp: 30 |
이 스위치를 보기 때문에 스위치 상태 value_template 를 변경해야합니다.
- platform: template switches: air_thermo_temp_switch: value_template: '{{ is_state(''sensor.ir_aircon_state'',''on'') }}' turn_on: service: input_boolean.turn_on data: entity_id: input_boolean.air_state turn_off: service: input_boolean.turn_off data: entity_id: input_boolean.air_state |
6. 연동 결과
아래 연동결과는 무풍모드에서는 강제 건조가 되지 않아서 (버그인거 같습니다.)
무풍모드에서는 그냥 에어컨이 꺼져서 냄새가 발생해서... 결국 일반 냉방 모드로 전환한 다음 종료하게 되어 있습니다.
그럼 자동 건조가 되더라구요.
그래서 반응이 조금 늦습니다. 켤때는 즉각이네요.
감사합니다. 마치겠습니다.
'IoT' 카테고리의 다른 글
(ESPHOME) M5Stack Atom Lite / 홈어시스턴트 블루투스 프록시 설정하기 (5560) | 2022.11.15 |
---|---|
다원 와이파이 플러그 HA 연동의 콤필레이션 (CSS님 사설서버 + HA 브릿지) (406) | 2022.08.17 |
Yeelight BT 모델 무드등을 쓰기위한 튜닝 완결판 (usb reset 및 구성요소 재 로딩) (448) | 2022.08.01 |
다원 WiFi 플러그 로컬 서버 설치 (CSS5831님 서버 사용) : 1편 (413) | 2022.05.20 |
mqtt 서버 끼리 연동하기 (외부/내부 따로 운영 + zigbee2mqt / External Bridge) (416) | 2022.02.16 |
댓글