I found that $fff(y)=f(y)$ for all $y$ by replacing the $x$ in the functional equation by 0 and setting $f(0)=c$ and then some working, which in combination also show that $f(x)=c-x$ for all $x$ in the range of $f$ since $fff=f$ makes the restriction of $f$ to its range self-inverse. Unfortunately, I don’t have a handle on what the range of $f$ can be. Clearly, it could be all real numbers, with the only solutions then being $f(x)=c-x$, or else it could be that $f \equiv 0$. I’m not even sure whether I’d bet that’s it or that there are more solutions. I can see that $0$ is always in the range. I have a feeling that solutions must be non-increasing and the range must be connected but can’t prove it. Who can finish this off?
*** Disclaimer: I thought of this myself, just for fun, so the answer may be ugly without further assumptions on $f$ but I have a feeling it’s well-behaved, because I’ve seen something like this before (which makes it even worse not knowing how to finish).
I claim $f$ is of the following form.
In particular the range is an arbitrary subgroup. For example we could take $f(r)=\lfloor1/(1-\{r\})\rfloor -\lfloor r\rfloor;$ here I am writing $r=\lfloor r\rfloor+\{r\}$ with $\lfloor r\rfloor\in\mathbb Z$ and $0\leq \{r\}<1.$
To check this is sufficient, write $x=g+h$ and $y=g'+h'$. Then: \begin{align*} f(g+h+f(g'+h'))&=f(g+h+f(h')-g')\\ &=f(h)-g-f(h')+g'\\ &=f(g+h)-f(g'+h') \end{align*}
To show necessity, let $G$ be the (set) image of $f.$ Note that if $g=f(z)$ and $g'=f(z')$ then $f(z+f(z'))=g-g'\in G.$ In particular $0\in G.$ Hence if $g\in G$ then $0-g\in G.$ So $g,g'\in G$ implies $g-(-g')=g+g'\in G$. So $G$ is a subgroup. And for any $g\in G$ and $h\in H$ we can write $g$ as $f(z)$ to get $f(h+g)=f(h+f(z))=f(h)-f(z)=f(h)-g$ as required.