Skip to content

Instantly share code, notes, and snippets.

@inator
Last active September 4, 2021 21:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save inator/8bf3be4eba90c569eaecee4ab07b42fc to your computer and use it in GitHub Desktop.
Save inator/8bf3be4eba90c569eaecee4ab07b42fc to your computer and use it in GitHub Desktop.
{
"ha:system:peer-interface": {
"config": {
"name": "peer-interface",
"id": "peer-interface",
"zone": "Home"
},
"platform": "ha",
"type": "system",
"features": {
"info": {
"state": null,
"primary": true,
"record": false,
"icon": "eye",
"type": "sensor",
"name": "info",
"label": "peer-interface: info"
}
},
"primaryFeature": "info"
},
"ha:system:clock": {
"config": {
"module": "clock",
"zone": "Main",
"id": "clock"
},
"platform": "ha",
"type": "system",
"features": {
"dateTime12": {
"state": "Sep 4th 21, 11:40 AM",
"primary": true,
"record": false,
"icon": "eye",
"type": "sensor",
"name": "dateTime12",
"label": "undefined: dateTime12"
},
"dateTime24": {
"state": "Sep 4th 21, 11:40 AM",
"primary": false,
"record": false,
"icon": "eye",
"type": "sensor",
"name": "dateTime24",
"label": "undefined: dateTime24"
},
"year": {
"state": "2021",
"primary": false,
"record": false,
"icon": "eye",
"type": "sensor",
"name": "year",
"label": "undefined: year"
},
"month": {
"state": "September",
"primary": false,
"record": false,
"icon": "eye",
"type": "sensor",
"name": "month",
"label": "undefined: month"
},
"day": {
"state": "4",
"primary": false,
"record": false,
"icon": "eye",
"type": "sensor",
"name": "day",
"label": "undefined: day"
},
"weekday": {
"state": "Saturday",
"primary": false,
"record": false,
"icon": "eye",
"type": "sensor",
"name": "weekday",
"label": "undefined: weekday"
},
"hour24": {
"state": "11",
"primary": false,
"record": false,
"icon": "eye",
"type": "sensor",
"name": "hour24",
"label": "undefined: hour24"
},
"hour12": {
"state": "11",
"primary": false,
"record": false,
"icon": "eye",
"type": "sensor",
"name": "hour12",
"label": "undefined: hour12"
},
"minute": {
"state": "40",
"primary": false,
"record": false,
"icon": "eye",
"type": "sensor",
"name": "minute",
"label": "undefined: minute"
},
"period12": {
"state": "AM",
"primary": false,
"record": false,
"icon": "eye",
"type": "sensor",
"name": "period12",
"label": "undefined: period12"
}
},
"primaryFeature": "dateTime12"
}
}
@inator
Copy link
Author

inator commented Sep 4, 2021

@notato8 please write a function to extract only the unique zones.

Copy link

ghost commented Sep 4, 2021

function getZones(entities = {}) {
    return ( 
        Object.values(entities)
        .map(entity => {
            return entity.config.zone;
        }).filter((zone, i, self) => {
            return self.indexOf(zone) == i;
        })
    )
}
function getEntitiesByZone(entities = {}, zone = "") {
    return (
        Object.fromEntries(
            Object.entries(entities)
            .filter(([key, value]) => {
                return value.config.zone == zone;
            })
        )
    )
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment