🦁 Leon wydany na ALFA

Ok, następnym razem otworzę sobie dwa okna i będę widział logi. Teraz nie miałem już jak podejrzeć, moja wina, bo od dłuższego czasu nie było żadnych problemów z aktualizacjami :wink:
ps. wybór ikon oraz podgląd urządzenia bez szukania ip mistrzostwo :slight_smile:

1 polubienie

Kolejne wydanie Leon na ALFA

Co nowego

1. Home Assistant Release 2021.11.1 - November 5

Pierwsze wydanie z poprawkami do wersji 2021.11

2. Start ujednolicania powiadomień do aplikacji mobilnych

Mamy aplikację na macOS/iOS oraz nową aplikację mobilną na Android, te aplikacji w inny sposób obsługują powiadomienia niż nasza dotychczasowa aplikacja AIS-dom.
Niestety nie da się do końca ujednolicić działania powiadomień, pomiędzy platformami oraz aplikacjami, dlatego zdecydowaliśmy się obsługiwać podstawowy formularz + dodatkowe dane w zależności od platformy i aplikacji. Wyjaśniamy poniżej o co chodzi.

Podstawowy formularz

Ten formularz ma działać z każdą aplikacją które wspierają powiadomienia z Home Assistant:

Efekt na telefonie/tablecie może być oczywiście troszkę inny, w zależności od systemu oraz aplikacji która jest zainstalowana.

Np. tak to wygląda w AIS-dom Android (nasza aplikacja dedykowana na tablet):

A tak w AIS-mob Android / HA Companion Android (nasza nowa aplikacja dedykowana na urządzenia mobilne z systemem Android)

Tak natomiast w AIS-mob iOS / HA Companion iOS (nasza nowa aplikacja dedykowana na urządzenia mobilne z systemem iOS)

Dodatkowe dane do powiadomienia

Dodatkowe dane do powiadomienia są opcjonalne i zależne od platformy oraz aplikacji - są obsługiwane tylko w nowych aplikacjach AIS mob (na bazie aplikacji HA).

Przykład:

da nam takie powiadomienie z akcjami (przyciskami w powiadomieniu):

Dokładny opis dodatkowych danych, znajduje się w dokumentacji Home Assistant dla aplikacji mobilnych:

3. AIS Android

To nowa integracja nad którą pracujemy i jest to rozwinięce tego tematu z forum:

Chodzi o to żeby z poziomu Asystenta domowego (z poziomu Linux) sterować mediami w systemie Android za pomocą interfejsu ADB.

Zakładamy, że docelowo ta integracja będzie na bramce wbudowana i skonfigurowana z systemem Android dostępnym na bramce (host 127.0.0.1)

ale będzie też możliwość sterowania innymi urządzeniami z systemem Android (także innymi bramkami AIS czy telewizorami z Android TV):

:warning: To pierwsza wersja integracji AIS Android - ta funkcjonalność jeszcze bardzo rozwojowa. Docelowo chcemy w ten sposób sterować aplikacjami na bramce (Spotify itd…). Integracja zostanie opisana w dokumentacji wraz z wydaniem wersji na kanale PROD wersji Leon.

4. Poprawianie wyświetlania ikonek

W najnowszym HA zostały wprowadzone zmiany w interfejsie w elemencie ha-icon-button.

To spowodowało, że niektóre przyciski z ikonkami po aktualizacji nie były prawidłowo wyświetlane. Naprawiliśmy to w tym wydaniu.

Jeśli widzicie, że zniknęły jakieś ikonki, to dajcie znać :+1:

Test aktualizacji

Ogłoszenie :heart:

Czy jest ktoś chętny, kto ma bramkę AIS PRO1 i chciałby budować i wydawać wersje dla innych???
Przyda nam się pomoc tzw “software release manager” - dodamy dostęp do 2 ogólnie dostępnych repozytoriów w Github i “wtajemniczymy w ten proces”.
Obecnie budowanie paczki sprowadza się to do uruchomienia 1 skryptu.
Ten skrypt sam przełącza na odpowiednią gałąź w repozytorium (alfa, beta …), pobiera kody i wykonuje paczkę, następnie wrzuca zbudowaną paczkę do innego repozytorium. Tak żeby instalacja na innych bramkach nie wymagała kompilacji.

5 polubień

