error on line 1
phone automation

since kebabapps pulled my beloved automation-app llama from the play store i had to find an alternative.
llamalab (coincidence or my bias?) automate provides a decent functionality and a community with a lot prebuilt algorithms. going pro is well spent.
it is another kind of programming with careful planning of data structures and algorithms.

warning: debugging is messy, editing and rearranging on mobile for bigger flows is cumbersome. but in the end you'll always wonder what you could automate next.




automate at the play store
a daily routine bluetooth handler

no pro required
switches bluetooth state depending on power supply.
turns bluetooth on in the morning and afternoon on workdays for a limited time frame to establish connection e.g. to car. customize to your needs.
checks every 15 minutes if to keep bluetooth enabled.
saves battery life by limiting bluetooth to certain situations only.
consists of 15, hopefully clearly arranged blocks




to flow
a simple car connectivity handler

no pro required
autoplay music on bluetooth connection to car device. saves and reapplies volume before and after connection while using default volume on connection.
if connected to car and being charged car mode will be activated. (manual deactivation though)
sends message to beloved one on returing home in the afternoon. this if connected to bt, within certain time frame and not being near home. accoustic confirmation for sent sms.
music app set to sony currently. set these up, as well as bluetooth device and number of message recipient. consider automatizing bt enabling as well e.g. with 'a daily routine bluetooth handler'.
consists of 13, hopefully clearly arranged blocks




to flow
a simple cell based wifi handler

no pro required
saves battery life by enabling wifi on special occasions.
checks every 15 minutes whether to switch wifi on or off depending on cell tower based location; if not already connected.
displays connection to known locations in status bar.
add/customize more locations/display variables within the flows location block to the right of the main procedure
- customize home,
- add work and/or
- friends to the preceding no-wire
add the display variable and connect the outcome just to true and false.
goto blocks for easier scalability.
consists of 18+, hopefully clearly arranged blocks




to flow
a universal car connectivity handler

pro required. can recommend.
no customization within flow necessary. so best to use if you have to set up electronica for your family during the holidays.
autoplay music on bluetooth connection to car device. saves and reapplies volume before and after connection while using a default volume on connection.
if connected to car and being charged car mode will be activated. (manual deactivation though)
option to send message to beloved one if connecting to bt.
define home, applicable weekdays and timeframe to having the sms sent on returning home only. accoustic confirmation for sent sms. carrier fees may apply.
you will be guided through the setup process. settings will be saved in atomic storage and lost if the flow is changed. on every start of the flow you can decide whether to proceed with, or change the stored settings. on the end of the setup there is a chance of copying the data as json.
there is also an expert setup where a json-object can be inserted directly.
consider automatizing bt enabling as well e.g. with 'a daily routine bluetooth handler'.
consists of 56, hopefully clearly arranged blocks of
- setup
- processing values for display
- connection handling
mildly interesting fact: 77% of the blocks are for the setup. 23% of the blocks perform the task with provided values that could as well be set hard.




to flow
a trainable cell based wifi handler <= android 9

pro required. can recommend.
no customization within flow necessary. so best to use if you have to set up electronica for your family during the holidays.
note that wifi-set-state does not work on android 10+, so unfortunately this just works for older phones.
saves battery life and data plan by automatically enabling wifi at trained locations. and not using gps.
checks in a customizable interval whether to switch wifi on or off depending on cell tower based location; if not already connected.
displays in status bar if a known location is recognized.
if no connection is established albeit being at a known location, wifi turns off and tries again after the interval (e. g. out of reach if your home wifi on the other side of your village).
with manual connection to a wifi network the user can decide to add the location. all found cell towers will be considered. the set of cells can be trained manually any time; it will not be added automatically while connected to not expand locations over time like past versions.
the concept of using cell tower approximation may lead to fuzzy results and depends on signal strength, but is considered more energy efficient than enabling gps. it detects rather villages or districts than streets, let alone addresses. this might lead to unexpected results in rural areas but the flow will still save energy by disabling wifi for the interval without connection.
input timeout might not take effect properly while device is inactive, but responded reasonable on activation during tests. otherwise a decline of request simply restarts the loop.
settings are saved in atomic storage as long as the flow is unchanged. interval is 15 minutes by default. to reset the monitoring interval restart the flow. saved locations will not necessarily be affected since these are now stored in a json-file within the local documents folder - persistent and maybe for use by different flows, with non persistent (on editing flow) atomic storage as a fallback.
this flow does not have the necessity for editing, providing a guided user input. if you want to edit defaults though, you find dedicated variables declared on the beginning.
consists of 47, hopefully clearly arranged blocks grouped by
- start with default variables
- interval reentry and wifi methods
- storage processin
- notification display and deletion
- learning module




