atmospi icon indicating copy to clipboard operation
atmospi copied to clipboard

Assigning fixed colors

Open ultima-originem opened this issue 9 years ago • 4 comments

Currently highcharts seems to assign a random color to each [temperature] line. This makes the result analysis needlessy difficult. It would be nice if both the order as well as the line color could be derived from a configuration file.

ultima-originem avatar Jan 15 '15 18:01 ultima-originem

I solved this in the following way:

Create a new function getDevParams. This function sets various rendering parameters: device name, legend sort order and line color:

// set key parameters for each device and map device ID to a human-sensible name

function getDevParams(device) {

    switch (device) {
        case "28-000005fab05d":
            devName = "CV ruimte";
            legendIndex = 4;
            lineColor = '#66CCFF'
            break;
        case "28-000005fab2e0":
            devName = "vloer aanvoer";
            legendIndex = 2;
            lineColor = '#FF9900'
            break;
        case "28-000005fab89c":
            devName = "vloer retour";
            legendIndex = 3;
            lineColor = '#FFDD77'
            break;
        case "28-000005fb03d6":
            devName = "CV aanvoer";
            legendIndex = 1;
            lineColor = '#FF0000'
            break;
    }
    var devParams = new Object();
    devParams.devName = devName;
    devParams.legendIndex = legendIndex;
    devParams.lineColor = lineColor;
    return devParams;
}

I still can't get the summary div to sort though.

To summarize:

  1. each sensor gets a human sensible name
  2. each sensor gets a user defined line color
  3. the legend sort order can be defined by the user

Unfortunately most of this is hard coded; hopefully someone can improve on this.

ultima-originem avatar Jan 20 '15 16:01 ultima-originem

Point 1 in your comment above is done! See #10

Point 2: Let's look at the possibility of adding a "Color" column to the new Devices table, and pulling that into the Highcharts UI...

Point 3: This is the trickiest part... the data for each device is loaded separately and asynchronously, so the order in which the HTTP requests finish is the order in which the data is displayed. And, the "Latest Measurements" load separately from the rest of the data, so those can be in a different order too...

mstenta avatar Feb 09 '15 17:02 mstenta

On Point 3: I realize this is going to be tricky; at the same time as you can see from #23, meeting this requirement will significantly enhance usability in cases where there are many [>3] sensors.

ultima-originem avatar Feb 09 '15 18:02 ultima-originem

I'm in the process of porting my extensions to the latest release. It seems to me that the settings construct that is now in place, will serve as a suitable mechanism to store this information as well as being much more convenient than storing the equivalent in the database. However, I need some help in finding the right structure as I need to capture a set of parameters for each device as well as global options such as chart background and height [which I know how to do]. Can you write a small example on how to cleanly define a set of options per device?

ultima-originem avatar Feb 26 '15 14:02 ultima-originem