Hi Phil,
Congratulations on your Alexa skill, which is amazing work!!
I hope this will provide the answers you need, but do ask more questions if you have to, and PM me if you prefer. I am afraid I think I need to go into some detail…
First, each RAMSES II-compatible device that broadcasts on the RF will have a hard-coded, (apparently) unique device ID such as: 01:123456
(i.e. of the format xx:yyyyyy)…
Such devices come from one of two domains, heat (CH/DHW) or HVAC. For those from the heat domain (but not the HVAC domain), the first two character will tell you what type of device it is, for example:
02:
- UFH controller
04:
- TRV
07:
- DHW sensor, etc.
Specifically you will be interested in 01:
(controllers) and 18:
(HGI80s, or - more likely - evofw3-compatible dongles). That is, you will likely need the user to tell you the address of one or the other (the 18:
device has a structured schema attr that can tell you the device id of the controller)…
In addition, many such devices have a ‘context’. In the case of an evohome controller, there is a index for each of the (up to) 12 heating zones 00
to 0B
(i.e. 0x00 to 0x0B, or 0 to 11) and for DHW (IIRC, FA
) and heat source (aka appliance, FC
).
So… In ramses_rf, 01:123456|FA
means the DHW subsystem of the entire CH/DHW system. In HA, you might see IDs that includes 01_123456_FA
.
Each HA entity can have multiple identifiers (or names), the two main IDs are relevant here:
-
unique_id, which is persistent across the lifetime of the entity (regardless of HA reboots), and
-
entity_id, which is also unique and persists, but - importantly - can be changed at any time by the user
For many operations, you can use either ID - and, thus a zone would have ids like:
-
climate.bathroom
(the entity_id), and
-
climate.01_123456_03
(the unique_id)
In HA/ramses_cc, all unique ids must include a device id. For example:
-
sensor.01_123456_FC_heat_demand
is the % heat demand of the entire CH/DHW system, and
-
sensor.01_123456_08_heat_demand
is the % heat demand of the zone in the 9th slot of the 12 possible heating zones
It is important to be clear what I mean with I say the above, otherwise confusion may reign…
When you create a heating zone, say called ‘Bedroom 1’, it will be attached to one of the 12 slots… Specifically, it will use the first available slot, ordered by slot number (index/context). That is:
- starting with no zones (i.e. you just reset the controller)
- the first zone, ‘Loungeroom’, will be in slot
00
- the next zone, ‘Bathroom’, will be in slot
01
If you create a new zone, ‘Bedroom 1’, and then delete the ‘Loungeroom’ zone, you’ll have
- slot
01
- ‘Bathroom’, and
- slot
02
- ‘Bedroom 1’
However, if you had instead deleted the ‘Loungeroom’ zone, and then create ‘Bedroom 1’, you’d have had:
- slot
00
- ‘Bedroom 1’, and
- slot
01
- ‘Bathroom’,
In both cases, the ‘Bedroom 1’ zone will have the entity_id climate.bedroom_1
, but the unique_id will differ, e.g.: climate.01_123456_00
vs climate.01_123456_02
!!
Worse still: the entity_id will initially utilise the zone name, until the point where the user first changes that name - then that name will persist for the entity with that unique_id.
I hope that is a good start for you!
Please keep be abreast as to what end-points you’re relying upon - I will avoid breaking things for you.