View unanswered posts | View active topics It is currently Wed Apr 23, 2014 8:21 am



Reply to topic  [ 31 posts ]  Go to page: 1, 2, 3  Next
 Dialectic Indigo Script 
Author Message

Joined: Nov 26, 2009
Posts: 1341
Location: Kalispell, MT
Post Dialectic Indigo Script
Hey,

Trying to setup triggering Indigo from incoming caller ID from an app called Dialectic.
I see Dialectic has an AS posted on their site that would turn on a light in Indigo but
am not seeing how I might execute an Indigo action based on the incoming caller ID.

Here's their code:
Code: Select all
(*

This script will turn on a device controlled by Indigo when an incoming call is detected.

For more information on Indigo, please see:

http://www.perceptiveautomation.com/

If you don't adjust the device_name property at the top o the script, you will be prompted for the
device to turn on each time the script is triggered.

*)

property device_name : "" -- name of device to controll

on handle_incoming_call_action(contact_name, contact_number, phone_or_modem_name)
   try
      my turn_on_device()
   on error the_error
      activate
      display dialog "Error: " & the_error buttons {"OK"} default button 1 with icon 0 giving up after 20
   end try
end handle_incoming_call_action

on turn_on_device()
   if (my get_device_name()) = false then return
   tell application "IndigoServer" to turn on device device_name
end turn_on_device

on turn_off_device()
   if (my get_device_name()) = false then return
   tell application "IndigoServer" to turn off device device_name
end turn_off_device

on get_device_name()
   if device_name is not "" then return device_name
   set all_device_names to my get_on_off_devices()
   activate
   set this_device_name to (choose from list all_device_names default items {item 1 of all_device_names} with prompt "Select the device to control:" OK button name "Select")
   if this_device_name = false then return false
   set device_name to item 1 of this_device_name
end get_device_name

on get_on_off_devices()
   tell application "IndigoServer" to return name of every device whose supports on off of it = true
end get_on_off_devices


Anyone have any info on how to set that up?

Thanks,

Carl


Fri Apr 20, 2012 11:03 am
Profile
Site Admin
User avatar

Joined: Mar 19, 2008
Posts: 8357
Location: Austin, Texas
Post Re: Dialectic Indigo Script
I don't have the software and have no idea how the incoming numbers are formatted, but something like this should get close:

Code: Select all
(*

This script will turn on a device controlled by Indigo when an incoming call is detected.

For more information on Indigo, please see:

http://www.perceptiveautomation.com/

If you don't adjust the device_name property at the top o the script, you will be prompted for the
device to turn on each time the script is triggered.

*)

property device_name : "" -- name of device to controll

on handle_incoming_call_action(contact_name, contact_number, phone_or_modem_name)
   try
      my turn_on_device()
      my execute_action_group(contact_number)
   on error the_error
      activate
      display dialog "Error: " & the_error buttons {"OK"} default button 1 with icon 0 giving up after 20
   end try
end handle_incoming_call_action

on execute_action_group(contact_number)
   tell application "IndigoServer_d"
      # Log the number so we can see what it is
      log "call from " & (contact_number as string)
      # Check to see if there's an action group named the same thing as contact_number
      if action group named contact_number exists then
         # If so, execute the action group
         execute group contact_number
      end if
   end tell
end execute_action_group

on turn_on_device()
   if (my get_device_name()) = false then return
   tell application "IndigoServer_d" to turn on device device_name
end turn_on_device

on turn_off_device()
   if (my get_device_name()) = false then return
   tell application "IndigoServer_d" to turn off device device_name
end turn_off_device

on get_device_name()
   if device_name is not "" then return device_name
   set all_device_names to my get_on_off_devices()
   activate
   set this_device_name to (choose from list all_device_names default items {item 1 of all_device_names} with prompt "Select the device to control:" OK button name "Select")
   if this_device_name = false then return false
   set device_name to item 1 of this_device_name
end get_device_name

on get_on_off_devices()
   tell application "IndigoServer_d" to return name of every device whose supports on off of it = true
end get_on_off_devices


