Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cooling within evoHome #17

Open
slice396 opened this issue May 9, 2024 · 14 comments
Open

Cooling within evoHome #17

slice396 opened this issue May 9, 2024 · 14 comments

Comments

@slice396
Copy link

slice396 commented May 9, 2024

I have an evoHome setup with multiple zones and a heat pump with the ability to cool.

Im not able to cool within the home assistant. I can only choose heat or off.

Am i missing something? If i change the settings to cooling on the evohome. The temperature rises on the display and on evohome. In my case evoahome still thinks we are heating but it does work. So of i lower the temperature within home assistant the heat pump starts to cool.

I would love the ability to change to cooling on heating with home assistant.

@zxdavb
Copy link
Owner

zxdavb commented May 9, 2024

I am keen to get cooling into the code, but - as I don't have cooling available to me (and neither the official API) - I'll need some help from someone who does.

What I need in the first instance is a coy of the JSON returned from the TCC webservers, so I can set up some virtual servers to dev/test against.

You can help with this fairly easily, if you're using HA, see:

The JSON does not contain any personally identifiable information, so you can post it here - or PM me if you prefer.

@slice396
Copy link
Author

slice396 commented May 11, 2024

This was very challenging from a phone...

Here you have the log, it's the complete log. Could not select the evohome part as you asked. If this is not what you asked for i will bring in my laptop and do it again;


2024-05-11 12:27:13.471 INFO (MainThread) [homeassistant.setup] Setting up evohome
...
2024-05-11 12:27:13.873 INFO (MainThread) [evohomeasync2.broker] GET https://tccna.honeywell.com/WebAPI/emea/api/v1/userAccount (200) = {'userId': ...
...
2024-05-11 12:27:14.187 INFO (MainThread) [evohomeasync2.broker] GET https://tccna.honeywell.com/WebAPI/emea/api/v1/location/installationInfo?userId=2972021&includeTemperatureControlSystems=True (200) = [{'locationInfo': {'locationId': ...

@zxdavb
Copy link
Owner

zxdavb commented May 11, 2024

Thanks for that, however...

I need this logging:

logger:
  logs:
    homeassistant.components.evohome: debug
    homeassistant.components.evohome.climate: debug
    homeassistant.components.evohome.water_heater: debug

You have provided this logging:

logger:
  logs:
    evohomeasync2: info
    evohomeasync2.broker: info

I note that you have at least two locations, so make sure you supply the JSON for the correct location.

@slice396
Copy link
Author

slice396 commented May 11, 2024

Like this?

<< SNIP >>

@zxdavb
Copy link
Owner

zxdavb commented May 11, 2024

Think so, lemme look at it.

@zxdavb
Copy link
Owner

zxdavb commented May 11, 2024

OK, so the JSON schema is limited to what we know so far. In particular, all zones have:

  • the setpointCapabilities with: "canControlCool": false

I has hoping to see "canControlCool": true, alongside some new JSON.

Can you confirm that your system supports cooling?

If so, it may be useful to send me some JSON when the system is actively cooling.

Please can you turn off logging via the client library because it does report personally identifiable information:

logger:
  logs:
    evohomeasync2: warning
    evohomeasync2.broker: warning

@zxdavb
Copy link
Owner

zxdavb commented May 11, 2024

Am i missing something? If i change the settings to cooling on the evohome. The temperature rises on the display and on evohome.

I am not sure what you mean by 'The temperature rises'?

Do you mean the current temperature, or the target temperature (the setpoint)?

In any case, both should decrease, no? (or: target heat temperature was 19.5, and target cool temperature was 20.5?)

Again, when the system is cooling, send me these two lines only:

  • [homeassistant.components.evohome] Config =
  • [homeassistant.components.evohome] Status =

@slice396
Copy link
Author

slice396 commented May 11, 2024

Thanks for the effort so far!

First "The temperature rises" thing i said earlier;

When i change to cooling on the evoHome system itself, the setpoint of the rooms rises to 24 degrees. This is normal. What i notice within Home Assistant is that the system just thinks its still heating. Lowering the temperature will activate the heat pump in cooling. But home assistant just says "heating" or "off". But i cannot change it from heating to cooling or vise versa.

As you requested i did this;

  1. Changed the config.yaml to;
logger:
  default: info  # turn off debug messages, generally...
  logs:
    evohomeasync2: warning
    evohomeasync2.broker: warning
    homeassistant.components.evohome: debug
    homeassistant.components.evohome.climate: debug
    homeassistant.components.evohome.water_heater: debug
  1. removed the existing log file.
  2. Switched to cooling.
  3. Reboot Home Assistant.
  4. Made sure the system was actually cooling.
  5. Searched in the log for
