Automatizált parkolás lokáció alapon

Figyelem! Ez a bejegyzés már több mint 1 éves, tartalma elavult lehet!

Még az Agyvihar podcast 15. epizódjában beszéltünk arról, miként automatizáltam a telefonomon a mobil parkolás elindítását. Aztán a 16. epizódban kiderült, hogy kicsit ágyúval lőttem verébre, de nézzük is, miről van szó.

A Workflow app

Sokak várták már és végre megérkezett a Worflow nevű alkalmazás iOS-re, mely az OS X Automator szolgáltatásához hasonlít (amivel a pdf-ek mp3-má történő felolvasós átalakítását is végzem), csak a kvázi scripteket a mobiltelefonon futtatja.

Sokak kreativitását megmozgatta ez az alkalmazás és jobbnál jobb “workflow”-k jelennek meg, természetesen a haszontalan “osszuk meg a képet instagramon” jellegűek mellett.

Éppen ezért nagy kihívás volt számomra valami igazán hasznosra használni ezt az alkalmazást, amiben amúgy továbbra is nagy jövőt látok. Elkezdtem átgondolni, hogy melyek azok a folyamatok, melyeket tudnék az iOS munkafolyamatomban automatizálni. Nem könnyű, illetve ilyenkor jön rá az ember, hogy mennyire is “pótcselekvésekre” használja a mini-számítógépet, amit naponta a kezében tart.

Launch Center Pro app

A Launch Center Pro (LCP), ahogyan a neve is utal rá, egy launcher alkalmazás, melyhez szintén kell egy kis kreativitás, hogy igazán hasznossá tegyük. Részletes ismertetésbe itt sem mennék bele, sok mindent tud, amit a Workflow nem, viszont sok mindent nem tud, amit a Workflow igen. Így adódott a lehetőség, hozzuk össze a kettőt.

A parkolás problémája

Mivel négy megyében dolgozom és a kórházak előtti utcák általában fizető parkolóhelyek, napi szinten kell használnom a mobilparkolást. Szerencsére egyre több hely került bele a szolgáltatási körbe, így gyakorlatilag minden “munkahelyem” esetére meg tudom csinálni az automatizálást.

Workflow STOPDe miről is van szó pontosan? Egy parkolási zónába érkezve gyakran elfeljtettem, hogy ott pontosan melyik telefonszámra is kell az sms-t küldeni. Oké, a fizetőautomatákon rajta van, de körülményes volt oda menni, lenézni, elküldeni stb…

STOP SMSA Workflow alkalmazás segítségével kreáltam minden egyes parkolási zónámra két scriptet, egy START és egy STOP címkével. A START az autóm rendszámát tartalmazza, mint az SMS szövege, míg a STOP a “STOP” szöveget.

Az egész előnye az, hogy az adott zónában kiválasztott worflow kikeresi magától a telefonszámot, amire a megfelelő szó küldését előkészíti, nekem csak a “send” gombra kell nyomnom.

Mindez persze így még nem elég, mert ez így eddig csak félautomata. Így hát azon kezdtem el gondolkozni, hogyan lehet lokáció alapon automatikusan aktiválni a workflow-t. És itt jön képbe a Launch Center Pro.

Location trigger, geofence

URL sémaA Workflow alkalmazás egyelőre nem tud lokáció alapon triggert fogadni, viszont az egyes scriptek exportálhatóak: akár a home screenre, akár pedig a Launch Center Pro-ba (ami tulajdonképpen egy komlex home screenként is felfogható). URL sémák segítségével a LCP-ból elindítható a Workflow script.

GeofenceA LCP azonban tud egy olyat, hogy location trigger: megadható neki, hogy egy adott zónába érkezve – vagy elhagyva azt – elindítsa az adott LCP actiont, ami jelen esetben egy hivatkozás a Workflow scriptre (és ez itt az ágyúval verébre lövés, de erről később).

Füred zónaEzzel a megoldással automatizálható az egész folyamat, hiszen ha megérkezek a zónába, egyből elindul a LCP action, ami megjelenít egy notifikációt. Itt szükséges interakció a felhasználó részéről, egy slide elegendő.

NotifikációEkkor aktiválom tulajdonképpen az adott lokációra jellemző LCP actiont, ami elindítja a Workflow scriptet. Mire találok parkolóhelyet, már kész az SMS az autóm rendszámával a megfelelő parkolási zóna telefonszámára, csak a “send” gombra kell nyomnom, és kész.

A módszer ugyanúgy működik zónába érkezéskor és zónából távozáskor is, természetesen a releváns scriptet elindítva.

A módszer talán egyetlen hátránya, hogy – igaz, csak egyszer – meg kell csinálni minden egyes zónára a START és STOP LCP actionöket.. Workflow script azonban elegendő 1-1 db, hiszen paraméterezhető .

