Intervalo entre leitura de sensores


(MRodrigues) #1

Viva, estou aqui a tentar uma configuração por uma limitação de um sensor ou por falha minha na configuração. Dou só contexto:

Tenho sensor xiaomi aqara de movimento e iluminação e quero ligar uma luz quando valor de iluminação está abaixo de 10.

Tenho o seguinte:

- alias: auto_kitchen_light_on
  initial_state: True
  trigger:
    - platform: state
      entity_id: sensor.movimentocozinhanovo
      to: 'True'
  condition:
    condition: and
    conditions:
     - condition: numeric_state
       entity_id: sensor.iluminacaocozinhanovo
       below: 10
    - condition: template
      value_template: '{{ as_timestamp(now()) - as_timestamp(states.automation.auto_kitchen_light_on.attributes.last_triggered) | int > 60 }}'
  action:
      - service: switch.turn_on
        entity_id: switch.luz_cozinha_esquerda

Então está a acontecer o seguinte:

#1 - Entro na cozinha com luz apagada e luminosidade zero e ele liga a luz e funciona bem.
#2 - Por algum motivo ele não volta a ler a luminosidade a não ser que eu ande lá a mexer-me. (parece que é o sensor de movimento que força leitura de luminosidade, o que faz sentido para poupar bateria)
#3 - Então, se eu voltar a entrar na cozinha, mesmo que a luz esteja acesso, vai voltar a despoletar outra vez a acção de ligar a luz, que na prática a desliga, pois o interruptor é RFID.

O que descobri a testar:
A luminosidade é alterada logo depois do movimento, mas quando faço o trigger já é tarde demais e ele ainda me apanha luminosidade a zero.

Pergunta:
Existe alguma forma de colocar uma especie de timer entre validações? Ou seja, eu queria dizer que depois de entrar na cozinha, queria validar a iluminação 1 segundo depois! Dessa forma teria a certeza que ia apanhar a leitura do valor certo de iluminação.

PS: Assim que chegar o shelly2 vou trocar este interruptor, mas até lá queria ultrapassar este desafio.


(Tiago Marques) #2

Quanto à automação não sei, mas esse sensor é miserável no que toca à iluminação (tenho 2)

Quanto à parte do timeout no movimento dá para alterar se for zigbee2mqtt. Com a gw da xiaomi não sei se é possível.

Quanto #3 isso é comportamento de toggle. Precisas obrigatoriamente de on/off separados. Não sei que interruptor estás a usar, mas possivelmente permite diferenciar os comandos de on e off.

[EDIT] Continuo sem saber o que utilizas, mas o zigbee2mqtt já permite definir o intervalo de report do senosr de iluminação:

  • #827 Add RTCGQ11LM illuminance interval report

(MRodrigues) #3

O interruptor é muito fraco mesmo. É daqueles que vem com um comando tipo de garagem para ligar e desligar e o mesmo botão faz tudo (liga/desliga). Em breve vou substituir!

Confirmo que desde ontem deixei xiaomi (componente zigbee) e tenho zigbee2mqtt, portanto a dica que me deste é perfeita! Obrigado!


(Tiago Marques) #4

@mfrodrigues

e afinal parece que era um problema de implementação, e não do sensor :expressionless:

Desde o último update do zigbee2mqtt, que os sensores começaram a reportar valores mais lógicos IMO.

Ainda é cedo para tirar conclusões, mas vejo valores de iluminação com luz natural que anteriormente só conseguia com uma lanterna apontada ao sensor.

Ainda estou a tentar perceber que alterações existiram (são muitas páginas) mas uma é certa: A cada 50-60m ele reporta a iluminação mesmo sem existir movimento. Ainda não percebi se dá para configurar o tempo (como o timeout de movimento) mas a verdade é que me parece muito melhor.