Fast I2C communication between ESP8266 & PCF8591
This line

brzo_i2c_start_transaction(0x48,400);


Sets the SCL frequency to 400kHz.

According to the Datasheet for the PCF8591 the maximum SCL clock frequency is 100kHz.

The other issue may be the "repeated_start" flag on brzo_i2c_write.

If you look at the examples, and "apply" that to your code, your would do something like:

uint8_t ICACHE_RAM_ATTR get_temp(float *t){
  uint8_t bcode=0;
  brzo_i2c_start_transaction(0x48,100); // changed 400 to 100
  buffer[0]=0x04; 
  brzo_i2c_write(buffer,1,true); // changed to true because 
  brzo_i2c_read(buffer,2,false);
  bcode=brzo_i2c_end_transaction();
  *t=((buffer[0]&lt;&lt;8)|buffer[1]);
  return bcode;
}


My understanding of the code is that you would set repeated_start to true in the write if you want to then immediately read - which in your case you want to.