Aztán jött Wyctim

És közölte velem az Agyvihar 16. epizódjában, hogy amit csináltam, azt egy alkalmazással az LCP-val is meg tudom oldani. A kulcs a System Actions->In-App Messaging->Send Message with Body. Korábban ezt én nem fedeztem fel, csak a sima Send Message to Contact megoldással próbálkoztam, ami – mivel nem lehetett megadni az üzenet tartalmát – nem volt alkalmas.

LCP ActionökMajd ráveszem magam és átírom az actionöket, de egyelőre marad ez a hibrid megoldás, hiszen tökéletesen bevált. Ja, és már mentett meg parkolási bírságtól: ránéztem a telefonra és láttam a notifikációt, hogy indítsam el a parkolást.

Vezetés közben olvasni? Megőrültél?!

Figyelem! Ez a bejegyzés már több mint 1 éves, tartalma elavult lehet!

Talán egyszer már érintőlegesen az Agyvihar podcastben említettem, hogy én bizony vezetés közben szoktam “olvasni”. Azért az idézőjel, mert ez az “olvasás” természetesen nem a hagyományos olvasás. Kifejtem.

iOS Speak Screen Mivel a munkám miatt sokat autózom és mivel a ráidó az agy rágógumija, már régóta a produktivitás jegyében kihasználom a napi szinten kb. 4 óra utazással töltött időt arra, hogy érdekességeket, híreket, elemzéseket “olvassak” ez idő alatt.

Mivel nálam az utazás az nem egy passzív tevékenység, mint a tömegközlekedéssel közlekedőknél, hanem elsősorban a vezetésre kell koncentrálnom, ez az “olvasás” komoly nehézségekbe ütközik.

Szerencsére az iOS rendszerben vannak olyan lehetőségek, melyek segítenek megoldani az ilyen helyzeteket. Eredendően az iOS “Speak Selection” funkcióját használtam, majd a “Voiceover” funkciót is, de nemrég fedeztem fel (lehet, hogy az iOS 8-cal érkezett?), hogy van már “Speak Screen” lehetőség is.

Mit tesznek ezek a funkciók? A “Speak Selection” a kijelölt szöveget felolvassa. Elméletileg okos, mert felismeri az adott nyelvet is és automatikusan azt a “hangot” választja, de van, mikor neked kell megadni a nyelvet, különösen olyan esetekben, amikor idegen szavakat is tartalmaz a szöveg, így nem tudja eldönteni a rendszer, hogy melyik az elsődleges. A “Voiceover” alapvetően látáskárosultak számára készült, így ez jóval komplexebb megoldást jelent. Talán annyival jobb vezetéshez, hogy kevesebb interakciót igényel, így jobban lehet a vezetésre koncentrálni. Nagy hátránya volt, hogy ha bejött egy SMS vagy egy notifikáció, akkor annak tartalmát egyből felolvasta, megszakítva ezzel például a cikk felolvasását.

Speak Screen a PocketbenAz igazán jó megoldást – eddig – a “Speak Screen” funkció megjelenése hozta, mely két ujjas fentről lefele “swipe” hatására aktiválódik (amennyiben a Settings->General->Accessibility->Speech) képernyőn korábban aktiváltuk. Egy overlay formájában megjelenik a hozzá tartozó kezelőfelület is, mely kellően nagy gombokat tartalmaz, hogy akár vezetés közben is könnyen irányítható legyen, ha szükséges.

Disclaimer: vezetés közben a mobiltelefon használatát tiltja és bünteti a KRESZ, még az SMS vagy hívás kinyomásást is, így az itt bemutatott funkciókat is. A mobiltelefon használata balesetveszélyes, így senkinek sem buzdítok ennek használatára, még saját felelősségre sem.

Ha a telefonon érkezett egy SMS vagy például a Trafihunter alkalmazás notifikációja, akkor sem akad meg felolvasás, sőt, akár ki is lehet lépni az adott alkalmazásból, el lehet navigálni. Hasznos egy funkció.

Az autóban én a BlueTooth kihangosítón keresztül szoktam hallgatni a Pocketbe elmentett cikkeket, de ha nincs ilyen az autódban, akkor fülhallgatóval is megoldható ez természetesen.

Disclaimer 2: nagyon nem vagyok híve a fülhallgatóval vezetésnek, az in-ear fülhallgatók képesek annyira kiszűrni a külvilág zaját, hogy például egy mentő szirénáját, vagy az autód normálistól eltérő működését nem hallod meg.

Egy ötlet és az Automator

Tegnap éjszaka Péter (@ScotttHUN) a következő üzenetet küldte nekem:

