@toggledbits ok, got it (took a couple of iterations...)
Then to my original question, now with a little bit more context:
daikin_command:
capabilities: [ "hvac_heating_unit", "value_sensor" ]
primary_attribute: hvac_heating_unit.setpoint
events:
"hvac_heating_unit.setpoint":
json_payload: true
if_expr: '! isnull( payload?.target )'
expr: "float(payload.target)"
"hvac_heating_unit.units": "°C"
"hvac_heating_unit.state":
json_payload: true
if_expr: '! isnull( payload?.mode )'
expr: "lower(payload.mode) == 'heat'"
"value_sensor.fan":
json_payload: true
if_expr: '! isnull( payload?.fan )'
expr: "str(payload.fan)"
actions:
hvac_heating_unit:
set_setpoint:
topic: "command/%friendly_name%"
payload:
type: json
expr: '{ "temp": min(28, max(16, float(parameters.setpoint))) }'
x_mqtt_device:
set_speed:
arguments:
speed:
type: str
topic: "command/%friendly_name%"
payload:
type: json
expr: '{ "fan": parameters.speed }'
So I want to control fan speed and I noticed there is "hvac_blower_unit" in standard capabilities:
hvac_blower_unit:
...
actions:
set_mode:
arguments:
mode:
type: string
values:
- 'off'
- auto
- continuous
- periodic
- low
- medium
- high
But as this wasn't 1:1 capability mapping as compared to my AC unit, I didn't know how to extend/change that to suit my needs. MQTT topics relevant to this case are documented here. Kinda thought using x_mqtt_device was a good idea. Seems to work though.
How can I define my own (extended) MQTT capability? Also, I'd like to utilize those fixed arguments, so something like:
set_speed:
arguments:
speed:
type: str
values:
- A
- Q
- 1
- 2
- 3
- 4
- 5