I managed to make it work:
#include "esphome.h"
class AJ_SR04M_Sensor : public PollingComponent, public UARTDevice, public Sensor {
public:
AJ_SR04M_Sensor(UARTComponent *parent) : PollingComponent(1000), UARTDevice(parent) {}
void update() override {
byte frame[5];
int pos = 0;
float value = 0.0;
//write(0x00); // Try this
write(0x55); // Try this
//write(0x01); // Try this
while (available()) {
frame[pos] = read();
pos++;
if (pos == 4) {
if ((frame[0] == 0xFF) && (frame[4] == 0x00) && (((frame[0] + frame[1] + frame[2]) & 0x00ff) == frame[3])){
value = ((frame[1] << 8) + frame[2]) / 10.0;
publish_state(value);
}
break;
}
}
}
};