I don't like widgets. They slow down your home screen when it's loading. Also, I've not seen a single widget that follows the Android guidelines properly, so your home screen looks like ar**. I will add one eventually. In the mean time, create a folder on your home screen, and add Llama shortcuts to it. The shortcuts can point to profiles, events or individual event actions.
Llama has support for the Minimalistic Text Widget. The custom text that Llama currently sends to it are:
- The names of the current areas, separated by commas
- The name of the current profile
You can use Llama's events to increase and decrease the frequency that Llama checks for nearby Wifi networks. First of all, learn all of the phone cells near your desired area. We'll use 'home' in this example. Then create an event defined as Enter home -> set Wifi Polling to 5 minutes, and another event defined as Leave home -> set Wifi Polling to Never. Now create another area called 'home (wifi)' and teach Llama which Wifi networks can be found at your home. Create any other events based on entering/leaving the 'home (wifi)' area.
What this does is teach Llama that there is a big area where your home is, and it should start checking to see if the smaller area that is your actual home is nearby. There is no point having Wifi polling turned on if you are on the subway or out of town, and those two rules make sure it's not being used.
Depending on what other events you have, you can of course go one better and say Enter home (wifi) -> Set Wifi Polling to never. This will stop checking for wifi networks if it's already seen that you are at home. However, if you have any leave home (wifi) events, they won't run.
Llama's events don't run with a priority. This is because events don't always do the same actions. e.g. Why should an event that turns my Bluetooth on in the morning override another event that switches to loud as I leave my home (coincidentally in the morning). Instead, you should make sure that your events are defined well enough so that they don't overlap. (One day I'd like to make a nice UI to show this, I just haven't figured out how yet.)
For example, you may have an event to set your phone to loud between 12pm and 2pm. You may have another event defined as a calendar event containing the phrase 'work lunch', which sets your phone to silent. If your work lunch starts at 11am, you phone will switch to silent, but it will then switch to loud at 12pm. To fix this scenario, modify the first event to: time between 12pm and 2pm, calendar does not contain an event named 'work lunch'.
Medium answer: yes, but it'll eat your battery. Long answer: Yes, but it'll eat your battery because GPS would have to be constantly on checking your speed. Unfortunately, GPS is the only way this could work, because cell mast locations aren't accurate enough to calculate your speed. Your phone jumps between cells quite frequently, which will give incorrect speeds because one moment you'll be on one side of your neighbourhood, then a few seconds later you'll be on the other side.
You may decide that when your phone is both charging and connected to speakers that it's in a "music-dock". Rather than littering all of your events with 'charger connected, headset connected', you could instead use a variable:
-charger connected, headset connected -> Set Llama variable: MusicDock = yep
-charger disconnected, headset disconnected -> Set Llama variable: MusicDock = no
You could then modify all your other events to not change profiles when in MusicDock. e.g.
-at home between 10pm and 6am, LlamaVariable MusicMode=no -> Change profile to Silent
That event will stop Llama changing to silent when it's in the "music-dock".
Wifi disconnected (any network) -> Delay for 1 minute and cancel if fase, Turn off wifi (if not connected)
Previous versions of Llama would have been done like this:
Wifi disconnected (any network) -> Turn on Wifi (for at least 1 minute)
adb shell am start -a com.kebab.Llama.RunShortcut -n 'com.kebab.Llama/com.kebab.Llama.LauncherShortcutRunnerActivity' -e LlamaType Event -e LlamaData EVENTNAME