Developer: | Glenn's Plugins Like this plugin? Show your appreciation! |
Category: | Notification & Messaging |
Github: | Github Repo |
Assistance: | Get help! |
Plugin ID: | com.GlennNZ.indigoplugin.iMessage |
Latest release: | v0.7.27 released on Jan. 25, 2024 |
Requires: | Indigo v2023.2.0 or higher |
(Check the Releases tab below for older releases that may have different requirements) | |
Download latest release |
What it can do:
For Mojave will need to change System Permissions to access imsg database file
/Library/Application Support/Perceptive Automation/Indigo 7 (or 7.2)
IndigoPluginHost.app
IndigoServer.app
Both located there to drag and drop into Security & Privacy Full Disk Access
(sorry - don't believe any way around this - and probably needed for other plugins)
See here:
https://www.macworld.com/article/3311982/macs/the-difference-between-accessibility-and-full-disk-access.html
Felt best to use Indigo itself for actions with Triggers being the message itself - means very familiar
Create Separate Indigo Triggers for iMsg Plugin for each command want recognised
eg. this an Indigo Trigger
Type of trigger is IMessage Plugin Event, Command Received
Edit the command Received, then standard indigo conditions and actions performed.
Then can create any indigo action passed on the command received, including a iMsg reply to confirm.
eg. One Indigo Action from same Trigger
Example Commands (any text you wish can be a trigger) - All off - Gate Open - Lock House - Alarm on
Add Specific Buddy Command Trigger:
Multiple Buddies can be selected and will only trigger if Buddy selected
valid = {"yes": True, "y": True, "ye": True, 'yeah':True, 'ok':True, "no": False, "n": False, 'nope':False, 'never':False}
Sorry only english currently - but easy to add as many confirmation 'Oui' 'Non' that anyone needs down the track.
As a mechanism of controlling all indigo devices and requesting information with minimal setup I have turned to a free service wit.ai
The aim of this internet service is to process any text messages you might send and enable the Plugin to reply, recognising what you want to do but also which device to apply this to.
e.g Aiming to bring to life.. the following with minimal setup.
It also enables speech->text via audioMessage, and a few fun extras perhaps I got carried away with.
Basically Wit.ai - recognises message: intent, currently options: device_action, insult, yes_no_decision, joke, dim_set, temperature, advice & entities such as device_name (which is Indigo Device), plus others such as number/sentiment/on_off etc. This parsed result is sent back to the plugin to action. (very quickly)
So if message is sent 'Please Indigo could you be a dear and turn on the living room light?'
The (Plugin after suitable wit.ai training/samples) should recognise intent: device_action, device_name:'Living Room light', and on_off = on
The plugin parses the reply and then Turns on living room light for example.
Within Wit.ai you can train any sentence structure to the correct intent and result. The aim is for the plugin to probably do this at Wit.ai app creation which is what currently happens, obviously others may speak in a different manner. :roll: and I can add any samples/sentence structures wished.
Consider this beta - BUT if disable wit.ai in PluginConfig - rest of plugin unchanged and none of this is run
Need your own Wit.Ai API Key (free) We each need our own as our devices are named something different So while the NLP logic may be the same the devices referred to will be different.
https://wit.ai
2/ Next Go to the already existing App called 'MyFirstApp' - Go to Settings, top Right - Find the 'Server Access Token' and copy this in the PluginConfig
Enable Use Wit.Ai Processing to use this service for processing of Messages received.
Checkbox:
This is performed via the individual Device Notes: On the first line of the notes (the other lines are ignored) a :
witai|Pool|Pool Temp|Pool Temperature
eg.
Okay:
So ideally - give you funny named devices some better names, mark those you want to send, or send all
This will send a whole lot of text based data to Wit.ai naming devices, and setting up you wit.ai device which the plugin uses You can access this online at wit.ai if needed but really only for finetuning.
This will take a while as can only send a few devices/samples at once; so will take at least 5 if not 10 minutes to be done. Once finished also takes a while at Wit.Ai end as well - before everything is recognised probably - probably at least 1/2 hou
If any issues or want to resend different devices following some playing - press the delete wit.ai App button and then recreate after a short pause.
Following this - You should be able to 'turn on INDIGODEVICE', 'turn off INDIGODEVICE', 'set INDIGODEVICE brightness to 50%', - 'What is the Temperature of INDIGODEVICE', - 'Tell me a joke' - 'What is IFRIENDEVICE location' - amongst others
I have also added AudioMessage Uploading - which works okay within limits of speech recognition. From within iMSG press and hole down microphone - say command and viola!
Changes to PluginConfig - hide the scary wit.ai stuff if not using Allow Wit.ai device to be updated with app - update button Update Images Documentation
Add Specific Buddy Command Received Trigger:
Potential bug fix as will Continue checking triggers even if one is triggered (might be multiple triggers same)
. . . . . . . . . . . . . . . . .
imessageID = 'com.GlennNZ.indigoplugin.iMessage'
imsgPlugin = indigo.server.getPlugin(imessageID)
imsgPlugin.executeAction('sendQuestion', props={'message':'The question you wish to ask', 'buddyId':'example@email.com', 'lastBuddy':False, 'timeout':600,'confirmedimsg':'All done.','actiongroup':ActionGroupIDtoRunwhenConfirmed})
return;
Props to send: - message: the question to ask - buddyId: the buddy handle - lastBuddy: just the last buddy msg received from - timeout : timeout in seconds - confirmedimsg: message if confirmation is received - actiongroup: the ID number of the action group to run if confirmed.
Here is an example script that list devices on (via allowed list, and notallowed list), saves this list to a variable and then sends message listing devices on, via the plugin waits for confirmation, before running the confirmation AG to turn off all listed in variable.
on_name = []
on_id = []
def AskQuestionGlenn(question, AGtoRun, replyifsuccess) :
imessageID = 'com.GlennNZ.indigoplugin.iMessage'
imsgPlugin = indigo.server.getPlugin(imessageID)
imsgPlugin.executeAction('sendQuestion', props={'message':question, 'buddyId':'example@.com', 'lastBuddy':False, 'timeout':600,'confirmedimsg':replyifsuccess,'actiongroup':AGtoRun})
return;
def CheckModulesRunning() :
acceptable_modules = ["Smart Switch (DSC24)","RGBW LED Bulb (ZW098)","Smart Energy Switch (DSC24-2E)","Dimmer Switch (FGD211)","Smart Energy Illuminator (DSC08101)", "Relay Power Switch","Smart Energy Switch (DSC06106)", "Double Relay Switch (FGS221)", "Hue Bulb (Original, Downlight, Spotlight, LightStrip Plus)" ]
notallowedid = [1049034630, 879903489, 1732408457, 1618015973,1595081762,660021281,1509636685,90390894,1047676499,614856779,1373207126,1332040796,1797065670]
dev_list = indigo.devices.iter()
for x in dev_list:
if hasattr(x, "displayStateValRaw") and x.displayStateValRaw not in ["off", 0] and x.model in acceptable_modules and x.id not in notallowedid :
on_name.append(x.name)
on_id.append(x.id)
return;
CheckModulesRunning();
numberon = len(on_id)
if numberon == 0 :
indigo.server.log("Checking Running devices - None found on.")
if numberon > 0 :
indigo.server.log("Checking Running devices - Modules running - iMsg sent")
Question = "Attention\n I have noticed that you are both away and \nThe following lights/devices are on \n"
ListModules = " , ".join(on_name)
idsoff = indigo.variables[1410863016] # "MsgOnDevices"
indigo.variable.updateValue(idsoff, unicode(on_id))
Statement = Question + ListModules + "\n Would you like me to turn them off?"
AskQuestionGlenn(Statement, 95680424, "They have all been turned off");
and for completeness here is the Action Group that is called when above is run
onid = indigo.variables[1410863016] # "MsgOnDevices"
onidstring = onid.value
onidstring = onidstring.replace("[","")
onidstring = onidstring.replace("]","") # Covert indigo string variable back to list
onidstring = onidstring.replace(" ","")
if len(onidstring) > 1:
onidlist = onidstring.split(",")
else:
onidlist = onidstring
if len(onidlist) >= 1 :
indigo.server.log("iMsg: Turning off All Devices ")
indigo.server.log(unicode(onidstring))
for i in range(len(onidlist)):
indigo.device.turnOff(int(onidlist[i]))
elif len(onidlist) < 1 :
indigo.server.log("iMsg: No Devices On ")
Released on: | Jan. 25, 2024 |
Requires: | Indigo v2023.2.0+ |
Download this release |
Indigo 2023.2. API 3.4 Only
Let Indigo manage aiohttp dependency and install as needed
Add increase error logging if incorrect buddy handle message fails to go (as per issue https://github.com/Ghawken/iMessagePlugin/issues/14)
Harden up runConcurrentThread with try/except block Stop plugin if sql connection fails Change error messaging
Add requirements for Indigo API 3.4 Library install
Add error checking for missing Library
Dont reload model api call
Allow curly brackets { in reply
With Sonoma apple decided the iMsg database would store the message data in a Apple NSString Archived object. Taking up oodles more room. It appears the plain text is quickly converted and then becomes NULL. Update plugin to decode message.attributedbody using typedstream and decoded contents of NSString formatting.
Released on: | Jan. 17, 2024 |
Requires: | Indigo v2023.2.0+ |
Download this release |
Indigo 2023.2. API 3.4 Only
Let Indigo manage aiohttp dependency and install as needed
Add increase error logging if incorrect buddy handle message fails to go (as per issue https://github.com/Ghawken/iMessagePlugin/issues/14)
Add requirements for Indigo API 3.4 Library install
Add error checking for missing Library
Dont reload model api call
Allow curly brackets { in reply
With Sonoma apple decided the iMsg database would store the message data in a Apple NSString Archived object. Taking up oodles more room. It appears the plain text is quickly converted and then becomes NULL. Update plugin to decode message.attributedbody using typedstream and decoded contents of NSString formatting.
Released on: | Nov. 18, 2023 |
Requires: | Indigo v2022.1.0+ |
Download this release |
Compatibility fix for Sonoma and likely Ventura.
Apple it is wisdom moved message.text to NULL and instead converted it to a NSString object without a Apple Archived object within the SQL Database. This version checks for > Ventura and decodes the message back to text for processing once again. Working well on Sonoma for me currently.
Also adds: 0.6 - 0.7.12 changes:
Essentially adding support for Chat-GPT, not for device control (although new chatGPT features does make that possible), rather for chat completion, advice, etc.
0.7.10 Move model to gpt-3.5-16k Increase token count to 8000 TODO user selectable both above when time
0.7.9 Model back to gpt-3.5 & remove some while loops trying to track down occasional 'hang' - [Fixed it would seem]
0.7.8 Change model to gpt-4 when rolls out for all.
0.7.7 Update openai library to 0.27.4
0.7.6 Add chatGPT only Buddy - these individuals can only converse with chatGPT. They won't have any trigger or command options If device control enabled will allow device Control, but increasingly not sure this is a great idea for this plugin
0.7.5 Handle and specifically message regarding timeout, ratelimt openai errors
0.7.4 OpenAI reports that the system prompt is largely ignored with user prompt having more 'attention' Because of this duplicate some setup into a new user prompt
0.7.3 Fix for debugextra logging string conversion issue (also in 0.7.2) Better checking for token usage and deletion of prompts before gets to limit
Add 2nd Pluginconfig Personal info: Aim of this is to educate chatGPT as to who the various users/buddies are.
Should be Buddy Handle followed by | and then description written in first person. buddyhandle|I am user Glenn.I am.. |buddyhandle2|I am user Glenns co-worker.
Probably would better be a setup file, as really need to type somewhere else and paste in...
Fix for quotes
Add support for ChatGPT 3.5 turbo API usage.(Beta) This can be used to control indigo devices (so marked for control), like wit.ai - however it probably needs a bit of maturing before that works 100%
Currently though the chatbot, chat, information, advice function via chatGPT works very well and enables easy access to chatGPT replies for whatever usage. Like chatGPT warning - accuracy here depends on the subject, but for natural language processing it is great.
Released on: | May 16, 2022 |
Requires: | Indigo v2022.1.0+ |
Download this release |
Python 3 Release for Indigo 2022.1 Compatibility fixes for wit.ai (if anyone using!)
Released on: | Nov. 16, 2020 |
Requires: | Indigo v7.0.2 thru v2022.2 |
Download this release |
0.4.7
Changelog:
0.4.7 Add compatibility for Big Sur released. Backward compatibility mainatined.
Still needs Full disk access & potentially Matts fix here for error 'Error "Not authorized to send Apple events to Messages"' https://forums.indigodomo.com/viewtopic.php?f=297&t=23619#p189420 - Involves creating a script file targetting Message App, save and then run from within Indigo - OSX should prompt a window 'allow access' click yes, and plugin send messages should now also work, forever more
0.4.6 Returns Variable of AudioFile received as *.caf file
0,4,5
Bug fix didn’t correctly check plugin Config setting save variable
0.4.4
Add AudioPath Variable - Converts messenger CAF file to Mp3 [presume caf file not that much use] - Saves path to converted file in variable [if save variables selected in main PluginConfig]
Add PluginConfig setting to save incoming messages to Indigo Variable - variable named after buddy handle NB: Will save all messages, commands, garbage, etc. whatever received.
Released on: | Feb. 9, 2019 |
Requires: | Indigo v7.0.2 thru v2022.2 |
Download this release |
Changelog:
Remove update code in time for Indigo 7.3
Fix to make plugin compatible with Mac OSX Sierra and below given change in Apple Datetimes, that occured with High Sierra. (Sierra and below will likely also need permissions given to Library Folder ~/Library/Messages)
Released on: | Jan. 21, 2019 |
Requires: | Indigo v7.0.2 thru v2022.2 |
Download this release |
Changelog:
Fix to make plugin compatible with Mac OSX Sierra and below given change in Apple Datetimes, that occured with High Sierra. (Sierra and below will likely also need permissions given to Library Folder ~/Library/Messages)
Released on: | Dec. 14, 2018 |
Requires: | Indigo v7.0.2 thru v2022.2 |
Download this release |
Updates to Plugin Config to show current status of requests/Updates/Delete/Generate Correctly shows new App Access_token/App_ID Some bug fixes to deal with app creation errors Rename Wit.Ai App to username+Indigo-iMessage (to allow multiple wit.ai apps for multiple Indigo installs, with one wit.ai access code only) (side-effect - makes development easier!) As Plugin accesses app via Access_code only and not name, new name will only happen with deletion/creation of current app. 0.4.0 - Bug fix for this. Log Current Status in Menu - updates - useful for bug checking Beta: Device_Status intent - can ask "What is the status of {device_name}?" Automatically Updates wit.ai App when new version Plugin Installed
Released on: | Dec. 10, 2018 |
Requires: | Indigo v7.0.2 thru v2022.2 |
Download this release |
Changelog:
eg. If checkbox enabled for particularly trigger
'who is home' will be triggered anytime - that text is within sentence sent from 'who is home' to 'Indigo please inform me who is home'
Released on: | Dec. 9, 2018 |
Requires: | Indigo v7.0.2 thru v2022.2 |
Download this release |
Changelog:
As a mechanism of controlling all indigo devices and requesting information with minimal setup I have turned to a free service wit.ai
Released on: | Nov. 15, 2018 |
Requires: | Indigo v7.0.2 thru v2022.2 |
Download this release |
As a mechanism of controlling all indigo devices and requesting information with minimal setup I have turned to a free service wit.ai
The aim of this internet service is to process any text messages you might send and enable the Plugin to reply, recognising what you want to do but also which device to apply this to.
e.g Aiming to bring to life.. the following with minimal setup.
It also enables speech->text via audioMessage, and a few fun extras perhaps I got carried away with.
Basically Wit.ai - recognises message: intent, currently options: device_action, insult, yes_no_decision, joke, dim_set, temperature, advice & entities such as device_name (which is Indigo Device), plus others such as number/sentiment/on_off etc. This parsed result is sent back to the plugin to action. (very quickly)
So if message is sent 'Please Indigo could you be a dear and turn on the living room light?'
The (Plugin after suitable wit.ai training/samples) should recognise intent: device_action, device_name:'Living Room light', and on_off = on
The plugin parses the reply and then Turns on living room light for example.
Within Wit.ai you can train any sentence structure to the correct intent and result. The aim is for the plugin to probably do this at Wit.ai app creation which is what currently happens, obviously others may speak in a different manner. :roll: and I can add any samples/sentence structures wished.
Consider this beta - BUT if disable wit.ai in PluginConfig - rest of plugin unchanged and none of this is run
Need your own Wit.Ai API Key (free) We each need our own as our devices are named something different So while the NLP logic may be the same the devices referred to will be different.
https://wit.ai
2/ Next Go to the already existing App called 'MyFirstApp' - Go to Settings, top Right - Find the 'Server Access Token' and copy this in the PluginConfig
Enable Use Wit.Ai Processing to use this service for processing of Messages received.
Checkbox:
This is performed via the individual Device Notes: On the first line of the notes (the other lines are ignored) a :
witai|Pool|Pool Temp|Pool Temperature
eg.
Okay:
So ideally - give you funny named devices some better names, mark those you want to send, or send all
This will send a whole lot of text based data to Wit.ai naming devices, and setting up you wit.ai device which the plugin uses You can access this online at wit.ai if needed but really only for finetuning.
This will take a while as can only send a few devices/samples at once; so will take at least 5 if not 10 minutes to be done. Once finished also takes a while at Wit.Ai end as well - before everything is recognised probably - probably at least 1/2 hour
If any issues or want to resend different devices following some playing - press the delete wit.ai App button and then recreate after a short pause.
Following this - You should be able to 'turn on INDIGODEVICE', 'turn off INDIGODEVICE', 'set INDIGODEVICE brightness to 50%', - 'What is the Temperature of INDIGODEVICE', - 'Tell me a joke' - 'What is IFRIENDEVICE location' - amongst others
I have also added AudioMessage Uploading - which works okay within limits of speech recognition. From within iMSG press and hole down microphone - say command and viola!
Bug fix for SpecificBuddy Command Add update code check for first run of new version
Changes to PluginConfig - hide the scary wit.ai stuff if not using Allow Wit.ai device to be updated with app - update button Update Images Documentation
Add Specific Buddy Command Received Trigger:
Potential bug fix as will Continue checking triggers even if one is triggered (might be multiple triggers same)
Released on: | Nov. 12, 2018 |
Requires: | Indigo v7.0.2 thru v2022.2 |
Download this release |
Bug fix of hidden Buddy List
Released on: | Nov. 7, 2018 |
Requires: | Indigo v7.0.2 thru v2022.2 |
Download this release |
Add debugexceptions option - to also show exception message if errors Some log changing Add menu item - Log Status - to show plugin status in case of error
Add PluginStore Update Checking (via github) Enable UpdateChecking code Add Catch for Full Disk Access issues with error message directing to RTM :)
Released on: | Nov. 6, 2018 |
Requires: | Indigo v7.0.2 thru v2022.2 |
Download this release |
Released on: | Nov. 5, 2018 |
Requires: | Indigo v7.0.2 thru v2022.2 |
Download this release |
Changes: - Major change to parsing of received messages - better support for multiple incoming messages from multiple buddies at same time. (Multiples streams of conversation) - Correctly ignores duplicate messages - Multiple messaging buddies occuring at same time dealt with correctly - Confirmation Question replies Y/N etc. can occur after other messages sent, provided within timeout set eg. after question received, can send other iMsg commands, get more information before replying Yes/No equivalent
Released on: | Nov. 1, 2018 |
Requires: | Indigo v7.0.2 thru v2022.2 |
Download this release |
Changes:
Released on: | Nov. 1, 2018 |
Requires: | Indigo v7.0.2 thru v2022.2 |
Download this release |
Changes:
Politer error reporting if buddy information or file information is incorrect.
Released on: | Oct. 31, 2018 |
Requires: | Indigo v7.0.2 thru v2022.2 |
Download this release |
What it can do:
For Mojave will need to change System Permissions to access imsg database file
(sorry - don't believe any way around this - and probably needed for other plugins)
See here:
https://www.macworld.com/article/3311982/macs/the-difference-between-accessibility-and-full-disk-access.html
Felt best to use Indigo itself for actions with Triggers being the message itself - means very familiar
Create Separate Indigo Triggers for iMsg Plugin for each command want recognised
eg. this an Indigo Trigger
Type of trigger is IMessage Plugin Event, Command Received
Edit the command Received, then standard indigo conditions and actions performed.
Then can create any indigo action passed on the command received, including a iMsg reply to confirm.
eg. One Indigo Action from same Trigger
Example Commands (any text you wish can be a trigger) - All off - Gate Open - Lock House - Alarm on
valid = {"yes": True, "y": True, "ye": True, 'yeah':True, 'ok':True, "no": False, "n": False, 'nope':False, 'never':False}
Sorry only english currently - but easy to add as many confirmation 'Oui' 'Non' that anyone needs down the track.
imessageID = 'com.GlennNZ.indigoplugin.iMessage'
imsgPlugin = indigo.server.getPlugin(imessageID)
imsgPlugin.executeAction('sendQuestion', props={'message':'The question you wish to ask', 'buddyId':'example@email.com', 'lastBuddy':False, 'timeout':600,'confirmedimsg':'All done.','actiongroup':ActionGroupIDtoRunwhenConfirmed})
return;
Props to send: - message: the question to ask - buddyId: the buddy handle - lastBuddy: just the last buddy msg received from - timeout : timeout in seconds - confirmedimsg: message if confirmation is received - actiongroup: the ID number of the action group to run if confirmed.
Here is an example script that list devices on (via allowed list, and notallowed list), saves this list to a variable and then sends message listing devices on, via the plugin waits for confirmation, before running the confirmation AG to turn off all listed in variable.
on_name = []
on_id = []
def AskQuestionGlenn(question, AGtoRun, replyifsuccess) :
imessageID = 'com.GlennNZ.indigoplugin.iMessage'
imsgPlugin = indigo.server.getPlugin(imessageID)
imsgPlugin.executeAction('sendQuestion', props={'message':question, 'buddyId':'example@.com', 'lastBuddy':False, 'timeout':600,'confirmedimsg':replyifsuccess,'actiongroup':AGtoRun})
return;
def CheckModulesRunning() :
acceptable_modules = ["Smart Switch (DSC24)","RGBW LED Bulb (ZW098)","Smart Energy Switch (DSC24-2E)","Dimmer Switch (FGD211)","Smart Energy Illuminator (DSC08101)", "Relay Power Switch","Smart Energy Switch (DSC06106)", "Double Relay Switch (FGS221)", "Hue Bulb (Original, Downlight, Spotlight, LightStrip Plus)" ]
notallowedid = [1049034630, 879903489, 1732408457, 1618015973,1595081762,660021281,1509636685,90390894,1047676499,614856779,1373207126,1332040796,1797065670]
dev_list = indigo.devices.iter()
for x in dev_list:
if hasattr(x, "displayStateValRaw") and x.displayStateValRaw not in ["off", 0] and x.model in acceptable_modules and x.id not in notallowedid :
on_name.append(x.name)
on_id.append(x.id)
return;
CheckModulesRunning();
numberon = len(on_id)
if numberon == 0 :
indigo.server.log("Checking Running devices - None found on.")
if numberon > 0 :
indigo.server.log("Checking Running devices - Modules running - iMsg sent")
Question = "Attention\n I have noticed that you are both away and \nThe following lights/devices are on \n"
ListModules = " , ".join(on_name)
idsoff = indigo.variables[1410863016] # "MsgOnDevices"
indigo.variable.updateValue(idsoff, unicode(on_id))
Statement = Question + ListModules + "\n Would you like me to turn them off?"
AskQuestionGlenn(Statement, 95680424, "They have all been turned off");
and for completeness here is the Action Group that is called when above is run
onid = indigo.variables[1410863016] # "MsgOnDevices"
onidstring = onid.value
onidstring = onidstring.replace("[","")
onidstring = onidstring.replace("]","") # Covert indigo string variable back to list
onidstring = onidstring.replace(" ","")
if len(onidstring) > 1:
onidlist = onidstring.split(",")
else:
onidlist = onidstring
if len(onidlist) >= 1 :
indigo.server.log("iMsg: Turning off All Devices ")
indigo.server.log(unicode(onidstring))
for i in range(len(onidlist)):
indigo.device.turnOff(int(onidlist[i]))
elif len(onidlist) < 1 :
indigo.server.log("iMsg: No Devices On ")
Released on: | Oct. 29, 2018 |
Requires: | Indigo v7.0.2 thru v2022.2 |
Download this release |
Action added - ask imsg Question.
Select - BuddyHandle or last Buddy Message/Question to Send Timeout for reply in seconds Action Group to run if confirmed Confirmation Message to send if confirmed/when AG run
Only one question, per buddy at a time [can have multiple buddy questions though]
If no confirmation from Buddy other messages will continue to be parsed.
eg.
Can ask question "Shall I turn all lights off?" Timeout for 5 minutes Buddy - can send other commands - Gate etc. which are run If No/Yes/Y/N/Nope/Yeah/ye send (anycase) will terminate that current Question for that Buddy
Released on: | Oct. 28, 2018 |
Requires: | Indigo v7.0.2 thru v2022.2 |
Download this release |
Parse and send iMsg Works with Mojave Beta currently Will need to change System Permissions to access imsg database file
Mojave tested Indigo 7.2 Signed into iMsg with ideally separate indigo account Will very likely need to give Indigo and IndigoPluginHost.app and IndigoServer.app Full Disk Access in the Security and Privacy settings (sorry - don't believe any way around this)
Connects to chat.db via sql and parse messages received Checks every few seconds - so far no problems in my testing Need to set allowed Buddies in Plugin Config No devices needed.
Enables you to recognise any iMsg received from Buddy as something to act on No formatting of message Just simple whole text recognisation Felt best to use Indigo itself for actions with Triggers
Create Separate Triggers for iMsg Plugin for each command want recognised
Edit the Command Received Then can create any indigo action passed on the command recevied. eg. All off Gate Open Lock House Alarm on
Allow to send imsg text to any buddy you know Tick box - to send reply to last buddy received message from enabling ongoing discussion Allows variable and device state substitution
send iMsgFile - sends file/image/animated gif to buddy (again has tickbox for last buddy)