def _update(self):
        # Incoming dict keys are camel cased. uah.
        # The dict keys are directly handed over to the device/channel objects. So they
        # need ot be equalized and with internal naming specs just like the also different
        # keys from the XML-RPC messages.
        def decamel_dict_keys(d):
            temp = {}
            for k in d.keys():
                temp[utils.decamel(k)] = d[k]
            return temp

        devices = {}
        for spec in self._api.interface_list_devices(interface="BidCos-RF"):
            spec = decamel_dict_keys(spec)
            if "parent" not in spec:
                devices[spec["address"]] = spec
            else:
                device = devices[spec["parent"]]
                channels = device.setdefault("channels", [])
                channels.append(spec)

        for key, val in devices.items():
            dict.__setitem__(self, key, val)