Sensor customizado

Pessoal,
Tem como criar om sensor que mude o estado quando a variação da leitura atual for “x” maior que a anterior?
EXEMPLO: quando a umidade medida for 10 pontos acima da leitura anterior, tipo (leitura 1 - 75% e leitura 2 - 88%) aí muda o status desse sensor? Pode ser tipo um template?!

Vc faz um template!

1 Like

OK Leandro. Pensei nisso, conforme coloquei no texto!
Minha dúvida é como fazer essa comparação (medição anterior x medição atual) para achar o “delta”… Tenho que armazenar as informações? Como chamo a medição anterior no template? Pode me ajudar?

Precisa ser o Delta? Veja que o HA tem uns sensores interessantes que fazem integral, estistica ou até mesmo o utility meter pode resolver o seu problema. Caso seja só o delta mesmo, uma maneira meio malandra de pegar a leitura anterior é usar uma automação (retirado do forum do HA):

template:
  - trigger:
      - platform: numeric_state
        entity_id: sensor.water_level_liters
    sensor:
      - name: "diff_water_level"
        state: >
          {% set delta = trigger.to_state.state | float - trigger.from_state.state | float %}
          {{ delta if delta > 0 else 0 }}
1 Like

Na verdade o que preciso é o seguinte: Um sensor que me avise quando alguém está no banho! (controlar banho dos moleques quando estou fora rsrsr) Apenas avisar quando a umidade supera “x” não resolve, pois as vezes o sensor fica muito tempo acima desse parametro e avisa mais de uma vez (fiz uma automação que quando a umidade fosse maior que 80% incrementasse (1) num contador e me avisasse no celular. Mas tem ocorrido muitos avisos… quando um menino toma banho a umidade demora pra baixar dos 80. Recebo assim avisos falsos! Acontece que por vezes no dia a umidade está em 70% e quando alguém toma banho via pro 83%. Ao terminar demora pra voltar pros 70% e se outro entra no banheiro, sobe pra cerca de 92%. Única maneira que pensei foi utilizar sempre a diferença ( só emitir o aviso e contar quando o delta for superior a 8 ou 9%, por exemplo!)

Nesse caso, o que vai te ajudar é o sensor “statistics”, tem até um exemplo usando umidade do banheiro:

vc vai ter usar a função “change” e talvez tenha que ajustar a quantidade de amostras de acordo com a frequencia que o seu sensor atualiza o HA.

1 Like

Obrigado, @CLyra!
Vou estudar essa alternativa e volto aqui com o resultado depois!!

Essa dica foi muito valiosa! Tá funcionando aqui… faltam alguns ajustes quanto ao método de captura ( se vai ser change ou distance_absolute ou mean). Fazendo testes ainda!!
Obrigado, @CLyra !!!

a config tá igual ao do site ou vc mexeu mais coisa? (pense que mais gente pode se interessar pela sua config :slight_smile: )

Estou fazendo os testes aqui e tão logo decifre, publicarei! Por enquanto usando assim. E cada vez que a diferença é superior a 7% a automação me avisa e incrementa num contador. Estou observando as mudanças para ter certeza que assim vou ter uma informação precisa!
image

Interessante esse sensor, vou tentar utilizar para medir variação de corrente em um circuito elétrico. No mesmo circuito pode ligar eventualmente microondas, sanduicheira e Geladeira.
Obrigado por publicarem as experiências de vocês

1 Like

Pessoal,
Após alguns testes alterei a configuração do state_characteristc para “change”. Foi a melhor forma! Ppois com o valor absoluto, ao baixar a umidade ele mostrava um valor positivo, pois diminuia o MAX valor pelo MIN. Com a change isso não ocorre, pois compara a atual leitura com a mais antiga (diminui o sampling_size para apenas 5).
Mais uma vez, valeu @CLyra pela ajuda!!!

1 Like