Author Topic: Reminders  (Read 5956 times)

0 Members and 1 Guest are viewing this topic.

bp_pbs

  • Contributor
  • ***
  • Posts: 94
  • Karma: 1
    • View Profile
Reminders
« on: June 23, 2013, 06:10:15 PM »
James I was looking at your: VoxCommando - Scenario: Coming Home from Work

And was wondering how did you setup the command for reminders? are you using Google calendar?

jitterjames

  • Administrator
  • Hero Member
  • *****
  • Posts: 7714
  • Karma: 116
    • View Profile
    • VoxCommando
Re: Reminders
« Reply #1 on: June 23, 2013, 06:36:02 PM »
No.  I'm using VC.SetEventTimer.  This works because I'm saying to do it in (x) minutes, not at a particular time.  I'm multiplying the minutes by 60 to get seconds using python, so you'll need to enable the python plugin for this command to work.

I'm using a payload list for the types of things I can be reminded of, but you could use dictation or payloadXML if you prefer. (Obviously I have a tendency to overlook the needs of my dog... at least that's what he would tell you, given the opportunity)

If you did want to say remind me to ... at a particular time, you could probably still use this approach but the python script would need to be a bit more complicated to figure out how long to set the eventTimer delay for.

Consider that a challenge all you python lovers out there!

[Note: This is an old post from 2013. It is now possible to set the event timer for a particular time, and to use either seconds or minutes or hours. See the action description for VC.SetEventTimer.]

Code: [Select]
<?xml version="1.0" encoding="utf-16"?>
<commandGroup open="True" name="Remind me to" enabled="True" prefix="" priority="5" requiredProcess="" description="">
  <command id="750" name="Remind me to {1} in {2} minutes" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
    <action>
      <cmdType>PY.ExecString</cmdType>
      <cmdString>result = {2}*60</cmdString>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>VC.SetEventTimer</cmdType>
      <cmdString>{LastResult}&amp;&amp;Demo.Reminder&amp;&amp;{1}</cmdString>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>TTS.Speak</cmdType>
      <cmdString>I'll do that.</cmdString>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <phrase>remind me to</phrase>
    <payloadList>walk the dog, take out the garbage, let the dog in, let the dog out, take the dog for a walk</payloadList>
    <phrase>in</phrase>
    <payloadRange>1,30</payloadRange>
    <phrase>minutes</phrase>
  </command>
  <command id="751" name="say the reminder" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
    <action>
      <cmdType>MM.SoftMute</cmdType>
      <cmdString>50</cmdString>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>TTS.SpeakSync</cmdType>
      <cmdString>Excuse me.  You asked me to remind you to, {1}</cmdString>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>MM.SoftUnmute</cmdType>
      <cmdString />
      <cmdRepeat>1</cmdRepeat>
    </action>
    <event>Demo.Reminder</event>
  </command>
</commandGroup>
« Last Edit: January 02, 2016, 09:04:14 AM by nime5ter »

bp_pbs

  • Contributor
  • ***
  • Posts: 94
  • Karma: 1
    • View Profile
Re: Reminders
« Reply #2 on: June 24, 2013, 08:02:22 PM »
Thanks James that will work for me.


On a side project. I wonder if Vox could pull Google Calender Events. Kind of like how if can pull Gmail but on this pull the event information and make the reminders.

Ex. I'm at work and add something to my Google Calender. When I get home I tell Vox to find all Reminders and set the events and time to remind me.

Don't know if that's possible but that's what floating in my mind.  ;D

jitterjames

  • Administrator
  • Hero Member
  • *****
  • Posts: 7714
  • Karma: 116
    • View Profile
    • VoxCommando
Re: Reminders
« Reply #3 on: June 24, 2013, 10:14:32 PM »
Yes, it can be done, using the GgCal plugin

http://voxcommando.com/mediawiki/index.php?title=Plugin_List#GgCal

with a bit of fancy footwork you could trigger timed events too, I am sure.  Of course it only really works for the events in your calendar that are at a particular time.  Some calendar events are "all day" events.

bp_pbs

  • Contributor
  • ***
  • Posts: 94
  • Karma: 1
    • View Profile
Re: Reminders
« Reply #4 on: June 27, 2013, 10:49:25 AM »
Thanks James that is what I needed

jitterjames

  • Administrator
  • Hero Member
  • *****
  • Posts: 7714
  • Karma: 116
    • View Profile
    • VoxCommando
Re: Reminders
« Reply #5 on: June 30, 2013, 09:20:13 AM »
This is actually a really great idea, and I'm working on an update to the Google calendar plugin that will make it quite easy and very powerful.  I will release it along with the next version of VC which should be quite soon (days).

Basically you'll just provide a list of feeds (calendars) from your account, specify how often to rescan it, and how many minutes early to generate your events.  It will scan everything for the next week and create the timers to trigger the events.

The events will have payloads with extra info for the event: title, location, description, etc.

It is great because now we can tap into all the options for recurring events etc. Without me having to develop the interface for it.

You will of course also be able to use the events to do things, like turn on the lights when you are expected to get home etc.
« Last Edit: June 30, 2013, 11:39:48 AM by jitterjames »