Esse é o erro mas qual é o código que estás a utilizar?
no binary sensor pus isto
- platform: mqtt
name: "Sala"
payload_on: "D3D49E"
payload_off: "D3D49Eoff"
device_class: motion
state_topic: "tele/bridge/RESULT"
value_template: '{{ value_json.RfReceived.Data}}'
retain: true
e na automation
- id: 'Sensorsala'
initial_state: true
trigger:
- entity_id: binary_sensor.sala
platform: state
to: 'on'
for:
seconds: 5
action:
- service: mqtt.publish
data:
topic: tele/bridge/RESULT
payload: D3D49Eoff
retain: 'true'
Aliás isto é um copy /paste do @Nuno_Figueiredo , tirando os sensores claro
Mas isso não é a automation completa… E pelo que se vê ai os espaçamentos estão errados.
sim não estavam certos, mas agora está.
o que me acontece é que me aparece sempre a informação do sensor a dizer " limpo "
é normal ?
Acho esse payload de off
fora do normal, tens a certeza que o payload é esse?
E na automação que acção é essa? É suposto fazer o quê?
@j_assuncao , vou colocar o yaml da sala completo
O ideal e o que pretendia mesmo era ter uma opção de estar desligado e quando ligar, avisar intrusão.
o meu yaml completo está assim
group:
sala:
view: yes
name: sala
entities:
- group.salagrupo
salagrupo:
control: hidden
name: Sala
entities:
- input_number.aberturapersianasala
- cover.persianasala
- binary_sensor.rele_1s
- binary_sensor.rele_2s
- switch.tomada
- switch.sensorext
- switch.tomada2
- sensor.sensorext
- sensor.Temperatura_Sala
- sensor.Humidade_Sala
- binary_sensor.Sensor_Sala
input_text:
#Alterar "inicial" para o valor em segundos que o estore demora a abrir desde a posição fechada e vice-versa nos input_text tempodeabertura e tempodefecho.
tempodeaberturasala:
name: tempo de maximo de abertura
initial: 28
tempodefechosala:
name: tempo de maximo de fecho
initial: 28
iniciofechosala:
name: Inicio Fecho Sala
inicioaberturasala:
name: Inicio Abertura Sala
cover:
- platform: template
covers:
persianasala:
friendly_name: "Persiana Sala"
position_template: '{{ states.input_number.aberturapersianasala.state }}'
open_cover:
- service: mqtt.publish
data:
topic: 'cmnd/wemosd1mini/POWER1'
payload: 'ON'
close_cover:
- service: mqtt.publish
data:
topic: 'cmnd/wemosd1mini/POWER2'
payload: 'ON'
stop_cover:
- service: mqtt.publish
data:
topic: 'cmnd/wemosd1mini/Backlog'
payload: 'POWER1 OFF; POWER2 OFF'
binary_sensor:
- platform: mqtt
name: rele 1s
state_topic: "stat/wemosd1mini/POWER1"
payload_on: "ON"
payload_off: "OFF"
- platform: mqtt
name: rele 2s
state_topic: "stat/wemosd1mini/POWER2"
payload_on: "ON"
payload_off: "OFF"
- platform: mqtt
name: Sensor Sala
payload_on: "D3D49E"
payload_off: "D3D49Eoff"
device_class: motion
state_topic: "tele/bridge/RESULT"
value_template: '{{ value_json.RfReceived.Data == "D3D49E"}}'
retain: true
input_boolean:
alterarslidersala:
name: Alterar o Slider Sala
initial: on
input_number:
aberturapersianasala:
name: Abertura
min: 0
max: 100
step: 1
unit_of_measurement: '%'
icon: mdi:blinds
aberturapersianasalaold:
name: valor antigo de abertura
min: 0
max: 100
step: 1
unit_of_measurement: '%'
automation:
- id: iniciofecho
alias: Começou a fechar Persiana Sala
trigger:
- platform: state
entity_id: binary_sensor.rele_2s
to: 'on'
action:
service: input_text.set_value
data_template:
entity_id: input_text.iniciofechosala
value: '{{ now() }}'
- id: fimfecho
alias: Parou de fechar Persina Sala
trigger:
- platform: state
entity_id: binary_sensor.rele_2s
to: 'off'
condition:
- condition: state
entity_id: input_boolean.alterarslidersala
state: 'on'
action:
- service: input_number.set_value
data_template:
entity_id: input_number.aberturapersianasalaold
value: >-
{% if (states.input_number.aberturapersianasala.state)|int - ((as_timestamp(now()) - (as_timestamp(states.input_text.iniciofechosala.state))|float|round(2))*100/(states.input_text.tempodefechosala.state|int))|int < 4 %}
0
{% else %}
{{ (states.input_number.aberturapersianasala.state)|int - ((as_timestamp(now()) - (as_timestamp(states.input_text.iniciofechosala.state))|float|round(2))*100/(states.input_text.tempodefechosala.state|int))|int }}
{% endif %}
- service: input_number.set_value
data_template:
entity_id: input_number.aberturapersianasala
value: '{{ states.input_number.aberturapersianasalaold.state }}'
- id: inicioabertura
alias: Começou a abrir Persiana Sala
trigger:
- platform: state
entity_id: binary_sensor.rele_1s
to: 'on'
action:
service: input_text.set_value
data_template:
entity_id: input_text.inicioaberturasala
value: '{{ now() }}'
- id: fimabertura
alias: Parou de abrir Persiana Sala
trigger:
- platform: state
entity_id: binary_sensor.rele_1s
to: 'off'
condition:
- condition: state
entity_id: 'input_boolean.alterarslidersala'
state: 'on'
action:
- service: input_number.set_value
data_template:
entity_id: input_number.aberturapersianasalaold
value: >-
{% if (states.input_number.aberturapersianasala.state)|int + ((as_timestamp(now()) - (as_timestamp(states.input_text.inicioaberturasala.state))|float|round(2))*100/(states.input_text.tempodeaberturasala.state|int))|int > 96 %}
100
{% else %}
{{ (states.input_number.aberturapersianasala.state)|int + ((as_timestamp(now()) - (as_timestamp(states.input_text.inicioaberturasala.state))|float|round(2))*100/(states.input_text.tempodeaberturasala.state|int))|int }}
{% endif %}
- service: input_number.set_value
data_template:
entity_id: input_number.aberturapersianasala
value: '{{ states.input_number.aberturapersianasalaold.state }}'
- id: aberturapeloslider
alias: Abertura pelo slider Persiana Sala
trigger:
platform: state
entity_id: input_number.aberturapersianasala
condition:
- condition: template
value_template: '{{ states.input_number.aberturapersianasala.state|int > states.input_number.aberturapersianasalaold.state|int }}'
action:
- service: input_boolean.turn_off
data:
entity_id: input_boolean.alterarslidersala
- service: mqtt.publish
data:
topic: 'cmnd/wemosd1mini/Backlog'
payload_template: "POWER1 ON; delay {% if is_state('input_number.aberturapersianasala', '100.0') %} {{ (((states.input_number.aberturapersianasala.state|int - states.input_number.aberturapersianasalaold.state|int)*(states.input_text.tempodeaberturasala.state|float)/100)|round(1)*10)|round(0) + 20 }} {% else %}
{{ (((states.input_number.aberturapersianasala.state|int - states.input_number.aberturapersianasalaold.state|int)*(states.input_text.tempodeaberturasala.state|float)/100)|round(1)*10)|round(0) }} {% endif %}; POWER1 OFF"
- delay:
milliseconds: 800
- wait_template: "{{ is_state('binary_sensor.rele_1s', 'off') }}"
- service: input_boolean.turn_on
data:
entity_id: input_boolean.alterarslidersala
- service: input_number.set_value
data_template:
entity_id: input_number.aberturapersianasalaold
value: '{{ states.input_number.aberturapersianasala.state }}'
- id: fechopeloslider
alias: Fecho pelo slider Persiana Sala
trigger:
platform: state
entity_id: input_number.aberturapersianasala
condition:
- condition: template
value_template: '{{ states.input_number.aberturapersianasala.state|int < states.input_number.aberturapersianasalaold.state|int }}'
action:
- service: input_boolean.turn_off
data:
entity_id: input_boolean.alterarslidersala
- service: mqtt.publish
data:
topic: 'cmnd/wemosd1mini/Backlog'
payload_template: "POWER2 ON; delay {% if is_state('input_number.aberturapersianasala', '0.0') %} {{ (((states.input_number.aberturapersianasalaold.state|int - states.input_number.aberturapersianasala.state|int)*(states.input_text.tempodefechosala.state|float)/100)|round(1)*10)|round(0) + 20 }} {% else %}
{{ (((states.input_number.aberturapersianasalaold.state|int - states.input_number.aberturapersianasala.state|int)*(states.input_text.tempodefechosala.state|float)/100)|round(1)*10)|round(0) }} {% endif %}; POWER2 OFF"
- delay:
milliseconds: 800
- wait_template: "{{ is_state('binary_sensor.rele_2s', 'off') }}"
- service: input_boolean.turn_on
data:
entity_id: input_boolean.alterarslidersala
- service: input_number.set_value
data_template:
entity_id: input_number.aberturapersianasalaold
value: '{{ states.input_number.aberturapersianasala.state }}'
- id: Sensorsala
initial_state: true
trigger:
platform: state
entity_id: binary_sensor.Sensor_Sala
to: 'on'
for:
seconds: 5
action:
service: mqtt.publish
data:
topic: tele/bridge/RESULT
payload: D3D49Eoff
retain: 'true'
switch:
#Tomada
- platform: mqtt
name: "Tomada"
friendly_name: "Tomada Sala"
icon: mdi:power-socket-eu
state_topic: "stat/Tomada/POWER"
command_topic: "cmnd/Tomada/POWER"
availability_topic: "tele/Tomada/LWT"
payload_available: "Online"
payload_not_available: "Offline"
qos: 1
payload_on: "ON"
payload_off: "OFF"
retain: true
- platform: mqtt
name: "Tomada2"
friendly_name: "Tomada Sala2"
icon: mdi:power-socket-eu
state_topic: "stat/sensorext/POWER"
command_topic: "cmnd/sensorext/POWER"
availability_topic: "tele/sensorext/LWT"
payload_available: "Online"
payload_not_available: "Offline"
qos: 1
payload_on: "ON"
payload_off: "OFF"
retain: true
sensor:
- platform: mqtt
name: "Temperatura Sala"
state_topic: "tele/sensorext/SENSOR"
value_template: "{{ value_json['SI7021'].Temperature }}"
unit_of_measurement: "°C"
- platform: mqtt
name: "Humidade Sala"
icon: mdi:water-percent
state_topic: "tele/sensorext/SENSOR"
value_template: "{{ value_json['SI7021'].Humidity }}"
unit_of_measurement: "%"
Para desligares o sensor o melhor era um input_boolean que sirva depois de condição na automação.
Agora em relação à questão de estar sempre a dizer Limpo
(tradução literal de Clear
, em inglês) tem quase de certeza a ver com os payloads. Mas como pouco RF usei talvez o @RodolfoVieira te possa ajudar mais que eu.
@miruim fiquei sem perceber o que queres fazer quando o movimento é detectado, o que tencionas fazer? na tua automação não refere que acontecimento queres a não ser a informação do estado do PIR.
bom, para já queria apenas que me informasse se liga ou não e apenas me indica “limpo” e não sai daí.
Queria que quando detecta-se me desse um sinal, o que não acontece. Se clicar em cima diz que está assim naquele estado há uma hora
O que podes fazer é:
Primeiro apagas a automação que fizeste.
Depois dentro do ficheiro package colocas:
sensor:
- platform: mqtt
state_topic: 'tele/bridge/RESULT'
name: pir
expire_after: 1
binary_sensor:
- platform: template
sensors:
pir:
value_template: '{{ is_state("sensor.pir", "D3D49E") }}'
delay_off: '00:01:00'
device_class: motion
Depois dentro do teu grupo chamas o:
- binary_sensor.pir
exprimenta sff
O que me aparece no log do pir cada vez que movimento é isto
23:51:33 MQT: tele/Bridge/RESULT = {"RfReceived":{"Sync":12540,"Low":420,"High":1220,"Data":"D3D49E","RfKey":"None"}}
Exprimenta assim:
sensor:
- platform: mqtt
state_topic: 'tele/bridge/RESULT'
value_template: '{{value_json.RfReceived.Data}}'
name: pir
expire_after: 1
binary_sensor:
- platform: template
sensors:
pir:
value_template: '{{ is_state("sensor.pir", "D3D49E") }}'
delay_off: '00:01:00'
device_class: motion
E adiciona o - binary_sensor.pir
ao teu grupo e diz o que aparece nele, apos passares a mão no sensor, e o que diz nele passado 1 minuto.
nada… Não aparece nada… Apenas um traço
manda-me la o ficheiro que criaste dentro do package conforme eu te disse. cola aqui
eu tenho tudo dentro do ficheiro sala.yaml
group:
sala:
view: yes
name: sala
entities:
- group.salagrupo
salagrupo:
control: hidden
name: Sala
entities:
- input_number.aberturapersianasala
- cover.persianasala
- binary_sensor.rele_1s
- binary_sensor.rele_2s
- switch.tomada
- switch.sensorext
- switch.tomada2
- sensor.sensorext
- sensor.Temperatura_Sala
- sensor.Humidade_Sala
- binary_sensor.pir
input_text:
#Alterar "inicial" para o valor em segundos que o estore demora a abrir desde a posição fechada e vice-versa nos input_text tempodeabertura e tempodefecho.
tempodeaberturasala:
name: tempo de maximo de abertura
initial: 28
tempodefechosala:
name: tempo de maximo de fecho
initial: 28
iniciofechosala:
name: Inicio Fecho Sala
inicioaberturasala:
name: Inicio Abertura Sala
cover:
- platform: template
covers:
persianasala:
friendly_name: "Persiana Sala"
position_template: '{{ states.input_number.aberturapersianasala.state }}'
open_cover:
- service: mqtt.publish
data:
topic: 'cmnd/wemosd1mini/POWER1'
payload: 'ON'
close_cover:
- service: mqtt.publish
data:
topic: 'cmnd/wemosd1mini/POWER2'
payload: 'ON'
stop_cover:
- service: mqtt.publish
data:
topic: 'cmnd/wemosd1mini/Backlog'
payload: 'POWER1 OFF; POWER2 OFF'
binary_sensor:
- platform: mqtt
name: rele 1s
state_topic: "stat/wemosd1mini/POWER1"
payload_on: "ON"
payload_off: "OFF"
- platform: mqtt
name: rele 2s
state_topic: "stat/wemosd1mini/POWER2"
payload_on: "ON"
payload_off: "OFF"
# - platform: mqtt
# name: Sensor Sala
# payload_on: "D3D49E"
# payload_off: "D3D49Eoff"
# device_class: motion
# state_topic: "tele/bridge/RESULT"
# value_template: '{{ value_json.RfReceived.Data }}'
# optimistic: false
# qos: 1
# #retain: true
- platform: template
sensors:
pir:
value_template: '{{ is_state("sensor.pir", "D3D49E") }}'
delay_off: '00:01:00'
device_class: motion
input_boolean:
alterarslidersala:
name: Alterar o Slider Sala
initial: on
input_number:
aberturapersianasala:
name: Abertura
min: 0
max: 100
step: 1
unit_of_measurement: '%'
icon: mdi:blinds
aberturapersianasalaold:
name: valor antigo de abertura
min: 0
max: 100
step: 1
unit_of_measurement: '%'
automation:
- id: iniciofecho
alias: Começou a fechar Persiana Sala
trigger:
- platform: state
entity_id: binary_sensor.rele_2s
to: 'on'
action:
service: input_text.set_value
data_template:
entity_id: input_text.iniciofechosala
value: '{{ now() }}'
- id: fimfecho
alias: Parou de fechar Persina Sala
trigger:
- platform: state
entity_id: binary_sensor.rele_2s
to: 'off'
condition:
- condition: state
entity_id: input_boolean.alterarslidersala
state: 'on'
action:
- service: input_number.set_value
data_template:
entity_id: input_number.aberturapersianasalaold
value: >-
{% if (states.input_number.aberturapersianasala.state)|int - ((as_timestamp(now()) - (as_timestamp(states.input_text.iniciofechosala.state))|float|round(2))*100/(states.input_text.tempodefechosala.state|int))|int < 4 %}
0
{% else %}
{{ (states.input_number.aberturapersianasala.state)|int - ((as_timestamp(now()) - (as_timestamp(states.input_text.iniciofechosala.state))|float|round(2))*100/(states.input_text.tempodefechosala.state|int))|int }}
{% endif %}
- service: input_number.set_value
data_template:
entity_id: input_number.aberturapersianasala
value: '{{ states.input_number.aberturapersianasalaold.state }}'
- id: inicioabertura
alias: Começou a abrir Persiana Sala
trigger:
- platform: state
entity_id: binary_sensor.rele_1s
to: 'on'
action:
service: input_text.set_value
data_template:
entity_id: input_text.inicioaberturasala
value: '{{ now() }}'
- id: fimabertura
alias: Parou de abrir Persiana Sala
trigger:
- platform: state
entity_id: binary_sensor.rele_1s
to: 'off'
condition:
- condition: state
entity_id: 'input_boolean.alterarslidersala'
state: 'on'
action:
- service: input_number.set_value
data_template:
entity_id: input_number.aberturapersianasalaold
value: >-
{% if (states.input_number.aberturapersianasala.state)|int + ((as_timestamp(now()) - (as_timestamp(states.input_text.inicioaberturasala.state))|float|round(2))*100/(states.input_text.tempodeaberturasala.state|int))|int > 96 %}
100
{% else %}
{{ (states.input_number.aberturapersianasala.state)|int + ((as_timestamp(now()) - (as_timestamp(states.input_text.inicioaberturasala.state))|float|round(2))*100/(states.input_text.tempodeaberturasala.state|int))|int }}
{% endif %}
- service: input_number.set_value
data_template:
entity_id: input_number.aberturapersianasala
value: '{{ states.input_number.aberturapersianasalaold.state }}'
- id: aberturapeloslider
alias: Abertura pelo slider Persiana Sala
trigger:
platform: state
entity_id: input_number.aberturapersianasala
condition:
- condition: template
value_template: '{{ states.input_number.aberturapersianasala.state|int > states.input_number.aberturapersianasalaold.state|int }}'
action:
- service: input_boolean.turn_off
data:
entity_id: input_boolean.alterarslidersala
- service: mqtt.publish
data:
topic: 'cmnd/wemosd1mini/Backlog'
payload_template: "POWER1 ON; delay {% if is_state('input_number.aberturapersianasala', '100.0') %} {{ (((states.input_number.aberturapersianasala.state|int - states.input_number.aberturapersianasalaold.state|int)*(states.input_text.tempodeaberturasala.state|float)/100)|round(1)*10)|round(0) + 20 }} {% else %}
{{ (((states.input_number.aberturapersianasala.state|int - states.input_number.aberturapersianasalaold.state|int)*(states.input_text.tempodeaberturasala.state|float)/100)|round(1)*10)|round(0) }} {% endif %}; POWER1 OFF"
- delay:
milliseconds: 800
- wait_template: "{{ is_state('binary_sensor.rele_1s', 'off') }}"
- service: input_boolean.turn_on
data:
entity_id: input_boolean.alterarslidersala
- service: input_number.set_value
data_template:
entity_id: input_number.aberturapersianasalaold
value: '{{ states.input_number.aberturapersianasala.state }}'
- id: fechopeloslider
alias: Fecho pelo slider Persiana Sala
trigger:
platform: state
entity_id: input_number.aberturapersianasala
condition:
- condition: template
value_template: '{{ states.input_number.aberturapersianasala.state|int < states.input_number.aberturapersianasalaold.state|int }}'
action:
- service: input_boolean.turn_off
data:
entity_id: input_boolean.alterarslidersala
- service: mqtt.publish
data:
topic: 'cmnd/wemosd1mini/Backlog'
payload_template: "POWER2 ON; delay {% if is_state('input_number.aberturapersianasala', '0.0') %} {{ (((states.input_number.aberturapersianasalaold.state|int - states.input_number.aberturapersianasala.state|int)*(states.input_text.tempodefechosala.state|float)/100)|round(1)*10)|round(0) + 20 }} {% else %}
{{ (((states.input_number.aberturapersianasalaold.state|int - states.input_number.aberturapersianasala.state|int)*(states.input_text.tempodefechosala.state|float)/100)|round(1)*10)|round(0) }} {% endif %}; POWER2 OFF"
- delay:
milliseconds: 800
- wait_template: "{{ is_state('binary_sensor.rele_2s', 'off') }}"
- service: input_boolean.turn_on
data:
entity_id: input_boolean.alterarslidersala
- service: input_number.set_value
data_template:
entity_id: input_number.aberturapersianasalaold
value: '{{ states.input_number.aberturapersianasala.state }}'
# - id: Sensorsala
# initial_state: true
# trigger:
# platform: state
# entity_id: binary_sensor.Sensor_Sala
# to: 'on'
# for:
## action:
# service: mqtt.publish
# data:
# topic: tele/bridge/RESULT
# payload: D3D49Eoff
# retain: 'true'
switch:
#Tomada
- platform: mqtt
name: "Tomada"
friendly_name: "Tomada Sala"
icon: mdi:power-socket-eu
state_topic: "stat/Tomada/POWER"
command_topic: "cmnd/Tomada/POWER"
availability_topic: "tele/Tomada/LWT"
payload_available: "Online"
payload_not_available: "Offline"
qos: 1
payload_on: "ON"
payload_off: "OFF"
retain: true
- platform: mqtt
name: "Tomada2"
friendly_name: "Tomada Sala2"
icon: mdi:power-socket-eu
state_topic: "stat/sensorext/POWER"
command_topic: "cmnd/sensorext/POWER"
availability_topic: "tele/sensorext/LWT"
payload_available: "Online"
payload_not_available: "Offline"
qos: 1
payload_on: "ON"
payload_off: "OFF"
retain: true
sensor:
- platform: mqtt
name: "Temperatura Sala"
state_topic: "tele/sensorext/SENSOR"
value_template: "{{ value_json['SI7021'].Temperature }}"
unit_of_measurement: "°C"
- platform: mqtt
name: "Humidade Sala"
icon: mdi:water-percent
state_topic: "tele/sensorext/SENSOR"
value_template: "{{ value_json['SI7021'].Humidity }}"
unit_of_measurement: "%"
- platform: mqtt
state_topic: 'tele/bridge/RESULT'
value_template: '{{value_json.RfReceived.Data}}'
name: pir
expire_after: 1
Mostra -me aqui o que aparece em frente ao -binary_sensor.pir
quando clicas aqui nas <>
aparece off e depois tem escrito
friendly_name: pir
device_class: motion
Ok aparece off, e quando fazes um movimento em frente ao sensor o que aparece?
@miruim E manda-me um print screen deste teu grupo sff
salagrupo:
control: hidden
name: Sala
entities:
- input_number.aberturapersianasala
- cover.persianasala
- binary_sensor.rele_1s
- binary_sensor.rele_2s
- switch.tomada
- switch.sensorext
- switch.tomada2
- sensor.sensorext
- sensor.Temperatura_Sala
- sensor.Humidade_Sala
- binary_sensor.pir