BTW, let me know if you get it working - this might be a good replacement for the incoming calling features I still use in PhoneValet (which has been discontinued). It even works with the PV hardware so I won't have to buy a USB modem.

_________________
Jay (Indigo Support)
Image


Fri Apr 20, 2012 11:14 am
Profile WWW

Joined: Nov 26, 2009
Posts: 1341
Location: Kalispell, MT
Post Re: Dialectic Indigo Script
Thanks Jay. I hope to get this working this weekend, I'll post how it all goes.

I'm thinking maybe the easiest thing to do would be to pass the name and number
to Indigo variables to trigger my control page displays etc.

Just to make things interesting, and the fact I have no phone outlet near my Indigo
server, I'm running Dialectic on a remote machine.
This code works fine to send Indigo whatever may be necessary from that machine.

tell application "IndigoServer" of machine "eppc://TV-Mac-Mini.local:xxx@192.168.1.80"
set the value of variable "CIDname" to "???????"
end tell


Could I bug you for a sample of code how that might be done?

Many thanks,

Carl

P.S. Dialectic does have a 14 day, fully functional, free trial.


Fri Apr 20, 2012 12:13 pm
Profile

Joined: Nov 26, 2009
Posts: 1341
Location: Kalispell, MT
Post Re: Dialectic Indigo Script
Does this look at all close? ...don't have a modem yet to test.

Code: Select all
on handle_incoming_call_action(contact_name, contact_number, phone_or_modem_name)
   try
      
      my set_my_number(contact_number)
      my set_my_name(contact_name)
      
   on error the_error
      activate
      display dialog "Error: " & the_error buttons {"OK"} default button 1 with icon 0 giving up after 20
   end try
end handle_incoming_call_action

on set_my_number(contact_number)
   tell application "IndigoServer" of machine "eppc://TV-Mac-Mini.local:xxx@192.168.1.80"
      # Log the number so we can see what it is
      log "call from " & (contact_number as string)
      set the value of variable "CIDnumber" to (contact_number as string)
   end tell
end set_my_number

on set_my_name(contact_name)
   tell application "IndigoServer" of machine "eppc://TV-Mac-Mini.local:xxx@192.168.1.80"
      # Log the name so we can see who it is
      log "call from " & (contact_name as string)
      set the value of variable "CIDname" to (contact_name as string)
   end tell
end set_my_name



Thanks,

Carl


Fri Apr 20, 2012 1:09 pm
Profile
Site Admin
User avatar

Joined: Mar 19, 2008
Posts: 8357
Location: Austin, Texas
Post Re: Dialectic Indigo Script
Looks right to me.

_________________
Jay (Indigo Support)
Image


Fri Apr 20, 2012 3:04 pm
Profile WWW

Joined: Nov 26, 2009
Posts: 1341
Location: Kalispell, MT
Post Re: Dialectic Indigo Script
For some reason when I try to load/compile this script on a remote machine
I'm always prompted to enter the user name and password..

tell application "IndigoServer" of machine "eppc://TV-Mac-Mini.local:xxx@192.168.1.80"
set value of variable "CIDnumber" to "xxxxx"
end tell

If I replace the "TV-Mac-Mini.local"
in the prompt with "TV Mac Mini", it works fine but I have to enter that each time the script is loaded.

Any idea how to fix that?

Thanks,

Carl


Attachments:
Picture 1.png
Picture 1.png [ 23.29 KiB | Viewed 538 times ]
Sun Apr 22, 2012 1:11 pm
Profile
Site Admin
User avatar

Joined: Jan 27, 2003
Posts: 13238
Location: Texas
Post Re: Dialectic Indigo Script
You have to specify the username and password like:

Code: Select all
eppc://user:password@remotemachinename.local

_________________
Image


Sun Apr 22, 2012 1:21 pm
Profile WWW

Joined: Nov 26, 2009
Posts: 1341
Location: Kalispell, MT
Post Re: Dialectic Indigo Script
Sorry, still having trouble with that. So something like?

tell application "IndigoServer" of machine "eppc://user:TV Mac Mini:password:xxx@192.168.1.80"

or