przy próbie dodania tej integracji mam taki komunikat


(nie posiadam jeszcze aplikacji amazon vod na bramce dev 1)

U mnie się połączyło, znalazło android tv, w konfiguracji integracji napisało, że zablokowane wpisem i bramka zgasła, nie zdążyłem zrobić screena. Nawet dioda w bramce nie świeci :frowning_face:
…idę zrobić twardy reset :slight_smile:
Po twardym resecie bramka wstała, załączam screena:

Możesz więcej napisać nt. roli “software release manager”? Scope zadań, terminy, itp.
Bramkę AIS PRO1 mam (jak pewnie wiesz), ale moje korpo-doświadczenie mówi że trzeba dopytać co za tym stoi.

3 polubienia

Super @Stravi - dzięki za zainteresowanie i zaangażowanie :heart:

Co do terminów… to nie ma problemu, ten projekt to OpenSource i społeczność - więc nie ma tu żadnego ciśnienia. Wyobrażamy sobie to tak, że my budujemy na PRE-ALFA i testujemy, a następnie dajemy znać na forum, co się zmieniło i że można wydać na ALFA (a za jakiś czas na BETA i PROD). Linkujemy Cię w takim wpisie, żebyś wiedział, że jest coś do wydania.

Jak masz czas (to nie musi być w ten sam dzień), to:

  1. Odpalasz skrypt (wszystko opiszemy), w efekcie powstaje zbudowana wersja i zmieniane są numerki na kanale z aktualizacją. Jak coś nie tak, to nam piszesz na forum i to wyjaśniamy.
  2. Uruchamiasz na bramce aktualizację i sprawdzasz, czy się instaluje OK u Ciebie. Jak coś nie tak, to nam piszesz na forum i to wyjaśniamy.
  3. Dajesz znać na forum wszystkim, że można aktualizować.
    :tada:

Jak nie będziesz mógł, będziesz zajęty, itp… to nie ma problemu - sami wydamy. Może z czasem dołączy ktoś jeszcze… jesteśmy otwarci i zapraszamy.

Cały proces wydania będzie prosty, bo technicznie odpalasz tylko skrypt, reszta sama się dzieje… oczywiście, jeżeli coś nie zadziała w skrypcie, to sprawy będą się robić skomplikowane… ale od tego jesteśmy my :slight_smile:
Jak zajdzie taka potrzeba to będziemy poprawiali i tłumaczyli co i jak, z czasem poznasz i zrozumiesz ten skrypt i będziesz sam go w stanie go poprawiać i ulepszać.
Przejęcie części zadań i kontroli przez społeczność, może wnieść wiele pozytywnych rzeczy do projektu - nawet jak Jolka odejdzie, to AIS żyć będzie w Was :wink:

PS
Żeby było szybciej i łatwiej, to na początek nie będziemy budować paczek u Ciebie na bramce.
Zamiast build_alfa.sh zrobimy nowy skrypt bump_version_alfa.sh i ten skrypt będzie zbudowaną paczkę pre-alfa kopiował do alfa i ustawiał odpowiedno wersję do aktualizacji. To będzie moment.

Daj znać czy wydajemy pierwszą wersję razem na alfa?
(w ciągu kilku dni ustawimy dostępy dla Ciebie i wyślemy na priv)

1 polubienie

Kolejne wydanie na kanale ALFA

Zmiany

Dodajemy nową integrację AIS-android - łączymy się z bramką - po jej lokalnym ip 127.0.0.1

Po dodaniu integracji, pojawi nam się w systemie nowy odtwarzacz

i kilka nowych usług

opiszemy tu usługę ADB command która pozwala na przesłanie komendy po ADB do systemu Android

w ten sposób możemy uruchomić komendę która włączy wybrany utwór w aplikacji spotify na bramce:

am start -W -a android.intent.action.VIEW -d spotify:track:0ufdvcaRSNKq8NmIJx0E4A

istotny tu jest identyfikator utworu:

w Spotify każdy utwór, album, wykonawca… ma taki unikalny identyfikator - możemy go podejrzeć w aplikacji podczas odtwarzania

lub przeglądając bibliotekę

Jak już mamy identyfikator utworu to możemy usługą włączyć spotify i odtwarzać

żeby odtworzyć coś co nie jest utworem (track) np. playliste, wykonawcę czy album to po identyfikatorze trzeba dodać :play

