IntesisHome WiFi AC Control

Hi all -
Fix for 0.93.3 is now available on Github
load_platform must have changed so I’ve updated to use the new async load platform.

Only need to update custom_components\intesishome.py

(Please ignore my previous ‘fix’, post now deleted, where I had merged the platform into one file under climate, and changed configuration structure)

Working now, Thank you :slight_smile:

1 Like

It seems that intesishome is not updating, data was not updated for 2 days, only update on restart of HA.

Just wanted to say thanks for this @jnimmo. Have been using it for the last week and it’s been working flawlessly. Well done!

1 Like

Thanks @_KD
@peterfam - Is it working OK now? I don’t think it deals very well if the network connection is interrupted; I did try to have it switch over to polling if the persistent connection times out, but on some computers the TCP timeout seems to be a really really long time

After my home automation PC died (hard disk completely destroyed and data unretrievable) I’ve been rebuilding my PC, which runs Homeseer. But Homeseer doesn’t have a plugin for Intesis thermostats, so I also installed Home Assistant with your Intesis component - not easy to do on Windows, but it’s now up and running and your component is fantastic. Thanks, again, for creating it.

I have a question about an obscure feature of Intesis that I can’t find documented anywhere. Fujitsu heat pump systems will report back, via Intesis, the temperature from two different sensors: one located at the thermostat, and one located at the air handling unit. Since the latter is often located in an uninsulated part of the house, the temperatures from these two sensors can be quite different. There is a setting on the thermostat to change from one sensor to the other, and when the change is made Intesis almost immediately reports the new temperature, and your component picks it up properly. All works fine.

The problem comes when there is a power failure and the system reverts back to measuring temperature at the air handler unit. When I query your component for information on the thermostat via the RESTful API, it returns a lot of information about the thermostat, but it does not return information on which sensor is being used. I’m wondering if that information is available from Intesis and you left it out of the component, or if Intesis does not report that information at all. Do you know?

If your component could tell which sensor was being used, I could create an alarm when the wrong sensor was being used, as a reminder to go around and reset the thermostats (or perhaps there would even be a PUT command to change the sensor automatically). The problem is that power failures often occur here in Vermont, sometimes for a few seconds and sometimes when we are not at home. I could probably have my home automation system (which has power backups and usually doesn’t go down) monitor the power and alert me, but I was hoping to do it from within Intesis if that were possible.

Any thoughts?

Regards.

Hi, im getting errors by trying work your plugin. Some idea??
17-04-08 05:04:12 ERROR (MainThread) [homeassistant.core] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File “/usr/lib/python3.4/asyncio/tasks.py”, line 233, in _step
result = coro.throw(exc)
File “/srv/homeassistant/homeassistant_venv/lib/python3.4/site-packages/homeassistant/setup.py”, line 60, in async_setup_component
return (yield from task)
File “/usr/lib/python3.4/asyncio/futures.py”, line 388, in iter
yield self # This tells Task to wait for completion.
File “/usr/lib/python3.4/asyncio/tasks.py”, line 286, in _wakeup
value = future.result()
File “/usr/lib/python3.4/asyncio/futures.py”, line 277, in result
raise self._exception
File “/usr/lib/python3.4/asyncio/tasks.py”, line 237, in _step
result = next(coro)
File “/srv/homeassistant/homeassistant_venv/lib/python3.4/site-packages/homeassistant/setup.py”, line 144, in _async_setup_component
component = loader.get_component(domain)
File “/srv/homeassistant/homeassistant_venv/lib/python3.4/site-packages/homeassistant/loader.py”, line 141, in get_component
module = importlib.import_module(path)
File “/srv/homeassistant/homeassistant_venv/lib/python3.4/importlib/init.py”, line 109, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File “”, line 2254, in _gcd_import
File “”, line 2237, in _find_and_load
File “”, line 2226, in _find_and_load_unlocked
File “”, line 1200, in _load_unlocked
File “”, line 1129, in _exec
File “”, line 1467, in exec_module
File “”, line 1572, in get_code
File “”, line 1532, in source_to_code
File “”, line 321, in _call_with_frames_removed
File “/home/homeassistant/.homeassistant/custom_components/intesishome.py”, line 60
return controller.get_devices()
^
IndentationError: expected an indented block

Hi, I’m getting the same message as rubenzori86. Running on OSX. Any ideas?

Any reason why this component haven’t made it to the official Hass components?

Sorry no I’ve just been slack! I’ll try and get onto it this weekend
(Actually I was about ready to go but needed to write up a documentation page was my stumbling block)

I’ve just submitted a pull request for it now. Been working perfectly stable for me so looking forward to more people being able to use it.
Please note if it is accepted, I’ve combined it into one platform, so just check out the documentation to see the changes for that (add to configuration under climate as a platform rather than to the root configuration)

