def get_home(self, home_id=None):
        """
        Get the data about a home
        """
        now = datetime.datetime.utcnow()
        if self.home and now < self.home_refresh_at:
            return self.home

        if not self._do_auth():
            raise RuntimeError("Unable to login")

        if home_id is None:
            home_id = self.home_id

        url = self.api_base_url + "Home/GetHomeById"

        params = {
            "homeId": home_id
        }

        headers = {
            "Accept": "application/json",
            'Authorization':
                'bearer ' + self.login_data['token']['accessToken']
        }

        response = requests.get(
            url, params=params, headers=headers, timeout=10)

        if response.status_code != 200:
            raise RuntimeError(
                "{} response code when getting home".format(
                    response.status_code))

        home = response.json()

        if self.cache_home:
            self.home = home
            self.home_refresh_at = (datetime.datetime.utcnow()
                                    + datetime.timedelta(minutes=5))

        return home