Sterowanie dachem obserwatorium i SBW-02

thomson
Posts: 2
Joined: Sun Sep 22, 2024 9:54 pm

Post

Hej,
Zbudowałem sobie obserwatorium astronomiczne z odsuwanym dachem. Dach jest sterowany przez SBW-02. Wszystko elegancko śmiga z aplikacji albo przez stronę. Moje wymagania są raczej proste. Potrzebuję dwóch (czterech) rzeczy. Podstawowe minimum to akcje: otwórz i zamknij dach. Jeżeli się da, to jeszcze informacja o tym, czy dach jest w pełni otwarty i w pełni zamknięty.

Do integracji z różnego rodzaju softem astro potrzebne mi jest sterowanie z command line'a.

W jaki sposób najlepiej podejść do tematu? Znalazłem supla-console-client i go sobie skompilowałem. Nie chcę nikomu nic ujmować, ale ma one pewne braki: nie ma dokumentacji, brak opcji help. Ale co tam - jest kod, jest dobrze. Popatrzyłem sobie w źródła i rozkminiłem część parametrów, ale kilku nie udało się jeszcze rozgryźć.

Mam sporo pytań:
1. Czy supla-console-client to najprostsze podeście do sterowania SBW-02 z konsoli?
2. Jest jakieś oficjalne środowisko do kompilowania supla-console-client pod windowsy? Pod Linuxem ruszyło od razu, ale z Windowsami jakaś rzeźnia. znalazłem plik .project, więc zainstalowałem Eclipse IDE, ale tylko wpadłem do bardzo głębokiej dziury. Eclipse otworzył projekt, ale przy próbie kompilacji pisał, że nie mógł sie połączyć z dockerem. Doinstalowałem dockera desktop, potem jakieś dodatkowe toole do niego (docker-machine to się chyba nazywało), potem docker tooling w eclipse, potem go skonfigurowałem, żeby sie łączył z docker desktop i dalej poległem. Chyba takich cyrków nie potrzeba?
3. Czy jest gdzieś przykład jak używać supla-console-client?
4. Czy supla-console-client jest rozwijany? Jeżeli tak, to można wysłać PR na githubie? Na razie dopisałem helpa z opisem parametrów, ale jak uda mi się go użyć, to planuję dopisać kawałek dokumentacji z opisem jak go używać.
5. Dach jest otwierany na noc, a zamykany nad ranem. Trochę boję się sytuacji, że padnie Internet i dach się nie zamknie. Czy protokół umożliwia wysłanie komendy bezpośrednio do sterownika?
6. Podpowie ktoś, co ustawia się opcją -aid?
7. Jakie id należy podać w opcji -id? Wygenerowałem sobie osobisty token dostępowy, podłączyłem się do chyba dobrego serwera (svr115.supla.org), ale dostaję Bad credentials. Przy logowaniu przez https://svr115.supla.org/api-docs/docs.html token działa.

Na koniec super dzięki za podejście open source. Od 20+ lat piszę kod open source, więc bardzo doceniam.
User avatar
klew
Posts: 9678
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław

Post

