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.
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:
- Aplikacja
curl -o /sdcard/AisPanelApp.apk -L https://powiedz.co/ota/android/AisPanelApp.apk
- 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
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.
-
Utwórz kopię konfiguracji z poziomu aplikacji i wyślij ją do panelu integratora
-
Zaktualizuj aplikację do najnowszej wersji 0.106.7
Odblokowanie aplikacji serwer (na bramce) do usunięcia
-
Usuń wszystkie dyski zdalne
-
Upewnij się, że nie ma żadnych dysków zdalnych
-
Odblokuj aplikację do usunięcia/odinstalowania
-
Wyjdz z aplikacji
Usunięcie aplikacji serwera z bramki
-
Przejdz do ustawień systemu Android
-
Odinstaluj aplikację AIS dom
Poczekaj cierpliwie na zakończenie odinstalowywania - to może potrwać kilka minut.
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):
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:
-
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
-
Następnie przywróć ustawienia z kopii zapasowej, zgodnie z opisem w dokumentacji: Kopia zapasowa konfiguracji
-
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: