Quick blog post to talk about how I setup Kalliope to remind me stuff, but with a snooze feature.

The default setup of the neurotimer let you ask Kalliope to remind you stuff after some time (minutes or hours).

I really like it because I have a poor short term memory, so when I have something to do in 30min, I use the kalliope neurotimer module to help me remember… But sometime, I want Kalliope to remind me again after 5 min because I didn’t have the time to do at the time Kalliope reminded me.

Let’s take a real life use case:

Let’s say I am in a game (starcraft2 fan here ^^) and someone is calling me. When in a game, I can’t (don’t want to) pick up the phone, but I want to remember to call back the person. For this I’m using the neurotimer to do so, with a sentence like "Remind me in XX minutes to YYY".

This is the default setup explained in the neurotimer README file here.

But that is not enough for me, because I may be still in game when being reminded by Kalliope, so I want to have the ability to tell kalliope to remind me again in X minutes, without re-asking the full order like before.

The workflow I want:

Me: "Kalliope… remind me in 10 minutes to call back dad"
Kalliope: "I'll remind you in 10 minutes to call back dad"
[… 10minutes later …]
Kalliope: "You asked me to remind you call back dad"
Kalliope: "Do you want me to remind you again?"
  option1: (I want another reminder)
    Me: "Yes"
    Kalliope: "When?"
    Me: "In 5 minutes"
    [… 5 minutes later …]
    Kalliope: "You asked me to remind you to call back dad"

      *Option: Again, I'm in a sort of a loop here, so as long as I say "yes", it will remind me again until I say no (or anything other than yes).*

  Option2: 
    Me: "No"
    Kalliope: "Ok, I won't remind you again."

So how does it work? I’m using the Neurotimer module, with the Neurotransmitter and the Kalliope memory to do so.

It does bring a limitation though, as you can’t have multi reminder with “snooze” as the memory will only remember the last one.

My configuration to do so is the following:

Brain file:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
---
  - name: "reminder-synapse"
    signals:
      - order: "remind me to {{ remember }} in {{ time }} minutes"
    neurons:
      - neurotimer:
          minutes: "{{ time }}"
          synapse: "reminder-todo"
          forwarded_parameters:
            remember: "{{ remember }}"
          kalliope_memory:
            reminder_2: "{{ remember }}"
      - say:
          message:
            - "Ok sir, reminder setup"

  - name: "reminder-todo"
    signals:
      - order: "reminder_todo_no_order"
    neurons:
      - say:
          message:
            - "Sir, you asked me to remind you to {{ remember }}"
      - say:
          message: "Do you want me to remind you again ?"
      - neurotransmitter:
          from_answer_link:
            - synapse: "reminder2"
              answers:
                - "oui"
            - synapse: "no-response"
              answers:
                - "non"
          default: "no-response"

  - name: "reminder2"
    signals:
      - order: "reminder2-no-order"
    neurons:
      - say:
          message: "When do I have to remind you to {{ kalliope_memory['reminder_2'] }} ?"
      - neurotransmitter:
          from_answer_link:
            - synapse: "reminder-via-memory"
              answers:
                - "in {{time}} minutes"
            - synapse: "reminder-via-memory"
              answers:
                - "dans {{time}} minutes"
          default: "no-response"

  - name: "reminder-via-memory"
    signals:
      - order: "reminder-via-memory-no-order"
    neurons:
      - neurotimer:
          minutes: "{{ time }}"
          synapse: "reminder-todo"
          forwarded_parameters:
            remember: "{{ kalliope_memory['reminder_2'] }}"
      - say:
          message:
            - "Ok, I'll remind you in {{time}} minutes to {{ kalliope_memory['reminder_2'] }}"

Nota: The “no-response” is a default synapse I created that simply answer “ok sir” or something like this :).

And voilà :)