thomson wrote: Sun Sep 22, 2024 11:11 pm Zbudowałem sobie obserwatorium astronomiczne z odsuwanym dachem. Dach jest sterowany przez SBW-02. Wszystko elegancko śmiga z aplikacji albo przez stronę. Moje wymagania są raczej proste. Potrzebuję dwóch (czterech) rzeczy. Podstawowe minimum to akcje: otwórz i zamknij dach. Jeżeli się da, to jeszcze informacja o tym, czy dach jest w pełni otwarty i w pełni zamknięty.
Tego jeszcze u nas nie było :). Z ciekawości - jaki jest napęd tego dachu? SBW pracuje impulsowo, więc zgaduję, że jedno wyjście SBW używasz do otwierania, a drugie do zamykania, tak?
SBW-02 ma dwa wejścia, do których możesz podłączyć kontaktrony/krańcówki. Możesz je wykorzystać do informacji o pełnyn otwarciu i zamknięciu.
thomson wrote: Sun Sep 22, 2024 11:11 pm W jaki sposób najlepiej podejść do tematu? Znalazłem supla-console-client i go sobie skompilowałem. Nie chcę nikomu nic ujmować, ale ma one pewne braki: nie ma dokumentacji, brak opcji help. Ale co tam - jest kod, jest dobrze. Popatrzyłem sobie w źródła i rozkminiłem część parametrów, ale kilku nie udało się jeszcze rozgryźć.
supla-console-client to mało używana aplikacja. Ogółnie jej idea była taka, że pracuje tak jak "client" - czyli tak jak np. aplikacje na telefonie.
To jest raczej narzędzie testowe, lub jako baza do jakiegoś innego projektu. Raczej ma działać stale po uruchomieniu, a nie służyć do odpalania komend z linii poleceń.
thomson wrote: Sun Sep 22, 2024 11:11 pm 1. Czy supla-console-client to najprostsze podeście do sterowania SBW-02 z konsoli?
Raczej nie. Najprościej to chyba wygnerować sobie w Cloud linki bezpośrednie i je uruchamiać jakimś curl'em z linii poleceń.
thomson wrote: Sun Sep 22, 2024 11:11 pm 2. Jest jakieś oficjalne środowisko do kompilowania supla-console-client pod windowsy? Pod Linuxem ruszyło od razu, ale z Windowsami jakaś rzeźnia. znalazłem plik .project, więc zainstalowałem Eclipse IDE, ale tylko wpadłem do bardzo głębokiej dziury. Eclipse otworzył projekt, ale przy próbie kompilacji pisał, że nie mógł sie połączyć z dockerem. Doinstalowałem dockera desktop, potem jakieś dodatkowe toole do niego (docker-machine to się chyba nazywało), potem docker tooling w eclipse, potem go skonfigurowałem, żeby sie łączył z docker desktop i dalej poległem. Chyba takich cyrków nie potrzeba?
Nie sądzę, aby coś typowo pod windows powstało. Osobiście nigdy Eclipse też nie używałem.
thomson wrote: Sun Sep 22, 2024 11:11 pm 3. Czy jest gdzieś przykład jak używać supla-console-client?
4. Czy supla-console-client jest rozwijany? Jeżeli tak, to można wysłać PR na githubie? Na razie dopisałem helpa z opisem parametrów, ale jak uda mi się go użyć, to planuję dopisać kawałek dokumentacji z opisem jak go używać.
Nie kojarzę przyjładu. Raczej nie jest aktywnie rozwijany. Zmiany są gdy ktoś coś tam potrzebuje, albo gdy trzeba coś zmienić, bo by się przestało kompilować.
PR możesz wystawić. Trzeba zaakceptować CLA (oświadczenie o autorstwie i przekazanie odpowiednich praw autorskich).
thomson wrote: Sun Sep 22, 2024 11:11 pm 5. Dach jest otwierany na noc, a zamykany nad ranem. Trochę boję się sytuacji, że padnie Internet i dach się nie zamknie. Czy protokół umożliwia wysłanie komendy bezpośrednio do sterownika?
Na SBW nie ma obecnie możliwości pracy bez serwera. Jeśli to jest u Ciebie realny problem (brak internetu), to możesz postawić sobie serwer Supli w sieci lokalnej. Natomiast w 99,9% przypadków, to jest problem teoretyczny i jeśli raz na rok coś takiego ma miejsce, to jest nieźle ;)
thomson wrote: Sun Sep 22, 2024 11:11 pm 6. Podpowie ktoś, co ustawia się opcją -aid?
7. Jakie id należy podać w opcji -id? Wygenerowałem sobie osobisty token dostępowy, podłączyłem się do chyba dobrego serwera (svr115.supla.org), ale dostaję Bad credentials. Przy logowaniu przez https://svr115.supla.org/api-docs/docs.html token działa.
Szczerze to nie wiem i nie pamiętam :P
Natomiast - każde urządzenie łączy się z serwerem podając "GUID" oraz "AuthKey" (oba to podobne ciągi losowych znaków, które nie powinny się zmieniać).
"aid" to pewnie "access id", czyli "identyfikator dostępu" widoczny w Cloud. Ogólnie w Supli client (telefon/apka) mają przypisany "access id", do którego przypisujesz w Cloud dostęp do lokalizacji.

"Client" ma w Supli dwie opcje logowania do serwera:
- podając maila, guid i authkey (aktualny, zalecany), lub
- podając maila, guid, access id i hasło dla access id (to stara metoda, ale nadal tak się da) - jak wejdziesz na: https://cloud.supla.org/home to tam w "domku" supla-client są te dane.

Natomiast token dostępowy do API z Clouda, to zupełnie co innego. Możesz go wygenerować i sterować wywołaniami curl'em z linii poleceń i robić dowolne rzeczy, na które API pozwala. Ale to nie ma żadnego związku z supla-console-client.
Kiedy będzie Supla Offline Party / SOP#2025 ?
thomson
Posts: 2
Joined: Sun Sep 22, 2024 9:54 pm

Post

klew wrote: Mon Sep 23, 2024 8:03 am Tego jeszcze u nas nie było :). Z ciekawości - jaki jest napęd tego dachu? SBW pracuje impulsowo, więc zgaduję, że jedno wyjście SBW używasz do otwierania, a drugie do zamykania, tak?
SBW-02 ma dwa wejścia, do których możesz podłączyć kontaktrony/krańcówki. Możesz je wykorzystać do informacji o pełnyn otwarciu i zamknięciu.
Tak. Napęd to silnik do bram przesuwnych BFT Icaro Ultra. Trochę było z tym zabawy, bo silnik standardowo ma jedną zębatkę, a dach jest duży (5x5m), więc jest napędzany przez dwie równoległe listwy zębate, oddalone od siebie o prawie 5m. Trzeba było do tego zrobić wał, zębatki z łańcuchami, całość na łożyskach itd. Kupa zabawy. Ale działa :)

