FOTA

User avatar
lesny8
Posts: 668
Joined: Mon Dec 11, 2017 9:43 pm

Sat Nov 17, 2018 11:43 am

Jeśli instalacje masz dockerową, to musisz to tak wykonać

Code: Select all

source supla-docker/.env && docker exec supla-db mysql -u supla --password=$DB_PASSWORD supla -e " \
INSERT INTO esp_update (id, device_id, device_name, platform, latest_software_version, fparam1, fparam2, protocols, host, port, path) VALUES \
(1, 0, 'gniazdko_neo', 1, '2.7.2', 2, 0, 1, 'krissg.ovh', 80, 'get_file.php?file=gniazdko_neo_user2.1024_DIO.new.2.bin'),\
(2, 0, 'gniazdko_neo', 1, '2.7.2', 2, 1, 1, 'krissg.ovh', 80, 'get_file.php?file=gniazdko_neo_user1.1024_DIO.new.2.bin');"
kris.sg
Posts: 105
Joined: Mon Aug 07, 2017 8:08 pm
Location: Przezchlebie

Sat Nov 17, 2018 12:26 pm

dzięki poszło
mam jeszcze pytanie jak wyjdzie nowsza wersja czy wtedy muszę wydać komendę z nową wersją, czy wystarczy tylko wrzucić na serwer nową kompilację ?
User avatar
lesny8
Posts: 668
Joined: Mon Dec 11, 2017 9:43 pm

Sat Nov 17, 2018 3:49 pm

Możesz zrobić update wpisu w esp_update i zmienić tylko latest_software_version na aktualny.
Możesz również zrobić sobie wpis z wersją np. '2.7.3' zamiast '2.7.2' i wysyłać plik na serwer za każdym razem jak sobie skompilujesz i podpiszesz. Skutkowało to będzie tym, że gdy przestawisz w module, w trybie konfiguracyjnym FirmwareUpdate=YES , to po wyjściu z tego trybu dojdzie do sprawdzenia, i za każdym razem pobrania, zwalidowania i przełączenia bootowania z user1 na user2 lub odwrotnie.
Podsumowując wsady mają wersje '2.7.2' ale w tabeli esp_update opisane są jako '2.7.3'. Ja tak mam u siebie chwilowo do testów.
kris.sg
Posts: 105
Joined: Mon Aug 07, 2017 8:08 pm
Location: Przezchlebie

Sun Nov 18, 2018 8:44 am

ok dzięki za pomoc jak cię dobrze zrozumiałem tak to ma wyglądać ?:

Code: Select all

source supla-docker/.env && docker exec supla-db mysql -u supla --password=$DB_PASSWORD supla -e " \
INSERT INTO esp_update (latest_software_version) VALUES ('2.7.3');"
User avatar
lesny8
Posts: 668
Joined: Mon Dec 11, 2017 9:43 pm

Sun Nov 18, 2018 9:27 am

Niestety nie tak.

Sprawdzasz wpisy w tabeli esp_update

Code: Select all

source supla-docker/.env && docker exec supla-db mysql -u supla --password=$DB_PASSWORD supla -e \
"SELECT * FROM esp_update"
na razie masz dwa wpisy o id=1 i id=2 więc w wyniku zapytania otrzymujesz

Code: Select all

id	device_id	device_name	platform	latest_software_version	fparam1	fparam2	protocols	host	port	path
1	0	gniazdko_neo	1	2.7.2	2	0	1	krissg.ovh	80	get_file.php?file=gniazdko_neo_user2.1024_DIO.new.2.bin
2	0	gniazdko_neo	1	2.7.2	2	1	1	krissg.ovh	80	get_file.php?file=gniazdko_neo_user1.1024_DIO.new.2.bin
szukasz interesującego cię wpisu który odnosi się do softu, który chcesz zaktualizować i wykonujesz update dla latest_software_version

Code: Select all

source supla-docker/.env && docker exec supla-db mysql -u supla --password=$DB_PASSWORD supla -e \
"UPDATE esp_update set latest_software_version='2.7.3' WHERE id=1 or id=2"
sprawdzasz kontrolnie tabele esp_update czy update się udał, jeśli tak to powinieneś dostać taki wynik zapytania

Code: Select all

