# Lembrete de Desparasitação

**URL:** <https://forum.cpha.pt/t/lembrete-de-desparasitacao/209>\
**Category:** Partilha de Projectos\
**Created:** [26 Abril , 2018 14:52 UTC](https://forum.cpha.pt/t/lembrete-de-desparasitacao/209 "2018-04-26T14:52:03Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![Neives](https://forum.cpha.pt/letter_avatar_proxy/v4/letter/n/eada6e/32.png) [@Neives](https://forum.cpha.pt/u/Neives)\
**Post date:** [26 Abril , 2018 14:52 UTC](https://forum.cpha.pt/t/lembrete-de-desparasitacao/209/1 "2018-04-26T14:52:04Z")

</div>

Boa tarde.  
Estou a tentar criar um lembrete para efectuar a desparasitação ao meu cão, porque me esqueço constantemente.

Pode não ser a melhor forma de o fazer, mas é a única forma que me lembrei.

```
input_boolean:

  internal_deworming_done:
  internal_deworming_alarm:

input_number:
  internal_deworming_day:
    name: Dia de Desparasitação
    min: 1
    max: 31
    step: 1
  internal_deworming_month:
    name: Mês de Desparasitação
    min: 1
    max: 12
    step: 1
  internal_deworming_year:
    name: Ano de Desparasitação
    min: 2018
    max: 2100
    step: 1

sensor:

  - platform: time_date
    display_options:
      - 'date'
  - platform: template
    sensors:
      internal_deworming_day:
        value_template: '{{ states.input_number.internal_deworming_day.state | int }}'
      internal_deworming_month:
        value_template: '{{ states.input_number.internal_deworming_month.state | int }}'
      internal_deworming_year:
        value_template: '{{ states.input_number.internal_deworming_year.state | int }}'
      internal_deworming_date_small:
        value_template: "{{ states.sensor.internal_deworming_year.state }}-{{ states.sensor.internal_deworming_month.state }}-{{ states.sensor.internal_deworming_day.state }}"
      internal_deworming_date:
        value_template: >-
          {{ states.sensor.internal_deworming_year.state }}-
          {%- if states.sensor.internal_deworming_month.state|length == 1 -%}
            0
          {%- endif -%}
          {{ states.sensor.internal_deworming_month.state }}-
          {%- if states.sensor.internal_deworming_day.state|length == 1 -%}
            0
          {%- endif -%}
          {{ states.sensor.internal_deworming_day.state }}

automation:

  - alias: 'Internal Deworming Day'
    initial_state: true
    hide_entity: False
    trigger:
      platform: template
      value_template: '{{ states.sensor.date.state == states.sensor.internal_deworming_date.state }}'
    action:
      - service: input_boolean.turn_off
        entity_id: input_boolean.internal_deworming_done
      - service: input_boolean.turn_on
        entity_id: input_boolean.internal_deworming_alarm

  - alias: Internal Deworming Warning
    initial_state: true
    hide_entity: true
    trigger:
      - platform: time
        at: '17:00:00'
      - platform: time
        at: '18:00:00'
      - platform: time
        at: '18:30:00'
      - platform: time
        at: '19:00:00'
      - platform: time
        at: '19:30:00'
      - platform: time
        at: '20:00:00'
      - platform: time
        at: '20:30:00'
    condition:
      condition: template
      value_template: '{{ states.input_boolean.internal_deworming_alarm.state == "on" }}'
    action:
      - service: telegram_bot.send_message
        data_template:
          target: !secret telegram_chatid1
          message: 'Dia de fazer desparasitação interna!'
          disable_notification: true
          inline_keyboard:
            - "Feito:/internal_deworm_done"
            - "Lembrar Amanhã:/internal_deworm_tomorrow"
  - alias: 'internal_deworm_done'
    hide_entity: true
    trigger:
      platform: event
      event_type: telegram_callback
      event_data:
        data: '/internal_deworm_done'
    action:
      - service: telegram_bot.answer_callback_query
        data_template:
          callback_query_id: '{{ trigger.event.data.id }}'
          message: 'Excelente, aviso daqui a três meses novamente!'
      - service: input_boolean.turn_on
        entity_id: input_boolean.internal_deworming_done
      - service: input_boolean.turn_off
        entity_id: input_boolean.internal_deworming_alarm
      - service: input_number.set_value
        data_template:
          entity_id: input_number.internal_deworming_month
          value: "{{ states.sensor.internal_deworming_month.state }}+3"

  - alias: 'internal_deworm_tomorrow'
    hide_entity: true
    trigger:
      platform: event
      event_type: telegram_callback
      event_data:
        data: '/internal_deworm_tomorrow'
    action:
      - service: telegram_bot.answer_callback_query
        data_template:
          callback_query_id: '{{ trigger.event.data.id }}'
          message: 'Ok, aviso novamente amanhã!'
      - service: input_boolean.turn_on
        entity_id: input_boolean.internal_deworming_done
      - service: input_boolean.turn_off
        entity_id: input_boolean.internal_deworming_alarm
      - service: input_number.set_value
        data_template:
          entity_id: input_number.internal_deworming_day
          value: "{{ states.sensor.internal_deworming_day.state }}+1"

group:

  dog_internal_deworming:
    name: Desparasitação Interna
    entities:
    - input_boolean.internal_deworming_done
    - input_boolean.internal_deworming_alarm
    - sensor.internal_deworming_date
    - sensor.internal_deworming_day
    - input_number.internal_deworming_day
    - sensor.internal_deworming_month
    - input_number.internal_deworming_month
    - sensor.internal_deworming_year
    - input_number.internal_deworming_year

```

Agora, tenho um problema,  
Não sei como fazer com que me volte a lembra dentro de 3 meses quando respondo que a desparasitação foi efectuada no Telegram, ou como adicionar um dia à data ao responder lembrar amanha.

---

<div class="post-metadata">

**Author:** ![dgomes](https://forum.cpha.pt/user_avatar/forum.cpha.pt/dgomes/32/42_2.png) [@dgomes](https://forum.cpha.pt/u/dgomes)\
**Post date:** [26 Abril , 2018 15:54 UTC](https://forum.cpha.pt/t/lembrete-de-desparasitacao/209/2 "2018-04-26T15:54:25Z")

</div>

E usar o calendario do seu smartphone 😆 ?

---

<div class="post-metadata">

**Author:** ![j\_assuncao](https://forum.cpha.pt/user_avatar/forum.cpha.pt/j_assuncao/32/3_2.png) [@j\_assuncao](https://forum.cpha.pt/u/j_assuncao)\
**Post date:** [26 Abril , 2018 15:58 UTC](https://forum.cpha.pt/t/lembrete-de-desparasitacao/209/3 "2018-04-26T15:58:23Z")

</div>

O @dgomes tem razão mas…

Se queres mesmo seguir pela via do HA, deves começar por substituir os `input_numbers` por `input_datetime`.  
Com apenas um `input_datetime` substituis três `input_numbers`.

> **[Input Datetime](https://www.home-assistant.io/integrations/input_datetime/)**
>
> Instructions on how to integrate the Input Datetime integration into Home Assistant.

---

<div class="post-metadata">

**Author:** ![Neives](https://forum.cpha.pt/letter_avatar_proxy/v4/letter/n/eada6e/32.png) [@Neives](https://forum.cpha.pt/u/Neives)\
**Post date:** [26 Abril , 2018 16:56 UTC](https://forum.cpha.pt/t/lembrete-de-desparasitacao/209/4 "2018-04-26T16:56:22Z")

</div>

Obrigado 😉

@dgomes é uma hipótese que já experimentei e acabei por abandonar porque não me conseguia controlar.  
Queria mesmo passar este dado para o HA.

@j_assuncao não conhecia o Input Datetime, vou experimentar, no entanto continuo com o problema de não conseguir adiar 3 meses ou 1 dia.

---

<div class="post-metadata">

**Author:** ![j\_assuncao](https://forum.cpha.pt/user_avatar/forum.cpha.pt/j_assuncao/32/3_2.png) [@j\_assuncao](https://forum.cpha.pt/u/j_assuncao)\
**Post date:** [26 Abril , 2018 17:08 UTC](https://forum.cpha.pt/t/lembrete-de-desparasitacao/209/5 "2018-04-26T17:08:55Z")

</div>

Quando tiveres a alteração feita, com a substituição fica muito mais compacta, publica aqui o resultado através do [https://hastebin.com/](https://hastebin.com/) publicando o link resultante depois de gravares. Um de nós vai ajudar-te a obter o resultado que pretendes.

Se quiseres ir tentando, experimenta criar dois scripts que gerem o aviso, mas um com o delay de 1 dia e outro com 3 meses. Podes ver aqui:

> **[Options in YAML - Building blocks and actions in automations and scripts](https://www.home-assistant.io/docs/scripts/#delay)**
>
> When an automation or script runs, it goes through a list of steps. Each step is an action or a building block: | Wait, repeat, choose, and perform steps at the same time in your automations and scripts, in the editor or in YAML.

Só não tenho a certeza que isso resista a um restart do HA. Outra hipótese a considerar é criar essas mesmas duas automações mas em vez de criares o delay alteras a data do `internal_deworming_alarm`.

---

<div class="post-metadata">

**Author:** ![Neives](https://forum.cpha.pt/letter_avatar_proxy/v4/letter/n/eada6e/32.png) [@Neives](https://forum.cpha.pt/u/Neives)\
**Post date:** [30 Abril , 2018 22:12 UTC](https://forum.cpha.pt/t/lembrete-de-desparasitacao/209/6 "2018-04-30T22:12:12Z")

</div>

@j_assuncao Desculpa a demora na resposta, estive ausente por motivos profissionais.

Alterar a data do `internal_deworming_alarm` é o que pretendo, mas não sei como adicionar 3 ao mês actual!

---

<div class="post-metadata">

**Author:** ![j\_assuncao](https://forum.cpha.pt/user_avatar/forum.cpha.pt/j_assuncao/32/3_2.png) [@j\_assuncao](https://forum.cpha.pt/u/j_assuncao)\
**Post date:** [30 Abril , 2018 22:35 UTC](https://forum.cpha.pt/t/lembrete-de-desparasitacao/209/7 "2018-04-30T22:35:19Z")

</div>

> [@Neives](#):
>
> mas não sei como adicionar 3 ao mês actual!

Referes-te a adicionar três meses ao mês actual?

---

<div class="post-metadata">

**Author:** ![Neives](https://forum.cpha.pt/letter_avatar_proxy/v4/letter/n/eada6e/32.png) [@Neives](https://forum.cpha.pt/u/Neives)\
**Post date:** [30 Abril , 2018 23:29 UTC](https://forum.cpha.pt/t/lembrete-de-desparasitacao/209/8 "2018-04-30T23:29:32Z")

</div>

Sim, isso mesmo.

Não estou a ver como fazer isso.

---

<div class="post-metadata">

**Author:** ![j\_assuncao](https://forum.cpha.pt/user_avatar/forum.cpha.pt/j_assuncao/32/3_2.png) [@j\_assuncao](https://forum.cpha.pt/u/j_assuncao)\
**Post date:** [1 Maio , 2018 07:33 UTC](https://forum.cpha.pt/t/lembrete-de-desparasitacao/209/9 "2018-05-01T07:33:24Z")

</div>

Através da automação podes alterar os valores do input\_datetime com o seguinte código:

```
action:
  - service: input_datetime.set_datetime
    data:
      entity_id: input_datetime.only_time
      date: 2018-06-01
      time: 09:03:01

```

Se só quiseres mexer na data podes tirar o `time` e substituis o valor de `date` por uma string que some 3 ao mês.

---

<div class="post-metadata">

**Author:** ![j\_assuncao](https://forum.cpha.pt/user_avatar/forum.cpha.pt/j_assuncao/32/3_2.png) [@j\_assuncao](https://forum.cpha.pt/u/j_assuncao)\
**Post date:** [1 Maio , 2018 09:06 UTC](https://forum.cpha.pt/t/lembrete-de-desparasitacao/209/10 "2018-05-01T09:06:05Z")

</div>

Esqueci de referir que o comando para adicionar três meses à data actual é:

`{{ (as_timestamp (now()) | timestamp_custom("%m") | int ) + 3 }}`
