Thanks to everyone who contributed in this thread. I could not have figured it out without you guys.
It did however take me a bit before I figured out which parts to use and which parts not to use. For me the delay(1) do not seem to be necessary. What did the trick for me is put this line straight after Wire.begin()
Wire.setClockStretchLimit(15000);
If someone is interested, I wrote a post on the Arduino I2C Slave and on the ESP as an I2C Master for that slave where I have shared the full code if someone is interested.
mde110:
For everybody else who have problems with ESP8266 as I2C master requesting values from Arduino slave.
Set the stretchlimit if ESp is impatient:
Wire.setClockStretchLimit(1500); // in µs
Outstanding. Without this setting my ESP8622-01's just wont talk I2C.
This setting needs to be promoted more aggressively.
mde110:
For everybody else who have problems with ESP8266 as I2C master requesting values from Arduino slave.
Set the stretchlimit if ESp is impatient:
Hello, I'm trying to connect using i2c an Arduino UNO to a ESP-01. I think that I tried everything.
I'm using a voltage converter with a 2n7000 transistor for the SDA and SCL. (Don't know if I needed to do that since I can see that people here are connecting directly the pins)
I wanted to send 3 bytes from UNO to ESP, I can see that arduino goes to the RequestEvent but it halts there. Also you can see that buffer [] are calling each one a function.