Jump to content

Freddy Kilowatt

Members
  • Posts

    4
  • Joined

  • Last visited

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

Freddy Kilowatt's Achievements

Newbie

Newbie (1/6)

0

Reputation

  1. Thanks! 2.0.8 is working fine. I haven't programmed in python (before my hacking on this). So, I'm not well versed in the syntax. But, I can understand what I'm reading. So I can see your method to test if targetTemperature is returned is a better solution than what I had used in my first attempt at a fix. Thanks for your help. I think this one is solved.
  2. Thanks! That was quick. I tried version 2.0.7 and at first it did not work. I found I needed to add a close parenthesis at the end of line 84 before the colon. Then it works fine. 84c84 < if('targetTemperature' in data['acState']: --- > if('targetTemperature' in data['acState']): I can only edit the file on my EISY so you will need to update the plugin to fix this typo.
  3. My assumption above was incorrect. I figured out how to edit the sensibo plugin code directly on my EISY and debugged the issue. I made two changes to the file sensibo_node.py. Here is the diff output 19c19 < MODE_COUNTER = { 'cool': 0, 'heat': 1, 'fan': 2, 'dry': 3, 'auto': 4 } --- > #MODE_COUNTER = { 'cool': 0, 'heat': 1, 'fan': 2, 'dry': 3, 'auto': 4 } 20a21,23 > # This corrects the display of the mode on the Administrative Console > MODE_COUNTER = { 'cool': 2, 'heat': 1, 'fan': 6, 'dry': 8, 'auto': 3 } > 83c86 < self.setDriver('GV2', data['acState']['targetTemperature'], uom=temp_uom) --- > # self.setDriver('GV2', data['acState']['targetTemperature'], uom=temp_uom) 84a88,98 > # The line above was crashing because the targetTemperature is not returned when > # the mode is in fan only mode. Since it is undefined in fan only mode it should > # probably be displayed as "-" on the Administrative Console. I don't know how to > # do that so I just skipped doing the update. > > try: > if(data['acState']['targetTemperature']): > self.setDriver('GV2', data['acState']['targetTemperature'], uom=temp_uom) > except: > LOGGER.debug('targetTemperature not present in acState') > The first change to the MODE_COUNTER definition corrected the issue I was having with the Administrative Console displaying wrong values for the Mode. As I tested that it still correctly controlled the sensibo I observed a crash when the sensibo was set to Fan Only mode. In this mode the acState doesn't include targetTemperature since it is unused and thus undefined. This was causing an exception in the code of line 83. I changed this to not attempt to update the displayed Target Temperature if it was not reported. It would be better if it displayed "-" or "NA" but I do not know how to code that. I hope this helps and can be incorporated into the plugin code. I attached my final version of sensibo_node.py sensibo_node.py
  4. Running an EISY with 5.9.1 firmware and Polyglot V3. I'm using the Sensibo plugin and it works fairly well. But, the mode displayed doesn't always match the mode set. Setting the mode does send the correct mode to the Sensibo device and air conditioner. But, the mode displayed is not correct. I looked over the code and think I found the reason. In sensibo_node.py line 155 the uom for the mode is defined as 67 which references a table of thermostat modes. But I think it should be 25 for index since it is used to lookup the value in the arrays defined in line 7 (MODEs) and 19 (MODE_COUNTER). The array index look up works for FAN_LEVEL in _update(self, data) and setFan(self, param). The code for MODES should probably work the same way in _update(self, data) and setMode(self, param). The mode that is displayed matches the table for uom 67. 67 = Thermostat mode 0 - Off 1 - Heat 2 - Cool 3 - Auto 4 - Aux/Emergency Heat 5 - Resume 6 - Fan Only 7 - Furnace 8 - Dry Air 9 - Moist Air 10 - Auto Changeover 11 - Energy Save Heat 12 - Energy Save Cool 13 - Away 14 = Program Auto 15 = Program Heat 16 = Program Cool When it should display the modes defined in MODES line 7 MODES = ['cool', 'heat', 'fan', 'dry', 'auto'] I'm not a python programmer and I am not sure how to make my own version and load it into the EISY or I would test this out myself. Thanks!
×
×
  • Create New...