'Update node properties.'

def node_changed(self):

    attributes = {}
    stats = self.get_node_statistics()
    for attr in ATTRIBUTES:
        value = getattr(self.node, attr)
        if ((attr in _REQUIRED_ATTRIBUTES) or value):
            attributes[attr] = value
    for attr in _COMM_ATTRIBUTES:
        attributes[attr] = stats[attr]
    if self.node.can_wake_up():
        for value in self.node.get_values(COMMAND_CLASS_WAKE_UP).values():
            self.wakeup_interval = value.data
            break
    else:
        self.wakeup_interval = None
    self.battery_level = self.node.get_battery_level()
    self._attributes = attributes
    self.maybe_schedule_update()
