After 2 years developing and improving Rules Engine I have created Automated Device for 4.0+ devices.
This program is rules engine that let your device behave automatically according to conditions and execute actions
Please submit any comment, error, suggestion here.
Android Market link
Direct link to APK
Automated Device is an application designed to let you automate the behaviour of your device. It is based in rules. The user can define many rules to define the device's state in different situations.
A rule is defined by:
Conditions: When every condition (AND clause) o at least one (OR clause) in a rule is satisfied then the rule is satisfied. Examples:
From Monday to Friday, between 12:00 and 05:00 (Time-Date condition)
To be inside (or outside) my home (Position condition)
Bluetooth state is ON (Hardware condition)
Battery level between 0% and 20%
Incoming phone call
Incoming SMS containing some word
Power state, battery or connected
Other rule is matched or not
Other program is running or not
Phone state (ringing...)
Calendar appointments. This condition is matched when current date is inside of the appointment and the appointment text contain a user defined word
Network type (GPRS, HSPA, CDMA, LTE, etc)
Device connectivity state
To be connected to a wifi network specified by its name
To receive a SMS/MMS comming from some phone number or with its text containing some word or phase
Proximity sensor level
Some phone number is calling you (ringin), or is in call with you, or just called you
Mobile operator name
Actions to be executed when the rule passes from unmached to matched: Actions to be executed when every condition is satisfied. Each one can be applied once or periodically while the rule is matched Examples:
Set Bluetooth OFF
Set device volume
Launch a program
Kill a program
Apply a profile. A profile is compound by actions. So when the rule applies a profile it simply execute its associated actions.
Set different kinds of sound levels (system, notification, alarms, etc)
Set Brightness mode (automatic / manual) and bright level
Set autosync state
Play a song
Send Email. You can include many variables, like free memory and disk, last caller, battery statistics, sensors values (pressure, light, temperature, etc)
Set ringtone (android ringtone or user mp3)
Screen off timeout
Play a system notification
Vibrate some milliseconds
Show popup message with free text and variables
Show a tob bar notification with free text and variables
Enable / Disable rules.
Sent variables (temperature, position, etc) to a web server as HTTP parameters
Open system dialogs, like 3G/2G, Tethering, etc
Actions to be executed when the rule passes from matched to unmatched. (The same ones like the above section)
The device broadcast many events, like battery level, time, etc. Those events are processed by Automated Device and the rules are evaluated.
Important: When a rule is applied then It wont be applied again until it doesn't satisfy it previously. For example, if a rule condition is "Battery level less than 15%" and the action is "Play a song" and current battery level is 10% then the song will play. But it wont play again until the rule wont be satisfied and then satisfied again. So if the battery level raises to 20% and then decreases again to 8% then it will play the song again. This avoid loops so a rule is executed many times.
SWITCHERS: This window lets you change the state of Wifi, Bluetooth, etc. It also lets you set a time-out. When the time expires the program will set the previous state. It also lets you "lock" a profile with/without time limit. For example, if you go the cinema you could lock the profile "Silent". When Automated Device is locked it wont execute any rule
PROFILES: A profile is a set of actions. This section lets you define and apply right now a profile. For example, you could create the profile "Meeting". Its actions would be speaker to vibrate, flight mode and send a SMS. The three actions would be applied. You could establish a timeout. During this time the program WONT apply any rule. In this way the program wont apply other rule that could change the speaker state, for example. Once the timer expires then the engine will be enabled again.
NEW PROFILE: This dialog lets you choose a name and description for the new profile.
ACTIONS: Here you can choose the set of actions associated to the profile.
RULES: In this windows you can manage your rules and create new ones. If the background of the rule is RED it means the rule isn't met right now. If the background is GREEN it means the rule is met right now.
RULE INFORMATION: This screen lets you manage the name and description and shows how many conditions and actions the rule has. It lets you set the priority of the rule. If two rules match at the same time then this priority will solve conflicts. For example, if both rules are going to change the audio state. It also lets you add/edit/remote more actions/conditions.
RULE CONDITIONS: This screen lets you add / remove / edit conditions. There are several types of conditions:
WEEK DAY AND TIME: You can select some weekdays and then a begin time and end time. For example, Monday and Tuesday from 22:00 to 06:00
ENTER/EXIT A PLACE: You must choose a location and a radius. So if you choose a "Enter a place condition" then the condition will be met if you are inside. If you choose "Exit a a place condition" then the condition will be met if you are outside.
STATUS CONDITIONS: There are many conditions related with some hardware status. For example, you could use WIFI ON. This condition is matched when the WIFI state is ON
LOG: This screen shows the application log. Each log line has a category: Debug, Info, Warning and Error. Here you know what happens inside the program. You can see a rules history. And you can clear it and export it by email.
SETTINGS: Hare you configure the program.
Launch at boot time: If selected the the program will be launched at boot time.
Log level. This options lets you choose what kind of log events you want to store.
Automated Device enabled. If disabled then It wont process events.
Show icon notificacion in the top bar.
EXPERIMENTAL: Location autorefresh interval. By default Android doesnt allow location changes when the screen is off. This option try to fix it.
Compatibility between accessibility service and OK Google
NFC tags can be detected with the program in background
Action HTTP Request uses GET instead of POST
New Variable. Last HTTP Status for action HTTP request
Flag feature action. Set value to a Variable value
Accessibility can be disabled
Condition NFC. Use your NFC tags as conditions
Option to disable Accessibility service
New action: Text speech. You can use free text and variables
New Flag: Last top bar notification text
New Condition: Detect a top bar notification. You can filter by program sender, text or none
With these features you can, for example, let AD read aloud the notifications coming from gmail, line, etc
New option in home windows: Export. It takes your rules and convert them into text to share it with developer and other users
Improved disable/enable lock screen
Improved Sound action: Added BT call sound
Vibrate if internal error is optional
Improved Variables: time, date and flag value
Improved Bar Notification action: persistent. You decide if the user can dismiss the notification with his finger
Improved set flag action: Persistent. Choose if the flag is removed when a rule is modified and all the rules are re-evaluated
Improved set flag action: Numeric operations: You can increment or decrement a flag (if numeric)
Improved flag condition: New comparators: bigger, bigger or equals, lower, lower or equals
Flight mode switcher, condition and action enabled. Only for rooted devices with Xposed and Flight mode helper
Option backup the database
Option restore the database from a previous version
So you can do a backup, play with new rules, conditions....and restore if you are not happy with the result
Support for xlarge screens
Improved action Show notification bar. The user can select a custom icon
New action: Dismiss a notification bar. So you can, for example, display a notification bar when a rule or profile is applied and remove it when it doesnt match
New action: set call forwarding status
New conditions: On booting and On shutting down
Switcher to enable/disable lock screen
New action: Enable / Disable lock screen
Improved location condition
New action: Set a flag value
New condition: check a flag value
See active flags from home window menu
New action: Send Android Intent
New action: Call forwarding (international)
Program status condition allows to search between all the processes or only the foreground ones
New Location system: Google play services.Check settings page
Added command in home window to recreate the database
Improved BT connected device. Now works with multiple devices at the same time
Added compatibility without telephony system, like tablets
New condition: Phone Signal Strength
New condition: Device orientation (facing up/down)
Periodic actions are executed in a background thread, solving problems related with network actions (send mail, http post)
New condition: Dock state
Actions execution delay now included in Action repeat window
Changed bar notification icon (white)
New Condition: Battery temperature
New condition: Lock screen state
Fixed send email action
Back button in home page hides the GUI
Menu button in home page shows menu drawer
Fix icon bar notification
Automated Device is ported to Android 4.x and named Automated Device to leverage android 4.x power
Fixed automated backup/restore data from/to google account