Silnik ma wbudowany taki mały sterownik z milionem wejść/wyjść do różnych czujników, m.in. wejścia sterujące. Zrobiłem dokładnie tak, jak się domyśliłeś - jedno wyjście z SBW jest od otwierania, drugie od zamykania. Silnik do rozpoczęcia ruchu potrzebuje tylko impulsu. Defaultowo chyba 0,5s jest. Nie pamiętam, zadziałało od pierwszego strzału, więc nie ruszałem. Mam krańcówki podłączone, ale na razie tylko do sterownika silnika.
klew wrote: Mon Sep 23, 2024 8:03 am
thomson wrote: Sun Sep 22, 2024 11:11 pm 1. Czy supla-console-client to najprostsze podeście do sterowania SBW-02 z konsoli?
Raczej nie. Najprościej to chyba wygnerować sobie w Cloud linki bezpośrednie i je uruchamiać jakimś curl'em z linii poleceń.
Ok, dzięki. To chyba właśnie pójdę tą drogą.
klew wrote: Mon Sep 23, 2024 8:03 am
thomson wrote: Sun Sep 22, 2024 11:11 pm 2. Jest jakieś oficjalne środowisko do kompilowania supla-console-client pod windowsy? Pod Linuxem ruszyło od razu, ale z Windowsami jakaś rzeźnia. znalazłem plik .project, więc zainstalowałem Eclipse IDE, ale tylko wpadłem do bardzo głębokiej dziury. Eclipse otworzył projekt, ale przy próbie kompilacji pisał, że nie mógł sie połączyć z dockerem. Doinstalowałem dockera desktop, potem jakieś dodatkowe toole do niego (docker-machine to się chyba nazywało), potem docker tooling w eclipse, potem go skonfigurowałem, żeby sie łączył z docker desktop i dalej poległem. Chyba takich cyrków nie potrzeba?
Nie sądzę, aby coś typowo pod windows powstało. Osobiście nigdy Eclipse też nie używałem.
Ja też nie bardzo. Po prostu zobaczyłem pliki do Eclipse'a w źródłach, więc pomyslałem, że ktoś to kiedyś w Eclipse kompilował.
klew wrote: Mon Sep 23, 2024 8:03 am
thomson wrote: Sun Sep 22, 2024 11:11 pm 3. Czy jest gdzieś przykład jak używać supla-console-client?
4. Czy supla-console-client jest rozwijany? Jeżeli tak, to można wysłać PR na githubie? Na razie dopisałem helpa z opisem parametrów, ale jak uda mi się go użyć, to planuję dopisać kawałek dokumentacji z opisem jak go używać.
Nie kojarzę przyjładu. Raczej nie jest aktywnie rozwijany. Zmiany są gdy ktoś coś tam potrzebuje, albo gdy trzeba coś zmienić, bo by się przestało kompilować.
PR możesz wystawić. Trzeba zaakceptować CLA (oświadczenie o autorstwie i przekazanie odpowiednich praw autorskich).
Super.
klew wrote: Mon Sep 23, 2024 8:03 am
thomson wrote: Sun Sep 22, 2024 11:11 pm 5. Dach jest otwierany na noc, a zamykany nad ranem. Trochę boję się sytuacji, że padnie Internet i dach się nie zamknie. Czy protokół umożliwia wysłanie komendy bezpośrednio do sterownika?
Na SBW nie ma obecnie możliwości pracy bez serwera. Jeśli to jest u Ciebie realny problem (brak internetu), to możesz postawić sobie serwer Supli w sieci lokalnej. Natomiast w 99,9% przypadków, to jest problem teoretyczny i jeśli raz na rok coś takiego ma miejsce, to jest nieźle ;)
Obserwatorium jest na środku niczego, w lesie. Internet jest przez LTE, na antenie parabolicznej z jakimś absurdalnym gainem, a i tak czasem zrywa. Problem jest taki, że jak nie zamknie się dach, to może stać sie pare bardzo smutnych rzeczy. Najgorsza to teleskop skierowany w stronę słońca. To jest spalenie całej optyki, kamer, może nawet pożar obserwatorium. Z mniejszych katastrof to deszcz i popalona elektronika. Jakby coś takiego się wydarzyło, to "ale w pozostałych 99,9% działało" byłoby słabym pocieszeniem. ;)

Wielkie dzięki za obszerne podpowiedzi. Pogrzebię jeszcze trochę przy tym kliencie konsolowym i chyba przerzucę sie na cloud API. Tak, jak radziłeś: curl albo jakiś prosty skrypt w pythonie i powinno zadziałać.

Return to “Pomoc”