The functionality you're looking may be obtained in a straightforward fashion by loading the varioref, hyperref, and cleveref packages -- in this order.
Then, \vref{eq:1} produces
equation (1) if the cross-referencing call-out (produced by \vref) and the object being cross-referenced (here, an equation numbered (1)) are both on the same page;
equation (1) on the facing page if the document employs a two-sided layout -- as is the case for the book document class -- and if the call-out and the equation are located on facing pages;
either equation (1) on the following page or equation (1) on the preceding page if the page numbers differ by exactly 1 and and aren't placed on facing pages;
equation (1) on page [x] if the page numbers of the cross-reference and equation differ by 2 or more.
This setup is easily adapted to non-English languages. E.g., if ngerman is specified as a document class option and if the babel package is loaded as well, \vref{eq:1} will automatically produce "Gleichung (1) auf der vorherigen Seite" instead of "equation (1) on the preceding page".
An MWE:
\documentclass{book}
\usepackage{varioref}
\usepackage[colorlinks,allcolors=blue]{hyperref}
\usepackage[noabbrev,nameinlink]{cleveref}
\begin{document}
\vref{eq:a}
\clearpage
\vref{eq:a}
\clearpage
\vref{eq:a}
\begin{equation}\label{eq:a} a \end{equation}
\clearpage
\vref{eq:a}
\clearpage
\vref{eq:a}
\end{document}
\autorefmacro of thehyperrefpackage. Instead, it uses the\vrefpackage of thevariorefpackage. In the code above,hyperrefis loaded mainly to make the cross-references into hyperlinks. A separate remark: Thecleverefpackage is loaded above with the optionnameinlinkso that the output of\vrefmimics that of\autoref; if you don't like this effect, just omit the optionnameinlink. – Mico Jul 12 '19 at 12:04