np:

am start -W -a android.intent.action.VIEW -d spotify:album:6kZ42qRrzov54LcAk4onW9:play

Oczywiście jak klikacie w aplikacji jakąś pozycję do odtwarzania w spotify, to automatycznie, ta usługa jest teraz wywoływana “pod spodem”.

W ten sposób - integracją AIS Android, można sobie zintegrować telewizor z systemem Android TV i wysyłać po ADB do niego utwór ze Spotify do odtworzenia. Zrobic automatyzacją budzik itp. napewno coś wymyślicie :wink:

:warning: Żeby to zadziałało z innymi urządzeniami niż bramka AIS, to trzeba włączyć ADB w telewizorze, telefonie, tablecie … i zezwolić na połączenie. W przypadku bramek AIS wykonujemy sami uruchomienie ADB i parowanie.

  • Poprawiony wygląd grupy odtwarzaczy
    nasz dotychczasowy wygląd grupy odtwarzaczy opierał się na karcie z encją

i takim kodzie:

cards:
  - entities:
      - entity: input_number.media_player_speed
      - entity: input_boolean.ais_audio_mono
    show_header_toggle: false
    title: Odtwarzacze
    type: entities
  - card:
      show_header_toggle: false
      type: entities
    filter:
      include:
        - domain: media_player
    type: ais-auto-entities
show_header_toggle: false
type: vertical-stack

to ma jedną wadę - obrazki z odtwarzaną muzyką migają jak HA odświeża pod spodem status encji odtwarzacza

dlatego zmieniliśmy ten widok na taki

cards:
  - entities:
      - entity: input_number.media_player_speed
      - entity: input_boolean.ais_audio_mono
    show_header_toggle: false
    title: Odtwarzacze
    type: entities
  - type: ais-auto-entities
    card:
      type: vertical-stack
    card_param: cards
    filter:
      include:
        - domain: media_player
          options:
            type: custom:hui-ais-mini-media-player-card
            artwork: cover-fit
            source: full
show_header_toggle: false
type: vertical-stack

jest ładniej, nie “miga”… prawie perfect :wink:

  • Wyłączanie hdmi

Oczywiście nie pozwalamy wyłączyć bramki ais, przyciskiem power z odtwarzacza - bramka ma działać cały czas. Ale jeżli ktoś ma ją podłączoną do TV czy monitora po hdmi to może teraz łatwo wyłączać i włączać hdmi na bramce przyciskiem z odtwarzacza .

Jak ktoś ma bramkę jako serwer (bez monitora czy tv) to może chcieć wyłączyć hdmi, żeby zaoszczędzić kilka micro amperów…dzięki temu koszt prądu miesięcznie za stale działającą bramkę spadnie z 1.2 PLN do może 1.1 PLN :slight_smile:

2 polubienia

udało mi się dodać tą integracje i na próbę odtworzyłem muzykę ze spotify przy pomocy zakładki audio (na telefonie) i tak zostało.

Jaka wrócić z wykorzystaniem waszej integracji do głównego ekranu lub zmienić na podgląd np. video z youtube czy na inny ekran bez wykorzystywania scrcpy (którego nie posiadam) lub bez podłączania myszki?

cały czas mam podgląd ze spotify mimo iż nie jest odtwarzana muzyka od dłuższego czasu oraz czy przy pomocy waszej integracji można wysyłać identyczne komendy jak w oficjalnej integracji android tv w ha czy u was jest trochę inna składnia w tych usługach?

Edit: w logach pojawił mi się taki wpis

Logger: homeassistant.components.ais_android.media_player
Source: components/ais_android/media_player.py:269
Integration: AIS Android (documentation, issues)
First occurred: 12 listopada 2021, 20:31:30 (1 occurrences)
Last logged: 12 listopada 2021, 20:31:30

Failed to execute an ADB command. ADB connection re-establishing attempt in the next update. Error: Never got one of the expected responses: [b'OKAY'] (transport_timeout_s = 9.0, read_timeout_s = 10.0)

na moim DEV1_BT były takie przygody:

zigbee nie wstał bo nazwa katalogu się (nie)zmieniła ?

~ $ pm2 start zigbee
[PM2][ERROR] Script not found: /data/data/pl.sviete.dom/files/home/zigbee
~ $ ls
AIS  NULL  dom  zigbee2mqtt  zigbee_update.zip