id	device_id	device_name	platform	latest_software_version	fparam1	fparam2	protocols	host	port	path
1	0	gniazdko_neo	1	2.7.3	2	0	1	krissg.ovh	80	get_file.php?file=gniazdko_neo_user2.1024_DIO.new.2.bin
2	0	gniazdko_neo	1	2.7.3	2	1	1	krissg.ovh	80	get_file.php?file=gniazdko_neo_user1.1024_DIO.new.2.bin
kris.sg
Posts: 105
Joined: Mon Aug 07, 2017 8:08 pm
Location: Przezchlebie

Sun Nov 18, 2018 10:35 am

dzięki za pomoc przynajmniej się czegoś nauczyłem :)
to jeszcze ostatnie pytanie
niestety wykonałem komendę :

Code: Select all

source supla-docker/.env && docker exec supla-db mysql -u supla --password=$DB_PASSWORD supla -e " \
INSERT INTO esp_update (latest_software_version) VALUES ('2.7.3');"
i mam teraz dodatkowo pozycję id=0

jak znalazłem w necie mogę wykorzystać funkcję DELETE ale mam problem ze składnią:

Code: Select all

 pi@raspberrypi:~ $ source supla-docker/.env && docker exec supla-db mysql -u supla --password=$DB_PASSWORD supla -e "DELETE * FROM esp_update WHERE latest_software_update='2.7.3'"
ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '* FROM esp_update WHERE latest_software_update='2.7.3'' at line 1

User avatar
lesny8
Posts: 668
Joined: Mon Dec 11, 2017 9:43 pm

Sun Nov 18, 2018 11:34 am

kris.sg wrote:
Sun Nov 18, 2018 10:35 am
dzięki za pomoc przynajmniej się czegoś nauczyłem :)
;)

Usuń sobie zatem ten rekord zawężając zapytanie klauzulą WHERE wskazując właściwe Id.
Id jest primary key dlatego nie usuniesz przypadkowych rekordów, a tylko ten wskazany.

Code: Select all

source supla-docker/.env && docker exec supla-db mysql -u supla --password=$DB_PASSWORD supla -e \
"DELETE from esp_update WHERE id=0"
kris.sg
Posts: 105
Joined: Mon Aug 07, 2017 8:08 pm
Location: Przezchlebie

Mon Nov 19, 2018 10:53 am

jak mogę się jeszcze zapytać czy da się podejrzeć logi bo zrobiłem wszystko zmieniłem wersję na 2.7.3 ale moduł się nie chce zaktualizować
User avatar
lesny8
Posts: 668
Joined: Mon Dec 11, 2017 9:43 pm

Mon Nov 19, 2018 12:03 pm

Logi są w tabeli esp_update_log

Code: Select all

source supla-docker/.env && docker exec supla-db mysql -u supla --password=$DB_PASSWORD supla -e \
"select * from esp_update_log"
kris.sg
Posts: 105
Joined: Mon Aug 07, 2017 8:08 pm
Location: Przezchlebie

Mon Nov 19, 2018 12:40 pm

ok dzięki sprawdziłem i u mnie wygląda to tak :

Code: Select all

pi@raspberrypi:~ $ source supla-docker/.env && docker exec supla-db mysql -u supla --password=$DB_PASSWORD supla -e "select * from esp_update_log"
date    device_id       platform        fparam1 fparam2 fparam3 fparam4
2018-09-29 17:07:01     3       1       4       0       0       0
2018-10-20 10:25:41     19      1       2       0       0       0
2018-11-11 12:59:11     25      1       2       0       0       0
2018-11-17 12:04:22     25      1       2       0       0       0
2018-11-19 08:31:12     25      1       2       0       0       0
2018-11-19 11:11:15     25      1       2       0       0       0

w module na pewno ustawiłem fota na YES, kompilacje podpisane, i cisza moduł nic nie dostaje
sprawdziłem w przeglądarce pliki się pobierają

a tak to wygląda w bazie:

Code: Select all

pi@raspberrypi:~ $ source supla-docker/.env && docker exec supla-db mysql -u supla --password=$DB_PASSWORD supla -e "SELECT * FROM esp_update"
id      device_id       device_name     platform        latest_software_version fparam1 fparam2 protocols       host    port    path
1       0       gniazdko_neo    1       2.7.3   2       0       1       krissg.ovh      80      update/gniazdko_neo_user2.1024_DIO.new.2.bin
2       0       gniazdko_neo    1       2.7.3   2       1       1       krissg.ovh      80      update/gniazdko_neo_user1.1024_DIO.new.2.bin

dodatkowo zmieniłem wpis w bazie device_id = 25 ale nie pomogło
Post Reply