Não acender luzes durante noite

Boa noite, sou novo no home assistant e estou com alguns problemas. Um deles é que gostaria de fazer uma automação para luzes ligarem a partir de um sensor(isso está OK). Porém eu só queria que esse sensor funcionasse durante o período em que estou acordado. Eu não durmo sempre em um horário fixo. Pensei em criar um variável, e também um botão que sempre que vou dormir pressiono ele e atribuo um valor a essa variavel, porém não encontrei como fazer. Podem me ajudar? Obrigado

1 curtida

Ola @gebara, eu iso algo semelhante em minha garagem.
Tenho uma regra onde a partir de um horário específico o sensor acende minha garagem, a após outro horário ele já não acende mais. Contudo, também nao vou dormir sempre no mesmo horário, então tenho uma regra, que se caso eu tiver alguma outra lâmpada acesa eo sensor detectar movimento, ele tambem acenderá a garagem ignorando o horário limite.

Exemplo:
Das 18:20h até 23:00h a garagem acende se tiver movimento.
Das 23:00h até as 6:00h a garagem acende se tiver movimento e também se tiver acesa a lâmpada do corredor, ou da porta da cozinha.

Vou colocar a regra aqui :point_down:t2: para usar nativamente no HA.

alias: Lampada Garagem (Movimento)
description: ""
trigger:
  - type: motion
    platform: device
    device_id: c30fca915070da5b1a080b
    entity_id: binary_sensor.movimento_garagem_input
    domain: binary_sensor
condition:
  - condition: or
    conditions:
      - condition: time
        after: input_datetime.ativa_luz_garagem
        before: "22:00:00"
        weekday:
          - mon
          - tue
          - wed
          - thu
          - fri
          - sat
          - sun
      - condition: or
        conditions:
          - condition: and
            conditions:
              - condition: time
                after: "22:00:00"
                before: "06:00:00"
                weekday:
                  - mon
                  - tue
                  - wed
                  - thu
                  - fri
                  - sat
                  - sun
              - condition: or
                conditions:
                  - condition: device
                    type: is_on
                    device_id: 2c476666ef7cb1428f3707
                    entity_id: switch.sonoff_1000b5d13f
                    domain: switch
                    for:
                      hours: 0
                      minutes: 0
                      seconds: 1
                  - condition: device
                    type: is_on
                    device_id: 8d3bd398ce282c578ea800
                    entity_id: switch.sonoff_100148c20d
                    domain: switch
                    for:
                      hours: 0
                      minutes: 0
                      seconds: 1
action:
  - type: turn_on
    device_id: ced1111a40b86c80f73171
    entity_id: switch.garagem
    domain: switch
  - delay:
      hours: 0
      minutes: 5
      seconds: 0
      milliseconds: 0
  - type: turn_off
    device_id: ced1111a40b86c80f73171
    entity_id: switch.garagem
    domain: switch
mode: restart

@Adessotti obrigado da resposta, mas queria algo além ainda. Queria declarar uma variavel(tentei com input number) e se estiver 0 acende normal a luz, se estiver 1 não acende e se estiver 2 acende 50%(minha lampada é dimerizavel). Mas não consegui a execução disso. No meu caso queria algo independente de outras entidades do sistema

Usando a mesma logica q postei, vc pode fazer assim da forma q falou. Basta ir abrindo a logica para fazer ações diferentes conforme o valor imputado.
Dá para fazer tranquilamente nativo no HA, porém se vc for adicionar muitas possibilidades fica mais fácil fazer no Node-RED.

1 curtida

Você pode criar um auxiliar, em Configurações > Dispositivos & Serviços > Auxiliares crie um interruptor como: Dormindo

image

E então em sua rotina que você pressiona quando vai dormir, defina esse seu interruptor como ativado, e talvez você tenha que definir uma outra automação para ele identificar quando você acordou e definir ele como desligado, pode ser por sensor de movimento pela manhã ou caso você desligue o ventilador/ar condicionado.

E em sua automação da luz, coloque como condição que esse interruptor dormindo precisa estar com o status ativado.

Usando interruptor deu certo…Quero usar com número, estou quase chegando a solução…Obrigado

se quiser usar com número, ao invés de criar um interruptor, cria um auxiliar de número, você pode definir o número que quiser, e na rotina de dormir você chama o serviço “number.set_value”

Nesse ponto, consigo testar apenas float, correto? Para funcionar o 1 por exemplo tive que colocar maior que 0.9 e menor que 1.1. Ainda nisso, crio um input button para alterar esse valor, mas como chamo a automação?

Para ser o gatilho, vc pode colocar um horário por exemplo: 20h, ai apartir deste horário a automação vai passar a monitorar as condições que vc definiu.
Se estiver 0 não acende, se estiver 1 acende ate as 22h, se estiver 50 acende com 50% da potência até as 23h, etc.
Ai a imaginação é o limite. :+1:t2:

depende na hora que você criou o gatilho, se você definiu ele pra incrementar 0.1 ele vai subido assim, mas você pode colocar pra ele incrementar 1

Já em gatilho, você cria verificando se a variável está com o step em 0 1 ou 2

Assim deveria funcionar, porém ele está verificando se a variável number.dormindo está com o valor “2” como string, e a variável na verdade está com o valor 2 inteiro, então você deve editar o gatilho como yaml e alterar de “2” para 2

Tira o atributo step.
Ele serve pra dizer de quantos em quantos o valor deve ser incrementado ou decrementado.

Já que você falou que seu domínio é 0, 1 e 2, o step é 1.

Verdade, tinha confundido com outro projeto que tinha feito, o que funciona igual esse dele acabei utilizando o gatilho template

condition: template
value_template: "{{states.input_number.dormindo.state == \"2.0\"}}"

Obrigado a todos pela ajuda. Consegui resolver meu problema…Acabei utilizano um Number para controle da iluminação(0, 1, 2 e 3) para 3 modos distindos e um Interruptor para alterar valor deles.