Tal como disse o @Maddoctor não é possível utilizar o hífen nos nomes dos dispositivos, sensores, etc. tal como não devem ser utilizadas letras maiúsculas.
Sou um nabo nisto…Obrigado. Tenho de alterar isso…quando chegar a casa trato disso e dou notícias.
@Calmeida
Imaginando que estás a usar um BHonofre com SSR de 2A, desaconselho vivamente que o ligues aos estores.
Se quiseres BHOnofre para estores tens de comprar a nova versão Rev5 com relés mecânicos de 5A. Não me lembro se o problema era estragar o onofre ou estragar o motor do estore, em qualquer dos casos eu não arriscava dado que são conhecidos alguns problemas.
Encomenda uns novos para os estores de 5A e usa esses para iluminação
@MadDoctor aqui fica uma imagem do module configuration. Tenho configurado o switchmode como 7.
https://1drv.ms/u/s!AhhTRQMupRdtg5UIQuRZVy7yc243RQ
Obrigado pela atenção.
Parece estar bem configurado, no entanto o interruptor aparece como ON… Estranho… Se calhar as ligações estão erradas no interruptor… Os fios do interruptor estão entre gpio e gnd ou gpio e 3.3?
@Maddoctor, muito obrigado pelo código! já consegui meter a funcionar. Ainda tive mais 2 problemas, no cover o no facto de ter primeiro o topic e depois o prefix, e como não consegui alterar isso, alterei o código.
Está impecável! obrigado a todos pela ajuda!
Experimenta antes switchmode 5… Deve funcionar…
@MadDoctor, obrigado pela dica, agora ficou a funcionar fixe. Muito obrigado pela tua paciência, atenção e compreensão… Forte abraço.
Boa noite,
Venho mais uma vez pedir ajuda de experts.
Depois de mais uns dias com este projeto parado, e depois de arranjar uns quantos shelly 2, estou a tentar utilizar o código fornecido pelo Rodolfo num shelly2 com a firmware original.
Já tentei várias vezes flashar o shelly2 com tasmota mas não consegui, então desisti e tentei outra abordagem.
Então, tudo funciona devidamente à exceção do pulsetime e do interlock que não sei como “ativar” e de não conseguir fazer com que o slider faça ativar os reles.
O slider mexe quando ativo cada um dos reles nos botões do HA, mas se mexer o slider, nada acontece; quando chega a 100% ou o 0% também não faz parar os reles (é suposto isso acontecer?)
Segue o código para se tiverem tempo para analisar e me dar algumas dicas…
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.
tempodeabertura_sala:
name: tempo de maximo de abertura sala
initial: 35
tempodefecho_sala:
name: tempo de maximo de fecho sala
initial: 35
iniciofecho_sala:
name: iniciofecho sala
inicioabertura_sala:
name: inicioabertura sala
cover:
- platform: template
covers:
sala:
friendly_name: "sala"
position_template: '{{ states.input_number.abertura_sala.state }}'
open_cover:
- service: mqtt.publish
data:
topic: 'shellies/shellyswitch-13503C/relay/0/command'
payload: 'on'
close_cover:
- service: mqtt.publish
data:
topic: 'shellies/shellyswitch-13503C/relay/1/command'
payload: 'on'
stop_cover:
- service: mqtt.publish
data:
topic: 'shellies/shellyswitch-13503C/relay/0/command'
payload: 'off'
- service: mqtt.publish
data:
topic: 'shellies/shellyswitch-13503C/relay/1/command'
payload: 'off'
binary_sensor:
- platform: mqtt
name: rele_1_sala
state_topic: "shellies/shellyswitch-13503C/relay/0"
payload_on: "on"
payload_off: "off"
- platform: mqtt
name: rele_2_sala
state_topic: "shellies/shellyswitch-13503C/relay/1"
payload_on: "on"
payload_off: "off"
input_boolean:
alterarslider_sala:
name: Alterar o slider sala
initial: on
input_number:
abertura_sala:
name: Abertura sala
min: 0
max: 100
step: 1
unit_of_measurement: '%'
icon: mdi:blinds
abertura_salaold:
name: valor antigo de abertura sala
min: 0
max: 100
step: 1
unit_of_measurement: '%'
automation:
- id: iniciofecho_sala
alias: começou a fechar sala
initial_state: 'on'
trigger:
- platform: state
entity_id: binary_sensor.rele_2_sala
to: 'on'
action:
service: input_text.set_value
data_template:
entity_id: input_text.iniciofecho_sala
value: '{{ now() }}'
- id: fimfecho_sala
alias: parou de fechar sala
initial_state: 'on'
trigger:
- platform: state
entity_id: binary_sensor.rele_2_sala
to: 'off'
condition:
- condition: state
entity_id: 'input_boolean.alterarslider_sala'
state: 'on'
action:
- service: input_number.set_value
data_template:
entity_id: input_number.abertura_salaold
value: >-
{% if (states.input_number.abertura_sala.state)|int - ((as_timestamp(now()) - (as_timestamp(states.input_text.iniciofecho_sala.state))|float|round(2))*100/(states.input_text.tempodefecho_sala.state|int))|int < 4 %}
0
{% else %}
{{ (states.input_number.abertura_sala.state)|int - ((as_timestamp(now()) - (as_timestamp(states.input_text.iniciofecho_sala.state))|float|round(2))*100/(states.input_text.tempodefecho_sala.state|int))|int }}
{% endif %}
- service: input_number.set_value
data_template:
entity_id: input_number.abertura_sala
value: '{{ states.input_number.abertura_salaold.state }}'
- id: inicioabertura_sala
alias: começou a abrir sala
initial_state: 'on'
trigger:
- platform: state
entity_id: binary_sensor.rele_1_sala
to: 'on'
action:
service: input_text.set_value
data_template:
entity_id: input_text.inicioabertura_sala
value: '{{ now() }}'
- id: fimabertura_sala
alias: parou de abrir sala
initial_state: 'on'
trigger:
- platform: state
entity_id: binary_sensor.rele_1_sala
to: 'off'
condition:
- condition: state
entity_id: 'input_boolean.alterarslider_sala'
state: 'on'
action:
- service: input_number.set_value
data_template:
entity_id: input_number.abertura_salaold
value: >-
{% if (states.input_number.abertura_sala.state)|int + ((as_timestamp(now()) - (as_timestamp(states.input_text.inicioabertura_sala.state))|float|round(2))*100/(states.input_text.tempodeabertura_sala.state|int))|int > 96 %}
100
{% else %}
{{ (states.input_number.abertura_sala.state)|int + ((as_timestamp(now()) - (as_timestamp(states.input_text.inicioabertura_sala.state))|float|round(2))*100/(states.input_text.tempodeabertura_sala.state|int))|int }}
{% endif %}
- service: input_number.set_value
data_template:
entity_id: input_number.abertura_sala
value: '{{ states.input_number.abertura_salaold.state }}'
- id: aberturapeloslider_sala
alias: Abertura pelo slider sala
initial_state: 'on'
trigger:
platform: state
entity_id: input_number.abertura_sala
condition:
- condition: template
value_template: '{{ states.input_number.abertura_sala.state|int > states.input_number.abertura_salaold.state|int }}'
action:
- service: input_boolean.turn_off
data:
entity_id: input_boolean.alterarslider_sala
- service: mqtt.publish
data:
topic: 'shellies/shellyswitch-13503C/relay/0'
payload_template: "on; delay {% if is_state('input_number.abertura_sala', '100.0') %} {{ (((states.input_number.abertura_sala.state|int - states.input_number.abertura_salaold.state|int)*(states.input_text.tempodeabertura_sala.state|float)/100)|round(1)*10)|round(0) + 20 }} {% else %}
{{ (((states.input_number.abertura_sala.state|int - states.input_number.abertura_salaold.state|int)*(states.input_text.tempodeabertura_sala.state|float)/100)|round(1)*10)|round(0) }} {% endif %}; off"
- delay:
milliseconds: 800
- wait_template: "{{ is_state('binary_sensor.rele_1_sala', 'off') }}"
- service: input_boolean.turn_on
data:
entity_id: input_boolean.alterarslider_sala
- service: input_number.set_value
data_template:
entity_id: input_number.abertura_salaold
value: '{{ states.input_number.abertura_sala.state }}'
- id: fechopeloslider_sala
alias: Fecho pelo slider sala
initial_state: 'on'
trigger:
platform: state
entity_id: input_number.abertura_sala
condition:
- condition: template
value_template: '{{ states.input_number.abertura_sala.state|int < states.input_number.abertura_salaold.state|int }}'
action:
- service: input_boolean.turn_off
data:
entity_id: input_boolean.alterarslider_sala
- service: mqtt.publish
data:
topic: 'shellies/shellyswitch-13503C/relay/1'
payload_template: "on; delay {% if is_state('input_number.abertura_sala', '0.0') %} {{ (((states.input_number.abertura_salaold.state|int - states.input_number.abertura_sala.state|int)*(states.input_text.tempodefecho_sala.state|float)/100)|round(1)*10)|round(0) + 20 }} {% else %}
{{ (((states.input_number.abertura_salaold.state|int - states.input_number.abertura_sala.state|int)*(states.input_text.tempodefecho_sala.state|float)/100)|round(1)*10)|round(0) }} {% endif %}; 'off'"
- delay:
milliseconds: 800
- wait_template: "{{ is_state('binary_sensor.rele_2_sala', 'off') }}"
- service: input_boolean.turn_on
data:
entity_id: input_boolean.alterarslider_sala
- service: input_number.set_value
data_template:
entity_id: input_number.abertura_salaold
value: '{{ states.input_number.abertura_sala.state }}'
Obrigado desde já pela ajuda, vou continuar a tentar e explorar. Se conseguir algum avanço logo aviso.
Quanto ao resto não sei, mas sem o pulsetime os relés não vão parar ao fim de X tempo.
Esse código foi feito para trabalhar com tasmota, se não estás a usar tasmota podes ter de adaptar alguma coisa.
Qual é o problema a flashar o shelly2?
Viva, experimentei hoje o shelly2 nos meus estores e funcionou muito bem. A calibração (feita na aplicação deles) é essencial para o processo.
Para usares o firmware original (como eu), não te esqueças de atualizar para a última versão que tem melhorias significativas.
Tenho aqui o código que está a funcionar no meu caso:
Viva,
Antes de mais um muito obrigado pela vossa partilha de conhecimento.
Comprei 10 Sonoff Dual r2 para os meus estores e usei este código que partilharam e está a funcionar impecável.
No entanto tenho uma dúvida. O que é necessário alterar para o slider dar feedback em tempo real quando o estore abre e fecha? Gostaria de ver a barra a acompanhar mas ela só mexe quando está todo aberto, todo fechado, quando carrego no botão de stop, ou quando arrasto o slider para a posição que quero.
Era interessante por exemplo carregar no botão de subir e estar a ver a barra do slider a avançar.
Podem ajudar ou dar alguma dica do que fazer?
Obrigado.
Neste momento é impossível. Implicaria bastantes mudanças ao código sem vantagem evidente… Sinceramente não vejo vantagem… Se controlares pelo interface do HA, escolhes a percentagem de abertura… Se controlares pelos botões físicos, é porque estás a ver os estores e não o UI do HA… Assim sendo é só uma função “só porque sim” sem utilidade práctica, na minha opinião…
ok, obrigado.
Realmente não é algo que seja necessário.
Alguem usa esse esquema para aparecer no Homekit (Apple)??
Se sim ele aparece a % normal?
Boas, comecei a utilizar esta opção com o slider á pouco tempo, está a funcionar só que a versão anterior quando carregava para descer ou subir o botão inverso ficava logo activo era sinal que tinha recebido o comando neste caso não me está a acontecer isto é normal?
O problema é quando não estou em casa, carrego para descer ou subir fico na duvida se aceitou o comando ou não até receber a informação de fechado ou aberto por completo.
Tens as automações ligadas?
Dá uma olhadela no tasmota do stefanbode. Para estores é o melhor imo