Új hozzászólás Aktív témák
-
bartatamas
senior tag
Sziasztok,
Az alkalmazás még nagyon friss és vannak hiányosságai és lehetnek hibái is azonban folyamatos fejlesztés alatt áll.
Ha valami hibát találtok akkor kérlek jelezzétek nekem és ne 1-2 csillaggal értékeljétek a Play-en. Így az elején nagyon fontos a jó értékelés hogy ismertté tudjon válni az alkalmazás.
Köszi hogy ezzel is és az ötletekkel is segítitek a munkámat.
-
bartatamas
senior tag
Azzal a Google fiókkal több készülékre is.
-
bartatamas
senior tag
Igen, ugyanaz a helyzet az NFC-vel mint a GPS-el és mostmár a Repülőgép üzemmóddal. Biztonsági okoból nem lehet állítani normál készülékeken.
-
bartatamas
senior tag
A History (Történet) képernyőn meg tudod nézni mikor és miért érzékelte úgy hogy elhagytad a helyet. Szinte biztos hogy azért mert van olyan cella amibe néha belemegy a telefonod és még nem adtad hozzá a helyhez.
Ilyenkor csupán annyit kell tenni hogy a Történet képernyőn rákattintasz arra a sorra amely a hely elhagyását érzékelte és hozzáadod a cellát a kívánt helyhez. Fontos tudni hogy a telefon folyamatosan váltogat cellák között és egy helyhez nem csak egy hanem több cellát kell regisztrálni.
-
bartatamas
senior tag
Az ilyen nagy méretű helyek (sok cella) elkerülése végett van az E-Robot-ba olyan lehetőség hogy a tényleges cellákat (amik közel vannak és sűrűn lép be oda a telefon) normál cellaként adod hozzá. Amik távol vannak és nagyon ritkán lép be a telefon "ignorált" cellaként.
Ha egy ignorált cella van a munkahelyedhez beállítva és éppen ott tartózkodsz akkor ha a telefon egy ilyen ignorált cellába lép be akkor nem történik kilépés, az alkalmazás nem fogja detektálni a helyszín elhagyását.
Azonban ha éppen a munkahelyed felé tartasz és belépsz ebbe az ignorált cellába akkor nem fogja detektálni a munkahelyre való belépést hiába a munkahelyhez van rendelve az ingorált cella.
Egy szó mint száz az ignorált cella segít abban hogy pontos legyen a helymeghatározás és ne történjenek indokolatlan kilépések.
Remélem ez így érthető volt valamennyire
-
bartatamas
senior tag
-
bartatamas
senior tag
Saját változót tudsz kezelni. Be tudod állítani az értékét és fel is tudod használni megkérdezni. Egy egyszerű példa:
Esemény: közelségérzékelö
Művelet: változó beállítása (isNear = egyenlő(változó(value), 0))A value változó a közelség esemény kimeneti paramétere (látható az esemény kiválasztásakor). Ezt összehasonlítjuk 0-val annak eldöntésére hogy közelt érzékel-e (a távolság 0-e).
Ezután bármilyen parancsban használhatjuk az isNear változót, pl feltételben így: változó(isNear)
-
-
bartatamas
senior tag
Változónál az alapértelmezett érték az amit akkor ad vissza ha nem volt ilyen változó.
Pl: Variable (name=isNear, default=false)
Ez azt jelenti hogy az isNear változó értékére vagyok kíváncsi de ha még nem lett létrehozva akkor tekintse úgy hogy az értéke false, azaz nem érzékel közelséget.
Igen, nekem sokkal könnyebb helyes kifejezéseket megadni mert látom ha logban ha valamit elrontok illetve könnyen tudom tesztelni. Ha arra vagyok kíváncsi hogy jól adok-e meg egy kifejezést akkor én szoktam a Toast üzenet megjelenítése műveletet használni hogy kiirassam az értékét. így lehet ellenőrizni. Hasonlóan lehet megtudni hogy egy esemény mit ad vissza egy adott nevű paraméterben. Doksi persze tényleg jó lenne. Most is bővítettem kicsit a parancsikonokkal. Szépen lassan bővítem, sokkal több idő kellene ...
Ha ötleted vagy kérdésed van nyugodtan írj, amint van időm reagálok. A visszajelzésekből tudok csak építkezni, addig sötétben tapogatózok
A műveletek sorrendjéről annyit hogy nincs olyan programozási vagy script nyelv ahol lentről felfelé hajtódnának végre a parancsok. Számomra ez annyira természetes hogy ahogy olvasunk ugyanúgy ez is fentről lefelé értendő.
-
-
bartatamas
senior tag
Igen, ez azért nem jó így mert az esemény csak akkor váltódik ki ha közel-t érzékel és ekkor a változót beállítod 1-re. De azt nem detektálod ha távolt érzékel.
Ezért kell az hogy az eseménynél elfogadod a közel és távol értékeket is.
És az isNear változót úgy állítod be hogy akkor legyen igaz ha közelt érzékel:
Set variable, name=isNear, value=Equals ahol
param1: Variable(value)
param2: Integer constant 0 -
bartatamas
senior tag
válasz bartatamas #80 üzenetére
És ezután már a kifejezésben simán használhatod hogy
Variable (name=isNear, default=false)
Ott már nem kell akkor equals mert az ellenőrzést betetted a változó beállításához.
-
bartatamas
senior tag
Param1 és 2 az Egyenlő operátor két paramétere lett volna. Nem emlékeztem mi volt a nevük.
-
bartatamas
senior tag
válasz #16695808 #86 üzenetére
Én sem teljesen értem, a Wifi kikapcsolásával akarsz aksit spórolni?
Amúgy valami ilyesmire gondolnék.
1. parancs: (ez felel a tevékenység végrehajtásáért)
műveletek: wifi bekapcs, várakozás 2 percig wifi kikapcs
2. parancs: (ha hazaérkezel csinálja ezt meg):
esemény: hazaérkezel
műveletek: 1. parancs végrehajtása3. parancs (ismételt végrehajtás):
esemény: Riasztás (ismételt, óránként). Az hogy 4 óránként meg lehet fogalmazni de nem olyan egyszerűen (óra=0 vagy óra=4 ...), a legegyszerűbb ha belerakok egy olyan ismétlési intervallumot hogy 4 óra.
művelet: 1. parancs végrehajtásaEz nem teljesen ugyanaz amit írtál de kivitelezhető és talán megfelel. Időzítéseket indítani és leállítani dinamikusan nem lehet.
-
bartatamas
senior tag
Megszakítani nem tudja egy harmadik. De azt sem hiszem hogy az OS hagyja hogy ennyi ideig fusson a szál, de még nem próbáltam Elvileg az OS bármikor leállíthat egy szolgáltatást memóriaproblémák esetén majd újraindítja, szóval simán lehet hogy közben újraindítja a szolgáltatást.
-
bartatamas
senior tag
válasz #16695808 #94 üzenetére
Ezt hogy is érted? Mire akarod használni?
Mert ha hely alakú feltételeket eseményeket akarsz akkor a "Helyek" képernyőn kell definiálni a helyeket, ott adhatod meg a helyhez tartozó cella adatokat.
Majd a "Belépés a megadott helyre" és "Kilépés a megadott helyről" helyről eseményeket tudod használni annak detektálására hogy beléptél vagy kiléptél, illetve az "Adott helyen van" kifejezést lehet használni feltételként műveletekhez vagy eseményekhez.
Tehát közvetlenül cella adatokkal nem kell dolgozni hacsak nem tényleg pont azt akarnád valamiért.
-
bartatamas
senior tag
Maps-et nem használ, ez a hiba arra utal inkább hogy a www.google.com hostnevet nem tudja feloldalni, ami pedig csak akkor lehet talán ha nincs neted. De gondolom van ...
-
bartatamas
senior tag
válasz petipetya #111 üzenetére
Szerintem több megoldás is van, talán számodra (ezekkel a parancsokkal) a legegyszerűbb ha az Este parancs első műveletének azt állítod be hogy "Parancs tiltása: Wifi ki" majd a Reggel parancs első műveletének hogy "Parancs engedélyezése: Wifi ki".
Így este és reggel között nem fog működni az adott parancs.
-
bartatamas
senior tag
Szia,
> Gratulálok hozzá, nagyon részletes a dokumentáció, mégha amgolul is.
Van magyarul is, a beállított nyelvtől függ, de itt is megtalálható: http://bartat.hu/e-robot/?lang=hu
> Az E-Robot-nál is előfordulhat, hogy az adott időpontban nem történik meg a profilváltás?
Erre azt válaszolnám hogy amit beállítasz annak kell történnie, de pont nemrég "vadkörte" írta hogy neki valami mégsem ok. Én még hibás működést nem tapasztaltam az időzítéssel kapcsolatban.
Az időzítés esemény közvetlenül az Android időzítő API-ját használja, annak összes beállítási lehetőségével együtt. Én azt mondanám hogy ha nem működik az időzítés akkor az valahogy a rendszerrel kapcsolatos hibás működés. Ha az időzítést úgy állítod be hogy "pontos időzítést" akarsz és hogy "ébressze fel a készüléket" akkor annak meg kell történnie. De próbáld ki.
> Cperia Tipo-nál repülőjép mód kikapcsolásakor szintén kéri a PIN kódot?
Ezt nem lehet megválaszolni. A repülőgép üzemmód állítás csupán egyetlen igaz-hamis beállítás módosítása a programok számára. Tehát azt nem tudják befolyásolni hogy jelenjen-e meg a PIN kérő oldal vagy sem. De szerintem kikapcsoláskor nem kellene, csak bekapcsoláskor.
> A Timerrific memóriahasználata alacsony. Hogy áll ezzel a kérdéssel az E-Robot?Tehát a kód futása mennyire memóriaoptimalizált?
A kód elsősorban CPU/Aksi optimalizált, én azt fontosabbnak tartom hogy a lehető legkisebb mértékben merítse a telefont mint a memóra használatot. Én mindig azt gondolom hogy a két dolog egymást ellen dolgozik, ugyanis a memóriában tárolt gyorsítótárakkal lehet optimalizált működést elérni.
> jó hívás- és SMS naplózó programot
Nem tervezek ilyesmit, időm sem lenne rá. De a terveim szerint a jövőben az E-Robot bővülhet hasonló funkciókkal. Mert mivel esemény alapú a program ezért képes lenne bármilyen esemény naplózására, csupán a műveleteket kellene kiegészíteni valami adatgyűjtési lehetőséggel (fájlba mentés, adatbázisba mentés) és persze szükség lenne az adatok megjelenítésére is. De ezek csak álmok egyelőre.
-
bartatamas
senior tag
-
bartatamas
senior tag
Mi történik amúgy? Egyáltalán nem működnek az időzítések vagy csak néha?
Magamnál ma beállítottam egy óránkénti és egy napi időzítést, eddig ok.Ha elmentitek a parancsot a Mentés gombbal akkor a logba bekerül egy sor hogy mikor lesz triggerelve az időzítés esemény. Ha ezután és a be nem következett esemény után tudnátok küldeni logcat logot akkor abban lehet hogy látnék valamit. Sajnos nekem még nem sikerült a hibás működést reprodukálnom.
Hogy néz ki amúgy a Történet képernyő? Ott sem látszódnak a kívánt parancs végrehajtások?
-
bartatamas
senior tag
Igen, az időszámítás automatikus átállítása bekavar az Android Alarm funkciójának mert az nem függ az időzónáktól. Próbáltad Force close-al leállítani az alkalmazást és újraindítani? Újra kell regisztráltatni az időzítőket. Sajnos a rendszer nem tud semmilyen értesítést küldeni az automatikus idő átállításról.
-
bartatamas
senior tag
válasz #79335424 #153 üzenetére
Több féle megvalósítás lehet.
Ha már van olyan eseményed amely alkalmazás csoport fókuszba kerülését vizsgálja (gondolom ott állítod be a böngészőnél a timeout kikapcsolását) akkor a fókuszba kerüléskor beállíthatsz egy változót (pl: groupFocused=true), majd a fókusz elvesztésekor is (pl: groupFocused=false). Töltőre csatlakozáskor pedig csak akkor hajtod végre a timeout állítást ha a (groupFocused==false).
De ekkor ha kilépsz a böngészőből akkor nem állítja át 2 percre a timeout-ot. Ezért a fókusz elvesztéséhez is beteheted hogy ha battery plugged nem "no" akkor állítsa át. Tehát:1. parancs:
ha csoport megkapja a fókuszt -> groupFocused=true és timeout=kikapcs
2. parancs:
ha a csoport elveszti a fókuszt -> groupFocused = true és ha plugged akkor 2 perc, egyébként pl 30 mp
3. parancs
ha töltőre lett téve -> ha groupFocused==false akkor timeout=2 perc
4. parancs
ha le lett húzva töltőről -> ha groupFocused==false akkor timeout=pl 30 mp
Ez még működőképes lehet két különböző eseménytípus kezelésekor, de ha a timeoutot már függővé akarod tenni pl időpont szerint is akkor már elég átláthatatlan.
Ilyen esetekben lehet egyszerűbb a parancsoknak beállítani egy rövid megerősítést. Pl ha a 3. parancsnak beállítasz egy 5 mp-s megerősítést akkor töltőre dugáskor nem kell csinálnod semmit, 5 mp múlva aktiválódik. De ha éppen böngészel akkor dönthetsz úgy gyorsan kézzel hogy igen vagy nem akarod a 2 percre állítást.
-
bartatamas
senior tag
válasz dzsidzsas #157 üzenetére
Megpróbálok röviden válaszolni, bár sok a kérdés.
> Reggeli tervezet újraindítás
A release-ben nincs újraindítás művelet, a fejlesztői változatban már van. Ha írsz egy email-t akkor elküldöm hogy kipróbálhasd.
> Némítás este 21:00 után vissza 05:00, ezt próbáltam, este bekapcsolta a repülő üzemmódot, majd reggel úgy maradt
Repülőgép üzemmód állítás működik programon belül, próbáltad? Tudja kapcsolni a program? A History képernyőn sem láttad az 5 órai futást? Az időzítés úgy volt beállítva hogy "pontos" és "ébressze fel a készüléket"?
> nem fogadott hívásnál x időnként jelez, olvasatlan üzenetnél x időként jelez
Sajnos nem tudja a program jelen pillanatban hogy van-e nem fogadott hívás vagy olvasatlan üzenet, de felírom magamnak.
> Este a képernyő erejét 35%-ra csökkenti
Ezt Riasztás eseménnyel és Fényerő beállítás művelettel meg kellene tudni csinálni. Hol akadtál el?
> Félóránként ellenőrizze a wifit, ha tud csatlakozni mehet, ha nincs wifi lekapcsolja egy órára
Itt az esemény 30 perces ismétlődés. A műveletek pedig a következők:
- Wifi bekapcsolása
- Várakozás pl 30 másodpercig
- Wifi kikapcsolása, feltétel: Tagadás operátor (Hálózat / Hálózat kapcsolódva (wifi))Tehát ha 30 mp alatt sem sikerült kapcsolódnia valahova akkor kapcsolja ki.
> Calendárral együtt működhet
Tervezett működés, de egyelőre nem tudja
-
bartatamas
senior tag
válasz dzsidzsas #162 üzenetére
Szia,
Ebben a doksiban próbáltam minden lényeges dolgot leírni, van benne pár példa is amelyen keresztül a beállítást bemutatom: http://bartat.hu/e-robot/?lang=hu
Ezt a doksit olvastad? Ez alapján sem érthető a program működése?Egyébként az angol nyelvű dokumentációnál volt olyan segítségem aki bevállalta hogy az általam írt dokumentációt laikus szemmel átírja hogy mindenkinek érthető legyen. Az én oldalam is nehéz mert számomra természetes hogy értem ami a leírásban van de nem tudom magamtól hogy melyik az a része ami nem világos.
Pedig a programot próbáltam egszerűre tervezni: beállíthatod hogy ha valamilyen esemény történik akkor milyen műveleteket hajtson végre a program. Egy szintet növeli a bonyolultságot de a használhatóságot is hogy eseményekhez és műveletekhez is lehet feltételeket rendelni.
Szóval igazából azt kell megérteni hogy mi az esemény, mi a művelet és mi a feltétel. Ezeket hogyan lehet parancshoz rendelni és utána már szerintem egyszerű a program használata.
Az más kérdés hogy ettől függetlenül vannak olyan feladatok amelyet nem lehet vagy csak nagyon nehezen megvalósítani. Ehhez tényleg kell egy kis algoritmikus gondolkodási képesség. De ha valaki ír egy problémát és látom hogy ezt nagyon nehéz megoldani akkor megpróbálok létrehozni egy összetett eseményt vagy műveletet amely már másoknak ezt egyszerűbben lehetővé teszi. Ilyen volt például a "Készülék lefordítva" esemény vagy a "Kapcsolódás a legerősebb wifi hálózathoz".
Ha van kérdésed nyugodtan írj ide: bartadev@gmail.com, szívesen segítek és ha van jó ötlet akkor formálom a programot.
-
bartatamas
senior tag
válasz dzsidzsas #164 üzenetére
> nem fogadott hívásnál x időnként jelez, olvasatlan üzenetnél x időként jelez
A tegnapi release-be beleraktam ezt a két funkciót. A következő módon tudnád megcsinálni a parancsot. Például az egyik parancs:
Esemény:
Dátum & Idő / Riasztás (15 percenként)
Feltétel: Kapcsolat / Van nem fogadott hívásMűvelet:
Egyéb / Értesítés megjelenítése
vagy
Audió / Rezgés
vagy
Audio / Hang lejátszásaTöbbféleképpen meg lehet oldani egy problémát. Ha azt megérti valaki hogy mit jelent az esemény, a művelet és a feltétel akkor utána már könnyű próbálgatni a parancsokat. Azt nem szeretném minden egyes alkalommal leírni hogy hogyan kell egy parancsoz esemény vagy műveletet felvenni, illetve azokhoz feltételt beállítani. A doksiban szerintem ezt mindet leírom.
Ha bármi konkrét kérdésed van nyugodtan írj.
-
bartatamas
senior tag
válasz #79335424 #166 üzenetére
Szia,
Elixir 2:
A Backup képernyőn lehetőség van teljes értékű mentés készítésére. Ezek a mentések az Android/data/com.bartat.android.elixir.BACKUP könyvtárba kerülnek elmentésre. Ha Titanium backup-al akarsz mentést csinálni akkor az belső tárhely mellett a következő könyvtárakat érdemes menteni:
Android/data/com.bartat.android.elixir.BACKUP // Backup-ok
Android/data/com.bartat.android.elixir.KEEP // Profilok, ikon készletek. Itt vannak azok a dolgok amik reinstall során megmaradnakEzek nem lényegesek, biztonsági mentéseket tartalmaznak csak a Clear Data ellen véd:
Android/data/com.bartat.android.elixir
Android/data/com.bartat.android.elixir.widgetE-Robot:
Itt is van lehetőség egyesével mentések készítésére és azok megosztására. A mentések a Android/data/com.bartat.android.robot.KEEP könyvtárba kerülnek elmentésre. A működés során használt fájlok a saját belső tárterületen vannak, tehát azokat alapból menti a TB.
-
bartatamas
senior tag
válasz #79335424 #173 üzenetére
Nem biztos hogy értem sajnos. De próbáltad az események közül a Nyelv & billentyűzet / Beviteli mód megváltozott eseményt? Az szolgálna erre. Ha a beállításokban, szabványos módon változtatsz akkor ez működik is. Ha a Secure Settings úgy változat hogy ezt az eseményt nem váltja ki akkor ott a hiba.
-
bartatamas
senior tag
Szia,
2. Abszolút nem esik le, hogyan tudok beállítani egy olyat, hogy OTTHON vagyok ÉS Éjjel van.
Gondolom az Éjjel és a Reggel parancsok egy Riasztás eseményt tartalmaznak amik az adott időpontban aktiválódnak. Ezekre tudsz tenni egy "Adott helyen van" feltételt és ha eljön a beállított időpont akkor megvizsgálja hogy a feltétel igaz-e, vagyis a megadott helyen vagy-e és csak akkor hajtja végre a parancsot ha ez igaz.
Ez a feltétel csak akkor működik ha a program tudja hogy éppen hol tartózkodsz, ehhez pedig használni kell a "Belépés a megadott helyre" eseményt. Erre egyébként szükség is van azért is hogy ha pl éjjel érsz haza akkor aktiválódjon ugyanúgy az éjjeli profilod.
Összesítve szerintem így nézne ki az Éjjel parancs:
Események:
- Riasztás (este 22 óra), feltétel: Adott helyen van (Otthon)
- Belépés a megadott helyre (Otthon), feltétel: Adott idő van (22-8)
Művelet:
- ...Érhető ez így? Számomra elég jól követi a módot ahogy én gondolkodom. Tehát hajtódjon végre a parancs este 22 órakor de csak akkor ha otthon vagyok. Illetve akkor is ha hazaérkezek és éppen éjjel van. Talán ebből látszik is a különbség az esemény és a feltétel között. Az esemény egy időpillanat (22:00 lett most, hazaérkeztem most), a feltétel pedig egy állapot (22-8 óra között vagyunk, otthon vagyok).
3. Ha több Eseményt is felveszek egymás mellé, akkor azok OR logikai kapcsolatba kerülnek egymással?
Lehet ezt befolyásolni (ÉS)?Több esemény megadása azt jelenti hogy bármelyik esemény bekövetkezik a parancs végrehajtódik. Tehát igen, VAGY kapcsolat van közöttük.
Talán ezt a legfontosabb megérteni az E-Robot-al kapcsolatban amit korábban is írtam hogy az esemény egy időpillanat, ott nincs értelme az ÉS-nek, mert egyszerre csak egy esemény következik be. Az állapotoknál (feltételek) van értelme az ÉS-es kapcsolatnak. Esemény az hogy 22:00 lett az idő vagy bekapcsolom a Wi-Fi-t, feltétel az hogy 22:00-23:00 között van az idő és a Wi-Fi be van kapcsolva.
Azért lehet ez első furcsa mert vannak más alkalmazások ahol állapotokat lehet definiálni, nem eseményeket. De állapotok figyelése egyrészt sokkal erőforrásigényesebb (folyamatosan kell figyelni az állapot leírásában szereplő kifejezések értékét), másrészt ellentmondásos szabályok definiálására van lehetőség. Eseményvezérelt esetben egyik probléma sem áll fent, de kicsit más gondolkodást igényel.