rowiązanie poprawiło sytuację:

~ $ ln -s zigbee2mqtt zigbee
~ $ pm2 start zigbee
[PM2] Starting /data/data/pl.sviete.dom/files/home/zigbee in fork_mode (1 instance)
[PM2] Done.

miałem jeszcze poniższe przygody ale nie jestem pewien czy to od aktualizacji do alfa czy konsekwencja aktualizacji całości ze starej wersji:

problem z uprawnieniami do portu:
Error: Error while opening serialport 'Error: Error: Permission denied, cannot open /dev/ttyACM0

nadanie uprawnień pomgło:
chmod a+rw /dev/ttyACM0

brakowało jeszcze pakietu packaging
po doinstalowaniu “pip install packaging” poszło dalej.

Hej @jolka
Wg mnie powiadomienia na AIS mobile nie działają prawidłowo:
Wywołanie usługi ais_ai_service.mob_notify z Node-RED - Bez kategorii - AI-Speaker

PS

Czy nie powinno być tak że jak zaznaczam okienko [1] to suwak [2] pwonien sam się włączyć?
Bo trochę to mylące, trzeba ręcznie oba włączyć żeby działa usługa say :wink:

Generalnie jest jakiś problem z powiadomieniami.
Na Tablecie Samsunga z android 5.1 i zainstalowaną aplikacją AIS Mob - nie czyta powiadomienia.
Na tablecie Samsung z Androidem 11 i zainstalowaną aplikacją AIS Mob - nie czyta powiadomienia.
Na telefonie Mi 10 z Androidem 11 czyta powiadomienie. Z tym że tu zainstalowane dwie aplikacje AIS Mob i AIS Dom.

Oczywiście Chrome i Spreech Services zainstalowane i skonfigurowane raczej prawidłowo.

Ok, dla mnie to brzmi dobrze, a nawet jako ulepszenie procesu, bo to kolejna walidacja paczki na innej konfiguracji niżu Was w biurze :slight_smile:
Mam nadzieję że kilka custom integracji nie będzie problemem.
Czekam na kontakt.

2 polubienia

image

@Stravi kolejne wydanie na alfa robiy razem :slight_smile: :+1:

1 polubienie

Nowa kody na PRE-ALFA

:warning: To jest tylko opis zmian nad którymi pracujemy. Kolejne wydanie na ALFA zrobi @Stravi i da znać że można już instalować :+1:

Zmiany w kolejnej aktualizacji na ALFA:

1. HA 2021.11.4 - November 15

2. Nowa wersja aplikacji ais-dom

  • usunęliśmy “odchrząkiwanie” podczas uruchamiania
    nie wszystkim się to podobało :wink: dodatkowo od jakiegoś czasu, jeżeli nie trzeba to nie restartujemy całej bramki po aktualizacji. Dzięki temu można wykonać aktualizację nie przerywając odtwarzania audio… ale odchrząkniecie na starcie przerywa muzykę - teraz już nie będzie przerywało.

  • usunęliśmy dotychczasową oficjalną integrację ze Spotify
    nie udało nam się zrozumieć, dlaczego czasami ta integracja nie działa. Lepszym sposobem na integrację będzie sterowanie oryginalna aplikacją Spotify, którą mamy na bramce. Sterowanie oryginalnymi aplikacjami pozwoli nam na sterowanie także innymi aplikacjami do mediów, które będzie można instalować na bramce-to jest nasz kierunek.

  • Audio Focus w naszym odtwarzaczu
    W przypadku systemu Android, wiele aplikacji może jednocześnie odtwarzać dźwięk do tego samego strumienia wyjściowego. System miksuje wszystko razem. Z technicznego punktu widzenia jest to imponujące… to jednak może być to bardzo denerwujące dla użytkownika który chciałby przełączyć się pomiędzy aplikacjami odtwarzającymi media (bez potrzby zatrzymywania dzwięku w poprzedniej aplikacji). Aby uniknąć jednoczesnego odtwarzania z wielu aplikacji, Android umożliwia “audio focus” - tylko jedna aplikacja może jednocześnie odtwarzać dźwięk.
    W tej wersji do naszego odtwarzacza wprowadzamy “Audio Focus” - jeżeli inna aplikacja zacznie odtwarzać dzwięk to nasz odtwarzacz zostanie automatycznie zatrzymany (pauza).

