David,
when people link HA to EvoControl they tell me their desired controller_id
on a web-form. During discovery, I call /api/states
and filter the JSON looking for and caching certain entity matches. The main one is of course binary_sensor.01_123456_status
which I parse for stored_hotwater
and zones
inside attributes.working_schema
. As long as those parameters are not renamed, along with the fields _name
, sensor
and actuators
then nothing breaks for me. The ‘main’ entity-name change from _schema
to _status
obviously caught me, as did the change from schema
to working_schema
inside attributes
.
In operation (i.e. after initial discovery), I call /api/states
and filter on e.g.
binary_sensor.${i}_battery_low
,
binary_sensor.${cid}_${haZid}_window_open
, sensor.${cid}_${haZid}_heat_demand
,
climate.${cid}
,
water_heater.${cid}_hw
,
sensor.${dhwRelayId}_relay_demand
,
sensor.${cid}_heat_demand
where cid
is the controller_id
and the haZid
s are the 00…0A…0B keys of the zones
inside binary_sensor.01_123456_status
.
I was initially bitten by the fact that the haZids
run from 00…0A…0B while the entity names use lowercased _0a
and _0b
so maybe that’s an unintentional inconsistency.
I also noticed a change in the reporting of battery status since e.g. 0.22.40 to 0.41.7
"attributes": {
"battery_level": 1 <-- 0.5, <-- null
"device_class": "battery",
"friendly_name": "04:xxxxx battery_low"
}
became
"attributes": {
"id": "04:xxxxxx",
"battery_level": {
"battery_low": false,
"battery_level": 1 <-- 0.5, <-- null
},
"device_class": "battery",
"friendly_name": "TRV 04:xxxxxx Battery"
}
so attributes.battery_level
suddenly became attributes.battery_level.battery_level
and that also clobbered me.