Arduino code to ESPhome

Hello!
I need help with adaptation of Arduino code to ESPhome.

#define DELAY_TIMEOUT 1500

int ir_right_pin = 6;
int ir_left_pin = 7;

int ir_right_state = 0;
int ir_left_state  = 0;

int ir_right_state_last = -1;
int ir_left_state_last  = -1;

int in_counter = 0;
int out_counter = 0;

bool bWalkIn = false;
bool bWalkOut = false;

unsigned long tm;

void setup(void) {
  Serial.begin(9600);
  pinMode( ir_right_pin, INPUT);
  pinMode( ir_left_pin , INPUT);
}

void loop(void) {
  ir_right_state = digitalRead( ir_right_pin );
  ir_left_state =  digitalRead( ir_left_pin );

  Serial.print( ir_left_state );
  Serial.print( " " );
  Serial.println( ir_right_state );

  checkWalkIn();
  checkWalkOUT();
}

void checkWalkIn() {
  if ( ir_right_state != ir_right_state_last ) {
    ir_right_state_last = ir_right_state;
    if ( (bWalkIn == false) && ( ir_right_state == LOW ) ) {
      bWalkIn = true;
      tm = millis();
    }
  }
  if ( (millis() - tm) > DELAY_TIMEOUT ) {
    bWalkIn = false;
  }
  if ( bWalkIn && (ir_left_state == LOW) && (ir_right_state == HIGH) ) {
    bWalkIn = false;
    in_counter++;
  }
}

void checkWalkOUT() {
  if ( ir_left_state != ir_left_state_last ) {
    ir_left_state_last = ir_left_state;
    if ( (bWalkOut == false) && ( ir_left_state == LOW ) ) {
      bWalkOut = true;
      tm = millis();
    }
  }
  if ( (millis() - tm) > DELAY_TIMEOUT ) {
    bWalkOut = false;
  }
  if ( bWalkOut && (ir_right_state == LOW) && (ir_left_state == HIGH) ) {
    bWalkOut = false;
    out_counter++;
  }
}

The code describes bidirectional person counter based on IR Sensor E18-D80NK

Thanks in advance!

Unfortunately, there is no implementation for the E18-D80NK sensor in Esphome.

There is the capability to use custom components though.