Para los sensores de temperatura, tengo una automatización que reescribió domoticz / out a un tema «/ home / … idx … / temp como este:
- alias: DZ temp
trigger:
- platform: mqtt
topic: ‘domoticz/out’
condition:
condition: template
value_template: ‘{{ trigger.payload_json.dtype == «Temp» }}’
action: - service: mqtt.publish
data_template:
topic: ‘home/sensor/{{ trigger.payload_json.idx }}/temp’
payload_template: ‘{{ trigger.payload_json.svalue1 }}’
Tengo otra automatización similar para Temp y Humedad.
- platform: mqtt
Después de que puedas crear un sensor de ha como este:
- platform: mqtt
state_topic: ‘home/sensor/123/temp’ …
He hecho lo mismo para los interruptores, para los interruptores también tengo una automatización para reescribir los mensajes a domoticz / in. Un conmutador dz se configura así: - platform: mqtt
name: «…»
command_topic: «home/switch/12345/power»
state_topic: «home/switch/12345/state»
payload_on: «On»
payload_off: «Off»
qos: 1
retain: true
Un primer script leía domoticz / out para reescribir estados desde dz: - alias: DZ input
trigger:- platform: mqtt
topic: ‘domoticz/out’
condition:
condition: template
value_template: ‘{{ trigger.payload_json.dtype == «Light/Switch» }}’
action: - service: mqtt.publish
data_template:
topic: ‘home/switch/{{ trigger.payload_json.idx }}/state’
payload_template: ‘{% if trigger.payload_json.nvalue == 1 %} On {% else %} Off {% endif %}’
Y un segundo tema de poder reescrito para domoticz / en tema y carga útil esperada:
- platform: mqtt
- alias: DZ switch send value as dz expect
trigger:- platform: mqtt
topic: ‘home/switch/+/power’
action: - service: mqtt.publish
data_template:
topic: ‘domoticz/in’
payload_template: ‘{«command»: «switchlight», «idx»: {{ trigger.topic.split(«/»)[-2] }}, «switchcmd»: «{{ trigger.payload }}» }’
Mismo principio para el termostato.
- platform: mqtt
climate:
- platform: mqtt
name: Thermostat confort
temperature_command_topic: ‘home/thermostat/18/target’
temperature_state_topic: ‘home/thermostat/18/state’
Y: - alias: thermostat get value
trigger:- platform: mqtt
topic: ‘domoticz/out’
condition:
condition: template
value_template: ‘{{ trigger.payload_json.dtype == «Thermostat» }}’
action: - service: mqtt.publish
data_template:
topic: ‘home/thermostat/{{ trigger.payload_json.idx }}/state’
payload_template: ‘{{ trigger.payload_json.svalue1 }}’
- platform: mqtt
- alias: dz resend values
trigger:- platform: mqtt
topic: ‘home/thermostat/+/target’
action: - service: mqtt.publish
data_template:
topic: ‘domoticz/in’
payload_template: ‘{«command»: «udevice», «idx»: {{ trigger.topic.split(«/»)[-2] }}, «svalue»: «{{ trigger.payload }}»}’
Creo que este principio se puede utilizar para otros tipos de dispositivos.
- platform: mqtt