3. Poprawki w aplikacji

Przejrzeliśmy jeszcze raz aplikację pod kątem ikonek i poprawiliśmy wszystkie miejsca, gdzie ikonki zniknęły po zmianach w HA.

Dodatkowo poprawiliśmy część funkcjonalności, np. wyłączenie bramki:

w tej chwili wyłączenie bramki to skrypt który robi 3 rzeczy:
image

nie robimy już linux-owego reboot -p tak jak dotychczas, ale wysyłamy kod przycisku POWER za pomocą komendy input keyevent 26

26 to w Andoid kod przycisku POWER - o przyciskach jeszcze za chwilę

wcześniej wysyłamy taką komendę która gasi panel echo .... > /sys/class/fd655/panel chcieliśmy napisać coś typu STOP ale nie wyszło… :wink:

image

4. Integracja AIS Android

W dotychczasowej naszej integracji do Audio, sami sterujemy naszym odtwarzaczem wysyłając do niego komendy (play, pause …)

W naszej nowej integracji “AIS Android” sterujemy za pomocą Androidowego media kontrolera

czyli wysyłamy komendy do odtwarzacza a system Android sam znajduje aplikację która obecnie odtwarza media i nią steruje

Czyli my mówimy systemowi Android “pause” a system Android mówi aplikacji Spotify “pause”.

Oczywiście na razie działa to gorzej niż nasze rozwiązanie (jest mniej responsywnie), ale to podejście ma jedną ogromną zaletę - w ten sposób będziemy mogli sterować każdą aplikacją do multimediów w systemie Android (a tych jak pokazał ziom, nie brakuje :wink: )

Oczywiście jak jesteście połączeni po ADB z innym odtwarzaczem, niż bramka AIS to też tą metodą możecie do niego wysyłać komendy i przyciski - żeby np zatrzymać odtwarzanie na TV podłączonym po ADB można wysłać taką komednę:

media dispatch play-pause

albo

input keyevent 85

dlaczego 85 ??? Bo w Android kod 85 to kod przycisku MEDIA_PLAY_PAUSE

wszystkie kody znajdziecie w dokumentacji Android dla programistów:

https://developer.android.com/reference/android/view/KeyEvent#KEYCODE_MEDIA_PLAY_PAUSE

3 polubienia

Czytając @jolka Twój wpis, najbardziej działa na wyobraźnię możliwość sterowania na poziomie samego Android’a. Mam teraz większą nadzieję, na jeszcze szybsze dopracowanie Aplikacji AIS dom panel. Tak aby funkcjonalność wygaszacza ekranu, z detekcją obecności, była czymś normalnym, a nie wymysłem użytkownika. Wykorzystując tablet z Antkiem, do sterowania z panelu, nie chcemy aby wypalał się po paru miesiącach użytkowania…
Już dziś chciałem wypróbować kod 26 na swoim Lenovo Yoga, ale pomimo włączonego debugowania odrzuca połączenie po ADB… Czekam na więcej, jak zawsze przy kolejnym wydaniu mile zaskoczony nowinkami z Waszej strony. :clap:
Dziękuję :slightly_smiling_face:

2 polubienia

Dzięki za miłe słowa :slight_smile:

Tak, z tym będą problemy… i my ich nie rozwiążemy niestety, trzeba zgłosić problem do IBM czy Lenovo :wink:

Integracja AIS Android, będzie działała ok z naszą bramką i aplikacjami do odtwarzania multimediów na bramce - dopracujemy tą integrację, bo to nasz sprzęt/system i jesteśmy w stanie to zrobić. Jak kiedyś wprowadzimy do sprzedaży tablet PoE, to też będzie działało OK.

Integracja z innymi urządzeniami na Andoid jest możliwa… ale czy będzie działać OK, nie wiemy - nie odpowiadamy za te urządzenia.

Interfejs ADB jest bardzo niestabilny i nigdy nie zdecydowalibyśmy się na integrację tą drogą, gdyby nie fakt, że integrujemy się z Android na naszej bramce (na localhost/127.0.0.1).

Oczywiście cały interfejs (python-adb) jest oparty na kodzie z Google