“Most éppen word és pdf doksikat konvertálgatok autózáshoz…nincs erre valami automatizálási cucc?”

Add to iTunes as a Spoken TextMivel Péter már részben elhagyta az Apple hajót, az iOS módszert nem javasoltam neki, ellenben meg tudtam neki mutatni az OS X gyárilag beépített funkcióját, mely egy Automator script, a neve: “Add to iTunes as a Spoken Text”.

Ez annyit tesz, hogy a rendszerben bárhol, ha kijelölsz egy szöveget, akkor azt átalakítja a rendszer beépített hangszintetizátorával audio fájllá, majd beteszi neked az iTunes lejátszódba, ahonnan akár később a telefonodra vagy iPadedre is szinkronizálni tudod.

Aztán ma reggel csak felébredt bennem a kihívás szelleme: csináltam már “folder actiont” (ez az OS X-ben annyit tesz, hogy az Automator figyeli a megadott mappát, és ha abba érkezik egy új elem, akkor a megadott feladatokat elvégzi vele), létezik ez a gyári scrpit, ollózzuk össze a dolgokat.

PDF to AudioBook HU - Users ManualA cél a következő volt: mivel macerásnak találtam kijelölni egyenként a szövegeket és elindítani a sciptet, mi lenne, ha egy adott mapába kerülő (egyelőre csak pdf) fájlt automatikusan figyelne a rendszer és egyből audio fájllá konvertálná? Sőt, mi lenne, ha ezt az audio fájlt úgy tenné az iTunes-ba, hogy ellátja különböző megjegyzésekkel, albumnévvel, egyedi fájlnévvel, hogy a későbbiekben könnyebb legyen karbantartani? Sőt, a menet közben képződő fájlokat törölje is le, csak a végtermék maradjon meg!

Azért is fogtam bele ebbe a mókába, mert így kényelmesebben fogom tudni “olvasni” a cikkeket autózás közben. A Pocketbe mentés mellett az adott cikket lementem (a Safari Reader View módját használva) egy PDF fájlba, a megadott mappámba (“_to speech HU”), ahonnan már a rendszer teszi a dolgát és szépen felkerül az iTunes zenei lejátszási listámba – ami természetesen automatikusan frissül az iPhone-ra.

Jól hangzik, ugye?

Nos, elment vele az egész délelőttöm (ez betudható annak, hogy kezdő Automator felhasználó vagyok és azért Google-t is használnom kellett elég rendesen), de az eredmény magáért beszél. És szó szerint! Bedobok egy PDF fájlt a mappába, és pár másodperc múlva már az iTunes-ban virít a felolvasásra kész hangfájl.

Nem vagyok irigy gyerek, így szívesen megosztom veled a két “Automator Workflow-t” amit készítettem és két “Automator Service-t” is itt. Készítettem külön egy magyar és külön egy angol szövegre alkalmas workflow-t (ezek figyelik a mappát) és két service-t is, mely arra az esetre jön jól, amikor promt azonnal kell egy PDF audio verziója.

A motorháztető alatt

A módszernek – jelen ismereteim, tudásom szerint – vannak korlátai. Például az, hogy csak PDF fájlokat tud kezelni, melyeket átalakít TXT fájllá, amit megnyit a TextEdit alkalmazással, ebből olvassa ki a tartalmát és ezt passzolja tovább az audio konvertálónak.

Valószínű, hogy csak én nem tudok hozzá eleget Automator és Apple Script házatáján, és ezért tudtam csak így megoldani, de több órás Google keresés sem vitt közelebb ahhoz, hogy egyből mindenféle megnyitott ablakok nélkül ki tudjam nyerni a PDF nyers szöveg tartalamát és azt egy változónak át tudjam passzolni. Ha te kedves olvasóm esetleg tudsz erre megfejtést, kommentben, e-mailben szívesen veszem a javaslatot és akkor módosítom is egyből.

A fentiekből adódó hátrány, hogy a TextEdit alkalmazás ablaka megnyílik feldolgozáskor, így ez az éppen folyamatban levő munkánkat megakaszthatja. A script bezárja a feldolgozás végén automatikusan ezt az ablakot, így nem kell vele törődni, de zavaró lehet. Szintén zavaró lehet, ha valamilyen oknál fogva épp a TextEdit alkalmazással dolgozunk, mert bele fog oda rondítani a script.

Az audio konverziót mp3-ra tettem, hogy kevesebb helyet foglaljon, nem hiszem, hogy nagy minőségre lenne itt most szükség.

Mellékeltem egy képet fentebb, melyen kiemeltem azokat a pontokat, ahol szükség lehet rá, hogy a saját ízlésed szerint átalakítsd a scriptet, ezeken a pontokon nyugodtan nyúlj bele.