I appreciate it, I just thought, why should a good component not be appreciated directly within Hass :grinning:

jnimmo,

Thanks again for this great component - no other HA system I have seen can integrate with Intesis.

I’ve now got Homeassistant running in a fairly standard setup on a Raspberry Pi (I was previously running it on Windows). There is still a problem with Fahrenheit and Centigrade being mixed up when trying to set cooling setpoints (perhaps with heating as well, I haven’t tried yet). The thermostats are reporting the unit of measurement as Fahrenheit, and they are reporting min_temp, max_temp and current_temperature in Fahrenheit. But the setting ‘temperature’ (which I assume is the setpoint) is reported in Celsius:

There also appears to be some inconsistencies, as shown below:

Maybe I am not understanding what the different settings represent, so I apologize if that is the case. Otherwise, can you share your thoughts about whether this is a problem with the component, and if it is possible to fix it? It makes the system essentially unusable.

As always, thanks in advance for nay help you can provide.

Thanks @jwshome! Can you try removing the following line from the device_state_attributes property?

        "temperature": self._target_temp,

The Climate cover component automatically includes temperature in the state attributes - and has a function to do the conversion, so it shouldn’t be being included unconverted in the IntesisHome component (this was the same problem we had last time but I didn’t realise it was doing it for the setpoint too!)
Cheers

Excellent, that solved the problem, thanks for the very quick response. My thermostats still are not working quite right with the component, but I don’t think it is your fault - on Fujitsu split-duct systems the thermostats only work in increments of two degrees, and when I use the HASS component to raise the temperature to an odd degree setting (i.e. to 73 degrees) the system doesn’t respond until I get to an even degree. I will fix this at my end by controlling your component using a REST interface I’ll build.

One other point that you might want to be aware of: I get lots of warning messages that say2017-07-09 01:58:06 WARNING (Thread-9) [homeassistant.helpers.entity] ‘update_ha_state’ is deprecated. Use ‘schedule_update_ha_state’ instead. I can see in your code that you are using the deprecated statement, not sure if you want to fix it or not, as it doesn’t seem to cause any problems.

Thanks again for your help.

Thanks for the note on schedule_update_ha_state I’ll switch to that

Try adding this to the bottom of the file- I’ll include it in my pull request soon

@property
def target_temperature_step(self):
    """Return the step size of setpoint increments."""
    temperature_step = None     
    if (self.unit_of_measurement == TEMP_CELSIUS):
        temperature_step = 1
    else:
        temperature_step = 2
    return temperature_step

I’m a newbie when it comes to HASS, so I’m not sure which file to add it to. Both files are named intesishome.py - should I add it to the file in the custom_components folder, or the one in the folder one level up?

Sorry - put it in climate\intesishome.py file (there should be a property target_temperature_low, target_temperature_high, you could add this block in after that
Cheers

Hey, i still getting this error:

root@HA:/home/ruben/.homeassistant# cat home-assistant.log 

2017-07-12 21:48:42 WARNING (MainThread) [homeassistant.setup] Setup of device_tracker is taking over 10 seconds.
2017-07-12 21:48:51 ERROR (MainThread) [homeassistant.core] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File “/usr/lib/python3.5/asyncio/tasks.py”, line 241, in _step
result = coro.throw(exc)
File “/srv/homeassistant/lib/python3.5/site-packages/homeassistant/setup.py”, line 61, in async_setup_component
return (yield from task)
File “/usr/lib/python3.5/asyncio/futures.py”, line 380, in iter
yield self # This tells Task to wait for completion.
File “/usr/lib/python3.5/asyncio/tasks.py”, line 304, in _wakeup
future.result()
File “/usr/lib/python3.5/asyncio/futures.py”, line 293, in result
raise self._exception
File “/usr/lib/python3.5/asyncio/tasks.py”, line 239, in _step
result = coro.send(None)
File “/srv/homeassistant/lib/python3.5/site-packages/homeassistant/setup.py”, line 141, in _async_setup_component
component = loader.get_component(domain)
File “/srv/homeassistant/lib/python3.5/site-packages/homeassistant/loader.py”, line 141, in get_component
module = importlib.import_module(path)
File “/srv/homeassistant/lib/python3.5/importlib/init.py”, line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File “”, line 986, in _gcd_import
File “”, line 969, in _find_and_load
File “”, line 958, in _find_and_load_unlocked
File “”, line 673, in _load_unlocked
File “”, line 669, in exec_module
File “”, line 775, in get_code
File “”, line 735, in source_to_code
File “”, line 222, in _call_with_frames_removed
File “/home/ruben/.homeassistant/custom_components/intesishome.py”, line 60
return controller.get_devices()
^
IndentationError: expected an indented block

What can i do??

Hi Ruben sounds like it might be to do with how you have downloaded the file from GitHub - like it has some erroneous tabs or spaces somewhere? Try downloading the raw version