to flow
a reddit media sideloader

no pro required.
sometimes it is not easy to download videos or gifs from the reddit app. this flow displays the fallback video. all you have to do is to copy the posts url from the share menu to the clipboard and start the flow. the video will load alone and can be stored on your device.
the flow can be passed a payload["clipboard"] by another flow (e. g.. alternative launch).
it happens occasionally for some reason this still is empty but usually still works from automate app directly. you'll be prompted for that.




to flow
an actually useful bixby button

by using the "when alternative launch"-block "automate flow" appears like an app and can be selected being started by pressing the bixby-button (once or twice according to your settings).
you can select from all flows that contain the "alternative launch"-block but you can choose to start one by default.
anyway...
this flow is initially set up with a dictionary of your favourite app-packages, files or flows uri and their to-be-displayed name and you can select it after pressing the button. this selection might be tidier that the flow-select-block as you preselect useful flows from your library, even without "alternative launch"-block. for example use your small flows like setting toggles or whatever. plus you can add files and apps making this flow some kind of a quickstart option for the most used tasks.
because of expectable permission issues files will be copied to a temporary directory that will be cleared on every loop.
this flow provides the blocks to handle supported types - not connected, just to choose and copy values to the list.
inspired by https://llamalab.com/automate/community/flows/34682 to take advantage of the bixby button.




to flow
a cell based location api

this flow serves as a module that handles the persistent storage management of cell-based location profiles.
it can be called with a payload dictionary
{"action": ACTION, "location": LOCATION}

it handles the actions
- GET
- PUT
- DELETE
where PUT and DELETE require LOCATION.

the api reads or modifies a local and exportable json-file with location names as keys and arrays of cell tower ids as values.
GET iterates through the imported object and returns the location that contains found cell towers or null.
PUT sets or updates the array of cell towers on the given LOCATION and returns the initial location.
DELETE removes LOCATION from the json-file and always returns null.
return happens as a broadcast.

to integrate this api into another flow use the "start flow"-block passing the respective payload with action and location, and receive the broadcast returning the dictionary {"location": CURRENTLOCATION}. set the awaiting action to "automate.myflow.intent.action.LOCATION_API" and assign the variable name to the dictionary with broadcast extras, e.g. result having result["location"].

set up the storage file once in the second block. make sure the calling flow is able to handle occasionally null-returns. decisions what to do also belong there.




to flow
an unintrusive recurring reminder

get unintrusive recurring reminders on set weekdays and times. currently the message is spoken but you can replace it with a toast message as well (most lower right block). reminders will be stored atomic in case of reboots. every reminder forks a fiber so whether you need pro depends on how many alarms you set up. i'd be happy for feedback to achieve this more easily.
initial setup depends on existing reminders. on restart with stored items you have the options to add, view and unset current settings. same reminders (days and time) will be just overwritten.
default message is set within the setup variable and will be taken if somehow no other message is provided.
initially intended to warn the kids about approaching the daily end of wifi-time to tell current chat-partners goodbye.
28 hopefully well arranged blocks grouped into a left setup column, top right inspect block and lower right execution block.
the possibly obfuscated variable setting at least allows this flow being used by non pro users as well.




to flow