Ankündigung

Einklappen
Keine Ankündigung bisher.

Logic 2.0 Hue control does not seem to work

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    HS/FS Logic 2.0 Hue control does not seem to work


    So i am trying to write a logic module that will control my HUE lamps.
    By testing via postman and the web evaluate inside the homeserver i know that it can work.

    So why not try and make a logic module right?

    Code:
    # coding: UTF-8
    
    import json
    import requests
    
    ##!!!!##################################################################################################
    #### Own written code can be placed above this commentblock . Do not change or delete commentblock! ####
    ########################################################################################################
    ##** Code created by generator - DO NOT CHANGE! **##
    
    class HUE_Test10801(hsl20_3.BaseModule):
    
        def __init__(self, homeserver_context):
            hsl20_3.BaseModule.__init__(self, homeserver_context, "HUETest")
            self.FRAMEWORK = self._get_framework()
            self.LOGGER = self._get_logger(hsl20_3.LOGGING_NONE,())
            self.PIN_I_INPUT=1
            self.PIN_O_OUTPUT=1
            self.FRAMEWORK._run_in_context_thread(self.on_init)
    
    ########################################################################################################
    #### Own written code can be placed after this commentblock . Do not change or delete commentblock! ####
    ###################################################################################################!!!##
    
        def on_init(self):
            pass
    
        def on_input_value(self, index, value):
          if self._get_input_value(index) == 1:
            payload={'on':True}
            self._set_output_value(self.PIN_O_OUTPUT, 1)
          elif self._get_input_value(index) == 0:
            payload={'on':False}
            self._set_output_value(self.PIN_O_OUTPUT, 0)
            
          requests.put('http://"ip adress"/api/"api key"/lights/1/state', json=payload)
    Using the simulate and syslog open i can see that the module will accept a 1 and 0 at input 1 and will output a 1 and 0 at the output.

    However when i import the logic module in Expert 4.8 and attach it to a switch nothing happens. Neither the PUT or the output reacts.
    ( i tied a switch input to the input of the logic module and the output to a status of that switch)

    ie: i press the switch and even the status does not change.

    Tried running this code in python command line and it works like a charm.
    What am i doing wrong for the homeserver?
    Zuletzt geändert von cevers; 17.07.2019, 14:39.

    #2
    After some digging i found this:
    Code:
     [TABLE="align: center, border: 0, cellpadding: 3, cellspacing: 1"]
     	 		[TR="bgcolor: #CCCCFF"]
     			[TD][B]17.07.2019 15:00:49 (1)[/B]
    			File "./../hssrc/hs_logik.py", line 232, in calc
    			File "formula", line 1, in [module]
    			File "[HUE_Test10801]", line 465, in [module]
    			ImportError: No module named requests
    			[5012L, 10801L, 1L, 'EI', "eval(compile(__import__('zlib').decompress(__import__('base64').b64decode('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')),'[HUE_Test10801]', 'exec'), pItem.MC.HSL20CTX['HUETest'])", '', 0L, 0L, 0L, 0L][/TD]
     		[/TR]
     	 [/TABLE]
    But have no clue what it means.

    Kommentar


      #3
      Learned alot about Python these days.
      So the Homeserver does not have the library "requests", i cannot install the library as it needs alot more like urllib3.
      Simplest way now for me is to use the httplib as it allows PUT requests (which urllib and urllib2 does not support without a hack)

      For anyone wanting to todo a simple API PUT like for the HUE lamps:
      Code:
          def on_input_value(self, index, value):
            
            if self._get_input_value(index) == 1:
              payload=json.dumps({'on':True})
              self._set_output_value(self.PIN_O_OUTPUT, 1)
            elif self._get_input_value(index) == 0:
              payload=json.dumps({'on':False})
              self._set_output_value(self.PIN_O_OUTPUT, 0)
              
            h = httplib.HTTPConnection('hue ip')
            l = len(payload)
            headers = {"Content-type": "application/json", "Content-Lenght": l}
            h.request('PUT', '/api/my key/lights/1/state', payload, headers)
            r = h.getresponse()
      In this case the logic module has 1 input and 1 output (to check for me if it even works by setting the output)
      I am now buidling this out so i can set the color, brightness (note, color is XY so you will need to convert RGB to it)

      Edit: On has a delay, about 2 seconds..... OFF never. Why is this?
      Zuletzt geändert von cevers; 18.07.2019, 10:16.

      Kommentar

      Lädt...
      X