● 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 으로  최소 설정 합니다

    3232235521_1706336272.9976.png

    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

    3232235521_1706415389.6519.png

    2)수정

    3232235521_1706336347.1721.png


    메세지 log 내용

    3232235521_1706335965.9818.png

    해결 >  메세지 log 내용

    3232235521_1706415482.0283.png

    3232235521_1706415640.2106.png

    ☞ https://11q.kr 에 등록된 자료 입니다. ♠ 정보찾아 공유 드리며 출처는 링크 참조 바랍니다♠1.png

    뷰PDF add1,add2



    관련자료

    댓글 1

    11qkr님의 댓글

    rx_wait: 10    #Option(default: 10ms) -> 수신 메시지 대기시간 (10ms 미만으로 수신된 메시지만 한 패킷으로 판단)
      tx_interval: 50 #Option(default: 50ms) -> 발신 메시지 전송 간격 (패킷 수신 후 50ms 대기 후 전송)
      tx_wait: 50    #Option(default: 50ms) -> 발신 메시지 Ack 대기시간



    ♥간단_메모글♥


    최근글


    새댓글



    PHP 안에 HTML ☞ 홈페이지 화면갱신 시간은 ♨
    ▶ 2024-11-23 14:19:32

    오늘의 홈 현황


    • 현재 접속자♨ 364 명
    • 오늘 가입자※ 1 명
    • 어제 가입자※ 3 명
    • 주간 가입자※ 9 명
    • 오늘 방문자 2,485 명
    • 어제 방문자 3,461 명
    • 최대 방문자 13,042 명
    • 전체 방문자 4,805,102 명
    • 전체 게시물※ 8,856 개
    • 전체 댓글수※ 25,232 개
    • 전체 회원수 11,326 명

    QR코드


    ☞ QR코드 스캔은 kakao앱 자체 QR코드

    알림 0








    최신글↑