● HA작업) esphome esp32 Component rs485 took a long time for an operation (0.07 s). 에러 발생 대응
본문
● HA작업) esphome esp32 Component rs485 took a long time for an operation (0.07 s). 에러 발생 대응
문제내용 > log 메세지
[15:04:33][D][rs485:279]: Flushing... (14ms)
[15:04:33][W][component:214]: Component rs485 took a long time for an operation (0.07 s).
[15:04:33][W][component:215]: Components should block for at most 20-30ms.
[15:04:33][VV][rs485:118]: Receive data-> 0xF7 0x0B 0x01 0x19 0x04 0x40 0x12 0x00 0x02 0xB0 0xEE (11 byte), Gap Time: 53ms
[15:04:33][VV][scheduler:226]: Running interval 'update' with interval=6000 last_execution=4150610 (now=4156624)
[15:04:33][D][rs485:342]: 'boiler_livingroom_sw' update(): Request current state...
[15:04:33][D][rs485:260]: Write array-> 0xF7 (1 byte)
[15:04:33][D][rs485:260]: Write array-> 0x0B 0x01 0x19 0x01 0x40 0x13 0x00 0x00 (8 byte)
[15:04:33][D][rs485:255]: Write byte-> 0xB6
[15:04:33][VV][rs485:118]: Receive data-> 0xF7 0x0B 0x01 0x19 0x04 0x40 0x13 0x00 0x02 0xB1 0xEE (11 byte), Gap Time: 53ms
[15:04:33][VV][scheduler:226]: Running interval 'update' with interval=6000 last_execution=4150738 (now=4156759)
[15:04:33][D][rs485:342]: 'boiler_bigroom' update(): Request current state...
[15:04:33][D][rs485:260]: Write array-> 0xF7 (1 byte)
[15:04:33][D][rs485:260]: Write array-> 0x0B 0x01 0x18 0x01 0x46 0x11 0x00 0x00 (8 byte)
[15:04:33][D][rs485:255]: Write byte-> 0xB3
[15:04:33][D][rs485:260]: Write array-> 0xEE (1 byte)
[15:04:33][D][rs485:279]: Flushing... (15ms)
[15:04:33][W][component:214]: Component rs485 took a long time for an operation (0.07 s).
[15:04:33][W][component:215]: Components should block for at most 20-30ms.
[15:04:33][VV][scheduler:226]: Running interval 'update' with interval=6000 last_execution=4150794 (now=4156851)
[15:04:33][D][rs485:342]: 'switch_livingroom_bogdo' update(): Request current state...
[15:04:33][VV][scheduler:226]: Running interval 'update' with interval=6000 last_execution=4150845 (now=4156851)
[15:04:33][D][rs485:342]: 'boiler_bookroom' update(): Request current state...
[15:04:33][VV][rs485:118]: Receive data-> 0xF7 0x0D 0x01 0x18 0x04 0x46 0x11 0x00 0x04 0x16 0x16 0xB4 0xEE (13 byte), Gap Time: 42ms
[15:04:33][D][rs485:260]: Write array-> 0xF7 (1 byte)
[15:04:33][D][rs485:260]: Write array-> 0x0B 0x01 0x18 0x01 0x46 0x14 0x00 0x00 (8 byte)
[15:04:33][D][rs485:255]: Write byte-> 0xB6
[15:04:33][D][rs485:260]: Write array-> 0xEE (1 byte)
[15:04:33][D][rs485:279]: Flushing... (14ms)
정보 참조)
https://github.com/esphome/issues/issues/4717
문제 > tx_wait: 150 #Option(default: 50ms) -> 발신 메시지 Ack 대기시간
정상 > 1) tx_wait: 50 #Option(default: 50ms) -> 발신 메시지 Ack 대기시간
2) 각각의 기기별 update_interval: 6s 으로 최소 설정 합니다
1)수정
# 이하 수정없이 사용
rs485:
baud_rate: 9600 #Required
data_bits: 8 #Option(default: 8)
parity: 0 #Option(default: 0)
stop_bits: 1 #Option(default: 1)
rx_wait: 10 #Option(default: 10ms) -> 수신 메시지 대기시간 (10ms 미만으로 수신된 메시지만 한 패킷으로 판단)
tx_interval: 50 #Option(default: 50ms) -> 발신 메시지 전송 간격 (패킷 수신 후 50ms 대기 후 전송)
tx_wait: 50 #Option(default: 50ms) -> 발신 메시지 Ack 대기시간
tx_retry_cnt: 3 #Option(default: 3) -> 발신 메시지 Ack 없을 경우 재시도 횟수
# ctrl_pin: GPIO2 #Option -> 수동 제어 모듈 사용시 셋팅 (MAX485모듈의 DE,RE에 연결된 PIN)
prefix: [0xF7] #Option -> 값 세팅시 모든 수신 패킷 Check, 발신 패킷에 Append
suffix: [0xEE] #Option -> 값 세팅시 모든 수신 패킷 Check, 발신 패킷에 Append
2)수정
메세지 log 내용
해결 > 메세지 log 내용
☞ https://11q.kr 에 등록된 자료 입니다. ♠ 정보찾아 공유 드리며 출처는 링크 참조 바랍니다♠
관련자료
-
링크
-
이전
-
다음