ale to nie znaczy, że to działa OK - tu jest prezentacja, która wyjaśnia dlaczego powstał ten interfejs

a to jeden ze slajdów z tej prezentacji

Jak ktoś kodował apk na Android i łączył się po adb to wie o co chodzi :slight_smile:

Podsumowująć - ten interfejs będzie działał ok z naszą bramką… i jego głównym celem jest umożliwienie sterowania dodatkowymi aplikacjami na bramce. Pracujemy nad tym.

1 polubienie

Więc czekamy na dedykowany pulpit :+1:

1 polubienie

Nowe kody na PRE-ALFA

@Stravi - dzięki za poprawkę w skrypcie :slight_smile: już widać, że kolejne oczy :eyes: przydają się bardzo :+1:
jak tylko będziesz miał czas, to podbijaj wersje i wydawaj na ALFA

Poprawki

1. czyszczenie bufora Spotify przed instalacją

po kilku dniach słuchania spotify na dev1 zobaczyliśmy coś takiego

df -h

po przeszukaniu urządzenia winny okazał się folder /sdcard/Android/data/com.spotify.music/

du -sh /sdcard/Android/data/com.spotify.music/

rm -rf /sdcard/Android/data/com.spotify.music/*

Niestety chyba nie da się powiedzieć spotify żeby nie buforowało tyle… dlatego przed instalacją będziemy czyścić dane w folderze /sdcard/Android/data/com.spotify.music/ żeby nie było problemu z brakiem miejsca na DEV1.

2. wyłączenie animowanych ikonek

Okazało się, że animowane ikonki (animowane svg) nadmiernie zużywają procesor na bramkach, tabletach itd…
Problem jest znany ale byliśmy nieświadomi - dzięki Adam za zgłoszenie

narazie wyłączamy animowane ikonki w pogodzie, jak znajdziemy rozwiązanie to włączymy

3. Spotify - przywieszanie interfejsu AIS / HA

Podczas testów nowej integracji ze Spotify na bramce, 2 razy zdarzyło się nam, że włączanie utworu Spotify zablokowała HA, wykryliśmy blokujący kod i go naprawiliśmy.

4. Poprawki w komunikacji adb z bramką

powinno być już lepiej ale do ostatecznej wersji jeszcze brakuje - pracujemy nad tym

5. Wykrywanie Android na bramce

Integracja z AIS Android na bramce będzie wykrywana - każdy będzie mógł zdecydować czy chce ją dodać, czy nie. Moglibyśmy dodać ją automatycznie… ale może nie każdy chce - jeżeli bramka działa w szafie, a nie koło monitora/tv to chyba nie ma sensu dodawać tę integrację… a 2 dodatkowe kliknięcia w sumie nie bolą… ale zobaczymy jeszcze jak to ostatecznie będzie.

6. Zmiana odtwarzacza w zależności od przeglądanej biblioteki

to najlepiej wyjaśnić obrazkami:

To pokazuje do czego dążymy… jak ta komunikacja zostanie dopracowana, to będziemy mogli dodawać w ten sposób inne programy do multimediów.

PS
Padł pomysł, że skoro wiemy co odtwarza Android i tym sterujemy, to możemy wyciszać reklamy.
O ile technicznie wydaje się to możliwe:

Wydaje się to dość słabe etycznie, ale może wyślemy do jakiejś nowej encji, co jest odtwarzane aktualnie w Android i każdy będzie mógł zdecydować automatyzacją czy chce coś wyciszyć, czy pogłośnić :wink:
Zobaczymy, najpierw dopracujemy ten interfejs.

3 polubienia

po wpisaniu w wyszukiwarkę frazy spotify wasza integracja nadal się pojawia

więc czy ta integracja będzie usunięta w przyszłości jak rozumiem ?

coś na tej zasadzie ? o co kiedyś pytałem

ten konfigurator zostaje i możliwość przeglądania biblioteki w Spotify zostaje.
Usuwamy integrację w Android, pomiędzy aplikacjiami spotify ↔ ais-dom po IPC w Java - to co nie każdemu działało:

Teraz po kliknięciu w utwór w bibliotece Spotify wysyłamy informację żeby odtwarzać utwór nie do zdalnego serwisu Spotify po IPC ale do aplikacji Spotify po ADB.

Było

jest

bardziej chodzi o coś takiego - na poziomie android: