Confusing Home Screen

I am new here, just got and setup my Rachio 3 this week. I find the home screen confusing…

Today is Fri 9/22…
The screen starts at 10/1.
That’s ok, seems it is going backward…
9/30, 9/29…
ok now it seems to switch to days of the week, thur… mon…
Monday takes me to the 9/25
10/6??? Weird
Skips a day. 10/4, What???
now back to 10/5… this makes no sense
on top of that, still wondering what happed to 9/23 and 9/24

Scrolling to the right, shows me those days

Sun
10/3
Sat
Today…

At least now all except 10/2 is there!

Is this normal?

This is a known problem with the website. It should show correctly on the apps

Can Rachio just remove this from the web Home Screen? There are countless threads about this and is really a lot of unneeded noise at this point around the community.

Sorry, for the repeat. I did search, but didn’t see any other threads on this. But I do see some now that I changed the terms I used.

Refreshing the page puts the dates in a different order each time. As a developer, I had to take a look. Looking at the results for /location/getCalendarForTimeRange it does appear to get the json back in the correct order. So it appears the sorting gets messed up somewhere… I didn’t see where the forecast data comes from, so possibly on the merge of those…

1 Like

This made me so frustrated, I fixed it with a tampermonkey script…
It would likely have been easier, if your code is open sourced.
This is not the best code, but works.
In case you are interested.

// ==UserScript==
// @name         Rachio Reorder Calendar
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  Rachio Reorder Calendar
// @author       Duane May
// @match        https://app.rach.io/locations/*/devices/*
// @match        https://app.rach.io/devices/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=rach.io
// @grant        none
// @run-at       document-idle
// ==/UserScript==


function getDaysArray() {
    let daysOfWeek = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];

    var dates = new Array();
    dates.push("Today");
    var date = new Date();

    for (var i = 1; i < 7; i++) {
        date.setDate(date.getDate() + 1);
        let dayOfWeek = date.getDay();
        dates.push(daysOfWeek[dayOfWeek]);
    }

    for (i = 1; i < 9; i++) {
        date.setDate(date.getDate() + 1);
        let formattedDate = (date.getMonth() + 1).toString().padStart(2, '0') + '/' +
            date.getDate().toString().padStart(2, '0');
        dates.push(formattedDate);
    }
    return dates;
}


function main() {
    console.log("Reordering dates");

    var sections = document.getElementsByClassName("test-location-schedule-container")
    if (sections.length == 0) {
        return;
    }
    var childrenOfSection = sections[0].childNodes;
    if (childrenOfSection.length == 0) {
        return;
    }
    var div = childrenOfSection[1].childNodes;
    if (div.length == 0) {
        return;
    }

    var container = div[0];
    var dates = getDaysArray();
    var newOrder = new Array(dates.length);
    var childDivs = container.childNodes;

    for (var i = 0; i < childDivs.length; i++) {
        var childDiv = childDivs[i];
        var divs = childDiv.getElementsByTagName('div');
        if (divs.length == 0) {
            continue;
        }
        sections = divs[0].getElementsByTagName('section');
        if (sections.length == 0) {
            continue;
        }
        divs = sections[0].getElementsByTagName('div');
        if (divs.length == 0) {
            continue;
        }
        var dateDiv = divs[0];
        var matchValue = dateDiv.innerHTML
        var index = dates.indexOf(matchValue);
        newOrder[index] = childDiv;
    }
    for (i = newOrder.length; i >= 0; i--) {
        if (newOrder[i] == null) {
            continue;
        }
        console.log(dates[i]);
        container.insertBefore(newOrder[i], container.firstChild);
    }
}

(function() {
    'use strict';
    window.addEventListener('load', (event) => {
        console.log('The page has fully loaded');
        setTimeout(function() {
            main();
        }, 3000);
    });
})();

To be honest my comment is not directed at you, but at Rachio. I understand they do not want to put any more time and effort into the web app, but when things start breaking they should at least be removed. This is just messy on Rachio’s part.

1 Like