Onde tenho de criar? Eu copiei do tutorial exatamente, se faltam coisas, é porque também falta no tutorial.
Obrigado, vou verificar. Eu copiei e colei o código direto do tutorial, verifiquem o tutorial se o tem correcto.
Acabo de verificar e no tutorial então tem errado, porque eu tenho exatamente como lá, deveriam de alterar.
Vou verificar isso. Obrigado!
Pois tenho… Então os que estão mal são os que têm o -
antes de platform
.
Os -
devem ser utilizados em listas, se for só uma platform
como trigger
tanto faz se tem ou não desde que esteja indentado. Se for mais que uma platform
devem ser utilizados sempre os -
Podes verificar até aqui se esta tudo bem por favor?
automation:
- id: iniciofecho
alias: começou a fechar
trigger:
platform: state
entity_id: binary_sensor.rele
to: 'on'
action:
service: input_text.set_value
data_template:
entity_id: input_text.iniciofecho
value: '{{ now() }}'
- id: fimfecho
alias: parou de fechar
trigger:
platform: state
entity_id: binary_sensor.rele
to: 'off'
condition:
condition: state
entity_id: 'input_boolean.alterarslider'
state: 'on'
action:
service: input_number.set_value
data_template:
entity_id: input_number.aberturaportalold
value: >-
{% if (states.input_number.aberturaportal.state)|int - ((as_timestamp(now()) - (as_timestamp(states.input_text.iniciofecho.state))|float|round(2))*100/(states.input_text.tempodefecho.state|int))|int < 4 %}
0
{% else %}
{{ (states.input_number.aberturaportal.state)|int - ((as_timestamp(now()) - (as_timestamp(states.input_text.iniciofecho.state))|float|round(2))*100/(states.input_text.tempodefecho.state|int))|int }}
{% endif %}
service: input_number.set_value
data_template:
entity_id: input_number.aberturaportal
value: '{{ states.input_number.aberturaportalold.state }}'
Sim, parece OK.
O p
de platform
alinha sempre por baixo do i
de trigger
excepto quanto leva -
.
Nessa situação o -
alinha por baixo do i
de trigger
e o que vier a seguir alinha com o p
de platform
.
E esta parte?
- id: inicioabertura
alias: começou a abrir
trigger:
platform: state
entity_id: binary_sensor.rele
to: 'on'
action:
service: input_text.set_value
data_template:
entity_id: input_text.inicioabertura
value: '{{ now() }}'
- id: fimabertura
alias: parou de abrir
trigger:
platform: state
entity_id: binary_sensor.rele
to: 'off'
condition:
condition: state
entity_id: 'input_boolean.alterarslider'
state: 'on'
action:
service: input_number.set_value
data_template:
entity_id: input_number.aberturaportalold
value: >-
{% if (states.input_number.aberturaportal.state)|int + ((as_timestamp(now()) - (as_timestamp(states.input_text.inicioabertura.state))|float|round(2))*100/(states.input_text.tempodeabertura.state|int))|int > 96 %}
100
{% else %}
{{ (states.input_number.aberturaportal.state)|int + ((as_timestamp(now()) - (as_timestamp(states.input_text.inicioabertura.state))|float|round(2))*100/(states.input_text.tempodeabertura.state|int))|int }}
{% endif %}
service: input_number.set_value
data_template:
entity_id: input_number.aberturaportal
value: '{{ states.input_number.aberturaportalold.state }}'
E por fim este,
- id: aberturapeloslider
alias: Abertura pelo slider
trigger:
platform: state
entity_id: input_number.aberturaportal
condition:
condition: template
value_template: '{{ states.input_number.aberturaportal.state|int > states.input_number.aberturaportalold.state|int }}'
action:
service: input_boolean.turn_off
data:
entity_id: input_boolean.alterarslider
service: mqtt.publish
data:
topic: 'cmnd/portal/Backlog'
payload_template: "POWER ON; delay {% if is_state('input_number.aberturaportal', '100.0') %} {{ (((states.input_number.aberturaportal.state|int - states.input_number.aberturaportalold.state|int)*(states.input_text.tempodeabertura.state|float)/100)|round(1)*10)|round(0) + 20 }} {% else %}
{{ (((states.input_number.aberturaportal.state|int - states.input_number.aberturaportalold.state|int)*(states.input_text.tempodeabertura.state|float)/100)|round(1)*10)|round(0) }} {% endif %}; POWER OFF"
delay:
milliseconds: 800
wait_template: "{{ is_state('binary_sensor.rele', 'off') }}"
service: input_boolean.turn_on
data:
entity_id: input_boolean.alterarslider
service: input_number.set_value
data_template:
entity_id: input_number.aberturaportalold
value: '{{ states.input_number.aberturaportal.state }}'
- id: fechopeloslider
alias: Fecho pelo slider
trigger:
platform: state
entity_id: input_number.aberturaportal
condition:
condition: template
value_template: '{{ states.input_number.aberturaportal.state|int < states.input_number.aberturaportalold.state|int }}'
action:
service: input_boolean.turn_off
data:
entity_id: input_boolean.alterarslider
service: mqtt.publish
data:
topic: 'cmnd/portal/Backlog'
payload_template: "POWER ON; delay {% if is_state('input_number.aberturaportal', '0.0') %} {{ (((states.input_number.aberturaportalold.state|int - states.input_number.aberturaportal.state|int)*(states.input_text.tempodefecho.state|float)/100)|round(1)*10)|round(0) + 20 }} {% else %}
{{ (((states.input_number.aberturaportalold.state|int - states.input_number.aberturaportal.state|int)*(states.input_text.tempodefecho.state|float)/100)|round(1)*10)|round(0) }} {% endif %}; POWER OFF"
delay:
milliseconds: 800
wait_template: "{{ is_state('binary_sensor.rele', 'off') }}"
service: input_boolean.turn_on
data:
entity_id: input_boolean.alterarslider
service: input_number.set_value
data_template:
entity_id: input_number.aberturaportalold
value: '{{ states.input_number.aberturaportal.state }}'
Até aqui está 5
Coloquei a ultima parte @j_assuncao e pelo messenger enviei o ficheiro completo copiando um pouco do teu github, se estiver correto e funcionar é mais uma coisa a colocar aqui como tutorial
Se tens o ficheiro automation.yaml
vazio tens de criar uma automação fictícia pois o ficheiro não pode estar vazio.
Podes colocar, por exemplo:
- id: '1525220727848'
alias: Dummy
trigger:
- platform: template
value_template: 'false'
condition: []
action:
- delay: '1'
@tcruz, o erro provavelmente não era o meu código e apenas a falta do ficheiro como o @j_assuncao descobriu… Se quiseres, depois testa com o código original…
Grande ajuda do @j_assuncao sem ele não teria sido capaz.
Agora tenho alguns erros porque estou a fazer com um Sonoff Basic unicamente, mas estão quase sanados todos.
Boas pessoal,
Ainda tenho erros por resolver, por isso ainda não coloquei aqui o tutorial para fazê-lo.
O meu sonoff de ves en quanto ativa-se sozinho e abre o portão sem mais. Os códigos na consola coloquei os que estavam no tutorial, pode ser alguns deles que me esta a fazer isso?
Em princípio o teu problema será que é impossível ao HA saber se está a abrir ou a fechar uma vez que só usas um relé e, provavelmente tens o powerretain activo, não?
Tenho powerretain activo sim.
É só desativar isso?
Para o teu caso em que usas um só relé para abrir e fechar, sim… Depois dá feedback…