Confusing Home Screen - Feedback - Rachio Community

Confusing Home Screen

post by djm on Sep 22, 2023

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 happened to 9/23 and 9/24

Scrolling to the right, shows me those days

At least now all except 10/2 is there!

Is this normal?

post by Linn on Sep 24, 2023

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

post by Gerardv514 on Sep 25, 2023

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

post by djm on Sep 26, 2023

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…

post by djm on Oct 4, 2023

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.

// ==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);
    });
})();

post by Gerardv514 on Oct 7, 2023

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.