tell application "IndigoServer" of machine "eppc://user:TV-Mac-Mini.local:password:xxx@192.168.1.80"

Thanks,

Carl


Sun Apr 22, 2012 3:39 pm
Profile
Site Admin
User avatar

Joined: Jan 27, 2003
Posts: 13238
Location: Texas
Post Re: Dialectic Indigo Script
If your username is carl and password is foo, then I believe you would use:

Code: Select all
tell application "IndigoServer" of machine "eppc://carl:foo@192.168.1.80"

_________________
Image


Sun Apr 22, 2012 4:09 pm
Profile WWW

Joined: Nov 26, 2009
Posts: 1341
Location: Kalispell, MT
Post Re: Dialectic Indigo Script
Nuts...when I use:

tell application "IndigoServer" of machine "eppc://TV Mac Mini:xxx@192.168.1.80"

I get, "Can’t get application "IndigoServer" of machine "eppc://TV Mac Mini:xxx@192.168.1.80"

Sorry, this should be simple but whatever I try doesn't work.

Thanks,

Carl


Sun Apr 22, 2012 5:58 pm
Profile
Site Admin
User avatar

Joined: Mar 19, 2008
Posts: 8357
Location: Austin, Texas
Post Re: Dialectic Indigo Script
The user name on your mac mini is really "TV Mac Mini"? That's what you use to log in to the computer?

I suspect not... ;)

_________________
Jay (Indigo Support)
Image


Sun Apr 22, 2012 6:42 pm
Profile WWW

Joined: Nov 26, 2009
Posts: 1341
Location: Kalispell, MT
Post Re: Dialectic Indigo Script
To try simply I named it TV...but still no go.

see below.......

Thanks,

Carl


Attachments:
Picture 1.png
Picture 1.png [ 60.01 KiB | Viewed 509 times ]


Last edited by ckeyes888 on Sun Apr 22, 2012 7:05 pm, edited 1 time in total.

Sun Apr 22, 2012 6:43 pm
Profile

Joined: Nov 26, 2009
Posts: 1341
Location: Kalispell, MT
Post Re: Dialectic Indigo Script
This still isn't working:

tell application "IndigoServer" of machine "eppc://TV:xxx@192.168.1.80"
It returns "Unable to authenticate user."

What's odd is that I can send commands to a remote machine from the TV computer
that Indigo is running on using:

tell application "Finder" of machine "eppc://Carl-Mac-2.local:xxx@192.168.1.35" to open "Carl HD:Applications:HotTub:Flying.app"

Oddly, this does work:
tell application "Finder" of machine "eppc://TV.local:xxx@192.168.1.80" to open "Macintosh HD:Applications:CID Indigo:Indigo Test"



and a new screenshot showing the TV volume on the remote machine.

Thanks,

Carl


Attachments:
Picture 1.png
Picture 1.png [ 49.23 KiB | Viewed 507 times ]
Sun Apr 22, 2012 7:04 pm
Profile
Site Admin
User avatar

Joined: Mar 19, 2008
Posts: 8357
Location: Austin, Texas
Post Re: Dialectic Indigo Script
It's not the name of the machine, it's the user name that's logged in to that machine running the IndigoServer. You're messing with the machine name which is irrelevant in terms of login credentials.

For instance, the name of my development Mac is FatMac, the user account that I log in with is "jay", and my password is "notreallymypassword". Thisis what I'd use from another Mac on my network:

Code: Select all
eppc://jay:notreallymypassword@FatMac.local

_________________
Jay (Indigo Support)
Image


Sun Apr 22, 2012 9:25 pm
Profile WWW

Joined: Nov 26, 2009
Posts: 1341
Location: Kalispell, MT
Post Re: Dialectic Indigo Script
Here's a screenshot of the settings. It's TV for both computer account and user name.
Just won't work.

Thanks,

Carl


Attachments:
Picture 1.png
Picture 1.png [ 50.38 KiB | Viewed 488 times ]
Sun Apr 22, 2012 10:59 pm
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 31 posts ]  Go to page: 1, 2, 3  Next

Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.   Template designed by STSoftware.