Migracja serwera AIS dom na bramce do wersji 2.0

Wprowadzenie

Po 1.5 roku testów zdecydowaliśmy się na większą zmianę w architekturze naszego systemu oraz zmianę w sposobie instalowania aktualizacji. Głównym powodem zmiany jest potrzeba uzyskania pełnej kontroli nad aktualizacjami oprogramowania na bramce. Nasze pierwotne założenie było takie, że wszystkie aplikację podpisywaliśmy w Google Play i dystrybuowaliśmy przez Google Play. Niestety nie da się w żaden sposób zapewnić czasu instalacji przez Google Play — nikt nie zna algorytmu, kiedy instalacja zostanie wydana i trafi na urządzenie (i kiedy zrestartuje serwer na bramce).

Dlatego zdecydowaliśmy się na samodzielne podpisywanie i aktualizowanie aplikacji AIS dom serwer na bramce. Aktualizacje aplikacji na telefon/tablet/zegarek są mniej krytyczne i te oczywiście nadal będą wykonywane przez Google Play.

:warning: Migracja do nowej wersji będzie niestety bardziej skomplikowana niż normalna aktualizacja, ponieważ musimy odinstalować aplikację i zainstalować jej nową wersję (podpisaną naszym kluczem). Zaplanuj sobie migrację, gdy będziesz miał czas (około jedną godzinę), żeby wykonać spokojnie całość krok po kroku wg poniższej instrukcji

Pobranie potrzebnych plików

W konsoli za pomocą curl pobieramy 2 pliki z serwisu OTA:

  1. Aplikacja
curl -o /sdcard/AisPanelApp.apk -L https://powiedz.co/ota/android/AisPanelApp.apk
  1. Paczka z plikami startowymi
curl -o /sdcard/files.tar.7z -L https://powiedz.co/ota/bootstrap/files.tar.7z

Kopia zapasowa ustawień

Przed aktualizacją aplikacji na bramce wykonaj kopię ustawień i zaktualizuj aplikację do najnowszej wersji

:warning: Uwaga automatycznie robimy tylko kopię ustawień Asystenta domowego. Jeżeli masz dodane urządzenia Zigbee i zależy Ci na ich konfiguracji to należy ręcznie skopiować folder z konfiguracją a następnie go przywrócić po migracji. W przypadku Zigbee ten folder to: /data/data/pl.sviete.dom/files/home/zigbee2mqtt/data . Docelowo (do wersji 1.0) ustawienia Zigbee będziemy przechowywali w folderze ~/AIS i będą się one też automatycznie dodawały do kopii zapasowej.

  1. Utwórz kopię konfiguracji z poziomu aplikacji i wyślij ją do panelu integratora

  2. Zaktualizuj aplikację do najnowszej wersji 0.106.7

Odblokowanie aplikacji serwer (na bramce) do usunięcia

  1. Usuń wszystkie dyski zdalne

  2. Upewnij się, że nie ma żadnych dysków zdalnych

  3. Odblokuj aplikację do usunięcia/odinstalowania
    image

  4. Wyjdz z aplikacji
    image

Usunięcie aplikacji serwera z bramki

  1. Przejdz do ustawień systemu Android
    image

  2. Odinstaluj aplikację AIS dom
    image

image

:warning: Poczekaj cierpliwie na zakończenie odinstalowywania - to może potrwać kilka minut. :warning:

Restart bramki

Po odinstalowaniu aplikcji AIS dom serwer wykonaj restart bramki.

Możesz to z robić z poziomu systemu Android, klikając w Informacje -> Uruchom ponownie lub odłączając zasilanie z bramki.

Instalacja nowej wersji aplikacji

Po ponownym uruchomieniu urządzenia bramka uruchomi aplikacje launcher (bo nie będzie już serwera AIS dom).

Przechodzimy do przeglądania plików (uruchamiamy apliacje AIS Explorer):

image

W aolikacji AIS Explorer przechodzimy do Pamięć wewnętrzna
(to jest lokalizacja /sdcard do której pobieraliśmy pliki na początku za pomocą curl)

