def changeKey(self, **kwargs):
        """Change a variable of the thing.  Mostly included for future additions.

        :param key: The value you want to change
        :param value: The new value
        :param thing: a string with the name of the thing, which is then checked using getThings.
        :param thingUri: Uri (string) of the thing you are getting the state from, not checked against getThings.
        :return: a dict with the state of the Thing.
        :raises: ValueError if the requested thing does not exists or the position is not between 0 and 100. 
            NameError if not logged in. SyntaxError when not exactly one of the params is given. 
        """
        login_return = self._is_logged_in()
        #check the thing being changed
        if "thingUri" in kwargs:
            thingUri = kwargs['thingUri']
        elif "thing" in kwargs:
            thing = kwargs['thing']
            for t in self._getThings():
                if 'NAME' in t:
                    if  t['NAME'] == thing and 'thingUri' in t:
                        thingUri = t['thingUri']
                        break
                    else:
                        raise ValueError('Unknown thing: ' + thing)
                else:
                    raise ValueError('No things available.')
        else:
            return SyntaxError("Please provide either the 'thing' name or the 'thingUri' not both and at least one")

        if 'key' in kwargs:
            key = kwargs['key']
        else:
            raise SyntaxError("Please provide a key to change")

        if 'value' in kwargs:
            value = kwargs['value']
        else:
            raise SyntaxError("Please provide a value to change to")

        if key.lower().find('position'):
            if int(value) < 0 or int(value) > 100:
                return ValueError("Please set the position between 0 and 100.")

        #prepare data payload
        data = {
            "data": {
                str(key): str(value)
            },
            "path": "/thing" + thingUri,
            "host": "https://thing.brunt.co:8080"
        }
        
        #call the request method and return the response.
        resp = self._http.request(data, RequestTypes.PUT)
        resp.update(login_return)
        return resp
def changeKey ( self , ** kwargs ) : login_return = self . _is_logged_in ( ) if "thingUri" in kwargs : thingUri = kwargs [ 'thingUri' ] elif "thing" in kwargs : thing = kwargs [ 'thing' ] for t in self . _getThings ( ) : if 'NAME' in t : if t [ 'NAME' ] == thing and 'thingUri' in t : thingUri = t [ 'thingUri' ] break else : raise ValueError ( 'Unknown thing: ' + thing ) else : raise ValueError ( 'No things available.' ) else : return SyntaxError ( "Please provide either the 'thing' name or the 'thingUri' not both and at least one" ) if 'key' in kwargs : key = kwargs [ 'key' ] else : raise SyntaxError ( "Please provide a key to change" ) if 'value' in kwargs : value = kwargs [ 'value' ] else : raise SyntaxError ( "Please provide a value to change to" ) if key . lower ( ) . find ( 'position' ) : if int ( value ) < 0 or int ( value ) > 100 : return ValueError ( "Please set the position between 0 and 100." ) data = { "data" : { str ( key ) : str ( value ) } , "path" : "/thing" + thingUri , "host" : "https://thing.brunt.co:8080" } resp = self . _http . request ( data , RequestTypes . PUT ) resp . update ( login_return ) return resp
Change a variable of the thing.  Mostly included for future additions.

        :param key: The value you want to change
        :param value: The new value
        :param thing: a string with the name of the thing, which is then checked using getThings.
        :param thingUri: Uri (string) of the thing you are getting the state from, not checked against getThings.
        :return: a dict with the state of the Thing.
        :raises: ValueError if the requested thing does not exists or the position is not between 0 and 100. 
            NameError if not logged in. SyntaxError when not exactly one of the params is given.