Mirki, jak najlepiej zaprojektować system (jakich narzędzi użyć) w #azure aby wykonać coś takiego: Urządzenie komunikujące się po mqtt z serwerem, który zapisuje dane do bazy. Dodatkowo ma być strona www na której dane będą prezentowane na żywo (czyli jak urządzenie coś wyśle, to na stronie ma ta informacja pojawić się od razu, bez jakiegoś odświezania). Akurat na kwestiach #webdev nie znam się w ogóle. Na razie mam postawione Iot hub. Do tego mam kontener docker na którym jest aplikacja która sobie te dane wstawia do bazy. Nie mam jeszcze pomysłu na stronę do prezentacji tych danych. Część można sobie (A nawet trzeba) pobrać z bazy - no i to da się ogarnąć. Gorzej z tym, że niektóre dane muszą być natychmiast po wysłaniu przez urządzenie zaprezentowane na stronie. Dane z bazy, to pewnie muszę klepnąc rest api, a co z danymi "na zywo"? Web sockety? Czy są jakieś inne, lepsze rozwiązania. Podrzućcie jakiś trop, to sobie poczytam, bo na razie przychodzi mi do głowy tylko to co napisałem.
Apka nie jest skomplikowana, bo w sumie dopiero zaczynam ja pisać. Dane z urządzenia to zwykły json, który apka deserializuje i na postawie danych będzie robione coś dalej. Na razie jest to wstawianie do bazy.
Właśnie z AzureFunctions przeniosłem to do zwykłej apki, bo uznałem że tak będzie lepiej. Jedno urządzenie w ciągu minuty wyśle od 1 do nawet 20 komunikatów mqtt do iot hub. Za każdym razem Azure Functions pobierało informacje o urządzeniu (aby pobrać jego id na podstawie nazwy) A później dodawało przesłane dane do bazy (A jeżeli nie było urządzenia, to dodatkowo je dodawało). No i w sumie dawało to dwa zapytania do bazy na jeden komunikat. W aplikacji tylko raz pobieram info o urzadzeniu (razem z jego konfiguracja itp
@BoKoR: Ja raczej walczę z Azurem pod kątem architektury /ops i adminki niż deva, ale wczoraj przyszedł mi do domku darmowy Azure Sphere Starter Kit to zacząłem się tym bawić :-) Może wersja IoT Central będzie przyjemniejsza dla Ciebie i rozwiąże Ci kilka problemów? Ja robiłem wg tego tutoriala - bardziej żeby pomacać Azure Sphere niż kiedykolwiek coś na tym zbudować ( ͡°͜ʖ͡°)
@Koliat No i device twins które miało być fajne (w sumie jest fajne) nie może być wykorzystane. Do swojego urządzenia które będzie sobie nadawało może być podłączone 0 lub wiele czujników. Każdy czujnik może mieć różną konfigurację. Z tego co zobaczyłem, to konfigurację można robić pod wszystkie lub jakąś grupę urządzeń. Problem w tym, że u mnie w każdej chwili może zostać dodany lub usunięty czujnik. Gdyby nie ograniczenie do 512 bajtow jako wartość parametru, to pchałbym info o czujnikach w json jako parametr konfiguracji.
@BoKoR: Mhm, co do tych czujników.. nie da się zrobić konfiguracji twina tak żeby miał każdy rodzaj czujnika? I jak zgłosi to zadziała, a jak nie to po prostu null / puste ? (tu już czysta spekulacja, bo nie dotknąłem IOT jakkolwiek głębiej)
Azure Functions rozliczasz konsumpcyjnie z "Gigabajto-sekund", i jeśli Twój kod nie wykonuje się jakoś bardzo długo i nie żre dużo RAMu to powinna to być preferowana opcja.
@Koliat co do device twins, to po pracy przeczytam całą dokumentację od tego, bo może coś tam takiego będzie. Jedno urządzenie może mieć 0 lub wiele czujników. A czujników to w sumie może być niezliczoną ilość (co tam ktoś sobie zarzyczy). Na start to będzie jakieś 500 sztuk różnych czujników. Więc już coś takiego trzeba rozwiązać inaczej. W starym rozwiązaniu miałem tabelę wxktorej każdy wiersz to info o czujniki, a jego
10 lat temu Rosjanie mieli jeszcze pozytywny stosunek do Polaków i tutaj nawet nazwali Polaka bratem. Później wszystko się zepsuło przez politykę zachodu względem Ukrainy. #wojna #ukraina #rosja #polska #polityka
Urządzenie komunikujące się po mqtt z serwerem, który zapisuje dane do bazy. Dodatkowo ma być strona www na której dane będą prezentowane na żywo (czyli jak urządzenie coś wyśle, to na stronie ma ta informacja pojawić się od razu, bez jakiegoś odświezania).
Akurat na kwestiach #webdev nie znam się w ogóle.
Na razie mam postawione Iot hub. Do tego mam kontener docker na którym jest aplikacja która sobie te dane wstawia do bazy.
Nie mam jeszcze pomysłu na stronę do prezentacji tych danych. Część można sobie (A nawet trzeba) pobrać z bazy - no i to da się ogarnąć. Gorzej z tym, że niektóre dane muszą być natychmiast po wysłaniu przez urządzenie zaprezentowane na stronie.
Dane z bazy, to pewnie muszę klepnąc rest api, a co z danymi "na zywo"? Web sockety? Czy są jakieś inne, lepsze rozwiązania.
Podrzućcie jakiś trop, to sobie poczytam, bo na razie przychodzi mi do głowy tylko to co napisałem.
#programowanie #pytaniedoeksperta
Co do live stream - może to? https://docs.microsoft.com/en-us/power-bi/service-real-time-streaming
Bottleneckiem może być ten kontener, chyba że wepchniesz to w Kubernetesa. Skomplikowana jest ta apka? Może Stream Analytics albo Azure Functions ją zastąpi, jak nie to skalowanie Kubernetesem Ci zostaje.
To jakiś startupowy projekt czy duże korpo?
Dzięki za linki, wieczorem poczytam.
Apka nie jest skomplikowana, bo w sumie dopiero zaczynam ja pisać. Dane z urządzenia to zwykły json, który apka deserializuje i na postawie danych będzie robione coś dalej. Na razie jest to wstawianie do bazy.
Właśnie z AzureFunctions przeniosłem to do zwykłej apki, bo uznałem że tak będzie lepiej. Jedno urządzenie w ciągu minuty wyśle od 1 do nawet 20 komunikatów mqtt do iot hub. Za każdym razem Azure Functions pobierało informacje o urządzeniu (aby pobrać jego id na podstawie nazwy) A później dodawało przesłane dane do bazy (A jeżeli nie było urządzenia, to dodatkowo je dodawało). No i w sumie dawało to dwa zapytania do bazy na jeden komunikat. W aplikacji tylko raz pobieram info o urzadzeniu (razem z jego konfiguracja itp
https://www.element14.com/community/groups/internet-of-things/blog/2019/05/09/avnets-azure-sphere-starter-kit-out-of-box-demo-part-3-of-3
Z jakiegoś powodu iot central odpadał w moim przypadku. Ale co do device twins to w sumie może rozwiąże sporo rzeczy.
Dzięki za info. Wieczorem poczytam stronki które podrzuciłeś.
No i device twins które miało być fajne (w sumie jest fajne) nie może być wykorzystane.
Do swojego urządzenia które będzie sobie nadawało może być podłączone 0 lub wiele czujników. Każdy czujnik może mieć różną konfigurację.
Z tego co zobaczyłem, to konfigurację można robić pod wszystkie lub jakąś grupę urządzeń. Problem w tym, że u mnie w każdej chwili może zostać dodany lub usunięty czujnik.
Gdyby nie ograniczenie do 512 bajtow jako wartość parametru, to pchałbym info o czujnikach w json jako parametr konfiguracji.
Azure Functions rozliczasz konsumpcyjnie z "Gigabajto-sekund", i jeśli Twój kod nie wykonuje się jakoś bardzo długo i nie żre dużo RAMu to powinna to być preferowana opcja.
Jedno urządzenie może mieć 0 lub wiele czujników. A czujników to w sumie może być niezliczoną ilość (co tam ktoś sobie zarzyczy). Na start to będzie jakieś 500 sztuk różnych czujników.
Więc już coś takiego trzeba rozwiązać inaczej.
W starym rozwiązaniu miałem tabelę wxktorej każdy wiersz to info o czujniki, a jego