OK, 0.6.5 pushed - it has all the service calls in it now. Please test.
Seems to work pretty well for me, might even be at the point where I can now potentially unplug the internet gateway. Great work!
Certainly now way above the regular Evohome functionality, being able to boost hot water and zones for X minutes (rather than configuring an override everytime) and/or adjusting the hot water temperature as the weather warms up.
I had previously been using @phdelodder branch, so I could have scripts/buttons to boost zones for X hours:
living_room_heating_boost_1hour:
sequence:
- service: evohome_cc.set_zone_mode
data:
entity_id: climate.living_room_2
setpoint: 24
duration: {minutes: 60}
UPDATE: I seem to have ended up with new/stale/duplicate actuators and potentially battery and window sensors, will trash them and reload.
I also noticed it on my test environment, which ones do we need to use/rename/delete, itās a bit unclear.
I just hashed out evohome_cc, restarted, deleted all evohome_cc entities, un-hashed, restartedā¦ but then I did have to re-name the entities again.
Guess you need to remove everything during the restart with the hashed evohome_cc
I have just noticed that I accidentally gave each of the binary_sensor
entities a new unique_id
(this may also apply to some of the sensor
entitiesā¦ I didnāt notice because I am constantly restarting / rebuilding my system.
I can fix it, so you donāt lose your entity state historyā¦ But I would prefer to keep the names as is.
Adventurous people can hack the homeassistant database directly to change the uinque IDs, google for that.
The (safer) alternatives is to remove the entities from Lovelace, or delete them from the system.
I donāt expect they will have to change again.
There is now an essentially complete set of services, with only a few exceptions:
- someone has requested a manual refresh functionality - will add that
- there could be some convenience functions, think:
set_auto
, rather thanset_mode(mode=auto)
Let me know if you want any more - there are some I could do, but of doubtful value, for example:
- rename a zone
- change TPI settings
- set system time
- change zone schedulesā¦
Yes! Nice spot - Iāve fixed it & pushed.
Iām having a issue with setting away:
Logger: homeassistant.components.websocket_api.http.connection
Source: custom_components/evohome_cc/climate.py:469
Integration: Home Assistant WebSocket API (documentation, issues)
First occurred: 11:47:03 (1 occurrences)
Last logged: 11:47:03
[140082036178752] set_mode() got an unexpected keyword argument 'mode'
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 141, in handle_call_service
await hass.services.async_call(
File "/usr/src/homeassistant/homeassistant/core.py", line 1488, in async_call
task.result()
File "/usr/src/homeassistant/homeassistant/core.py", line 1523, in _execute_service
await handler.job.target(service_call)
File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 204, in handle_service
await self.hass.helpers.service.entity_service_call(
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 642, in entity_service_call
future.result() # pop exception if have
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 681, in async_request_call
await coro
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 679, in _handle_entity_call
await result
File "/usr/src/homeassistant/homeassistant/components/climate/__init__.py", line 446, in async_set_preset_mode
await self.hass.async_add_executor_job(self.set_preset_mode, preset_mode)
File "/usr/local/lib/python3.8/concurrent/futures/thread.py", line 57, in run
result = self.fn(*self.args, **self.kwargs)
File "/config/custom_components/evohome_cc/climate.py", line 455, in set_preset_mode
self.svc_set_zone_mode(HA_PRESET_TO_TCS.get(preset_mode, SystemMode.AWAY))
File "/config/custom_components/evohome_cc/climate.py", line 469, in svc_set_zone_mode
self._device.set_mode(mode=mode, until=until)
TypeError: set_mode() got an unexpected keyword argument 'mode'
Random question, what is a 30:xxxxx device?
12:12:20.887 -> 055 RQ --- 30:177552 01:050858 --:------ 0006 001 00
01 - Controller
04 - TRV
13 - Boiler Relay
07 - Hot water kit
22 - Wall mounted thermostat
I donāt think Iāve missed this in the wiki, although apologies if I haveā¦
I think that one is OK?
It just seems backwards to me - the āpipeā appears connected when āoffā, but then ātwistedā (disconnected, not touching) when on?
In this context, Iād say it was a RFG100 (Honeywell Internet Gateway).
There are other devices that are a 30:xxxxxx
(I have one, a ventilation unit). The other alternative is a corrupt packet.
But itās almost certainly an RFG100: itās asking your controller if any schedules have changed since it last asked - it does this every few minutes or so (the controller doesnāt announce any such change).
Yeah - I need to get back to updating it: Evohome Protocol Wiki
Doh. Of course. The one bit of kit not accounted forā¦ itās the gateway.
I can see what youāre sayingā¦ Itās supposed to be a valve - the āpipeā is going up/down, and there is a butterfly valve swinging on a central pivot point
It wont show up in HA, except in the JSON in the log file.
OK, I found the bug - thought Iād previously fixed it - hang onā¦
I would like the option: change zone schedulesā¦
I have just loaded the latest code for testing with my Hometronic. Looks like zone name discovery is much better than before, probably due to smaller number of RQ
messages. I got all the zones within a few minutes of start.
Unfortunately Schema is still showing all my devices as orphans.
"Schema ="{
"controller":"01:020766",
"system":{
"heating_relay":"None"
},
"orphans":[
"00:000392",
"00:000474",
"00:000494",
"00:000498",
"00:000548",
"00:000551",
"00:000554",
"00:000558",
"00:000567",
"00:000595",
"00:000599",
"00:000606",
"00:000795",
"00:000806",
"00:000951",
"04:017575",
"04:024117"
],
"stored_hotwater":{
},
"underfloor_heating":{
},
"zones":{
"00":{
"heating_type":"None",
"sensor":"None",
"devices":[
]
},
"01":{
"heating_type":"None",
"sensor":"None",
"devices":[
]
},
"02":{
"heating_type":"None",
"sensor":"None",
"devices":[
]
},
...
}
}