[homeassistant.components.evohome] Config =
[homeassistant.components.evohome] Status =

And paste these lines below;

2024-05-11 20:26:16.503 DEBUG (MainThread) [homeassistant.components.evohome] Config = {'locationInfo': {'locationId': '6390479', 'timeZone': {'timeZoneId': 'WEuropeStandardTime', 'displayName': '(UTC+01:00) Amsterdam, Berlijn, Bern, Rome, Stockholm, Wenen', 'offsetMinutes': 60, 'currentOffsetMinutes': 120, 'supportsDaylightSaving': True}}, 'gateways': [{'gatewayInfo': {'gatewayId': '6008600', 'temperatureControlSystems': [{'systemId': '8222003', 'modelType': 'EvoTouch', 'zones': [{'zoneId': '8222000', 'modelType': 'HeatingZone', 'setpointCapabilities': {'maxHeatSetpoint': 35.0, 'minHeatSetpoint': 5.0, 'valueResolution': 0.5, 'canControlHeat': True, 'canControlCool': False, 'allowedSetpointModes': ['PermanentOverride', 'FollowSchedule', 'TemporaryOverride'], 'maxDuration': '1.00:00:00', 'timingResolution': '00:10:00'}, 'scheduleCapabilities': {'maxSwitchpointsPerDay': 6, 'minSwitchpointsPerDay': 1, 'timingResolution': '00:10:00', 'setpointValueResolution': 0.5}, 'name': 'Woonkamer', 'zoneType': 'UnderfloorHeating'}, {'zoneId': '8222001', 'modelType': 'HeatingZone', 'setpointCapabilities': {'maxHeatSetpoint': 35.0, 'minHeatSetpoint': 5.0, 'valueResolution': 0.5, 'canControlHeat': True, 'canControlCool': False, 'allowedSetpointModes': ['PermanentOverride', 'FollowSchedule', 'TemporaryOverride'], 'maxDuration': '1.00:00:00', 'timingResolution': '00:10:00'}, 'scheduleCapabilities': {'maxSwitchpointsPerDay': 6, 'minSwitchpointsPerDay': 1, 'timingResolution': '00:10:00', 'setpointValueResolution': 0.5}, 'name': 'MBR', 'zoneType': 'UnderfloorHeating'}, {'zoneId': '8222002', 'modelType': 'HeatingZone', 'setpointCapabilities': {'maxHeatSetpoint': 35.0, 'minHeatSetpoint': 5.0, 'valueResolution': 0.5, 'canControlHeat': True, 'canControlCool': False, 'allowedSetpointModes': ['PermanentOverride', 'FollowSchedule', 'TemporaryOverride'], 'maxDuration': '1.00:00:00', 'timingResolution': '00:10:00'}, 'scheduleCapabilities': {'maxSwitchpointsPerDay': 6, 'minSwitchpointsPerDay': 1, 'timingResolution': '00:10:00', 'setpointValueResolution': 0.5}, 'name': 'BK', 'zoneType': 'UnderfloorHeating'}, {'zoneId': '8403459', 'modelType': 'HeatingZone', 'setpointCapabilities': {'maxHeatSetpoint': 35.0, 'minHeatSetpoint': 5.0, 'valueResolution': 0.5, 'canControlHeat': True, 'canControlCool': False, 'allowedSetpointModes': ['PermanentOverride', 'FollowSchedule', 'TemporaryOverride'], 'maxDuration': '1.00:00:00', 'timingResolution': '00:10:00'}, 'scheduleCapabilities': {'maxSwitchpointsPerDay': 6, 'minSwitchpointsPerDay': 1, 'timingResolution': '00:10:00', 'setpointValueResolution': 0.5}, 'name': 'Kantoor', 'zoneType': 'UnderfloorHeating'}, {'zoneId': '8403460', 'modelType': 'HeatingZone', 'setpointCapabilities': {'maxHeatSetpoint': 35.0, 'minHeatSetpoint': 5.0, 'valueResolution': 0.5, 'canControlHeat': True, 'canControlCool': False, 'allowedSetpointModes': ['PermanentOverride', 'FollowSchedule', 'TemporaryOverride'], 'maxDuration': '1.00:00:00', 'timingResolution': '00:10:00'}, 'scheduleCapabilities': {'maxSwitchpointsPerDay': 6, 'minSwitchpointsPerDay': 1, 'timingResolution': '00:10:00', 'setpointValueResolution': 0.5}, 'name': 'Sauna', 'zoneType': 'UnderfloorHeating'}, {'zoneId': '8403596', 'modelType': 'HeatingZone', 'setpointCapabilities': {'maxHeatSetpoint': 35.0, 'minHeatSetpoint': 5.0, 'valueResolution': 0.5, 'canControlHeat': True, 'canControlCool': False, 'allowedSetpointModes': ['PermanentOverride', 'FollowSchedule', 'TemporaryOverride'], 'maxDuration': '1.00:00:00', 'timingResolution': '00:10:00'}, 'scheduleCapabilities': {'maxSwitchpointsPerDay': 6, 'minSwitchpointsPerDay': 1, 'timingResolution': '00:10:00', 'setpointValueResolution': 0.5}, 'name': 'Hut', 'zoneType': 'UnderfloorHeating'}, {'zoneId': '8222004', 'modelType': 'Unknown', 'setpointCapabilities': {'maxHeatSetpoint': 30.0, 'minHeatSetpoint': 5.0, 'valueResolution': 0.5, 'canControlHeat': True, 'canControlCool': False, 'allowedSetpointModes': ['PermanentOverride', 'FollowSchedule', 'TemporaryOverride'], 'maxDuration': '1.00:00:00', 'timingResolution': '00:10:00'}, 'scheduleCapabilities': {'maxSwitchpointsPerDay': 6, 'minSwitchpointsPerDay': 1, 'timingResolution': '00:10:00', 'setpointValueResolution': 0.5}, 'name': '', 'zoneType': 'Unknown'}], 'allowedSystemModes': [{'systemMode': 'Auto', 'canBePermanent': True, 'canBeTemporary': False}, {'systemMode': 'AutoWithEco', 'canBePermanent': True, 'canBeTemporary': True, 'maxDuration': '1.00:00:00', 'timingResolution': '01:00:00', 'timingMode': 'Duration'}, {'systemMode': 'AutoWithReset', 'canBePermanent': True, 'canBeTemporary': False}, {'systemMode': 'Away', 'canBePermanent': True, 'canBeTemporary': True, 'maxDuration': '99.00:00:00', 'timingResolution': '1.00:00:00', 'timingMode': 'Period'}, {'systemMode': 'DayOff', 'canBePermanent': True, 'canBeTemporary': True, 'maxDuration': '99.00:00:00', 'timingResolution': '1.00:00:00', 'timingMode': 'Period'}, {'systemMode': 'HeatingOff', 'canBePermanent': True, 'canBeTemporary': False}, {'systemMode': 'Custom', 'canBePermanent': True, 'canBeTemporary': True, 'maxDuration': '99.00:00:00', 'timingResolution': '1.00:00:00', 'timingMode': 'Period'}]}]}, 'temperatureControlSystems': [{'systemId': '8222003', 'modelType': 'EvoTouch', 'zones': [{'zoneId': '8222000', 'modelType': 'HeatingZone', 'setpointCapabilities': {'maxHeatSetpoint': 35.0, 'minHeatSetpoint': 5.0, 'valueResolution': 0.5, 'canControlHeat': True, 'canControlCool': False, 'allowedSetpointModes': ['PermanentOverride', 'FollowSchedule', 'TemporaryOverride'], 'maxDuration': '1.00:00:00', 'timingResolution': '00:10:00'}, 'scheduleCapabilities': {'maxSwitchpointsPerDay': 6, 'minSwitchpointsPerDay': 1, 'timingResolution': '00:10:00', 'setpointValueResolution': 0.5}, 'name': 'Woonkamer', 'zoneType': 'UnderfloorHeating'}, {'zoneId': '8222001', 'modelType': 'HeatingZone', 'setpointCapabilities': {'maxHeatSetpoint': 35.0, 'minHeatSetpoint': 5.0, 'valueResolution': 0.5, 'canControlHeat': True, 'canControlCool': False, 'allowedSetpointModes': ['PermanentOverride', 'FollowSchedule', 'TemporaryOverride'], 'maxDuration': '1.00:00:00', 'timingResolution': '00:10:00'}, 'scheduleCapabilities': {'maxSwitchpointsPerDay': 6, 'minSwitchpointsPerDay': 1, 'timingResolution': '00:10:00', 'setpointValueResolution': 0.5}, 'name': 'MBR', 'zoneType': 'UnderfloorHeating'}, {'zoneId': '8222002', 'modelType': 'HeatingZone', 'setpointCapabilities': {'maxHeatSetpoint': 35.0, 'minHeatSetpoint': 5.0, 'valueResolution': 0.5, 'canControlHeat': True, 'canControlCool': False, 'allowedSetpointModes': ['PermanentOverride', 'FollowSchedule', 'TemporaryOverride'], 'maxDuration': '1.00:00:00', 'timingResolution': '00:10:00'}, 'scheduleCapabilities': {'maxSwitchpointsPerDay': 6, 'minSwitchpointsPerDay': 1, 'timingResolution': '00:10:00', 'setpointValueResolution': 0.5}, 'name': 'BK', 'zoneType': 'UnderfloorHeating'}, {'zoneId': '8403459', 'modelType': 'HeatingZone', 'setpointCapabilities': {'maxHeatSetpoint': 35.0, 'minHeatSetpoint': 5.0, 'valueResolution': 0.5, 'canControlHeat': True, 'canControlCool': False, 'allowedSetpointModes': ['PermanentOverride', 'FollowSchedule', 'TemporaryOverride'], 'maxDuration': '1.00:00:00', 'timingResolution': '00:10:00'}, 'scheduleCapabilities': {'maxSwitchpointsPerDay': 6, 'minSwitchpointsPerDay': 1, 'timingResolution': '00:10:00', 'setpointValueResolution': 0.5}, 'name': 'Kantoor', 'zoneType': 'UnderfloorHeating'}, {'zoneId': '8403460', 'modelType': 'HeatingZone', 'setpointCapabilities': {'maxHeatSetpoint': 35.0, 'minHeatSetpoint': 5.0, 'valueResolution': 0.5, 'canControlHeat': True, 'canControlCool': False, 'allowedSetpointModes': ['PermanentOverride', 'FollowSchedule', 'TemporaryOverride'], 'maxDuration': '1.00:00:00', 'timingResolution': '00:10:00'}, 'scheduleCapabilities': {'maxSwitchpointsPerDay': 6, 'minSwitchpointsPerDay': 1, 'timingResolution': '00:10:00', 'setpointValueResolution': 0.5}, 'name': 'Sauna', 'zoneType': 'UnderfloorHeating'}, {'zoneId': '8403596', 'modelType': 'HeatingZone', 'setpointCapabilities': {'maxHeatSetpoint': 35.0, 'minHeatSetpoint': 5.0, 'valueResolution': 0.5, 'canControlHeat': True, 'canControlCool': False, 'allowedSetpointModes': ['PermanentOverride', 'FollowSchedule', 'TemporaryOverride'], 'maxDuration': '1.00:00:00', 'timingResolution': '00:10:00'}, 'scheduleCapabilities': {'maxSwitchpointsPerDay': 6, 'minSwitchpointsPerDay': 1, 'timingResolution': '00:10:00', 'setpointValueResolution': 0.5}, 'name': 'Hut', 'zoneType': 'UnderfloorHeating'}, {'zoneId': '8222004', 'modelType': 'Unknown', 'setpointCapabilities': {'maxHeatSetpoint': 30.0, 'minHeatSetpoint': 5.0, 'valueResolution': 0.5, 'canControlHeat': True, 'canControlCool': False, 'allowedSetpointModes': ['PermanentOverride', 'FollowSchedule', 'TemporaryOverride'], 'maxDuration': '1.00:00:00', 'timingResolution': '00:10:00'}, 'scheduleCapabilities': {'maxSwitchpointsPerDay': 6, 'minSwitchpointsPerDay': 1, 'timingResolution': '00:10:00', 'setpointValueResolution': 0.5}, 'name': '', 'zoneType': 'Unknown'}], 'allowedSystemModes': [{'systemMode': 'Auto', 'canBePermanent': True, 'canBeTemporary': False}, {'systemMode': 'AutoWithEco', 'canBePermanent': True, 'canBeTemporary': True, 'maxDuration': '1.00:00:00', 'timingResolution': '01:00:00', 'timingMode': 'Duration'}, {'systemMode': 'AutoWithReset', 'canBePermanent': True, 'canBeTemporary': False}, {'systemMode': 'Away', 'canBePermanent': True, 'canBeTemporary': True, 'maxDuration': '99.00:00:00', 'timingResolution': '1.00:00:00', 'timingMode': 'Period'}, {'systemMode': 'DayOff', 'canBePermanent': True, 'canBeTemporary': True, 'maxDuration': '99.00:00:00', 'timingResolution': '1.00:00:00', 'timingMode': 'Period'}, {'systemMode': 'HeatingOff', 'canBePermanent': True, 'canBeTemporary': False}, {'systemMode': 'Custom', 'canBePermanent': True, 'canBeTemporary': True, 'maxDuration': '99.00:00:00', 'timingResolution': '1.00:00:00', 'timingMode': 'Period'}]}]}]}

