diff --git a/pyisy/nodes/__init__.py b/pyisy/nodes/__init__.py index 83c50aa..d199140 100755 --- a/pyisy/nodes/__init__.py +++ b/pyisy/nodes/__init__.py @@ -530,6 +530,17 @@ def get_by_index(self, i): self.ntypes, ) + def get_folder(self, address): + """Return the folder of a given node address.""" + parent = self.nparents[self.addresses.index(address)] + if parent is None: + # Node is in the root folder. + return None + parent_index = self.addresses.index(parent) + if self.ntypes[parent_index] != TAG_FOLDER: + return self.get_folder(parent) + return self.nnames[parent_index] + @property def children(self): """Return the children of the class.""" diff --git a/pyisy/nodes/nodebase.py b/pyisy/nodes/nodebase.py index 2b605a4..5763a53 100755 --- a/pyisy/nodes/nodebase.py +++ b/pyisy/nodes/nodebase.py @@ -93,6 +93,11 @@ def family(self): """Return the ISY Family category.""" return self._family + @property + def folder(self): + """Return the folder of the current node as a property.""" + return self._nodes.get_folder(self.address) + @property def is_load(self): """Return the isLoad property of the node from it's notes."""