Page 1 of 3
Dialectic Indigo Script
Posted:
Fri Apr 20, 2012 11:03 am
by ckeyes888
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
Re: Dialectic Indigo Script
Posted:
Fri Apr 20, 2012 11:14 am
by jay (support)
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.
Re: Dialectic Indigo Script
Posted:
Fri Apr 20, 2012 12:13 pm
by ckeyes888
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.
Re: Dialectic Indigo Script
Posted:
Fri Apr 20, 2012 1:09 pm
by ckeyes888
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
Re: Dialectic Indigo Script
Posted:
Fri Apr 20, 2012 3:04 pm
by jay (support)
Looks right to me.
Re: Dialectic Indigo Script
Posted:
Sun Apr 22, 2012 1:11 pm
by ckeyes888
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
Re: Dialectic Indigo Script
Posted:
Sun Apr 22, 2012 1:21 pm
by matt (support)
You have to specify the username and password like:
- Code: Select all
eppc://user:password@remotemachinename.local
Re: Dialectic Indigo Script
Posted:
Sun Apr 22, 2012 3:39 pm
by ckeyes888
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
Re: Dialectic Indigo Script
Posted:
Sun Apr 22, 2012 4:09 pm
by matt (support)
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"
Re: Dialectic Indigo Script
Posted:
Sun Apr 22, 2012 5:58 pm
by ckeyes888
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
Re: Dialectic Indigo Script
Posted:
Sun Apr 22, 2012 6:42 pm
by jay (support)
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...
Re: Dialectic Indigo Script
Posted:
Sun Apr 22, 2012 6:43 pm
by ckeyes888
To try simply I named it TV...but still no go.
see below.......
Thanks,
Carl
Re: Dialectic Indigo Script
Posted:
Sun Apr 22, 2012 7:04 pm
by ckeyes888
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
Re: Dialectic Indigo Script
Posted:
Sun Apr 22, 2012 9:25 pm
by jay (support)
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
Re: Dialectic Indigo Script
Posted:
Sun Apr 22, 2012 10:59 pm
by ckeyes888
Here's a screenshot of the settings. It's TV for both computer account and user name.
Just won't work.
Thanks,
Carl