2024-05-11 20:26:16.657 DEBUG (MainThread) [homeassistant.components.evohome] Status = {'locationId': '6390479', 'gateways': [{'gatewayId': '6008600', 'temperatureControlSystems': [{'systemId': '8222003', 'zones': [{'zoneId': '8222000', 'temperatureStatus': {'temperature': 23.0, 'isAvailable': True}, 'activeFaults': [], 'setpointStatus': {'targetHeatTemperature': 23.0, 'setpointMode': 'FollowSchedule'}, 'name': 'Woonkamer'}, {'zoneId': '8222001', 'temperatureStatus': {'temperature': 25.0, 'isAvailable': True}, 'activeFaults': [], 'setpointStatus': {'targetHeatTemperature': 21.0, 'setpointMode': 'TemporaryOverride', 'until': '2024-05-11T20:30:00Z'}, 'name': 'MBR'}, {'zoneId': '8222002', 'temperatureStatus': {'temperature': 22.0, 'isAvailable': True}, 'activeFaults': [], 'setpointStatus': {'targetHeatTemperature': 23.0, 'setpointMode': 'FollowSchedule'}, 'name': 'BK'}, {'zoneId': '8403459', 'temperatureStatus': {'temperature': 23.5, 'isAvailable': True}, 'activeFaults': [], 'setpointStatus': {'targetHeatTemperature': 23.0, 'setpointMode': 'FollowSchedule'}, 'name': 'Kantoor'}, {'zoneId': '8403460', 'temperatureStatus': {'temperature': 25.5, 'isAvailable': True}, 'activeFaults': [], 'setpointStatus': {'targetHeatTemperature': 23.0, 'setpointMode': 'FollowSchedule'}, 'name': 'Sauna'}, {'zoneId': '8403596', 'temperatureStatus': {'temperature': 23.0, 'isAvailable': True}, 'activeFaults': [], 'setpointStatus': {'targetHeatTemperature': 23.0, 'setpointMode': 'FollowSchedule'}, 'name': 'Hut'}, {'zoneId': '8222004', 'temperatureStatus': {'isAvailable': False}, 'activeFaults': [], 'setpointStatus': {'targetHeatTemperature': 62.0, 'setpointMode': 'PermanentOverride'}, 'name': ''}], 'activeFaults': [], 'systemModeStatus': {'mode': 'Auto', 'isPermanent': True}}], 'activeFaults': []}]}