i klikamy na aplikację AisPanelApp.apk żeby uruchomić jej instalację

Otwieramy aplikację:

Czekamy aż aplikacja się uruchomi, rozpakuje paczkę startową files.tar.7z, uruchomi wszystkie serwisy
(aż Jolka powie "Witaj w domu…):

Przywracanie ustawień z kopii zapasowej

Jeśli wykonałeś kopię zapasową i chcesz ją przywrócić, to:

  1. Utwórz tymczasowe konto (dowolne konto które pozwoli Ci na zalogowanie się do aplikacji i wybranie opcji przywrócenia kopii zapasowej), zgodnie z opisem w dokumentacji: Pierwsze uruchomienie - Konto właściciela

  2. Następnie przywróć ustawienia z kopii zapasowej, zgodnie z opisem w dokumentacji: Kopia zapasowa konfiguracji

  3. Jeśli miałeś wcześniej włączony dostęp z Internetu to możesz go ponownie włączyć, zgodnie z opisem w dokumentacji Zdalny dostęp

Po kolejnym restarcie bramki doinstalują się Twoje integracje - poczekaj cierpliwie aż bramka się uruchomi. Teraz masz już dostępne swoje konto z kopii zapasowej.


Opis jak działa nowe menu w aplikacji

Opis w dokumentacji:


Opis jak działa API w aplikacji

Opis w dokumentacji:

Po aktualizacji i przywróceniu ustawień, zgubione zostały wszystkie urządzenia zigbee oraz brak node-red :frowning:
ps.
system po każdym restarcie uruchamia sie z 10 min.

Dzięki za info. To jest pierwszy tego typu upgrade/migracja, która wymaga odinstalowania całego serwisu. W finalnej wersji instrukcji dodamy do opisu, że jeśli ktoś ma dodatkowe aplikacje (typu Node-RED) to musi sam zadbać o ich backup.

Fabryczna bramka bez dodatkowych integracji uruchamia się poniżej 3 minut (od włożenia zasilacza do komunikatu “Witaj w domu…”). Jeśli u Ciebie trwa to 10 minut to albo integracje opóźniają start, bo pobierają coś z sieci, doinstalowują zależności itp. albo dodatkowe aplikacje typu Node-RED obciążają procesor i opóźniają uruchomienie systemu.

Ps. To jeszcze nie jest finalna wersja (Work In Progress), będą jeszcze aktualizacje i dopiero jak skończymy testy to oficjalnie poinformujemy o możliwości migracji serwisu na bramce.

Przy ponownym uruchamianiu podczas wyłączenia systemu z podłączonym ekranem “Jola” cały czas powtarza, proszę czekać instaluje uaktualnienie miedzy innymi youtube i jeszcze kilku innych, no i tak za każdym razem to samo. Do tego zawsze przy logowaniu lub odświerzeniu okna w przeglądarce wyskakuje okno z dodaniem karty do widoku ekranu głównego.

A masz jakieś custom components lub instalowałeś ręcznie jakieś pakiety pythona?
Bo jeżeli za każdym razem instaluje to coś jest “namieszane” z zależnościami do pakietów.

Przejdz do konsoli i wykonaj:

pm2 restart ais

a nastepnie

pm2 logs

tam powinno pojawić się dlaczego nie jest w stanie zainstalować pakietu - jaki inny pakiet go blokuje

Czy shelly może robić takie problemy?
Cały czas mówi i pisze instaluje zależności pakietu, you tube, zeroconf, denon dvr, itd z dobrych kilka minut.

$ pm2 logs

[TAILING] Tailing last 15 lines for [all] processes (change the value with --lines option)

/data/data/pl.sviete.dom/files/home/.pm2/pm2.log last 15 lines:

3|ais | 2020-03-13 12:16:25 INFO (CoAP) [pyShelly] Update id:227C53 state:False stateValue:None values:None info_values:None

Ten log nic nikomu nie powie, widać w nim tylko mnustwo wpisów z shelly (dlatego go obciołem).
Zobacz w logu co się dzieje w momencie kiedy Jolka mówi, że insaluje youtube_dl - zobacz dlaczego nie może go zainstalować.

Wszystko co sam doinstalujesz może powodować problemy - patrz:

I jeszcze jedna rzecz - jeżeli szukasz pomocy na forum to wypada odpowiedzieć na pytania:

Napisałem ale mi wycięło, posiadam w custom HACS, Shelly, Mikrotik oraz Sonoff.
A co do pythona to nic nie instalowałem.

Dobra, zresetowałem Jolke do ustawień fabrycznych, przywróciłem backup i wszystko śmiga bezbłędnie :grinning:

1 polubienie

Aplikacja AISdom przestała działać. Próbowałem już dwa razy przeinstalować i cały cas przy ponownym uruchomieniu to samo.

Czy robi Pan wszystko wg opisu? tzn. pełne odinstalowanie, restart i instalacja?

Dokładnie z instrukcją, ile powinien ważyć plik files.tar.7z ? 171 b? Nie da się go pobrać poprzez przeglądarkę i nie mam jak sprawdzić.

po pobraniu go jeszcze raz mam error can not open as [7z] archive
is not archive
czy z tym plikiem na u Was serwerze jest wszystko ok ?

Faktycznie to problem u nas… po wczorajszej aktualizacji OTA niechcący osunęliśmy skryptem files.tar.7z :frowning:

Już udostępniliśmy nowy.

files.tar.7z                                  100%  222MB 925.5KB/s   04:05    

Proszę dla pewności usunąć z dysku /sdcard plik files.tar.7z

w konsoli:

rm /sdcard/files.tar.7z 

odinstalować jeszcze raz apkę, zresetować i uruchomić instalacje jeszcze raz


Gdyby był jakiś problem to proszę dać znać - dzięki za zgłoszenie i przepraszamy za komplikacje…

No ładnie :triumph: A ja tu doktorat o wczoraj piszę czemu to nie działa :frowning: Pobieram i dam znać czy poszło.

A u mnie takie coś wyskakuje. Wszystko wykonane według instrukcji krok po kroku.

Cześć @Acid, Witamy na forum :wave:
Wygląda na to, że paczka startowa nie zainstalowała się poprawnie.

Spróbuj ponownie:

  1. Odinstaluj aplikację AIS dom
  2. Zrestartuj urządzenie.
  3. Zainstaluj nową aplikację.

Poczekaj, na prawidłowe uruchomienie, aż system rozpakuje pakiety startowe i Asystent powie “Witaj w domu…”

Można próbować kilka razy ;), jeżeli to nie pomoże, to pozostaje nam połączenie po ADB i ręczna instalacja krok po kroku.

Daj znać na forum albo napisz na serwis: info@sviete.pl - pokierujemy cię dalej.

Probowalem wykonac migracje (zostalo mi to zasugerowane przez @jolka jako odpowiedz na moje problemy z crashem TTSa).

Niestety, odinstalowanie aplikacji AIS dom wydaje sie byc niemozliwe :confused:

  • wchodze w ustawienia systemu android, wybieram aplikacje AIS dom, klikam odinstaluj, mam ekran z zapytaniem czy na pewno chce odinstalowac
  • klikam OK - nic sie nie dzieje
  • po kilku minutach klikam Anuluj - tez nic sie nie dzieje
  • w obydwu przypadkach ekran z zapytaniem czy chce odinstalowac aplikacje pozostaje widoczny

Gdy klikam przycisk OK lub Anuluj, logcat wypluwa

05-20 22:10:15.270 5285 5285 W TextView: TextView does not support text selection. Selection cancelled.

Pozniejsze logi:

05-20 22:06:24.806 5285 5285 W TextView: TextView does not support text selection. Selection cancelled.
05-20 22:06:25.495 5285 5285 W TextView: TextView does not support text selection. Selection cancelled.
05-20 22:07:00.002 4326 4326 D AlarmManager: targetPackage = android
05-20 22:07:36.169 4326 4336 I art : Background sticky concurrent mark sweep GC freed 67730(2MB) AllocSpace objects, 0(0B) LOS objects, 30% free, 6MB/9MB, paused 8.554ms total 49.577ms
05-20 22:08:00.001 4326 4326 D AlarmManager: targetPackage = android
05-20 22:08:13.132 4326 4357 D AlarmManager: targetPackage = android
05-20 22:08:13.375 4326 4378 I WifiConnectivityManager: start a single scan from watchdogHandler
05-20 22:08:13.375 4326 4378 I WifiConnectivityManager: scheduleWatchdogTimer
05-20 22:08:13.489 4326 4326 D AlarmManager: targetPackage = null
05-20 22:08:13.489 4326 4378 D AlarmManager: targetPackage = null
05-20 22:08:13.741 4326 4326 D AlarmManager: targetPackage = null
05-20 22:08:13.732 4943 4943 I earchbox:search: type=1400 audit(0.0:55): avc: denied { getattr } for path="/system/priv-app/GoogleApp/GoogleApp.apk" dev=“mmcblk0p12” ino=16388 scontext=u:r:priv_app:s0:c512,c768 tcontext=u:object_r:unlabeled:s0 tclass=file permissive=1
05-20 22:08:14.281 4943 4943 I BgTaskExecutorImpl: Starting PERIODIC background task REFRESH_SEARCH_HISTORY.
05-20 22:08:15.135 4943 12900 W LocationOracle: getBestLocation(): no location is available
05-20 22:08:15.191 4943 4950 I art : Compiler allocated 7MB to compile com.google.android.apps.gsa.search.core.service.worker.a.d com.google.android.apps.gsa.binaries.velvet.app.re.j()
05-20 22:08:15.328 4943 12900 W CDHeaderDataHandler: Invalid integer value “” in experiments IDs.
05-20 22:08:15.787 4326 4326 D AlarmManager: targetPackage = null
05-20 22:08:15.788 4326 4326 D AlarmManager: targetPackage = null
05-20 22:08:15.789 4326 4326 D AlarmManager: targetPackage = null
05-20 22:08:15.915 4943 4950 I art : Do full code cache collection, code=209KB, data=231KB
05-20 22:08:15.916 4943 4950 I art : Starting a blocking GC JitCodeCache
05-20 22:08:15.916 4943 4950 I art : After code cache collection, code=151KB, data=126KB
05-20 22:08:25.827 4943 5046 I WorkerManager: dispose()
05-20 22:09:00.005 4326 4326 D AlarmManager: targetPackage = android
05-20 22:10:00.001 4326 4326 D AlarmManager: targetPackage = android
05-20 22:10:15.270 5285 5285 W TextView: TextView does not support text selection. Selection cancelled.

Aha, jeszcze jedno - oczywiscie kliknalem 5x na labelce www-ai-speaker.com w sekcji wersja aplikacji, aby odblokowac odinstalowanie AIS dom. Nie bylo zadnego komuinkatu ze odblokowanie sie powiodlo (nie wiem czy powinien byc). Ale… gdy klikam na tym elemencie, logcat mowi

05-20 22:17:01.221 4824 4824 I pl.sviete.dom.SettingsActivity: click: 31
05-20 22:17:01.222 4824 4824 I pl.sviete.dom.SettingsActivity: remove device admin
05-20 22:17:01.224 4824 4824 W System.err: java.lang.SecurityException: clearDeviceOwner can only be called by the device owner
05-20 22:17:01.224 4824 4824 W System.err: at android.os.Parcel.readException(Parcel.java:1684)
05-20 22:17:01.224 4824 4824 W System.err: at android.os.Parcel.readException(Parcel.java:1637)
05-20 22:17:01.224 4824 4824 W System.err: at android.app.admin.IDevicePolicyManager$Stub$Proxy.clearDeviceOwner(IDevicePolicyManager.java:4836)
05-20 22:17:01.224 4824 4824 W System.err: at android.app.admin.DevicePolicyManager.clearDeviceOwnerApp(DevicePolicyManager.java:3815)
05-20 22:17:01.224 4824 4824 W System.err: at pl.sviete.dom.SettingsActivity$GeneralPreferenceFragment$3.onPreferenceClick(SettingsActivity.java:293)
05-20 22:17:01.225 4824 4824 W System.err: at android.preference.Preference.performClick(Preference.java:999)
05-20 22:17:01.225 4824 4824 W System.err: at android.preference.PreferenceScreen.onItemClick(PreferenceScreen.java:249)
05-20 22:17:01.225 4824 4824 W System.err: at android.widget.AdapterView.performItemClick(AdapterView.java:310)
05-20 22:17:01.225 4824 4824 W System.err: at android.widget.AbsListView.performItemClick(AbsListView.java:1164)
05-20 22:17:01.225 4824 4824 W System.err: at android.widget.AbsListView$PerformClick.run(AbsListView.java:3132)
05-20 22:17:01.225 4824 4824 W System.err: at android.widget.AbsListView.onTouchUp(AbsListView.java:4059)
05-20 22:17:01.225 4824 4824 W System.err: at android.widget.AbsListView.onTouchEvent(AbsListView.java:3818)
05-20 22:17:01.225 4824 4824 W System.err: at android.view.View.dispatchTouchEvent(View.java:10042)
05-20 22:17:01.225 4824 4824 W System.err: at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2626)
05-20 22:17:01.225 4824 4824 W System.err: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2307)
05-20 22:17:01.225 4824 4824 W System.err: at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
05-20 22:17:01.225 4824 4824 W System.err: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321)
05-20 22:17:01.225 4824 4824 W System.err: at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
05-20 22:17:01.225 4824 4824 W System.err: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321)
05-20 22:17:01.225 4824 4824 W System.err: at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
05-20 22:17:01.225 4824 4824 W System.err: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321)
05-20 22:17:01.225 4824 4824 W System.err: at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
05-20 22:17:01.225 4824 4824 W System.err: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321)
05-20 22:17:01.225 4824 4824 W System.err: at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
05-20 22:17:01.225 4824 4824 W System.err: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321)
05-20 22:17:01.225 4824 4824 W System.err: at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
05-20 22:17:01.225 4824 4824 W System.err: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321)
05-20 22:17:01.225 4045 4086 D audio_hw_primary: out_set_parameters(kvpairs(routing=1024), out_device=0x400)
05-20 22:17:01.225 4824 4824 W System.err: at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
05-20 22:17:01.225 4824 4824 W System.err: at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321)
05-20 22:17:01.225 4824 4824 W System.err: at com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:414)
05-20 22:17:01.225 4824 4824 W System.err: at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1808)
05-20 22:17:01.225 4824 4824 W System.err: at android.app.Activity.dispatchTouchEvent(Activity.java:3064)
05-20 22:17:01.226 4824 4824 W System.err: at android.support.v7.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:71)
05-20 22:17:01.226 4824 4824 W System.err: at com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:376)
05-20 22:17:01.226 4824 4824 W System.err: at android.view.View.dispatchPointerEvent(View.java:10265)
05-20 22:17:01.226 4824 4824 W System.err: at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4438)
05-20 22:17:01.226 4824 4824 W System.err: at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4306)
05-20 22:17:01.226 4824 4824 W System.err: at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3853)
05-20 22:17:01.226 4824 4824 W System.err: at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3906)
05-20 22:17:01.226 4824 4824 W System.err: at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3872)
05-20 22:17:01.226 4824 4824 W System.err: at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3999)
05-20 22:17:01.226 4824 4824 W System.err: at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3880)
05-20 22:17:01.226 4824 4824 W System.err: at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4056)
05-20 22:17:01.226 4824 4824 W System.err: at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3853)
05-20 22:17:01.226 4824 4824 W System.err: at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3906)
05-20 22:17:01.226 4824 4824 W System.err: at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3872)
05-20 22:17:01.226 4824 4824 W System.err: at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3880)
05-20 22:17:01.226 4824 4824 W System.err: at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3853)
05-20 22:17:01.226 4824 4824 W System.err: at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:6247)
05-20 22:17:01.226 4824 4824 W System.err: at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:6221)
05-20 22:17:01.226 4824 4824 W System.err: at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:6182)
05-20 22:17:01.226 4824 4824 W System.err: at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:6350)
05-20 22:17:01.226 4824 4824 W System.err: at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:185)
05-20 22:17:01.226 4824 4824 W System.err: at android.os.MessageQueue.nativePollOnce(Native Method)
05-20 22:17:01.226 4824 4824 W System.err: at android.os.MessageQueue.next(MessageQueue.java:323)
05-20 22:17:01.226 4824 4824 W System.err: at android.os.Looper.loop(Looper.java:136)
05-20 22:17:01.226 4824 4824 W System.err: at android.app.ActivityThread.main(ActivityThread.java:6121)
05-20 22:17:01.226 4824 4824 W System.err: at java.lang.reflect.Method.invoke(Native Method)
05-20 22:17:01.226 4824 4824 W System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:892)
05-20 22:17:01.226 4824 4824 W System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:782)
05-20 22:17:01.227 4045 4086 D audio_hw_primary: start_output_stream(adev->out_device=0x400, adev->mode=0)
05-20 22:17:01.227 4045 4086 D audio_hw_primary: select_devices(mode=0, out_device=0x400)
05-20 22:17:01.227 4045 4086 D audio_hw_primary: select_devices : hs=0 , hp=0, sp=0, hdmi=0x400,earpiece=0x0
05-20 22:17:01.227 4045 4086 D audio_hw_primary: select_devices : in_device(0x4), mic_in(0x4), headset_mic(0)
05-20 22:17:01.227 4045 4086 E audio_route: unable to find path ‘hdmi’
05-20 22:17:01.227 4045 4086 D audio_hw_primary: *start_output_stream, open card(0) port(0)
05-20 22:17:01.227 4045 4086 I audio_hw_primary: device pcm 0xe7c74000
05-20 22:17:01.228 4045 4086 D audio_hw_primary: channels=2—format=0—period_count4—period_size1024—rate=48000—
05-20 22:17:01.228 4045 4086 I audio_hw_primary: store out (0xe7e1c000) to index 0
05-20 22:17:01.228 4045 4086 D AudioFlinger: mixer(0xe7d83ac0) throttle end: throttle time(31)
05-20 22:17:04.267 4045 4086 D audio_hw_primary: out_standby(0xe7e1c000)
05-20 22:17:04.267 4045 4086 D audio_hw_primary: do_output_standby(0xe7e1c000)
05-20 22:17:04.267 4045 4086 I audio_hw_primary: remove out (0xe7e1c000) from index 0
05-20 22:17:04.267 4045 4086 I audio_hw_primary: close pcm 0xe7c74000

Cierpliwosc jest cnota :slight_smile: Za rada @Cino111 probowalem kilkukrotnie, wreszcie sie udalo :slight_smile:

1 polubienie

Witam. Po ponad roku nieobecności w domu odkurzyłem swoją bramkę i postanowiłem pospinać w mieszaniu wszystko na nowo. Okazało, się, że niestety nie mogę wykonać aktualizacji (aktualizacja automatyczna nie pobiera plików), w tej chwili mam na bramce wersje
Asystent domowy 0.103.8
Android 0.8.9
Linux 0.103.8
Znalazłem ten temat i prawdopodobnie muszę wykonać migrację jak w temacie, nie mogę jednak przeskoczyć punktu “odinstalowania aplikacji AIS dom” co kolejno wynika z tego, że nie mam możliwości Odblokowania usunięcia/odinstalowania aplikacji jak w pkt.3 poradnika na początku tematu. Nie mogę w nic kliknąć 5 razy, bo czegoś takiego w ogóle u mnie nie ma. Co powinienem zrobić, aby się to pojawiło? Jak sprawić, żeby mieć wszystko aktualne?
Pozdrawiam.

Musisz to zrobić na podłączonym telewizorze/monitorze, nie na telefonie.