@slice396
Copy link
Author

I guess home assistant logs into the normal portal and changes settings like i would. I cannot change the system to cooling or heating within the portal. Only locally on the Evohome itself. So i guess its not easely fixable.

@zxdavb
Copy link
Owner

zxdavb commented May 11, 2024

My best guess is that I'd have to use a different API...

I am not even sure if ramses_rf would work, either.

@zxdavb
Copy link
Owner

zxdavb commented May 12, 2024

I am pretty sure I need to use another API - I will see I can contact the vendor & get access to it.

@slice396
Copy link
Author

I guess you are right. After testing i noticed some problems with cooling because home assistant thinks its saving energie by lowering the temperature. Because cooling is active the opposite is true. Im searching for a workaround but for now havent found a simple solution.

I've send a mail to my sales representative as well. Perhaps he knows a solution.

@zxdavb
Copy link
Owner

zxdavb commented May 13, 2024

There are several versions of API that speak to TCC/evohome - evohome-async can use two (of the earlier APIs).

I know another coder (who wrote an Amazon Alexa skill that can handle cooling) has been given access to a 3rd API, but his code - unlike mine - is not open source.

I will reach out to them and request access, but because this library is open source, we may not get anywhere.

@slice396
Copy link
Author

Just received access to https://developer.honeywellhome.com/

perhaps there is a use within; https://developer.honeywellhome.com/lyric/apis/post/devices/thermostats/%7BdeviceId%7D

Also requested the cooling capability for the portal. They told me the request has been added to the list, so i guess this will not happen soon.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants